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 "EASE/Build"

m
(7 intermediate revisions by the same user not shown)
Line 22: Line 22:
 
= Integration Server =
 
= Integration Server =
  
The main hudson integration server is available at: https://hudson.eclipse.org/ease/
+
The main hudson integration server is available at: https://ci.eclipse.org/ease/
  
== Job Description ==
 
 
[[File:Hudson job setup.png]]
 
 
 
{| class="wikitable"
 
! Scheduling
 
! Job
 
! Description
 
 
|-
 
|[[File:Ease user.png]] [[File:Clock.png]] [[File:Empty 32x32.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-core-nightly/ ease-core-nightly]
 
|Nightly build of EASE core components. Checks out from the master branch, builds and publishes results to the nightly update site. Triggered nightly.
 
 
|-
 
|[[File:Ease user.png]] [[File:Clock.png]] [[File:Empty 32x32.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-core-sonar/ ease-core-sonar]
 
|Builds from master branch and analyses code for sonar integration. Triggered weekly.
 
 
|-
 
|[[File:Empty 32x32.png]] [[File:Empty 32x32.png]] [[File:Gerrit.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-core-verify/ ease-core-verify]
 
|Verifies gerrit commits on ease.core repository. Provides +1/-1 to gerrit commits. Only triggered by gerrit.
 
 
|-
 
|[[File:Ease user.png]] [[File:Clock.png]] [[File:Empty 32x32.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-modules-nightly/ ease-modules-nightly]
 
|Nightly build of EASE core components. Checks out from the master branch, builds and publishes results to the nightly update site. Uses the nightly update site contents to resolve ease.core dependencies. Triggered nightly.
 
 
|-
 
|[[File:Ease user.png]] [[File:Clock.png]] [[File:Empty 32x32.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-modules-sonar/ ease-modules-sonar]
 
|Builds from master branch and analyses code for sonar integration. Triggered weekly.
 
 
|-
 
|[[File:Empty 32x32.png]] [[File:Empty 32x32.png]] [[File:Gerrit.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-modules-verify/ ease-modules-verify]
 
|Verifies gerrit commits on ease.modules repository. Provides +1/-1 to gerrit commits. Only triggered by gerrit.
 
 
|-
 
|[[File:Ease user.png]] [[File:Empty 32x32.png]] [[File:Empty 32x32.png]]
 
|[https://hudson.eclipse.org/ease/job/ease-release/ ease-release]
 
|Builds from a given branch. Needs manual promotion to publish update site to update/release. Update site is merged.
 
 
|}
 
  
 
== Release Process ==
 
== Release Process ==
Line 77: Line 31:
 
# search for open gerrit topics https://git.eclipse.org/r/#/q/projects:+ease+status:pending
 
# search for open gerrit topics https://git.eclipse.org/r/#/q/projects:+ease+status:pending
 
# integrate patchsets for release
 
# integrate patchsets for release
 +
  
 
Build binaries:
 
Build binaries:
Line 82: Line 37:
 
# run the release build job https://ci.eclipse.org/ease/job/ease.build.release/
 
# run the release build job https://ci.eclipse.org/ease/job/ease.build.release/
  
Maintain Bugzilla:
 
  
# verify that bugs are in '''CLOSED''' state and not ony '''RESOLVED''' ([https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&list_id=11658072&product=Ease&query_format=advanced find resolved bugs])
+
Create release tags:
# verify that '''Target Milestone''' is set to the upcoming release name ([https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=CLOSED&list_id=17307754&product=Ease&query_format=advanced&resolution=FIXED&resolution=WORKSFORME&target_milestone=--- find bugs not related to a milestone])
+
 
+
Create Release Branch:
+
  
 +
# make sure your git repos are up to date
 
# Switch to 'Git Repositories' view
 
# Switch to 'Git Repositories' view
# select <Repository>/branches/Remote Tracking/origin/master
+
# select <Repository>/Tags
# select context menu 'Create Branch'
+
# select context menu 'Create Tag...'
# set Branch name to 'ease-0.5.x' (adapt major/minor version, leave last digit to 'x')
+
# set Tag name to 'ease-0.x.0', set Tag message to 'release 0.x.0' (adapt major/minor version)
# right click on the new branch (found under local branches) and select 'Push Branch'
+
# click 'Create Tag and Start Push...', finish the wizard
# Set the branch name to 'ease-0.5.x'
+
 
# repeat procedure for all repositories:
 
# repeat procedure for all repositories:
 
#* http://git.eclipse.org/c/ease/org.eclipse.ease.core.git/
 
#* http://git.eclipse.org/c/ease/org.eclipse.ease.core.git/
 
#* http://git.eclipse.org/c/ease/org.eclipse.ease.modules.git/
 
#* http://git.eclipse.org/c/ease/org.eclipse.ease.modules.git/
 
#* http://git.eclipse.org/c/ease/org.eclipse.ease.scripts.git/
 
#* http://git.eclipse.org/c/ease/org.eclipse.ease.scripts.git/
 +
 +
 +
Maintain Bugzilla:
 +
 +
# verify that bugs are in '''CLOSED''' state and not ony '''RESOLVED''' ([https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=RESOLVED&list_id=11658072&product=Ease&query_format=advanced find resolved bugs])
 +
# verify that '''Target Milestone''' is set to the upcoming release name ([https://bugs.eclipse.org/bugs/buglist.cgi?bug_status=CLOSED&list_id=17307754&product=Ease&query_format=advanced&resolution=FIXED&resolution=WORKSFORME&target_milestone=--- find bugs not related to a milestone])
  
  
Line 105: Line 62:
 
# switch to https://projects.eclipse.org/projects/technology.ease
 
# switch to https://projects.eclipse.org/projects/technology.ease
 
# open the upcoming release and maintain release information
 
# open the upcoming release and maintain release information
 +
  
 
Follow the [https://wiki.eclipse.org/Development_Resources/HOWTO/Release_Reviews Eclipse release process]:
 
Follow the [https://wiki.eclipse.org/Development_Resources/HOWTO/Release_Reviews Eclipse release process]:
Line 111: Line 69:
 
# verify that the log is correct and send it by pushing the '''Submit For Review''' button
 
# verify that the log is correct and send it by pushing the '''Submit For Review''' button
 
# once the IP log is submitted, development on the master branch may continue
 
# once the IP log is submitted, development on the master branch may continue
# send an email to technology-pmc@eclipse.org [https://accounts.eclipse.org/mailing-list/technology-pmc mailing list], requesting release approval. See [https://dev.eclipse.org/mhonarc/lists/technology-pmc/msg08834.html this example post].
+
# send an email to technology-pmc@eclipse.org [https://accounts.eclipse.org/mailing-list/technology-pmc mailing list], requesting release approval.
 +
'''Subject:''' PMC approval request for EASE v0.7.0 release
 +
Dear PMCs,
 +
 +
I would like to request your approval for the upcoming EASE v0.7.0 release [1]
 +
 +
The project's IP Log has been submitted [2].
 +
 +
thanks
 +
Christian
 +
 +
[1] https://projects.eclipse.org/projects/technology.ease/releases/0.7.0
 +
[2] https://dev.eclipse.org/ipzilla/show_bug.cgi?id=20399
 +
 
 
# wait for the IP log and PMC approval  
 
# wait for the IP log and PMC approval  
  
Line 147: Line 118:
  
 
Prepare next release:
 
Prepare next release:
 +
# [https://bugs.eclipse.org/bugs/enter_bug.cgi?product=EASE&rep_platform=All&op_sys=All create a bugzilla entry] titled: Release preparations for v0.7.0
 
# update plugin/feature versions to next revision (0.5.3 -> 0.6.0); best use search/replace on the whole workspace
 
# update plugin/feature versions to next revision (0.5.3 -> 0.6.0); best use search/replace on the whole workspace
 +
#* search/replace '<version>0.7.0-SNAPSHOT</version>' for pom.xml files
 +
#* search/replace 'Bundle-Version: 0.8.0.qualifier' for MANIFEST.MF files
 +
#* search/replace 'version="0.8.0.qualifier"' for feature.xml files
 
# create a new release on the [https://projects.eclipse.org/projects/technology.ease EASE project page] (sidebar: Committer Tools)
 
# create a new release on the [https://projects.eclipse.org/projects/technology.ease EASE project page] (sidebar: Committer Tools)
 
# update [https://wiki.eclipse.org/EASE/Roadmap product roadmap]
 
# update [https://wiki.eclipse.org/EASE/Roadmap product roadmap]

Revision as of 06:45, 14 August 2019

EASE is based on a maven/tycho build.

Manual Build

The build requires to have git and maven installed.

EASE Core

git clone https://git.eclipse.org/r/ease/org.eclipse.ease.core
cd org.eclipse.ease.core
mvn clean install

After the build is finished, there is a local update site available from releng/org.eclipse.ease.releng.p2/target/repository

EASE Modules

git clone https://git.eclipse.org/r/ease/org.eclipse.ease.modules
cd org.eclipse.ease.modules
mvn clean install

After the build is finished, there is a local update site available from releng/org.eclipse.ease.modules.releng.p2/target/repository

Integration Server

The main hudson integration server is available at: https://ci.eclipse.org/ease/


Release Process

Integrate pending patchsets:

  1. search for open gerrit topics https://git.eclipse.org/r/#/q/projects:+ease+status:pending
  2. integrate patchsets for release


Build binaries:

  1. run the release build job https://ci.eclipse.org/ease/job/ease.build.release/


Create release tags:

  1. make sure your git repos are up to date
  2. Switch to 'Git Repositories' view
  3. select <Repository>/Tags
  4. select context menu 'Create Tag...'
  5. set Tag name to 'ease-0.x.0', set Tag message to 'release 0.x.0' (adapt major/minor version)
  6. click 'Create Tag and Start Push...', finish the wizard
  7. repeat procedure for all repositories:


Maintain Bugzilla:

  1. verify that bugs are in CLOSED state and not ony RESOLVED (find resolved bugs)
  2. verify that Target Milestone is set to the upcoming release name (find bugs not related to a milestone)


Maintain Release Description:

  1. switch to https://projects.eclipse.org/projects/technology.ease
  2. open the upcoming release and maintain release information


Follow the Eclipse release process:

  1. create an automated IP Log for EASE
  2. verify that the log is correct and send it by pushing the Submit For Review button
  3. once the IP log is submitted, development on the master branch may continue
  4. send an email to technology-pmc@eclipse.org mailing list, requesting release approval.
Subject: PMC approval request for EASE v0.7.0 release
Dear PMCs,

I would like to request your approval for the upcoming EASE v0.7.0 release [1]

The project's IP Log has been submitted [2].

thanks
Christian

[1] https://projects.eclipse.org/projects/technology.ease/releases/0.7.0
[2] https://dev.eclipse.org/ipzilla/show_bug.cgi?id=20399
  1. wait for the IP log and PMC approval

Schedule the review (Review Process):

  1. schedule the review by sending email to emo@eclipse.org
Dear PMCs,

I would like to request your approval for the upcoming EASE v0.5.0 release [1]

The project's IP Log has been approved [2].

thanks
Christian

[1] https://projects.eclipse.org/projects/technology.ease/releases/0.5.0
[2] https://dev.eclipse.org/ipzilla/show_bug.cgi?id=14156
  1. wait for the review approval
  2. switch to the release page https://projects.eclipse.org/projects/technology.ease, select the release and select 'Schedule a review for this release.'

Create & update release binaries:

  1. run ease-release on the Hudson server. Building is save and does not alter official download locations. Build will run from master branch by default. If you want to build from a release branch, the job needs to be adapted.
  2. on a failure: fix the problem, back to step 1
  3. promote the build and set the version parameter correctly (eg 0.5.3). After promotion the update sites and download locations are updated and live.
  4. on a failure: fix the problem, back to step 1
  5. create a tag named ease_${version} (eg ease_0.5.3) for each of the following repositories:
  6. push created tags
  7. update the Release Notes wiki page
  8. update the download/index.php page location
  9. add a news entry to the news folder
  10. post an update to the mailing list

Prepare next release:

  1. create a bugzilla entry titled: Release preparations for v0.7.0
  2. update plugin/feature versions to next revision (0.5.3 -> 0.6.0); best use search/replace on the whole workspace
    • search/replace '<version>0.7.0-SNAPSHOT</version>' for pom.xml files
    • search/replace 'Bundle-Version: 0.8.0.qualifier' for MANIFEST.MF files
    • search/replace 'version="0.8.0.qualifier"' for feature.xml files
  3. create a new release on the EASE project page (sidebar: Committer Tools)
  4. update product roadmap
  5. maintain bugzilla
    • switch to the my account page
    • select 'Bugzilla Manager' from the Committer Tools
    • select 'Edit' from Bugzilla Management
    • add a new Bugzilla version using the release name (eg. 0.5.3)
    • add a new Bugzilla milestone for the upcoming version (eg. 0.6.0). Make sure the Sort key is smaller than the one from the previous release. This will list the upcomping release on the topmost position of the drop down dialog.

Back to the top