Author: fchrist
Date: Thu May 10 15:44:39 2012
New Revision: 1336752
URL: http://svn.apache.org/viewvc?rev=1336752&view=rev
Log:
STANBOL-609 work in progess of documenting development for Apache Stanbol
Added:
incubator/stanbol/site/trunk/content/stanbol/development/
incubator/stanbol/site/trunk/content/stanbol/development/index.mdtext
Added: incubator/stanbol/site/trunk/content/stanbol/development/index.mdtext
URL:
http://svn.apache.org/viewvc/incubator/stanbol/site/trunk/content/stanbol/development/index.mdtext?rev=1336752&view=auto
==============================================================================
--- incubator/stanbol/site/trunk/content/stanbol/development/index.mdtext
(added)
+++ incubator/stanbol/site/trunk/content/stanbol/development/index.mdtext Thu
May 10 15:44:39 2012
@@ -0,0 +1,87 @@
+Title: Development
+
+## Dependency Management
+
+Apache Stanbol is a modular software stack and therefore all of its modules
+basically have different release cycles. Technically, this modularization
+is implemented by the underlying OSGi component infrastructure. Each Apache
+Stanbol component is implemented as an OSGi bundle that can be deployed in
+an OSGi environment. Apache Stanbol uses the OSGi implementation from Apache
+Felix for this.
+
+Apache Stanbol's dependency management is organized at three levels:
+
+ 1. [Build Dependency Management](#Build_Dependency_Management)
+ 2. Runtime (OSGi) Dependency Management
+ 3. Launcher Configuration Management
+
+### Build Dependency Management
+
+Build dependencies are configured in the Apache Maven pom.xml (POM) files.
+We distinguish between internal and external dependencies.
+
+ * Internal dependencies are dependencies to other org.apache.stanbol.*
+ components.
+ * External dependencies are dependencies to third party components from
+ outside the Apache Stanbol project.
+
+Internal dependencies are managed separatly for each component. So each
+component defines in its own POM which other Apache Stanbol components in
+which versions it requires. This makes it possible that different components
+could rely on different versions of another Apache Stanbol component.
+This is a requirement to be able to release single Apache Stanbol
+components independently.
+
+External dependencies to third party components are managed at a central
+place to ensure that all Apache Stanbol components rely on the very same
+version of a third party component. The central configuration for this can
+be found in the dependency management section of the Apache Stanbol parent
+POM. As all Apache Stanbol components define this central parent POM as
+their parent, it is ensured that all components use the same version of an
+external dependency. Changing the version of an external dependency in the
+parent POM affects all Apache Stanbol components that rely on this
+dependency.
+
+In consequence it is not allowed that an Apache Stanbol
+components define their own version of an external dependency in their POM.
+External dependencies are configured in the parent POM only! If there is
+any Apache Stanbol component that does not apply to this rule, it should
+be considered as a bug or a good reason for this should be documented.
+Relying on the same version of external dependencies is essential to ensure
+a working Apache Stanbol stack.
+
+### Runtime (OSGi) Dependency Management
+
+### Launcher Configuration Management
+
+
+## Coding
+
+### Code Conventions
+
+Most developers of Apache Stanbol use the Eclipse IDE for development. The
+code conventions for this IDE can be imported from the
+'/conventions/stanbol-eclipse-codeformatter.xml' file
+[in SVN](http://svn.apache.org/repos/asf/incubator/stanbol/trunk/conventions/).
+
+### SVN Structure
+
+### Legal Issues
+
+The Apache Stanbol software is released under the Apache Software License
+(AL). Therefore, we have to ensure that our software is developed according
+to this license. Here is a short list of the most important rules every
+developer has to keep in mind when writing this software.
+
+ * Ideally, each file in SVN should have the Apache license header. This is
+ especially important for each source (*.java) file. This rule is checked
+ automatically before doing a release using the Apache RAT tool.
+ * The licenses of all dependencies that are used by Apache Stanbol must
+ be compatible with the AL.
+ * All dependencies used by Apache Stanbol should be available from the
+ Maven central repository. If this is not the case, the Apache Stanbol
+ module depending on a libraray that is not available from Maven
+ central can not be released that easy, i.e. a separate -deps package would
be required.
+
+## Release Process
+