Developer procedures - soctrace-inria/ocelotl GitHub Wiki
Summary
This page describes some procedures related to Ocelotl maintenance. It follows the Framesoc developpers guideline.
Update Ocelotl website
Ocelotl website is automatically generated by using the GitHub page generators and taking the README.md as input. To update the website the procedure is the following:
- Update the file README.md, commit and push it on Ocelotl repository.
- From the Settings page, go to the Automatic page generator.
- Press the Load README.md button to load the README.md content.
- Remove the first title, since it is redundant with the web page title.
- Press Continue to layouts and chose the Slate layout.
- Press Publish Page.
Note: to change the existing images (or add new images or other kind of resources), you have to add them on the gh-pages
branch of Ocelotl repository. This branch contains the actual website content. In the README.md you will have to use the whole url of these resources.
Create a new wiki page
When you add a new page to the Ocelotl wiki, you have to update the wiki sidebar as well. Therefore, the procedure to follow is:
- Create the new page.
- Update the sidebar, adding the new page to the right section.
Release Ocelotl
Releasing Ocelotl means uploading a new version of the soctrace-inria update site and creating a new GitHub release. This section describes the procedure to do all of this.
Requirements
Your clones of Ocelotl and soctrace-inria.github.io repositories must be in the same root directory.
For example:
./somedir/ocelotl
./somedir/soctrace-inria.github.io
Update site creation and upload
-
Be sure that
ocelotl/fr.inria.soctrace.tools.ocelotl.maven.master/pom.xml
is up to date. It must contain all the modules that compose Ocelotl. If it is not the case, add the modules that are missing. -
Check
ocelotl/fr.inria.soctrace.tools.ocelotl.maven.repository/category.xml
. It must contain the right metadata and the url to the feature Eclipse plug-in. -
Go to
ocelotl/fr.inria.soctrace.tools.ocelotl.maven.master
-
Change the version using a command similar to the following:
./change_ocelotl_version.sh 1.2.3
Note that the version must have the format x.y.z
.
-
If all is OK, commit and push the modifications related to the new version number.
-
Build Ocelotl.
./maven_build.sh
- If all is OK, upload the generated update site.
./upload_ocelotl.sh
Making a GitHub release
- Go to the Ocelotl release page.
- Press Draft a new release.
- In the Tag version text field, specify the version tag in the format
vx.y.z
, wherex.y.z
must be the same as before. - In the Release title text field, specify the version name using the format
vx.y.z
, wherex.y.z
must be the same as before. - Optionally describe the release. A good practice is to summarize what has be done during the milestone using the title of its issues.
- Press Publish Release.
Development workflow management
Internal contributions
- The development tasks planned for Ocelotl are described as GitHub issues.
- Different issues are grouped into milestones.
- Milestones correspond to new releases.
- Milestone names are the same as the tag that will be use for the GitHub release (e.g.,
vx.y.z
). - The development of all the issues of a given milestone is done in a specific branch of the master. For example, the milestone
Version 1.0.6
could be managed on a branch namedmilestone-1.0.6
. - When an issue has been dealt with, some tests are done to verify that all is good and the issue is closed.
- When all the issues of the milestone are closed, the following steps are done:
- Some general tests are done to verify that all the issues of the milestone are actually done.
- The user documentation (
ocelotl.doc
repository) is updated, if necessary. - The milestone branch is merged into the master and the branch is deleted.
- The milestone is closed on GitHub and we can make a release.
- Note: The master should always contain a stable version.
External contributions
External contributions (contributions from people not belonging to the soctrace-inria team) will follow the normal GitHub fork/pull-request procedure.