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 "How to create a release of EMFStore"

(Removing outdated information. Current information available at eclipse.org/emfstore)
 
(4 intermediate revisions by one other user not shown)
Line 1: Line 1:
== How to create a milestone release of EMFStore and ECP ==
 
* In ''org.eclipse.emf.emfstore.site/buckminster.properties'' set the qualifier.replacement-property to the current milestone, e.g. M945, and deactivate the generated qualifier.replacement as shown below:
 
<source lang="bash">
 
qualifier.replacement.*=M945
 
#qualifier.replacement.*=generator:lastModified
 
#generator.lastModified.format='v'yyyyMMdd-HHmm
 
</source>
 
* Commit with a message such as "release 0.8.9.M945" and push your changes to the emfstore.core repository.
 
* Wait for the hudson job to recognize these changes (currently <= 5 minutes) and build.
 
* Download the artifact ''site.p2'' as a zip-file from the build that was triggered by your commit (look for your commit message).
 
* Using scp (or WinScp) login with your Eclipse committer account at ''dev.eclipse.org'', and move the content of ''/home/data/httpd/download.eclipse.org/emf-store/milestones/latest'' to ''/home/data/httpd/download.eclipse.org/emf-store/milestones/archive'' into a new subfolder named after the version, e.g. 0.8.9.M944, if it does not yet exist. You might have to download and re-upload, if the server does now allow you to move files.
 
* Upload the unpacked zip-file and the zip-file itself to ''/home/data/httpd/download.eclipse.org/emf-store/milestones/latest''
 
* Switch back the relase to the continuous integration versioning scheme
 
<source lang="bash">
 
#qualifier.replacement.*=M6
 
qualifier.replacement.*=generator:lastModified
 
generator.lastModified.format='v'yyyyMMdd-HHmm
 
</source>
 
  
== How to create a final release of EMFStore and ECP ==
 
To release a final version, you need to replace the version numbers manually and drop the qualifier:
 
* Increase the version milestone number globally for all MANIFEST.MF and features.xml files in all repositories, e.g. if you currently have version ''0.8.9.qualifier'' in, your workspace you would end up with ''0.9.0''.
 
* Proceed with hudson and the upload of the build as with the milestone release, but use the directory ''releases'' instead of ''milestones''
 
* Switch back the relase to the continuous integration versioning scheme by adding the qualifier to the release version. For example, if you currently have version 0.9.0 in your workspace, you would end up with 0.9.0.qualifier.
 
* Update project metadata on the release in portal: Mark as completed, add download and News and Noteworthy url, add planned next release
 
* Update marketplace entrys: http://marketplace.eclipse.org/content/emfstore-0
 
* Tweet about the new release, use the hashtag #emfstore :)
 
 
== How to release locally ==
 
''org.eclipse.emf.emfstore.releng/build.properties'' defines the paths for the cloned git-repositories, for Hudson as well as for local builds. The properties ''local.git.checkout.base'' is the common base to which six different suffixes are appended. One for each repository. If you want to build locally, you will need to adjust these properties to your directory structure.
 
<source lang="python">
 
# repositories on local disk
 
local.git.checkout.base=${user.home}/git/ssh_emf
 
 
local.git.checkout.emfstore.core.extension=store.core
 
local.git.checkout.emfstore.releng.extension=store.releng
 
local.git.checkout.emfstore.other.extension=store.other
 
 
local.git.checkout.ecp.core.extension=cp.core
 
local.git.checkout.ecp.releng.extension=cp.releng
 
local.git.checkout.ecp.other.extension=cp.other
 
</source>
 
 
To start the Buckminster import from within the Eclipse IDE, right-click ''org.eclipse.emf.emfstore.releng/buckminster.mspec'' and select ''Buckminster''->''Import...''. Wait until all dependencies are resolved, then click ''Finish'' to materialize them.
 
In order to build EMFStore and ECP, right-click the project ''org.eclipse.emf.emfstore.site'' and select ''Buckminster''->''Invoke Action...''. Select the target ''site.p2'', and the properties-file ''org.eclipse.emf.emfstore.site/buckminster.properties'' from your workspace, and start the build with ''Ok''.
 
The result of the build will be in the sub-directory ''buckminster.output'' in your workspace, inside the folder named after the site-project.
 
 
== For all releases ==
 
* Commit and push.
 
* Create tags:
 
<source lang ="bash">
 
git tag -a x.x.x -m 'Release x.x.x'
 
git push --tags
 
</source>
 
* Add the release to the websites: http://www.eclipse.org/emfstore/download.php and http://eclipse.org/emfclient/download.php
 
* Change the permissions of all directories you touched to rwxrwsr-x recursively(!) in order to allow your group to modify the content later.
 
* Verify that you can install EMFStore and ECP from the updated update-site by following these instructions: http://www.eclipse.org/emfstore/download.php or http://eclipse.org/emfclient/download.php
 
* Make sure the changelog (News and Noteworthy) is updated
 
* Update Bugzilla Versions: Go to the Portal Bugzilla Config [https://dev.eclipse.org/committers/bugs/bugz_manager.php] and add a new version for the next release (ECP and EMFStore)
 
 
== Unresolved issues ==
 
* Currently, there is still a known bug that prevents hudson from building the repository if there are no new changes since the last build. In this case the build will fail with the message "Nothing to do". Therefore, try not to build manually but commit a dummy-change to trigger the build.
 
* "ERROR  No reader type with id git has been registered with extension-point org.eclipse.buckminster.core.readerTypes". This means that the Git-reader is unknown to the Buckminster installation on the selected Hudson node. Resolution: Select a different set of nodes in the job-configuration.
 
* "Wiping out workspace first. java.io.IOException: Unable to delete /opt/users/hudsonbuild/.hudson/jobs/emf-emfstore-integration/workspace [...]". This means that a file in the workspace is currently locked by a process on the server. Resolution: Try again later (you can trigger the deletion of the workspace manually from within Hudson).
 
* "ERROR: Failed to join the process Looks like the node went offline during the build. Check the slave log for the details." Resolution: Try again later
 
 
== See also ==
 
* How to clone a git repository [http://wiki.eclipse.org/EMFStore_Git]
 
* EMFStore changelog [http://wiki.eclipse.org/EMFStore_-_News_and_Noteworthy]
 
* ECP changelog [http://wiki.eclipse.org/ECP_-_News_and_Noteworthy]
 
 
== Links ==
 
* Hudson job for EMFStore and ECP https://hudson.eclipse.org/hudson/job/emf-emfstore-integration/
 
* SCP [http://en.wikipedia.org/wiki/Secure_Copy]
 
* WinSCP [http://winscp.net]
 
* "Nothing to do"-bugs: https://bugs.eclipse.org/bugs/show_bug.cgi?id=363607 https://bugs.eclipse.org/bugs/show_bug.cgi?id=373753
 
* Version Qualifiers http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.pde.doc.user%2Ftasks%2Fpde_version_qualifiers.htm
 

Latest revision as of 09:46, 14 October 2016

Back to the top