| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| [settings] | ||
| ID = "cncf-contribute" | ||
|
|
||
| [build] | ||
| base = "/" | ||
| publish = "website/public/" | ||
| command = "go run mage.go Deploy" | ||
|
|
||
| [build.environment] | ||
| HUGO_VERSION = "0.79.0" | ||
| HUGO_ENV = "production" | ||
|
|
||
| [context.branch-deploy] | ||
| command = "go run mage.go DeployPreview" | ||
|
|
||
| [context.deploy-preview] | ||
| command = "go run mage.go DeployPreview" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| public/ | ||
| go.local.mod | ||
| go.sum |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,12 @@ | ||
| FROM klakegg/hugo:0.79.0-ext-alpine | ||
|
|
||
| # Cache go modules | ||
| WORKDIR /tmp/website | ||
| COPY website/go.* /tmp/website/ | ||
| RUN go mod download | ||
|
|
||
| WORKDIR /src/website | ||
| COPY . /src/ | ||
|
|
||
| # Copy the resolved go modules since hugo doesn't resolve before using | ||
| RUN cp /tmp/website/go.* /src/website/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| # Website | ||
|
|
||
| This is the website for [contribute.cncf.io]. Read our [Contributing Guide] for | ||
| details on how to edit the site and it's content. | ||
|
|
||
| [Contributing Guide]: https://contribute.cncf.io/about/contributing/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,84 @@ | ||
| /* | ||
| Extend the theme's styles here | ||
| */ | ||
|
|
||
| .external-content { | ||
| @extend .td-max-width-on-larger-screens; | ||
|
|
||
| margin-top: 5em; | ||
| margin-left: auto; | ||
| margin-right: auto; | ||
|
|
||
| h1 { | ||
| text-align: center; | ||
| } | ||
|
|
||
| > pre, > .highlight, > .lead, > h1, > h2, > ul, > ol, > p, > blockquote, > dl dd, .footnotes, > .alert { | ||
| max-width: initial; | ||
| } | ||
| } | ||
|
|
||
| #hero { | ||
| margin-top: 8em; | ||
|
|
||
| p { | ||
| font-size: 2em; | ||
| font-weight: bold; | ||
| } | ||
| a { | ||
| color: white; | ||
|
|
||
| &:hover { | ||
| color: $yellow; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| // Let us put two same color sections next to each other without extra space | ||
| .td-default main .section-group section ~ section { | ||
| padding-top: 0; | ||
| } | ||
|
|
||
| .td-default main .section-group section:first-of-type { | ||
| padding-top: 5rem; | ||
| } | ||
|
|
||
| // Default flexgrids to center their content evenly | ||
| .td-main { | ||
| .row { | ||
| justify-content: space-evenly; | ||
| } | ||
| } | ||
|
|
||
| // Fix link contrast | ||
| .td-box--primary, .td-box--secondary, .td-box--dark { | ||
| a, p > a { | ||
| color: $light; | ||
|
|
||
| &:hover{ | ||
| color: $yellow; | ||
| } | ||
| } | ||
| } | ||
|
|
||
| section .content { | ||
| flex-grow: 1 | ||
| } | ||
|
|
||
| footer { | ||
| min-height: unset; | ||
| overflow: visible; | ||
|
|
||
| .order-sm-2.text-center { | ||
| text-align: left !important; | ||
| } | ||
|
|
||
| &.py-5 { | ||
| padding-top: 1em !important; | ||
| padding-bottom: 0em !important; | ||
| } | ||
|
|
||
| .py-2 { | ||
| padding: 0 !important; | ||
| } | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,11 @@ | ||
| /* | ||
| Add styles or override variables from the theme here. | ||
| */ | ||
|
|
||
| $orange: #BA5A31; | ||
| $yellow: #f8e21d; | ||
| $light: #D3F3EE; | ||
| $secondary: $orange; | ||
| $link-hover-color: $orange |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,234 @@ | ||
| baseURL = "/" | ||
| title = "CNCF Contributors" | ||
|
|
||
| enableRobotsTXT = true | ||
|
|
||
| # Hugo allows theme composition (and inheritance). The precedence is from left to right. | ||
| theme = ["docsy"] | ||
|
|
||
| # Will give values to .Lastmod etc. | ||
| enableGitInfo = true | ||
|
|
||
| ignoreFiles = ["LICENSE"] | ||
|
|
||
| # Language settings | ||
| contentDir = "content" | ||
| defaultContentLanguage = "en" | ||
| defaultContentLanguageInSubdir = false | ||
| # Useful when translating. | ||
| enableMissingTranslationPlaceholders = true | ||
|
|
||
| disableKinds = ["taxonomy", "taxonomyTerm"] | ||
|
|
||
| # Highlighting config | ||
| pygmentsCodeFences = true | ||
| pygmentsUseClasses = false | ||
| # Use the new Chroma Go highlighter in Hugo. | ||
| pygmentsUseClassic = false | ||
| #pygmentsOptions = "linenos=table" | ||
| # See https://help.farbox.com/pygments.html | ||
| pygmentsStyle = "tango" | ||
|
|
||
| [module] | ||
| # Replacements are directly configured in go.mod | ||
|
|
||
| [[module.mounts]] | ||
| source = "content" | ||
| target = "content" | ||
|
|
||
| [[module.mounts]] | ||
| source = "../CHARTER.md" | ||
| target = "content/about/charter.md" | ||
|
|
||
| [[module.mounts]] | ||
| source = "static" | ||
| target = "static" | ||
|
|
||
| [[module.mounts]] | ||
| source = "layouts" | ||
| target = "layouts" | ||
|
|
||
| [[module.mounts]] | ||
| source = "themes/docsy/layouts/docs" | ||
| target = "layouts/about" | ||
|
|
||
| [[module.mounts]] | ||
| source = "themes/docsy/layouts/docs" | ||
| target = "layouts/contributors" | ||
|
|
||
| [[module.mounts]] | ||
| source = "themes/docsy/layouts/docs" | ||
| target = "layouts/maintainers" | ||
|
|
||
| [[module.mounts]] | ||
| source = "data" | ||
| target = "data" | ||
|
|
||
| [[module.mounts]] | ||
| source = "assets" | ||
| target = "assets" | ||
|
|
||
| [[module.mounts]] | ||
| source = "i18n" | ||
| target = "i18n" | ||
|
|
||
| [[module.mounts]] | ||
| source = "archetypes" | ||
| target = "archetypes" | ||
|
|
||
| [[module.imports]] | ||
| path = "github.com/cncf/contribute" | ||
|
|
||
| [[module.imports.mounts]] | ||
| source = "content/contributors" | ||
| target = "content/contributors/" | ||
|
|
||
| # Configure how URLs look like per section. | ||
| [permalinks] | ||
| blog = "/:section/:year/:month/:day/:slug/" | ||
|
|
||
| # Image processing configuration. | ||
| [imaging] | ||
| resampleFilter = "CatmullRom" | ||
| quality = 75 | ||
| anchor = "smart" | ||
|
|
||
| [services] | ||
| [services.googleAnalytics] | ||
| # Comment out the next line to disable GA tracking. Also disables the feature described in [params.ui.feedback]. | ||
| #id = "UA-00000000-0" | ||
|
|
||
| # Language configuration | ||
|
|
||
| [languages] | ||
| [languages.en] | ||
| title = "CNCF Contributors" | ||
| description = "Contribute to CNCF projects" | ||
| languageName = "English" | ||
| # Weight used for sorting. | ||
| weight = 1 | ||
|
|
||
| [markup] | ||
| [markup.goldmark] | ||
| [markup.goldmark.renderer] | ||
| hardWraps = false | ||
| unsafe = true | ||
| [markup.highlight] | ||
| # See a complete list of available styles at https://xyproto.github.io/splash/docs/all.html | ||
| style = "tango" | ||
| # Uncomment if you want your chosen highlight style used for code blocks without a specified language | ||
| # guessSyntax = "true" | ||
|
|
||
| # Everything below this are Site Params | ||
|
|
||
| [params] | ||
| copyright = "The CNCF Authors" | ||
|
|
||
| # First one is picked as the Twitter card image if not set on page. | ||
| # images = ["images/project-illustration.png"] | ||
|
|
||
| # Menu title if your navbar has a versions selector to access old versions of your site. | ||
| # This menu appears only if you have at least one [params.versions] set. | ||
| version_menu = "Releases" | ||
|
|
||
| # Flag used in the "version-banner" partial to decide whether to display a | ||
| # banner on every page indicating that this is an archived version of the docs. | ||
| # Set this flag to "true" if you want to display the banner. | ||
| archived_version = false | ||
|
|
||
| # The version number for the version of the docs represented in this doc set. | ||
| # Used in the "version-banner" partial to display a version number for the | ||
| # current doc set. | ||
| version = "0.0" | ||
|
|
||
| # A link to latest version of the docs. Used in the "version-banner" partial to | ||
| # point people to the main doc site. | ||
| url_latest_version = "https://example.com" | ||
|
|
||
| # Google Custom Search Engine ID. Remove or comment out to disable search. | ||
| gcs_engine_id = "011737558837375720776:fsdu1nryfng" | ||
|
|
||
| # Enable Algolia DocSearch | ||
| algolia_docsearch = false | ||
|
|
||
| # Enable Lunr.js offline search | ||
| offlineSearch = false | ||
|
|
||
| # Enable syntax highlighting and copy buttons on code blocks with Prism | ||
| prism_syntax_highlighting = false | ||
|
|
||
| # Repository configuration (URLs for in-page links to opening issues and suggesting changes) | ||
| [params.github] | ||
| repo = "https://github.com/cncf/sig-contributor-strategy" | ||
| branch = "website" | ||
| subdir = "website" | ||
|
|
||
| [params.github.contributors] | ||
| repo = "https://github.com/carolynvs/cncf-contribute" | ||
| branch = "website" | ||
|
|
||
|
|
||
| # User interface configuration | ||
| [params.ui] | ||
| # Enable to show the side bar menu in its compact state. | ||
| sidebar_menu_compact = false | ||
| # Set to true to disable breadcrumb navigation. | ||
| breadcrumb_disable = true | ||
| # Set to true to hide the sidebar search box (the top nav search box will still be displayed if search is enabled) | ||
| sidebar_search_disable = false | ||
| # Set to false if you don't want to display a logo (/assets/icons/logo.svg) in the top nav bar | ||
| navbar_logo = false | ||
| # Set to true to disable the About link in the site footer | ||
| footer_about_disable = true | ||
|
|
||
| # Adds a H2 section titled "Feedback" to the bottom of each doc. The responses are sent to Google Analytics as events. | ||
| # This feature depends on [services.googleAnalytics] and will be disabled if "services.googleAnalytics.id" is not set. | ||
| # If you want this feature, but occasionally need to remove the "Feedback" section from a single page, | ||
| # add "hide_feedback: true" to the page's front matter. | ||
| [params.ui.feedback] | ||
| enable = true | ||
| # The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful). | ||
| yes = 'Glad to hear it! Please <a href="https://github.com/cncf/sig-contributor-strategy/issues/new">tell us how we can improve</a>.' | ||
| no = 'Sorry to hear that. Please <a href="https://github.com/cncf/sig-contributor-strategy/issues/new">tell us how we can improve</a>.' | ||
|
|
||
| # Adds a reading time to the top of each doc. | ||
| # If you want this feature, but occasionally need to remove the Reading time from a single page, | ||
| # add "hide_readingtime: true" to the page's front matter | ||
| [params.ui.readingtime] | ||
| enable = false | ||
|
|
||
| [params.links] | ||
| # End user relevant links. These will show up on left side of footer and in the community page if you have one. | ||
| #[[params.links.user]] | ||
| # name = "mailing list" | ||
| # url = "https://lists.cncf.io/g/cncf-sig-contributor-strategy" | ||
| # icon = "fa fa-envelope" | ||
| # desc = "Discussion and help from your fellow users" | ||
| #[[params.links.user]] | ||
| # name ="Twitter" | ||
| # url = "https://example.org/twitter" | ||
| # icon = "fab fa-twitter" | ||
| # desc = "Follow us on Twitter to get the latest news!" | ||
| #[[params.links.user]] | ||
| # name = "Stack Overflow" | ||
| # url = "https://example.org/stack" | ||
| # icon = "fab fa-stack-overflow" | ||
| # desc = "Practical questions and curated answers" | ||
|
|
||
| # Developer relevant links. These will show up on right side of footer and in the community page if you have one. | ||
| [[params.links.developer]] | ||
| name = "GitHub" | ||
| url = "https://github.com/cncf/sig-contributor-strategy" | ||
| icon = "fab fa-github" | ||
| desc = "Development takes place here!" | ||
| [[params.links.developer]] | ||
| name = "Slack" | ||
| url = "https://cloud-native.slack.com/archives/CT6CWS1JN" | ||
| icon = "fab fa-slack" | ||
| desc = "Chat with other project developers" | ||
| [[params.links.developer]] | ||
| name = "Developer mailing list" | ||
| url = "https://lists.cncf.io/g/cncf-sig-contributor-strategy" | ||
| icon = "fa fa-envelope" | ||
| desc = "Discuss development issues around the project" | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| --- | ||
| title: "CNCF Contributors" | ||
| linkTitle: "CNCF Contributors" | ||
| --- | ||
|
|
||
| {{< blocks/cover image_anchor="top" height="full" color="orange" >}} | ||
| <div class="mx-auto" id="hero"> | ||
| <p> | ||
| <a href="/maintainers/">I want to be or am a maintainer <i class="fa fa-chevron-circle-right"></i></a> | ||
| </p> | ||
| <p> | ||
| <a href="/contributors/">I want to be or am a contributor <i class="fa fa-chevron-circle-right"></i></a> | ||
| </p> | ||
| </div> | ||
| {{< /blocks/cover >}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,137 @@ | ||
| --- | ||
| title: About SIG Contributor Strategy | ||
| linkTitle: About | ||
| type: single | ||
| layout: single | ||
| weight: 10 | ||
| menu: | ||
| main: | ||
| weight: 10 | ||
| --- | ||
|
|
||
|
|
||
| {{< blocks/cover title="About SIG Contributor Strategy" image_anchor="bottom" height="min" >}} | ||
|
|
||
|
|
||
| {{< /blocks/cover >}} | ||
|
|
||
| {{% blocks/lead color="primary" %}} | ||
|
|
||
| SIG Contributor Strategy is responsible for contributor experience, | ||
| sustainability, governance, and openness guidance to help CNCF community groups | ||
| and projects with their own contributor strategies for a healthy project. | ||
|
|
||
| We are a CNCF Special Interest Group that advises the Technical Oversight | ||
| Committee and CNCF projects on strategies related to building, scaling, and | ||
| retaining contributor communities, including governance, communications, | ||
| operations, and tools. We want to help grow flourishing, sustainable communities | ||
| with smooth journeys throughout their CNCF project lifecycle. | ||
|
|
||
| [Read our Charter](/about/charter/) | ||
|
|
||
| {{% /blocks/lead %}} | ||
|
|
||
| <div class="section-group"> | ||
| {{% blocks/lead color="dark" %}} | ||
| The mission of CNCF SIG Contributor Strategy is to collaborate on strategies | ||
| related to building, scaling, and retaining contributor communities, including | ||
| (people) governance, communications, operations, and tools. We want to help grow | ||
| flourishing, sustainable communities with smooth journeys throughout their CNCF | ||
| project lifecycle. | ||
| {{% /blocks/lead %}} | ||
|
|
||
| {{< blocks/section color="dark" >}} | ||
|
|
||
| {{% blocks/feature icon="fas fa-hands" title="Intentional Space" %}} | ||
| Host a maintainers circle omprised of those interested in growing their projects | ||
| and joining fellow maintainers in related cross project discussions. | ||
| {{% /blocks/feature %}} | ||
|
|
||
| {{% blocks/feature icon="fas fa-assistive-listening-systems" title="Listen and Advise" %}} | ||
| Create informational and training resources including guides, tutorials and | ||
| templates of best practices, trade-offs, strategies, building and participating | ||
| in scalable contributor communities. | ||
| {{% /blocks/feature %}} | ||
| {{< /blocks/section >}} | ||
|
|
||
| {{< blocks/section color="dark" >}} | ||
| {{% blocks/feature icon="fas fa-tasks" title="Evaluate and Foster" %}} | ||
| Assist the CNCF Technical Oversight Committee with assessments and due diligence | ||
| of prospective new projects by developing community graduation criteria check | ||
| points for rolling feedback and guidance. | ||
| {{% /blocks/feature %}} | ||
|
|
||
| {{% blocks/feature icon="fas fa-comments" title="Educate and Engage" %}} | ||
| Provide guidance to end users on how to engage with contributors and vice | ||
| versa. | ||
| {{% /blocks/feature %}} | ||
| </div> | ||
|
|
||
| {{< /blocks/section >}} | ||
|
|
||
| {{< blocks/section color="secondary" >}} | ||
| {{% blocks/feature icon="fa-gavel" title="Governance" url="governance/" %}} | ||
| Looking to improve your project's governance model? We've got you covered! | ||
|
|
||
| {{% /blocks/feature %}} | ||
|
|
||
|
|
||
| {{% blocks/feature icon="fas fa-heartbeat" title="Contributor Growth" url="contributor-growth/" %}} | ||
| Need more contributors? Maybe a few good maintainers? We can help you | ||
| sustainably grow your contributor base, and provide tips for doing so without | ||
| burning out. | ||
|
|
||
| {{% /blocks/feature %}} | ||
|
|
||
|
|
||
| {{% blocks/feature icon="fas fa-handshake" title="Maintainers Circle" url="maintainers-circle/" %}} | ||
| Connect with other maintainers, share best practices, commiserate and grow. | ||
|
|
||
| {{% /blocks/feature %}} | ||
|
|
||
|
|
||
| {{< /blocks/section >}} | ||
|
|
||
| {{< blocks/section color="light" >}} | ||
| {{% blocks/feature icon="fas fa-video" title="Meetings" %}} | ||
| We meet every 2nd and 3rd Thursday at 10:30am PT (USA Pacific, see your timezone [here](https://time.is/compare/1030AM_in_PT)): | ||
|
|
||
| <div class="text-left"> | ||
|
|
||
| - Calendar invites are sent to the [mailing list]. Once you join, you won't | ||
| automatically have the invite on your calendar. You can get it from a [past | ||
| message here](https://lists.cncf.io/g/cncf-sig-contributor-strategy/message/1) | ||
| - [Meeting minutes and agenda](https://bit.ly/cncf-contribstrat-agenda) | ||
| - Meeting Link: [zoom.us/my/cncfsigcontributorstrategy](https://zoom.us/my/cncfsigcontributorstrategy) | ||
|
|
||
| </div> | ||
|
|
||
| [mailing list]: https://lists.cncf.io/g/cncf-sig-contributor-strategy | ||
| {{% /blocks/feature %}} | ||
|
|
||
| {{% blocks/feature icon="fas fa-envelope" title="Mailing List" | ||
| url="https://lists.cncf.io/g/cncf-sig-contributor-strategy" url_text="Sign Up" %}} | ||
| Keep up-to-date on new templates, advisory guides, and what we are planning next. | ||
| {{% /blocks/feature %}} | ||
|
|
||
| {{< /blocks/section >}} | ||
|
|
||
| {{< blocks/section color="primary" >}} | ||
|
|
||
| ## Leadership | ||
|
|
||
| - Paris Pittman ([@parispittman](https://github.com/parispittman)), Google | ||
| - Josh Berkus ([@jberkus](https://github.com/jberkus)), Red Hat | ||
| - Stephen Augustus ([@justaugustus](https://github.com/justaugustus)), VMware | ||
|
|
||
| {{< /blocks/section >}} | ||
|
|
||
| {{< blocks/section color="secondary" >}} | ||
|
|
||
| - [Governance](governance/) | ||
| - [Contributor Growth](contributor-growth/) | ||
| - [Maintainer's Circle](maintainers-circle/) | ||
|
|
||
| ## Working Groups | ||
|
|
||
| {{< /blocks/section >}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,140 @@ | ||
| --- | ||
| title: "Contributing Guide" | ||
| description: > | ||
| How to contribute to our website | ||
| --- | ||
|
|
||
| We use [Hugo](https://gohugo.io/) to format and generate our website, the | ||
| [Docsy](https://github.com/google/docsy) theme for styling and site structure, | ||
| and [Netlify](https://www.netlify.com/) to manage the deployment of the site. | ||
| Hugo is an open-source static site generator that provides us with templates, | ||
| content organisation in a standard directory structure, and a website generation | ||
| engine. You write the pages in Markdown (or HTML if you want), and Hugo wraps | ||
| them up into a website. | ||
|
|
||
| All submissions, including submissions by project members, require review. We | ||
| use GitHub pull requests for this purpose. Consult | ||
| [GitHub Help](https://help.github.com/articles/about-pull-requests/) for more | ||
| information on using pull requests. | ||
|
|
||
| ## Prerequisites | ||
|
|
||
| * [Go] 1.15+ | ||
| * [Mage](https://magefile.org) (optional). You can install it by running | ||
| `go run mage.go EnsureMage` from this repository and follow any instructions | ||
| in the command output. | ||
|
|
||
| We use Mage (instead of make) to automate local development tasks. If you | ||
| do not have mage installed, you can run tasks using Go directly: `go run mage TARGET`. | ||
| With Mage installed, you can run `mage TARGET`. | ||
|
|
||
| Run `mage -l` to see the available targets: | ||
|
|
||
| ```console | ||
| $ mage -l | ||
| This is a magefile, and is a "makefile for go". See https://magefile.org/ | ||
|
|
||
| Targets: | ||
| build Compile the website to website/public. | ||
| ensureMage Ensure Mage is installed and on the PATH. | ||
| hugo Use hugo in a docker container. | ||
| preview* Run a local server to preview the website and watch for changes. | ||
| ``` | ||
|
|
||
| [Go]: https://golang.org/doc/install | ||
|
|
||
| ## Content Organization | ||
|
|
||
| The main website and the "Maintainers" section is in the [SIG | ||
| Contributor Strategy repository]. | ||
|
|
||
| 1. Clone the [SIG Contributor Strategy repository]. | ||
| 1. Follow the steps to [Preview your changes locally](#preview-your-changes-locally). | ||
| 1. Optionally clone the [cncf/contribute repository] in a directory | ||
| next to the SIG Contributor Strategy repository to edit content | ||
| in the "Contributors" section. | ||
|
|
||
| For example, if you have cloned the Contributor Strategy repo to | ||
| `~/src/sig-contributor-strategy`, clone the CNCF Contribute repo to | ||
| `~/src/contribute`. | ||
|
|
||
| If you need to clone the CNCF Contribute repository elsewhere, set an environment | ||
| variable named `CONTRIBUTE_REPO` to the path where it is cloned. For example, | ||
| `export CONTRIBUTE_REPO=../cncf-contribute`. | ||
|
|
||
| ## Quick start with Netlify | ||
|
|
||
| Here's a quick guide to updating the docs. It assumes you're familiar with the | ||
| GitHub workflow, and you're happy to use the automated preview of your doc | ||
| updates: | ||
|
|
||
| 1. Fork the [SIG Contributor Strategy repository] on GitHub. | ||
| 1. Make your changes and send a pull request (PR). | ||
| 1. If you're not yet ready for a review, add "WIP" to the PR name or create a | ||
| Draft Pull Request to indicate it's a work in progress. | ||
|
|
||
| If you are creating content that isn't ready to be published to the site, set | ||
| `draft: true` in the page's frontmatter. This allows you to start a page and | ||
| collaborate on it with others after your pull request is merged, without having | ||
| it go live on the real website. Drafts are not visible on the Netlify | ||
| preview. | ||
|
|
||
| 1. Wait for the automated PR workflow to do some checks. When it's ready, | ||
| you should see a comment like this: **deploy/netlify — Deploy preview ready!** | ||
| 1. Click **Details** to the right of "Deploy preview ready" to see a preview | ||
| of your updates. | ||
| 1. Continue updating your doc and pushing your changes until you're happy with | ||
| the content. | ||
| 1. When you're ready for a review, add a comment to the PR, and remove any | ||
| "WIP" markers. | ||
|
|
||
| ## Update a single page | ||
|
|
||
| If you've just spotted something you'd like to change while using the docs, | ||
| Docsy has a shortcut for you: | ||
|
|
||
| 1. Click **Edit this page** in the top right hand corner of the page. | ||
|
|
||
| 1. If you don't already have an up to date fork of the project repo, you are | ||
| prompted to get one - click **Fork this repository and propose changes** or | ||
| **Update your Fork** to get an up to date version of the project to edit. The | ||
| appropriate page in your fork is displayed in edit mode. | ||
|
|
||
| 1. Follow the rest of the [Quick start with Netlify](#quick-start-with-netlify) | ||
| process above to make, preview, and propose your changes. | ||
|
|
||
| ## Preview your changes locally | ||
|
|
||
| If you want to run a Docker container to preview your changes as you work: | ||
|
|
||
| 1. [Install Docker](https://docs.docker.com/get-docker/) and [Go]. | ||
| 1. Fork the [SIG Contributor Strategy repository] into your own project, then | ||
| create a local copy using `git clone`. | ||
| 1. Run `mage preview` to preview the site. When the site is ready, it will open | ||
| your web browser to http://localhost:1313/. Now that you're serving your site | ||
| locally, Hugo will watch for changes to the content and automatically refresh | ||
| your site. | ||
| 1. Continue with the usual GitHub workflow to edit files, commit them, push the | ||
| changes up to your fork, and create a pull request. | ||
|
|
||
| If you need to see the Hugo output, run `mage logs`. | ||
|
|
||
| ## Creating an issue | ||
|
|
||
| If you've found a problem in the docs, but you're not sure how to fix it | ||
| yourself, please create an issue in the [SIG Contributor Strategy repository]. | ||
| You can also create an issue about a specific page by clicking the **Create | ||
| Issue** button in the top right hand corner of the page. | ||
|
|
||
| ## Useful resources | ||
|
|
||
| * [Docsy user guide](https://www.docsy.dev/docs/): All about Docsy, including | ||
| how it manages navigation, look and feel, and multi-language support. | ||
|
|
||
| * [Hugo documentation](https://gohugo.io/documentation/): Comprehensive reference for Hugo. | ||
|
|
||
| * [Github Hello World!](https://guides.github.com/activities/hello-world/): A | ||
| basic introduction to GitHub concepts and workflow. | ||
|
|
||
| [SIG Contributor Strategy repository]: https://github.com/cncf/sig-contributor-strategy | ||
| [cncf/contribute repository]: https://github.com/cncf/contribute |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,3 @@ | ||
| --- | ||
| title: Working Groups | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| --- | ||
| title: Contributor Growth Working Group | ||
| linkTitle: Contributor Growth | ||
| type: single | ||
| url: /about/contributor-growth/ | ||
| --- | ||
|
|
||
|
|
||
| {{% blocks/lead color="primary" %}} | ||
| # Contributor Growth Working Group | ||
|
|
||
| We are interested in assisting CNCF projects with sustainably growing their | ||
| contributor base. | ||
|
|
||
| {{% /blocks/lead %}} | ||
|
|
||
| {{% blocks/section color="white" %}} | ||
|
|
||
| <div class="content"> | ||
|
|
||
| Meetings take place every 1st and 3rd Tuesday at 2pm PT. (USA Pacific, see your timezone [here](https://time.is/compare/200PM_in_PT)): | ||
|
|
||
| * [Zoom](https://zoom.us/my/cncfsigcontributorstrategy?pwd=TnI0WU9Eb2I1RlRWdkl1R0k1WkZXUT09) passcode: `77777` | ||
| * [Meeting Minutes and Agenda](https://docs.google.com/document/d/1Kx7tZv5wTXQ7uRKxn5d9d2wLsI3Q3Q51A0i06nLvtdI/edit) | ||
|
|
||
| Discussion happens on the [mailing list] or on #sig-contributor-strategy on [Slack]. | ||
|
|
||
| [mailing list]: https://lists.cncf.io/g/cncf-sig-contributor-strategy | ||
| [Slack]: https://slack.cncf.io/ | ||
|
|
||
| {{% /blocks/section %}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,31 @@ | ||
| --- | ||
| title: Governance Working Group | ||
| linkTitle: Governance | ||
| type: single | ||
| url: /about/governance/ | ||
| --- | ||
|
|
||
|
|
||
| {{% blocks/lead color="primary" %}} | ||
| # Governance Working Group | ||
|
|
||
| We aim to assist all CNCF projects with implementing good open source governance | ||
| practices. | ||
|
|
||
| {{% /blocks/lead %}} | ||
|
|
||
| {{% blocks/section color="white" %}} | ||
|
|
||
| <div class="content"> | ||
|
|
||
| Meetings take place every 1st and 3rd Tuesday at 2pm PT. (USA Pacific, see your timezone [here](https://time.is/compare/1030AM_in_PT)): | ||
|
|
||
| * [Zoom](https://zoom.us/my/cncfsigcontributorstrategy?pwd=TnI0WU9Eb2I1RlRWdkl1R0k1WkZXUT09) passcode: `77777` | ||
| * [Meeting Minutes and Agenda](https://docs.google.com/document/d/1P9tQgCM6OwDHd1F8UnWuauL4KDVTMTp49_n64_w8nrs/edit) | ||
|
|
||
| Discussion happens on the [mailing list] or on #sig-contributor-strategy on [Slack]. | ||
|
|
||
| [mailing list]: https://lists.cncf.io/g/cncf-sig-contributor-strategy | ||
| [Slack]: https://slack.cncf.io/ | ||
|
|
||
| {{% /blocks/section %}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,141 @@ | ||
| --- | ||
| title: "Maintainers Circle Working Group" | ||
| linkTitle: "Maintainers Circle" | ||
| type: single | ||
| url: /about/maintainers-circle | ||
| --- | ||
|
|
||
| {{% blocks/lead color="primary" %}} | ||
| # Maintainers Circle | ||
|
|
||
| Connect with other maintainers, share best practices, commiserate and grow. | ||
|
|
||
| {{% /blocks/lead %}} | ||
|
|
||
| {{% blocks/section color="dark" %}} | ||
|
|
||
| Once a month, we welcome you to a maintainers circle: a peer group that will | ||
| meet with scheduled topics, ample discussion, and networking time for fellow | ||
| reviewers, approvers, maintainers, and other core leaders of CNCF projects. This | ||
| is a time for you to stay connected, learn from and with each other, and discuss | ||
| topics that are close to you. We'll have a 100 person capacity for each event | ||
| and depending on demand, may re-run the session. The capacity is set to make | ||
| sure everyone that wants an interactive experience vs a lecture can have one. | ||
|
|
||
| The only contract of the members of each circle is to abide by the CNCF Code of | ||
| Conduct, be kind, open as you'd like, and committed to hearing others out. | ||
| Everyone will have a chance to participate in whatever activity is set forth in | ||
| that meeting. | ||
|
|
||
| {{% /blocks/section %}} | ||
|
|
||
| {{% blocks/section color="secondary" %}} | ||
|
|
||
| # Goals | ||
|
|
||
| - Collaborate on strategic issues; tackling size:L OSS challenges together | ||
| - Listen (to build better programs, relationships, and sustainability efforts) | ||
| - Share best practices | ||
| - Participate in peer coaching and seek guidance | ||
| - Highlight successes | ||
|
|
||
| {{% /blocks/section %}} | ||
|
|
||
| {{% blocks/section color="white" %}} | ||
| # Who is a maintainer? | ||
|
|
||
| <div class="text-left"> | ||
| There are a lot of meanings within the community. A maintainer is anyone | ||
| recognized as a maintainer or in a core role of a CNCF project by that project's | ||
| standards and governance. You can maintain code, docs, policy and more, but you | ||
| are making decisions. | ||
|
|
||
| Relevant CNCF project examples: | ||
| - [containerd](https://github.com/containerd/project/blob/master/GOVERNANCE.md#maintainership) | ||
| lists maintainers and code reviewers as key role | ||
| - [Prometheus](https://github.com/prometheus/prometheus/blob/master/MAINTAINERS.md) | ||
| lists maintainers in a MAINTAINERS.md file | ||
| - [Kubernetes](https://github.com/kubernetes/community/blob/master/community-membership.md) | ||
| doesn't use the word maintainer but uses an OWNERs file method for ownership by | ||
| listing reviewers and approvers | ||
|
|
||
| We recognize the term does not apply across the board perfectly. Maintainers | ||
| is an umbrella succinct term that covers many of your roles and inclusivity. | ||
|
|
||
| Important note: CNCF has a pool of listed maintainers for each project that vote | ||
| on behalf of their project in TOC elections. Some projects have more maintainer | ||
| roles than this and the Circle welcomes all decision makers. | ||
| </div> | ||
|
|
||
| {{% /blocks/section %}} | ||
|
|
||
| {{< blocks/section color="primary" >}} | ||
|
|
||
| {{% blocks/feature title="Meetings" icon="fas fa-video" %}} | ||
|
|
||
| <div class="text-left"> | ||
|
|
||
| Every 3 weeks on: | ||
| Thursdays, 10:30am PT / 06:30pm GMT [Your timezone here](https://time.is/compare/1030AM_17_Dec_2020_in_PT) | ||
|
|
||
| *currently displays as sig-contributor-strategy meeting on [CNCF calendar](https://www.cncf.io/calendar/) but will be repurposed for this. | ||
| </div> | ||
| {{% /blocks/feature %}} | ||
|
|
||
| {{% blocks/feature title="Slack" icon="fab fa-slack" %}} | ||
| [#maintainers-circle](https://cloud-native.slack.com/archives/C014YQ8CDCG) on [CNCF Slack](https://slack.cncf.io) | ||
| {{% /blocks/feature %}} | ||
|
|
||
| {{< /blocks/section >}} | ||
|
|
||
| {{% blocks/section color="secondary" %}} | ||
|
|
||
| # Schedule | ||
|
|
||
| <div class="text-left"> | ||
|
|
||
| December 17, 2020 | ||
| Thursday, 10:30am PT / 06:30pm GMT [Your timezone here](https://time.is/compare/1030AM_17_Dec_2020_in_PT) | ||
|
|
||
| **Registration** is an emoji reaction to the invite on the announcement thread in | ||
| #maintainer-circle | ||
|
|
||
| **First half + breakouts:** | ||
| In 2017, Dorothy Howard spoke at SciPy on the research and effects of burnout on | ||
| FOSS maintainers. She follows up with us on what’s happened since conducting | ||
| new and ongoing qualitative research and interviews with maintainers on | ||
| burnout, mental health, and software sustainability sponsored by the Ford/Sloan | ||
| Foundations and the NSF. After a 20minute talk, Dorothy will seed the audience | ||
| questions about burnout as you break out into small breakout rooms with your | ||
| fellow maintainers in a 15minute session. | ||
|
|
||
| **Second half + breakouts:** | ||
| We'll have a fireside chat with Aaron Crickenberger, Emeritus Kubernetes | ||
| Steering Committee Member, co-chair of SIG-Testing, and subproject owner in | ||
| multiple SIGs, about his experiences with burnout. It's been a 5 year journey | ||
| with Kubernetes; we'll hear some of the realistic and honest ways Aaron tackles | ||
| time management and self care while steering huge ships. In this 15 minute | ||
| session, you can ask questions live to Aaron as a group, and then breakout | ||
| into final small groups of the session. | ||
|
|
||
| </div> | ||
| {{% /blocks/section %}} | ||
|
|
||
| {{% blocks/section color="white" %}} | ||
| ## General Circle Structure | ||
|
|
||
| <div class="text-left"> | ||
|
|
||
| * :35 - meeting kicks off with a welcome, announcements, and how breakouts work | ||
| * :40-:00 - first speaker (academic, expert, other OSS maintainer) | ||
| * :00-:20 - first breakout session (max: 10 rooms, 20 people in each) with a round of short intros [name/project name] before discussion | ||
| * :25-:45 - second speaker (most likely a CNCF maintainer) | ||
| * :45-:05 - second breakout session | ||
| * :10-:15 - wrap up | ||
|
|
||
| To suggest future topics, file an issue in our repo. If you have something to | ||
| share with the group, reach out to us on slack directly | ||
| [#sig-contributor-strategy](https://cloud-native.slack.com/archives/CT6CWS1JN). | ||
|
|
||
| </div> | ||
| {{% /blocks/section %}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
|
|
||
| --- | ||
| title: "Project Guidance" | ||
| linkTitle: "Maintainers" | ||
| section: about | ||
| weight: 30 | ||
| menu: | ||
| main: | ||
| weight: 30 | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,8 @@ | ||
| --- | ||
| title: "Community" | ||
| linkTitle: "Community" | ||
| weight: 2 | ||
| description: > | ||
| Tips for managing your project's community | ||
| --- | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| --- | ||
| title: "GitHub" | ||
| linkTitle: "GitHub" | ||
| weight: 1 | ||
| description: > | ||
| Tips for managing your GitHub repositories | ||
| --- |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,217 @@ | ||
| --- | ||
| title: "Issue Labels for New Contributors" | ||
| linkTitle: "Issue Labels" | ||
| date: 2020-09-29 | ||
| description: > | ||
| Curate your issues and apply labels that attract new contributors. | ||
| --- | ||
|
|
||
| A great way to encourage new contributors is to curate issues that are suitable | ||
| for people new to the project and make them easy to find. There are two common | ||
| labels that people search for when looking to contribute to a new project: | ||
| **good first issue** and **help wanted**. | ||
|
|
||
| This document provides guidance for identifying issues for new contributors, | ||
| adding context to the issue so someone new has enough information to implement | ||
| it without asking a bunch of questions, and how to reduce the overhead of | ||
| maintaining a set of issues for new contributors. | ||
|
|
||
| * [Labels](#labels) | ||
| * [Help Wanted](#help-wanted) | ||
| * [Good First Issue](#good-first-issue) | ||
| * [Grooming Issues](#grooming-issues) | ||
| * [Candidate Issues](#candidate-issues) | ||
| * [Reviewing Pull Requests from New Contributors](#reviewing-pull-requests-from-new-contributors) | ||
|
|
||
| # Labels | ||
|
|
||
| We encourage you to stick with the well-defined labels "good first issue" and | ||
| "help wanted". People unfamiliar with your project look for these labels, and | ||
| efforts to increase participation from new contributors, such as [First Timers | ||
| Only] or [Open Sauced], rely on standard labels to identity issues. | ||
|
|
||
| ## Help Wanted | ||
|
|
||
| These issues should be suitable for someone who has either contributed to the project | ||
| before, or an experienced developer who is comfortable navigating a new codebase. Items | ||
| marked with the "help wanted" label should: | ||
|
|
||
| - **Low Barrier to Entry** | ||
|
|
||
| It should be tractable for new contributors. Documentation on how that type of | ||
| change should be made should already exist. | ||
|
|
||
| - **Clear Task** | ||
|
|
||
| The task is agreed upon and does not require further discussions in the | ||
| community. Call out if that area of code is untested and requires new | ||
| fixtures. When possible point to existing code that serves as an example | ||
| of how to implement the change. | ||
|
|
||
| API / CLI behavior is decided and included in the original issue, for example: | ||
| _"The new command syntax is `svcat unbind NAME [--orphan] [--timeout 5m]`"_, | ||
| with expected input validations, output and error handling defined. | ||
|
|
||
| - **Medium to Low Priority** | ||
|
|
||
| Select issues that aren't in key pathways, or must be done quickly. You don't | ||
| wan to put effort into grooming these issues, then end up having to do it | ||
| yourself because it must be done soon. | ||
|
|
||
| - **Up-To-Date** | ||
|
|
||
| Regularly review these issues and make sure that they haven't already been | ||
| implemented, aren't necesesary anymore, that the suggested solution or design | ||
| is still appropriate, etc. | ||
|
|
||
| ## Good First Issue | ||
|
|
||
| Items marked with the "good first issue" label are intended for **first-time | ||
| contributors**. After a contributor has completed 1-2 "good first issue" items, | ||
| they should be ready to move on to "help wanted" items, saving remaining "good | ||
| first issue" items for other new contributors. | ||
|
|
||
| Reviewers should keep an eye out for pull requests for these issues and shepherd | ||
| them through the pull request process. Let them know what the next step is, and | ||
| _proactively_ call out when there is a problem and how to fix it. This makes new | ||
| contributors feel welcome, valued, and assures them that they will have an extra | ||
| level of help with their first contribution. | ||
|
|
||
| ❗️ **New contributors should not be left to find a reviewer, ping for reviews or | ||
| bump, understand why the CLA/DCO check failed, identify that their build failed | ||
| due to a flake, etc.** | ||
|
|
||
| A good test for "good first issue" is that a new contributor should be able to | ||
| claim and address the issue, submitting an acceptable pull request without | ||
| requiring that they ask for help. Part of an issue's suitability comes from the | ||
| nature of the issue itself, but the rest is determined by how much context you | ||
| provide in the issue so that the new contributor can be successful. | ||
|
|
||
| Items marked with the "good first issue" label meet all the criteria of "help | ||
| wanted" and also: | ||
|
|
||
| - **No Barrier to Entry** | ||
|
|
||
| The task is something that a new contributor can tackle without advanced | ||
| setup, or domain knowledge. | ||
|
|
||
| - **Provides Context** | ||
|
|
||
| If background knowledge is required, this should be explicitly mentioned and a | ||
| list of suggested readings included. | ||
|
|
||
| - **Solution Explained** | ||
|
|
||
| The recommended solution is clearly described in the issue. | ||
|
|
||
| - **Gives Examples** | ||
|
|
||
| Link to examples of similar implementations so new contributors have a | ||
| reference guide for their changes. | ||
|
|
||
| - **Identifies Relevant Code** | ||
|
|
||
| The relevant code and tests to be changed are linked in the issue. | ||
|
|
||
| - **Ready to Test** | ||
|
|
||
| There are existing tests that can be modified, or existing test cases suitable | ||
| for copying. If the area of code doesn’t have tests, before labeling the | ||
| issue, add a test fixture. This prep often makes a great help wanted task! | ||
|
|
||
|
|
||
| # Grooming Issues | ||
|
|
||
| Below are explanations of what to look for when grooming your issue queue. | ||
| Usually issues have just enough information to make sense for another maintainer | ||
| or someone familiar with the project to understand the desired change. What's | ||
| usually lacking is: | ||
|
|
||
| * Clearly explain to someone not involved with the project the desired change. | ||
| If it is a new CLI command, an example of the command, its output and how it | ||
| should validate input and handle errors would be very helpful. | ||
|
|
||
| * Where is the code that should be changed? | ||
|
|
||
| * Is there existing code or tests that can be used as an example? | ||
|
|
||
| * Links to documenation in the development.md or contributing.md file explaining | ||
| how to make the change. For example, if the change requires modifying the | ||
| website, it would really help to link to how to preview it locally. | ||
|
|
||
| * Relevant links to other issues, documenation for related features or concepts. | ||
|
|
||
| Not every issue requires that level of grooming. Honestly, by the time I write | ||
| that out for a simple issue I could have implemented it myself. However the | ||
| point isn't to have the maintainers implement all the issues that can be quickly | ||
| articulated; it is to assist a new contributor in becoming familiar with your | ||
| project and provide them with a positive experience so they are willing to | ||
| contribute again. | ||
|
|
||
| ## Candidate Issues | ||
|
|
||
| Do not apply the label to an issue without first editing it to add context. | ||
| Since it takes time to prepare an issue, we suggest creating one more label that | ||
| indicates that the item is a good candidate for new contributors. The label can | ||
| be named whatever makes sense to other maintainers, for example "regroom" or | ||
| "new contrib candidate". | ||
|
|
||
| Create an issue in the moment and apply that label to indicate that with extra | ||
| information, it can be turned into a "good first issue" or "help wanted". Then | ||
| at regular intervals filter your issues by that label and update them. This is | ||
| also really helpful when someone asks for a good first issue and you don't have | ||
| any at the moment, you can quickly identify a candidate and make one for them. | ||
|
|
||
| # Reviewing Pull Requests from New Contributors | ||
|
|
||
| We encourage our more experienced members to help new contributors. This helps | ||
| grow and maintain a kind, inclusive community and eventually should increase | ||
| your contributor base. | ||
|
|
||
| The following suggestions go a long way toward preventing "drive-by" pull | ||
| requests, and ensure that our investment in new contributors is rewarded by them | ||
| coming back and becoming regulars. | ||
|
|
||
| Provide extra assistance during reviews on `good first issue` pull requests: | ||
| - Answer questions and identify useful docs. | ||
|
|
||
| - Offer advice such as how to reproduce the issue on a local dev environment, | ||
| or how to take advantage of helper functions and libraries that they may | ||
| not be aware of. | ||
|
|
||
| - Help new contributors learn enough about the project, setting up their | ||
| environment, running tests, and navigating this area of the code so that they | ||
| can tackle a related `help wanted` issue next time. | ||
|
|
||
| If you make someone feel like a part of our community, that it's safe to ask | ||
| questions, that people will let them know the rules/norms, that their | ||
| contributions are helpful and appreciated... they will stick around! 🌈 | ||
|
|
||
| - Encourage new contributors to seek help on the appropriate slack channels, | ||
| introduce them, and include them in your conversations. | ||
|
|
||
| - Invite them to your project's meetings, introduce them when they attend and | ||
| give them a chance to participate. | ||
|
|
||
| - Give credit to new contributors so that others get to know them, _"Hey, would | ||
| someone help give a second LGTM on @newperson's first PR on chocolate | ||
| bunnies?"_. Mention their work in Slack or during a meeting, thank them on | ||
| twitter, etc. | ||
|
|
||
| - Use all the emoji in your approve or lgtm comment. 💖 🚀 | ||
|
|
||
| - Acknowledge and thank them for submitting their first pull request and then | ||
| let them know that you are here to help. | ||
|
|
||
| - Suggest a related `help wanted` so that can build up experience in an area. | ||
|
|
||
| - People are more likely to continue contributing when they know what to expect, | ||
| what is an acceptable way to ask for people for a review, nudge things along | ||
| when a pull request is stalled. Demonstrate how your project works by helping | ||
| move their first pull request along. | ||
|
|
||
| - If you have time, let the contributor know that they can DM you with questions | ||
| that they aren't yet comfortable asking the wider group. | ||
|
|
||
| [First Timers Only]: https://www.firsttimersonly.com/ | ||
| [Open Sauced]: https://opensauced.pizza/ |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,38 @@ | ||
| --- | ||
| title: "Templates" | ||
| linkTitle: "Templates" | ||
| date: 2020-11-07 | ||
| description: > | ||
| Jump start your CNCF project by using our recommended templates | ||
| --- | ||
|
|
||
| We have a [project template] repository that has templates for everything your project needs | ||
| to get started and eventually join the CNCF. You can either create a new repository using the repository template or copy just the templates that you require. | ||
|
|
||
| ## Getting Started | ||
|
|
||
| 1. Click **Use this template** and create a copy of this repository. | ||
|
|
||
|  | ||
| 1. Remove **.github/settings.yml**. This is not a template and contains | ||
| configuration specific our repository. You should not keep this file. | ||
| 1. Customize every [required file](#required-files) and address each TODO item. | ||
|
|
||
| ### Customize Templates | ||
|
|
||
| Each file is a template with instructions to customize the contents for your project. | ||
| Most files use comments with TODO to call out where you need to make changes. We recommend | ||
| viewing the files in raw or text form so that you can see the comments. | ||
|
|
||
| For example in markdown files, we use `<!-- TODO: ... -->` to provide additional | ||
| guidance or indicate where action is required but you won't see those comments | ||
| when you view the markdown file in GitHub unless you view the raw text. | ||
|
|
||
| ## Required Files | ||
|
|
||
| * [LICENSE](https://github.com/cncf/project-template/blob/main/LICENSE) | ||
| * [CONTRIBUTING.md](https://github.com/cncf/project-template/blob/main/CONTRIBUTING.md) | ||
| * [README.md](https://github.com/cncf/project-template/blob/main/README.md) | ||
|
|
||
| [contrib-strat]: https://github.com/cncf/sig-contributor-strategy/blob/master/README.md | ||
| [project template]: https://github.com/cncf/project-template |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,16 @@ | ||
| --- | ||
| title: "Governance" | ||
| linkTitle: "Governance" | ||
| weight: 4 | ||
| description: > | ||
| Define an open governance model | ||
| --- | ||
|
|
||
| This directory contains a collection of documents assembled by the Governance | ||
| subproject as advice and detailed information about project governance for CNCF | ||
| project leaders and managers. Primarily, these documents are intended to answer | ||
| "How do I implement the governance requirements specified for a Graduated | ||
| project." | ||
|
|
||
| There will also be an assortment of other "good governance advice" documents for | ||
| projects just willing to improve things in general. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| --- | ||
| title: "Checklist for Project Paperwork" | ||
| linkTitle: "Paperwork Checklist" | ||
| date: 2020-10-21 | ||
| weight: 20 | ||
| --- | ||
|
|
||
| This is a condensed, outline-format checklist of the paperwork requirements to reach the various | ||
| [CNCF Graduation Levels](https://github.com/cncf/toc/blob/master/process/graduation_criteria.adoc). | ||
| It does not substitute for the full documentation or full requirements, but is a useful quick | ||
| reference if your project is planning to join the CNCF or graduate levels. | ||
|
|
||
| ## Entering Sandbox | ||
|
|
||
| * Requirements: | ||
| * [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md) | ||
| * [Template](https://github.com/cncf/project-template/blob/master/CODE_OF_CONDUCT.md) | ||
| * Decide if COC enforcement will be handled by the project or by the CNCF | ||
| * CNCF is a good option for young/small projects. They will provide contact. | ||
| * If handling it yourself: decide who are the contacts and how to deal with a maintainer being reported, or a contact being reported. Need more than one contact. | ||
| * CNCF can provide training in COC report handing, on request by a project | ||
| * If the COC enforcement body is your maintainers, then you need to have a policy to escalate to CNCF if the report is against a maintainer. | ||
| * Adhere to [CNCF IP Policy](https://github.com/cncf/foundation/blob/master/charter.md#11-ip-policy) | ||
| * CONTRIBUTING.md containing basic “how to contribute” ([Harbor example](https://github.com/goharbor/harbor/blob/master/CONTRIBUTING.md)) | ||
| * [Template](https://github.com/cncf/project-template/blob/master/CONTRIBUTING.md) | ||
| * Light project roadmap, at least an easily findable list of TODO items or issues | ||
| * LICENSE | ||
| * [Template](https://github.com/cncf/project-template/blob/master/LICENSE) | ||
| * You need to edit "Copyright [yyyy] [name of copyright owner]". | ||
| * Replace [yyyy] with the current year. | ||
| * Replace [name of copyright owner] with "The PROJECT Authors", e.g. "The Kubernetes Authors" or "The Helm Authors". | ||
| * CNCF strongly [recommends](https://www.cncf.io/blog/2017/02/01/cncf-recommends-aslv2/) Apache 2.0 | ||
| * Good to Have: | ||
| * Governance.md with details about leadership ([CoreDNS example](https://github.com/coredns/coredns/blob/master/GOVERNANCE.md)) | ||
| * OWNERS.md file ([Helm example](https://github.com/helm/helm/blob/master/OWNERS)) | ||
| * Explain what is it, how it's used, what needs to be in it and if you can reference another source of truth | ||
|
|
||
|
|
||
| ## Entering Incubation | ||
|
|
||
| * Additional Requirements: | ||
| * Governance.md showing the leaders and [how they are selected](https://github.com/cncf/sig-contributor-strategy/blob/master/governance/docs/leadership_selection.md) | ||
| * Include full election docs if there are elections | ||
| * Governance process must be employer-neutral | ||
| * File showing who the end users are | ||
| * Implies existence of end-user discussion forum | ||
| * Does not have to be 100% public at this stage, the way it does with Graduated | ||
| * If it is public, use an ADOPTERS.md file | ||
| * Clear versioning scheme ([Harbor example](https://github.com/goharbor/harbor/blob/master/RELEASES.md)) | ||
| * Implies, but does not require, a release process | ||
| * Good To Have: | ||
| * Contributor ladder process in CONTRIBUTION_LADDER.md ([Porter example](https://github.com/getporter/porter/blob/main/CONTRIBUTION_LADDER.md)) | ||
| * Project logo/trademark (CNCF helps with this) | ||
|
|
||
|
|
||
| ## Applying for Graduation | ||
|
|
||
|
|
||
|
|
||
| * Additional Requirements: | ||
| * “Committers” from at least 2 organizations. | ||
| * This is a complicated requirement. | ||
| * Requires recruitment of new contributors/reviewers from outside original project founders | ||
| * CII [Best Practices Badge](https://bestpractices.coreinfrastructure.org/) | ||
| * This requires meeting many criteria for how the project runs repositories. Requirements are extensive and may take some time to meet. | ||
| * 3rd Party Security Audit published ([Envoy example](https://github.com/envoyproxy/envoy#security-audit)) | ||
| * CNCF arranges the audits | ||
| * Explicitly defined project governance and committer process in a governance.md file with references to OWNERS.md files | ||
| * Includes contributor ladder | ||
| * Implies automation for contributor rights | ||
| * Example: [Helm maintainers](https://github.com/helm/community/blob/master/governance/governance.md), [OWNERs](https://github.com/helm/helm/blob/master/OWNERS) | ||
| * ADOPTERS.md contains a public list of project adopters ([Jaeger example](https://github.com/jaegertracing/jaeger/blob/master/ADOPTERS.md)) | ||
| * This is now public, so you need users who can be referenced | ||
|
|
||
| ## Nice To Have at Any Level | ||
|
|
||
| * Security report handling process ([CoreDNS example](https://github.com/coredns/coredns/blob/master/.github/SECURITY.md)) | ||
| * Realistically, this will end up being required for CII/Security Audit | ||
| * Documented release process ([Envoy example](https://github.com/envoyproxy/envoy/blob/master/RELEASES.md)) | ||
| * Conformance process/definition/requirement ([Kubernetes example](https://github.com/cncf/k8s-conformance)) | ||
| * As in “what is $project and what is it not” |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| --- | ||
| title: Search Results | ||
| layout: search | ||
| toc_hide: true | ||
| --- | ||
|
|
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| module github.com/cncf/sig-contributor-strategy/website | ||
|
|
||
| go 1.15 | ||
|
|
||
| require github.com/cncf/contribute main // indirect |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| # UI strings. Buttons and similar. | ||
|
|
||
| # Footer text | ||
| [footer_all_rights_reserved] | ||
| other = " | Documentation Distributed under CC-BY-4.0" |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,10 @@ | ||
| {{ $link := .Destination }} | ||
| {{ $isRemote := strings.HasPrefix $link "http" }} | ||
| {{- if not $isRemote -}} | ||
| {{ $url := urls.Parse .Destination }} | ||
| {{- if $url.Path -}} | ||
| {{ $fragment := "" }} | ||
| {{- with $url.Fragment }}{{ $fragment = printf "#%s" . }}{{ end -}} | ||
| {{- with .Page.GetPage $url.Path }}{{ $link = printf "%s%s" .RelPermalink $fragment }}{{ end }}{{ end -}} | ||
| {{- end -}} | ||
| <a href="{{ $link | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if $isRemote }} target="_blank"{{ end }}>{{ .Text | safeHTML }}</a> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| {{ define "main" }} | ||
| <div class="external-content"> | ||
| {{ with .Content }} | ||
| </div> | ||
| {{ . }} | ||
| {{ end }} | ||
| {{ end }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| {{ define "main" }} | ||
| <div class="external-content"> | ||
| {{ with .Content }} | ||
| </div> | ||
| {{ . }} | ||
| {{ end }} | ||
| {{ end }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,17 @@ | ||
| <p> | ||
| <small class="text-white"> | ||
| © {{now.Year}} The Linux Foundation. All rights reserved. The Linux | ||
| Foundation has registered trademarks and uses trademarks. <br/> | ||
| For a list of trademarks of The Linux Foundation, please see our <a | ||
| href="https://www.linuxfoundation.org/trademark-usage/">Trademark Usage</a> | ||
| page. | ||
| </small> | ||
| </p> | ||
|
|
||
| <p> | ||
| <small class="text-white"> | ||
| <a href="https://www.flickr.com/photos/28752865@N08/19452578319">"Saltburn by the Sea Yarnbombers 09-06-2015"</a> | ||
| <span> by <a href="https://www.flickr.com/photos/28752865@N08">Karen Roe</a></span> is licensed under | ||
| <a href="https://creativecommons.org/licenses/by/2.0/?ref=ccsearch&atype=html">CC BY 2.0</a>. | ||
| </small> | ||
| </p> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,36 @@ | ||
| {{ if .Path }} | ||
| {{- $path := ($.Path) -}} | ||
| {{ $pathFormatted := replace $path "\\" "/" }} | ||
| {{- $prefix := index (split $path "/") 0 -}} | ||
| {{- $github := index ($.Site.Param "github") $prefix -}} | ||
| {{ if not $github }}{{- $github = ($.Site.Param "github") -}}{{ end }} | ||
| {{ if $github }} | ||
| {{ $gh_repo := index $github "repo" }} | ||
| {{ $gh_subdir := index $github "subdir" }} | ||
| {{ $gh_project_repo := index $github "project_repo" }} | ||
| {{ $gh_branch := (default "master" (index $github "branch")) }} | ||
| {{ if $gh_repo }} | ||
| <div class="td-page-meta ml-2 pb-1 pt-2 mb-0"> | ||
| {{ $gh_repo_path := printf "%s/content/%s" $gh_branch $pathFormatted }} | ||
| {{ if $gh_subdir }} | ||
| {{ $gh_repo_path = printf "%s/%s/content/%s" $gh_branch $gh_subdir $pathFormatted }} | ||
| {{ end }} | ||
| {{ $editURL := printf "%s/edit/%s" $gh_repo $gh_repo_path }} | ||
| {{ $createURL := printf "%s/edit/%s" $gh_repo $gh_repo_path }} | ||
| {{ $issuesURL := printf "%s/issues/new?title=%s" $gh_repo (htmlEscape $.Title )}} | ||
| {{ $newPageStub := resources.Get "stubs/new-page-template.md" }} | ||
| {{ $newPageQS := querify "value" $newPageStub.Content "filename" "change-me.md" | safeURL }} | ||
| {{ $newPageURL := printf "%s/new/%s?%s" $gh_repo $gh_repo_path $newPageQS }} | ||
|
|
||
| <a href="/about/contributing">Contributing Guide</a> | ||
| <a href="{{ $editURL }}" target="_blank"><i class="fa fa-edit fa-fw"></i> {{ T "post_edit_this" }}</a> | ||
| <a href="{{ $newPageURL }}" target="_blank"><i class="fa fa-edit fa-fw"></i> {{ T "post_create_child_page" }}</a> | ||
| <a href="{{ $issuesURL }}" target="_blank"><i class="fab fa-github fa-fw"></i> {{ T "post_create_issue" }}</a> | ||
| {{ if $gh_project_repo }} | ||
| {{ $project_issueURL := printf "%s/issues/new" $gh_project_repo }} | ||
| <a href="{{ $project_issueURL }}" target="_blank"><i class="fas fa-tasks fa-fw"></i> {{ T "post_create_project_issue" }}</a> | ||
| {{ end }} | ||
| </div> | ||
| {{ end }} | ||
| {{ end }} | ||
| {{ end }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| <!doctype html> | ||
| <html lang="{{ .Site.Language.Lang }}" class="no-js"> | ||
| <head> | ||
| {{ partial "head.html" . }} | ||
| </head> | ||
| <body class="td-{{ .Kind }}"> | ||
| <header> | ||
| {{ partial "navbar.html" . }} | ||
| </header> | ||
| <div class="container-fluid td-default td-outer"> | ||
| <main role="main" class="td-main"> | ||
| {{ block "main" . }}{{ end }} | ||
| </main> | ||
| {{ partial "footer.html" . }} | ||
| </div> | ||
| {{ partialCached "scripts.html" . }} | ||
| </body> | ||
| </html> |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| {{ define "main" }} | ||
| {{ with .Content }} | ||
| {{ . }} | ||
| {{ end }} | ||
| {{ end }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| {"Target":"scss/main.min.700d4234e8175b0bd59f0e33cf3fd6efeab846098f2c52a725e89d7b41e3148a.css","MediaType":"text/css","Data":{"Integrity":"sha256-cA1CNOgXWwvVnw4zzz/W7+q4RgmPLFKnJeide0HjFIo="}} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| {"Target":"scss/main.css","MediaType":"text/css","Data":{}} |