Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "MicroProfile/SpecRelease/Release"

(Created page with "= How to perform a release = The following process applies to any release, including milestones, release candidates and final. I have not got it working on Windows. Other OS...")
 
(Making the instructions more generic)
Line 1: Line 1:
 
= How to perform a release =
 
= How to perform a release =
  
The following process applies to any release, including milestones, release candidates and final. I have not got it working on Windows. Other OS is fine.
+
The following process applies to any release, including milestones, release candidates, and final release.  
# Prepare the release
+
{{note|These instructions assume a Mac or Linux environment. Windows is not currently supported.}}
## Clone the spec repo e.g. [https://github.com/eclipse/microprofile-config/tree/master MicroProfile Config master repository]
+
# Prepare the component
## Run the release script, which can be found under perform_release folder in the repo. e.g. [https://github.com/eclipse/microprofile-config/blob/master/perform_release/prepare_release.sh prepare_release.sh] script (specify required env vars before) - it should create a tag and push it to the upstream repository
+
## Ensure that the perform_release folder exists in the component's repo.  This folder should contain both the prepare_release.sh and deploy_to_maven_central.sh scripts.  If these are missing, copy them from the top-level [https://github.com/eclipse/microprofile-bom/blob/master/perform_release/ microprofile-bom repo].
 +
## Ensure the component's top-level pom.xml has the appropriate <scm>, and release <profile> and <plugin> stanzas.  Again, compare with the top-level [https://github.com/eclipse/microprofile-bom/blob/master/pom.xml microprofile-bom pom.xml].
 +
# Prepare the candidate release
 +
## Clone the respective component repo (e.g. [https://github.com/eclipse/microprofile-bom/tree/master MicroProfile BOM master repository])
 +
## Run the release script, which can be found under perform_release folder in the repo (e.g. [https://github.com/eclipse/microprofile-bom/blob/master/perform_release/prepare_release.sh prepare_release.sh script]).  Be sure to specify the required env vars before.  The script should create a tag (RELEASE_VERSION) and push it to the upstream repository.
 
### export RELEASE_VERSION=1.0-RC1
 
### export RELEASE_VERSION=1.0-RC1
 
### export DEV_VERSION=1.0-SNAPSHOT
 
### export DEV_VERSION=1.0-SNAPSHOT
Line 10: Line 14:
 
### export GIT_EMAIL='john_doe@gmail.com'
 
### export GIT_EMAIL='john_doe@gmail.com'
 
# Deploy artifacts into Eclipse repository
 
# Deploy artifacts into Eclipse repository
## Logon to Jenkins (register for an account if you don't have a Jenkins account)
+
## [https://hudson.eclipse.org/microprofile/ Logon to Jenkins] (your Eclipse logon should work)
## Go to the Jenkin release job e.g. https://ci.eclipse.org/microprofile/job/CONFIG-deploy-prerelease-artifacts/ and then click on "Build with Parameters"
+
## Go to the Jenkins release job for your component (e.g. [https://ci.eclipse.org/microprofile/job/BOM-deploy-prerelease-artifacts/ BOM-deploy-prerelease-artifacts]) and then click on "Build with Parameters"
# Download the PDF document from the Jenkins job and e.g. from [https://ci.eclipse.org/microprofile/job/CONFIG-deploy-prerelease-artifacts/ws/spec/target/generated-docs/spec/target/generated-docs in the workspace] and copy it to github release page (this step could be removed if we release it to a maven repo)
+
### If a Jenkins job does not exist for your component, then you should copy an existing job and modify according to your component.  You do that by clicking on [https://hudson.eclipse.org/microprofile/view/all/newJob New Item] on the left hand menu, and then using the "copy from" function at the bottom of that page.
 +
# Download the PDF document from the Jenkins job (e.g. [https://ci.eclipse.org/microprofile/job/BOM-deploy-prerelease-artifacts/ws/spec/target/generated-docs/spec/target/generated-docs in the workspace]) and copy it to previously created github release page (e.g.  https://github.com/eclipse/microprofile-jwt-auth/releases/tag/1.0-RC10) 
 +
(Note:  This step could be removed if we release it to a maven repo.)
 +
## You can also add additional text to this github release page to help explain the release.
 
# Notify MicroProfile community about the new version
 
# Notify MicroProfile community about the new version
 
## Send information about the created tag and artifact to review the release, e.g. on mailing-list
 
## Send information about the created tag and artifact to review the release, e.g. on mailing-list
### Git tag is in the [https://github.com/eclipse/microprofile-config source repository]
+
### Git tag is in the [https://github.com/eclipse/microprofile-bom source repository]
### artifacts (API, TCK, PDF?) are in the [https://repo.eclipse.org/content/groups/microprofile/org/eclipse/microprofile/config/ Eclipse repository]
+
### Artifacts (API, TCK, PDF?) are in the [https://repo.eclipse.org/content/groups/microprofile/org/eclipse/microprofile/bom/ Eclipse repository]
  
 
== How to perform a release of a final version ==
 
