Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
b83144f
Update version number for dev branch
johannesduesing Aug 13, 2025
9af60ca
Fix broken examples in README file
johannesduesing Aug 26, 2025
4482950
Make it so that all clients must specify their data requirements
johannesduesing Aug 27, 2025
b5b7de6
Update examples in README. Bump develop version to 2.0.0-SNAPSHOT, as…
johannesduesing Aug 27, 2025
a4de31a
Remove now unused test utility class
johannesduesing Aug 27, 2025
643ef04
Remove unnecessary code from example in README
johannesduesing Aug 27, 2025
4a3184b
Merge pull request #25 from sse-labs/feature/23-force-client-config
jachiaram Aug 29, 2025
1769758
Add JAR file utilitiy methods to JarInformation, including access to …
johannesduesing Sep 5, 2025
4565046
Merge pull request #26 from sse-labs/feature/20-opal-utils
johannesduesing Sep 10, 2025
a7e02e9
Update OPAL to 6.0.0
johannesduesing Oct 17, 2025
36643a3
Update CI build to update dependabot alerts in the future
johannesduesing Oct 17, 2025
fff6b65
Introduce an interator on unique library IDs
johannesduesing Oct 17, 2025
b442adc
Add capabilitis to perform per-library analysis
johannesduesing Oct 20, 2025
1e9a538
Begin test implementation for new analysis
johannesduesing Oct 20, 2025
bb55af8
Merge pull request #29 from sse-labs/feature/opal-6
johannesduesing Oct 21, 2025
c435750
Proper testing for library analysis, bugfixes
johannesduesing Oct 21, 2025
8424e40
Ensure progress is properly saved in multithreaded settings
johannesduesing Oct 21, 2025
fa183a3
Use new parsing infrastructure and common configuration class in both…
johannesduesing Oct 22, 2025
d7c8ef3
Use common subclass for both analysis types
johannesduesing Oct 22, 2025
b7e62ad
Streamline handling of progress counter: It is the number of GAs / GA…
johannesduesing Oct 22, 2025
06afb6e
Merge branch 'develop' into feature/per-library-analysis
johannesduesing Oct 22, 2025
f16a6c2
Merge pull request #30 from sse-labs/feature/per-library-analysis
jachiaram Oct 22, 2025
9a85d60
Add custom logging bridge for internal Log4j and OPAL logging. Disabl…
johannesduesing Oct 23, 2025
30eddcb
Merge pull request #34 from sse-labs/feature/opal-logging
jachiaram Nov 2, 2025
ff1ab42
Introduce additional analysis lifecycle hooks. Fix two deprecation wa…
johannesduesing Nov 12, 2025
8d39a4c
Introduce liner warnings during compilation, fix issues where approri…
johannesduesing Nov 28, 2025
2c7b8ae
Merge pull request #35 from sse-labs/feature/lifecycle-hooks
johannesduesing Nov 28, 2025
e7085f4
Merge branch 'develop' into fix/unchecked-errors
johannesduesing Nov 28, 2025
e60b694
Merge pull request #36 from sse-labs/fix/unchecked-errors
johannesduesing Nov 28, 2025
7dde572
Introduce resolution contexts to avoid caching artifacts indefinetely…
johannesduesing Dec 3, 2025
a826747
Remove ArtifactFactory
johannesduesing Dec 3, 2025
aee1513
Reduce clutter
johannesduesing Dec 3, 2025
f3c9e76
Reduce visibility of artifact constructor, move contexts into model p…
johannesduesing Dec 3, 2025
39b8e17
Add JavaDoc to all changes for this branch
johannesduesing Dec 3, 2025
c92bb0d
Remove some more reundant global state that was only used in tests
johannesduesing Dec 3, 2025
116eb6b
Use a fresh class file reader instance for every JAR, which should re…
johannesduesing Dec 4, 2025
7f8a7b1
Merge pull request #37 from sse-labs/feature/no-artifact-caching
jachiaram Dec 5, 2025
b3b36ba
Remove errors in JavaDoc, make JavaDoc generation fail on warning, ad…
johannesduesing Dec 5, 2025
148e72a
Fix all Javadoc issues
johannesduesing Dec 5, 2025
0bed9ba
Merge pull request #39 from sse-labs/feature/javadoc
johannesduesing Dec 5, 2025
844e2c1
Drop Akka Actors in favor of Apache Pekko (typed) actors.
johannesduesing Dec 5, 2025
e93c65b
Drop Log4J in favor of SLF4J - this aligns with the logging framework…
johannesduesing Dec 5, 2025
f345b06
Fix wrong logging framework being mentioned in comments
johannesduesing Dec 8, 2025
bbcf219
Merge pull request #40 from sse-labs/feature/apache-pekko
johannesduesing Dec 8, 2025
c63eade
Rework configuration system. Add configuration builder classes to pro…
johannesduesing Dec 8, 2025
7b7e16b
Add artifact analysis iterator implementation (singlethreaded)
johannesduesing Dec 10, 2025
96aa62f
Finish analysis iterator for libraries, some restructuring to remove …
johannesduesing Dec 12, 2025
83c100e
Refractor new iterators to extract common functionality
johannesduesing Dec 12, 2025
94c9f31
Move resource file to test directory
johannesduesing Dec 12, 2025
f39f665
Add iterators to README
johannesduesing Dec 16, 2025
b71f251
Move to OPAL 7.0.0 and Scala 3. Fix vulnerable logback release
johannesduesing Dec 16, 2025
fd06868
Merge pull request #47 from sse-labs/feature/opal-7
johannesduesing Dec 18, 2025
32d0a94
Merge branch 'develop' into feature/analysis-as-iterator
johannesduesing Dec 18, 2025
b40a80a
Merge pull request #43 from sse-labs/feature/analysis-as-iterator
jachiaram Dec 19, 2025
70d6ef4
Add semantic version parsing and sorting infrastructure
johannesduesing Jan 7, 2026
b1e7eec
Add semantic version numbers to artifact idents, add JavaDoc
johannesduesing Jan 7, 2026
54db833
Add support for semantic version ranges, parser for maven ranges, tests
johannesduesing Jan 9, 2026
e8ca3aa
Accept YYYY-MM-DD format for cutoff dates via CLI. Change UNIX timest…
johannesduesing Jan 12, 2026
9316849
Update documentation for since-until in config builder, add convenien…
johannesduesing Jan 12, 2026
b28a4b2
Fix dependence on platform time zone
johannesduesing Jan 12, 2026
18ff1b0
Fix test dependence on index ordering
johannesduesing Mar 6, 2026
3eb79e2
Fix Javadoc warning
johannesduesing Mar 6, 2026
e78b386
Merge branch 'fix/test-data-dependencies' into feature/cutoff-dates
johannesduesing Mar 6, 2026
385e977
Merge pull request #49 from sse-labs/feature/cutoff-dates
johannesduesing Mar 6, 2026
8a8c772
Add fallback version list provider based on HTML parsing to compensat…
johannesduesing Mar 9, 2026
7fa7d66
Fix missing JavaDoc
johannesduesing Mar 9, 2026
25ccd7d
Fix stack overflow error for circular dependencies
johannesduesing Mar 9, 2026
5c304a9
Merge pull request #54 from sse-labs/bugfix/circular-pom-resolution
jachiaram Mar 9, 2026
46e1694
Merge branch 'develop' into feature/fallback-release-list-discovery
jachiaram Mar 10, 2026
cc7ea63
Merge pull request #53 from sse-labs/feature/fallback-release-list-di…
johannesduesing Mar 10, 2026
fcb007b
Merge branch 'develop' into feature/semver
johannesduesing Mar 30, 2026
e8a99ab
Merge pull request #56 from sse-labs/feature/semver
johannesduesing Mar 30, 2026
b1272e6
Create progress restore file with default value if it does not exist …
johannesduesing Mar 30, 2026
bf7bf98
Merge pull request #58 from sse-labs/fix/create-default-prf
johannesduesing Mar 30, 2026
d09a95e
Improve documentation of logging requirements, improve examples in re…
johannesduesing Mar 30, 2026
6b5c221
Fix vulnerability in dependencies
johannesduesing Mar 30, 2026
abbd3f1
Merge pull request #59 from sse-labs/feature/prepare-release-2.0.0
johannesduesing Mar 30, 2026
4377825
Update version numbers following release 2.0.0
johannesduesing Mar 30, 2026
1d4e382
Add release guide
johannesduesing Mar 30, 2026
c1d3fd5
Merge branch 'main' into release/2.0.0
johannesduesing Mar 30, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/maven.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,3 +32,7 @@ jobs:
run: mvn -B compile --file pom.xml
- name: Run unit tests
run: mvn -B test --file pom.xml
- name: Generate JavaDoc
run: mvn -B javadoc:javadoc --file pom.xml
- name: Update dependency graph
uses: advanced-security/maven-dependency-submission-action@v5
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,6 @@ settings.xml

