1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
# Build release archive
1. Reset your working copy to a clean state
$ git clean -x -d -f
2. Update NEWS (use Markdown syntax)
3. Verify that all manpages are up to date.
4. Bump the version number in:
a. configure.ac at the line AM_INIT_AUTOMAKE(lcm, X.Y.Z)
b. lcm-python/setup.py
c. lcm/lcm.h
5. Update the AGE, REVISION, and CURRENT variables. See configure.ac
comments for details.
6. Build the release tarball
$ autoreconf -i
$ ./configure
$ make
$ make distcheck
7. Take the resulting tarball, extract it, build it, install it, make sure
the basic executables run.
$ tar xzvf lcm-X.Y.Z.tar.gz
$ cd lcm-X.Y.Z
$ ./configure
$ make
$ make install
# Test
1. Build and run all unit tests. Verify that they all pass.
$ cd ../test
$ make clean
$ make
$ ./run_unit_tests.py
$ ./run_client_server_tests.py
2. Repeat unit tests on:
* GNU/Linux
* OS X
3. Test C/C++ library on Windows. Run lcm-source.exe and lcm-sink.exe
4. Test on other available platforms
5. Fix any errors that appear, and repeat as necessary.
# Upload release archive
1. Commit the changes, tag the release, and push to GitHub.
$ git commit -a -m "Release X.Y.Z"
$ git tag vX.Y.Z
$ git push origin master
$ git push origin vX.Y.Z
2. Convert tarball to ZIP file
$ tar xzvf lcm-X.Y.Z.tar.gz
$ zip -r lcm-X.Y.Z.zip lcm-X.Y.Z
3. Draft a new release on GitHub
a. Associate the release with tag vX.Y.Z
b. Name the release title "vX.Y.Z"
c. Add release notes from the NEWS file
d. Attach lcm-X.Y.Z.zip
# Update documentation
1. Build docs
$ cd docs
$ ./build-docs.sh
2. Clone the documentation repository
$ cd ../..
$ git clone https://github.com/lcm-proj/lcm-proj.github.io
$ cd lcm-proj.github.io
3. Copy the built docs to the lcm.www repository
$ cp -r ../lcm/docs/html/* .
4. Commit the changes, tag the release, and push to origin
$ git commit -a -m "Release X.Y.Z"
$ git tag vX.Y.Z
$ git push origin master
$ git push origin vX.Y.Z
# Notify the mailing list
1. Send e-mail to lcm-users@googlegroups.com
|