README_maintainer 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. # -*- mode:org -*-
  2. #+title: Maintainer tasks
  3. #+startup: indent
  4. This document describes the tasks the Org-mode maintainer has to do
  5. and how they are performed.
  6. * Releases
  7. ** Main releases
  8. The release number for main releases look like this: =7.13=
  9. Main releases are made whenever Org is in a state where the feature
  10. set is consistent and we feel that the features that are implemented
  11. is something we want to support in the future.
  12. A major release turns the current state of the master branch into a
  13. release. The release process is a single make command:
  14. : make release TAG=7.13
  15. ** Minor releases
  16. The release number for minor releases look like this: =7.13.01=
  17. Minor releases are small amends to main releases. Usually they fix
  18. bugs discovered in a main release. Only the fix to the bug is
  19. bundled into a release, without the main development work going on in
  20. the master branch. Since the big fix will also be needed in the
  21. master branch, usually the fix is made in master and then
  22. cherry-picked into maint. When this is done, a release is made from
  23. maint with this command:
  24. : make fixrelease TAG=7.13.01
  25. * Synchonization with Emacs
  26. This is still a significant headache. Some hand work is needed here.
  27. Emacs uses bzr, I cannot bring myself to switch from git to bzr for the
  28. development version of Org-mode. So the way I have been doing things
  29. is this:
  30. 1. I watch the Emacs diffs for changes made by the maintainers of
  31. Emacs in the org-mode files in Emacs. Any changes that come up
  32. there, I merge into the development version of Org-mode.
  33. Occasionally I do not do this, if I do not agree with a change.
  34. The changes go into Org /without/ a ChangeLog-like entry in the
  35. commit message. The reason for this is that we will later generate
  36. a ChangeLog file from our commit messages, and I do not want double
  37. Change entries in the Emacs ChangeLog file.
  38. 2. When I have made a release (usually I wait for the minor releases
  39. to stabilize), I copy org files into the Emacs repository. Yes, I
  40. do not merge, I copy. This has been the source of some problems in
  41. the past - but I have not had the patience to work out a better
  42. mechanism.
  43. Careful: Copy org.texi and orgcard.tex into the right places, and
  44. also copy the lisp files with *two exceptions*: Do *not* copy
  45. /org-colview-xemacs.el/ and /org-install.el/. The former does not
  46. belong in Emacs. And the latter would actually be harmful because
  47. Emacs generates its own autoloads. The Emacs distribution contains
  48. an empty org-install.el, so that users can have =(require
  49. 'org-install)= in .emacs with no ill effects. So if you were to
  50. copy org-install.el, you would overwrite that empty placeholder
  51. file.
  52. 3. Generate the ChangeLog entries
  53. For this, I do in the org-mode git repository
  54. : UTILITIES/make_emacs_changelog release_7.02.05..release_7.03.02
  55. This will spit out the ChangeLog entries that need to go into the
  56. ChangeLog file in the lisp/org directory in Emacs.