File: maintainer_notes.rst

package info (click to toggle)
roc-toolkit 0.4.0%2Bdfsg-5
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,684 kB
  • sloc: cpp: 102,987; ansic: 8,959; python: 6,125; sh: 942; makefile: 16; javascript: 9
file content (137 lines) | stat: -rw-r--r-- 3,155 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Maintainer notes
****************

.. contents:: Table of contents:
   :local:
   :depth: 1

Merging pull request
====================

Pull requests should be merged using `pr.py <https://github.com/roc-streaming/roc-toolkit/blob/develop/scripts/pr.py>`_ script, which does the following:

- Rebases PR on up-to-date develop branch.
- If requested, squashes all commits into one.
- Overwrites commit messages to add a link to related issue to each commit (e.g. "Implement feature" becomes "gh-123 Implement feature"). The issue number should be present is PR description or passed as command-line flag.
-  Force-pushes updated commits to PR's branch.
- Asks GitHub to merge PR.

You should choose whether to merge by rebasing or squashing.

Merge PR by rebasing:

.. code::

   scripts/pr.py merge --rebase 123

Merge PR by rebasing and squashing all commits into one:

.. code::

   scripts/pr.py merge --squash 123

If PR description doesn't have a link to issue, the script will complain and fail. You can manually specify it:

.. code::

   scripts/pr.py merge --rebase 123 --issue 456

The script will use given issue for commits and also will add it to PR description.

Show PR info before merging it:

.. code::

   scripts/pr.py show 123

Link PR commits to issue and force-push to PR's branch, but don't merge PR:

.. code::

   scripts/pr.py link 123

Revert that:

.. code::

   scripts/pr.py unlink 123

For the full list of available options, see:

.. code::

   scripts/pr.py [command] --help

Rebasing develop on master
==========================

This is usually done before making release. It's needed only if some commits were cherry-picked to ``master`` after ``develop`` was rebased last time.

Update branches:

.. code::

   git switch master && git pull origin master
   git switch develop && git pull origin develop

Rebase ``develop`` on ``master``:

.. code::

   scripts/rebase.sh master

Push to your fork:

.. code::

   git push -f <your fork> develop

When CI on your fork passes, push to origin:

.. code::

   git push -f origin develop

Updating master to develop
==========================

Before doing this, first ensure that branches are up-to-date and ``develop`` is rebased on ``master``.

Then fast-forward ``master`` to ``develop``:

.. code::

   git switch master
   git merge --ff-only develop

Creating release
================

Rename ``next`` milestone to ``1.2.3`` and close it. Create new ``next`` milestone.

Add new release to :doc:`changelog page </development/changelog>`.

Update version number in `version header <https://github.com/roc-streaming/roc-toolkit/blob/develop/src/public_api/include/roc/version.h>`_.

Update authors page:

.. code::

   scripts/update_authors.sh

Update specs for debian and rpm packages:

.. code::

   scripts/update_packages.py

Create and push tag:

.. code::

   git tag v1.2.3
   git push origin v1.2.3

When CI passes, go to `releases page <https://github.com/roc-streaming/roc-toolkit/releases>`_, add links to changelog and milestone to release description, and publish release.

Post announcement to matrix and, in case of big releases, to the mailing list.