-
Notifications
You must be signed in to change notification settings - Fork 187
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'update-governance' of 'https://github.com/sduenas/grimo…
- Loading branch information
Showing
4 changed files
with
380 additions
and
192 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,218 +1,88 @@ | ||
# Contributing to GrimoireLab | ||
|
||
These are some general guidelines and information related to how we contribute to GrimoireLab. | ||
There are multiple ways to contribute to GrimoireLab. You can help other | ||
users solve their issues running the platform, report issues you might have | ||
found using in our software, propose new ideas, improve documentation, | ||
and even write code to add new features or fix existing bugs. | ||
|
||
GrimoireLab is a part of the [Software Technical Committee](https://wiki.linuxfoundation.org/chaoss/software) of the [CHAOSS Collaborative Project](http://chaoss.community). | ||
The following is information and general guidelines for collaborating with us. | ||
|
||
## Communication means | ||
## Before You Contribute | ||
|
||
GrimoireLab use the following communication channels: | ||
Before opening a new discussion, bug, issue, etc, please check if similar one | ||
has already been reported. This helps us avoid duplication of effort and keeps | ||
our discussions and issues focused. | ||
|
||
* Mailing list | ||
* Slack | ||
* Issues / pull requests | ||
Also, please check our [Code of Conduct](https://github.com/chaoss/.github/blob/main/CODE_OF_CONDUCT.md). | ||
GrimoireLab is part of the [CHAOSS Collaborative Project](http://chaoss.community) | ||
and any participation in their projects is subject to their Code of Conduct. | ||
|
||
Each of them is intended for an specific purpose. Please understand | ||
that you may be redirected to some other mean if the communication you | ||
intend to have is considered to fit better elsewhere. | ||
## How Can I Contribute? | ||
|
||
### Mailing list | ||
### Reporting Bugs | ||
|
||
List: | ||
[[email protected]](https://lists.linuxfoundation.org/mailman/listinfo/grimoirelab-discussions) | ||
If you find an error while running the platform, we would appreciate you | ||
opening an issue to report it. | ||
|
||
We use the list for: | ||
As GrimoireLab is built by several components across some GitHub repositories, | ||
You may not know exactly where to open the issue. Unless you know | ||
exactly on which component the bug is, open the issue on the main repository. | ||
Maintainers will move the issue if they see the issue is related to another | ||
repository. | ||
|
||
* Discussions related to the management of the project, including the | ||
relationship with the CHAOS Software Technical Committee. | ||
* General announcements, including information about releases. | ||
* General discussions about the future of the project, relationship | ||
with other projects, new features or refactorings that really don't fit | ||
in other communication means. | ||
* Questions and community support that really don't fit in other | ||
communication means. | ||
### Suggesting Enhancements | ||
|
||
### Slack | ||
|
||
Channel: [`#grimoirelab`](https://chaoss-workspace.slack.com/archives/C022NPTPC8Z) | ||
at [CHAOSS Slack](https://join.slack.com/t/chaoss-workspace/shared_invite/zt-r65szij9-QajX59hkZUct82b0uACA6g) | ||
|
||
We use the channel for pinging people, sharing updates, quick and informal | ||
discussions, questions and answers, etc. Please, don't consider that | ||
developers in the channel will be always available, or always willing | ||
to answer questions and comments. However, anyone interested in the | ||
project is welcome to join the channel and hang around. | ||
|
||
### Pull request / issues | ||
|
||
Repositories: [GrimoireLab repositories in GitHub](http://github.com/chaoss/grimoirelab), which are all in the [CHAOSS organization](http://github.com/chaoss). | ||
|
||
Most of the work is discussed here, including upgrades and | ||
proposals for upgrades, bug fixing and feature requests. For any of | ||
these, open an issue in the corresponding repository. If in doubt, ask in | ||
the IRC channel, or try in any one: if needed you will be redirected to | ||
the right repository. If you are proposing code change, open a pull request. | ||
|
||
## DCO and Sign-Off for contributions | ||
|
||
The [CHAOSS Charter](https://github.com/chaoss/governance/blob/master/project-charter.md) requires that contributions | ||
are accompanied by a [Developer Certificate of Origin](http://developercertificate.org) sign-off. | ||
For ensuring it, a bot checks all incoming commits. | ||
|
||
For users of the git command line interface, a sign-off is accomplished with the `-s` as part of the commit command: | ||
|
||
``` | ||
git commit -s -m 'This is a commit message' | ||
``` | ||
|
||
For users of the GitHub interface (using the "edit" button on any file, and producing a commit from it), | ||
a sign-off is accomplished by writing | ||
|
||
``` | ||
Signed-off-by: Your Name <[email protected]> | ||
``` | ||
|
||
in a single line, into the commit comment field. This can be automated by using a browser plugin like | ||
[DCO GitHub UI](https://github.com/scottrigby/dco-gh-ui). | ||
|
||
## Committers | ||
|
||
Committers have the permision to merge code in GrimoireLab. Committers | ||
can be for all GrimoireLab, or for specific repositories. | ||
|
||
New committers will be proposed by committers, and accepted (granted | ||
committer rights) by an action vote among committers (see below). | ||
Developers can apporach committers to ask to be proposed as comitter. | ||
Main rule for acceptance of new committers will be their merits on the | ||
project, including past contributions and expertise. | ||
|
||
Committers may resign if they are no longer involved enough in the | ||
project. Committers can also propose the removal of other committer | ||
rights, in case they are no longer involved in the project. For being | ||
removed, after the proposal there will be an action voting among | ||
committers, except for the one being proposed to be removed. | ||
|
||
The current list of committers is (GitHub handles): | ||
If you have ideas for improvements or new features, feel free to open a new | ||
discussion or issue to share them. We appreciate well-documented | ||
enhancement suggestions. You can also have at look to our [ROADMAP](./ROADMAP.md) | ||
to check if your proposal is aligned with the current direction of the | ||
platform. | ||
|
||
* General: @sduenas, @acs, @dicortazar, @sanacl, @jgbarah, @jsmanrique, @valcos | ||
* Manuscripts: @alpgarcia | ||
* Sigils: @alpgarcia | ||
### Writing Code | ||
|
||
## Voting on action items (action votes) | ||
All contributions to current repositories in GrimoireLab will be received as | ||
pull requests in the corresponding repository. GitHub has a | ||
[complete guide](https://docs.github.com/es/pull-requests) on | ||
collaborating via pull requests but, in short, you will do the following: | ||
|
||
Action items will be decided by public votes in the mailing list for | ||
the project. Anyone in the mailing list can vote, to express their | ||
opinion, but the result of the vote will have into account only the | ||
votes by general committers. | ||
1. Fork the repository. | ||
1. Create a new branch for your feature or bug fix. | ||
1. Make your changes and test them thoroughly. | ||
1. Create a pull request (PR) with a clear title and description. | ||
1. Ensure your PR follows our coding standards. | ||
|
||
Votes will be casted as (details taken in part from the Apache | ||
project): | ||
If you're interested in contributing with code, please also have a look | ||
at the specifics in our [CONTRIBUTING WITH CODE](./CONTRIBUTING_WITH_CODE.md) | ||
document. | ||
|
||
- +1: Yes, agree, or the action should be performed. | ||
- 0 : Abstain, no opinion, or I am happy to let the other group members | ||
decide this issue. | ||
- -1: No, I veto this action. All vetos must include an explanation of | ||
why the veto is appropriate. A veto with no explanation is void. | ||
## How Can I Communicate with the GrimoireLab Community? | ||
|
||
A period of four days, since the moment the action item is proposed, | ||
will be valid for casting votes. Any comitter can propose an action | ||
vote, which will be effective if at least two other committers agree | ||
during a period of two days. The voting period will start when the | ||
proposer sends a message stating that, after the second agreement is | ||
received. | ||
In GrimoireLab we use the communication channels listed below, each one of them | ||
intended for a specific purpose. | ||
|
||
Action votes will be mandatory for: | ||
### GitHub Discussions | ||
|
||
* Accepting a new committer. | ||
* Proposal for removal of committer rights. | ||
* Accepting a new repository in the project. | ||
* Removing a repository from the project. | ||
* Deciding that some certain code in some repository needs to be moved | ||
to some other repository. | ||
We use [this site](https://github.com/chaoss/grimoirelab/discussions) for: | ||
|
||
In all the cases, the action vote will pass with at least 3 positive | ||
votes and no vetos. | ||
- General announcements, such as information about releases. | ||
- Questions and community support. | ||
- General discussions about the future of the project, relationship | ||
with other projects, new features or changes that don't fit | ||
in other communication channels. | ||
- Discussions related to the management of the project, including the | ||
relationship with the **CHAOSS Software Technical Committee**. | ||
|
||
## Accepting contributions | ||
### GitHub Issues / Pull Requests | ||
|
||
Except for a few exceptions, all contributions to current repositories | ||
in GrimoireLab will be received as pull requests in the corresponding | ||
repository. They will be reviewed by at least one committer before | ||
being accepted. Anyone is welcome to comment on pull requests. | ||
Most of the technical work is discussed here, including upgrades and | ||
proposals for upgrades, bug fixing and feature requests. | ||
|
||
Except in very special circumstances, that should be defined, | ||
contributions will be accepted under the GPLv3 (GNU Public License | ||
version 3). | ||
|
||
The list of current repositories is the list of projects in the | ||
GrimoireLab organization in GitHub. | ||
|
||
#### Guidelines to follow to write good commit messages | ||
Writing a well-crafted Git commit message is the best way to | ||
communicate context about a change to fellow developers. | ||
|
||
Seven rules of a great Git commit message are mentioned in | ||
[How to Write a Git Commit Message](https://chris.beams.io/posts/git-commit/): | ||
|
||
1. Separate subject from body with a blank line | ||
1. Limit the subject line to 50 characters | ||
1. Capitalize the subject line and (optionally) | ||
start the subject with a tag | ||
1. Do not end the subject line with a period | ||
1. Use the imperative mood in the subject line | ||
1. Wrap the body at 72 characters | ||
1. Use the body to explain what and why vs. how | ||
|
||
The below git commit message is a good example which follows | ||
the above rules. | ||
|
||
``` | ||
Summarize changes in around 50 characters or less | ||
More detailed explanatory text, if necessary. Wrap it to about 72 | ||
characters or so. In some contexts, the first line is treated as the | ||
subject of the commit and the rest of the text as the body. The | ||
blank line separating the summary from the body is critical (unless | ||
you omit the body entirely); various tools like `log`, `shortlog` | ||
and `rebase` can get confused if you run the two together. | ||
Explain the problem that this commit is solving. Focus on why you | ||
are making this change as opposed to how (the code explains that). | ||
Are there side effects or other unintuitive consequences of this | ||
change? Here's the place to explain them. | ||
Further paragraphs come after blank lines. | ||
- Bullet points are okay, too | ||
- Typically a hyphen or asterisk is used for the bullet, preceded | ||
by a single space, with blank lines in between, but conventions | ||
vary here | ||
If you use an issue tracker, put references to them at the bottom, | ||
like this: | ||
Resolves: #123 | ||
See also: #456, #789 | ||
``` | ||
|
||
## Incubating repositories | ||
|
||
In some cases, activity related to GrimoireLab may start in | ||
repositories outside the GrimoireLab project. In that case, if the | ||
developers collaborating in those repositories want, they can inform | ||
GrimoireLab of their progress, and propose coordianted actions (such as | ||
definition of APIs). However, they will be considered external projects | ||
until the moment they are accepted as repositories in GrimoireLab, via | ||
an action vote. | ||
|
||
## Merging contributions | ||
|
||
TBD | ||
### Slack | ||
|
||
## Releases | ||
You can fin us on [`#grimoirelab`](https://chaoss-workspace.slack.com/archives/C022NPTPC8Z) | ||
channel at [CHAOSS Slack](https://join.slack.com/t/chaoss-workspace/shared_invite/zt-r65szij9-QajX59hkZUct82b0uACA6g). | ||
|
||
GrimoireLab will deliver frequent coordinated releases of several of | ||
the code in its repositories. Those releases should have passed some | ||
testing procedures known to the project. Releases will be announced in | ||
the mailing list. | ||
We use the channel for pinging people, sharing updates, quick and informal | ||
discussions, questions and answers, etc. Please, remember that developers | ||
in the channel won't always be available. However, anyone interested in the | ||
project is welcome to join the channel and start a discussion. |
Oops, something went wrong.