GNU ARM Eclipse

A family of Eclipse CDT extensions and tools for GNU ARM development

How to publish the plug-ins?

The plug-ins are published both as update sites (on SourceForge, as an Eclipse update site, with multiple mirrors) and as archives (on GitHub as Releases).

The reason SourceForge is still used is that GitHub does not provide a convenient way to publish an Eclipse update site.

Publish on the SourceForge test site

After each new build, to allow testing on various platforms, the plug-ins are published on the test site.

For this, run the scripts/publish-updates-test.command (this is a script that can be executed directly in the macOS Finder).

A typical session looks like:

$ /Users/ilg/My\ Files/MacBookPro\ Projects/GNU\ ARM\ Eclipse/plug-ins.git/scripts/publish-updates-test.command ; exit;
Updating Eclipse/updates-test

User: ilg-ul
API key: XXXXXXXXXXXX
Owner: gnuarmeclipse
Create version 'updates-test/p2/3.4.1.201704251808'
######################################################################## 100.0%
Created.

Upload 'artifacts.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'artifacts.xml.xz' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'content.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'content.xml.xz' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'p2.index' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.codered_1.1.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.debug.gdbjtag.jlink_4.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.debug.gdbjtag.openocd_4.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.debug.gdbjtag.pyocd_1.1.3.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.debug.gdbjtag.qemu_3.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.doc.user_1.1.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.managedbuild.cross_2.4.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.packs_2.2.2.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.templates.ad_1.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.templates.cortexm_1.4.2.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.templates.freescale_2.2.8.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'features/ilg.gnuarmeclipse.templates.stm_2.6.2.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.codered_1.1.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.core_3.4.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.core_1.2.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.gdbjtag.jlink_4.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.gdbjtag.openocd_4.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.gdbjtag.pyocd_1.1.3.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.gdbjtag.qemu_3.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.gdbjtag.restart_1.3.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.gdbjtag_3.2.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.debug.packs_1.1.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.doc.user_1.1.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.managedbuild.cross_2.4.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.managedbuild.packs_1.3.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.packs.core_1.1.3.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.packs.data_1.3.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.packs.ui_1.2.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.packs_1.2.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.templates.ad_1.1.4.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.templates.core_2.5.6.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.templates.cortexm_1.4.2.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.templates.freescale.pe_1.2.1.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.templates.freescale_2.2.8.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Upload 'plugins/ilg.gnuarmeclipse.templates.stm_2.6.2.201704251808.jar' to '/updates-test/p2/3.4.1.201704251808/'
######################################################################## 100.0%
Uploaded.
Publish 'updates-test/p2/3.4.1.201704251808'
{"files":35}

