Giter VIP home page Giter VIP logo

contributor-site's Introduction

Kubernetes Contributor Site

This repository contains the Hugo site and generator scripts for the Kubernetes Contributor site. The published website is available at https://kubernetes.dev/ (served via Netlify).

Site content

The content for the Contributor Site is sourced from multiple locations. Content managed within this repository is generated from Markdown found within the content directory. To update the site's content, make changes to the Markdown sources and submit a pull request to this repository.

Some content is externally sourced and changes to that must be made in the original location. A list of sources and their locations within the content is available below:

External sources

Running the site locally

To develop site content, you can run the site locally using Hugo in two ways:

  1. Inside a Docker container
  2. Natively (not inside a Docker container)

When you make changes to the site's content, Hugo will automatically update the site and refresh your browser window.

Using Docker

The easiest and most cross-system-compatible way to run the Contributor Site is to use Docker. To begin, create the docker image to be used with generating the site by executing make container-image.

To ensure you can view the site with externally sourced content, run make container-gen-content before previewing the site by with make container-server.

NOTE to Apple Silicon Mac Users

Before proceeding with the build steps, please ensure that you set the DOCKER_DEFAULT_PLATFORM environment variable to linux/amd64 by using the following command:

export DOCKER_DEFAULT_PLATFORM=linux/amd64

Natively

For instructions on installing and using Hugo, see the Hugo Documentation. Note that the extended version is required.

In addition to Hugo, the postcss-cli and autoprefixer JavaScript packages are required. These can be installed via the Node Package Manager (npm) from a recent version of [nodejs] with npm install -g postcss-cli autoprefixer.

The Contributor Site uses the docsy theme. It is included as a git submodule. To fetch docsy and its requirements, run the command:

git submodule update --init --recursive --depth 1

To ensure you can view the site with externally sourced content, run make gen-content before previewing the site by with make server.

NOTE to MacOS Users

The hack/gen-content.sh script requires the gnu version of base packages such as find, grep, and sed.

brew install coreutils findutils grep gnu-sed gnu-tar make readlink

You will then need to update your path to include these:

export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"

Community, discussion, contribution, and support

This project is managed by SIG Contributor Experience as a part of KEP-2225

You can reach the maintainers of this project at:

Evolution of this site:

We’re building out this site in real-time! Want to join us and help? Here’s what we have in store for next iterations:

  • Contributor guide/handbook: Feature launch date estimated January 2023
  • Developers' guide/handbook
  • Directory of Kubernetes SIGs and other community groups
  • Listing events beyond just Contributor Summits
  • Pathways to success for new Kubernetes contributors and mentoring programs
  • Refactoring the hugo code and glue code behind the site

See the Issues for tasks and projects in progress

Code of conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

contributor-site's People

Contributors

atharva-shinde avatar castrojo avatar cblecker avatar chris-short avatar debanitrkl avatar dewan-ahmed avatar fsmunoz avatar fykaa avatar gracenng avatar imnmo avatar jberkus avatar jeefy avatar k8s-ci-robot avatar lucperkins avatar mfahlandt avatar moficodes avatar mrbobbytables avatar nimbinatus avatar nitishfy avatar pacoxu avatar palnabarun avatar pymander avatar qedrakmar avatar reylejano avatar ricardoamaro avatar sergeykanzhelev avatar sftim avatar spiffxp avatar tokt avatar vishakhanihore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

contributor-site's Issues

[Accessibility] Welcome page

The text on the welcome page is difficult to read. The background image has a mix of both bright and dark sections. The text is white and is difficult to read when it is over the brighter parts of the page.

"Meet our Contributors" weird sentence

The Meet our Contributors page has this sentence:

Grab a copy of the calendar to yours from kubernetes.io/community

Something seems to be missing in that sentence.
I'm not sure what the intention was.
In addition, there's no calendar to be found at that site.

Happy to create a PR to just remove that sentence.

[content] stuff to surface for current contributors

  • api-conventions.md (source: gh issues, focus groups)
  • Test debugging docs and other general testing/ci docs (source: survey)
  • Other Devel doc links as resources - maybe list a table of contents? the devel README? (source: survey, gh issues)
  • how to contribute to docs / release notes
  • community-membership.md (source: survey)
  • About contributor experience (source: survey)
  • KEPs - what they are and where to find them (source: everyone)
    Ideal state: python peps
  • How the project is organized
  • Sig list
  • Governance (high level blurb with resource links to full details)
  • Subproject OWNERs, approvers, and reviewers
    Think about this group in the next iteration
    Rewards and recognition - tbu

