README.source 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. ===========================================
  2. Debian source package for ‘python-lockfile’
  3. ===========================================
  4. Package maintenance in VCS
  5. ==========================
  6. The ‘debian/control’ file declares the VCS repository used for
  7. tracking the Debian package maintenance work.
  8. VCS branches for package maintenance
  9. ------------------------------------
  10. The source for the Debian packaging is managed in these conventional
  11. Git branches:
  12. * master: The current released code base.
  13. * packaging: Debian packaging development branch.
  14. * upstream: Upstream source code base, as imported from tarballs.
  15. * pristine-tar: Metadata for reproducibly generating upstream tarball.
  16. Work on a release in VCS
  17. ------------------------
  18. * Ensure the ‘upstream’ branch contains the correct upstream source.
  19. * Ensure the ‘pristine-tar’ branch contains the corresponding metadata
  20. for the pristine upstream source tarball.
  21. * In the ‘packaging’ branch, create a new Debian changelog entry.
  22. Because the release is not complete, many aspects have not been
  23. decided and should not be recorded in the VCS:
  24. * The target destination (in the header) is “UNRELEASED”.
  25. * The person and timestamp of the release is undecided, so should be
  26. empty: the signature line should have no content, just the “ --”
  27. leader.
  28. * While working on the package, temporarily finalise the signature
  29. line for testing the build.
  30. This ephemeral state should not be part of the VCS history, though,
  31. so do not commit that finalised changelog entry; revert it to the
  32. above state to continue development.
  33. Build the source package from VCS
  34. ---------------------------------
  35. * Ensure the ‘packaging’ branch contains all the changes that are
  36. intended for the release to Debian.
  37. * Until the work is ready for release, do not commit a finalised
  38. Debian changelog entry. The changelog entry should be in the state
  39. described in “Work on a release in VCS”, above.
  40. This correctly leaves the decision of which destination for the
  41. upload, who uploads and when, to the point in time where that
  42. decision is made: the time of finalising the release.
  43. * Rebase a working branch, e.g. ‘wip/packaging/4.2+dfsg.1-1’, from the
  44. HEAD of ‘packaging’.
  45. * In this branch, finalise the ‘debian/changelog’:
  46. * Declare a release name, e.g. “* The “Ananta Bijoy Das” release.”
  47. * Set the target distribution, e.g. “unstable”.
  48. * Set the signature line containing the correct person and timestamp,
  49. e.g. “Ben Finney <bignose@debian.org> Tue, 09 Aug 2016 06:05:28 +1000”.
  50. * Commit the finalised changelog with a commit message of the form
  51. “Finalise release “4.2+dfsg.1-1”.”
  52. * Test the source package in ‘master’:
  53. * Merge the ‘upstream’ branch to ‘master’, with the commit message
  54. “Merge upstream version “4.2+dfsg.1”.”.
  55. * Merge – but *do not yet* commit – the work-in-progress release
  56. branch ‘wip/packaging/4.2+dfsg.1-1’, into ‘master’.
  57. * Build the source package from the resulting working tree.
  58. * Test the source package by building it in a Sbuild or Pbuilder
  59. environment, with all Lintian checks enabled.
  60. * Upload the successfully-built source package to Debian.
  61. * Only when the package builds satisfactorily from the merged working
  62. tree in ‘master’:
  63. * Commit the merged release to ‘master’, with the commit message of
  64. the form “Merge Debian packaging for release “4.1+dfsg.1-2”.”.
  65. * Create and sign a tag for the release, ‘debian/4.2+dfsg.1-1’ with
  66. the commit message “Debian release “4.2+dfsg.1-1.”.
  67. * Prepare the ‘packaging’ branch for ongoing work:
  68. * Switch to the ‘packaging’ branch.
  69. * Fast-forward merge the finalised changelog from
  70. ‘wip/packaging/4.2+dfsg.1-1’.
  71. * Delete the work-in-progress branch ‘wip/packaging/4.2+dfsg.1-1’.
  72. * Optionally: Create a new work-in-progress for an upcoming release,
  73. as described in “Work on a release in VCS”, above.
  74. -- Ben Finney <bignose@debian.org>, Fri, 19 Aug 2016 21:48:44 +1000