# Branches and Tags: There are 3 branches/tags: * **HEAD:** The cutting edge of development. * **tag stable:** Stable enough for use by most people. * **tag production:** Burned in long enough that we are confident it can be widely adopted. If you are packaging Blackbox for distribution, you should track the *tag production*. You might also want to provide a separate package that tracks *tag stable:* for early adopters. # Build Tasks # Stable Releases Marking the software to be "stable": Step 1. Tag it. ``` git pull git tag -d stable git push origin :stable git tag stable git push origin tag stable ``` Step 2. Mark your calendar 1 week from today to check to see if this should be promoted to production. # Production Releases If no bugs have been reported a full week after a stable tag has been pushed, mark the release to be "production". ``` git fetch git checkout stable git tag -d production git push origin :production git tag production git push origin tag production R="v1.$(date +%Y%m%d)" git tag "$R" git push origin tag "$R" ``` # Updating MacPorts Step 1: Generate the Port file tools/mk_portfile.sh tools/Portfile.template Portfile 1.20150222 Step 2: Test it locally sudo vi /opt/local/etc/macports/sources.conf Add this line early in the file: file:///var/tmp/ports rm -rf /var/tmp/ports mkdir -p /var/tmp/ports/security/vcs_blackbox cp Portfile /var/tmp/ports/security/vcs_blackbox cd /var/tmp/ports && portindex sudo port clean --all vcs_blackbox sudo port uninstall vcs_blackbox sudo port install vcs_blackbox Step 3: File a request for an update * https://trac.macports.org/newticket * Summary: `vcs_blackbox @1.20150222 Update to latest upstream` * Description: ``` New upstream of vcs_blackbox. github.setup and checksums updated.``` * Type: `update` * Component: `ports` * Port: `vcs_blackbox` Attach the `Portfile` generated in Step 1. Step 4: Wait for the devs to pick up the change.