Taking from this doc and setting as an issue so we can close the doc down.

Contributing footer

Each page should generate a link in the footer that takes the user to the right page in the community repo to submit fixes/edits.

Umbrella issue for broken links

Running a hosted 404 link checker or a CLI tool like linkchecker finds lots of 404's and out of date links on k/community.

We're going to need to sort out which ones are generator inflicted, and then which ones are just out of date/broken in the repo itself.

We should then come up with a plan to socialize how people can help fix/update these links. This should be tied into a new contributor ramp, these are fixes that would be useful to the community and are easy enough to onramp.

Participate in Season of Docs?

Google has recently announced the 2020 version of their Google Season of Docs (GSoD) program. CNCF has applied as an organization and is participating in the program - https://github.com/cncf/mentoring/tree/master/seasonofdocs.

According to the timeline, we have until 11 May to submit project ideas. I just wanted to get the issue created to track/start the conversation around this to check if we (contributor-site subproject) want to participate in it.

cc @mrbobbytables @castrojo @idvoretskyi @zacharysarah

[research] other contributor sites

Special thanks to @jberkus for collecting this information.

Mozilla - goodness included multiple paths for engagement including things like "follow us on twitter" which (AFAIC) are a lovely "stepping up" to contribution pathway; up-to-date events list; the "easy" interface here (https://www.mozilla.org/en-US/contribute/signup/); this page https://www.mozilla.org/en-US/firefox/channel/desktop/#beta (so friendly). The bad: this page (https://firefox-dev.tools/) is, I think, where the hardcore coders would start for instructions and it isn't as easy to find
Fedora -- they loved this! For a while it was impossible to find, but now it's linked nicely from the main getfedora page (yah!)
OpenMRS has a different approach in that the have a "How to contribute" book (http://devmanual.openmrs.org/en/) but I like it because it covers a lot of the non-dev-specific things like how they work and the project history in one place (this info is avail for many projects, but it's all spread out, so it is hard to know what things you should know before you start)
Ansible Pretty dense, but we've built up a fair amount of process over the
years. Getting the right people the right info can be a challenge;
this is our best attempt, and it's pretty much ever-evolving. New draft version
Gentoo has a 'Get involved' section which itself leads to https://gentoo.org/get-involved/contribute/that explains how one can contribute to the project. Note that we don't actually have a ton of core committers but receive significant contribution on our wiki and through our proxy maintainers project and the contribution web site is meant to detail different ways folks can get involved with the project besides just writing ebuilds.
At libreoffice.org take a look at the "Improve it" menu on the top navigation bar. We've recently revamped this section of the web site, which acts as an entry point to all the various places people can engage, including the DevCentral portal https://devcentral.libreoffice.org/ and the Developers area of our wiki https://wiki.documentfoundation.org/Development
FSFE has a page at https://fsfe.org/contribute/contribute.en.html which
we have overhauled just recently. Actually we've received quite positive
feedback about it, so it might help.
also node -> https://nodejs.org/en/get-involved/contribute/

Some projects that have "contributor profile" pages. This isn't something we've discussed before; is it something we'd want to do? There is a bit of a scale problem, of course:
Drupal
Including "people mentored", which is a way to encourage mentorship
Eclipse: https://projects.eclipse.org/projects/eclipse.jdt/who
Microprofile: https://microprofile.io/contributors/
PostgreSQL: https://www.postgresql.org/community/contributors/

[docsy] External content needs restructuring

docsy has a different site layout than the previous contributor site generations. This will require restructuring the paths and titles (e.g. index.md instead of _index.md in some scenarios) of the things being ingested.

For reference, see the WIP preview.

bug: Some URLs are not being generated correctly

Relative source URLs referencing external content are not being generated correctly.

Example:
CLA link from here:
https://kubernetes-contributor.netlify.com/guide/contributor-cheatsheet/#signing-the-cla

Original:

[cla]: /CLA.md#how-do-i-sign

After being imported:

[cla]: /CLA.md#how-do-i-sign

It should be expanded to reference the full github url below:

[cla]: https://github.com/kubernetes/community/blob/master/CLA.md#how-do-i-sign

/kind bug
/priority important-soon

/assign

Events

Most of the items in the events section should not be displayed here. How can we import a calendar feature? Could we generate a calendar from sigs.yaml since thats where they display the times/dates? The problem with that is hosts for those meetings won't be able to change their times if they cancel a meeting, reschedule, etc. We would also need a way to import contributor events not sig/wg meetings like the summit and meet our contributors.

Sidebar contents are not getting include in mobile dropdown.

There need to be many minor changes and some neat upgrades on our website :

  • Including all the menu subtab in our mobile view dropdown.
  • Removing CSS overflow from every place if possible.
  • Increase the width of the menu sidebar to accommodate the phrase in a single line.

/kind design
/kind feature
/priority important-soon

display a contributors wanted dashboard

have a green-yellow-red dashboard for new and current contributors to look for other sigs/wgs to join that may be actively recruiting more. sig/wg name - status light.

Green light would be tied to having good-first-issue and/or help-wanted labels
Yellow light would be tied just help-wanted (ie - likely better for casual and other contributors with experience)
Red light would be no use of either label

[content] stuff to surface that all contributors need

Info that needs to be surfaced for everyone.

  • code of conduct,
  • link back to community site,
  • contributor meetings calendar
  • youtube feed for sig meetings, meet our contributors, public steering meetings, community meeting
  • how we communicate/ask for help

Taking from this doc and setting as an issue so we can close the doc down.

Update site to use Hugo v0.60.0+

Hugo v0.60.0 introduced a new markdown renderer called goldmark. This new renderer is much closer to native GitHub flavored markdown which should eliminate some of the idiosyncrasies that have been seen with the current BlackFriday based rendering engine.

Goldmark and several other changes in v0.60.0+ may potentially introduce some breaking changes with the current site and should be evaluated with care.

/kind feature

Add design proposals and architecture designs

Need to add:

We turned these off on the contributor site because they are just a pile of markdown files with lots of broken links, etc. We'd need for these files to have frontmatter in order to render pretty.

coc: display coc

The Code of Conduct link points directly to the code-of-conduct.md in the community repo. Is it possible to render that file in Hugo?

[content] contributor changelog & news

can we pull in all of the changes that we are proposing and those that are landing in a contributor changelog - could use k-dev for this automation? could be a 'news' section and that's one of the sections. in a news area, could also pull in the chairs/tls email, any changes that are made to sigs.yaml (new groups, chairs, etc.).

Need a release dashboard

We should help the release team by making contributor.k8s.io/release a useful place.

Currently the release team uses a bit.ly link to point people to the right place. http://bit.ly/k8s112-release-info

Ideas for things to include on this page (please include more!):

  • A banner up top "We are currently in: $STATE". Freeze, slush, etc. with a link to what each of those terms mean.
  • A clever way to integrate the important release dates and make them obvious
  • Links that show the latest development release, stable release, and older supported release version numbers, clickable to allow for driving down into release info.
  • List and contact information for each release team member for that cycle.
  • Integrate the k8s-release tag so users can see the latest announcements from the release team.
  • Shortcut links to appropriate devstats charts the team deems important.

For now, we can just make the URL autoforward to the right place on github so we can socialize it.

Netlify cacheing old content

Netlify is aggressive with their cacheing of build dependencies. This can cause the cloned community repo to not be pulled as it is already there on disk.

Proposed Solution:
When executing out of a build context, perform a fetch/pull if the repo is already found on disk.

/assign

[content] Contributor Growth

A few sections for this one:

1 - introduction to the contributor ladder and owners files with a canonical link to the definitions
(this comes up several times throughout the content strategy doc; folks don't know what membership is, how to get to the next ladder, etc.)

2 - high level summary of mentoring we offer and links to fuller descriptions

3 - known teams (release, api reviewers, etc.)

4 - embed the contributor role board?

Sidebar nav suggested changes

The sidebar navigation should have only 4-5 options and have titles changed to more umbrella like topics.

Examples:

  • committee-steering should be steering commitee and be lumped under 'Governance' along with community membership, governance, and sig governance.
  • kubernetes mentoring initiative should just be mentoring
  • keps should probably be spelled out
  • working groups and sigs are ultimately serving the same page (sigs list) so they should be combined with a title of 'special interest and working groups'
  • communication should be 'how we communicate' which is more of a call to click then communication
  • do we have to display the archive?
  • should design proposals in the contributors section go under or with keps?
  • the contributors umbrella should be titled contributor guide with the devel as an option under

Some relative reference style links are not being corrected

Some reference style links are not currently being detected by any of the sub_links regexes:

Example 1:
Reference link [Community Membership] on kubernetes/community/README.md Currently points to https://contributor.kubernetes.io/community-membership.md

Example 2:
Reference link [OWNERS] on kubernetes/community/community-membership Currently points to https://contributor.kubernetes.io/community-membership/contributors/guide/owners.md

https://github.com/kubernetes-sigs/contributor-site/blob/4e21a3ac35ee7071eee96c535f96693b834accdb/gen-site.sh#L70-L86

google calendar api key

AIs

  • Document use and outline scope of api key used for calendars
  • Request api key from gsuite account (current is personal and for testing purposes)
  • Replace API key.

/assign

[docsy] SCSS generation error

This is blocking the general development of the docsy site conversion:
There is an issue between netlify and hugo with builds throwing this error:

Error building site: TOCSS: failed to transform "scss/main.scss" (text/x-scss):
SCSS processing failed: file "stdin", line 6, col 1: File to import not found or
unreadable:  ../vendor/bootstrap/scss/bootstrap

This has temporarily been resolved by committing the generated resources directory in the WIP Preview Branch, however this should be resolved before the general docsy branch is updated for others to
work off.

Revamping the Contributor Guide Section

For the first pass as we can see on https://kubernetes-contributor.netlify.com/guide/ , We have imported the complete Community/Contributor/Guide directory. This may be a lot to digest for a new contributor who just wants to get started with his contributions. We must revamp the current Contributor Guide getting presented as on the website into much simpler and easy to navigate.
Some of the points:-

  • Mainly each contributor wants to get started with setting up the development environment & getting started with Kubernetes Workflow.
  • After which he may see our Workflow & Automation to which he may navigate to First Contribution and PR section.
  • We can have a link mentioning Additional Resources which may redirect to contributor/guide.

cc: @parispittman @mrbobbytables

[ Umbrella issue] Convert site to docsy theme

This is a large restructure of the current project. Docsy is a hugo theme and very easy to extend.

The primary kubernetes website (https://kubernetes.io) is being converted to use the same backend theme. (preview).

It is also being used by minikube for their documentation (https://minikube.sigs.k8s.io) with a few other subprojects interested in using it as well.

For the contributor site a separate docsy branch has been made.
For a WIP preview: see this PR: #122 (site preview)

These are the issues that should be resolved before the docsy branch is promoted to master and becomes the default:

[content] stuff to surface for new contributors

how to get started/what sig do I join?,

  • development.md (source: survey)
  • Contributor guide
  • Finding issues to work on (source: survey)
  • curated communication channels aimed at getting help (#pr-reviews, #meet-our-contributors, etc.)

mentoring opportunities, (source: survey, focus groups)

  • Meet our contributors
  • Gsoc
  • Outreachy
  • Contributors playground / links to the most recent recordings of new contributor workshop / links to outlines of content for ncw

Taking from this doc and setting as an issue so we can close the doc down.

Update method in which external content is ingested.

Currently, external content is brought into the contributor-site via the hack/gen-content.sh bash script. In its original inception, it was quite small and lean -- but as a bash script usually does, it has grown to be unwieldy.

It'd be far better to replace it with a more supportable (and testable) means of bringing in external content. This means rewriting it something like go or python, or finding some other means of bringing in external content.

/kind feature
cc @vishakhanihore @nimbinatus

Contributor site launch list

List of items that need to be resolved before go live. This may be updated as needed with further items as they're discovered.

  • Fix bug with kubernetes icon in top left (#131)
    The icon appears white in the netlify preview but does seem to work in local preview
  • Add release page for 1.19 to the resources category (#133)
    We had a test one configured for the 1.18 release. We should now update it for 1.19
  • Event pages need to be updated. (#134)
    Information for MoC and the community meeting is out of date.
  • Add comment on the CoC page with a link to the source of truth. (#132)
    As we have no control over the actual CoC page to add metadata etc, our own copy is needed. A note regarding that that the origin is the source of truth if it is ever out of date is needed.
  • Add contributor calendar (#136)
    We had a calendar previously under the old version of the site, however the css and other components did not work well under the new theme.
  • Finish updating contributor guide
    The contributor guide pages need to have their weights updated along with descriptions added to their metadata
  • Transfer and configure domain
    Needed to launch with the kubernetes.dev domain.

Once all components are completed we will soft launch and share the link with the ContribEx mailing list. After 1 week if there are no issues, we will go live with the full launch and announce through general comms channels.

/milestone v1.19
/priority important-soon
/help wanted

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.