Rsync-ing SourceForge Eclipse/updates-test site (-vrCt --exclude=scripts --exclude=.* --delete --checksum)
Password: 
building file list ... done
deleting features/ilg.gnuarmeclipse.templates.stm_2.6.2.201704242117.jar
deleting features/ilg.gnuarmeclipse.templates.freescale_2.2.8.201704242117.jar
deleting features/ilg.gnuarmeclipse.templates.cortexm_1.4.2.201704242117.jar
deleting features/ilg.gnuarmeclipse.templates.ad_1.1.4.201704242117.jar
deleting features/ilg.gnuarmeclipse.packs_2.2.2.201704242117.jar
deleting features/ilg.gnuarmeclipse.managedbuild.cross_2.4.1.201704242117.jar
deleting features/ilg.gnuarmeclipse.doc.user_1.1.1.201704242117.jar
deleting features/ilg.gnuarmeclipse.debug.gdbjtag.qemu_3.1.4.201704242117.jar
deleting features/ilg.gnuarmeclipse.debug.gdbjtag.pyocd_1.1.3.201704242117.jar
deleting features/ilg.gnuarmeclipse.debug.gdbjtag.openocd_4.1.4.201704242117.jar
deleting features/ilg.gnuarmeclipse.debug.gdbjtag.jlink_4.1.4.201704242117.jar
deleting features/ilg.gnuarmeclipse.codered_1.1.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.templates.stm_2.6.2.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.templates.freescale_2.2.8.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.templates.freescale.pe_1.2.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.templates.cortexm_1.4.2.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.templates.core_2.5.6.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.templates.ad_1.1.4.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.packs_1.2.3.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.packs.ui_1.2.3.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.packs.data_1.3.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.packs.core_1.1.3.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.managedbuild.packs_1.3.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.managedbuild.cross_2.4.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.doc.user_1.1.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.packs_1.1.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag_3.1.2.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag.restart_1.3.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag.qemu_3.1.4.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag.pyocd_1.1.3.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag.openocd_4.1.4.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag.jlink_4.1.4.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.debug.core_1.2.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.core_3.4.1.201704242117.jar
deleting plugins/ilg.gnuarmeclipse.codered_1.1.1.201704242117.jar
./
artifacts.jar
artifacts.xml.xz
content.jar
content.xml.xz
p2.index
features/
features/ilg.gnuarmeclipse.codered_1.1.1.201704251808.jar
features/ilg.gnuarmeclipse.debug.gdbjtag.jlink_4.1.4.201704251808.jar
features/ilg.gnuarmeclipse.debug.gdbjtag.openocd_4.1.4.201704251808.jar
features/ilg.gnuarmeclipse.debug.gdbjtag.pyocd_1.1.3.201704251808.jar
features/ilg.gnuarmeclipse.debug.gdbjtag.qemu_3.1.4.201704251808.jar
features/ilg.gnuarmeclipse.doc.user_1.1.1.201704251808.jar
features/ilg.gnuarmeclipse.managedbuild.cross_2.4.1.201704251808.jar
features/ilg.gnuarmeclipse.packs_2.2.2.201704251808.jar
features/ilg.gnuarmeclipse.templates.ad_1.1.4.201704251808.jar
features/ilg.gnuarmeclipse.templates.cortexm_1.4.2.201704251808.jar
features/ilg.gnuarmeclipse.templates.freescale_2.2.8.201704251808.jar
features/ilg.gnuarmeclipse.templates.stm_2.6.2.201704251808.jar
plugins/
plugins/ilg.gnuarmeclipse.codered_1.1.1.201704251808.jar
plugins/ilg.gnuarmeclipse.core_3.4.1.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.core_1.2.1.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.jlink_4.1.4.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.openocd_4.1.4.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.pyocd_1.1.3.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.qemu_3.1.4.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.restart_1.3.1.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag_3.2.1.201704251808.jar
plugins/ilg.gnuarmeclipse.debug.packs_1.1.1.201704251808.jar
plugins/ilg.gnuarmeclipse.doc.user_1.1.1.201704251808.jar
plugins/ilg.gnuarmeclipse.managedbuild.cross_2.4.1.201704251808.jar
plugins/ilg.gnuarmeclipse.managedbuild.packs_1.3.1.201704251808.jar
plugins/ilg.gnuarmeclipse.packs.core_1.1.3.201704251808.jar
plugins/ilg.gnuarmeclipse.packs.data_1.3.1.201704251808.jar
plugins/ilg.gnuarmeclipse.packs.ui_1.2.4.201704251808.jar
plugins/ilg.gnuarmeclipse.packs_1.2.4.201704251808.jar
plugins/ilg.gnuarmeclipse.templates.ad_1.1.4.201704251808.jar
plugins/ilg.gnuarmeclipse.templates.core_2.5.6.201704251808.jar
plugins/ilg.gnuarmeclipse.templates.cortexm_1.4.2.201704251808.jar
plugins/ilg.gnuarmeclipse.templates.freescale.pe_1.2.1.201704251808.jar
plugins/ilg.gnuarmeclipse.templates.freescale_2.2.8.201704251808.jar
plugins/ilg.gnuarmeclipse.templates.stm_2.6.2.201704251808.jar