#maven resolution files
maven-resolution-files
.DS_Store
.DS_Store
.mvn
marin-progress
170 changes: 122 additions & 48 deletions README.md

Large diffs are not rendered by default.

39 changes: 39 additions & 0 deletions docs/RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# Creating a MARIN release

1. Make sure the last CI build on `develop` was successful
2. Checkout branch `develop` locally, and create a new branch `feature/prepare-release-X.X.X` off of `develop`
3. Check [the dependabot logs](https://github.com/sse-labs/marin/security/dependabot) for vulnerabilities in the current build. If relevant vulnerabilities exist:
* Update dependencies according to security advisories.
* Run `mvn clean package` and make sure the dependency updates did not break compilation or tests
* If the update breaks the MARIN build or tests, postpone release and implement dependency updates on `develop`
* Add dependency updates as a commit to the release preparation branch
4. Verify that all code snippets in the README file actually work. To do so:
* Run `mvn clean install -DskipTests` to install the current snapshot version locally
* Create a demo client project that depends on the current snapshot version of MARIN
* Copy-Paste all snippets from the MARIN README to the client project
* Ensure the client projects builds successfully, and all executable code can in fact be executed.
* Update README snippets if necessary, and add a commit to the release preparation branch
5. If the release preparation branch contains at least one new commit, push it to the remote repo and create a PR on GitHub to merge your changes **back into develop**
6. Update your local version of MARIN with the last changes: `git checkout develop` and `git pull`
7. Create a new branch `release/X.X.X` off of develop
8. Update the `<version>` tag within `pom.xml` to contain the actual version you want to release (i.e., remove `-SNAPSHOT`)
9. Perform a dry run for deployment:
* Ensure `<skipPublishing>` is set to `true` in `pom.xml`
* Ensure `settings.xml` with the publishing credentials is located in your current user's `.m2` directory
* Ensure you have the GPG signing key installed and the passphrase is available
* Run `mvn clean deploy -DskipTests -P release`, enter the GPG passphrase when prompted
* If everything is configured correctly, Maven will report `BUILD SUCCESS` without actually publishing anything yet
10. Deploy the new version to Maven Central:
* Set `<skipPublihsing>` to `false` in `pom.xml`
* Run `mvn clean deploy -DskipTests -P release`, enter the GPG passphrase when prompted
* Set `<skipPublihsing>` to back to `true` in `pom.xml`
11. Publish the deployment:
* Go to the [Sonatype Website](https://central.sonatype.com/publishing/deployments) and log in to the publishing account
* Select the recent deployment, assert that the status says `Validated`
* Click on "Publish"
* Publishing can take a few minutes - check back periodically until status says "Published"
12. Change current MARIN version in README.md to newly released version
13. Push your `release/X.X.X` branch and create a PR merging you changes **into the main branch**.
14. Merge your `main` branch back into `develop`, increase `<version>` attribute in `pom.xml` (either minor or patch version), and add a `-SNAPSHOT` suffix
15. Create a GitHub release on the `main` branch
16. Update your local repo with `git fetch` and delete the release branch
90 changes: 62 additions & 28 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>eu.sse-labs</groupId>
<artifactId>marin</artifactId>
<version>1.0.0</version>
<version>2.0.0</version>

<packaging>jar</packaging>

Expand Down Expand Up @@ -37,36 +37,56 @@
</scm>

<properties>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<maven.compiler.release>11</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<scala.binary.version>3</scala.binary.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.apache.pekko</groupId>
<artifactId>pekko-bom_${scala.binary.version}</artifactId>
<version>1.3.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>com.typesafe.akka</groupId>
<artifactId>akka-actor_2.13</artifactId>
<version>2.9.0-M2</version>
<groupId>org.apache.pekko</groupId>
<artifactId>pekko-actor-typed_${scala.binary.version}</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>5.10.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.22.1</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.maven.indexer</groupId>
<artifactId>indexer-reader</artifactId>
<version>7.1.3</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.17.2</version>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>2.0.17</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.2</version>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.5.25</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
Expand All @@ -77,7 +97,7 @@
<dependency>
<groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>3.9.9</version>
<version>3.9.14</version>
</dependency>
<!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
<dependency>
Expand All @@ -97,8 +117,8 @@
</dependency>
<dependency>
<groupId>de.opal-project</groupId>
<artifactId>framework_2.13</artifactId>
<version>5.0.0</version>
<artifactId>framework_${scala.binary.version}</artifactId>
<version>7.0.0</version>
</dependency>

<!-- The following dependencies are pinned (lower bound) to avoid vulnerabilities in transitive dependencies -->
Expand Down Expand Up @@ -136,6 +156,33 @@
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.1</version>
<configuration>
<compilerArgs>
<arg>-Xlint:all,-serial,-processing</arg>
<arg>-Werror</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
<configuration>
<failOnWarnings>true</failOnWarnings>
</configuration>
</plugin>
</plugins>
</build>

Expand All @@ -158,19 +205,6 @@
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
Expand Down
72 changes: 0 additions & 72 deletions src/main/java/org/tudo/sse/ArtifactFactory.java

This file was deleted.

Loading
Loading