Skip to content
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: update contributing guidelines #10223

Merged
merged 16 commits into from
Oct 1, 2021
Merged

docs: update contributing guidelines #10223

merged 16 commits into from
Oct 1, 2021

Conversation

robert-zaremba
Copy link
Collaborator

@robert-zaremba robert-zaremba commented Sep 23, 2021

Description

Closes: #9814

  • Updates the contributing page
  • Adds contributing guidelines

NOTE:

  • This pr doesn't update the code owners section. We will still need to define it.

This is based on the discussion we had 2 months ago and recent chats.


Author Checklist

All items are required. Please add a note to the item if the item is not applicable and
please add links to any relevant follow up issues.

I have...

  • included the correct type prefix in the PR title
  • added ! to the type prefix if API or client breaking change
  • targeted the correct branch (see PR Targeting)
  • provided a link to the relevant issue or specification
  • followed the guidelines for building modules
  • included the necessary unit and integration tests
  • added a changelog entry to CHANGELOG.md
  • included comments for documenting Go code
  • updated the relevant documentation or specification
  • reviewed "Files changed" and left comments if necessary
  • confirmed all CI checks have passed

Reviewers Checklist

All items are required. Please add a note if the item is not applicable and please add
your handle next to the items reviewed if you only reviewed selected items.

I have...

  • confirmed the correct type prefix in the PR title
  • confirmed ! in the type prefix if API or client breaking change
  • confirmed all author checklist items have been addressed
  • reviewed state machine logic
  • reviewed API design and naming
  • reviewed documentation is accurate
  • reviewed tests and test coverage
  • manually tested (if applicable)

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
Copy link
Contributor

@barriebyron barriebyron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I might win an award for the most granular review of words and grammar in this most important release resource! In a past life in a different job, I was heavily invested in the release cycles. I absolutely applaud this important information and clarity regarding releases. thank you Cosmos SDK code owners!! I appreciate you. lmk if this feedback is helpful.

CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated
Patch release must not break API nor consensus.
Before `v1.0`, point release can break both point API and consensus.

Updates to the release branch should come from `master` by backporting PRs (usually done by automatic cherry pick followed by a PRs to the release branch). The backports must be marked using `backport/Y` label in PR for master.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Updates to the release branch should come from `master` by backporting PRs (usually done by automatic cherry pick followed by a PRs to the release branch). The backports must be marked using `backport/Y` label in PR for master.
Updates to the release branch come only from `master` by backporting PRs (usually done by automatic cherry-pick followed by PRs to the release branch). The backports must be marked using `backport/Y` label in PR for master.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In fact the original text is correct. "Should" has to be used. Updates which are not related to the upstream, must be created as PR to the release branch.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay, not critical for me... although should is ambiguous... I think we're saying that

Updates to the release branch can be made only from master by...

(isn't this fun? I can talk word choice all day long, love this stuff!)

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
robert-zaremba and others added 2 commits September 27, 2021 19:19
Co-authored-by: Barrie Byron <barrie.byron@tendermint.com>
Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
Co-authored-by: Barrie Byron <barrie.byron@tendermint.com>
CONTRIBUTING.md Outdated Show resolved Hide resolved
Copy link
Contributor

@barriebyron barriebyron left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

approving, some seriously important content here!

Copy link
Contributor

@clevinson clevinson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking the time to work on this @robert-zaremba !

After reading through it, I think the new contributing-guidelines.md doc is actually pretty valuable. Maybe there could be a better name, but I think for now its fine.

When talking about release process, I feel like there's a lot of overlap w/ the Stable Releases document (which in general should maybe be renamed?). And there's also some content in CONTRIBUTING.md that I feel should go in CONTRIBUTING-GUIDELINES.md.

Can you provide a bit of context as to how you see the high level distinction between these different pages? I think that would make reviewing this PR easier, so I could give more concrete suggestions about how some sections might be better in other .md pages.

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
+ gas usage
+ transaction verification and signatures
+ malleability
+ code must be always deterministic
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
+ code must be always deterministic
+ code must be always deterministic

Is this a type of exploit? Or a more general security concern.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

both, if we have a nondetermism trap, which could be exploited, then the network can potentially halt.
Do you suggest to "shift it to the left'?




## Quality Assurance
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is great to outline and document in the Repo, but I'm not sure it belongs in the CONTRIBUTING-GUIDELINES.md doc. Maybe its better in its own doc around QA practices and scope & team members & outcomes?

Or maybe a pinned issue similar to what we have for working groups?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why a pinned issue? Do you think it will have a better visibility? For me issues are something that will have it's own life and will be closed eventually.

CONTRIBUTING-GUIDELINES.md Outdated Show resolved Hide resolved
- QA reports. Goal is to guide with new tasks and be one of the QA measures.


As a developer, you must help the QA team by leaving instructions for user experience and functional testing.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably add a note to the "Testing" section above and be a bit more clear about what functional / acceptance testing folks should be doing, and also provide an example (both in SDK and resource for how to write acceptance tests).

Then again, since we don't have any acceptance tests in the SDK yet, I'm wondering if its better for us to implement some for existing modules first so we can point to those as examples?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reorganize this section.

Re adding acceptance tests: this should be iterative process and I hope we will soon have them.

@robert-zaremba
Copy link
Collaborator Author

@clevinson , the idea is that:

  • CONTRIBUTING - a general document about how to contribute and the PR / review policies.
  • CONTRIBUTING-GUIDELINES - a document describing how to design a code in contrast to the process of contribution flow (issue / discussion -> draft -> pr -> review -> release).

When thinking about better name for the latter document, I decided to rename it to CODING-GUIDELINES. What do you think?

CONTRIBUTING.md Outdated Show resolved Hide resolved
Copy link
Contributor

@amaury1093 amaury1093 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, thanks @robert-zaremba for writing this.

IMO a lot of release procedure stuff can probably go in another doc (maybe STABLE_RELEASES.md, maybe even a new .md), so that CONTRIBUTING.md is cleaner and targetted at a general public.

But okay to merge it as-is, the release process is finally documented, thanks!

CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CODING-GUIDELINES.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
CONTRIBUTING.md Outdated Show resolved Hide resolved
Co-authored-by: Amaury <1293565+amaurym@users.noreply.github.com>
@robert-zaremba
Copy link
Collaborator Author

@clevinson , @AmauryM - merged STABLE_RELEASES.md with Release process from CONTRIBUTING into RELEASE_PROCESS.md. Let me know if you want to have another look.

Copy link
Contributor

@amaury1093 amaury1093 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this lgtm!

CODING-GUIDELINES.md Outdated Show resolved Hide resolved
@robert-zaremba robert-zaremba added A:automerge Automatically merge PR once all prerequisites pass. and removed A:automerge Automatically merge PR once all prerequisites pass. labels Oct 1, 2021
@mergify mergify bot merged commit 9833bf1 into master Oct 1, 2021
@mergify mergify bot deleted the robert/contributing branch October 1, 2021 11:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A:automerge Automatically merge PR once all prerequisites pass.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update the contributing process
5 participants