goblinupdater
Science Score: 54.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (10.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: Goblin-Ecosystem
- License: apache-2.0
- Language: Java
- Default Branch: main
- Size: 2.97 MB
Statistics
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 1
Metadata Files
readme.md
Goblin updater
The Goblin updater formulates the dependency update problem as a multi-objective optimization problem. This approach allows for the update of dependencies with a global perspective, considering all direct and indirect dependencies. It also enables developers to specify their preferences regarding the quality factors they want to maximize and the costs of updating they want to minimize. The update problem is encoded as a linear program whose solution is an optimal update strategy that aligns with developer priorities and minimizes incompatibilities.
An example of experiments with this tool is available here: https://zenodo.org/records/13285362
Requirements
- Java 17
- An active Neo4j database containing the Maven Central dependency graph available here: https://zenodo.org/records/11104819
- A Goblin weaver API available here: https://github.com/Goblin-Ecosystem/goblinWeaver
Source code structure
- client : clients
- updater : Goblin updater
- api : API for the updater
- impl : implementation of the API
- helpers : helpers using the API
- util : utilities that are not specific to Goblin updater
JAR generation
This project is dependent on the Maracas tool. Maracas is available on GitHub Packages, so you need to configure your Maven to use this dependency by editing your '~/.m2/settings.xml' file. More inforomation on GitHub Packages configuration here: https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-apache-maven-registry
sh
mvn clean package
Execution
To run Goblin Updater, you have first to run the Goblin Weaver server. More information here.
run Neo4J and launch the graph database for the ecosystem
run Goblin Weaver server in a first terminal
sh java -Dneo4jUri="bolt://localhost:7687/" -Dneo4jUser="neo4j" -Dneo4jPassword="goblindb" -jar ./target/goblinWeaver-1.0.0.jar noUpdaterun Goblin Updater in a second terminal
sh java -DweaverUrl=<WEAVER URL> -DprojectPath=<PROJECT TO ANALYSE> -DconfFile=<CONFIGURATION FILE> -jar <JAR FILE>
Windows example:
sh
java -DweaverUrl="http://localhost:8080" -DprojectPath="C:\Users\Bob\MyProgram" -DconfFile=".\gUpdaterConfig.yml" -jar .\goblinUpdater-1.0.0-jar-with-dependencies.jar
Linux / MacOS example:
sh
java -DweaverUrl="http://localhost:8080" -DprojectPath="$HOME/MyProgram" -DconfFile="./gUpdaterConfig.yml" -jar .\goblinUpdater-1.0.0-jar-with-dependencies.jar
Configuration files
see the template configuration file
Owner
- Name: Goblin-Ecosystem
- Login: Goblin-Ecosystem
- Kind: organization
- Repositories: 1
- Profile: https://github.com/Goblin-Ecosystem
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Jaime" given-names: "Damien" orcid: "https://orcid.org/0000-0002-7503-4606" - family-names: "Poizat" given-names: "Pascal" orcid: "https://orcid.org/0000-0001-7979-9510" - family-names: "El Haddad" given-names: "Joyce" orcid: "https://orcid.org/0000-0002-2709-2430" - family-names: "Degueule" given-names: "Thomas" orcid: "https://orcid.org/0000-0002-5961-7940" title: "Goblin-Updater" version: 1.0.0 doi: 10.5281/zenodo.13285362 date-released: 2024-08-12 url: "https://github.com/Goblin-Ecosystem/goblinUpdater"
GitHub Events
Total
- Watch event: 2
- Push event: 1
- Fork event: 2
Last Year
- Watch event: 2
- Push event: 1
- Fork event: 2
Dependencies
- com.github.maracas:maracas-core 0.5.0
- com.github.siom79.japicmp:japicmp 0.17.2
- com.google.ortools:ortools-java 9.8.3296
- com.googlecode.json-simple:json-simple 1.1.1
- io.vavr:vavr 0.10.4
- org.apache.commons:commons-csv 1.11.0
- org.apache.maven.resolver:maven-resolver-impl 1.6.2
- org.apache.maven:maven-model 3.9.3
- org.apache.maven:maven-resolver-provider 3.8.1
- org.eclipse.aether:aether-connector-basic 1.1.0
- org.eclipse.aether:aether-transport-file 1.1.0
- org.eclipse.aether:aether-transport-http 1.1.0
- org.jgrapht:jgrapht-core 1.5.2
- org.yaml:snakeyaml 2.2