sent 8222123 bytes  received 1158 bytes  213591.71 bytes/sec
total size is 8216700  speedup is 1.00
Published on the test site.
Archive available from "/Users/ilg/My Files/MacBookPro Projects/GNU ARM Eclipse/archive/internal/ilg.gnuarmeclipse.repository-3.4.1-201704251808.zip"
When final, don't forget to publish the archive too!
Install new software from http://gnuarmeclipse.sourceforge.net/updates-test
logout

Install on a separate Eclipse

Test if the new build can be used as an update site, by installing from updates-test on a separate Eclipse (not the one used for development).

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 v3.2.1.

Update the Change log

Scan the Git log and add new entries to the Change log (pages/developer/change-log.md), grouped by days.

$ git log --pretty='%cd * %s' --since 2015-06-24 \
--reverse --date=short >~/Desktop/ChangeLog.txt

Add an entry with the latest feature & plug-in versions, copied from the publish script output.

Prepare a new blog post to announce the release

Add a new file to the _drafts and later moved to _posts/plugins/releases.

Name the post like: Release v2.9.3 201508190739, title: Version 2.2.1-201404120702 released.

The structure of the post should contain:

  • date, as Aug 1, 2015 (italics)
  • one intro paragraph with the summary of the changes
  • a link to [Binary files »](), currently empty, to be filled with the release URL
  • headers like:
## New features
## Addressed bugs
## Template issues
## Other changes
## Known problems

An example would be the 2.9.1 announcement.

Scan the GitHub Issues and the SourceForge trackers and add references to all tracked issues.

