-
Notifications
You must be signed in to change notification settings - Fork 30
build!: cleanup dependency tree, shaded JAR, and deploy properly #632
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing
c-dilks
added a commit
that referenced
this pull request
May 23, 2025
This was referenced May 23, 2025
baltzell
pushed a commit
that referenced
this pull request
May 23, 2025
c-dilks
added a commit
that referenced
this pull request
Jul 15, 2025
The `$JYPATH` variable is used by some consumers (_e.g._, `j2root`) to set the class path for `run-groovy`. We lost the ability to customize this variable in #632. This PR restores the desired functionality.
c-dilks
added a commit
that referenced
this pull request
Jul 15, 2025
c-dilks
added a commit
that referenced
this pull request
Sep 15, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
c-dilks
added a commit
that referenced
this pull request
Sep 15, 2025
c-dilks
added a commit
that referenced
this pull request
Sep 15, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Sep 22, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
tongtongcao
pushed a commit
that referenced
this pull request
Sep 22, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Sep 22, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Nov 18, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
tongtongcao
pushed a commit
that referenced
this pull request
Nov 18, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Nov 18, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Nov 21, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
tongtongcao
pushed a commit
that referenced
this pull request
Nov 21, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Nov 21, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Dec 5, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
tongtongcao
pushed a commit
that referenced
this pull request
Dec 5, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Dec 5, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Dec 5, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
tongtongcao
pushed a commit
that referenced
this pull request
Dec 5, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Dec 5, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Dec 31, 2025
* fix: exclude maven metadata and jacoco from shaded JAR Excluding maven metadata fixes the following warning from `deployDistribution.sh`: ``` [WARNING] Artifact org.jlab.coat:coat-libs JAR (about to be installed/deployed) contains Maven Plugin metadata for conflicting coordinates: org.jacoco:jacoco-maven-plugin. Your JAR contains rogue Maven Plugin metadata. Possible causes may be: shaded into this JAR some Maven Plugin or some rogue resource. ``` Excluding `jacoco` since only used here for coverage testing * fix: now we can use `mvn deploy` * build: work in progress... * doc: deployment notes * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: mermaid * fix: more progress and an unhelpful git commit message * fix: flow control * doc: tersify * build: cleanup * fix: clear `ejml` warnings * build: untangling dependencies * build: openjfx * fix: more untangling * fix: classifiers * fix: only include `junit` where actually needed * fix: even more untangling * fix: resolved almost all the transitive dependencies * fix: the knot is untangled!!! * doc: mermaid * doc: mermaid * doc: mermaid * fix: remove test-scoped dependency `org.jlab.jnp:jnp-hipo4` from reconstruction tests This was strange. If I scope `jnp-hipo4` to `test` in the POM file, as suggested by `mvn dependency:analyze`, I would get build errors in very specific methods, for example, `ECCommon.readStripsHipo`: - my IDE (Eclipse JDT LSP) correctly sees `DataEvent` as `org.jlab.io.base.DataEvent` - the Maven build (`maven-compiler-plugin`) would get confused and think that `DataEvent` comes from somewhere in `jnp-hipo4`, even though this package was not being imported With the help of @raffaelladevita we found that `jnp-hipo4` dependency could actually be removed from all of the tests, so we can avoid the issue altogether. * fix: need `CLAS12DIR` in the test * ci: tell dependabot to not update `ejml-simple` * refactor: clarify which deps are for conflict resolution * ci: dependency analysis * fix(ci): dependence * fix: no progress printout * fix: stop screaming about unused shade deps * ci: release with version number in name; open issue if fail * fix: syntax and issue template * test: dump classpath for tests * perf(ci): move unit tests to their own job * ci: update needs for `final` * fix: exclude `coat-libs` from javadoc aggregation * fix: DRY violation of plugin version * fix: `coat-lib` -> `coat-libs` * fix: exclude `coat-libs` from `javadoc` in parent POM * fix: use `skip` configuration to self-exclude `coat-libs` * fix: `execution` * fix: explicit control in CI config * fix: install all modules' JARs * fix: env * feat: warn if a `target` directory persists after `mvn clean` * fix: improve installation * fix: claspathology * fix: source after clara * doc: choose version 1 * test: disable fail-fast * fix: appease clara and install `common-tools` to `lib/services` * fix: add `cnuphys/snr` and `clas-math` to `coat-libs`, since... ...they were in the original `coat-libs` somehow * doc: general deployment procedure * fix: small stuff * fix(coat-libs): `org.jlab.clas` -> `org.jlab.coat` * fix: actually deploy * fix(ci): `-pl` args * fix: release permission
tongtongcao
pushed a commit
that referenced
this pull request
Dec 31, 2025
tongtongcao
pushed a commit
that referenced
this pull request
Dec 31, 2025
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
ejml)coat-libsJAR file: now 3x smallercoat-libvs.coat-libsby choosingcoat-libs, which is the deployed JAR file's namedocs/dev_notes.mdDetails
Cleanup Dependency tree
ejml, see use the same ejml version used by j4ml #636)maven-enforcer-pluginto disallow conflicts at build time (enforce dependency convergence)ejml-simple) are now ignored by Dependabotmvn dependency:analyzeandmvn dependency:treeto detect themdependency:analyze, therefore "best" practices for dependencies is now enforcedcoat-libs, the shaded JAR, is excluded from this test, becausedependency:analyzethinks that all ofcoat-libs's dependencies are "unused"dependencyManagementis now used in theparent/pom.xml, to reduce the number of places that common dependencies have to be fully statedgrootis only needed inparent/pom.xml, and all otherpom.xmlfiles just need to say itsgroupIdandartifactIdIt was more work than just POMs
Most of dependency cleanup was just in the POM files, but some cases I had to edit Java files too:
remove test-scoped dependency org.jlab.jnp:jnp-hipo4 from reconstruction tests
This was strange. If I scope
jnp-hipo4totestin the POM file, as suggested bymvn dependency:analyze, I would get build errors in very specific methods, for example,ECCommon.readStripsHipo:DataEventasorg.jlab.io.base.DataEventmaven-compiler-plugin) would get confused and think thatDataEventcomes from somewhere injnp-hipo4, even though this package was not being importedWith the help of @raffaelladevita we found that
jnp-hipo4dependency could actually be removed from all of the impactedreconstructiontests (eb,ec,cvt,alert), so we can avoid the issue altogether.removal of transitive dependencies exposed "fake" dependencies
Not sure how to best explain this one, but in the process of "untangling" the "knot" of transitive dependencies, I had to also remove some unused
imported packages from the following files (see the PR diff for what was removed):clas-tracking:DAFilterKFitterKFitterStraightcnuphys/swimmer:SwimZWe have a lot more unused stuff, but that's out of scope of this giant PR. This PR's scope only aimed to make
mvn dependency:analyzehappy.Removed hard-coded classpaths
We had hard-coded classpaths in many places. We now set it once in
env.sh, and use that version everywhere (that I could find). The new classpath prioritizes the shaded JAR, since there are class overlaps (i.e., the class from the shaded JAR will be used if it is there); doesn't matter though, since the overlapping classes should be identical.Using Maven deployment plugin
This makes sure that all the files necessary for a Maven repository are produced, and therefore fixes #616.
The deployment process is now streamlined; see
docs/dev_notes.mdfor the procedure.New deployment tree (for example, releasing version 13.0.0):
cf. old deployment tree, which lacks hashes, has the wrong metadata files, and forces a non-timestamped snapshot version number:
version-bump.shno longer forces SNAPSHOT versioningNow
version-bump.shwill change the version to whatever you tell it, and does not append-SNAPSHOTfor the POM version numbers.Added more exclusions to the shaded JAR
deployDistribution.sh:jacocosince only used here for coverage testingcoat-lib->coat-libs, since the shaded JAR filename usescoat-libscoat-libsto provide those 3rd party dependencies