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)

Reply via email to