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 2.0, the previous release is 1.9.
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 infrugalware.git
, upload a new release tarball, and update the package in -current -
rebuild the
setup
package, update the version of thefrugalware
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.9→2.0 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-2.0
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.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 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
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!