Skip to content

cytoscape/cytoscape#35: Move source:aggregate into a 'sources' profile, use HTTPS repos - #15

Open
chrtannus wants to merge 2 commits into
developfrom
fix/35-build-from-root
Open

chrtannus wants to merge 2 commits into
developfrom
fix/35-build-from-root

Conversation

@chrtannus

@chrtannus chrtannus commented Aug 15, 2026

Copy link
Copy Markdown
Member

Part of the multi-repository fix for cytoscape/cytoscape#35. Main description and full verification: cytoscape/cytoscape#36.

⚠️ Must merge together with cytoscape/cytoscape-impl and cytoscape/cytoscape-app-developer.

Changes

Move source:aggregate into a sources profile. api/pom.xml bound maven-source-plugin's aggregate goal to the package phase of api-parent. That goal forks a generate-sources lifecycle over every module, and a forked lifecycle resolves dependencies from the local repository rather than the reactor — so at api-parent, module 2 of 122, it looked for event-api before the reactor had built it. Any build whose version was not already in ~/.m2 died there, which is every build right after a version bump.

Not a circular dependency: the module graph is acyclic and the reactor order was already correct. Also note -Dmaven.source.skip=true does not help — the fork is planned before the skip flag is evaluated.

The aggregated sources JAR is still needed by the app-developer kit, so it moves to a sources profile used as a second pass:

mvn clean install -DskipTests
mvn install -Psources -DskipTests

Use HTTPS for Maven repositories. The remaining http:// URLs in .travis.settings.xml become https://; Maven 3.8.1+ blocks plain http. Repository ids are unchanged, so cached artifacts stay valid.

Verification

Verified as part of the full seven-repository build on develop against a genuinely empty local repository with no settings file: 122 SUCCESS / 0 FAILURE on both passes, zero blocked-mirror errors. Details in cytoscape/cytoscape#36.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Build Improvements

    • Updated artifact repository connections to use secure HTTPS endpoints.
    • Source archive generation is now optional, helping streamline standard builds.
    • Added guidance for generating aggregated source archives, including the required build steps and repository considerations.
  • Documentation

    • Clarified how to enable optional source packaging and the conditions required for successful generation.

chrtannus and others added 2 commits August 14, 2026 18:31
api/pom.xml and impl/pom.xml bound maven-source-plugin's 'aggregate' goal
to the package phase of their aggregator POM. 'aggregate' forks a
generate-sources lifecycle over every module, and a forked lifecycle
resolves its dependencies from the local repository rather than the
reactor. Running at api-parent - module 2 of 122 - it looked for
event-api before the reactor had built it, so 'mvn clean install' from
the root failed there on any build whose version was not already in
~/.m2, which is every build right after a version bump. impl-parent had
the same problem at module 33. Note -Dmaven.source.skip=true does not
help: the fork is planned before the skip flag is evaluated.

Moving both executions into a 'sources' profile keeps them out of the
default build, so a plain 'mvn clean install' now works in a single pass
from a cold local repository. The aggregated JARs are still needed by the
app-developer kit, which is built with a second pass:

    mvn clean install -DskipTests
    mvn install -Psources -DskipTests

Verified on develop from a purged ~/.m2: both passes give
122 SUCCESS / 0 FAILURE / 0 SKIPPED, with no forks in pass 1, and
app-developer/target/lib ends up with the same contents as before.

See cytoscape/cytoscape#35

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Maven 3.8.1 and later refuse to resolve artifacts from plain http://
repositories, rejecting them via the built-in maven-default-http-blocker
mirror. Every remaining http:// nrnb-nexus URL, and the http:// Maven
Central URL in the Travis settings, is switched to https. The nexus and
Central both serve https, and the repository ids are unchanged, so
artifacts already cached in ~/.m2 stay valid.

Verified on develop with stock Maven 3.9.14 - no -s settings file, so the
http blocker is fully active - from a local repository with the Cytoscape
3.11.0-SNAPSHOT artifacts and the cytoscape-temp/cytoscape-sun
third-party trees deleted:

    mvn clean install -DskipTests      -> 122 SUCCESS / 0 FAILURE
    mvn install -Psources -DskipTests  -> 122 SUCCESS / 0 FAILURE

Zero blocked-mirror errors, 114 artifacts fetched over https.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Aug 15, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 048b9085-c8cf-4108-8fdd-e8ae41a96a21

📥 Commits

Reviewing files that changed from the base of the PR and between 8fbed90 and eae84bf.

📒 Files selected for processing (2)
  • .travis.settings.xml
  • pom.xml

📝 Walkthrough

Walkthrough

The PR changes Maven repository URLs from HTTP to HTTPS and moves aggregate source generation from the default build into an opt-in sources profile.

Changes

Build configuration

Layer / File(s) Summary
Secure Maven repository URLs
.travis.settings.xml
Cytoscape snapshots, releases, third-party artifacts, and Maven Central use HTTPS URLs.
Opt-in source aggregation
pom.xml
The aggregate source execution runs in the sources profile during package. The POM documents the required two-pass invocation and repository limitation.

Estimated code review effort: 2 (Simple) | ~10 minutes

Merge Risk: ⚪ Minimal · up to eae84

This change moves source aggregation into an explicit build profile and updates repository URLs to HTTPS; no actionable merge-blocking risk remains after normal checks and review.

Possibly related issues

  • cytoscape/cytoscape#35 — The PR moves aggregate source generation into an opt-in profile and updates repository URLs to HTTPS.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly identifies both main changes: moving source aggregation into a profile and updating Maven repository URLs to HTTPS.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/35-build-from-root

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant