Create merge-request for BUGFIX

Created by Nick Papior
Keywords:
all
Last updated by:
Nick Papior

NOTE:
This procedure should _only_ be followed if your are proposing a bugfix for siesta.
If you a proposing a new feature then please see https://answers.launchpad.net/siesta/+faq/2748

To prepare a BUGFIX merge you *must* branch of the current release series version code and commit your feature changes.
A BUGFIX *must* be associated a bug on Launchpad. If a bug for the issue has not been created yet, please do so. You will need that later in the process.

To make a branch of the siesta release series version do this:
   bzr branch lp:siesta/X.Y fix-<branch-name>
   ...
   <Make all your code changes>
   ...

NOTE: The prefix of "fix-<branch-name>" for the bugfix.

1. Step the version.info file.
2. Add your changes to the Docs/CHANGES file in the same formatting as is already present.

NOTE: Please make a thorough explanation of changes etc. If needed, also add information in the manual (Docs/siesta.tex) to make the change publicly known via the manual.

NOTE: A good advice is to commit often, there is no reason to postpone commits when the code is in a usable condition.

Perform a commit:
   bzr commit --fixes lp:<bug-ID> --file=<logfile>

The <bug-ID> may be found in the list of bugs under "#<bug-ID>".

At this point you have the updated code and committed the code locally.
Now you must make it publicly available.
Do this:
   bzr push lp:~<your lp username>/siesta/fix-<branch-name>

This puts your changes to launchpad and it will be publicly available.
Now you must tell the siesta-maintainers that you have created a change and you wish to let it enter the code repository.

Go to this webpage:
   https://code.launchpad.net/~<your lp username>/siesta/<branch-name>

and under the item "Branch merges" you can press "Propose for merging".
Do this and fill out the relevant information.
NOTE: The default merge branch is defaulted to lp:siesta (which is NOT what you want). You want to change this to the corresponding rel-X.Y branch that you branched of (please ensure this!). Additionally, if the bug is also present in the trunk you can also add that (thus having two "Related branches").

Typically you want the merge-request to be reviewed by any siesta-developer.
To do this enter:
    siesta-maint
in the "Reviewer" box.
Otherwise, if you want a specific maintainer to review your merge-request, enter their launchpad ID into the "Reviewer" box.

Now you are done.
You have made the siesta-maintainers aware of a bugfix that is eligible to be merged into the release tree.
Wait and see if the maintainers accept your contribution. It may happen that the maintainers decide that more information is needed, or that additional comments are required in the code changes. If this is the case then you must re-commit those changes to your branch (lp:~<your lp username>/siesta/fix-<branch-name>).

FOR DEVELOPERS AND SIESTA-MAINTAINERS:

You may also follow the above guidelines in _exactly_ the same manner if you wish to make bug-fixes.
It may be advantageous to create bug-reports as you find bugs as that also makes them publicly known.

As a maintainer you have the exclusivity to merge merge-requests into the trunk.

To do this you *must* perform these steps:

1. Mark the merge as "Accepted" so that other maintainers know that you are in the process of performing a merge.
2. "cd" to your local branch of siesta/rel-X.Y (the release branch that the bug-fix was forked from)
3. Perform a "bzr pull" to ensure you are at the HEAD of the branch.
4. Perform the actual merge:
    bzr merge lp:<branch information from merge webpage>
Create a log of the commit message describing the code changes. You may request a short message from the merge-requestee.
5. Push merge to the trunk.
    bzr push lp:siesta/rel-X.Y
6. Often the bug is also present in the trunk code. If this is the case you also must perform the following steps. If not you may skip the remaining steps.
7. cd trunk, bzr pull
8. Merge the rel-X.Y
   bzr merge ../rel-X.Y
9. Fix any inconsistencies and commit.
10. Make the merge public:
   bzr push lp:siesta