Skip to content

A helper script for aadarchi allowing us to fetch interesting technologies

Notifications You must be signed in to change notification settings

Riduidel/aadarchi-technology-detector

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Welcome to aadarchi-technology-detector 👋

Version Documentation Maintenance License: MIT

A Java project linked to aadarchi which aims to detect notable technologies in a variety of languages

Prerequisites

. Install jbang . Clone TechEmpower frameworks repository beside this repository

Usage

Fetching data from reports branches

This repository provides for each observed repository one branch containing in a given folder the file aggregating all informations.

Available sources

Source website Branch name Path of artifacts file(s)
mvnrepository.com reports_mvnrepository mvnrepository/artifacts.json
npmjs.com reports_npmjs npmjs/artifacts.json
pypi.org reports_pypi pypi/artifacts.json

If you take a look at these branches, in each of them, you'll find one commit per month.

Produced file format

Each scrapper should produce a file with this structure

[
  // A list of artifacts
  {
    // Maven group id (when available)
    "groupId": "group.id",
    // Maven artifact id (when available)
    "artifactId": "artifact.id",
    // Artifact visible name
    "name": "A project name",
    // Artifact description (optionnal, but highly recommended)
    "description": "Some text, in an unknown format",
    // Artifact licenses (optionnal)
    "license": [
      "Apache 2.0"
    ],
    // Artifact categories (optionnal)
    "categories": [
      "Set of categories, not to be confused with tags"
    ],
    // Artifact tags (optionnal)
    "tags": [
      "annotations",
      "metadata"
    ],
    // Artifact ranking in registry (1 is the most important artifact - optionnal)
    "ranking": "114",
    // Artifact users number (optionnal)
    "users": 4307,
    // Number of downloads of this artifact
    "downloads": "-1",
    // Urls for this project (will allow further research, such as GitHub stars)
    "urls": {
      // Each entry maps a domain (typically github when available) to the very project page
      "github.com": "https://github.com/OWNER/PROJECT#README"
    }
   // Artifact repositories (optionnal)
    "repositories": [
      "Google",
      "SciJava Public"
    ],
    // Artifact versions (optionnal, but highly recommended)
    "versions": {
      // Each version has a number
      "1.8.0-alpha01": {
        // usage count for this version
        "usages": "3",
        // version release date
        "date": "Feb 21, 2024",
        // users count for this version
        "users": 3
      },
...

Command line

Each process can be run on your machine to validate everything is good

MvnRepository

cd mvnrepository
jbang ExtractPopularMvnRepositorytArtifacts.java

It will produce an artifacts.json file with the artifacts usage count at the time the command is run

Extract MvnRepository

Thanks to the Internet Wayback Machine, it is possible to get the whole history for mvn repository by running the command

jbang ExtractPopularMvnRepositorytArtifacts.java --generate-history

This will fetch the whole history for MvnRepository and generate in a branch called history one commit for each month since the first capture available at https://archive.org. This code is kept for tracability reason, to make sure the history fetching process is reproducable, but should not be run.

Architecture

Each extractor must be written using Java/JBang (it's easy, fast, and make code easily runnable through GitHub Actions). Each extractor must provide a --generate-history flag that will generate an history covering at least the last ten years. Each extractor must write this history to a branch (ideally the reports one).

Author

👤 Riduidel & Helielzel

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page. You can also take a look at the contributing guide.

Show your support

Give a ⭐️ if this project helped you!

📝 License

Copyright © 2023 Riduidel & Helielzel.
This project is MIT licensed.


This README was generated with ❤️ by readme-md-generator