# # # rename "tester.txt" # to "notes/tester.txt" # # rename "tests/README" # to "notes/README.testing" # # rename "testsuite.txt" # to "notes/testsuite.txt" # # add_dir "notes" # # add_file "notes/release-checklist.txt" # content [9780239bd39e5c648a9bec70e4bb2ece9d232182] # # patch "ChangeLog" # from [420257ab953fc6d3ddde564363a689f020814ab0] # to [6360387279cbba38ec77b29f4e5944990fb3819e] # # patch "HACKING" # from [89e1d8631e52e322d33505a008802c049bc3f02b] # to [f7c096ad0e0f32ac5e7c61531915fd4a9d484485] # # patch "notes/README.testing" # from [3d2a25cc89d8b1fb5637ab5c76fa560fdbc1b362] # to [cb219cfba2f16ea74a9def77b8fd53e35bbf411b] # ============================================================ --- notes/release-checklist.txt 9780239bd39e5c648a9bec70e4bb2ece9d232182 +++ notes/release-checklist.txt 9780239bd39e5c648a9bec70e4bb2ece9d232182 @@ -0,0 +1,127 @@ +How to release a new version of monotone +---------------------------------------- + +0) Make sure that the buildbot looks reasonably green. Let's not + release stuff that's known to be broken on any major platforms, eh? + +1) Write user-readable release notes at the top of the NEWS file, + roughly following the format of existing entries. Make sure to + mention any incompatibilities at the top, and generally it's a good + idea to put cool new stuff above nice-but-not-as-exciting stuff. + + A useful command (don't forget to substitute the correct value for + ""): + + $ mtn automate ancestry_difference \ + $(mtn automate select h:net.venge.monotone) \ + $(mtn automate select t:monotone-) \ + | mtn automate toposort address@hidden \ + | xargs -n1 mtn log --last=1 -r + + (The length of the previous line should be considered a mtn bug.) + + Commit your release notes, so other people can see them. + +1.5) Get people to read over your release notes, it's really easy to + make mistakes or have stupid grammatical errors here. + +2) Update the UPGRADE file. At the very least, bump the version + number in the first line. This file should always contain a + complete description of how to upgrade from any version of monotone + to the latest release -- you may need to tweak or remove earlier + entries to keep this true. + + Commit your changes. + +3) Double-check that INSTALL, AUTHORS, and README don't need any + updates. If they do, make them. + +4) Update version numbers. The following files need to be touched: + configure.ac: change the call to AC_INIT + monotone.spec: change the "Version:" field, and add an entry to + the %changelog section. + win32/monotone.iss: the version number is mentioned several times + in this file, make sure to replace them all. + visualc/config.h: again, the version number is mentioned several + times, don't miss any. + debian/changelog: rather than modifying this file directly, run + the command "debchange -v -0.1". (If you screw up + and need to roll a new unofficial package, use "debchange -i" + to increment this number.) + + Commit your changes. + +5) Okay, everything should be ready to go... double-check that: + -- you've done the above steps correctly + -- you've entered the correct date at the top of the NEWS file + (esp. important when you wrote the notes a few days ago so + people could look them over!) + +6) Build and test the source package, in a clean checkout (if you use + your main workspace, you increase the changes of accidentally + picking up weird stuff): + + $ mtn co -r h:net.venge.monotone SOMEDIR + $ cd SOMEDIR + $ autoreconf -i && ./configure && make distcheck + + Wait a long time, eventually it will either bomb out, or say + "monotone-0..tar.gz is ready for distribution". If it + bombs out, fix it, otherwise, SOMEDIR/monotone-.tar.gz + is the source package. + +7) Build docs for the website: + + $ tar xvzf SOMEDIR/monotone-.tar.gz + $ cd monotone- + $ ./configure + $ make monotone.pdf html + +8) Upload everything to the website: + + $ scp SOMEDIR/monotone-.tar.gz \ + venge.net:~graydon/public_html/monotone/downloads/ + $ scp monotone-/{NEWS,INSTALL,UPGRADE,README,monotone.pdf,monotone.html} \ + venge.net:~graydon/public_html/monotone + $ ssh venge.net + venge.net$ cd ~graydon/public_html/monotone + venge.net$ rm -rf docs/ + venge.net$ exit + $ scp -r monotone-/html \ + venge.net:~graydon/public_html/monotone/docs + +9) Update index.html on the website to state the latest version at the + top, and modify the list of download links to point to the new + version. + +10) Update downloads.html on the website similarly. + +11) Once you're pretty sure things have gone well, tag the source: + + $ mtn tag monotone- + + This is the last possible moment to back out! + + $ mtn sync + +12) Change the topic in the IRC channel to state the new version + number. + +13) Send out a release announcement. Format is something like: + + To: address@hidden + CC: address@hidden + Subject: [ANNOUNCE] monotone released + + + + + + + +14) Submit a release announcement to freshmeat.net. + +15) Note any mistakes you made and update this file accordingly for + next time. + +16) Party! ============================================================ --- ChangeLog 420257ab953fc6d3ddde564363a689f020814ab0 +++ ChangeLog 6360387279cbba38ec77b29f4e5944990fb3819e @@ -1,5 +1,13 @@ 2006-11-11 Nathaniel Smith + * notes/: New directory for developer docs. + * notes/release-checklist.txt: Neaten up my release checklist and + commit it. + * tests/README, tester.txt, testsuite.txt: Move to notes/. + * HACKING: Add a mention of notes/. + +2006-11-11 Nathaniel Smith + * NEWS: Set release date. 2006-11-10 Nathaniel Smith ============================================================ --- HACKING 89e1d8631e52e322d33505a008802c049bc3f02b +++ HACKING f7c096ad0e0f32ac5e7c61531915fd4a9d484485 @@ -1,6 +1,11 @@ Contributing to monotone Contributing to monotone ======================== +This file gives a number of basic guidelines and tips for hacking on +monotone. For more specific topics (for instance, documentation on +writing tests, or the release process), see also the files in the +notes/ directory. + Coding standards ---------------- ============================================================ --- tests/README 3d2a25cc89d8b1fb5637ab5c76fa560fdbc1b362 +++ notes/README.testing cb219cfba2f16ea74a9def77b8fd53e35bbf411b @@ -1,9 +1,14 @@ -HOWTO make tests -================ +HOWTO handle external (blackbox) tests +====================================== -Quick and dirty howto, to get you up to create and run tests. -Very early draft. Feel free to improve. +Quick and dirty howto on how we do "blackbox" tests, the kind of tests +that are run against the mtn executable as a whole, and live in the +tests/ directory. Very early draft. Feel free to improve. +See also the "tester.txt" and "testsuite.txt" files, which +respectively describe the basic testing framework's API, and the +monotone-specific addons. + Running tests: -------------- - Starting in the monotone main dir. After having './configure'd monotone you