-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update the contributing guidelines #2611
Conversation
Update the contributing guidelines to provide a single source of truth for contributions from the community. Signed-off-by: Florian Kraft <f.kraft@finn.de>
also, use a different phrasing for the grace period.
I've prepared a stage to preview changes. Open stage or view logs. |
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
@@ -1,7 +1,50 @@ | |||
OpenProject is an open source project and we encourage you to help us out. We'd be happy if you do one of these things: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you should also reword this intro or keep the list of things that someone might want to do to help us (create tickets, be active in forum, etc.).
tl; dr: Your write-up below does not match this paragraph
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Funnily enough, I had a different version which got lost in my git-fu.
I'd reword it to something along the lines of:
"If you want to help us, please read the following guidelines to contributing:"
Optionally we could reword the individual headlines to be more "pro-active", like "Creating tickets in OP", "Creating new features", "Creating hotfixes", etc.
The timestamp is superfluous, as the information for contributing should not expire over time. [ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
Ideally, there is a work package for every issue that is tackled by a contributor - the list can be found [here](https://community.openproject.org/projects/openproject/work_packages). Work packages can be created there on-demand if necessary. | ||
|
||
## Development flow | ||
For contributing source code, please follow the Git Workflow below: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should probably add some wording to indicate, that the rules below apply to community contributions.
While the OpenProject core developers should also try to stick to these rules, they might deviate from them, e.g. not fork the repo, but have a branch on the main repository.
Proposal:
For external contributions [...] please follow the Git Workflow below:
Signed-off-by: Florian Kraft <f.kraft@finn.de>
## Development flow | ||
For contributing source code, please follow the Git Workflow below: | ||
|
||
- Fork Openproject on GitHub |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
OpenProject
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
## Important notices | ||
|
||
- Please add tests to your code to verify functionality, especially if it is a new feature. Please also run these tests locally. | ||
- Please create pull requests against the current `dev` branch. Hotfixes and Bugfixes should be created against the appropiate `release/*` branch. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think the information around non-dev PRs is incomplete:
- How do I find out which branch is the right one?
- Which kinds of PRs are allowed there (e.g. no new features)
- Should I make two PRs in such a case? (one against
release/x
and one againstdev
?)- the answer is no... but I can't see it ^^
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You have to help me out here. My understanding after a couple of weeks:
- Features/gem updates go against
dev
- Hotfixes go against latest
release/*
- Bugfixes go into
dev
- Backports (bugfixes/hotfixes) go into
release/*
[skip ci] Signed-off-by: Florian Kraft <f.kraft@finn.de>
We require a CLA to be signed, which you do not currently mention anywhere. edit: One thing that I find worrying about CLAHub is that the last activity there was two years ago... |
Electronically-signed CLA's are used by a lot of big companies now. IANAL, but I'm pretty sure electronic signatures are also valid in our jurisdiction. If we're required to have paper CLA's – sent my post – we might as well just write f*** you. we don't take contributions 😜 |
We are in germany here... I am not sure what qualifies as electronic signature either ^^ And what does IANAL mean? |
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
After actually reading the CLA I realized, that the CLA states how it should be transferred:
This should be the way then... until we decide internally, that CLAHub is also fine... |
I am not a lawyer. IANAL. |
What about Rubocop/Hound? Do I have to care about code style and coding conventions? |
I would add a section for style on this for new contributions, i.e. lines you touch. |
Also, include commentary on style guidelines and pull request reviewing. Signed-off-by: Florian Kraft <f.kraft@finn.de>
This adds a paragraph for the CLA requirement for external contributors. Signed-off-by: Florian Kraft <f.kraft@finn.de>
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
|
||
``` | ||
rubcocop -a ./path/to/file | ||
``` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This will obviously not fix all of the stylecop offenses. We might want to specifically give the hint that it is useful to check manually nevertheless.
However, I'm not sure if that would be out of scope for this document and should be noted somewhere else.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, the goal imho should be to have it all in one place, otherwise we will have the Problem of multiple documents floating around having to be cared for as well.
We could rephrase that paragraph into a suggestion that this can be done to improve the style of one's own code.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
At the end of the day my idea of abiding code style guidelines would simply be to not introduce new offenses (no matter what kind) and maybe even go the extra mile to remove some others as well. I usually like to remove the other offenses in the files I touched in a PR. However this could really put our rubocop configuration to the test, which might not be as desirable.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would not explicitly suggest that for the community (going the extra mile), but keep that as our mission...
This will not stop brave members of the community to fix the style nevertheless, but I think this is nothing we need to anticipate inour guidelines.
|
||
Please add tests to your code to verify functionality, especially if it is a new feature. | ||
|
||
Pull requests will be verified by TravisCI as well, but please run them locally as well. We have a lot of pull requests coming in and it takes some time to run the complete suite for each one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Maybe we should say here that it would be best if the tests were green when run locally. So there is a chance that Travis needs to test this PR only once.
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
just make sure they are green. [ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
@floriank to reduce the amount of work Travis has to do, you can add |
@myabc I think I added that - but in a more demanding way:
|
@floriank oh yes. / gitignore me |
|
Should contributions to plugins follow the same guidelines? |
Yeah, I guess so. |
I strongly recommend they do! |
Question is - how would we redirect the users - just place a link to this |
I will keep this PR open till Monday - after that it will be merged. |
|
||
### Etiquette and communication | ||
|
||
Lastly, be nice and respectful to each other. We are working hard to make OpenProject the best project management software there is and we are grateful for each contribution. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@floriank Bundler now adds a Code of Conduct with its gem generator.
- https://github.com/bundler/bundler/blob/master/lib/bundler/templates/newgem/CODE_OF_CONDUCT.md.tt
- http://contributor-covenant.org/
Angular are also using it.
Might be something to consider.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I'll have a look at it after workout 💪
👍 |
Two things that just occurred to me:
Sorry for late feedback. |
Teatro and Hound should be available for all PRs - am I missing something? Rubocop can also be executed locally. Features which would be developed by multiple developers can be created as a pull request set as |
Right, of course. I was missing something. |
|
||
Please add tests to your code to verify functionality, especially if it is a new feature. | ||
|
||
Pull requests will be verified by TravisCI as well, but please run them locally as well and make sure there are green before creating your pull request. We have a lot of pull requests coming in and it takes some time to run the complete suite for each one. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
typo:
and make sure there are green
->
and make sure they are green
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
[ci skip] Signed-off-by: Florian Kraft <f.kraft@finn.de>
Update the contributing guidelines
* parallelize build matrix * use phantomjs 2.0 * use postgres 9.3 * run custom scripts * whiteliste main branches
Goal
In the light of some of the latest pull requests it became apparent hat we lack a single source of truth when it comes to the guidelines for contributing to OpenProject.
After some reviewing and looking into the history, I updated the guidelines for contributing to OpenProject to reflect current practices.
Notes
Information has been pulled together from different source, mainly the Guidelines from the OpenProject wiki (which is no longer available to me), comments made by @linki in #1362 and the discussion in #2594, as well as discussion with @ulferts on current practices in handling PRs.
There also was a discussion with @myabc last week on using CLAHub for contributors to the repository, to which these guidelines have no reflection of. I'd be happy on discussing this topic, as there is some need of that in my opinion.
Ticket
https://community.openproject.org/work_packages/18827