@@ -16,11 +16,56 @@ questions:
16
16
17
17
---
18
18
19
- ## Step X: Contributing non-trivial changes
19
+ ## GitHub organizations
20
20
21
- Submit a larger change using GitHub Desktop. As an example our task will be to
22
- add a new file (in our case a taco recipe) to the exercise repository.
21
+ Should I start a repository under my account or open a new organization?
22
+ - Single-person projects often start under own account.
23
+ - If is no problem to move a project from own namespace to an organization later.
24
+ - When starting a larger project with several people, possibly several affiliations, an organization may be a better start.
25
+ - If this is a GitHub pages project, then it will matter for the URL:
26
+ ` myuser.github.io/myproject/ ` vs. ` ourorg.github.io/ourproject/ ` .
23
27
28
+ Should I add everybody as collaborator?
29
+ - If you are a handful of project collaborators it probably makes sense to add everybody as collaborators.
30
+ - But one does not have to be a * collaborator* to contribute (anybody can send contributions to public projects).
31
+ - External contributors don't have to be added.
32
+
33
+ ---
34
+
35
+ ## Organizational permissions
36
+
37
+ - Organizations have ** owners** and ** members** .
38
+ - Owners can add more members and delete repositories.
39
+ - Members can also be organized into teams.
40
+ - We recommend to write-protect the default branch and protect it against force-pushes and accidental deletions.
41
+
42
+ ---
43
+
44
+ ## GitHub or GitLab?
45
+
46
+ - GitHub: probably better integrations (with services like Zenodo), probably more visibility (more users).
47
+ - GitLab: more features, you can also self-host, more advanced continuous integration.
48
+
49
+ ---
50
+
51
+ ## Direct commits or pull requests?
52
+
53
+ - For single-person projects: direct pushes.
54
+ - If you have somebody who can help you with code review: use pull requests.
55
+ - For projects with 2 or more persons: agree on applying all changes via pull requests
56
+ and create a new branch for every change.
57
+
58
+ ---
59
+
60
+ ## Small vs. large changes
61
+
62
+ - For larger changes first open an issue and describe your idea and collect feedback.
63
+ - Alternative: if you already have a larger change half-finished but you are unsure whether you are on the right
64
+ track, open a ** draft pull request** . These are meant to share unfinished drafts and collect suggestions.
65
+
66
+ ---
67
+
68
+ ## Optional exercise contributing larger changes
24
69
25
70
### Note to instructors
26
71
0 commit comments