@@ -5,15 +5,16 @@ To start working with us, please follow these simple steps:
5
5
1 . Join [ :custom-github-black: GitHub] [ github-join ] .
6
6
2 . Check out our [ repositories] [ elixir-cloud-aai-github ] and [ open
7
7
issues] [ elixir-cloud-aai-issues ] .
8
- 3 . Join our [ :custom-slack: Slack board] [ elixir-cloud-aai-slack ] .
8
+ 3 . Join our [ :custom-slack: Slack board] [ elixir-cloud-aai-slack ] (please [ let us
9
+ know] ( ../../about/contact.md ) if the link expired).
9
10
4 . Join the [ ` #oss-community ` ] [ elixir-cloud-aai-slack-channel-oss ] and leave
10
11
a short message about yourself. Please include (1) your relevant skills and
11
12
experience level, (2) your GitHub username, (3) your email address (e.g.,
12
13
for calendar invitations), and (4) the repositories or issues you are most
13
14
interested in. If you can't decide, no problem, just indicate that you are
14
15
open to work on anything and we will suggest some issues for you.
15
- 5 . Once we have added you to our [ GitHub
16
- organization ] [ elixir-cloud-aai-github ] , you can assign yourself to an issue.
16
+ 5 . Once we have added you to our [ GitHub organization ] [ elixir-cloud-aai-github ] ,
17
+ you can assign yourself to an issue.
17
18
6 . Please carefully read the [ guidelines] ( #guidelines ) below, as well as any
18
19
relevant language-specific guidelines in this section.
19
20
7 . Start coding! :computer :
@@ -35,9 +36,10 @@ To start working with us, please follow these simple steps:
35
36
36
37
If you like, you can skip steps 3. to 5. and raise pull requests from
37
38
forks. Note, however, that some CI workflows may not (yet) be fully
38
- supported for pull requests raised from forks.
39
+ supported for pull requests raised from forks, which may delay the review
40
+ process and the merging of your changes.
39
41
40
- ## Guidelines
42
+ ## General guidelines
41
43
42
44
For your contributions, please follow the guidelines laid out below to the best
43
45
of your ability.
@@ -57,7 +59,9 @@ of your ability.
57
59
Please use the comment functions available on GitHub to discuss issues and
58
60
pull requests. For all other communications please refer to the communication
59
61
channels listed in the [ contact] ( ../../about/contact.md ) section. In
60
- particular, use the [ chat] [ elixir-cloud-aai-slack ] to discuss project ideas.
62
+ particular, use the [ chat] [ elixir-cloud-aai-slack ] to discuss project ideas,
63
+ get help on a problem, or any other informal discussion that does not need to
64
+ be preserved as part of the repository you are working on.
61
65
62
66
### Submitting issues
63
67
@@ -203,29 +207,39 @@ following **type** prefixes:
203
207
** Make sure to follow the [ commit message] ( #commit-messages ) rules for your pull
204
208
request titles.**
205
209
206
- The following pull request template will be successively added to all
207
- repositories. Until that is the case, you can already make use of it by
208
- self-reviewing your pull requests according to the checklist and descriptions.
210
+ #### Code reviews
209
211
210
- !!! note "All Contributors"
212
+ All code changes are reviewed by at least one other person. This is to ensure
213
+ that the code is of high quality, that it is well-documented and that it adheres
214
+ to the project's coding standards. The reviewer will check that the code is
215
+ correct, that it is efficient and that it is maintainable. They will also check
216
+ that the code is well-documented and that it is tested.
211
217
212
- The [All Contributors][all-contributors] bot may not be available in all
213
- repositories yet. In that case, please ignore the last bullet point.
218
+ Please make sure to actively request reviews for your pull requests to avoid
219
+ delays in the review and merging process. Please use the GitHub functionality
220
+ for that (upper right hand corner of pull request view). If you are unsure who
221
+ to ask for a review, please reach out to the project leads.
214
222
215
223
#### Pull request template
216
224
225
+ The following pull request template will be successively added to all
226
+ repositories. Until that is the case, you can already make use of it by
227
+ self-reviewing your pull requests according to the checklist and descriptions.
228
+
217
229
##### Description
218
230
219
231
> Please include a summary of the change and the relevant issue(s) it resolves,
220
- > if any (otherwise delete that line). If the PR addresses more than one issue,
221
- > please add multiple lines, each starting with 'Fixes #'. In the summary, list
222
- > any dependencies that are required for this change. Please use bullet points
223
- > for the description. Please also include relevant motivation and context
224
- > briefly if not already covered in the corresponding issue(s). For very
225
- > trivial issues that are duly explained by the PR title, a description can be
226
- > omitted (in that case, please delete the placeholder bullet point).
227
-
228
- -
232
+ > if any (otherwise delete that line), e.g., ` Fixes #123 ` . If the PR addresses
233
+ > more than one issue, please add multiple lines, each starting with 'Fixes #'.
234
+ > Please stick to that syntax precisely, including whitespaces, otherwise the
235
+ > issue(s) may not be linked to the PR.
236
+ >
237
+ > In the summary, list any dependencies that are required for this change.
238
+ > Please use bullet points for the description. Please also briefly describe
239
+ > the relevant motivation and context briefly. For very trivial changes that are
240
+ > duly explained by the PR title, a description can be omitted.
241
+
242
+ -
229
243
230
244
Fixes #(issue number)
231
245
@@ -234,12 +248,13 @@ Fixes #(issue number)
234
248
> Please go through the following checklist to ensure that your change is ready
235
249
> for review. Please do not forget to double check the list after you have
236
250
> modified your PR, e.g., if you have added commits to address reviewer
237
- > comments or to fix failing automated checks. Please check items also if they
238
- > do not apply to your change, e.g., if your change does not require an update
239
- > of the user-facing documentation, then still check the box. Generally, PRs
240
- > are only reviewed when all boxes are ticked off and all automated checks pass
241
- > (use the comment section below if you believe that your PR is ready to be
242
- > merged even though not all boxes were ticked off).
251
+ > comments or to fix failing automated checks. ** Please check items also if they
252
+ > do not apply to your change** , e.g., if your change does not require an update
253
+ > of the user-facing documentation, still check the box.
254
+ >
255
+ > Generally, ** PRs are only reviewed when all boxes are ticked off and all
256
+ > automated checks pass** (use the comment section below if you believe that
257
+ > your PR is ready to be merged even though not all boxes were ticked off).
243
258
244
259
- [ ] My code follows the [ contributing guidelines] ( workflow.md ) of this
245
260
project, including, in particular, with regard to any style guidelines
@@ -253,10 +268,10 @@ Fixes #(issue number)
253
268
- [ ] I have updated the user-facing documentation to describe any new or
254
269
changed behavior
255
270
- [ ] I have added type annotations for all function/class/method interfaces
256
- or updated existing ones
271
+ or updated existing ones (only for Python, TypeScript, etc.)
257
272
- [ ] I have provided appropriate documentation (e.g., [ Google-style
258
273
Python docstrings] [ py-doc-google ] or [ JSDoc block tags] [ jsdoc ] ) for all
259
- functions/classes/methods or updated existing ones
274
+ packages/modules/ functions/classes/methods or updated existing ones
260
275
- [ ] My changes generate no new warnings
261
276
- [ ] I have added tests that prove my fix is effective or that my feature
262
277
works
@@ -270,10 +285,122 @@ Fixes #(issue number)
270
285
not want my contributions to be acknowledged by [ All
271
286
Contributors] [ all-contributors ]
272
287
288
+ !!! note "All Contributors"
289
+
290
+ The [All Contributors][all-contributors] bot may not be available in all
291
+ repositories yet. In that case, please ignore the last bullet point.
292
+
273
293
##### Comments
274
294
275
295
> If there are unchecked boxes in the list above, but you would still like your
276
296
> PR to be reviewed or considered for merging, please describe here why boxes
277
297
> were not checked. For example, if you are positive that your commits should
278
298
> _ not_ be squased when merging, please explain why you think the PR warrants
279
- > or requires multiple commits to be added to the history.
299
+ > or requires multiple commits to be added to the history (but note that in
300
+ > that case, it is a prerequisite that all commits follow the Conventional
301
+ > Commits specification).
302
+
303
+ ## Managing your own project
304
+
305
+ If you are managing a project by yourself or with others, please follow these
306
+ additional guidelines below.
307
+
308
+ ### Community standards
309
+
310
+ Please try to adhere to best community standards. To help with that, visit
311
+ GitHub's "Community Standards" section (accessible in each repository via the
312
+ "Insights" tab) and confirm that the following are available in the repository
313
+ root directory:
314
+
315
+ - ** README** in file ` README.md `
316
+ - ** Code of Conduct** in file ` CODE_OF_CONDUCT.md ` (can link to the [ Code of
317
+ Conduct] ( ../../about/code-of-conduct.md ) on this page)
318
+ - ** Contributing guidelines** in file ` CONTRIBUTING.md ` (can link to the
319
+ [ contributor guide] ( ../index.md ) on this page)
320
+ - ** License** in file ` LICENSE ` )
321
+ - ** Pull request template** in file ` PULL_REQUEST_TEMPLATE.md `
322
+
323
+ Also make sure that a project ** description** (right hand panel on the
324
+ repository's main page) and one or more ** issue templates** (in
325
+ ` .github/ISSUE_TEMPLATE ` ) are available.
326
+
327
+ ### Licensing
328
+
329
+ All projects must be licensed under an [ Open Source Initiative
330
+ (OSI)] [ osi ] -approved license. The license must be included in the repository
331
+ root directory in a file named ` LICENSE ` . Unless otherwise discussed, please
332
+ use the [ Apache License 2.0] [ license-apache ] .
333
+
334
+ ### Versioning
335
+
336
+ All our projects are versioned according to the [ Semantic Versioning] [ sem-ver ]
337
+ specification. This means that each version number consists of three parts:
338
+ ` MAJOR.MINOR.PATCH ` . The version number is increased as follows:
339
+
340
+ - ` MAJOR ` version is increased when you make incompatible/breaking API changes
341
+ - ` MINOR ` version is increased when you add functionality in a backwards
342
+ compatible manner
343
+ - ` PATCH ` version is increased when you make backwards compatible bug fixes
344
+
345
+ Note that projects in pre-release state, i.e., should be assigned a version
346
+ number below ` 1.0.0 ` (start with ` 0.1.0 ` ). In Semantic Versioning, this means
347
+ that API changes can occur at any moment, which is suitable for a project that
348
+ has not reached sufficient maturity and API stability yet.
349
+
350
+ ### Continuous Integration
351
+
352
+ We are fully embracing the concept of continuous integration (CI) and related
353
+ practices. This means that all code changes are automatically tested and
354
+ validated before they are merged into the main codebase. This is to ensure that
355
+ the codebase remains stable and that new features and bug fixes do not break
356
+ existing functionality.
357
+
358
+ Therefore, when starting a new project, as soon as possible, please add one or
359
+ more GitHub Actions workflows to your project that do the following for pushes
360
+ to and pull requests against the repository's default branch (see existing
361
+ projects for examples):
362
+
363
+ - Run linting and formatting checks
364
+ - Run type checks (if applicable)
365
+ - Run unit and integration tests
366
+ - Check test coverage and upload results to [ Codecov] [ codecov ]
367
+ - Build and publish documentation (if not set up to be triggered automatically
368
+ by the publishing system, e.g., Read the Docs)
369
+
370
+ !!! note "Continuous Delivery/Deployment"
371
+
372
+ If the project you are working on is reasonably mature, also consider
373
+ setting up one or more continuous delivery/deployment workflows.
374
+
375
+ ### Documentation
376
+
377
+ Related to continuous integration, we also value continuous documentation. This
378
+ means that documentation is updated and improved as the codebase evolves. This
379
+ is to ensure that the documentation remains accurate and up-to-date and that it
380
+ reflects the current state of the codebase. It also means that we want to start
381
+ writing documentation as early as possible.
382
+
383
+ Currently, we are using Markdown to write documentation. For new projects, we
384
+ expect that each project has a ` README.md ` file that covers the following
385
+ sections (fill in with "Coming soon" if not yet available):
386
+
387
+ - ** Synopsis** : A brief description of the project
388
+ - ** Basic usage** : A brief overview of how to use the project
389
+ - ** Installation** : Instructions on how to install/deploy the project
390
+ - ** Versioning** : Information on how the project is versioned
391
+ - ** Contributing** : Guidelines on how to contribute to the project, with links
392
+ to the [ contributing guidelines] ( ../index.md ) and our
393
+ [ code of conduct] ( ../../about/code-of-conduct.md )
394
+ - ** Contact** : Information on how to contact the project leads
395
+
396
+ #### Hosted documentation
397
+
398
+ As projects grow, a simple ` README.md ` will not be sufficient anymore.
399
+
400
+ We therefore kindly ask you to prepare a dedicated, hosted documentation page
401
+ early on. This can be done using services like [ Read the Docs] [ read-the-docs ] or
402
+ GitHub Pages with MKDocs (like this page).
403
+
404
+ Carefully consider the audiences for your project and tailor the documentation
405
+ accordingly. In all cases, we expect that API documentation is made available
406
+ (can be auto-generated from code, e.g., via [ Sphinx] [ sphinx ] ).
0 commit comments