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
Production builds are run via Jenkins on the Eclipse Foundation infrastructure (CBI); for local builds, use the Adopt OpenJDK 11 and maven 3.6.
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:
- https://download.eclipse.org/embed-cdt/builds/develop/p2/
- https://download.eclipse.org/embed-cdt/builds/master/p2/
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
- https://download.eclipse.org/embed-cdt/releases/6.5.0/org.eclipse.embedcdt.repository-6.5.0-202307251916.zip
- https://download.eclipse.org/embed-cdt/releases/6.5.0/p2/
The official download page is
Install the CBI Aggregator Editor from:
At first use, clone the SimRel Git repo:
git clone ssh://[email protected]:29418/simrel/org.eclipse.simrel.build org.eclipse.simrel.build.git
scp -p -P 29418 [email protected]:hooks/commit-msg org.eclipse.simrel.build.git/.git/hooks/
The deadline for SimRel changes is Wed 5pm Ottawa time.
At first use, clone the EPP Git repo:
git clone ssh://[email protected]:29418/epp/org.eclipse.epp.packages.git org.eclipse.epp.packages.git
mkdir -p org.eclipse.epp.packages.git/.git/hooks/
scp -p -P 29418 [email protected]:hooks/commit-msg org.eclipse.epp.packages.git/.git/hooks/
The deadline for EPP changes is Thu 9am Ottawa time.
If not already done, create a new milestone.
- in the plug-ins issues page, click the Milestones button and add a new milestone. As title, use the current version, like v6.5.0.
Perform a search & replace to update the version.
Push the develop branch.
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
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.5.0); 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.5.0).
For all other occurrences, except compositeArtifacts.xml
and
compositeContent.xml
.
Commit all with update package version 6.5.0.
After fixing issues, run the maven build locally:
mvn clean verify
Start a Debug/Run session and try the result in a child Eclipse.
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.
Note: this happens now automatically, at each push.
- go to https://ci.eclipse.org/embed-cdt/job/build-plug-ins/
- login (otherwise the next link is not visible!)
- click the Scan Multibranch Pipeline Now link
- when ready, the p2 repository is published at https://download.eclipse.org/embed-cdt/builds/develop/p2/
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:
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.
- go to https://ci.eclipse.org/embed-cdt/job/build-plug-ins/
- login (otherwise the next link will not be visible!)
- click the Scan Multibranch Pipeline Now link
- when ready, the p2 repository is published at https://download.eclipse.org/embed-cdt/builds/master/p2/
- 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
toupdates/v6-test/
andrelease-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.
Go to the release candidate folder
Get the timestamp and update the README-MAINTENANCE.md file.
Commit with README-MAINTAINER update timestamp.
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.5.0
(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.5.0</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.
Install the plug-ins on several platforms.
If everything is fine, update SimRel.
With a Git client:
- 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.5.0-202307251916/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
- stage
simrel.aggr
&embedcdt.aggrcon
- commit with a message like:
- embedcdt: update for 6.5.0-202307251916,
- Signed-off-by: Liviu Ionescu [email protected]
- click the Commit button (do not Push yet)
- right click, Show in local Terminal
git push ssh://[email protected]:29418/simrel/org.eclipse.simrel.build HEAD:refs/for/master
This will trigger a Gerrit run.
Check the console output, for the Gerrit link. If missed, it'll be later sent by e-mail, when the run completes.
In Gerrit web page, if the check is successful and Verified+1 is shown, click CODE_REVIEW+2 and then SUBMIT to merge the changes.
The commit will trigger the SimRel Jenkins aggregator pipeline:
In about 7-8 minutes it'll automatically rebuild the staging repo:
Announce the release candidate to the [email protected] list; use a subject like Embed CDT v6.5.0-202307251916 release candidate, and pass a link to the release page, available at:
Beta testers can install the release candidate from:
Go to the release candidate folder
Copy the tag and enter it in Git, like v6.5.0-202307251916
(with v
).
When the plug-ins are considered stable:
-
in
eclipse-plugins.git
, the master branch, edit both .xml filesrepositories/org.eclipse.embededcdt-repository/composite/compositeArtifacts.xml
repositories/org.eclipse.embededcdt-repository/composite/compositeContent.xml
- add new child like
<child location='../../releases/6.5.0/p2'/>
- update
p2.timestamp
to the value shown at the end of themake-release-candidate-from-master
-
commit master with a message like add 6.5.0 to composite
-
push master
-
login (otherwise the next link is not visible!)
-
use the make-release-from-master Jenkins job to copy from
builds/master
toupdates/v6/
andreleases/<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:
- https://download.eclipse.org/embed-cdt/updates/v6/
- https://download.eclipse.org/embed-cdt/releases/6.5.0/p2/
- 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.
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:
- https://www.eclipse.org/downloads/download.php?file=/embed-cdt/releases/6.5.0/org.eclipse.embedcdt.repository-6.5.0-202307251916.zip
- https://www.eclipse.org/downloads/download.php?file=//embed-cdt/releases/6.5.0/org.eclipse.embedcdt.repository-6.5.0-202307251916.zip.sha
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.
- commit with a message like Eclipse Embedded CDT plug-ins v6.5.0 released.
- push the
develop
branch - wait for GitHub Actions job to complete (https://github.com/eclipse-embed-cdt/web-jekyll/actions)
- check the result at https://eclipse-embed-cdt.github.io/web-preview/
- when ok, merge
develop
intomaster
- push the
master
branch - wait for GitHub Actions job to complete
- check the result at https://eclipse-embed-cdt.github.io/
In GitHub releases add a new release
- tag: v6.5.0 (with
v
) - title Eclipse Embedded CDT plug-ins v6.5.0
- copy/paste from the release page
- add
[Continue reading »](https://eclipse-embed-cdt.github.io/blog/YYYY/MM/DD/plugins-v6.5.0-released/)
with a link to the web page - do not attach files
- click Publish release
- close the v6.5.0 milestone
- 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.5.0</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> (for installing a new Eclipse)</li>
<li><a href="https://eclipse-embed-cdt.github.io/blog/YYYY/MM/DD/plugins-v6.5.0-released/">Eclipse Embedded CDT plug-ins v6.5.0 released</a> (for updating the plug-ins on an existing Eclipse)</li>
</ul>
Click the Save button.
For packages releases:
- go to iot.embed-cdt
- click Edit -> The Basics
- switch to Source mode
Use copy/paste/edit.
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.5.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
- stage
embededcdt.aggrcom
- commit with a message like:
- embedcdt: update for 6.5.0
- Signed-off-by: Liviu Ionescu [email protected]
- click the Commit button (do not push yet)
- right click, Show in local Terminal
git push ssh://[email protected]:29418/simrel/org.eclipse.simrel.build HEAD:refs/for/master
This will trigger a Gerrit run.
Check the console output, for the Gerrit link. If missed, it'll be later sent by e-mail, when the run completes.
In Gerrit, click CODE_REVIEW+2 and then SUBMIT to merge the changes.
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:
If the list of features changed, it is necessary to update the EPP project.
Pull new commits.
- edit
packages/org.eclipse.epp.package.embedcpp.product/epp.product
- update the list of features
To change the default preferences, edit the
packages/org.eclipse.epp.package.embedcpp/plugin_customization.ini
If necessary, update the text displayed in the Downloads page, it is in
packages/org.eclipse.epp.package.embedcpp.feature/epp.website.xml
file, the
<description>
element.
Update the version in NewAndNoteworthy, in the same file.
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 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:
Announce the release to the [email protected] list; use a subject like Eclipse Embedded CDT plug-ins v6.5.0 released, and pass a link to the release page (https://eclipse-embed-cdt.github.io/news/).
- in a separate browser windows, open TweetDeck
- using the
@EmbedCDT
account, enter a message like Eclipse Embedded CDT plug-ins v6.5.0 released and on the next line paste the link to the release - click the Tweet button