-
Notifications
You must be signed in to change notification settings - Fork 139
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
Docs: improve the "Contributing" section documentation #115
Comments
Agree that it needs improvement. The AWS Solutions Constructs repo, in my opinion, has a good example of this file. Also interesting is their The process they request contributors to follow requires an issue and a design document to be reviewed by a maintainer before someone starts to implement a change. For trivial changes just the issue could suffice but for bigger changes I think it's a good idea. On one hand the maintainer review could become a bottleneck but in the spirit of a good experience as a contributor it'd be far worse to invest time and effort in an implementation that'd be rejected when it becomes a PR. |
I like @dreamorosi's suggestion of the AWS Solutions Constructs example, and think we could get a good first document by using and adapting the example for our repository. I'll be happy to start a draft. I don't have much experience around design guidance, and am quite new to this project. So for now I'll be passive regarding design guidelines. |
I think a good starting point for the design principles could be the tenets described in the Python's version of the project. Other than that I think good principles could be feature parity and consistency with other runtimes. |
@bahrmichael @dreamorosi thanks for your input, I completely agree. I would also add: in our contributing guidelines we should also clarify how to find Issues, PR's (through the Github projects). Additionally we could define what "ownership" (= assignees) of an issue is and what that means in practice. Here's my proposal:
I myself am guilty of assigning issues to get people's attention so not following what suggested above, by the way. But I realised that this was causing me confusion. I think documenting this etiquette will bring more clarity about who is working on what in the future. But first we need of course to agree whether this is the best way of working/approach or there are better ways. |
100% agree with this, and it's great to document it so that we all know what's the proper etiquette. To double down on this I think we could codify also how PRs should work. For those I think the current behaviour is that the assignee is the person who opened the PR and is responsible of resolve any comment/request from the reviewers. Reviewers are those who are expected to review the PR and provide feedback/approve/reject the changes. What do you think? |
We should also include build steps they can run themselves to ensure proper linting (and maybe add a step in the PR build to verify if it's alright).
I think we're reaching a point where we need to recollect all the ideas, and trim them down into individual tasks. |
Another item we could document: testing style. |
I think the approach here seems sensible, and yes more documentation on how things should work the better! |
As suggested by @alan-churley this issue can include the setup of pre-commit hooks that would validate/flag errors |
Another important point to document (and possibly also setup in our project configuration) is the versions of:
|
There's been a lot of great feedback, so I'll try to summarize it into some areas that we can work through bit by bit.
|
|
I do like how python powertools has a simple ie:
|
Another aspect that we should add in our contributing section: avoiding creating PR's that include code changes that are not related to the specific issue they are trying to address. Also we should clarify what's the best way to define a conversation resolved in a PR review :) |
Should we put contributing section in the doc? |
normally it is in the root dir |
I personally would prefer to be just a link to CONTRIBUTING.md from doc. Dev will first look at this file at root folder of repo. |
Adding GitPod or CodeSpaces support is really handy . eg: https://github.com/aws/aws-cdk/blob/master/CONTRIBUTING.md |
I did one for the python project too, makes it super easy to contribute CodeSpaces config: GitPod config: |
Did a quick test with
ARG VARIANT="16"
FROM mcr.microsoft.com/vscode/devcontainers/javascript-node:0-${VARIANT}
RUN mkdir ~/.npm-global && \
npm config set prefix '~/.npm-global' && \
echo "export PATH=~/.npm-global/bin:$PATH" >> ~/.profile
ARG EXTRA_NODE_VERSION=16.5.0
RUN su node -c "source /usr/local/share/nvm/nvm.sh && nvm install ${EXTRA_NODE_VERSION}"
{
"name": "Node.js",
"build": {
"dockerfile": "Dockerfile"
},
"extensions": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"visualstudioexptteam.vscodeintellicode",
"amazonwebservices.aws-toolkit-vscode",
"github.copilot",
"firsttris.vscode-jest-runner"
],
"postCreateCommand": "npm install && npm run lerna-bootstrap && npm run lerna-test"
} |
I would not mind adding a PR for gitpod / CodeSpaces support. To help onboard contributors. |
Just FYI, I created a separate ticket for the scope of "local development" (new contributors onboarding) |
There is still typos, python references and aws cdk project references. |
Most of the items are addressed (Python references are also removed). With @AWSDB PR, we're confident for Production Release with this doc. Any other future improvement on CONTRIBUTING.md will be created as a seperated issue. |
|
Description of the improvement
Summary of the proposal
Right now the contributing docs are very bare.
To make it inclusive and accessible for contributors from different seniority, background and experience, this area should be be more detailed to make sure that ambiguity is reduced and most importantly, in case of PR's, expectations are communicated early on in the PR progress.
How, where did you look for information
In the current Contributing doc.
Missing or unclear documentation
Contributions may be related to:
Improvement
Rather than 1 single cluttered
CONTRIBUITING.md
file, a folder with organized files/sections might be easier to read and browse.Related existing documentation
Contributing file
Related issues, RFCs
#426
#422
The text was updated successfully, but these errors were encountered: