Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
60 changes: 60 additions & 0 deletions hadoop-hdds/docs/archetypes/design.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
---
title: "{{ replace .Name "-" " " | title }}"
menu: main
jira: HDDS-XXX
summary: One sentence summary. Will be displayed at the main design doc table.
status: current
author: Your Name

---
<!---
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->


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.

## Summary

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

## 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?

## Non-goals

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

## 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?

## 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.

## Implementation 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 optiona;.

## References
7 changes: 6 additions & 1 deletion hadoop-hdds/docs/config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,4 +43,9 @@ menu:
name: Recipes
title: Recipes
url: prometheus.html
weight: 4
weight: 4
- identifier: Design docs
name: Design docs
title: Design docs
url: design.html
weight: 30
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)

41 changes: 41 additions & 0 deletions hadoop-hdds/docs/themes/ozonedoc/layouts/_default/baseof.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
<!---
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
{{ partial "header.html" . }}

<body>

{{ partial "navbar.html" . }}

<div class="container-fluid">
<div class="row">
{{ partial "sidebar.html" . }}
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">

<main>
{{ block "main" .}}
{{end}}
</main>

</div>
</div>
</div>
</div>

{{ partial "footer.html" . }}

</body>
</html>
54 changes: 54 additions & 0 deletions hadoop-hdds/docs/themes/ozonedoc/layouts/_default/section.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<!---
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
{{ partial "header.html" . }}

<body>

{{ partial "navbar.html" . }}

<div class="container-fluid">
<div class="row">
{{ partial "sidebar.html" . }}
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">

<main>
{{ .Content }}
<table class="table">
<thead>
<tr>
<td>Title</td>
</tr>
</thead>
<tbody>
{{ range .Paginator.Pages }}
<tr>
<td><a href="{{.URL}}">{{.Title}}</a></td>
</tr>
{{ end }}
</tbody>
</table>
</main>

</div>
</div>
</div>
</div>

{{ partial "footer.html" . }}

</body>
</html>
23 changes: 14 additions & 9 deletions hadoop-hdds/docs/themes/ozonedoc/layouts/_default/single.html
Original file line number Diff line number Diff line change
Expand Up @@ -16,23 +16,28 @@
-->
{{ partial "header.html" . }}

<body>
<body>

{{ partial "navbar.html" . }}

<div class="container-fluid">
<div class="row">
<div class="container-fluid">
<div class="row">
{{ partial "sidebar.html" . }}
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">
<h1>{{ .Title }}</h1>
<div class="col-md-9">
{{ .Content }}
</div>

<main>
<h1>{{ .Title }}</h1>
<div class="col-md-9">
{{ .Content }}
</div>
</main>

</div>
</div>
</div>
</div>
</div>

{{ partial "footer.html" . }}

</body>
</body>
</html>
66 changes: 66 additions & 0 deletions hadoop-hdds/docs/themes/ozonedoc/layouts/design/section.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
<!---
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
{{ partial "header.html" . }}

<body>

{{ partial "navbar.html" . }}

<div class="container-fluid">
<div class="row">
{{ partial "sidebar.html" . }}
<div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main">

<main>
<main>
<h1>Available design docs</h1>
{{ .Content }}
<table class="table">
<thead>
<tr>
<td>JIRA</td>
<td>Title</td>
<td>Summary</td>
<td>Status</td>
</tr>
</thead>
<tbody>
{{ range .Paginator.Pages }}
<tr>
<td>
<a href="https://issues.apache.org/jira/browse/{{.Params.jira}}">{{.Params.jira}}</a>
</td>
<td><a href="{{.URL}}">{{.Title}}</a></td>
<td>{{.Summary}}</td>
<td>{{.Params.status}}</td>
</tr>
{{ end }}
</tbody>
</table>
</main>
</main>

</div>
</div>
</div>
</div>

{{ partial "footer.html" . }}

</body>
</html>

Loading