-
Notifications
You must be signed in to change notification settings - Fork 5.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
Refining the way we communicate deprecations/wide-reaching changes to the project #5344
Comments
can this be added to the release team communication role with assist from contributor-comms cc/ @mbbroberg for amplification, promotion, and education? |
xref note to k-dev + Steering: https://groups.google.com/g/kubernetes-dev/c/B0mPMpDLVk4 |
My generalised take on the latest adventure, without attempting to police personal contributor tweeting: The people who write end-user-facing release notes (particularly for changes with action required, e.g. deprecations) should probably not be the the people who wrote the code: they carry a substantial amount of context that the average person does not have, and that is fairly likely to leak in to what they write. At the very least, some people specialising in communications or docs should probably carefully review all such notes. |
@parispittman -- Yep, I think that sounds great, with that caveat that the Release Comms subteam can be a conduit to merging the various communications streams, but the respective SIG/subproject/component area is on the hook for providing the context that should communicated. |
THIS. THIS. THIS. |
Big +1 echo to what @Katharine said.
I think so, but like @justaugustus said I think the content responsibility of the owning SIG and it's a partnership with sig-docs. To be honest (having been through a few cycles on the release team now), I think we struggle sometimes to get important things like docs and major themes in/ready sufficiently early to make sure we can communicate things correctly before they show up and hit the wild. We'll add this as a retro item for the 1.20 retro to see what we can discuss and get better for 1.21! |
I don't think we need steering sign off on this. Cc is fine :) thanks for that! |
I believe that deprecations in a release should be identified by the appropriate release team role as early as possible so that the appropriate sig can prep, review, release the communications. The timeline to release communications should be cognizant of the availability of the changelog prior to the official release date. |
As a general rule: industry standard is to communicate a minimum of 6 months out (1+ year is better) from date of deprecation to date of removal. It's considered polite to communicate a schedule as soon as the descision is made, I.e.
Which is what the console log does: the minimum is to communicate timeline and replacement if any. Standard is also to call out any deprecations in a release notes section (i.e. under major themes, a section titled Deprecations). A good idea is also either writing a blog post or having a section on the website for deprecation notices. |
@reylejano -- to refine this a little: the owning SIG should signal to the Release Team that a deprecation is happening and that we all need to help prepare comms for it. The onus SHOULD NOT be on SIG Release to sift through issues and PRs to identify something that a SIG reviewer/approver [sh|w]ould have direct context on. |
I agree, with a caveat. We tracked a couple of deprecations this time around, but the dockershim one wasn't actually in the 1.20 Enhancement Sheet. The current enhancement collection/tracking is really dependent on kubernetes/enhancements issues. The dockershim KEP actually went in as a PR w/o issue and it's easy to miss this stuff. The release team can't sift through all the PRs and stuff that go in to find these, we need to have that affirmative confirmation that something is going to be deprecated (and hence in the release) so we can connect all those dots, vs trying to connect all the dots and make sure we are covered at the end of the release. |
Just an idea - Could we leverage the Comms team as part of the release team to manage deprecation Comms for that release? They could potentially work on these announcements prior to the release date once code and docs have made it into the release. |
This time around, I specifically tracked deprecations in the tracking sheet (they that had open issues and actively participated in the enhancements process) bc I wanted to be able to highlight them to docs or comms at a glance. I think it's worth mentioning that all KEPs need issues and that non-trivial deprecations probably need a KEP (and a tracking issue/participate in the release process). Also strongly agree that it's simply not possible (or desirable) for the RT to dig thru PRs to match things up - we need authors and sigs to actively & fully participate in the release process. That said, I think we should consider having an explicit deprecation "graduation" criteria in the KEP template. We need to think about requiring what we need to effectively communicate deprecations in the KEP itself - those are equal requirements to k/k prs imo. That could include: officially announcing the intent to deprecate with help from comms, some guidance of x releases between that initial announcement and beginning the rollout, an explicit rollout calendar with all required comms milestones, etc.. (I made this up, I'm sure people have better ideas 😉 ). I think it's well within our ability to think this through and come up with a way to adequately track what we collectively need, ensure it gets done and have that reflected in the KEP (which is the durable artifact for features/deprecations anyway - why not use it?). Happy to talk about the above more and brainstorm if anyone is interested! |
I want to give my personal view: I think a guide for end-users who are not reading the KEPs, and maybe even not know what CRI is along with every depreciation, can help make it less frightening and more understandable. a guide that is very operational opinionated. |
@OmerKahani -- these resources should be helpful: |
I think we have at least two distinct target audiences for release notes: Kubernetes cluster operator and Kubernetes users. The vast majority of the changes are only really relevant for the operators. Maybe it would help to make it easier to filter out user-facing changes. The docker deprecation is not an ideal example of this, in most cases it only affects the cluster operators, except when somebody uses We're operating an internal Kubernetes-as-a-Service platform and although I (as an operator) find the official release notes pretty useful, the subset which is usually relevant to our users is maybe only about 5% of the whole release notes. |
@justaugustus I personally strongly believe that what would take a lot of fear from people is a migration guide answering the question of "How do I migrate my existing K8s cluster setup with Docker to containerd or CRI-O?". Then people would see a clear path forward. Just my $0.02. |
I totally agree with this. I sometimes get confused myself on who this document is speaking to and where the boundaries are. I think it would be useful if we can further disambiguate this in announcements. |
Following #5344 (comment), @makkes I agree and recommend opening an issue in the website repo. (I can or you can). |
@sbueringer -- it might be helpful to define terms here... Where do you draw the distinction between "cluster operator" and "user"? (Maybe naïvely) I would consider "cluster operator" ~= "user". |
Tangential to this issue, maybe a valuable exercise is defining personas? (and maybe that work already exists...) |
/sig contributor-experience release |
@justaugustus the docs team did persona development. They are defined in the glossary now. Cluster operator, platform developer, etc. unless you are looking for something else/new. https://kubernetes.io/docs/reference/glossary |
+1 to what @BenTheElder said. In addition given that these are major changes, it would make a lot of sense for the Release team (in general, & Release Comms, in specific) to have a heads-up so that the delivery can be appropriately coordinated & staged. This will be helpful if there are multiple changes going in a particular release. Release Comms lead & shadows can then liaise with EO's, sig-docs, sig-docs-blog, and sig-contribex before the feature blog freeze towards getting everyone on the same page & understanding what a good way towards putting out the word would be - staging the content out in different blog posts, covering it all in one etc. Also while sig-docs, sig-docs-blog, and sig-contribex should be in charge of reviewing, from past experience the folks closest to the change should be the ones authoring the blog/s content. This would ensure that unnecessary panic is avoided by covering all bases including any alternatives etc. |
From v1.22 retrospective: |
how about a dedicated & curated page under https://kubernetes.io/releases/ ? several levels of importance that I see: Super-wide-reaching changes (e.g. dockershim), other Critical Cluster-Breaking Stuff , etc Super-wide-reaching changes (e.g. dockershim) other Critical-Cluster Breaking Stuff other Important Deprecations coordination can be shared between release-team -> communications-team & docs-team & release-notes-team
just some ideas... |
Similar but not the same, there is an API deprecation guide on https://kubernetes.io/docs/reference/using-api/deprecation-guide/ In 1.22, the Release Team and SIG Docs members published an API and Feature Removals blog after the start of the 1.22 code freeze. |
I'm 👍 on the idea of moving (more like cloning) key release-related information into a page within https://kubernetes.io/releases/ - especially if we can focus on the really important stuff.
and more like:
|
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs. This bot triages issues and PRs according to the following rules:
You can:
Please send feedback to sig-contributor-experience at kubernetes/community. /lifecycle stale |
@jlbutler -- Have we had a chance to make improvements here? /remove-lifecycle stale |
@jlbutler Let me know how I can help here on behalf of Upstream Marketing. |
Hi all. Sorry, for the latency. Based on the discussion here, I've added tasks revolving around facilitating an optional "Deprecations and Removals" blog per cycle to the Comms handbook (PR is here if you're reading this and it's still not merged). We may want to consider something in docs as the above discussion suggests, but at least we've got something in place for every release cycle going forward, rather than ad hoc. |
Bumping this discussion as relates to other things brought up on the thread beyond the release comms team scope (a dedicated web asset for deprecations and removal, and the higher-level migration support and persona definitions). Do folks want to open these as additional issues, or continue discussion here? |
@jlbutler yeah, creating a "Create a web page with deprecations" issue makes sense. You wanna launch it? |
As we go through deprecations and infrastructure changes in the project, it might be a worthwhile exercise to assess and refine the way we communicate them.
I can think of a few recent examples that caused some panic and required additional lift from contributors to reframe or contort/extend support to accommodate:
We should consider what it means to turn down a service, piece of functionality, or kubernetes/kubernetes-adjacent system and type of impact it may have for consumers.
Without policing contributors, as maintainers of the project, we also have a responsibility to users to be careful and deliberate with our communications outside of the project, whether it be Twitter, Hacker News, etc., etc.
So how can we improve?
I think depending on the scope of a change, the following SIGs should be involved in crafting comms:
With @kubernetes/sig-contributor-experience to assist with consistent delivery.
I'm curious to hear everyone's thoughts here.
cc: @kubernetes/steering-committee
The text was updated successfully, but these errors were encountered: