Skip to content

Latest commit

 

History

History
529 lines (348 loc) · 15.8 KB

README-MAINTAINER.md

File metadata and controls

529 lines (348 loc) · 15.8 KB

Maintainer info

Project repository

The project is hosted on GitHub:

To clone it, be sure the submodules are also cloned:

git clone --recurse-submodule https://github.com/eclipse-embed-cdt/eclips
e-plugins \
  eclipse-plugins.git

Prerequisites

Production builds are run via Jenkins on the Eclipse Foundation infrastructure (CBI); for local builds, use the Adopt OpenJDK 11 and maven 3.6.

Development workflow

The plug-ins are published on the Eclipse download servers both as update sites and as archives.

Development builds are published as p2 sub-folders like:

When the content is stable, it is promoted as a pre-release and published as:

The final release is published in the main update site:

For archiving purposes, the release is also published in a separate folder for each version, with the archive in the top folder and the p2 repo as a sub-folder

Packages are published at:

The official download page is

Prepare release

Clone SimRel

Use the CBI Aggregator installed from:

At first use, clone the SimRel Git repo:

git clone "ssh://[email protected]:29418/simrel/org.eclipse.simrel.build"
scp -p -P 29418 [email protected]:hooks/commit-msg "org.eclipse.simrel.build/.git/hooks/"

SimRel deadline

The deadline for SimRel changes is Wed 5pm Ottawa time.

Clone EPP

At first use, clone the EPP Git repo:

git clone "ssh://[email protected]:29418/epp/org.eclipse.epp.packages.git"
scp -p -P 29418 [email protected]:hooks/commit-msg "epp/org.eclipse.epp.packages.git/.git/hooks/"

EPP deadline

The deadline for EPP changes is Thu 9am Ottawa time.

Create a new milestone

If not already done, create a new milestone.

Fix issues

