Skip to content

Latest commit

 

History

History
466 lines (303 loc) · 14.7 KB

README-MAINTAINER.md

File metadata and controls

466 lines (303 loc) · 14.7 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/eclipse-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 automatically 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

The official download page is

Prepare release

Clone SimRel

Update:

Install the CBI Aggregator Editor from:

At first use, fork the SimRel Git repo from:

to

(in eclipse-embed-cdt it is not possible!)

SimRel deadline

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

Create a new milestone

If not already done, create a new milestone.

Update version in README-MAINTENANCE

Perform a search & replace to update the version.

Push the develop branch.

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 2022-01-10;
  • close the issues

Update plug-ins/features versions

For the plug-ins that were modified, increase the specific version (like 1.2.3).

Commit the MANIFEST.MF files as update versions...

For all features, increase the common version (like 6.6.1); be sure the composite records are not updated at this moment, they require new lines, added later.

For all branding, edit the MANIFEST.MF and increase the Bundle-Version (like 6.6.1).

For all other occurrences, except compositeArtifacts.xml and compositeContent.xml.

Commit all with update package version 6.6.1.

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

Note: this happens now automatically, at each push.

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

Check the console output and remember the timestamp shown at the end, it'll be used later in the composite files.

Update timestamp in README-MAINTENANCE

Go to the release candidate folder

Get the timestamp (like 202408270735) and update the README-MAINTENANCE.md file.

Commit with README-MAINTAINER update timestamp.

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, login and click the Create a new release link in the right side bar, below Releases (it shows only after login).

Name it like 6.6.1 (no v).

Click the Create and edit button.

Click the Edit tab, The Basics; switch to Source mode

Start with Release candidate (Header 3).

<p>Version <strong>6.6.1</strong> is a maintenance/new minor release; it ....</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>

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

Click the bottom Save button. Leave the page.

Test

Install the plug-ins on several platforms.

Update SimRel for the release candidate (optional)

Full instructions are here: https://github.com/orgs/eclipse-simrel/discussions/3

but the simple version is update and create a PR against https://github.com/eclipse-simrel/simrel.build

If everything is fine, sync the SimRel fork:

With a Git client:

The commit will trigger the SimRel Jenkins aggregator pipeline:

In about 7-8 minutes it'll automatically rebuild the staging repo:

Announce release candidate (optional)

Announce the release candidate to the embed-cdt-dev@eclipse.org list; use a subject like Embed CDT v6.6.1-202408270735 release candidate, and pass a link to the release page, available at:

Beta testers can install the release candidate from:

Add Git tag for pre-release

Go to the release candidate folder

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

Publish the final release

When the plug-ins are considered stable:

  • in eclipse-plugins.git, the master branch, edit both .xml files

    • repositories/org.eclipse.embededcdt-repository/composite/compositeArtifacts.xml
    • repositories/org.eclipse.embededcdt-repository/composite/compositeContent.xml
    • add new child like <child location='../../releases/6.6.1/p2'/>
    • update p2.timestamp to the value shown at the end of the make-release-candidate-from-master
  • commit master with a message like add 6.6.1 to composite

  • push master

  • go to https://ci.eclipse.org/embed-cdt/

  • login (otherwise the next link is not visible!)

  • use the make-release-from-master Jenkins job to copy from builds/master to updates/v6/ and releases/<version>

  • click the Build with Parameters link

  • enter yes

  • click the Build link

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
  • login
  • click Edit
  • update version number, minimum Eclipse versions
  • click the Save item to list button (very important!)
  • click the bottom page Save.

Add a new release in the project web

Edit the eclipse-embed-cdt/web-jekyll.git project.

In the develop branch, in _posts/plugins/releases, add a new release page.

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

Isolate the part starting with /embed-cdt/... and update the URLs to use the download redirect:

Go to https://github.com/eclipse-embed-cdt/eclipse-plugins/milestones and update the fixed issues.

Update the milestone URL.

Copy/paste the features/plug-ins from the console output of the make-release-from-master Jenkins job.

Add GitHub release

In GitHub releases add a new release

  • tag: v6.6.1 (with v)
  • title Eclipse Embedded CDT plug-ins v6.6.1
  • copy/paste from the release page
  • add [Continue reading »](https://eclipse-embed-cdt.github.io/blog/YYYY/MM/DD/plugins-v6.6.1-released/) with a link to the web page
  • do not attach files
  • click Publish release

Close milestone

In GitHub milestones:

  • close the v6.6.1 milestone

Update the Eclipse release record

  • go to iot.embed-cdt and select the new release
  • click Edit -> The Basics
  • switch to Source mode
  • replace the entire content with links to GitHub:
<p>Version <strong>6.6.1</strong> is a new major/minor/service release; it updates ...</p>

<p>Fore more details, please read the project web release pages:</p>

<ul>
 <li><a href="https://eclipse-embed-cdt.github.io/blog/YYYY/MM/DD/package-2020-12-released/">Eclipse IDE for Embedded C/C++ Developers 2020-12 released</a>&nbsp;(for installing a new Eclipse)</li>
 <li><a href="https://eclipse-embed-cdt.github.io/blog/YYYY/MM/DD/plugins-v6.6.1-released/">Eclipse Embedded CDT plug-ins v6.6.1 released</a>&nbsp;(for updating the plug-ins on an existing Eclipse)</li>
</ul>

Click the Save button.

Update the Downloads page (deprecated)

For packages releases:

  • go to iot.embed-cdt
  • click Edit -> The Basics
  • switch to Source mode

Use copy/paste/edit.

Check & update SimRel

Use the https://github.com/embed-cdt/simrel.build fork.

Pull new commits.

After a while (it might take about 10 minutes), the commit will trigger the SimRel Jenkins aggregator pipeline:

After another while (about 10 min) it'll automatically rebuild the staging repo:

Announce release

Announce the release to the embed-cdt-dev@eclipse.org list; use a subject like Eclipse Embedded CDT plug-ins v6.6.1 released, and pass a link to the release page (https://eclipse-embed-cdt.github.io/news/).

Share on Twitter

  • in a separate browser windows, open X/Twitter
  • using the @EmbedCDT account, enter a message like Eclipse Embedded CDT plug-ins v6.6.1 released and on the next line paste the link to the release
  • click the Tweet button