| ----- |
| How We Do Things |
| ----- |
| ----- |
| 2017-08-01 |
| ----- |
| |
| ~~ 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. |
| |
| ~~ NOTE: For help with the syntax of this file, see: |
| ~~ http://maven.apache.org/guides/mini/guide-apt-format.html |
| |
| How We Do Things |
| |
| Below are the conventions we follow in Archiva. |
| |
| * Continuous Integration |
| |
| We use the Jenkins Apache instance for building Archiva (and redback dependencies) on scm changes. |
| |
| See the tab with various builds: {{{https://builds.apache.org/view/A-D/view/Archiva/}Archiva tab}} |
| |
| You can test fresh builds with downloading from this Jenkins job {{{https://builds.apache.org/job/archiva-master-build/}archiva-master-build/}}: |
| |
| * {{{https://builds.apache.org/job/archiva-master-build/lastSuccessfulBuild/artifact/archiva-jetty/target/apache-archiva-${archivaCurrentDevVersion}-bin.zip}standalone with embeded jetty}} (unzip then cd bin;./archiva start running on 8080) |
| |
| * {{{https://builds.apache.org/job/archiva-master-build/lastSuccessfulBuild/artifact/archiva-modules/archiva-web/archiva-webapp/target/archiva-webapp-${archivaCurrentDevVersion}-SNAPSHOT.war}war webapp js}} |
| |
| |
| |
| * Code Style |
| |
| There isn't any code style that needs to be followed as long as it is consistent, can be checked in checkstyle, can be |
| formatted in Eclipse, IDEA and NetBeans. And the following rules must be followed: |
| |
| [[1]] Use spaces, not tabs |
| |
| * 4 spaces for Java |
| |
| * 2 spaces for XML |
| |
| [[2]] 120 column wrap, not 80 |
| |
| [[3]] Wrap on spaces, not on '.' in a method call |
| |
| |
| You can use the existing codestyle files: |
| |
| * {{{./archiva-idea-codestyle.xml}idea}} |
| |
| * {{{./archiva-eclipse-codestyle.xml}eclipse}} |
| |
| [] |
| |
| * Versioning |
| |
| It has been established in the community that the following style would be followed for the versioning of releases: |
| |
| ----- |
| Milestones -> Final -> Patch releases (e.g. 1.1-M1, 1.1-M2, 1.1, 1.1.1, 1.1.2 ) |
| ----- |
| |
| As much as possible, the team is aiming for frequent releases. If the roadmap for the current development version is |
| big, milestone releases can be applied until the final release. But if the roadmap is composed of just a small number |
| of issues, we could proceed immediately to preparing a release candidate and push it out as the final release once it |
| passes the vote. |
| |
| * References |
| |
| * {{{http://old.nabble.com/Fwd%3A-What-do-we-need-to-establish--td17098487.html} Mailing list discussion regarding conventions}} |
| |
| |