= Frugalware Release HOWTO == Introduction The aim of this howto is to show what's the procedure of a stable Frugalware release. The to-be-created release in this howto is 2.0, the previous release is 1.9. == A testing release A testing release is similar to a full one, but much simpler. Here are the steps: - bump the `frugalware` package: update the Makefile in `frugalware.git`, upload a new release tarball, and update the package in -current - rebuild the `setup` package, update the version of the `frugalware` package dependency to the new version - wait for the nightly cronjob to publish setup kernel+initrd under `/pub/frugalware/frugalware-current/boot` - now you can generate a netinstall iso using mkiso for a single architecture you can test and upload the image to `/pub/frugalware/frugalware-current-iso` - do a default install and make sure the machine boots up and you can log in using the graphical interface (if not, then fix it) - run `dg tag ` for the new version and push, using: ---- git push git push --tags ---- - sync changes from -current to -testing: -------------------------------------------------------------------- $ rsync -avP --delete-after frugalware-current/ frugalware-testing/ -------------------------------------------------------------------- - generate installer images for a single architecture using `mkisorelease` - wait at least 24h so that mirrors will be in sync - update news.xml and roadmap.xml to mark the release as done == Preparing - send a mail to -devel about "please stop version and release bumps" - check if the artwork has been updated completely. see http://frugalware.org/pipermail/frugalware-devel/2007-February/003163.html[this] mail from Nadfoka on what items should be checked - ask someone to update the screenshots - sync the archs, checkpkgs shouldn't have any red pkg in it's output - run gensync to rebuild the fdbs - generate isos and test if everything is ok (ie. install from cd1-cd2 on i686, and start kde, or something) - check if the upgrade from 1.9->2.0 works or not, probably a simple -Syu is not enough, then write a howto - tag the release using git tag == Creating the stable tree Copy the full tree on genesis: ---------------------------------------- $ cd /home/ftp/pub/frugalware $ cp -av frugalware-current frugalware-2.0 ---------------------------------------- == Updating the -current tree Now one has two trees. All what one should do in -current is to regenerate ChangeLog.txt (copy & paste the command from `tools/genpkgdbs`). == Updating the -stable tree - run tools/mkpkglst for each arch - update VERSION in docs/Makefile, and rebuild the manual - update `\.git/description` - run genpkgs to regenerate the ChangeLog.txt to start from the 1.9 tag to the 2.0 tag - rename the frugalware-current fdbs to rigel: ---- for i in frugalware-*; do cd $i; mv frugalware-current.fdb rigel.fdb; cd ..; done ---- - tweak the http://frugalware.org/docs/repos#_enabling_syncpkgd_support_for_a_wip_repo[syncpkgd config], so that the rigel repo will be recognized as a non-current-based WIP repo - search for 'ugly' in genesis:/pub/other/git-hooks/synchook/synchook.py and make it reply 2.0 with rigel as well. - you must place a copy of the new repo file in each build server's `/etc/pacman-g2/repos` directory or else it will not work. - update pacman-{g2,-tools} and fwsetup so that -stable will be the default on -Syu / repoman upd / in the installer, not -current -- and git push these changes (see previous stable release if you need an example!) - once all archs are ready with the "default to -stable" builds, rename rigel fdbs to frugalware: ---- for i in frugalware-*; do cd $i; mv rigel.fdb frugalware.fdb; cd ..; done ---- - upload the fdbs to the mysql db using fpm2db, just run all2db.sh from the /tools dir - update the frugalware-stable and frugalware-stable-iso symlinks ---- ln -sfn frugalware-2.0 frugalware-stable ln -sfn frugalware-2.0-iso frugalware-stable-iso ---- - create a new chroot tarball for each arch == Testing - generate isos, test _all_ of them (net,cd,dvd for each arch) - create an usb stick installer tarball for each arch - create an tftp boot image for each arch - create a gui installer image for each arch == Announcement - put the isos online and wait at least 24h so that the mirrors will be in sync at release time - create torrents for the isos and make sure at least one machine seeds them - add the new version to the bts - write an announcement, put it out to somewhere and ask Alex or LGee to spellcheck it - push it to the homepage-ng repo - mark the release as "done" in `/frugalware/xml/roadmap.xml` (homepage-ng repo) and add the proper newsid value - update the topic of `#frugalware` - update the freecode.com entry == For the next release - find a codename - update roadmap.xml Done!