blob: 62505676f1a715bec220e10db2c540d51508699a [file] [log] [blame]
------
NPanday Conventions
------
------
2010-07-03
------
~~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.
NPanday Conventions
The following sections describe the conventions used within NPanday itself. This section is useful for developers wishing to
contribute to NPanday, as well as developers looking for a baseline for their own projects.
These conventions are evolving and subject to change as better ideas emerge.
* Identifier Conventions
* Artifact ID - specified within the pom - is equivalent to the project's module name.
Project Structure
+------+
|-- NPanday.Artifact
| `-- src
| `-- main
| `-- csharp
| `-- NPanday
| `-- Artifact
| |-- ArtifactContext.cs
| `-- Artifact.cs
`-- pom.xml
+------+
pom.xml file
+------+
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.npanday</groupId>
<artifactId>NPanday.Artifact</artifactId>
<packaging>library</packaging>
<version>0.9</version>
<name>NPanday.Artifact</name>
</project>
+------+
* We use three Group IDs: org.apache.npanday, org.apache.npanday.plugins and org.apache.npanday.visualstudio.
org.apache.npanday.plugins is for mojos or other plugin-related artifacts. org.apache.npanday.visualstudio groups
Visual Studio Integration. And org.apache.npanday is for everything else.
+------+
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.npanday</groupId>
<artifactId>NPanday.Artifact<artifactId>
<packaging>library</packaging>
<version>0.9</version>
<name>NPanday.Artifact</name>
</project>
+------+
* Plugin Naming Convention
For plugins going forward, NPanday will use the normal convention of <subject><<<-maven-plugin>>>, e.g.
<<<wix-maven-plugin>>>.
* Platform-specific Plugins
* If an assembly will only compile under a specific platform, those values should be specified within the compiler-config.
+------+
<project xmlns="http://maven.apache.org/POM/4.0.0">
<modelVersion>4.0.0</modelVersion>
<groupId>org.apache.npanday.pluginss</groupId>
<artifactId>NPanday.Plugins</artifactId>
<packaging>pom</packaging>
<version>0.9</version>
<name>NPanday.Plugins</name>
<build>
<sourceDirectory>src/main/csharp</sourceDirectory>
<testSourceDirectory>src/test/csharp</testSourceDirectory>
<plugins>
<plugin>
<groupId>org.apache.npanday.plugins</groupId>
<artifactId>maven-compile-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<vendor>MONO</vendor>
<frameworkVersion>2.0.50727</frameworkVersion>
<vendorVersion>1.2.3.1</vendorVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>
+------+