
This archive contains the datasets, results, notebooks, and tools used for the paper "Balancing the Quality and Cost of Updating Dependencies". Paper preprint: https://hal.science/hal-04684254/document It's contain the updater and experiments code, but a GitHub repository is also available for each project. The contents of this Zenodo archive are organized as follows: goblinUpdater: This folder contains the goblin updater code as presented in the paper. goblinUpdater_experiments: This folder contains the code used for conducting the experiments. results_data: This folder includes all experiment results, along with analysis and figure-generating notebooks. datasets: This folder contains the project datasets used in the experiments. goblinWeaver_data: This folder ensures that experiments can be restarted in the exact state as when the paper was initially conducted. Proof_LP_Update_project_rooted_graph.pdf: This file contains proof sketches demonstrating the correctness of the linear program encoding. All the other files allow you to launch the prerequisites for running experiments using Docker. Procedure for relaunching experiments Among the experiments, "runUpdater" should be executed first, with the others based on the results obtained by this one. The experiments are therefore carried out in two stages. Execution results will be accessible in a new "outfiles" folder at goblinUpdater_experiments folder root. To run one of the following experiments "compileAndTest", "naiveUpdate" or "compareConfQualityAndCost", you must place the results from the "runUpdater" experiment into a "results" folder located at the root of the project. Requirements: Docker (https://docs.docker.com/engine/install/) Download and extract the entire contents of this Zenodo archive. Make sure Docker is running. From the root directory of the folder, run the command "docker-compose up --build".➡️ This will setup the Neo4j database containing the Maven Central graph, as well as the Weaver API for integrating and enriching this database. Once the API has been launched, open a new terminal and go to the "goblinUpdater_experiments" folder and run the command "sh run.sh".This will launch the "runUpdater" experiment⚠️ This process can take several weeks. To run one of the other experiments ("compileAndTest", "naiveUpdate" or "compareConfQualityAndCost"), you need to put the results of the "runUpdater" experiment obtained in the previous step in the "results" folder in the goblinUpdater_experiments folder root.➡️ If you don't want to wait weeks for execution, you can put the "execution" folder in the "results_data" folder. Modify the goblinUpdater_experiments/src/main/resources/configuration.yml file to choose the experiment you want to execute and re-run the "run.sh" script. Procedure for run the updater only Requirements: Docker, Java 17 To run the updater on a desired Java Maven project with a 'pom.xml' file, follow these steps: Download and extract the entire contents of this Zenodo archive. Make sure Docker is running. At the root of the folder, run the command "docker-compose up --build". ➡️This will setup the Neo4j database containing the Maven Central graph, as well as the Weaver API for integrating and enriching this database. Once the API has been launched, run on a new terminal the command:java -DweaverUrl=http://localhost:8080 -DprojectPath=-DconfFile=goblinUpdater_experiments/updater/conf_2_global.yml -jar goblinUpdater_experiments/updater/goblinUpdater-1.0.0-jar-with-dependencies.jar Currently, the results are displayed in the terminal. For a quick test, reviewers can replace "" by "./goblinUpdater". This will allow the tool to analyze the goblinUpdater project, which takes approximately 8 minutes. For additional information on configuring the updater, please refer to the 'goblinUpdater/gUpdaterConfig_TEMPLATE.yml'. The GitHub repository of the goblinUpdater is available here: https://github.com/Goblin-Ecosystem/goblinUpdater The GitHub repository of the experiments is available here: https://github.com/Goblin-Ecosystem/goblinUpdater-exeriments The GitHub repository of the goblinWeaver is available here: https://github.com/Goblin-Ecosystem/goblinWeaver
Dependency update, Software dependency, Software maintenance
Dependency update, Software dependency, Software maintenance
| selected citations These citations are derived from selected sources. This is an alternative to the "Influence" indicator, which also reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | 0 | |
| popularity This indicator reflects the "current" impact/attention (the "hype") of an article in the research community at large, based on the underlying citation network. | Average | |
| influence This indicator reflects the overall/total impact of an article in the research community at large, based on the underlying citation network (diachronically). | Average | |
| impulse This indicator reflects the initial momentum of an article directly after its publication, based on the underlying citation network. | Average |
