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 0.5, the previous release is 0.4.

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 it

  • 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 0.4→0.5 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-0.5

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

  • rename the frugalware-current fdbs to frugalware

  • 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 0.4 tag to the 0.5 tag

  • update pacman-{g2,-tools} and fwsetup so that -stable will be the default on -Syu / repoman upd / in the installer, not -current

  • 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!