Skip to content

Publish via Central Portal and update dependencies (Java 17, Xtext 2.42, Gradle 8, Tycho 4) - #390

Merged
stefan-ka merged 6 commits into
masterfrom
chore/central-portal-and-dependency-updates
Oct 20, 2026
Merged

stefan-ka merged 6 commits into
masterfrom
chore/central-portal-and-dependency-updates

Conversation

@stefan-ka

@stefan-ka stefan-ka commented Oct 20, 2026 •

Copy link
Copy Markdown
Member

Preparation for the next release, to be merged before the feature PRs (#383 ff.).

1. Publishing via the Sonatype Central Portal

OSSRH (oss.sonatype.org) has been shut down, so snapshot and release publishing failed.

  • Snapshots (push to master): https://central.sonatype.com/repository/maven-snapshots/
  • Releases (tag v*): uploaded via the OSSRH Staging API (ossrh-staging-api.central.sonatype.com), so the existing Gradle maven-publish setup keeps working. A new workflow step then transfers the upload to the Central Portal, where the deployment is published manually under https://central.sonatype.com/publishing/deployments (like closing/releasing the staging repo before).
  • Credentials: secrets CENTRAL_USERNAME / CENTRAL_PASSWORD (Portal user token).

Snapshot publishing can only be tested by the first push to master (i.e. merging this PR). The release step can only be tested with a real release; nothing goes live without the manual "Publish" in the Portal.

2. Dependency updates

Java 17 is the new minimum (Xtext 2.42 is compiled for Java 17).

Gradle build (standalone library, LSP):

  • Gradle 7.4.2 → 9.8.2, xtext-gradle-plugin 3.0.2 → 4.0.0, Xtext 2.32 → 2.42
  • Deprecations that fail in Gradle 10 fixed (except one Task.project warning inside the xtext-gradle-plugin's generateXtext task)
  • commons-io, commons-lang3, freemarker, JUnit updated; unused Jackson and SnakeYAML removed (left over from the Service Cutter removal)
  • LSP4J 1.0 (via Xtext): Diagnostic.getMessage() is an Either now; language server tests adjusted (workspace capabilities, new tooltip attribute)

Maven/Tycho build (Eclipse plugin):

  • Tycho 2.7.5 → 5.0.4, Maven 3.8.6 → 3.9.16
  • Not Maven 3.10.0 yet: Tycho 4.0.13 fails on it (No implementation for MavenTargetLocationFactory was bound), and Tycho 5.0.4 fails during dependency resolution (Invalid Collect Request: null). Both work on 3.9.16.
  • Target platform: Eclipse 2026-03, Xtext 2.42, MWE2 2.25, Orbit 2026-03
  • The Eclipse 2026-03 platform requires Java 21 to run, so the Tycho jobs run on JDK 21; our bundles still require only JavaSE-17. The Gradle jobs stay on JDK 17.
  • tycho-eclipserun-plugin → tycho-eclipse-plugin (relocated in Tycho 4)

Verification (local)

  • ./gradlew clean build on JDK 17: 790 DSL tests + 86 LSP tests green
  • ./mvnw clean verify on JDK 21: green (790 tests)
  • Eclipse snapshot publishing (-Prelease-composite -Prelease-snapshot-version) run up to verify against a local dummy update-site repo: p2 composite created and committed (not pushed)

Not tested / follow-ups

  • release-trigger.yml (release:prepare, maven-release-plugin 2.5.3) on Maven 3.9 / JDK 21 can only be tested with a real release.
  • VS Code extension: the snapshot repository URL has to be changed to the Central Portal (Highlight nonResponsibilities keyword vscode-extension#44) once a snapshot was published.

Gradle's Ant integration needs java.util.prefs to be opened on JDK 17+,
otherwise jacocoTestReport fails with 'Could not inspect the Groovy system'.
OSSRH (oss.sonatype.org) has been shut down. Snapshots go to the Central
Portal snapshot repository; releases are uploaded via the OSSRH Staging
API and then transferred to the Central Portal, where they are published
manually. Credentials come from the CENTRAL_USERNAME/CENTRAL_PASSWORD
secrets (Portal user token).
- Gradle 7.4.2 -> 8.14.6, xtext-gradle-plugin 3.0.2 -> 4.0.0
- Xtext 2.32 -> 2.42 (Java 17 is the minimum now; LSP4J 1.0)
- commons-io, commons-lang3, freemarker and JUnit updated; unused
  Jackson and SnakeYAML dependencies removed
- Adjust language server to LSP4J 1.0 (diagnostic message is an Either)
- Language server tests: keep the workspace capabilities prepared by
  Xtext and expect the new tooltip attribute of commands
- Tycho 2.7.5 -> 4.0.13, Maven wrapper 3.8.6 -> 3.9.16
- Target platform: Eclipse 2026-03, Xtext 2.42, MWE2 2.25, Orbit 2026-03
- Bundles require JavaSE-17; the Eclipse 2026-03 platform itself needs
  Java 21, so the Tycho build (CI jobs using mvnw) runs on JDK 21
- tycho-eclipserun-plugin replaced by tycho-eclipse-plugin (relocated)
- xtend-maven-plugin moved to the org.eclipse.xtext groupId
- Remove unused Jackson, SnakeYAML, classgraph and slf4j requirements
- README: JDK 17 or newer
@codecov

codecov Bot commented Oct 20, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 33.33333% with 2 lines in your changes missing coverage. Please review.
✅ Project coverage is 91.8%. Comparing base (995f486) to head (9a6997f).
⚠️ Report is 1 commits behind head on master.

Files with missing lines Patch % Lines
...ntextmapper/dsl/ide/actions/CMLActionRegistry.java 33.3% 0 Missing and 2 partials ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             master    #390   +/-   ##
========================================
  Coverage      91.8%   91.8%           
- Complexity     2230    2231    +1     
========================================
  Files           211     211           
  Lines          5941    5942    +1     
  Branches        806     807    +1     
========================================
+ Hits           5458    5459    +1     
  Misses          230     230           
  Partials        253     253           

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

- XmlSlurper moved to groovy.xml (Groovy 4)
- Fix deprecations that fail in Gradle 10: single-string dependency
  notation, sources/javadoc jars via assemble instead of the archives
  configuration, GenerateMavenPom configured without the model DSL
@stefan-ka
stefan-ka marked this pull request as ready for review October 20, 2026 20:50
@stefan-ka
stefan-ka merged commit 17d16de into master Oct 20, 2026
5 checks passed
@stefan-ka
stefan-ka deleted the chore/central-portal-and-dependency-updates branch October 20, 2026 20:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant