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
Last synced: 6 months ago · JSON representation ·

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
Created over 1 year ago · Last pushed 12 months ago
Metadata Files
Readme License Citation

readme.md

Goblin updater

License

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.

  1. run Neo4J and launch the graph database for the ecosystem

  2. 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 noUpdate

  3. run 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

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

pom.xml maven
  • 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