This is an automated email from the ASF dual-hosted git repository. vinoth pushed a commit to branch asf-site in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/asf-site by this push: new 7129c5a [DOCS] New RFC Process (#3725) 7129c5a is described below commit 7129c5a9bceb32621f1efe61bdc7b000f1333f21 Author: vinoth chandar <vinothchan...@users.noreply.github.com> AuthorDate: Tue Sep 28 10:26:43 2021 -0600 [DOCS] New RFC Process (#3725) - Nested under the "Contribute" menu - Largely same text as we had in cwiki - Broke it up into three phases - Reordered the side bar to make it nicer to read --- website/contribute/get-involved.md | 2 +- website/contribute/how-to-contribute.md | 2 +- website/contribute/report-security-issues.md | 2 +- website/contribute/rfc-process.md | 56 ++++++++++++++++++++++++++++ website/contribute/team.md | 2 +- website/docusaurus.config.js | 4 ++ 6 files changed, 64 insertions(+), 4 deletions(-) diff --git a/website/contribute/get-involved.md b/website/contribute/get-involved.md index c455539..2f9cb23 100644 --- a/website/contribute/get-involved.md +++ b/website/contribute/get-involved.md @@ -15,7 +15,7 @@ There are several ways to get in touch with the Hudi community. | For any general questions, user support | Users Mailing list ([Subscribe](mailto:users-subscr...@hudi.apache.org), [Unsubscribe](mailto:users-unsubscr...@hudi.apache.org), [Archives](https://lists.apache.org/list?us...@hudi.apache.org)). Empty email works for subscribe/unsubscribe. Please use [gists](https://gist.github.com) to share code/stacktraces on the email. | | For reporting bugs or issues or discover known issues | Please use [ASF Hudi JIRA](https://issues.apache.org/jira/projects/HUDI/summary). See [#here](#accounts) for access | | For quick pings & 1-1 chats | Join our [slack group](https://join.slack.com/t/apache-hudi/shared_invite/enQtODYyNDAxNzc5MTg2LTE5OTBlYmVhYjM0N2ZhOTJjOWM4YzBmMWU2MjZjMGE4NDc5ZDFiOGQ2N2VkYTVkNzU3ZDQ4OTI1NmFmYWQ0NzE). In case this does not work, please leave a comment on this [github issue](https://github.com/apache/hudi/issues/143) | -| For proposing large features, changes | Start a RFC. Instructions [here](https://cwiki.apache.org/confluence/display/HUDI/RFC+Process). +| For proposing large features, changes | Start a RFC. Instructions [here](/contribute/rfc-process). | Join weekly sync-up meeting | Follow instructions [here](https://cwiki.apache.org/confluence/display/HUDI/Apache+Hudi+Community+Weekly+Sync). | See [#here](#accounts) for wiki access | | For stream of commits, pull requests etc | Commits Mailing list ([Subscribe](mailto:commits-subscr...@hudi.apache.org), [Unsubscribe](mailto:commits-unsubscr...@hudi.apache.org), [Archives](https://lists.apache.org/list?commits@hudi.apache.org)) | diff --git a/website/contribute/how-to-contribute.md b/website/contribute/how-to-contribute.md index 137e5b2..56fdc99 100644 --- a/website/contribute/how-to-contribute.md +++ b/website/contribute/how-to-contribute.md @@ -1,5 +1,5 @@ --- -sidebar_position: 3 +sidebar_position: 2 title: "How to Contribute" toc: true last_modified_at: 2020-09-01T15:59:57-04:00 diff --git a/website/contribute/report-security-issues.md b/website/contribute/report-security-issues.md index ccefc16..0fc463a 100644 --- a/website/contribute/report-security-issues.md +++ b/website/contribute/report-security-issues.md @@ -1,6 +1,6 @@ --- title: Report Security Issues -sidebar_position: 5 +sidebar_position: 6 keywords: [ hudi, security] toc: true last_modified_at: 2019-12-30T15:59:57-04:00 diff --git a/website/contribute/rfc-process.md b/website/contribute/rfc-process.md new file mode 100644 index 0000000..17afb98 --- /dev/null +++ b/website/contribute/rfc-process.md @@ -0,0 +1,56 @@ +--- +sidebar_position: 3 +title: "RFC Process" +toc: true +last_modified_at: 2020-09-01T15:59:57-04:00 +--- + +This page describes a Request For Comments (RFC) process for proposing any major change to Hudi or even just sharing designs/vision for the project to get early feedback. + +## When do I need an RFC ? + +Whenever a feature is considered to be causing a “major change” in the project, such a feature requires an RFC. +Any of the following can be considered a major change: + + - Any new component, module or code that introduces a new concept into the project or alters the behavior of an existing one + - Any large code refactor to address general code re-usability and structure. There is no strong definition for “Large” and whether or not the refactor requires an RFC can be discussed on the @dev mailing list. + - Any change that impacts the underlying storage layout/format. e.g changes to the HoodieLogFormat, timeline layout version. + - New indexing schemes, New deltastreamer sources, New platform services. + - Any change that impacts the public interfaces of the project. + +It can also be used to describe large direction shifts to the project (e.g. Flink support) or new green field ideas (e.g. Hudi for ML flows) +Not all RFCs require the same effort and detail. For critical changes such as the File Format and Index, we need to deeply discuss the trade-offs of +making such a change and how it impacts current and new users. Any changes to such components affect the correctness of a dataset (backwards and forward versions supported). +Other changes such as code refactor might require more details around abstractions but as long as there is good test coverage, a migration plan section can be avoided. +It may happen that you are making a bunch of changes across many components to enable an already existing feature. For example, introducing a new config along with reporting metrics, +enhancing a tool and also improving documentation and the on-boarding experience. If all of these changes are linked to a general feature/idea, these can be grouped together under a single RFC. + +## Who can initiate the RFC ? +Anyone can initiate an RFC. Please note that if you are unsure of whether a feature already exists or if there is a plan already to implement a similar one, always start a discussion thread on the dev mailing list before initiating a RFC. This will help everyone get the right context and optimize everyone’s usage of time. + +## How do I author an RFC ? + +### Proposing the RFC +1. First, start a discussion thread on the Apache Hudi dev mailing list, by sending an email to `d...@hudi.apache.org` with subject line `DISCUSS <proposed idea>`. +Use this discussion thread to get an agreement from people on the mailing list that your proposed idea necessitates an RFC. +2. File an umbrella JIRA for the RFC with the label `hudi-umbrellas` added to it. See an [example JIRA](https://issues.apache.org/jira/browse/HUDI-1292). +3. Raise a PR, adding an entry to the table at `rfc/README.md`, picking the next available RFC number. Hudi committers will help land that. + +### Writing the RFC +1. Create a folder `rfc-<number>` under `rfc` folder, where `<number>` is replaced by the actual RFC number used. +2. Copy the rfc template file `rfc/template.md` to `rfc/rfc-<number>/rfc-<number>.md` and proceed to draft your design document. +3. [Optional] Place any images used by the same directory using the `![alt text](./image.png)` markdown syntax. +4. Add at least 2 PMC members as approvers (you can find their github usernames [here](/contribute/team)). You are free to add any number of dev members to your reviewers list. +5. Raise a PR against the master branch with `[RFC-<number>]` in the title and work through feedback, until the RFC approved (by approving the Github PR itself) +6. Before landing the PR, please change the status to "IN PROGRESS" under `rfc/README.md` and keep it maintained as you go about implementing, completing or even abandoning. + +### Keeping it upto date + +RFC process is by no-means is an attempt at the "waterfall" software development process. +We recognize that design can be an iterative process as well, often evolving together with implementation. + +1. Please ensure your code PRs are labelled with a `[RFC-<number>]` title, in addition to the JIRA number. +2. As your implementation changes over time, you will update the RFCs and keep them in-sync. Project maintainers could point out these opportunities during code reviews. +3. During the final landing of all goals of the RFC, the status changes to "COMPLETED" + + diff --git a/website/contribute/team.md b/website/contribute/team.md index f630544..3e5cea4 100644 --- a/website/contribute/team.md +++ b/website/contribute/team.md @@ -1,5 +1,5 @@ --- -sidebar_position: 2 +sidebar_position: 5 title: "Team" toc: true last_modified_at: 2020-09-01T15:59:57-04:00 diff --git a/website/docusaurus.config.js b/website/docusaurus.config.js index 1cf403d..02248b5 100644 --- a/website/docusaurus.config.js +++ b/website/docusaurus.config.js @@ -156,6 +156,10 @@ module.exports = { to: '/contribute/developer-setup', }, { + label: 'RFC Process', + to: '/contribute/rfc-process', + }, + { label: 'Report Security Issues', to: '/contribute/report-security-issues', },