debian-specific.rst 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. ::
  64. cronoff
  65. CHANGES=FILENAME.changes
  66. dak process-new
  67. cd /srv/security-master.debian.org/queue/new/COMMENTS
  68. { echo NOTOK; echo; echo "Moving back to unchecked"; } > "REJECT.${CHANGES}"
  69. rm "ACCEPT.${CHANGES}"
  70. dak process-policy new; dak clean-suites
  71. cd /srv/security-master.debian.org/queue/reject
  72. dak admin forget-signature ${CHANGES}
  73. dcmd mv -nt ../unchecked -- ${CHANGES}
  74. /srv/security-master.debian.org/dak/config/debian-security/cronscript unchecked
  75. cronon
  76. Built-Using
  77. ========================================================================
  78. Source packages referred to via Built-Using need to be included in the
  79. security archive:
  80. - Obtain & verify .dsc
  81. - ``dak import built-using updates/<component> <.dsc...>``
  82. If the .dsc is signed by an old key no longer in the keyring, use
  83. ``--ignore-signature``. Make **extra sure** the .dsc is *correct*.
  84. .. Links and Stuff
  85. .. _Salsa: http://salsa.debian.org/
  86. .. _FTP-Team: https://salsa.debian.org/ftp-team/
  87. .. _FTPMasters: https://www.debian.org/intro/organization#ftpmasters
  88. .. _FTPTeam: https://www.debian.org/intro/organization#ftpmaster
  89. .. _dak.git: https://salsa.debian.org/ftp-team/dak
  90. .. _gitlabsmrdocs: https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html
  91. .. _gitlab MR documentation: https://docs.gitlab.com/ce/gitlab-basics/add-merge-request.html
  92. .. |MR| replace:: Merge request