Files
weewx/DEV_NOTES.txt
2013-10-09 16:35:19 +00:00

124 lines
4.5 KiB
Plaintext

checklist for doing a release:
1. Check to make sure weewx.conf doesn't have any local changes.
In particular, check to make sure:
1. WEEWX_ROOT points to /home/weewx
2. Debug set to zero.
2. Make sure the correct version has been entered in weewx.__init__.py
3. Make sure the correct version has been entered in weewx.conf
4. Make sure all changes have been logged in docs/changes.txt
5. Make sure the upgrading guide has been updated if necessary.
6. Make sure the customizing.htm and usersguide.htm have the correct
version number at the top.
7. If working off a branch, commit all changes.
8. Switch to main trunk
9. Right click on the top level weewx, select Team | Merge. Select
"Reintegrate" and enter the branch as the URL.
10. After looking things over, commit changes back to the trunk.
11. Right click top level weewx, select Team | Tag and create a new tag
with a name similar to tags/v1.3.1. Comment should read something
like "Version 1.3.1 release"
12. Using a terminal, run "./setup.py sdist" to create a tarball.
13. As a final sanity check, go to the production machine, unpack the
tarball, install, run.
14. Uploading to SourceForge:
1. Upload tarball
2. Select the new tarball as the Mac, Linux, and BSD distribution
3. Copy docs/changes.txt to a directory, change name to README.txt,
then change to DOS CRLF convention. Upload to the files area.
15. Run a backup on condor
16. Run Microsoft Expression Web on the PC.
1. Copy all the new docs to the weewx web folder, subdirectory docs.
2. Add to the "What's New" section on the front page.
3. Upload everything to the web server.
17. Announce the release to the weewx user's group.
create README.txt for sourceforge:
make readme
how to update the version number:
modify __version__ in bin/weewx/__init__.py # canonical version location
make version # this propagates the version number everywhere
svn commit -m "..." # commit the change to the repository
how to build source package:
make src-package
how to build debian package:
make deb-changelog
emacs pkg/debian/changelog # add any package-specific changes, if any
svn commit -m "update deb changelog"
make deb-package
how to build redhat package:
make rpm-changelog
emacs pkg/changelog.rpm # add any package-specific changes, if any
svn commit -m "update rpm changelog"
make rpm-package
to generate gpg key used for signing packages:
gpg --gen-key
gpg --list-keys
for signing rpm packages:
~/.rpmmacros
%_signature gpg
%_gpg_name Matthew Wall
to display debconf variables:
sudo debconf-show weewx
to manually purge debconf variables:
sudo echo PURGE | debconf-communicate weewx
notes:
there are multiple changelogs:
docs/changes.txt - definitive changelog for the application
pkg/debian/changelog - changes to the debian packaging
pkg/changelog.rpm - changes to the redhat packaging
README.txt - copy of changes.txt uploaded to sourceforge files directory
when signing, gpg info must match the name and email in the latest package
changelog entry.
the debian changelog *must* have a version number that matches the app version.
the redhat package will build if the version numbers do not match. use the
rpm-changelog and deb-changelog targets to ensure that changelog versions match
the application version for a release.
there are many ways to build a debian package. first tried dpkg (uses DEBIAN
dir and is fairly low-level) but that does not create changes and source diffs.
then dried dpkg-buildpackage (uses debian dir and is higher level) but misses
the config and templates. ended up using dpkg-buildpackage with some manual
(scripted) file manipulation.
what to test when creating debian and redhat packages:
install, upgrade, remove, purge
install, modify files, remove
install, modify files, upgrade
how to install/remove using various approaches:
source install:
setup.py install
setup.py install home=/opt/weewx-x.y.z
debian install/remove:
dpkg -i weewx_x.y.z-r.deb # install
(apt-get install weewx) # finish install if dependencies failed
dpkg -r weewx # remove
dpkg -P weewx # purge
redhat install/remove:
yum install weewx-x.y.z-r.rpm [--nogpgcheck] # install with yum
yum remove weewx # remove with yum
rpm -i weewx-x.y.z-r.rpm # install with rpm directly
rpm -e weewx # remove with rpm