Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/eclipse-embed-cdt/eclipse-plugins
The Eclipse Embedded CDT plug-ins for Arm & RISC-V C/C++ developers (formerly known as the GNU MCU Eclipse plug-ins). Includes the archive of previous plug-ins versions, as Releases.
https://github.com/eclipse-embed-cdt/eclipse-plugins
arm cdt eclipse eclipse-marketplace embedded plug-ins plugins risc-v
Last synced: about 1 month ago
JSON representation
The Eclipse Embedded CDT plug-ins for Arm & RISC-V C/C++ developers (formerly known as the GNU MCU Eclipse plug-ins). Includes the archive of previous plug-ins versions, as Releases.
- Host: GitHub
- URL: https://github.com/eclipse-embed-cdt/eclipse-plugins
- Owner: eclipse-embed-cdt
- License: epl-2.0
- Created: 2015-08-17T16:21:18.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2024-04-03T17:58:38.000Z (2 months ago)
- Last Synced: 2024-04-03T18:29:58.180Z (2 months ago)
- Topics: arm, cdt, eclipse, eclipse-marketplace, embedded, plug-ins, plugins, risc-v
- Language: C
- Homepage: http://eclipse-embed-cdt.github.io/
- Size: 58.9 MB
- Stars: 555
- Watchers: 59
- Forks: 129
- Open Issues: 90
-
Metadata Files:
- Readme: README-EPP.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Lists
- Virtualization-Emulation-Guide - The Eclipse Embedded CDT - ins for Arm & RISC-V C/C++ developers. (FPGA Tools / Interfaces)
- ARM-Guide - The Eclipse Embedded CDT - ins for Arm & RISC-V C/C++ developers. (FPGA Tools)
- Developer-Handbook - The Eclipse Embedded CDT - ins for Arm & RISC-V C/C++ developers. (Tools / Mesh networks)
README
# Maintainer info
## Project repository
The project is hosted on GitHub:
-
To clone it, be sure the submodules are also cloned:
```sh
git clone --recurse-submodule https://github.com/eclipse-embed-cdt/eclipse-plugins \
eclipse-plugins.git
```## Prerequisites
Production builds are run via
[Jenkins](https://ci.eclipse.org/embed-cdt/)
on the Eclipse Foundation infrastructure (CBI); for local builds, use the
[Adopt OpenJDK 11](https://adoptopenjdk.net) 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
Install the **CBI Aggregator Editor** from:
-
At first use, clone the SimRel Git repo:
```bash
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/
```### SimRel deadline
The deadline for SimRel changes is **Wed 5pm Ottawa time**.
### Clone EPP
At first use, clone the EPP Git repo:
```bash
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/
```### EPP deadline
The deadline for EPP changes is **Thu 9am Ottawa time**.
### Create a new milestone
If not already done, create a new milestone.
- in the
[plug-ins issues](https://github.com/eclipse-embed-cdt/eclipse-plugins/issues/)
page, click the
[Milestones](https://github.com/eclipse-embed-cdt/eclipse-plugins/milestones/)
button and add a
[new](https://github.com/eclipse-embed-cdt/eclipse-plugins/milestones/new/)
milestone. As title, use the current version, like _v6.4.0_.### 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](https://github.com/eclipse-embed-cdt/eclipse-plugins/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.4.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.4.0_).For all other occurrences, except `compositeArtifacts.xml` and
`compositeContent.xml`.Commit all with _update package version 6.4.0_.
## Build locally
### Run maven
After fixing issues, run the maven build locally:
```sh
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.
- go to [https://ci.eclipse.org/embed-cdt/job/build-plug-ins/](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/](https://download.eclipse.org/embed-cdt/builds/develop/p2/)### 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
- go to [https://ci.eclipse.org/embed-cdt/job/build-plug-ins/](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/](https://download.eclipse.org/embed-cdt/builds/master/p2/)### Publish the release candidate
- go to
- **login** (otherwise the next link is not visible!)
- use the [make-release-candidate-from-master](https://ci.eclipse.org/embed-cdt/job/make-release-candidate-from-master/)
Jenkins job to copy the files from `builds/master` to `updates/v6-test/` and
`release-candidates/-`,
which is the public location for the release candidates until the final
release is out
- click the **Build Now** linkCheck 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 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](https://projects.eclipse.org/projects/iot.embed-cdt/)
page, login and click the
[Create a new release](https://projects.eclipse.org/node/18638/create-release/)
link in the right side bar, below Releases (it shows only after login).Name it like `6.4.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).
```html
Version 6.4.0 is a maintenance/new minor release; it ....
Release candidate
For those who want to beta test, the release candidate is available via Install New Software from:
- https://download.eclipse.org/embed-cdt/updates/v6-test/
```
Select the **Release Type** (major, minor, service).
Click the bottom **Save** button.
### Test
Install the plug-ins on several platforms.
### Update SimRel for the release candidate
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
- [https://download.eclipse.org/embed-cdt/release-candidates/](https://download.eclipse.org/embed-cdt/release-candidates/)
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.4.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.4.0-202307251916_,
- _Signed-off-by: Liviu Ionescu _
- click the **Commit** button (do not Push yet)
- right click, Show in local Terminal
```bash
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](https://ci.eclipse.org/simrel/)
Jenkins aggregator pipeline:
-
In about 7-8 minutes 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.4.0-202307251916 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
- [https://download.eclipse.org/embed-cdt/release-candidates/](https://download.eclipse.org/embed-cdt/release-candidates/)
Copy the tag and enter it in Git, like `v6.4.0-202307251916` (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 ``
- 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.4.0 to composite_
- **push** master
- go to
- **login** (otherwise the next link is not visible!)
- use the
[make-release-from-master](https://ci.eclipse.org/embed-cdt/job/make-release-from-master/)
Jenkins job to copy from `builds/master` to `updates/v6/` and `releases/`
- 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](https://marketplace.eclipse.org/content/eclipse-embedded-cdt/)
- **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
and get the archive URL, like:
-
Isolate the part starting with `/embed-cdt/...` and update the URLs to use the download redirect:
-
-
Go to 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](https://ci.eclipse.org/embed-cdt/job/make-release-from-master/)
Jenkins job.
- commit with a message like _Eclipse Embedded CDT plug-ins v6.4.0 released_.
- push the `develop` branch
- wait for GitHub Actions job to complete
()
- check the result at
- when ok, merge `develop` into `master`
- push the `master` branch
- wait for GitHub Actions job to complete
- check the result at
### Add GitHub release
In [GitHub releases](https://github.com/eclipse-embed-cdt/eclipse-plugins/releases) add a new release
- tag: _v6.4.0_ (with `v`)
- title _Eclipse Embedded CDT plug-ins v6.4.0_
- copy/paste from the release page
- add `[Continue reading »](https://eclipse-embed-cdt.github.io/blog/YYYY/MM/DD/plugins-v6.4.0-released/)` with a link to the web page
- do not attach files
- click **Publish release**
### Close milestone
In [GitHub milestones](https://github.com/eclipse-embed-cdt/eclipse-plugins/milestones):
- close the v6.4.0 milestone
### Update the Eclipse release record
- go to [iot.embed-cdt](https://projects.eclipse.org/projects/iot.embed-cdt/governance/)
and select the new release
- click Edit -> The Basics
- switch to Source mode
- replace the entire content with links to GitHub:
```html
Version 6.4.0 is a new major/minor/service release; it updates ...
Fore more details, please read the project web release pages:
-
Eclipse IDE for Embedded C/C++ Developers 2020-12 released (for installing a new Eclipse) -
Eclipse Embedded CDT plug-ins v6.4.0 released (for updating the plug-ins on an existing Eclipse)
```
Click the **Save** button.
### Update the Downloads page (deprecated)
For packages releases:
- go to [iot.embed-cdt](https://projects.eclipse.org/projects/iot.embed-cdt/)
- 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.4.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.4.0_
- _Signed-off-by: Liviu Ionescu _
- click the **Commit** button (do not push yet)
- right click, Show in local Terminal
```bash
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.
The commit will trigger the [SimRel](https://ci.eclipse.org/simrel/)
Jenkins aggregator pipeline:
-
In about 7-8 min 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 `packages/org.eclipse.epp.package.embedcpp.product/epp.product`
- update the list of features
### package.embedcpp
To change the default preferences, edit the
`packages/org.eclipse.epp.package.embedcpp/plugin_customization.ini`
### package.embedcpp.feature
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
`` element.
Update the version in **NewAndNoteworthy**, in the same file.
### Compare to package.cpp
Compare the three packages with the similar ones from CPP:
```sh
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:
```bash
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](https://ci.eclipse.org/packaging/)
Jenkins job:
-
In 1.5 hours the new test versions of the integrated epp builds are
available from:
-
### Announce release
Announce the release to the **[email protected]** list;
use a subject like **Eclipse Embedded CDT plug-ins v6.4.0 released**, and
pass a link to the release page.
## Share on Twitter
- in a separate browser windows, open [TweetDeck](https://tweetdeck.twitter.com/)
- using the `@EmbedCDT` account, enter a message like
**Eclipse Embedded CDT plug-ins v6.4.0 released** and on the next line
paste the link to the release
- click the Tweet button