Changes between Version 11 and Version 12 of StartModMaint


Ignore:
Timestamp:
Dec 9, 2013, 5:25:42 PM (9 years ago)
Author:
Beman Dawes
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • StartModMaint

    v11 v12  
    5050== Typical maintenance tasks  ==
    5151
    52 === Testing ===
    53 
    54 Before making any changes to you library, which we will call {{{mylib}}}, be sure the test suite is working in the modular Boost environment:
     52=== Testing locally ===
    5553
    5654{{{
     
    6260=== Checking status  ===
    6361
    64 === Fix a simple bug ===
     62Before making changes, it is a good idea to check status. Here is what that looks like on Windows; the
     63message you get may vary somewhat:
    6564
    66 These commands could be used for any Git project, modular or not, so hopefully you are already somewhat familiar with them:
     65{{{
     66>git status
     67# On branch develop
     68nothing to commit, working directory clean
     69}}}
     70
     71=== Fix a simple bug ===
     72
     73For simple bugs, particularly in projects with a single maintainer, it is common practice to fix bugs directly in the {{{develop}}} branch. Creating a test case with your favorite editor, testing the test case, fixing the bug, testing the fix, and then iterating if necessary is no different than with any programming environment.
     74
     75Once the fix is complete, you then commit the fix locally and push from your local repo up to your public boostorg repo on GitHub. These same commands would be used for any Git project, modular or not, so hopefully you are already somewhat familiar with them:
    6776
    6877{{{
    6978cd modular-boost/libs/mylib
    70 # make edits
    71 # test as above
    7279git commit -a -m "my bug fix"
    7380git push
    7481}}}
    7582
    76 === Fix a complex bug ===
     83=== Fix a bug using a bug-fix branch ===
    7784
     85Fixing a bug directly on the {{{develop}}} branch is fine, if that's the policy for the library, but if the bug is messy, multiple maintainers are involved, interruptions are expected, or other complexities are present, then it is better practice to work on the bug in a separate bug-fix branch.
     86
     87{{{
     88git checkout bugfix/complex-boo-boo
     89}}}
     90
     91This creates the branch {{{bugfix/complex-boo-boo}}}, and switches to it. Incidentally, "bugfix/" is part of the name, not a directory specifier. Because we were on branch {{{develop}}}, {{{develop}}} is what the new branch is based on. Since the bug is complex, it may take some time to fix, and the developer might go through several cycles of fixes, tests, and commits.
     92
     93So far, {{{bugfix/complex-boo-boo}}} is a private branch since it has not been pushed up to the public GitHub repo. To share work-in-progress with others or to create backup:
     94
     95{{{
     96git push
     97}}}
     98
     99Now the branch is public and can be seen by others.
     100
     101Eventually the bug is fixed, so it is time to merge the {{{bugfix/complex-boo-boo}}} branch back into {{{develop}}}:
     102
     103{{{
     104}}}   
     105 
    78106=== Start work on a new feature ===
    79107