Developer Infos

From Netatalk Wiki
Jump to: navigation, search
m (moved Git to Developer Infos)
Line 119: Line 119:
  
 
Since libatalk is now a shared library the autotools build system has been extended to do some ABI checking.
 
Since libatalk is now a shared library the autotools build system has been extended to do some ABI checking.
 +
 +
== Making a release ==
 +
 +
Developers doing releases are expected to have a working understanding of the ABI checking infrastructure and must use the --enable-developer configure option.
 +
 +
* Create release branch from "develop" branch
 +
  $ git checkout -b release-3.0beta2
 +
  Switched to a new branch 'release-3.0beta2'
 +
 +
* Bump VERSION
 +
 +
* Re-run configure so the VERSION bump gets passed to the build system
 +
  $ ./configure ...
 +
 +
* Run make, this will create library ABI files
 +
  $ make
 +
  ...
 +
  make[3]: Entering directory `/home/ralph/netatalk/develop/libatalk'
 +
  **********************************************************************************************************
 +
                                  created ABI file libatalk-3.0beta2.abi
 +
      check https://sourceforge.net/apps/mediawiki/netatalk/index.php?title=Developer_Infos#ABI_checking
 +
  **********************************************************************************************************
 +
  make[3]: *** [all-local] Error 1
 +
  ...
 +
  $ git status
 +
  # On branch release-3.0beta2
 +
  # Untracked files:
 +
  #  (use "git add <file>..." to include in what will be committed)
 +
  #
 +
  # libatalk/libatalk-3.0beta2.abi
 +
  nothing added to commit but untracked files present (use "git add" to track)
 +
 +
* Add ABI file to git and appropriate Makefile.am (eg libatatalk/Makefile.am for libatalk) ABI files
 +
  $ git add libatalk/libatalk-3.0beta2.abi
 +
  $ git commit -m "Import libatalk-3.0-beta2 ABI file"
 +
  $ emacs libatalk/Makefile.am
 +
  ...
 +
  $ ./bootstrap && ./configure ... (ensure the Makefile.am change takes effect) && make
 +
This make run should now pass without error.
 +
 +
* Compare the ABI file to the previous version, verify VERSION_INFO, update Makefile.am version history
 +
Update VERSION_INFO as necessary, update libatalk/Makefile.am version history. Note that VERSION_INFO info might already have been updated by the ongoing ABI checks by a developer when working on develop.
 +
  $ git diff
 +
  @@ -28,6 +26,7 @@ VERSION_INFO = 1:0:0
 +
  #  3.0.0-alpha2    0:0:0
 +
  #  3.0.0-alpha3    0:0:0
 +
  #  3.0.0-beta1    0:0:0
 +
  +#  3.0.0-beta2    1:0:0
 +
 
 +
  SUBDIRS = acl adouble bstring compat cnid dsi iniparser tdb util unicode vfs
 +
 
 +
  @@ -85,3 +84,4 @@ all-local: .libs/libatalk.so
 +
 
 +
  EXTRA_DIST = \
 +
          libatalk-3.0beta1.abi \
 +
  +      libatalk-3.0beta2.abi
 +
 +
If you have to update VERSION_INFO again, commit the change, rebootstrap and configure.
 +
 +
* Run make distcheck, fix any errors
 +
No errors? Great, time to release:
 +
 +
* Switch to 3.0 release branch "master"
 +
  $ git checkout master
 +
  $ git merge release-3.0beta2
 +
  ...
 +
  $ git tag TAG
 +
  $ git push REPO TAG
 +
  $ make dist
 +
  $ make dist-bzip2
 +
 +
* Merge changes from release branch back into develop
 +
  $ git checkout develop
 +
  $ git merge release-3.0beta2
 +
  $ git branch -d release-3.0beta2
 +
 +
* Reset VERSION to eg 3.0dev
  
 
== FAQ ==
 
== FAQ ==

Revision as of 11:55, 1 June 2012

Personal tools
Namespaces
Variants
Actions
Navigation
Toolbox