== How to perform a release of a final version ==
  
Do the steps above for a release candidate, except increase the development version instead of leaving it the same as before
+
Do the steps above for a release candidate, except increase the development version instead of leaving it the same as before.
  
If a release candidate is approved, it can be turned into final
+
If a release candidate is approved, it can be turned into final release.
 
# Run the above steps for the final version, but:
 
# Run the above steps for the final version, but:
## set BASE_REVISION variable to the name of the release candidate tag
+
## set RELEASE_VERSION variable to the name of the final release tag (e.g. 1.0)
## increase DEV_VERSION to point to the next snapshot version
+
## increase DEV_VERSION to point to the next snapshot version (e.g. 1.1-SNAPSHOT)
# Publish the final artifact to Maven central - follow instructions in the script in the repo e.g. [https://github.com/eclipse/microprofile-config/blob/master/perform_release/deploy_to_maven_central.sh deploy_to_maven_central.sh]
+
# Publish the final artifact to Maven central - follow instructions in the script in the repo e.g. [https://github.com/eclipse/microprofile-bom/blob/master/perform_release/deploy_to_maven_central.sh deploy_to_maven_central.sh]
 
# announce the final version
 
# announce the final version
 
# increase the snapshot version in master: merge the intermediary branch branch_$RELEASE_VERSION created locally by the script to master and push master:
 
# increase the snapshot version in master: merge the intermediary branch branch_$RELEASE_VERSION created locally by the script to master and push master:

Revision as of 17:22, 6 September 2017

How to perform a release

The following process applies to any release, including milestones, release candidates, and final release.

Note.png
These instructions assume a Mac or Linux environment. Windows is not currently supported.
  1. Prepare the component
    1. Ensure that the perform_release folder exists in the component's repo. This folder should contain both the prepare_release.sh and deploy_to_maven_central.sh scripts. If these are missing, copy them from the top-level microprofile-bom repo.
    2. Ensure the component's top-level pom.xml has the appropriate <scm>, and release <profile> and <plugin> stanzas. Again, compare with the top-level microprofile-bom pom.xml.
  2. Prepare the candidate release
    1. Clone the respective component repo (e.g. MicroProfile BOM master repository)
    2. Run the release script, which can be found under perform_release folder in the repo (e.g. prepare_release.sh script). Be sure to specify the required env vars before. The script should create a tag (RELEASE_VERSION) and push it to the upstream repository.
      1. export RELEASE_VERSION=1.0-RC1
      2. export DEV_VERSION=1.0-SNAPSHOT
      3. export GIT_USER='John Doe'
      4. export GIT_EMAIL='john_doe@gmail.com'
  3. Deploy artifacts into Eclipse repository
    1. Logon to Jenkins (your Eclipse logon should work)
    2. Go to the Jenkins release job for your component (e.g. BOM-deploy-prerelease-artifacts) and then click on "Build with Parameters"
      1. If a Jenkins job does not exist for your component, then you should copy an existing job and modify according to your component. You do that by clicking on New Item on the left hand menu, and then using the "copy from" function at the bottom of that page.
  4. Download the PDF document from the Jenkins job (e.g. in the workspace) and copy it to previously created github release page (e.g. https://github.com/eclipse/microprofile-jwt-auth/releases/tag/1.0-RC10)

(Note: This step could be removed if we release it to a maven repo.)

    1. You can also add additional text to this github release page to help explain the release.
  1. Notify MicroProfile community about the new version
    1. Send information about the created tag and artifact to review the release, e.g. on mailing-list
      1. Git tag is in the source repository
      2. Artifacts (API, TCK, PDF?) are in the Eclipse repository

How to perform a release of a final version

Do the steps above for a release candidate, except increase the development version instead of leaving it the same as before.

If a release candidate is approved, it can be turned into final release.

  1. Run the above steps for the final version, but:
    1. set RELEASE_VERSION variable to the name of the final release tag (e.g. 1.0)
    2. increase DEV_VERSION to point to the next snapshot version (e.g. 1.1-SNAPSHOT)
  2. Publish the final artifact to Maven central - follow instructions in the script in the repo e.g. deploy_to_maven_central.sh
  3. announce the final version
  4. increase the snapshot version in master: merge the intermediary branch branch_$RELEASE_VERSION created locally by the script to master and push master:
    1. git checkout master
    2. git merge branch_$RELEASE_VERSION
    3. git push origin master

Back to the top