Mark all these issues as part of the current version milestone. Refer to them as [Issue:#22]. For SourceForge, refer to them as [bugs:#98], [feature-requests:#60], [support-requests:#81].

Test local version of the Web

  • build the local Jekyll gnuarmeclipse.github.io-source project
  • test it using the localhost:4000 address
  • Git Push & Sync the gnuarmeclipse.github.io-source project; use something like v3.2.1-201701141320 released as message
  • Git Push & Sync the gnuarmeclipse.github.io project; use something like v3.2.1-201701141320 released as message

Publish on the main SourceForge updates site

When all ready, run the scripts/publish-updates.command:

ilg-mbp:~ ilg$ /Users/ilg/My\ Files/MacBookPro\ Projects/GNU\ ARM\ Eclipse/gnuarmeclipse-se-git/scripts/publish-updates.command ; exit;
Do you really want to publish? (Yes)? Yes
Updating Eclipse/updates
Rsync-ing SourceForge Eclipse/updates site
Password:
building file list ... done
deleting features/ilg.gnuarmeclipse.templates.stm_1.6.1.201401111229.jar
deleting features/ilg.gnuarmeclipse.managedbuild.cross_1.7.1.201401111229.jar
deleting features/ilg.gnuarmeclipse.debug.gdbjtag.jlink_1.2.1.201401111229.jar
deleting plugins/ilg.gnuarmeclipse.templates.stm_1.6.1.201401111229.jar
deleting plugins/ilg.gnuarmeclipse.templates.core_1.1.1.201401111229.jar
deleting plugins/ilg.gnuarmeclipse.managedbuild.cross_1.7.1.201401111229.jar
deleting plugins/ilg.gnuarmeclipse.debug.gdbjtag.jlink_1.2.1.201401111229.jar
./
artifacts.jar
content.jar
features/
features/ilg.gnuarmeclipse.debug.gdbjtag.jlink_1.4.1.201402140758.jar
features/ilg.gnuarmeclipse.debug.gdbjtag.openocd_1.1.1.201402140758.jar
features/ilg.gnuarmeclipse.managedbuild.cross_1.8.1.201402140758.jar
features/ilg.gnuarmeclipse.templates.freescale_1.2.1.201402140758.jar
features/ilg.gnuarmeclipse.templates.stm_1.7.1.201402140758.jar
features/org.eclipse.cdt.cross.arm.gnu_0.5.5.201310221100.jar
plugins/
plugins/ilg.gnuarmeclipse.debug.gdbjtag.jlink_1.4.1.201402140758.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.openocd_1.1.1.201402140758.jar
plugins/ilg.gnuarmeclipse.debug.gdbjtag.restart_1.1.1.201402140758.jar
plugins/ilg.gnuarmeclipse.managedbuild.cross_1.8.1.201402140758.jar
plugins/ilg.gnuarmeclipse.templates.core_1.2.1.201402140758.jar
plugins/ilg.gnuarmeclipse.templates.freescale.pe_1.1.2.201402140758.jar
plugins/ilg.gnuarmeclipse.templates.freescale_1.2.1.201402140758.jar
plugins/ilg.gnuarmeclipse.templates.stm_1.7.1.201402140758.jar
plugins/org.eclipse.cdt.cross.arm.gnu_0.5.5.201310221100.jar

sent 3926827 bytes  received 1714 bytes  270933.86 bytes/sec
total size is 3999834  speedup is 1.02
Published on the main site.
logout

[Process completed]

Do not close the terminal before copy/paste the list to the ChangeLog page!.

Clean the mess in the local archive folder

  • go to …/GNU ARM Eclipse/archive
  • move the latest archive to releases/plug-ins
  • move the other archives to internal

Merge develop into master

  • in SourceTree, switch to the develop branch
  • push the develop branch to GitHub
  • in SourceTree, switch to the master branch
  • merge the develop branch into master
  • push the master branch to GitHub
  • switch to develop

Create a new GitHub release

  • be sure the develop branch is up to date and set as default
  • go to the GitHub Releases page
  • click Draft a new release
  • name the tag like v2.9.3-201508190739 (mind the - in the middle!)
  • select the develop branch
  • name the release like GNU ARM Eclipse plug-ins v2.9.3-201508190739 (mind the - in the middle!)
  • as description, copy the first paragraph from the Web release page
  • attach binaries (drag and drop from the archives folder will do it)
  • click the Publish Release button

Note: at this moment the system should send a notification to all clients watching this project.

Publish the Web

  • Git Push & Sync the gnuarmeclipse.github.io-source project; use something like v3.2.1-201701141320 released as message
  • wait for the Travis build to complete; occasionally links to not work, and might need to restart the build

Note: the release must exist, otherwise Travis will complain and do not publish the site to gnuarmeclipse.github.io.

In the GitHub Releases page:

  • add a link to the Web page [Continue reading »]()
  • get URL from web Releases and update the above link

Add the release downloads badge

The code looks like this:

[![Github Releases (by Release)](https://img.shields.io/github/downloads/gnuarmeclipse/plug-ins/v3.4.1-201704251808/total.svg)](http://gnuarmeclipse.github.io/blog/2017/02/25/plugins-v3.4.1-201704251808-released/)

Close issues

For all GitHub issues marked with the current version, close them with a message like fixed since v3.2.1-201701141320.

Publish on SourceForge ()

  • go to SourceForge Files
  • select the folder corresponding to the latest version (currently 3.x); create a new one if necessary
  • click the Add File button
  • drag and drop the file (for example ilg.gnuarmeclipse.repository-3.1.1-201606210758.zip) in the upload window and click the Upload button
  • click the Done button
  • check it the new file was published; click the info icon
  • enable the Windows, macOS and Linux buttons
  • after a while the new upload will be marked as latest version

Share on Facebook

  • go to the new post and follow the Share link.
  • DO NOT select On your own Timeline, but On a Page you manage
  • select GNU ARM Eclipse
  • posting as GNU ARM Eclipse
  • click Share link
  • check the post in the Facebook page

Update the Eclipse Marketplace records