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

Add Flux GOVERNANCE doc #13

Merged
merged 32 commits into from
Oct 26, 2020
Merged

Add Flux GOVERNANCE doc #13

merged 32 commits into from
Oct 26, 2020

Conversation

scottrigby
Copy link
Member

@scottrigby scottrigby commented Oct 2, 2020

Fixes #1
Closes #15

Intro

This is an initial draft PR for community feedback. @dholbach was kind enough to do an initial quick scan at https://hackmd.io/sBKKaeTgRmO4JYziwq4teQ?both but now it's time to discuss. Please preview at https://github.com/scottrigby/flux-community/blob/governance/GOVERNANCE.md and see what you think 🙂

Changes for Contributors

DCO

As soon as this PR is merged, Developer Certificate of Origin (DCO) commit signoff will be required for all new code contributions in the fluxcd GitHub org repos.

Note either DCO or CLA is required for CNCF projects. I proposed DCO, as it's easier for end users, and built into git.

For those unfamiliar with DCO, see git help commit:

-s, --signoff
    Add Signed-off-by line by the committer at the end of the commit log
    message. The meaning of a signoff depends on the project, but it typically
    certifies that committer has the rights to submit this work under the same
    license and agrees to a Developer Certificate of Origin (see
    http:https://developercertificate.org/ for more information).

Your DCO signoff is drawn from your gitconfig's name and email. If you choose to manually add a signoff line, it must be properly formatted and must match your commit information. For example, if you use a GitHub private email (like <username>@users.noreply.github.com) you must make sure to set your gitconfig's email accordingly.

For those who wish to ensure this is always done in your CLI, consider implementing something like this gist. I have successfully used this for several years.

Whenever commit messages are added in the GitHub UI, consider using the DCO GitHub UI browser plugin for Chrome or Firefox, which I also maintain, and is in use by a number of contributors to CNCF projects.

Timeline

  • One week for initial comments on this PR (Thurs 15 Oct)
  • One week for final thoughts after all initial comments have been addressed (Thurs 22 Oct)
  • Update: as of Friday 23 Oct there are still details being ironed out. Stay tuned ⏳

Readiness to merge the PR will be decided by Lazy consensus. At which point:

  • this GOVERNANCE doc PR will be committed
  • we will email the flux-dev list letting contributors know about the DCO change above
  • we will enable the DCO bot across all repos in the fluxcd GitHub org

We will also notify users and contributors of the above dates, in CNCF Slack #flux channels, and on the flux-dev mailing list.

Additional Context

Edit I removed earlier additional context. I tried to take a less is more approach with the doc itself, since by definition it needs to stand on its own. If interested, see description history for this PR ⏳

Copy link
Member

@hiddeco hiddeco left a comment

Choose a reason for hiding this comment

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

Thank you Scott 🌞

Did a quick round of review, and on a first read, it all seems reasonable and very much inline with other projects' governance.

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
@caniszczyk
Copy link

caniszczyk commented Oct 4, 2020 via email

GOVERNANCE.md Outdated Show resolved Hide resolved
Copy link
Member

@squaremo squaremo left a comment

Choose a reason for hiding this comment

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

Some typo corrections, some comments. I'll batch the typos into a commit, to take them off the radar.

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
@dholbach
Copy link
Member

dholbach commented Oct 5, 2020

CC @michaelbeaumont, @sarataha, @foot, @dinosk, @yiannistri as maintainers of fluxcd/go-git-providers

@dholbach
Copy link
Member

dholbach commented Oct 5, 2020

CC @seaneagan as maintainer of fluxcd/helm-controller.

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
@scottrigby scottrigby force-pushed the governance branch 2 times, most recently from 54b9305 to e23372c Compare October 9, 2020 18:12
@phillebaba
Copy link
Member

One small thing that I think may be missing is information regarding how a person becomes a maintainer. Is this only possible through invitation or is it something one has to apply to after a certain amount of contributions.

@scottrigby
Copy link
Member Author

scottrigby commented Oct 10, 2020

One small thing that I think may be missing is information regarding how a person becomes a maintainer. Is this only possible through invitation or is it something one has to apply to after a certain amount of contributions.

@phillebaba you're right there's currently only info about how voting takes place, in Membership Changes (for all teams, for an Org team seat, and for maintaining a technical sub-project).

The Values section also attempts to expresses that this is an open process, contributions of all kinds from anyone (ideally from a broader spectrum of organizations) may join the community at any level.

I agree there's almost definitely some shared expectations of prior contributions and commitment before nominating/adding a contributor to take on more responsibility within the project. But I didn't want to try adding specific criteria for this to the doc because it seemed better to leave up to the existing members voting process above. I'd like to hear the current maintainers points of view on whether we should detail this out more in the doc, and if so what should that be? I'm trying hard to leverage various CNCF project members experiences to keep this both useful and as simple as possible. Please let me know what you think.

Copy link
Member

@squaremo squaremo left a comment

Choose a reason for hiding this comment

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

Overall comment: this seems like a lot of bureaucracy, while we have not many more maintainers than there are teams proposed. Other comments in line.

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
@squaremo
Copy link
Member

this seems like a lot of bureaucracy

More constructively:

  • The Org team has a purpose, as arbiters of last resort (without bothering CNCF, that is)

  • I can see a purpose for the Security team and Community team, distinct from the others.

  • The Dev team doesn't have a remit outside of the individual projects (here I mean the repos under fluxcd/). I think we should just mention the responsibilities of individual repo maintainers and forget about a Dev team.

  • I think the desire for an Architecture team comes from recognising that there's at least one line of development that's spread over several repos (the gitops toolkit bits). But I don't think it would be effective to parachute maintainers into repos so they can be said to be represented, and I don't think it's desirable to have a small group of people deciding how everything works.

It would be better to rely on openness and transparency (i.e., the values) for making sure people get heard -- that should be happening anyway. If there's a bunch of repos that all go together, and a need to co-ordinate, then constitute a team for making decisions over a larger area, but restrict its scope to those repos.

@stefanprodan
Copy link
Member

stefanprodan commented Oct 13, 2020

The Dev team doesn't have a remit outside of the individual projects (here I mean the repos under fluxcd/). I think we should just mention the responsibilities of individual repo maintainers and forget about a Dev team.

The Dev team would allow repo maintainers to display on their GitHub profile the fluxcd membership. I would keep the Dev team for this purpose only.

PS. Maybe a better name for this team would be "Maintainers team".

I think the desire for an Architecture team comes from recognising that there's at least one line of development that's spread over several repos (the gitops toolkit bits). But I don't think it would be effective to parachute maintainers into repos so they can be said to be represented, and I don't think it's desirable to have a small group of people deciding how everything works.

I agree, instead of an Architecture team, those that want to get involved into day-to-day decisions they could comment on API proposals and review PRs in each repo.

GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
GOVERNANCE.md Outdated Show resolved Hide resolved
scottrigby and others added 26 commits October 26, 2020 10:30
Signed-off-by: Scott Rigby <[email protected]>
…aced 'maintainer' with 'member' in various places. Fixed the Dev list link

Signed-off-by: Scott Rigby <[email protected]>
…arify a Dev team member may be scoped to one or more git repos

Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Sean Eagan <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
…l. It is also not a discussion list

Signed-off-by: Scott Rigby <[email protected]>
Co-authored-by: Hidde Beydals <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
…location in the doc

Co-authored-by: Hidde Beydals <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
…at that entails

Also add Arch collab, along with issue management and updated docs to Dev team responsibilities.

Co-authored-by: Hidde Beydals <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
One sentence per line within lists is spaced to match list indentation

Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Daniel Holbach <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Daniel Holbach <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Daniel Holbach <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
including:
- introduce "Oversight Committee". This replaces the Org team
- remove all other teams (github teams may be used at the discretion of the oversight committee)
- maintainers are simply listed in each git repo
- membership change process is simplified to say maintainers should "step down considerately"

Co-authored-by: Hidde Beydals <[email protected]>

Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Michael Bridgen <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Michael Bridgen <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Hidde Beydals <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>

Co-authored-by: Hidde Beydals <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
…hat from the processes followed

Signed-off-by: Scott Rigby <[email protected]>
Signed-off-by: Scott Rigby <[email protected]>
- Emphasize Consensus is the preferred approach
- Add fallback steps including agreeing to a vote (and why)
- Clarify differences in process between Repository Maintainers and Oversight Committee
- Change voting severity for some decisions
- Add Unanimity for some decisions

Signed-off-by: Scott Rigby <[email protected]>
…y covered now in Decision Guidelines

Signed-off-by: Scott Rigby <[email protected]>
…t about what stronger voting means

Signed-off-by: Scott Rigby <[email protected]>
… both maintainers and non-maintainers

Signed-off-by: Scott Rigby <[email protected]>
@scottrigby
Copy link
Member Author

@squaremo My only change since last approvals was 5c23de5.

You can ignore the rest of the force-push. Looks like I had missed a DCO signoff in one of the UI commits from earlier on. Had to fix that now that the DCO bot has been added in #17 (thanks @hiddeco for that!). For future ref, DCO bot gives fix instructions on the checks tab when if fails. In this case it was:

git rebase HEAD~32 --signoff
git push --force-with-lease scottrigby governance

@scottrigby scottrigby merged commit 9e62f6e into fluxcd:main Oct 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add GOVERNANCE.md
10 participants