Robbie Gemmell created ARTEMIS-3328:
---------------------------------------
Summary: various assembly related improvements
Key: ARTEMIS-3328
URL: https://issues.apache.org/jira/browse/ARTEMIS-3328
Project: ActiveMQ Artemis
Issue Type: Task
Affects Versions: 2.17.0
Reporter: Robbie Gemmell
Assignee: Robbie Gemmell
Fix For: 2.18.0
Various assembly related improvements continuing from recent changes in
ARTEMIS-3296 / ARTEMIS-3314:
- Fix assembly descriptors and stop downgrading the assembly plugin.
- Only build the source-release assembly during release (or on explicit
request).
- Suppress creating and deploying (then deleting) unused assembly file
configured by parent pom.
Expansions:
—
ARTEMIS-3296 refreshed the build plugins etc in general, including upgrading to
use apache parent pom 23 rather than 18. After doing this initially it was
noticed the broker assembly script permissions had changed meaning e.g the
setup/startup scripts werent executable and so couldnt be run. The pom changes
lifted the assembly plugin up to version 3.2.0. Other projects ad reported
similar change in behaviour, and that it worked up to 3.1.1. That downgrade was
made and the assembly started working again.
At the time this seemed like just an assembly plugin version issue, but
actually the 'updated' permission behaviour appears to match precisely what
even the much older assembly plugin documentation states should happen, while
the prior behaviour does not. Further, upon looking it can be seen the artemis
assembly descriptor is incorrectly configuring trying to set execute
permissions on the various scripts, as the config references files that dont
actually exist. The scripts in the existing release assemblies look to have
really only been executable thus far due to undefined/buggy behaviour in the
assembly plugin previously.
The descriptors should be updated to properly define all the expected
permissions and ensure any files needing to be marked executable are explicitly
configured to be so.
—
The artemis-distribution module builds source and binary assemblies, and a
directory matching the latter that can be simply run without extraction.
The source-release assembly is typically only used near/at/after release time,
yet ~10 seconds is taken on every build (running to/beyond package phase) in
order to create it. This should be gated off in a profile so that it only
happens during the release, or upon simple explicit request when needed.
—
The apache parent pom includes config to create a basic source release
assembly. Artemis builds its own source release assembly in the
artemis-distribution module, meaning this parent-derived assembly is not
actually used. The build lets it be created and deployed however, and the
release instructions even contain a note to delete it before closing the
staging repository.
This assembly creation can simply be overridden and disabled to avoid it being
created, deployed, or needing to be removed from the staging repo.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)