1. 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 1.7, the previous release is 1.6.
2. 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 <version> 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
3. Preparing
-
send a mail to -devel about "please stop version and release bumps"
-
check if the artwork has been updated completely. see 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.6→1.7 works or not, probably a simple -Syu is not enough, then write a howto
-
tag the release using git tag
4. Creating the stable tree
Copy the full tree on genesis:
$ cd /home/ftp/pub/frugalware $ cp -av frugalware-current frugalware-1.7
5. 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).
6. 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.6 tag to the 1.7 tag
-
rename the frugalware-current fdbs to gaia:
for i in frugalware-*; do cd $i; mv frugalware-current.fdb gaia.fdb; cd ..; done
-
tweak the syncpkgd config, so that the gaia 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 1.7 with gaia as well.
-
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 gaia fdbs to frugalware:
for i in frugalware-*; do cd $i; mv gaia.fdb frugalware.fdb; cd ..; done
-
upload the fdbs to the mysql db using fpm2db, just run all2db.sh from the /tools dir
-
create a new chroot tarball for each arch
7. 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
8. 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
9. For the next release
-
find a codename
-
update roadmap.xml
Done!