Skip to content

HDDS-1659. Define the process to add proposal/design docs to the Ozone subproject #922

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Jun 11, 2019
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions hadoop-hdds/docs/content/design/ozone-enhancement-proposals.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
---
title: Ozone Enhancement Proposals
summary: Definition of the process to share new technical proposals with the Ozone community.
date: 2019-06-07
jira: HDDS-1659
status: current
author: Anu Enginner, Marton Elek
---

## Problem statement

Some of the biggers features requires well defined plans before the implementation. Until now it was managed by uploading PDF design docs to selected JIRA. There are multiple problems with the current practice.

1. There is no easy way to find existing up-to-date and outdated design docs.
2. Design docs usually have better description of the problem that the user docs
3. We need better tools to discuss the design docs in the development phase of the doc

We propose to follow the same process what we have now, but instead of uploading a PDF to the JIRA, create a PR to merge the proposal document to the documentation project.

## Non-goals

* Modify the existing workflow or approval process
* Migrate existing documents
* Make it harder to create design docs (it should be easy to support the creation of proposals for any kind of tasks)

## Proposed solution

* Open a dedicated Jira (`HDDS-*` but with specific component)
* Use standard name prefix in the jira (easy to filter on the mailing list) `[OEP]
* Create a PR to merge the design doc (markdown) to `hadoop-hdds/docs/content/proposal` (will be part of the docs)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

During an offline discussion @arp7 had some concerns about the usability of reviewing markdown files in PR vs. reviewing google docs.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note: this is a complex PR because it contains the changes to show design docs on the docs page. A normal design doc would contain just one markdown file.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Update: I removed the HTTP/template changes.

* Discuss it as before (lazy consesus, except if somebody calls for a real vote)
* Design docs can be updated according to the changes during the implementation

## Document template

This the proposed template to document any proposal. It's recommended but not required the use exactly the some structure. Some proposal may require different structure, but we need the following information.

1. Summary

> Give a one sentence summary, like the jira title. It will be displayed on the documentation page. Should be enough to understand

2. Problem statement (Motivation / Abstract)

> What is the problem and how would you solve it? Think about an abstract of a paper: one paragraph overview. Why will the world better with this change?

3. Non-goals

> Very important to define what is outside of the scope of this proposal

4. Technical Description (Architecture and implementation details)

> Explain the problem in more details. How can it be reproduced? What is the current solution? What is the limitation of the current solution?

> How the new proposed solution would solve the problem? Architectural design.

> Implementation details. What should be changed in the code. Is it a huge change? Do we need to change wire protocol? Backward compatibility?

5. Alternatives

> What are the other alternatives you considered and why do yoy prefer the proposed solution The goal of this section is to help people understand why this is the best solution now, and also to prevent churn in the future when old alternatives are reconsidered.

Note: In some cases 4/5 can be combined. For example if you have multiple proposals, the first version may include multiple solutions. At the end ot the discussion we can move the alternatives to 5. and explain why the community is decided to use the selected option.

6. Plan

> Planning to implement the feature. Estimated size of the work? Do we need feature branch? Any migration plan, dependency? If it's not a big new feature it can be one sentence or optional.

7. References

## Workflows form other projects

There are similar process in other open source projects. This document and the template is inspired by the following projects:

* [Apache Kafka Improvement Proposals](https://cwiki.apache.org/confluence/display/KAFKA/Kafka+Improvement+Proposals)
* [Apache Spark Project Improvement Proposals](https://spark.apache.org/improvement-proposals.html)
* [Kubernetes Enhancement Proposals](https://github.com/kubernetes/enhancements/tree/master/keps)

Short summary if the porcesses:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo


__Kafka__ process:

* Create wiki page
* Start discussion on mail thread
* Vote on mail thread

__Spark__ process:

* Create JIRA (dedicated label)
* Discuss on the jira page
* Vote on dev list

*Kubernetes*:

* Deditaced git repository
* KEPs are committed to the repo
* Well defined approval process managed by SIGs (KEPs are assigned to SIGs)