Skip to content

INTERNAL-2043 Add GitHub release actions to open-source plugin repos#1

Open
bin-xnatworks wants to merge 8 commits into
developfrom
xnat-8763
Open

INTERNAL-2043 Add GitHub release actions to open-source plugin repos#1
bin-xnatworks wants to merge 8 commits into
developfrom
xnat-8763

Conversation

@bin-xnatworks

@bin-xnatworks bin-xnatworks commented Jun 29, 2026

Copy link
Copy Markdown
Collaborator
  1. Java 21
  2. Gradle 9.4.1, monorepo 1.10.1-SNAPSHOT
  3. Add JFrog libs-snapshot to settings.gradle pluginManagement (was missing — xnat-data-builder plugin marker now resolves); add CI workflows: build-publish.yml / release-cut-rc.yml / release-promote.yml (thin callers of NrgXnat/xnat-ci-workflows@v1)
  4. Source migration dcm4che2dcm4che3 (4 files: DicomObjectAttributes, org.dcm4che2.data.Tagorg.dcm4che3.data.Tag)

- vXnat 1.8.4-SNAPSHOT -> 1.10.1-SNAPSHOT
- Gradle 7.2 -> 9.4.1
- git-version 0.12.1 -> 3.0.0, lombok 4.0.0 -> 5.0.0, dep-mgmt 1.0.11 -> 1.1.7
- xnat-data-builder 1.8.4-SNAPSHOT -> ${vXnat}
- Java 1.8 -> 21
- Hardcode lombok 1.18.34 (BOM 1.10.1 dropped importedProperties)
- Remove dicom-xnat-mx + xnat-data-models (merged into xnat-web)
- Replace top-level manifest {} with gitManifestAttrs Map (Gradle 9 removed)
- classifier "X" -> archiveClassifier.set("X") (Gradle 9 stricter)
- Add buildscript classpath xnat-web for xnatDataBuilder to resolve
  xs:import xnat.xsd (until monorepo PR #11 lands)
- Add turbine + velocity + servlet-api + log4j 1.2.17 + javax.servlet-api compileOnly

Source migration dcm4che2 -> dcm4che3:
- ConfigurableMappedProjectIdentifier, ConfigurableMappedAttributeExtractor,
  ConfigurableMappedNumberExtractor, ConfigurableMappedDicomObjectIdentifier:
  org.dcm4che2.data.{DicomObject,Tag} -> org.dcm4che3.data.{Attributes,Tag}.
  Matches monorepo 1.10.1 DicomProjectIdentifier interface (apply UserI,Attributes)
  and dicom-xnat-util TextExtractor/MatchedPatternExtractor.
- Add 'org.dcm4che:dcm4che-core:5.33.1' (dcm4che 5.x namespace), kept legacy
  'dcm4che:dcm4che-core' (dcm4che 2.x) until other refs are cleaned up.
Monorepo xnat-data-builder (PR #11 commit 9aa48e633) now provides
xnat-web at runtime, supplying xnat.xsd to plugin's xnatDataBuilder task
directly. Drops the unmaintained xnat-data-models artifact from buildscript.
…tifactory)

Plugin was missing both 'maven-publish' Gradle plugin AND any publishing
block, so CI 'gradle publish' would no-op. Add the standard
XNAT_Artifactory target used by other monorepo-aligned plugins.
…tern

Replace 187-line + 165-line inline workflows with ~37-line callers that
delegate to NrgXnat/xnat-ci-workflows reusable workflows:
  - gradle-release-cut-rc.yml@v1
  - gradle-release-promote.yml@v1

Total YAML saved per plugin: ~278 lines. Behavior unchanged — the
reusable workflows were extracted verbatim from the previous inline scripts.
The shared reusable workflow gradle-build-publish.yml@v1 has a
publish-ghcr job declaring 'permissions: contents: read, packages: write'.
Even though that job is gated by 'if: inputs.publish-ghcr' (default false),
GitHub Actions parses the permissions at workflow startup. If the caller
doesn't grant 'packages: write', the run fails with startup_failure
before any job runs.

Validated by dispatching build-publish on mfa-plugin/fake-develop:
- Without packages: write → startup_failure in 2s
- With packages: write → reaches Stage 1 Gradle build

Mirrors xnat monorepo's build-publish.yml caller pattern.
… snapshot resolves

monorepo 1.10.1-SNAPSHOT plugin marker lives in libs-snapshot, not libs-release.
Without this CI fails with: "Plugin [id: 'org.nrg.xnat.build.xnat-data-builder',
version: '1.10.1-SNAPSHOT'] was not found".
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.

2 participants