Skip to content

Modernize Maven build configuration#364

Closed
vladdu wants to merge 14 commits into
erlang:masterfrom
vladdu:modernize-build
Closed

Modernize Maven build configuration#364
vladdu wants to merge 14 commits into
erlang:masterfrom
vladdu:modernize-build

Conversation

@vladdu
Copy link
Copy Markdown
Collaborator

@vladdu vladdu commented May 13, 2026

Tycho 1.7.0 -> 5.0.2, Eclipse 2018-09 -> 2026-03, Java 8 -> 21,
jacoco 0.8.5 -> 0.8.12, maven-antrun 1.7 -> 3.1.0.

Drop tycho-pomless in favor of tycho-build extension. Merge tycho-extras
into tycho proper (gone since 2.0).

Move gson/guava/commons.io/commons.lang3/commons.collections from the old Orbit + erlide-libs
P2 repos into the main Eclipse release repo. Swap commons.lang ->
commons.lang3 in extra-requirements.

Drop the obsolete Neon updates and Orbit P2 repos.

Comment out wrangler module (will be deleted next).

Eclipse-generated regexFilterMatcher entries had unescaped '.git'
which matches more than intended. Use '.git'. Cosmetic; refreshes
filter IDs.

vladdu and others added 14 commits May 11, 2026 22:27
Tycho 1.7.0 -> 5.0.2, Eclipse 2018-09 -> 2026-03, Java 8 -> 21,
jacoco 0.8.5 -> 0.8.12, maven-antrun 1.7 -> 3.1.0. Drop
tycho-pomless in favor of tycho-build extension. Merge tycho-extras
into tycho proper (gone since 2.0). Move gson/guava/commons.io/
commons.lang3/commons.collections from the old Orbit + erlide-libs
P2 repos into the main Eclipse release repo. Swap commons.lang ->
commons.lang3 in extra-requirements. Drop the obsolete Neon updates
and Orbit P2 repos. Comment out wrangler module (will be deleted
next).

Eclipse target version will be re-pinned to 2025-12 in a follow-up
commit per spec.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

mvn config update
Escape dot in .git regex filter across all .project files

Eclipse-generated regexFilterMatcher entries had unescaped '.git'
which matches more than intended. Use '\.git'. Cosmetic; refreshes
filter IDs.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
One release behind 2026-03 for a stabilized build target. Java
target remains 21 (current LTS).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Project compiles for Java 21 now; CI runner still pinned to JDK 8
would fail immediately. Update unrelated CI concerns are not part
of this round.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tycho 5.0.2 requires Maven 3.9+. The wrapper was still on 3.6.3,
causing target resolution to fail with a Guice injection error
during Maven startup. Also bump the enforcer requireMavenVersion
minimum from 3.6.3 to 3.9.0 to keep configuration consistent.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Project now targets Java 21 via pom.xml maven.compiler.source/
target and the maven-enforcer requireJavaVersion. Bundle execution
environment declarations were still JavaSE-1.8, which causes PDE/
Tycho to provision an unavailable JRE during resolution.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Tycho 5 derives --release from maven.compiler.source/target.
Passing both --release and -21 to ECJ produces "option 21 is not
supported when --release is used" and aborts compilation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Eclipse 2025-12 ships the Apache Commons IO bundle under the
new Maven-style symbolic name `org.apache.commons.commons-io`
(verified by inspecting the P2 content.xml of the release repo).
Tycho fails with: Could not find "org.apache.commons.io/0.0.0"
in the repositories of the current location.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Remove the wrangler feature (dropped in earlier commit), the
abstratt eclipsegraphviz feature (was sourced from a P2 repo no
longer reachable), the now-orphaned 'extras' category-def, and the
dead Orbit repository-reference URL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Three internal/removed symbols broke compilation against Eclipse
2025-12:

- IInternalDebugUIConstants.IMG_ELCL_REMOVE (ConsoleRemoveLaunchAction)
  -> public IDebugUIConstants.IMG_LCL_REMOVE (same as the main image)
- IInternalDebugUIConstants.IMG_LCL_TERMINATE (ConsoleTerminateAction)
  -> IInternalDebugUIConstants.IMG_ELCL_TERMINATE (still internal but
  retained in 2025-12; the old "LCL" name was retired)
- jface.internal.text.link.contentassist.LineBreakingReader
  (ErlInformationPresenter) -> private static nested class with the
  same readLine()/isFormattedLine() API, using java.text.BreakIterator
  and SWT GC for word-wrap measurement

No MANIFEST.MF changes required.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Strict version pins on these bundles caused site assembly to fail
against Eclipse 2025-12 which ships newer versions. The other
bundle entries in category.xml are already unversioned; align them
all.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Eclipse 2025-12 ships xtext.xbase.lib 2.42 which itself requires
com.google.guava 33.5+. The previous [21.0.0, 33.4.0) upper bound
created an OSGi uses-constraint violation: org.erlide bundles
required guava < 33.4 while xbase.lib required guava >= 33.5.
Felix refused to resolve, producing a test-launcher error code 13
on org.erlide.runtime.tests.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The implementation backs its result on a HashSet (ModelFindUtil.java
line 232), so the order in which two included modules appear is not
defined. The previous assertion read includedFiles2.get(0) and
get(1) expecting yy.hrl then zz.hrl, which happened to hold under
older JVMs and guava versions. After bumping to Eclipse 2025-12
and current guava, the order flipped and the test failed.

Switch to contains() checks instead of index-based asserts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The earlier widening commit (818c4db05) hit plugins/* and libs/* but
missed two test bundles. With guava 33.5+ being loaded for production
plugins and < 33.4 for these test bundles, an OSGi class-loader split
would yield ClassCastException on any guava type that crosses the
bundle boundary during a test. Tests are currently green, but the
divergence is a latent hazard.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@vladdu vladdu closed this May 13, 2026
@vladdu
Copy link
Copy Markdown
Collaborator Author

vladdu commented May 13, 2026

sorry, this should have been in my repo only

@vladdu vladdu deleted the modernize-build branch May 13, 2026 09:00
@vladdu vladdu restored the modernize-build branch May 13, 2026 09:02
@vladdu vladdu deleted the modernize-build branch May 13, 2026 09:23
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