More verbose notes.
[ikiwiki.git] / docs / developer / Release / index.mdwn
CommitLineData
86b77dc1 1#The art of releasing
2
3This is a template on how to do a release.
4
ad252dc8 5##Branching
6
7On crater branch the repo:
8
9 cd /repository/git/dragonfly.git
10 git branch DragonFly_RELEASE_x_y (e.g. 2_8)
11
3691609e 12This is the only step that needs to happen remotely.
13
14On your own system:
15
ad252dc8 16Check out two copies of /usr/src, one with master checked out, one with the new release branch checked out. Checkouts should be under your user id, NOT as root, or the later tagging operation will be unhappy.
17
d6324ea2 18 mkdir master
19 cd master
20 git init
21 git remote add origin ssh://crater.dragonflybsd.org/repository/git/dragonfly.git
22 git fetch origin
23
24 cd ..
25 cp -R master x_y
26 # x_y is the release; faster than rechecking out
27 cd master
28 git checkout master
29 cd ..
30 cd ../x_y/
31 git branch DragonFly_RELEASE_x_y origin/DragonFly_RELEASE_x_y
32 git branch DragonFly_RELEASE_x_y
33
ad252dc8 34On the new branch:
35
36 vi sys/sys/param.h
37
38Edit \__DragonFly\_version and related comments. Be sure to add a comment for the new master too (but the version is set to the new release).
39
40 vi sys/conf/newvers.sh
41
42Edit BRANCH, use 'RELEASE', update version. e.g. RELEASE_2_8
43
44On master
45
46 vi sys/sys/param.h
47
48Edit \__DragonFly\_version and related comments.
49
50 vi sys/conf/newvers.sh
51
52Edit BRANCH, use 'DEVELOPMENT', update version.
53
54##Tagging
55
d6324ea2 56Make sure all changes on the master branch **and** on the new branch have been committed and pushed before tagging anything.
57
58 git add sys/sys/param.h sys/conf/newvers.sh
59 git commit
60 git push
ad252dc8 61
62man git-tag for info, the committer needs GPG set up so git tag -s works. Then you can use your own checkout. Be sure the checkouts are under your user id and you do the tagging as yourself instead of as root.
63
64###In master
65
d6324ea2 66 git tag -s -m "DragonFly x.x.0" vx.x.0
ad252dc8 67 git push --tags
68
69###In the new branch
70
d6324ea2 71 git tag -s -m "DragonFly x.y.0" vx.y.0
ad252dc8 72 git push --tags
73
74Do the x.x.0 immediately. Just before doing the final nrelease build roll a x.x.1 tag for the release branch. Release as x.x.1.
75
930c5043 76## Subsequent tag updates
77
56952daa 78When updating a x.x.1 version, you just need to tag.
47036946 79
bdb68a03 80## Something in GCC
81
82The file gnu/usr.bin/cc41/cc_prep/config/dragonfly.h has a spot where the major version number for DragonFly is encoded. I don't know if this applies for anything other than gcc 4.1.
83
84 #define DFBSD_MAJOR 3
85
c0808637 86This comes from John Marino's commit:
87
88<http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/43add724990da155c21ef4a0893f4ebc2c36eb05>
89
ad252dc8 90##Pkgsrc
91
92Adjust bulk builds to the release's pkgsrc branch, and make sure they upload to the right directories on avalon.dragonflybsd.org.
93
94Adjust the default pkgsrc checkout in /usr/src/etc/Makefile.usr for both master and the new branch if necessary.
86b77dc1 95
86b77dc1 96###build isos and imgs
97
d513516b 98
99
86b77dc1 100###build pkgsrc packages
101
c3559da8 102###Testing
86b77dc1 103
c3559da8 104Testing should be done on real hardware, qemu and vmware. We have six isos/imgs that needs testing.
86b77dc1 105
c3559da8 106i386 iso, img, gui-img<br/>
107x86_64 iso, img, gui-img
86b77dc1 108
c3559da8 109Test this:
86b77dc1 110
c3559da8 111* Booting install media.
112* Installing; encrypted, unencrypted, ufs, hammer.
113* Configuring everything in the installer; try both dhcp and static IP.
114* Booting the installed system.
86b77dc1 115
d513516b 116###Release Notes
117
118Copy one of the existing release pages. The general format is :
119
120* General announcement
121* Big items new to this release
122* Availability, describing what can be run
123* MD5 results for compressed and uncompressed files
124* Special notes and caveats
125* Release notes - go through git log for these.
126
94bdda57 127#### Minor releases
128
129* Update the release page, the main page, and the general [[Download]] page.
130* Add new MD5 sums.
131
d513516b 132###File Copy
86b77dc1 133
d513516b 134Place images in /ftp/iso-images on crater.dragonflybsd.org. They will be rsynced to mirror-master.
86b77dc1 135
136###announce
137users@, web page