HANtune Development Procedures

From OpenMBD
< CI
Jump to: navigation, search


This page contains information about the development procedures which are used by the developers of HANtune.


Project Management

During the development of HANtune also our development procedures have evolved. However the usage of Trac has been adopted from a very early stage. Trac is an online environment which provides an online Wiki, ticketing system, code repositories and more. It hosts all the basic needs for a software development team. We are using repositoryhosting.com to host the repositories of HANtune, HANcoder and various other projects.

HANtune Release Strategy

The HANtune releases can be subdivided into the public releases and the internal releases. The public releases of HANtune are indicated with a two digit number, seperated by a dot. (e.g. "HANtune 2.1). The internal releases are only to be distributed to users who have been contacted personally, are willing to work with a potentially unstable version of HANtune and are willing to provide feedback in case of any bugs, enhancements or feature requests. These internal releases are indicated by Alpha, Beta, and potentially Gamma.


Alpha Stage:

In this stage all the new features which are planned for the public release have been added to HANtune and have been tested by the developers. It is now sent to the users who are willing to cooperate with the development of HANtune by providing early feedback. After the Alpha stage no new featers are going to be added and code-changes are to be kept to a minimum. Only bug fixes are allowed at this stage. Do not forget to create a tag in the repository when releasing an Alpha version.


Beta Stage:

In the Beta Stage all the know bugs should have been fixed, so this is actually the "Final Rehersal" before for the public release. To keep risks to a minimum all the bugs found in Beta stage are not going to be fixed but will clearly be documented in the "ChangelogKnownIssues.txt" file, which is provided with each HANtune release. If severe bugs did get discovered, a Gamma release is scheduled, allowing to fix these bugs and verify the fix during the Gamma stage. Do not forget to create a tag in the repository when releasing an Alpha version.

Gamma Stage:

It shouldn't have come this far, but clearly it has. Known bugs are reported in the "ChangelogKnownIssues.txt" file. After all the feedback has been collected and processed, the public release can be released. Do not forget to create a tag in the repository when releasing an Alpha version.


Alpha, Beta and Gamma versions are only published in a disclosed group via a private mailing list. The public release is published on www.openmbd.com under the section "Download". The new public release will replace the old public release.


Testing

HANtune is subject to automated testing and manual testing. After each commit Jenkins is automatically being triggered by Trac to fetch the latest source in order to build, test and archive it.

With regards to manual testing, each release, albeit public or internal, is to be tested according to the same protocol. The test protocol can be found in the hantune_hancoder_testing repo, here: https://hanautomotive.repositoryhosting.com/svn/hanautomotive_hantune_hancoder_testing

In the repository the test document consists of an Excel sheet, to be found on the following path: <repo>\HANtune_testmodels\00_Test Reports\HANtune_Test_Release.xlsx

As new features are continually being added to HANtune, the test protocol should be kept up to date as well. Currently it only covers a basic set of tests to ensure a minimum amount of stable functionality. It is highly desired to review and enhance this document.

SCRUM Methodology

More info will follow shortly...


Ticket Flow

The HANtune ticketflow is dedicated to the environment in which HANtune is being developed. It can be modified in the HANtune project which can be found in Trac. Open the HANtune project, klick on "Admin" and click on "Ticket flow".

Below a visual representation can be found for the HANtune ticketflow. For exact details, please refer to the textual version under the following picture.

HANtune Ticket Flow


The current configuration in text is shown below:

leave = new,assigned,accepted,reopened,closed,needs work,implementing,automating tests,testing -> *
leave.name = Leave (does not change ticket resolution)
leave.default = 11
leave.operations = leave_status
leave.permissions = TICKET_MODIFY
accept = new,assigned,reopened -> accepted
accept.name = Accept and take ownership of this ticket
accept.default = 10
accept.operations = set_owner_to_self
accept.permissions = TICKET_MODIFY
implement = accepted,needs work -> implementing
implement.name = Ready to start implementing
implement.default = 9
implement.permissions = TICKET_MODIFY
test = implementing -> testing
test.name = Implemented, ready for testing
test.default = 8
test.permissions = TICKET_MODIFY
pass = testing -> automating tests
pass.name = Passed Testing, start automation of test
pass.default = 7
pass.permissions = TICKET_MODIFY
fail = testing -> needs work
fail.name = Failed Testing, return to developer
fail.default = 6
fail.permissions = TICKET_MODIFY
reassign = new,assigned,accepted,reopened,closed,needs work,implementing,automating tests,testing -> *
reassign.name = Assign
reassign.default = 5
reassign.operations = set_owner
reassign.permissions = TICKET_MODIFY
reopen = closed -> reopened
reopen.name = Reopen this ticket
reopen.default = 4
reopen.operations = del_resolution
reopen.permissions = TICKET_CREATE
close = automating tests -> closed
close.name = Automated tests work and are verified, close ticket
close.default = 3
close.permissions = TICKET_MODIFY
discard = new,assigned,accepted,reopened,closed,needs work,implementing,automating tests,testing -> closed
discard.name = Discard ticket (mention reason in comments!!)
discard.default = 2
discard.permissions = TICKET_CREATE
reject = accepted -> new
reject.name = Reject (Reject ownership)
reject.default = 1
reject.permissions = TICKET_MODIFY

Tooling

During the development of HANtune several tools are used.


Netbeans

Netbeans is an Integrated Development Environment (IDE) which is used to write the source code of HANtune. Please download the latest version here: netbeans.org/


TortoiseSVN

To be able to use an SVN repository an SVN Client is needed. TortoiseSVN is an SVN client which can be used to commit and update your changes to and from the code repository. For more info on where to download and how to work with TortoiseSVN, please go to their website.