summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authork8s-ci-robot <k8s-ci-robot@users.noreply.github.com>2018-03-20 16:39:02 -0700
committerGitHub <noreply@github.com>2018-03-20 16:39:02 -0700
commite926accd78d2822b49589e511cd31a52b57c30b8 (patch)
tree69166dadd134aee2f05121076dd0752ff6596361
parent3bdb767c50f3c2c2589e18ff6883fc697da72285 (diff)
parenta9f74c87b6d634c2712c32b3379c63c459b60344 (diff)
Merge pull request #1904 from jbeda/kep-5-expansion
Add more details and a concrete proposal for KEP-5
-rw-r--r--keps/sig-contributor-experience/0005-community-site.md111
-rw-r--r--keps/sig-contributor-experience/0005-contributor-site.md153
2 files changed, 153 insertions, 111 deletions
diff --git a/keps/sig-contributor-experience/0005-community-site.md b/keps/sig-contributor-experience/0005-community-site.md
deleted file mode 100644
index 0768c0d4..00000000
--- a/keps/sig-contributor-experience/0005-community-site.md
+++ /dev/null
@@ -1,111 +0,0 @@
----
-kep-number: 5
-title: Contributor Site
-authors:
- - "@jbeda"
-owning-sig: sig-contributor-experience
-participating-sigs:
- - sig-architecture
- - sig-docs
-reviewers:
- - "@castrojo"
-approvers:
- - "@parispittman"
-editor: TBD
-creation-date: "2018-02-19"
-last-updated: "2018-03-07"
-status: provisional
----
-
-# Contributor Site
-
-## Table of Contents
-
-* [Table of Contents](#table-of-contents)
-* [Summary](#summary)
-* [Motivation](#motivation)
- * [Goals](#goals)
- * [Non-Goals](#non-goals)
-* [Proposal](#proposal)
- * [User Stories [optional]](#user-stories-optional)
- * [Story 1](#story-1)
- * [Story 2](#story-2)
- * [Implementation Details/Notes/Constraints [optional]](#implementation-detailsnotesconstraints-optional)
- * [Risks and Mitigations](#risks-and-mitigations)
-* [Graduation Criteria](#graduation-criteria)
-* [Implementation History](#implementation-history)
-* [Drawbacks [optional]](#drawbacks-optional)
-* [Alternatives [optional]](#alternatives-optional)
-
-## Summary
-
-We need a way to organize and publish information targeted at contributors.
-In order to continue to scale the Kubernetes community we need a convenient, scalable and findable way to publish information.
-
-## Motivation
-
-While the current kubernetes.io site is great for end users, it isn't often used by or aimed at project contributors.
-Instead, most contributors look at documentation in markdown files that are spread throughout a wide set of repos and orgs.
-It is difficult for users to find this documentation.
-
-Furthermore, this documentation is often duplicated and out of date.
-The fact that it isn't collected in one place and presented as a whole leads to fragmentation.
-Often times documentation will be duplicated because the authors themselves can't find the relevant docs.
-
-This site will also serve as a starting point for those that are looking to contribute.
-This site (and the contributor guide) can provide a soft introduction to the main processes and groups.
-
-
-Finally, some simple domain specific indexing could go a long way to make it easier to discover and cross link information.
-Specifically, building a site that can take advantage of the KEP metadata will both make KEPs more discoverable and encourage those in the community to publish information in a way that *can* be discovered.
-
-### Goals
-
-* Provide a new site (`community.kubernetes.io`? `contrib.kubernetes.io`?).
-* Publish information that is currently in the [community repo](https://github.com/kubernetes/community).
-* Build some simple tools to enhance discoverability within the site.
- This could include features such as automatically linking KEP and SIG names.
-* Over time, add an index of events, meetups, and other forums for those that are actively contributing to k8s.
-
-### Non-Goals
-
-* Discover and bring together information from multiple orgs/repos.
-* Create a super dynamic back end. This is most likely served best with a static site.
-* Other extended community functions like a job board or a list of vendors.
-
-## Proposal
-
-TBD.
-
-
-### Risks and Mitigations
-
-<!--
-What are the risks of this proposal and how do we mitigate.
-Think broadly.
-For example, consider both security and how this will impact the larger kubernetes ecosystem.
--->
-
-## Graduation Criteria
-
-<!--
-How will we know that this has succeeded?
-Gathering user feedback is crucial for building high quality experiences and SIGs have the important responsibility of setting milestones for stability and completeness.
-Hopefully the content previously contained in [umbrella issues][] will be tracked in the `Graduation Criteria` section.
-
-[umbrella issues]: https://github.com/kubernetes/kubernetes/issues/42752
--->
-
-## Implementation History
-
-## Drawbacks [optional]
-
-<!--
-Why should this KEP _not_ be implemented.
--->
-
-## Alternatives [optional]
-
-<!--
-Similar to the `Drawbacks` section the `Alternatives` section is used to highlight and record other possible approaches to delivering the value proposed by a KEP.
---> \ No newline at end of file
diff --git a/keps/sig-contributor-experience/0005-contributor-site.md b/keps/sig-contributor-experience/0005-contributor-site.md
new file mode 100644
index 00000000..d0b89565
--- /dev/null
+++ b/keps/sig-contributor-experience/0005-contributor-site.md
@@ -0,0 +1,153 @@
+---
+kep-number: 5
+title: Contributor Site
+authors:
+ - "@jbeda"
+owning-sig: sig-contributor-experience
+participating-sigs:
+ - sig-architecture
+ - sig-docs
+reviewers:
+ - "@castrojo"
+approvers:
+ - "@parispittman"
+editor: TBD
+creation-date: "2018-02-19"
+last-updated: "2018-03-07"
+status: provisional
+---
+
+# Contributor Site
+
+## Table of Contents
+
+* [Table of Contents](#table-of-contents)
+* [Summary](#summary)
+* [Motivation](#motivation)
+ * [Goals](#goals)
+ * [Non-Goals](#non-goals)
+* [Proposal](#proposal)
+ * [Risks and Mitigations](#risks-and-mitigations)
+* [Graduation Criteria](#graduation-criteria)
+* [Implementation History](#implementation-history)
+* [Drawbacks](#drawbacks)
+* [Alternatives](#alternatives)
+
+## Summary
+
+We need a way to organize and publish information targeted at contributors.
+In order to continue to scale the Kubernetes contributor community we need a convenient, scalable and findable way to publish information.
+
+## Motivation
+
+While the current kubernetes.io site is great for end users, it isn't often used by or aimed at project contributors.
+Instead, most contributors look at documentation in markdown files that are spread throughout a wide set of repos and orgs.
+It is difficult for users to find this documentation.
+
+Furthermore, this documentation is often duplicated and out of date.
+The fact that it isn't collected in one place and presented as a whole leads to fragmentation.
+Often times documentation will be duplicated because the authors themselves can't find the relevant docs.
+
+This site will also serve as a starting point for those that are looking to contribute.
+This site (and the contributor guide) can provide a soft introduction to the main processes and groups.
+
+
+Finally, some simple domain specific indexing could go a long way to make it easier to discover and cross link information.
+Specifically, building a site that can take advantage of the KEP metadata will both make KEPs more discoverable and encourage those in the community to publish information in a way that *can* be discovered.
+
+### Goals
+
+* A contributor community facing portal to collect information for those actively working on upstream Kubernetes.
+* An easy to remember URL. (`contrib.kubernetes.io`? `contributors.kubernetes.io`? `c.kubernetes.io`?)
+* A streamlined process to update and share this information.
+ Ownership should be delegated using the existing OWNERS mechanisms.
+* A site that will be indexed well on Google to collect markdown files from the smattering of repos that we currently have.
+ This includes information that is currently in the [community repo](https://github.com/kubernetes/community).
+* Provide a place to launch and quickly evolve the contributor handbook.
+* Build some simple tools to enhance discoverability within the site.
+ This could include features such as automatically linking KEP and SIG names.
+* Over time, add an index of events, meetups, and other forums for those that are actively contributing to k8s.
+
+### Non-Goals
+
+* Actively migrate information from multiple orgs/repos.
+ This should be a place that people in the contributor community choose to use to communicate vs. being forced.
+* Create a super dynamic back end. This is most likely served best with a static site.
+* Other extended community functions like a job board or a list of vendors.
+
+## Proposal
+
+We will build a new static site out of the [community repo](https://github.com/kubernetes/community).
+
+This site will be focused on communicating with and being a place to publish information for those that are looking to contribute to Kubernetes.
+
+We will use Hugo and netlify to build and host the site, respectively. (Details TBD)
+
+The main parts of the site that will be built out first:
+* A main landing page describing the purpose of the site.
+* A guide on how to contribute/update the site.
+* A list and index of KEPs
+* A place to start publishing and building the contributor guide.
+
+### Risks and Mitigations
+
+The main risk here is abandonment and rot.
+If the automation for updating the site breaks then someone will have to fix it.
+If the people or the skillset doesn't exist to do so then the site will get out of sync with the source and create more confusion.
+
+To mitigate this we will (a) ensure that SIG-contributor-experience is signed up to own this site moving forward and (b) keep it simple.
+By relying on off the shelf tooling with many users (Hugo and Netlify) we can ensure that there are fewer custom processes and code to break.
+The current generation scripts in the community repo haven't proven to be too much for us to handle.
+
+## Graduation Criteria
+
+This effort will have succeeded if:
+
+* The contributor site becomes the de-facto way to publish information for the community.
+* People consistently refer to the contributor site when answering questions about "how do I do X" or "what is the status of X".
+* The amount of confusion over where to find information is reduced.
+* Others in the contributor community actively look to expand the information on the contributor site and move information from islands to this site.
+
+## Implementation History
+
+## Drawbacks
+
+The biggest drawback is that this is yet another thing to keep running.
+Currently the markdown files are workable but not super discoverable.
+However, they utilize the familiar mechanisms and do not require extra effort or understanding to publish.
+
+The current mechanisms also scale across orgs and repos.
+This is a strength as the information is close to the code but also a big disadvantage as it ends up being much less discoverable.
+
+## Alternatives
+
+One alternative is to do nothing.
+However, the smattering of markdown through many repos is not scaling and is not discoverable via Google or for other members of the contributor community.
+
+The main alternative here is to build something that is integrated into the user facing kubernetes.io site.
+This is not preferred for a variety of reasons.
+
+* **Workflow.** Currently there is quite a bit of process for getting things merged into the main site.
+ That process involves approval from someone on SIG-Docs from an editorial point of view along with approval for technical accuracy.
+ The two stage approval slows down contributions and creates a much larger barrier than the current markdown based flow.
+ In addition, SIG-Docs is already stretched thin dealing with the (more important) user facing content that is their main charter.
+* **Quality standards.** The bar for the user facing site is higher than that of the contributor site.
+ Speed and openness of communication dominates for the contributor facing site.
+ Our bar here is the current pile of Markdown.
+* **Different tooling.** We may want to create specialized preprocessors as part of the contributor site build process.
+ This could include integrating our current expansion of sigs.yaml into Markdown files.
+ It may also include recognizing specific patterns (KEP-N) and creating automatic linkages.
+ Applying these to a part of a site or validating them across a larger site will slow creation of these tools.
+
+An alternative to building directly into the website repo is to build in some other repo and do some sort of import into the main website repo.
+There are serious downsides to this approach.
+
+* **No pre-commit visualization.** Netlifies capability to show a preview per PR won't work with a custom cross repo workflow.
+* **Higher latency for changes.** If the merges are batched and manually approved then there could be a significant time gap between when something is changed and when it is published.
+ This is a significant change from the current "pile of markdown in github" process.
+* **Opportunity for more complex build breaks.** If something is checked into a satellite repo it may pass all of the presubmit tests there but then fail presubmits on the parent repo.
+ This creates a situation where manual intervention is required.
+ Complicated pre-submit tests could be built for the satellite repo but those need to be maintained and debugged themselves.
+* **New tooling.** New tooling would need to be built that doesn't directly benefit the target audience.
+ This tooling will have to be documented and supported vs. using an off the shelf service like netlify.
+