Developer's Guide to the BioPEPA Eclipse Plug-in

Introduction

This document serves to illuminate those seeking to extend the functionality of the BioPEPA Eclipse Plug-in. Development has so far been carried out at the University of Edinburgh.

Obtaining the Source

The first thing you will need to do is obtain a copy of the source code.

Using Cvs

You will first need a cvs account, for which contact Informatics support. If you are not a member of Informatics see someone related to the BioPEPA project who is and they should be able to acquire one for you. The server is simply cvs.inf.ed.ac.uk. The repository path is /disk/cvs/pepa

In general work in your own branch, not that of HEAD. You only really need to commit to HEAD when you are ready to make a release. Of course if there are multiple people working at the same time then occasionally you need to commit to HEAD such that each can incorporate each other's changes. Otherwise you end up with two very separate versions, the first to commit to HEAD experiences few problems but then the second may have a large number of conflicts. In light of this, you should release often. Commits to your own branch you preferably be one piece of work, that is the addition of some new functionality or a bug fix. If a user reports a bug you should really do the following

  1. Create a new branch
  2. Switch to the new branch and fix the bug
  3. Commit to the branch
  4. Switch to HEAD and merge in the bug fix
  5. Release such that the user can use with the bug fixed
  6. Switch back to your own branch
  7. Merge in the changes of HEAD to your own branch
  8. Continue working on what you were working on
Of course for many very minor bug fixes this is a lot of effort, particularly if you aren't going to release because of the bug fix. If, for example the user is willing to wait until the next release to benefit from the bug-fix/feature addition. Additionally when we switch to a new branch it is as useful to have a separate 'bug-fixing' branch which is always used for this purpose rather than create a bunch of extra branches.

Making A Release

This section will detail the steps involved in making a release of the BioPEPA-Eclipse software.

  1. Make sure everything compiles and you are happy with the source code
  2. Commit the changes to your branch of the CVS
  3. Switch to the HEAD branch
  4. Merge in the changes from your branch to HEAD. This may involve conflict resolution. The start-tag that you wish to merge from, should either be the root of your branch if this is your first commit into HEAD or a tag you created the last time you merged into HEAD. If you are unsure essentially choose the latest TAG that you yourself made or the root tag of your branch.
  5. Now we make a release from HEAD, first of all in each of the Manifest files: uk.ac.ed.inf.biopepa.core.META-INF.Manifest (similarly for help and ui), bump the version number up to that which you wish to release (eg 0.2.1).
  6. Bump the version number in uk.ac.ed.inf.biopepa.feature
  7. You can try building and exporting everything from here, follow the instructions under "Exporting". When Synchronising choose the middle option "Copy version numbers from feature fragments ...".
  8. Now go to uk.ac.ed.inf.pepa.eclipse.feature and export from there. Again follow the instructions in "Copy version numbers from feature fragments". Check under the "Plugins" tab that all the features (the three for common, pepa and biopepa) are present and at the correct version numbers. Choose a new folder to export to.
  9. Choose Publishing/Update Site
  10. Select a project name and location. Tick 'Generate web content'
  11. This will create an empty site and also take you to the Managing the Site here you must add all the features you need and then click "Build All".
  12. Contact Stephen who will move your created directory to the update location on the PEPA website.
  13. Switch back to your own branch
  14. Merge in the changes that you have made to HEAD into your own branch. When you do this you will most likely use 'Overwrite' to solve any conflicts that arrive. The point is that here you wish your branch to exactly the same as that of HEAD.
  15. Tag your branch with the current date and the release you just made
  16. Continue hacking
Notes: Why don't we just make the release from your own branch? Because someone else may have made a subsequent release and hence you would both release with the same version number. If everyone releases from HEAD then the version number is always bumped and always increasing.