You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bahir.apache.org by lr...@apache.org on 2016/05/31 23:28:51 UTC

bahir-website git commit: [BAHIR-5] Initial draft guidelines for proposing new extensions

Repository: bahir-website
Updated Branches:
  refs/heads/master a6428ef9e -> c5cd2f4fb


[BAHIR-5] Initial draft guidelines for proposing new extensions


Project: http://git-wip-us.apache.org/repos/asf/bahir-website/repo
Commit: http://git-wip-us.apache.org/repos/asf/bahir-website/commit/c5cd2f4f
Tree: http://git-wip-us.apache.org/repos/asf/bahir-website/tree/c5cd2f4f
Diff: http://git-wip-us.apache.org/repos/asf/bahir-website/diff/c5cd2f4f

Branch: refs/heads/master
Commit: c5cd2f4fb626dbac23f16d5cd203894f3755062e
Parents: a6428ef
Author: Luciano Resende <lr...@apache.org>
Authored: Tue May 31 16:27:59 2016 -0700
Committer: Luciano Resende <lr...@apache.org>
Committed: Tue May 31 16:27:59 2016 -0700

----------------------------------------------------------------------
 site/_data/navigation.yml       |  4 ++-
 site/contributing-extensions.md | 64 ++++++++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/bahir-website/blob/c5cd2f4f/site/_data/navigation.yml
----------------------------------------------------------------------
diff --git a/site/_data/navigation.yml b/site/_data/navigation.yml
index 465bfc8..5672ffe 100644
--- a/site/_data/navigation.yml
+++ b/site/_data/navigation.yml
@@ -34,8 +34,10 @@ topnav:
   subcategories:
   - title: Get Involved
     url: /community
-  - title: Contributing to project
+  - title: Contributing
     url: /contributing
+  - title: Contributing Extensions
+    url: /contributing-extensions
   - title: Issue Tracker
     url: https://issues.apache.org/jira/browse/BAHIR
   - title: Source Code

http://git-wip-us.apache.org/repos/asf/bahir-website/blob/c5cd2f4f/site/contributing-extensions.md
----------------------------------------------------------------------
diff --git a/site/contributing-extensions.md b/site/contributing-extensions.md
new file mode 100644
index 0000000..73daa57
--- /dev/null
+++ b/site/contributing-extensions.md
@@ -0,0 +1,64 @@
+---
+layout: page
+title: Contributing a new extension
+description: Contributing a new extension page
+group: nav-right
+---
+<!--
+{% comment %}
+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.
+{% endcomment %}
+-->
+
+Apache Bahir provides extensions to distributed analytic platforms such as Apache Spark.  In the context of Apache Spark, extensions can be Streaming connectors, SQL data sources, etc
+
+This document explains the process for proposing a new extension to Apache Bahir, and how the extension lifecycle are handled in the project.
+
+# Proposing a new extension
+
+In Apache Bahir we believe that forming a community around these extensions will actually make it better, and extend its life cycle, thus we require that new extensions be discussed on the project mailing list and receive at least 3 +1 from other committers.
+
+When set of committers provides a +1 vote to a new extension, they become the initial community around the extension, and will become responsible for helping on patch reviews, but especially, they will become the backup for maintaining the extension in case of build issues, reacting to api changes, or any other issues that might break the extension.
+
+Once a proposed extension gets the necessary votes, the author should follow the regular contribution process, creating a jira if one is not available yet, and provide a pull request.
+
+# What is expected of a new extension
+
+Extensions must provide:
+
+1. **The main extension code**: this is the actually the extension core code
+1. **Extensible test coverage**: automated tests is a MUST to serve as examples on how to use the extension, but also to assert that it works and continue to works while it evolves
+1. **Documentation**: extensions MUST provide details on how users would integrated the extension in their applications
+
+Extensions might also provide:
+
+1. **Example**: a simple application that can serve as a reference point on how to use the extension in an application. Users must be able to simply build and deploy the sample application into a cluster. 
+
+# Extension life cycle
+
+We understand that software, particularly open source one, evolves quite quickly, and thus we antecipate that some extensions might start to lag behind in its maintenance. 
+
+The steps described below were crafted with the intention to alleviate the side-effects of one extension lagging behind and becoming broke for one reason or another.   
+
+## Retiring extensions
+
+When a particular extension breaks a build, it will be removed from the build (TBD the actual period here) to minimize the impact on the community. 
+
+Extensions that stay out of the build for a period of time (TBD the actual period here) will be retired to an 'contrib' folder, and at that point will not be part of the official releases.
+
+## Resurecting a retired extension
+
+At any point, a community member can request to resurect a retired extension, and at this point, the process is the same as the initial extension proposal, where he would propose the extension to be brought to life again, and would need to receive at least 3 +1 from other committers.