diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 720c97fc98..2347735505 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -3,12 +3,8 @@ We welcome any and all contributions to Kedro, at whatever level you can manage. For example, you could: - [Join the community](#join-the-community-and-help-it-grow) -- [Troubleshoot other users' questions or get answers to your own queries](#community-qa) -- [Report a bug](#report-a-bug) -- [Propose a new feature](#propose-a-new-feature) -- [Review other contributors' PRs](#review-community-pull-requests) -- [Contribute a bug fix or a new feature](#contribute-a-fix-or-feature) -- [Contribute to the documentation](#contribute-to-the-documentation) +- [Contribute to the project](#contribute-to-the-project) +- [Join our Technical Steering Committee](#join-our-technical-steering-committee) You can also suggest anything else that you think improves the community for us all! @@ -17,38 +13,29 @@ You can also suggest anything else that you think improves the community for us The Kedro team pledges to foster and maintain a friendly community. We enforce a [Code of Conduct](./CODE_OF_CONDUCT.md) to ensure every Kedroid is welcomed and treated with respect. -## Join the community and help it grow! +## Join the community You can find the Kedro community on our [Discord server](https://discord.gg/akJDeVaxnB), which is where we share news and announcements, and general chat. You're also welcome to post links here to any articles or videos about Kedro that you create, or find, such as how-tos, showcases, demos, blog posts or tutorials. -We occasionally post on the [QuantumBlack blog](https://medium.com/quantumblack/) and we curate a [Github repo that lists content created by the Kedro community](https://github.com/kedro-org/kedro-community). +We also curate a [Github repo that lists content created by the Kedro community](https://github.com/kedro-org/kedro-community). -## Community Q&A +## Contribute to the project -We encourage you to ask and answer technical questions on [GitHub discussions](https://github.com/kedro-org/kedro/discussions). +There are quite a few ways to contribute to the project, find inspiration from the table below. -## Report a bug +|Activity|Description| +|-|-| +|Community Q&A|We encourage you to ask and answer technical questions on [GitHub discussions](https://github.com/kedro-org/kedro/discussions) or [Discord](https://discord.gg/akJDeVaxnB), but the former is often preferable since it will be picked up by search engines.| +|Report a bug|We use [GitHub issues](https://github.com/kedro-org/kedro/issues) to keep track of known bugs. We keep a close eye on them and update them when we have an internal fix in progress. Before you report a new issue, do your best to ensure your problem hasn't already been reported. If it has, just leave a comment on the existing issue, rather than create a new one.
If you have already checked the existing [GitHub issues](https://github.com/kedro-org/kedro/issues) and are still convinced that you have found odd or erroneous behaviour then please file a new one.| +|Propose a new feature|If you have new ideas for Kedro functionality then please open a [GitHub issue](https://github.com/kedro-org/kedro/issues) and describe the feature you would like to see, why you need it, and how it should work.| +|Review pull requests|Check the [Kedro repo to find open pull requests](https://github.com/kedro-org/kedro/pulls) and contribute a review!| +|Contribute a fix or feature|If you're interested in contributing fixes to code or documentation, first read our [guidelines for contributing developers](https://kedro.readthedocs.io/en/stable/14_contribution/02_developer_contributor_guidelines.html) for an explanation of how to get set up and the process you'll follow. Once you are ready to contribute, a good place to start is to take a look at the `good first issues` and `help wanted issues` on [GitHub](https://github.com/kedro-org/kedro/issues).| +|Contribute to the documentation|You can help us improve the [Kedro documentation online](https://kedro.readthedocs.io/en/stable/). Send us feedback as a [GitHub issue](https://github.com/kedro-org/kedro/issues) or start a documentation discussion on [GitHub](https://github.com/kedro-org/kedro/discussions).You are also welcome to make a raise a PR with a bug fix or addition to the documentation. First read the guide [Contribute to the Kedro documentation](https://kedro.readthedocs.io/en/stable/14_contribution/04_documentation_contributor_guidelines.html). -We use [GitHub issues](https://github.com/kedro-org/kedro/issues) to keep track of known bugs. We keep a close eye on them and update them when we have an internal fix in progress. -Before you report a new issue, do your best to ensure your problem hasn't already been reported. If it has, just leave a comment on the existing issue, rather than create a new one. If you have already checked the existing [GitHub issues](https://github.com/kedro-org/kedro/issues) and are still convinced that you have found odd or erroneous behaviour then please file a new one. +## Join our Technical Steering Committee -## Propose a new feature -If you have new ideas for Kedro functionality then please open a [GitHub issue](https://github.com/kedro-org/kedro/issues) and describe the feature you would like to see, why you need it, and how it should work. +Kedro is an incubating project in [LF AI & Data](https://lfaidata.foundation/), a sub-organisation within the Linux +Foundation that focuses on open innovation within the data and AI space. A group of maintainers, known as the Technical Steering Committee (TSC), govern the project. You can read more about the structure of our TSC in our [Technical Charter](./kedro_technical_charter.pdf). - -## Review community pull requests - -Check the [Kedro repo to find open pull requests](https://github.com/kedro-org/kedro/pulls) and contribute a review! - -## Contribute a fix or feature - -If you're interested in contributing fixes to code or documentation, first read our [guidelines for contributing developers](https://kedro.readthedocs.io/en/stable/14_contribution/02_developer_contributor_guidelines.html) for an explanation of how to get set up and the process you'll follow. - -Once you are ready to contribute, a good place to start is to take a look at the `good first issues` and `help wanted issues` on [GitHub](https://github.com/kedro-org/kedro/issues). - -## Contribute to the documentation - -You can help us improve the [Kedro documentation online](https://kedro.readthedocs.io/en/stable/). Send us feedback as a [GitHub issue](https://github.com/kedro-org/kedro/issues) or start a documentation discussion on [GitHub](https://github.com/kedro-org/kedro/discussions). - -You are also welcome to make a raise a PR with a bug fix or addition to the documentation. First read the guide [Contribute to the Kedro documentation](https://kedro.readthedocs.io/en/stable/14_contribution/04_documentation_contributor_guidelines.html). +We invite community members to join the TSC and help define the future of the Kedro project. Read the [guidance on becoming a Kedro maintainer](https://kedro.readthedocs.io/en/stable/14_contribution/technical_steering_committee.html) to understand the process of joining the TSC. diff --git a/README.md b/README.md index ac9f5c0115..5215563f02 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,7 @@ ## What is Kedro? -Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. - +Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). ## How do I install Kedro? diff --git a/RELEASE.md b/RELEASE.md index 4a66db0b70..56c5cc450f 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -13,6 +13,7 @@ * Fixed `PickleDataSet` to be copyable and hence work with the parallel runner. * Upgraded `pip-tools`, which is used by `kedro build-reqs`, to 6.5 (Python 3.7+ only). This `pip-tools` version is compatible with `pip>=21.2`, including the most recent releases of `pip`. Python 3.6 users should continue to use `pip-tools` 6.4 and `pip<22`. * Added `astro-iris` as alias for `astro-airlow-iris`, so that old tutorials can still be followed. +* Added details about [Kedro's Technical Steering Committee and governance model](https://kedro.readthedocs.io/en/0.17.7/14_contribution/technical_steering_committee.html). ## Minor breaking changes to the API diff --git a/docs/conf.py b/docs/conf.py index c7ab31bec3..c74f4f9cb4 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -206,6 +206,7 @@ "https://www.java.com/en/download/help/download_options.html", # "403 Client Error: Forbidden for url" # "anchor not found" but it's a valid selector for code examples "https://docs.delta.io/latest/delta-update.html#language-python", + "https://github.com/kedro-org/kedro/blob/main/kedro_technical_charter.pdf", ] # retry before render a link broken (fix for "too many requests") diff --git a/docs/source/01_introduction/01_introduction.md b/docs/source/01_introduction/01_introduction.md index 013c0da982..960e4269f6 100644 --- a/docs/source/01_introduction/01_introduction.md +++ b/docs/source/01_introduction/01_introduction.md @@ -1,6 +1,6 @@ # What is Kedro? -Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering best-practice and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. +Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). For the source code, take a look at the [Kedro repository on Github](https://github.com/kedro-org/kedro). diff --git a/docs/source/12_faq/01_faq.md b/docs/source/12_faq/01_faq.md index 4db6f5e331..4245a4512e 100644 --- a/docs/source/12_faq/01_faq.md +++ b/docs/source/12_faq/01_faq.md @@ -5,9 +5,7 @@ The following lists a set of questions that we have been asked about Kedro in th ## What is Kedro? -Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It - borrows concepts from software engineering and applies them to machine-learning code; applied concepts include - modularity, separation of concerns and versioning. +Kedro is an open-source Python framework for creating reproducible, maintainable and modular data science code. It borrows concepts from software engineering and applies them to machine-learning code; applied concepts include modularity, separation of concerns and versioning. Kedro is hosted by the [LF AI & Data Foundation](https://lfaidata.foundation/). For the source code, take a look at the [Kedro repository on Github](https://github.com/kedro-org/kedro). diff --git a/docs/source/14_contribution/technical_steering_committee.md b/docs/source/14_contribution/technical_steering_committee.md new file mode 100644 index 0000000000..765dc12ff3 --- /dev/null +++ b/docs/source/14_contribution/technical_steering_committee.md @@ -0,0 +1,61 @@ +# Join the Technical Steering Committee + +The term "Technical Steering Committee (TSC)" describes the group of people that maintain Kedro. The TSC has many responsibilities surrounding the project's future development; you can read about our duties in our [Technical Charter](https://github.com/kedro-org/kedro/blob/main/kedro_technical_charter.pdf). We accept new members on the TSC as this fuels Kedro's continued development. You can see [a list of Kedro's current and past maintainers](../12_faq/01_faq.md#who-maintains-kedro). + +In this section, we detail: +- [Responsibilities of a maintainer](#responsibilities-of-a-maintainer) +- [Requirements to become a maintainer](#requirements-to-become-a-maintainer) +- [Application process](#application-process) +- [Voting process](#voting-process) + +## Responsibilities of a maintainer + +### Product development + + - Be available for at least one full day per week to help with product development + - Attend community meetings to discuss the project plans and roadmap + - Be proactive about project maintenance including security, updates, CI/CD, builds and infrastructure + - Prioritise the work following the product roadmap to move the project forward + +### Community management + +- Make sure that ongoing pull requests are moving forward at the right pace or closing them +- Guide the community to use the right channel: + - [Github](https://github.com/kedro-org/kedro/) for feature requests and bug reports + - [GitHub discussions](https://github.com/kedro-org/kedro/discussions) + - [Discord](https://discord.gg/akJDeVaxnB) + +## Requirements to become a maintainer + +Just contributing does not make you a maintainer; you need to demonstrate commitment to Kedro's long-term success by +working with existing maintainers for a period of time. + +We look for commitment markers with the following: + +- Being able to write solid code and collaborate with the team and community +- Understanding the project's code base and internals +- Doing pull requests from our backlog or roadmap; maintainers need to work towards a common goal +- Learning how the team works, including processes for testing, quality standards and code review +- Evidence of already having started pull requests and code reviews under the guidance of maintainers; including asking + for help where needed +- Showing excitement about the future of Kedro +- Building a collaborative relationship with the existing team + +## Application process + +Quarterly, existing maintainers will curate a list of contributors that have shown regular activity on the project over the prior months and want to become maintainers. From this list, maintainer candidates are selected and proposed for a vote. + +Following a successful vote, candidates are added to the `kedro-developers` team on the Kedro GitHub organisation +and the `kedro-team` group on the Kedro Discord organisation. + +## Voting process + +Voting can change project maintainers and decide on the future of Kedro. The TSC leads it as voting maintainers of Kedro. The voting period is one week and is either performed on GitHub Discussions or through a pull request. + +### Other issues or proposals + +Open Github Discussions host votes on issues, proposals and changes affecting the future of Kedro, including amendments to our ways of working described in this document. These votes require **a 1/2 majority**. + +### Adding or removing maintainers + +Adding or removing maintainers requires a pull request against [our team list](../12_faq/01_faq.md#who-maintains-kedro). The decision is made based on TSC members votes in that pull request. Additions and removals of maintainers require **a 2/3 majority**. diff --git a/docs/source/index.rst b/docs/source/index.rst index b74e15a6ae..ecb4c2ed3d 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -181,6 +181,7 @@ Welcome to Kedro's documentation! 14_contribution/02_developer_contributor_guidelines 14_contribution/03_backwards_compatibility 14_contribution/04_documentation_contributor_guidelines + 14_contribution/technical_steering_committee API documentation ================= diff --git a/kedro_technical_charter.pdf b/kedro_technical_charter.pdf new file mode 100644 index 0000000000..62ab06b7c5 Binary files /dev/null and b/kedro_technical_charter.pdf differ