Skip to content

Maintainers + Governance + Security docs #671

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

Merged
merged 9 commits into from
Oct 26, 2021
Merged

Maintainers + Governance + Security docs #671

merged 9 commits into from
Oct 26, 2021

Conversation

clux
Copy link
Member

@clux clux commented Oct 24, 2021

For some CNCF template dd in #670 - but also good things to have for a project.

These are simplified variants of linkerd's process docs in the root of https://github.com/linkerd/linkerd2 (hopefully they'll excuse us mostly using their docs almost verbatim as a starter).

Maintainer Expectations + Becoming a maintainer

For clarity here, I am not trying to force a bunch more work onto any maintainers. I'm just trying to codify how we work based on what we all kind of do, and this is a first sketch which has not been modified a lot.

I don't want this to force anyone out (in fact that's the opposite of what i want), I want this to be relaxed enough to allow for us to just do some of this stuff on the side, while taking into account the natural fluctuations of available time we have - we are all employed after all.

These sections do feel like a nice places for potential new maintainers to learn some of the extra-curricular things we do to set some reasonable expectations.

So if there are any points here you don't like, or are worded too strongly, let's discuss.

The linkerd governance + maintainers setup i started out with is pretty much the same, only changed the following:

  • removed steering committee (we are not that big)
  • removed requirement to attend meetings with steering committee (no steering + we don't do meetings)
  • added instead a vague ask to "participate in discussion of the roadmap" (however we decide to manage that)

Security Policy

Basically taken verbatim from linkerd's policy but we don't have channels, and only release on crates.io, so replaced it with the two last minors released there. Plus this allows us to piggy back RustSec Advisory DB as a communication channel.

Is this a sensible policy? It's not a complete "we don't care about backports at all", but it's also reasonable fast by only doing one extra version back. I don't think these issues should occur that often.

There are still some things we could additionally do here:

  • github issue templates, and discourage security issues that way
  • hook into the security tab (e.g. helm advisories)

Misc

There are more specific aspects of governance that I am still uncertain of (w.r.t. donating the project, project donations - which is becoming a thing - and whether to codify a core governance structure beyond just maintainers/contributors). Also how to do a reasonable roadmap (nice to at least have a place for general future-plans).

But this PR is more of the basic stuff that feels sensible regardless of these unknowns. It would give some clarity to people wanting to use us regardless of how the end result with CNCF/kubernetes ends up.

* Submit a PR modifying this file
* Obtain approvals per governance.md
* Invite maintainer to
https://github.com/orgs/kube-rs/teams/maintainers/members
Copy link
Member

Choose a reason for hiding this comment

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

I think this team should be added to cargo owners, so the members can publish/yank versions if necessary (bus factor), but with a restricted right to the crate. https://doc.rust-lang.org/cargo/reference/publishing.html#cargo-owner

We can also have a separate team (owners/core) dedicated to this purpose. Might be more future-proof if we want to increase the number of maintainers.

Copy link
Member Author

Choose a reason for hiding this comment

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

Yeah, I think there's a bit higher threshold for cargo ownership, it's makes sense for the 3 of us to have it (so I can figure that out), but not sure if it makes sense to scope the crate access (at least without rethinking the shared-version policy) as if you publish one crate you kind of need to publish all of them atm.

We could delineate with a parallel core / owners team, but maybe we could avoid the hierarchical sound here and use something like an adminstrators / release team instead, and then define special/additional maintainer tasks for these. Like; "handling publishing and verifying releases". And then maybe down the line; " handling security disclosure" (currently that's written down as: send an email to 2 maintainers). This way it's not an all or nothing setup to teams.

Copy link
Member Author

@clux clux Oct 25, 2021

Choose a reason for hiding this comment

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

I added a release team for the purpose of being tied to this access and did:

cargo owner --add github:kube-rs:release

on all crates for it:

Owner team github:kube-rs:release has been added as an owner of crate kube-core
Owner team github:kube-rs:release has been added as an owner of crate kube-derive
Owner team github:kube-rs:release has been added as an owner of crate kube-client
Owner team github:kube-rs:release has been added as an owner of crate kube-runtime
Owner team github:kube-rs:release has been added as an owner of crate kube

only added you to it atm, but will obviously add @teozkr as well if he wants to have the access.

Copy link
Member

Choose a reason for hiding this comment

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

Yeah, release team is better. https://crates.io/teams/github:kube-rs:release 🎉

Copy link
Member Author

Choose a reason for hiding this comment

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

There's a need for a minor with the native tls bugfix and teo's kube-derive feature if you want to test it out. If not, I'll release it tomorrow EU morning :-)

(if you do want to; I think it should be pretty safe to follow the release.toml process with up to date tooling - worst case that happens is that it stops half-way through without the root crate being published).

Copy link
Member

Choose a reason for hiding this comment

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

@teozkr I was able to add you to the release team if you want to test it out :-)

Copy link
Member

Choose a reason for hiding this comment

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

Sure, I'll try doing 0.63 after #677 is merged?

Copy link
Member

Choose a reason for hiding this comment

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

Yeah 👍

Copy link
Member

Choose a reason for hiding this comment

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

Ok, 0.63 should be out now.

Copy link
Member Author

Choose a reason for hiding this comment

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

Looks great. Hope the process wasn't too difficult!

@clux clux self-assigned this Oct 25, 2021
Copy link
Member

@nightkr nightkr left a comment

Choose a reason for hiding this comment

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

LGTM

Comment on lines +5 to +8
We provide security updates for the two most recent minor versions released on `crates.io`.

For example, if `0.70.1` is the most recent stable version, we will address security updates for `0.69` and later.
Once `0.71.1` is released, we will no longer provide updates for `0.69` releases.
Copy link
Member

Choose a reason for hiding this comment

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

Makes sense for now. We'll probably want to revisit this around the 1.0 release.

@clux clux merged commit 73c9148 into master Oct 26, 2021
@clux clux deleted the gov-maint branch October 26, 2021 09:31
@clux clux mentioned this pull request Oct 26, 2021
7 tasks
@clux clux added the docs unclear documentation label Nov 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
docs unclear documentation
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

3 participants