debian-specific.rst 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. DEBIAN-SPECIFIC NOTES
  2. ************************************************************************
  3. Git, Salsa Project, Workflow
  4. ------------------------------------------------------------------------
  5. General
  6. ========================================================================
  7. Our git repositories are hosted by the Salsa_ Service and available in
  8. the FTP-Team_ group. The team has all FTPMasters_ set as owner, all
  9. other team members are developers. The team and most of our repositories
  10. are visible to the public, one exception is an internal repository for
  11. notes used within the team only.
  12. dak.git_
  13. ========================================================================
  14. This project contains the main code running the Debian archive,
  15. processing uploads, managing the various suites and releases.
  16. Contributing and workflow
  17. ........................................................................
  18. Development is done in the **master** branch, be it direct commits
  19. from FTPMasters_ or via merges from other people (anyone is welcome to
  20. contribute!).
  21. If you want to contribute, please fork the code using the functions
  22. offered by Salsa_ and work in a branch ideally named after the
  23. feature/bugfix/whatever your attention is on. Try creating a
  24. meaningful history - it may be a single commit is all that is needed,
  25. it may be you need a dozen. No worry, git and its rebase function can
  26. help you to arrive at that easily.
  27. Please write meaningful commit messages. "Change", "Bugfix" is not
  28. one. It may be obvious to you now, but how about in a year? The git
  29. log is our changelog, *what* is changed is visible by the diff, so
  30. please describe *why* it changed.
  31. Whenever you arrive at something you want to merge into ``master`` (and
  32. consequently later into ``deploy`` to actually have it live), create a
  33. merge request out of it. Use the Salsa_ web interface, describe what
  34. it is and off it goes. You may want to allow removal of the source
  35. branch at merge time, then your own forked project gets cleaned up
  36. when the |MR| is accepted. A more detailed write up on how to navigate
  37. the web UI of Salsa_ for this is available at the `gitlab MR
  38. documentation`_ page.
  39. Next someone will review your |MR| - this can be anyone and is not
  40. limited to the FTPTeam_ or even FTPMasters_. Discussions may be opened
  41. for (parts) of your changes, please be ready to engage in them, and -
  42. if warranted, adjust your merge request.
  43. When all discussions are resolved and everyone is happy with the |MR|,
  44. one of the FTPMasters_ will merge it into the ``master`` branch.
  45. From there, an action from one of the FTPMasters_ will move it into
  46. ``deploy``, which then gets installed on the Debian machines running
  47. the archive.
  48. The famous ``deploy`` branch
  49. ########################################################################
  50. This branch is the code actually in use on the Debian machines, and it
  51. gets deployed (hence the name) on them automatically.
  52. To not make that a complete nightmare, the commits need to be signed
  53. with a gpg key from an active FTPMaster_. As such it consists of
  54. manual merges from the ``master`` branch, followed by a push.
  55. The cronjob for deploying the code (will) run(s) every 15 minutes.
  56. Todo/Fixme: We want to provide a script so that fetching the latest
  57. changes in master as well as preparing the merge commit into
  58. ``deploy`` is one single action.
  59. security archive
  60. ------------------------------------------------------------------------
  61. NEW processing
  62. ========================================================================
  63. - ``cronoff``
  64. - ``CHANGES=FILENAME.changes``
  65. - ``dak process-new``, ACCEPT
  66. - ``cd /srv/security-master.debian.org/queue/new/COMMENTS``
  67. - Change first line to **NOTOK**, add comment "Moving back to unchecked."
  68. - Rename ACCEPT.* to REJECT.*
  69. - ``dak process-policy new; dak clean-suites``
  70. - ``cd /srv/security-master.debian.org/queue/reject``
  71. - ``dak admin forget-signature ${CHANGES}``
  72. - ``dcmd mv -n ${CHANGES} ../unchecked``
  73. - ``/srv/security-master.debian.org/dak/config/debian-security/cronscript unchecked``
  74. - ``cronon``
  75. Built-Using
  76. ========================================================================
  77. Source packages referred to via Built-Using need to be included in the
  78. security archive:
  79. - Obtain & verify .dsc
  80. - ``dak import built-using updates/<component> <.dsc...>``
  81. If the .dsc is signed by an old key no longer in the keyring, use
  82. ``--ignore-signature``. Make **extra sure** the .dsc is *correct*.
  83. Archiving suites
  84. ------------------------------------------------------------------------
  85. Removal from main archive
  86. ========================================================================
  87. Once a suite is archived, it and the supporting suites can be removed
  88. from the main archive.
  89. Two weeks before removal:
  90. - Ask for mail to debian-announce@l.d.o
  91. On removal:
  92. - Ask for second mail to debian-announce@l.d.o
  93. - In case ${suite} still has LTS support:
  94. - Remove binaries from ${suite}, ${suite}-updates, ${suite}-p-u for non-LTS archs
  95. .. Links and Stuff
  96. .. _Salsa: http://salsa.debian.org/
  97. .. _FTP-Team: https://salsa.debian.org/ftp-team/
  98. .. _FTPMasters: https://www.debian.org/intro/organization#ftpmasters
  99. .. _FTPTeam: https://www.debian.org/intro/organization#ftpmaster
  100. .. _dak.git: https://salsa.debian.org/ftp-team/dak
  101. .. _gitlabsmrdocs: https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html
  102. .. _gitlab MR documentation: https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html
  103. .. |MR| replace:: Merge request