Normally all changes should be done as a result of a ticket registered as a GitHub Issue.

  • be sure the develop branch is selected
  • scan the plug-ins issues list, and fix them. The commit message should be prefixed with the issue number, like [#122];
  • mark all fixed issues as part of the new milestone;
  • add a message like fixed on 2020-01-10;
  • close the issues

Build locally

Run maven

After fixing issues, run the maven build locally:

$ mvn clean verify

Start a Debug/Run session and try the result in a child Eclipse.

How to make a release candidate

Push to GitHub

Be sure the repo is clean and push the develop branch to GitHub.

This will also trigger a GitHub Actions CI job that will run a maven build.

Trigger the Jenkins development build

Install on a separate Eclipse

Test if the new build can be used as an update site, by installing it on a separate Eclipse (not the one used for development); use the URL:

Merge to master

When ready, merge the develop branch into master, and push them to GitHub.

Wait for the GitHub Actions CI job to confirm that the build passed.

Trigger the Jenkins master build

Publish the release candidate

  • go to https://ci.eclipse.org/embed-cdt/
  • login (otherwise the next link is not visible!)
  • use the make-release-candidate-from-master Jenkins job to copy the files from builds/master to updates/v6-test/ and release-candidates/<version>-<date>, which is the public location for the release candidates until the final release is out
  • click the Build Now link

Create a release candidate record

This applies only for the first release candidate, or for the final release.

In the official iot.embed-cdt page, click the Create a new release link in the right side bar.

Name it like 6.1.0 (no v).

Click on Edit, The Basics; switch to Source mode

Start with Release candidate (Header 3).

<p>Version <strong>6.1.0</strong> is a major/new/maintenance release; if fixes XXX.</p>

<h3>Release candidate</h3>

<p>For those who want to beta test, the release candidate is available via <strong>Install New Software</strong> from:</p>

<ul>
	<li>https://download.eclipse.org/embed-cdt/updates/v6-test/</li>
</ul>

<h3>Changes</h3>

<p>The bug fixes are:</p>

<ul>
	<li>none</li>
</ul>

<p>The enhancements are:</p>

<ul>
	<li>none</li>
</ul>

<p>The developer changes are:</p>

<ul>
	<li>none</li>
</ul>

<p>More details at GitHub:</p>
<ul>
	<li><a href="https://github.com/eclipse-embed-cdt/eclipse-plugins/milestone/19">https://github.com/eclipse-embed-cdt/eclipse-plugins/milestone/19</a></li>
</ul>

<h3>Release content</h3>

<p>The following features and plugins are included in this release:</p>

<pre>
features:
org.eclipse.embedcdt.codered.feature_2.0.0.202012080907.jar
...
org.eclipse.embedcdt.templates.stm.feature.source_2.7.2.202012080907.jar

plugins:
org.eclipse.embedcdt.codered_2.0.0.202012080907.jar
...
org.eclipse.embedcdt.templates.stm.source_2.7.2.202012080907.jar
</pre>

To get the list of changes, scan the Git log:

$ git log --pretty='%cd * %h - %s' --date=short

To get the release content, check the Jenkins output after the command ls -L features plugins.

Select the Release Type (major, minor, service).

Test

Install the plug-ins on several platforms.

Update SimRel for the release candidate

If everything is fine, update SimRel.

With Sourcetree:

  • open org.eclipse.simrel.build.git
  • pull new commits

Go to the release candidate folder

In Eclipse:

  • import existing project org.eclipse.simrel.build
  • open simrel.aggr
  • expand the 'Contribution: Embedded CDT'
  • select Mapped Repository
  • right click: Show Properties View
  • in the right side, edit the Location field to the new release candidate p2 URL (like https://download.eclipse.org/embed-cdt/release-candidates/6.1.0-202012080907/p2/ and press Enter
  • select all the features in the contribution, right-click and choose Fix Versions
  • select the Contribution and Validate
  • select the Aggregation and Validate
  • Save
git commit -m 'embedcdt: update for 6.1.0-202012080907'
git push ssh://[email protected]:29418/simrel/org.eclipse.simrel.build HEAD:refs/for/master

In Gerrit, click CODE_REVIEW+2 and then SUBMIT to merge the changes.

The commit will trigger the SimRel Jenkins aggregator pipeline:

In about one hour it'll automatically rebuild the staging repo:

Announce release candidate

Announce the release candidate to the [email protected] list; use a subject like Embed CDT v6.1.0-202012080907 release candidate, and pass a link to the release page.

Beta testers can install the release candidate from:

Add Git tag

Go to the release candidate folder

Copy the tag and enter it in Git, like v6.1.0-202011301954 (with v).

Publish the final release

When the plug-ins are considered stable:

The releases folder includes both the release archives and the expanded p2 repository.

The updates/v6/ includes only the expanded p2 repository, for the archives see the releases folder.

Both can be used in Eclipse to Install New Software.

The public update URLs are:

Update the Eclipse Marketplace records

  • go to Eclipse Marketplace
  • log in
  • click Edit
  • update version number, minimum Eclipse versions
  • click the bottom page Save.

Update the release record

  • go to iot.embed-cdt and select the new release
  • click Edit -> The Basics
  • switch to Source mode
  • replace the Release candidate section with the above:
<h3>Eclipse Marketplace</h3>

<p>The recommended way to update to the latest plug-ins is via the <strong>Eclipse Marketplace</strong>; search for <em>Embedded CDT</em>.</p>

<h3>Eclipse Update Sites</h3>

<p>For those who prefer to do it manually, the latest version is available via <strong>Install New Software</strong> from:</p>

<ul>
	<li><a href="https://download.eclipse.org/embed-cdt/updates/v6/">https://download.eclipse.org/embed-cdt/updates/v6/</a></li>
</ul>

<p>To get exactly this version, <strong>Install New Software</strong> from:</p>

<ul>
	<li><a href="https://download.eclipse.org/embed-cdt/releases/6.1.0/p2/">https://download.eclipse.org/embed-cdt/releases/6.1.0/p2/</a></li>
</ul>

<h3>Local install</h3>

<p>For manual installs, the plug-ins are also available as regular archives, that can be downloaded locally and installed.</p>

<ul>
	<li><a href="https://www.eclipse.org/downloads/download.php?file=/embed-cdt/releases/6.1.0/org.eclipse.embedcdt.repository-6.1.0-202012080907.zip">org.eclipse.embedcdt.repository-6.1.0-202012080907.zip</a> <a href="https://www.eclipse.org/downloads/download.php?file=/embed-cdt/releases/6.1.0/org.eclipse.embedcdt.repository-6.1.0-202012080907.zip.sha">(SHA)</a></li>
</ul>

As links for the latest two, open https://download.eclipse.org/embed-cdt/releases/ and get something like:

Update the URLs to use the download redirect:

Remove the Pre-release top header.

Update the Downloads page

  • go to iot.embed-cdt and select the new release
  • click Edit -> The Basics
  • switch to Source mode

Use copy/paste/edit.

Check & update SimRel

Pull new commits.

In Eclipse:

  • import existing project org.eclipse.simrel.build
  • open simrel.aggr
  • expand the 'Contribution: Embedded CDT'
  • select Mapped Repository
  • right click: Show Properties View
  • in the right side, edit the Location field to the new release p2 URL (like https://download.eclipse.org/embed-cdt/releases/6.1.0/p2/ and press Enter
  • select all the features in the contribution, right-click and choose Fix Versions
  • select the Contribution and Validate
  • select the Aggregation and Validate
git commit -m 'embedcdt: update for 6.1.0'
git push ssh://[email protected]:29418/simrel/org.eclipse.simrel.build HEAD:refs/for/master

In Gerrit, click CODE_REVIEW+2 and then SUBMIT to merge the changes.

The commit will trigger the SimRel Jenkins aggregator pipeline:

In about one hour it'll automatically rebuild the staging repo:

Check & update EPP

If the list of features changed, it is necessary to update the EPP project.

Pull new commits.

  • edit org.eclipse.epp.package.embedcpp.product/epp.product
  • update the list of features

package.embedcpp

To change the default preferences, edit the org.eclipse.epp.package.embedcpp/plugin_customization.ini

package.embedcpp.feature

If necessary, update the text displayed in the Downloads page, it is in org.eclipse.epp.package.embedcpp.feature/epp.website.xml file, the <description> element.

Update the version in NewAndNoteworthy, in the same file.

Compare to package.cpp

Compare the three packages with the similar ones from CPP:

cd org.eclipse.epp.packages.git

diff packages/org.eclipse.epp.package.cpp packages/org.eclipse.epp.package.embedcpp
diff packages/org.eclipse.epp.package.cpp.feature packages/org.eclipse.epp.package.embedcpp.feature
diff packages/org.eclipse.epp.package.cpp.product packages/org.eclipse.epp.package.embedcpp.product

Commit & push

Commit and push to Gerrit:

git commit -m 'embedcpp ...'
git push ssh://[email protected]:29418/epp/org.eclipse.epp.packages.git HEAD:refs/for/master

In Gerrit, click CODE_REVIEW+2 and then SUBMIT to merge the changes.

The commit will trigger the EPP Jenkins job:

In 1.5 hours the new test versions of the integrated epp builds are available from:

Add Git tag

Add a tag like v6.1.0 (with v).

Announce release

Announce the release to the [email protected] list; use a subject like Embed CDT v6.1.0 released, and pass a link to the release page.

Beta testers can install the pre-release from:

Share on Twitter

  • in a separate browser windows, open TweetDeck
  • using the @embedCDT account, enter a message like Embed CDT v6.1.0 released and on the next line paste the link to the release
  • click the Tweet button