Skip to content

Commit 4f6e06b

Browse files
committed
Draft new contribution guide
1 parent 58b75f7 commit 4f6e06b

File tree

1 file changed

+30
-25
lines changed

1 file changed

+30
-25
lines changed

docs/contributing.md

Lines changed: 30 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,38 @@ The following is a set of rules for contributing to **Rucio** and its
1010
packages. Use your best judgment, and feel free to propose changes to this
1111
document.
1212

13-
If you have questions, you can reach the core development team on our
14-
[__Mattermost__](mattermost.md) channel, or send an email to our
15-
development mailing list [__[email protected]__](mailto:[email protected]).
13+
If you have questions, you can reach the development team on our
14+
[__Mattermost__](mattermost.md) channel.
1615

1716
## What should I know before I get started
1817

19-
A contribution can be either be a **patch** or **feature**:
18+
Generally all [__pull requests__](https://github.com/rucio/rucio/pulls) are to
19+
be created against the Rucio **master** branch. The master branch includes the
20+
developments towards the **next** major release. Usually we publish three major
21+
releases per year, thus it might take several months until a development becomes
22+
available in a published release (See [__Release policy__](started/release_policy.md)).
2023

21-
* **Patches** include bugfixes and minor changes to the code and are included in
22-
patch releases usually made on a bi-weekly schedule.
23-
* **Features** include major developments or potentially disruptive changes and
24-
are included in feature releases made multiple times a year.
24+
In addition, a contribution **CAN** be included in the ongoing **current** release
25+
line. As a guiding principle:
2526

26-
The [__repository__](https://github.com/rucio/rucio/) consists of different
27-
branches:
27+
* Larger feature developments, backwards-compatibility breaking changes, changes
28+
to the database schema, significant changes to the REST interface, and similar
29+
**MUST** be targeted towards the **next** release line.
30+
* Bugfixes, smaller backwards-compatbile changes to the REST interface, smaller
31+
feature developments, and similar **CAN** be targeted towards the **current**
32+
release line.
2833

29-
* the **master** branch includes the development for the next major version.
30-
* the **release-…** branches include the patch/minor development of the
31-
releases.
34+
To implement this policy the [__repository__](https://github.com/rucio/rucio/)
35+
consists of different branches:
3236

33-
Release branches only exist for the currently maintained release
34-
versions. Hotfix branches are created on demand. Please communicate to the Rucio
35-
maintainers, if you wish to hotfix a previous release.
37+
* the **master** branch includes the developments towards the next major release.
38+
* the **release-…** branches include the patch/minor developments of the
39+
releases (Such as current and LTS releases). Release branches only exist for
40+
the currently maintained releases (See the [__release policy__](started/releasepolicy.md))
3641

37-
Generally all [__pull requests__](https://github.com/rucio/rucio/pulls) are to
38-
be created against the Rucio **master** branch. Features will end up in the
39-
upstream **master** only and patches are cherry-picked to the maintained
40-
releases if applicable. Release-specific changes are excluded from that rule and
41-
might be needed if e.g. cherry-picking to the last release was not successful.
42+
Pull requests named/targeted for the **next** major release will end up in the
43+
upstream **master** only. Pull requests named/targeted for the **current** release
44+
will be cherry-picked by the maintainer to the applicable release branch.
4245

4346
The following figure might help you with an overview:
4447

@@ -105,16 +108,18 @@ number**.
105108
Create a local branch that corresponds to the issue. To easily
106109
identify the purpose of branches different keywords must be used:
107110

108-
* Patch branches must be named **patch-[issue number]-[short description]**
109-
* Feature branches must be named **feature-[issue number]-[short description]**
111+
* Contributions targeted to the **current** release must be named
112+
**current-[issue number]-[short description]**
113+
* Contributions targeted to the **next** major release must be named
114+
**next-[issue number]-[short description]**
110115

111116
If you create these branches by hand please check the spelling because otherwise
112117
the test automation might misidentify your branch. There are utility scripts to
113118
fetch master and create these branches for you:
114119

115120
```bash
116-
./tools/create-patch-branch <unique issue number> '<short_change_message>'
117-
./tools/create-feature-branch <unique issue number> '<short_change_message>'
121+
./tools/create-current-branch <unique issue number> '<short_change_message>'
122+
./tools/create-next-branch <unique issue number> '<short_change_message>'
118123
```
119124

120125
### 4. Commit your changes

0 commit comments

Comments
 (0)