CONTRIBUTING.md 4.76 KB
Newer Older
1
# Contributing
Denis Arh's avatar
Denis Arh committed
2

3
4
Thank you for helping us make [our vision](https://cortezaproject.org/about/what-is-corteza/) a reality!
All contributions are welcome; from bug reports, codefixes, and new features!
Denis Arh's avatar
Denis Arh committed
5

6
## Ground Rules
Denis Arh's avatar
Denis Arh committed
7

8
Corteza projects are [Apache 2.0 licensed](LICENSE) and accept contributions via GitHub pull requests.
Denis Arh's avatar
Denis Arh committed
9

10
Cover the [terminology](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/release-cycle/index.html#_terminology) for the development process and versioning.
Denis Arh's avatar
Denis Arh committed
11

12
Cover the [Git and GitHub](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/release-cycle/index.html#_github) ground rules regarding branch naming and conventions.
Denis Arh's avatar
Denis Arh committed
13

14
15
When you wish to start working on a code contribution, assign yourself to a GitHub issue.
If there is no issue, create one beforehand.
Denis Arh's avatar
Denis Arh committed
16

17
A quick summary on [How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/):
Denis Arh's avatar
Denis Arh committed
18

19
20
21
22
23
24
25
1. Separate subject from body with a blank line
2. Limit the subject line to 50 characters
3. Capitalize the subject line
4. Do not end the subject line with a period
5. Use the imperative mood in the subject line
6. Wrap the body at 72 characters
7. Use the body to explain what and why vs. how
Denis Arh's avatar
Denis Arh committed
26

27
## Core repositories
Denis Arh's avatar
Denis Arh committed
28

29
### Corteza Server
Denis Arh's avatar
Denis Arh committed
30

31
32
Corteza server is the back-end of the Corteza ecosystem.
The core logic is written in GO, using [go-chi](https://pkg.go.dev/github.com/go-chi/chi@v3.3.4+incompatible?utm_source=gopls) for the routing.
Denis Arh's avatar
Denis Arh committed
33

34
35
Communication between the Corteza server and web applications is done using the REST API and web sockets.
Communication between back-end services (Corteza server and Corredor) is done using gRPC.
Denis Arh's avatar
Denis Arh committed
36

37
The [Developer Guide/Corteza Server](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/corteza-server/index.html) covers the [development setup](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/corteza-server/index.html#_development_setup), the [project structure](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/corteza-server/structure.html), and the feature insight documents.
Denis Arh's avatar
Denis Arh committed
38
39


40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
### Corteza Web Applications

The web applications are written in Vue.js and provide the user interface to interact with the entire system.
The repositories:

1. [corteza-webapp-one](https://github.com/cortezaproject/corteza-webapp-one)
2. [corteza-webapp-admin](https://github.com/cortezaproject/corteza-webapp-admin)
3. [corteza-webapp-compose](https://github.com/cortezaproject/corteza-webapp-compose)
4. [corteza-webapp-workflow](https://github.com/cortezaproject/corteza-webapp-workflow)

Communication between the Corteza server and web applications is done using the REST API and web sockets.

The [Developer Guide/Corteza Web Applications](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/web-applications/index.html) covers the [development setup](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/web-applications/index.html#_development_setup), the [project structure](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/web-applications/structure.html), and the feature insight documents.

### Documentation

The documentation is written in [AsciiDoc](https://asciidoc.org/) and compiled using [Antora](https://antora.org/).
The source code is available on the [GitHub cortezaproject/corteza-docs repository](https://github.com/cortezaproject/corteza-docs); the generated output is available on the [documentation page](http://docs.cortezaproject.org/).

The [Developer Guide/Documentation](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/documentation/index.html) covers the [conventions](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/documentation/index.html#_conventions), [writing guidelines](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/documentation/index.html#documentation-writing-guidelines), as well as some [examples](https://docs.cortezaproject.org/corteza-docs/2021.6/developer-guide/documentation/examples/index.html) to help you get started.

## Bug reporting

Please submit any bug reports on the **issues** section of the corresponding GitHub repository.
If you are unsure where to submit the issue, or you are unsure if this is a feature; reach out to us on [our forum](https://forum.cortezaproject.org/).

## Feature requests

Feature and improvement requests should be submitted on [our forum](https://forum.cortezaproject.org/).
Before opening a new topic, search around to see if there are any similar topics that would cover your case.

## DCO

By contributing to this project you agree to the Developer Certificate of Origin (DCO).
This document was created by the Linux Kernel community and is a simple statement that you, as a contributor, have the legal right to make the contribution.
See the [DCO](DCO) file for details.