HANtune/Developers

From OpenMBD
Jump to: navigation, search

HANtune Development Section

SVN branching and promotion strategy

This page documents the branching, merging and promotion strategy of HANtune. The image below visualizes this process. The chapters below the image contain more specific information about these steps.

HtDevelopmentDiagram.jpg File:HtDevelopmentDiagram.zip

1. Make Temporary Branch

When HANtune has been publicly released and published on the openmbd.com website, a new main branch has been made. When a developer changes a ticket status from accepted to implementing, the first thing the developer has to do is to make his own branch. We call this the "Feature Branch" in which a new feature can be implemented or a bug can be fixed. It is preferred to include the ticket number in the branch name. When implementation has been completed, the developer changes the ticket status from "implementing" to "testing" and changes the owner to someone else for testing.

2. Testing

This testing phase consists of a quick test to verify the functionality of the new feature or the correct fix of the bug.

3. Failed Testing

When the branch has been tested and one or more tests failed, the ticket status will be set to "needs work". The developer will accept this ticket again and will proceed working in his/her branch to fix the issue(s). When the developer is finished, the status will go back to "testing".

4. Passed Testing

When the branch has been tested and all the tests passed, the ticket status can proceed from "testing" to "automating tests". The owner will be set to the Test Automation Engineer, who will pick up this ticket and implement automated tests in the Test Automation Server. At this point in time the developer who has implemented the change can merge his branch back to the Main Branch and pick up the next ticket.

5. Complete and stable

When the Main Branch has reached a status in which it is sufficiently stable and complete, the Main Branch will be merged with the trunk in a way that the Main Branch's changes are dominant. In other words, the contents of the Main Branch and the Trunk will become identical. The main reason for this is to provide enough flexibility for the developers to merge and branch on a regular basis, while ensuring the availability of a recent and stable "latest and greatest" version of HANtune.

6. Featureset complete

7. Promotion to Alpha, Beta or Public release

When the trunk contains all the features which were planned for the next public release, the preparation for the Alpha version is started. The first step in preperation of the Alpha release will be to create a new Main Branch. (See step 8) This way the other developers can continue working to add new features to the next scheduled HANtune version.

The regression tests will be performed and any additional bugs fixed. The bug-fixing will take place in the Main Branch to be merged with the trunk when those bugs are fixed and verified. When no more known bugs exist, the Alpha release will be distributed to the HANtune Alpha and Beta test group.

When any additional issues arise from the Alpha and Beta test group, new bug reports will be created and assigned. When those bugs are fixed and some elementary tests are performed (error-guessing technique) the Beta version can be prepared for release. This version will be distributed for the same group.

The same procedure exists for the public release with the only difference that it will be published in the download section of openmbd.com.

8. Publish online

Before publishing HANtune online, make sure to not forget the following actions:

  • Update the changelog_knownIssues.txt
  • Update the online HANtune manual page on this wiki
  • Update the HANtune Manual PDF in the distribution package
  • Send an email with the announcement of the new HANtune version to the project partners
  • Publish it on the HAN-AR linkedin page

9. Delete old branch

The old branch can only be deleted when it's status reflects in both the trunk and a (definite) tag.

10. Intermediate releases

Intermediate releases can be useful in cases when certain HANtune users are in need of features which aren't released yet. It also enables making some quick changes and send it back to the user without having to go through extensive release procedures over and over again. To make sure there is a stable version available at all times, the Main Branch will only be merged to the Trunk when the Main Branch is stable, tested and all known bugs are documented in the changelog_knownIssues.txt. Also ensure that no features previously present in HANtune are broken or absent. Although the main priority of the trunk is to be stable, it is desired to keep it as up-to-date as possible.