https://github.com/assert-kth/deptrim-experiments
Open-science repository containing our experiments about debloating for software diversification using DepTrim.
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 3 DOI reference(s) in README -
✓Academic publication links
Links to: zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (9.8%) to scientific vocabulary
Keywords
Repository
Open-science repository containing our experiments about debloating for software diversification using DepTrim.
Basic Info
Statistics
- Stars: 4
- Watchers: 12
- Forks: 0
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
deptrim-experiments
Open-science repository containing our experiments about automatic specialization of third-party dependencies using DepTrim.
Organization
This repository is organized as follows:
- pipeline contains the data collection pipeline.
- notebooks contains the R notebooks used analyze the results obtained with the pipeline.
- dataset contains part of the dataset of third party dependencies that we filtered to select the study subjects for experiments.
Collecting the results
To run the automatic data collection pipeline, you need the following installed:
- OpenJDK v17 or above
- Maven v3.8.4 or above
- DepClean v2.0.4 or above
- DepTrim v0.1.1 or above
Execute the run_pipeline.sh script.
This will create a directory named results with 30 subdirectories, each representing the result for a Java project.
For example, for the project java-faker, the results/java-faker directory contains the following files:
bash
depclean # This directory contains the results of running DepClean with the original POM.
depclean.log # DepClean execution logs.
pom-debloated # This directory contains the results when building with `pom-debloate.xml`.
all-dependencies # This directory contains all the JAR files of the analyzed dependencies.
automaton-1.11-8.jar
byte-buddy-1.9.3.jar
byte-buddy-agent-1.9.3.jar
commons-lang3-3.5.jar
commons-validator-1.6.jar
generex-1.0.2.jar
guava-20.0.jar
hamcrest-core-1.3.jar
hamcrest-library-1.3.jar
javassist-3.21.0-GA.jar
junit-4.12.jar
mockito-core-2.23.4.jar
objenesis-2.6.jar
reflections-0.9.11.jar
slf4j-api-1.7.25.jar
slf4j-simple-1.7.25.jar
snakeyaml-1.26-android.jar
all-dependencies.log # Maven dependecies:copy-dependency logs.
javafaker-1.0.3-SNAPSHOT.jar # Maven build JAR file of the project.
maven.log # Maven build logs when using pom-debloated.xml.
pom-debloated.xml # The debloated POM generated by DepClean.
deptrim # This directory contains the results of running DepTrim.
deptrim.log # DepTrim execution log with parameter `createSinglePomSpecialized`.
libs-specialized # This directory contains the JAR files of all the specialized dependencies.
automaton-1.11-8.jar
commons-lang3-3.5.jar
generex-1.0.2.jar
snakeyaml-1.26-android.jar
pom-specialized # This directory contains the results when building with `pom-specialized.xml`.
dependency-tree.log # Maven dependency tree.
javafaker-1.0.3-SNAPSHOT.jar # Maven build JAR file of the project.
maven.log # Maven build execution log when running with `pom-specialized.xml`.
pom-specialized.xml # The POM with all the specialized dependencies.
pom-specialized_1_4 # This directory contains the Maven build results when using a pom file with 1 specialized dependency.
dependency-tree.log
javafaker-1.0.3-SNAPSHOT.jar
maven.log
pom-specialized_1_4.xml
pom-specialized_2_4 # This directory contains the Maven build results when using a pom file with 2 specialized dependency.
dependency-tree.log
javafaker-1.0.3-SNAPSHOT.jar
maven.log
pom-specialized_2_4.xml
pom-specialized_3_4 # This directory contains the Maven build results when using a pom file with 3 specialized dependency.
dependency-tree.log
javafaker-1.0.3-SNAPSHOT.jar
maven.log
pom-specialized_3_4.xml
pom-specialized_4_4 # This directory contains the Maven build results when using a pom file with 4 specialized dependency.
dependency-tree.log
javafaker-1.0.3-SNAPSHOT.jar
maven.log
pom-specialized_4_4.xml
deptrim.log
original # This directory contains the results of the original building the original project.
all-dependencies # This directory contains all the JAR files of all the dependencies.
dependency
automaton-1.11-8.jar
byte-buddy-1.9.3.jar
byte-buddy-agent-1.9.3.jar
commons-beanutils-1.9.2.jar
commons-collections-3.2.2.jar
commons-digester-1.8.1.jar
commons-lang3-3.5.jar
commons-logging-1.2.jar
commons-validator-1.6.jar
generex-1.0.2.jar
guava-20.0.jar
hamcrest-core-1.3.jar
hamcrest-library-1.3.jar
javassist-3.21.0-GA.jar
junit-4.12.jar
mockito-core-2.23.4.jar
objenesis-2.6.jar
reflections-0.9.11.jar
slf4j-api-1.7.25.jar
slf4j-simple-1.7.25.jar
snakeyaml-1.26-android.jar
all-dependencies.log # Maven dependecies:copy-dependency logs.
compile-scope-dependencies # This directory contains only the `compile` scope dependencies.
dependency
automaton-1.11-8.jar
commons-lang3-3.5.jar
generex-1.0.2.jar
snakeyaml-1.26-android.jar
compile-scope-dependencies.log
dependency-list.log # List of all the dependencies.
dependency-tree.log # Dependency tree.
javafaker-1.0.3-SNAPSHOT.jar # Artifact from the original build.
maven.log # Maven build log.
pom-original.xml # Original POM file.
For your convenience, we provide a Dockerfile will all the necessary to run the data collection pipeline.
License
Distributed under the MIT License. See LICENSE for more information.
Funding
DepTrim is partially funded by the Wallenberg Autonomous Systems and Software Program (WASP).
Owner
- Name: ASSERT
- Login: ASSERT-KTH
- Kind: organization
- Location: Sweden
- Website: https://github.com/ASSERT-KTH/
- Repositories: 87
- Profile: https://github.com/ASSERT-KTH
assertEquals("Research group at KTH Royal Institute of Technology, Stockholm, Sweden", description);
GitHub Events
Total
Last Year
Dependencies
- alpine latest build
- typescript 4.8.3 development
- xhr2 0.2.1
- shelljs 0.8.5 development
- typescript 4.8.3 development
- xhr2 ^0.2.1
- balanced-match 1.0.2
- brace-expansion 1.1.11
- concat-map 0.0.1
- fs.realpath 1.0.0
- function-bind 1.1.1
- glob 7.2.3
- has 1.0.3
- inflight 1.0.6
- inherits 2.0.4
- interpret 1.4.0
- is-core-module 2.10.0
- minimatch 3.1.2
- once 1.4.0
- path-is-absolute 1.0.1
- path-parse 1.0.7
- rechoir 0.6.2
- resolve 1.22.1
- shelljs 0.8.5
- supports-preserve-symlinks-flag 1.0.0
- typescript 4.8.3
- wrappy 1.0.2
- xhr2 0.2.1
- minizinc/mznc2018 1.0 build
- org.mockito:mockito-all 1.10.19
- org.scala-lang:scala-compiler 2.13.1
- org.scala-lang:scala-library 2.13.1
- org.slf4j:slf4j-api 1.7.24
- org.slf4j:slf4j-log4j12 1.7.24
- junit:junit 4.13.1 test