Steve Lawrence created DAFFODIL-2971:
----------------------------------------

             Summary: Setup release candidate workflow using github tags
                 Key: DAFFODIL-2971
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2971
             Project: Daffodil
          Issue Type: Improvement
          Components: Infrastructure
            Reporter: Steve Lawrence


Although the release candidate workflow is somewhat automated via the 
release-candidate-container, it is still sometimes difficult to just get the 
container up and running. ASF Infra allows automated build CI to do release 
candidates (a signing key and passwords are added as CI secrets), but it 
requires reproducible builds and  that part of the release candidate process 
verifies release candidate reproducibility. 

Although it's not a small amount of work, once complete it would 1) ensure 
builds are reproducible, which we should do anyways, and 2) make it so the only 
step to creating a release candidate is pushing a single tag and sending out a 
release vote--significantly less work than setting up and running a container.

These are the things that need to be done to enable this:

1. Modify all our repos to have reproducible builds. VS Code and Daffodil have 
a couple outstanding issues, but should be easy to resolve or already have PR's 
to fix them. SBT Plugin is already reproducible

2. Create a new container that is similar to the current release-candidate 
container, but removes all the complexity related to publishing. Instead it 
just creates all the artifacts that would normally be published and makes them 
available for reproducibility checks.

3. Create a script that downloads release candidate artifacts and compares them 
against the artifacts created by the container.

4. Create a wiki page that documents the steps required to verify release 
candidate reproducibility using the new container and script from steps 2 and 
3. The steps described in this page must be done during release candidate 
voting to verify that release candidates are reproducible. Note that not every 
single voter must do this, but the more the better.

5. Add a new github action that creates and publishes release candidates when a 
tag is created. This will use secrets configured by INFRA, and should perform 
similar actions in a similar environment as the new container so that 
reproducible builds can be verified.

6. Once this is all done, we can remove the release-candidate-container.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to