Maltcms Code
Brought to you by:
nilshoffmann
# This is the Maltcms maven3 project Within this directory, you will find all the submodules, which make up Maltcms. General configuration for all modules can be found within the file pom.xml in the same directory as this README. Module-specific configuration can be found below each module's directory in the corresponding pom.xml file. ## Prerequisites for Maltcms - Java JDK 7 (NOT JRE) http://www.oracle.com/technetwork/java/javase/downloads/index.html - Maven 3 http://maven.apache.org/download.html - Any IDE supporting maven 2/3 integration and subversion support NetBeans 7.+ http://netbeans.org/ Eclipse 3.+ (Indigo) or 4.+ http://eclipse.org/ (requires additional m2e plugin and subclipse/subversive plugins) IntelliJ Idea 10.5 http://www.jetbrains.com/idea/ The remainder of this README contains task descriptions and the corresponding commands required to perform those tasks. Tasks marked with '*' can only be executed by registered developers. In order to register, you need to have a sourceforge account and apply for membership within the project maltcms. ## User registration: Create a new user name at https://sourceforge.net/user/registration Then, apply to join maltcms by sending a mail to the project admin with your sourceforge username: http://sourceforge.net/users/nilshoffmann/ You will then receive access to the project's subversion repository as well as to the maltcms artifactory instance for artifact resolution (required for maven). ## Maven specifics: Please note that contrary to usual maven behaviour, integration test execution is currently disabled for default builds due to the long runtime of those. To enable integration test execution, call maven with the argument -DskipITs=false The build will run all standard tests without user-intervention. The directory 'maltcms-test-tools' contains additional modules whose artifacts are required by maltcms, but which are not automatically built with maltcms anymore due to their size. Additionally, due to the size of the project, it is not always possible to call multiple maven targets within one call. So instead of calling mvn clean install please use mvn clean && mvn install Or issue three separate calls of maven from the command-line: mvn clean mvn install In order to build maltcms and have all tests run automatically, call: mvn -Dmaven.test.skip=false install This will create a zip release of the project below maltcms-distribution/target. ## License Headers Check, that all new files all have the maltcms license header, provided under src/main/resources/licenses/license-maltcms.txt. NetBeans IDE allows to add this header as a template for new files. Go to Tools->Templates-> Licenses and select Add in the Dialog. Go ahead and select the license header template. To add / update the license header, there is a nice plugin for the NetBeans IDE available: http://plugins.netbeans.org/plugin/17960/license-changer The newest version supports NetBeans Templates automatically, so you can simply select the 'maltcms' license from the dropdown menu of available license templates. ## Creating a release version * Preparations: 1. Make sure that you have merged all upstream changes to be included in the release git pull origin master 2. Create a release branch (e.g. for release version 1.3.0): git checkout -b release-1.3.0 3. Bump the versions to the next release number, e.g. -RC1 for first release candidate, or 1.3.0 for the final version mvn versions:set -Dnew Version=1.3.0-RC1 4. Begin to prepare the site files, documentation and resources for the next release version. Update the changes etc. Generate a changelog from the first commit after the previous release until today mvn -DstartDate=YYYY-MM-DD -DendDate=YYYY-MM-DD scm:changelog > changelog.txt Update the site release notes 4.a) Merging intermediate changes from master into the branch (bugfixes only) git rebase master 5. commit and push your changes git push 6. Replicate your branch to origin git push -u origin release-1.3.0 7. Run clean and install mvn -Dmaven.test.skip=false clean install If anything fails, fix the bugs, add the changes and commit, before repeating the previous steps. 8. If everything works, deploy with src and javadoc profile enabled mvn deploy -Psrc,javadoc Copy nbm artifacts to maltcms.de/updates/cross/RELEASE_VERSION/ 9. Open an ssh connection to sourceforge: ssh -t username,maltcms@shell.sourceforge.net create 10. Build and stage the site: mvn site:site site:stage 11. If everything is fine, deploy the site mvn site:deploy 12. Create a release tag VERSION git tag -a 1.3.0 13. Push the tag to origin to share it git push origin 1.3.0 14. Change back to the master branch git checkout master 15. Apply changes of latest release branch to master git merge release-1.3.0 16. Update version numbers to next development version if release cycle is complete mvn versions:set -Dnew Version=1.4.0-SNAPSHOT 17. Commit and push changes git commit -m "Update project version to next development version." git push origin master ## Deploying a snapshot to the artifactory repository * mvn deploy