Skip to content

Commit 5d54b5d

Browse files
authored
docs: add first contribution guide
1 parent d714d1f commit 5d54b5d

File tree

3 files changed

+89
-0
lines changed

3 files changed

+89
-0
lines changed

CONTRIBUTING.md

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
# Open LASSO Python Contribution Guide
2+
3+
## Roles
4+
5+
There are roughly two roles in which you can contribute:
6+
7+
- Contributors who just want to add changes from time to time
8+
- Maintainers who oversee the repo, code themselves and review contribution
9+
before they can be merged
10+
11+
## Community
12+
13+
The community can be found on [discord].
14+
Nothing beats a good discussion about existing features, new features or ideas
15+
so jump right in.
16+
17+
[discord]: https://discord.gg/jYUgTsEWtN
18+
19+
## Spirit
20+
21+
We are all learners, some in the early stage some in the later.
22+
In a code review, we take the patience to imaginarily sit down together and
23+
explain other people why something is recommended differently or how things are
24+
usually done in software or python.
25+
This often seems tedious at first but growing together is important for any kind
26+
of project which wants to grow itself.
27+
So no fear in case of lack of experience but bring your learning spirit.
28+
Samewise to any experienced developer, have patience and explain things.
29+
Take the opportunity to sit down together on discord.
30+
31+
## How to make a Contribution
32+
33+
Tl;dr;
34+
35+
1. Fork the open lasso python repository
36+
2. Clone the repo to your filesystem
37+
3. Install [task][task_install]
38+
4. Check out the `develop` branch
39+
5. Set up the repo for development through `task setup`
40+
6. Create a new branch from `develop` with the naming pattern `feature/...`
41+
7. Make changes, commit and push them
42+
8. Create a Pull Request in your for repo with target on the original repo
43+
9. Add as reviewer `open-lasso-python/developers`
44+
10. Wait for review patiently but you may nudge us a bit 🫶
45+
11. Perform a Squash Merge and give a reasonable commit message as
46+
`<branch type>: <description>` where `branch_type` is one of the categories
47+
below.
48+
49+
[task_install]:https://taskfile.dev/installation/
50+
51+
You can fork the repo (1) by clicking on for in the top-right of the original
52+
repo.
53+
Cloning the repo (2) is traditionally done with git then of course.
54+
Task is required (3) since it is used to store complex commands such as testing,
55+
linting, build docs, etc.
56+
(4) All development activities originate from the `develop` branch in which all
57+
Pull Requests are finally merged again.
58+
To create a branch choose a respective naming pattern following the angular
59+
scheme: `<branch type>/<issue nr if exists>-<rough description/name>`.
60+
Typical branch types are:
61+
62+
- `feature` for new features or if you got no clue what it is
63+
- `bugfix` for 🐛-fixes
64+
- `ci` for changes on the Continuous Integration pipeline
65+
- `docs` for documentation related works
66+
- `refactor` if the PR just does cleanup 🧹 and improves the code
67+
- `test` for solely test-related work
68+
69+
Don't take these too seriously but they ought to provide rough categories.
70+
**They are also used in the commit message when you squash merge a PR where it
71+
is important!**
72+
Install all dependencies otherwise obviously you can't code (5).
73+
After making changes and pushing your branch to your forked repo (7 & 8), open a
74+
Pull Request but make the target not `develop` in your fork but `develop` in the
75+
original repo (7).
76+
If not done automatically, add the maintainer group as reviewers (9).
77+
Enjoy a healthy code review but be a bit patient with time as people contribute
78+
voluntarily and may privately be occupied (10).
79+
After approval, perform a Squash Merge (11).
80+
A Squash Merge tosses away all the little, dirty commits we all do during
81+
development.
82+
What stays is the **final merge commit message and please pay attention here**
83+
to format it right.
84+
Why is this important?
85+
This is needed to automatically generate a reasonable changelog during releases.
86+
Thanks for contributing at this point.
87+
Go wild and have fun 🥳

docs/contributing.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
--8<-- "./CONTRIBUTING.md"

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@ nav:
4141
- Overview: diffcrash/diffcrash.md
4242
- Command Line Tool: diffcrash/run.md
4343
- Code: diffcrash/diffcrash_run.md
44+
- Contribution Guide: contributing.md
4445
- Code Coverage Report: coverage.md
4546
- Changelog: changelog.md
4647

0 commit comments

Comments
 (0)