Difference between revisions of "GNUstep release procedure"

From GNUstepWiki
Jump to navigation Jump to search
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
The release procedure describes steps required to create new release of GNUstep and its packages.
+
Steps for releasing the GNUstep core libraries (as well as others):
  
Requirements:
+
1. Make sure news.texi and ReleaseNotes.gsdoc files are updated (or NEWS, ANNOUNCE, etc if it is a simple package). If the release is on a stable branch, also update these on the main branch so they are available to read in future releases.
* it should be possible to create a release from clean CVS checkout
 
  
Steps:
+
2. Update the 'Version' file with the new version or make sure the top-level GNUmakefile has VERSION set if there is not a separate Version file.
# do pure GNUstep CVS checkout
 
# make sure that all required release tests passed
 
# increase appropriate version number
 
# create the package
 
# upload the package
 
# notify packagers on other platforms
 
# announce the release
 
  
If the packages are used by the GNUstep umbrella package (runtime or development environment), then the ubrella package should be released too.
+
3. core libraries: Update the documentation and release notes in the main directory:
  
== Preparation ==
+
cd Documentation
 +
make clean; make; make regenerate
 +
 
 +
4. Add a line in the ChangeLog, like:
 +
 
 +
'* Version 1.10.0' as well.
 +
 
 +
and commit the changed files.
  
It is desired that the release is made from CVS checkout. The release should correspond to a tagged state in the CVS.
+
5. Tag the release
  
Also it is required that all release test passed. If not, the release should not be created. For more information about the tests see [[Quality assurance]].
+
make git-tag
 +
git push --tags
  
Follow standard versioning guidelines.
+
6. Make a source distribution
  
== Packaging ==
+
make git-dist
  
The .tar.gz package should be created and put into appropriate directonr in ftp://ftp.gnustep.org/pub/gnustep.
+
7. Administrative stuff (Note: Admin-only scripts that I use to make this easier are in brackets):
  
Concerning binary packages, the person responsible for the release should notify all packagers for different platforms.  
+
* Sign the packages. Use gpg --detach-sign package.tar.gz [gstep-sign]
 +
* Upload packages to ftp.gnustep.org, into the incoming directory [gstep-update].
 +
* Install the documentation and copy it to the web repository [update_documentation].
 +
* Update the index.html and resources/downloads.php pages with the news.
 +
* Commit the web repository.
 +
* Make an announcement on info-gnustep@gnu.org, etc
  
''FIXME: add a list in the following form: ''
+
If the packages are used by the GNUstep umbrella package (runtime or development environment), then the umbrella package should be released too.
  
GNUstep Package | Packager | notify email address (it should be a list)
+
== Preparation ==
  
== Announcement ==
+
It is desired that the release is made from git checkout. The release should correspond to a tagged state in the git.
  
[http://groups-beta.google.com/group/gnu.gnustep.announce/browse_thread/thread/4dd4529968665bd6/75f5adfbd644cce9?_done=%2Fgroup%2Fgnu.gnustep.announce%3F&_doneTitle=Back+to+topics&_doneTitle=Back&&d#75f5adfbd644cce9 example of an announcement]
+
Also it is required that all release test passed. If not, the release should not be created. For more information about the tests see [[Quality assurance]].
  
''FIXME: upload an announcement template for all core GNUstep packages here.''
+
Follow standard versioning guidelines.
  
 
[[Category:Project procedures]]
 
[[Category:Project procedures]]

Latest revision as of 08:06, 30 May 2024

Steps for releasing the GNUstep core libraries (as well as others):

1. Make sure news.texi and ReleaseNotes.gsdoc files are updated (or NEWS, ANNOUNCE, etc if it is a simple package). If the release is on a stable branch, also update these on the main branch so they are available to read in future releases.

2. Update the 'Version' file with the new version or make sure the top-level GNUmakefile has VERSION set if there is not a separate Version file.

3. core libraries: Update the documentation and release notes in the main directory:

cd Documentation
make clean; make; make regenerate

4. Add a line in the ChangeLog, like:

'* Version 1.10.0' as well.

and commit the changed files.

5. Tag the release

make git-tag
git push --tags

6. Make a source distribution

make git-dist

7. Administrative stuff (Note: Admin-only scripts that I use to make this easier are in brackets):

  • Sign the packages. Use gpg --detach-sign package.tar.gz [gstep-sign]
  • Upload packages to ftp.gnustep.org, into the incoming directory [gstep-update].
  • Install the documentation and copy it to the web repository [update_documentation].
  • Update the index.html and resources/downloads.php pages with the news.
  • Commit the web repository.
  • Make an announcement on info-gnustep@gnu.org, etc

If the packages are used by the GNUstep umbrella package (runtime or development environment), then the umbrella package should be released too.

Preparation

It is desired that the release is made from git checkout. The release should correspond to a tagged state in the git.

Also it is required that all release test passed. If not, the release should not be created. For more information about the tests see Quality assurance.

Follow standard versioning guidelines.