Skip to content
This repository was archived by the owner on Jul 8, 2022. It is now read-only.

Commit 1ecbd77

Browse files
authored
Merge pull request #639 from t-b/document-contributing-process
Document contributing process
2 parents c54a4cf + d71e136 commit 1ecbd77

File tree

2 files changed

+32
-20
lines changed

2 files changed

+32
-20
lines changed

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @bourtemb @t-b @mliszcz

README.md

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,22 @@
3030

3131
# TANGO distributed control system - shared library
3232

33-
TANGO is an object-oriented distributed control system. In TANGO all objects are representations of devices, which can be on the same computer or distributed over a network. Communication between devices can be synchronous, asynchronous or event driven.
33+
TANGO is an object-oriented distributed control system. In TANGO all objects
34+
are representations of devices, which can be on the same computer or
35+
distributed over a network. Communication between devices can be synchronous,
36+
asynchronous or event driven.
3437

35-
The object model in TANGO supports methods, attributes and properties. TANGO provides an API which hides all the details of network access and provides object browsing, discovery, and security features.
38+
The object model in TANGO supports methods, attributes and properties. TANGO
39+
provides an API which hides all the details of network access and provides
40+
object browsing, discovery, and security features.
3641

3742
For more information please visit [www.tango-controls.org](http://www.tango-controls.org).
3843

39-
# cppTango - tango-9-lts branch
40-
This repository is the result of svn2git migration of Tango source code previously hosted on tango-cs Sourceforge project. It is combined from api/cppapi, api/log4tango, api/cpp_test_suite anf api/cpp_test_ds
44+
# Important branches
4145

42-
cppTango tango-9-lts branch is the branch dedicated to Tango 9 Long Term Support version.
46+
- tango-9-lts: Tango 9 Long Term Support (LTS) development
47+
- 9.3-backports: Tango 9.3 binary compatible LTS version development
48+
- master: Future Tango version without CORBA (not yet functional)
4349

4450
# Documentation
4551

@@ -58,21 +64,26 @@ See [INSTALL file](INSTALL.md).
5864

5965
See [corresponding wiki page](https://github.com/tango-controls/cppTango/wiki/Contribution-Guide)
6066

61-
# Usage workflow (draft)
62-
63-
64-
1. In its most basic form, we adopt the githubflow : the default branch is master, which is always in a deployable state (i.e. must never be broken); work on new features is done using temporary feature branches (which may live in the same repo or in a fork)
65-
2. Reporting issues: use github issues
66-
3. Code contributions: use Pull requests. Pull requests can be associated with issues. Trivial fixes can even be done from the web (a temporary branch is created automatically to use the Pull request infrastructure)
67-
4. Code review: most projects (all except single-developer ones) should only allow commits to the master branch after peer review. This can be enforced by the convention that all commits to master must be done via a Pull request and the pull request approved by a person different from the author of the commit.
68-
5. Releases (named versions):
69-
* Simple projects may be ok with just tagging certain (ideally, all) commits done to the master branch with a version number. With this system, only one release is actively maintained simultaneously.
70-
71-
* More complex projects may require to simultaneously maintain more than one release (e.g. Tango may choose to support bugfixes in Tango9 even after Tango10 is released). In this case, releases may be done on release branches starting from master (see APPENDIX I for an example)
72-
6. Semantic versioning is recommended.
73-
7. Public automatic testing/continuous integration (e.g., via Travis) is recommended
74-
8. The main development should be done on the tango-controls hosted project (as opposed to using a private organization project and just pushing to the tango-controls repo from time to time). This allows for public visibility of the latest development and issues and encourages sharing and reuse. If a given organization needs special tweaks or has particular release/testing cycles, the recommendation is that the organization forks from the "canonical" repo
75-
67+
# Pull request acceptance and merging
68+
69+
You have created a change to cppTango. 🎉
70+
71+
And now you want to get these changes merged? Very nice!
72+
73+
In order to give you the best possible experience here are a few hints for the
74+
path forward:
75+
- All CI tests have to pass. If you have changed the behaviour of the code, you
76+
should add new tests as well. You don't need to execute the tests locally,
77+
CI is the reference anyway. So just create a PR and let CI handle that.
78+
- Make your PR easy to review. This starts with explaining what it wants to
79+
achieve and ends with splitting the changes into logical commits where each
80+
commit describes why it is changing the code.
81+
- Follow the coding style. This is at the moment messy at best, but still
82+
we don't want to get worse.
83+
- Your PR needs two review approvals, including one from the code owners listed [here](https://github.com/tango-controls/cppTango/blob/9.3-backports/CODEOWNERS).
84+
- Be prepared to adapt your pull request to the review responses. Code review
85+
is done for ensuring higher code quality and communicating implementations
86+
details to newcomers and not for annoying anyone or slowing down development.
7687

7788
# Links
7889

0 commit comments

Comments
 (0)