Releasing with Subversion and Maven
|
|
|
- Miles Carson
- 9 years ago
- Views:
Transcription
1 1 Agile ALM By Michael Hüttermann The release of software packages is an important phase of the Agile Application Lifecycle Management (ALM). The source code should be put into a version control system and extracted to be compiled and packaged. In most cases, your customer requires a complete release package, which also contains additional information. In this article from Agile ALM, you will learn how to create a software release and distribute it using Subversion and Apache Maven. You may also be interested in Releasing with Subversion and Maven Before you start with the creation of your release/distribution, you need to be clear about what is shipped with the actual software. Typically, a release/distribution needs a lot more than just some compiled Java classes. Some examples of common artifacts in a distribution: Documentation Practical user guides, such as installation guides or how-to documents, and API descriptions like JavaDocs or TagDocs, need to be made available as part of a distribution. Examples Showcase applications (or reference implementation) and API usage examples. Most opensource releases contain examples, which may be very simple or rather complex, showing many features. Distribution of the source code This is not only a question for open-source projects. Releases for in-house projects or business partners may also distribute the source code, which makes debugging easier. Anything else of value for you in your individual situation For project specific requirements it may be the case that you need to ship other artifacts than those listed above. The location of the release deliverables is also important. For instance, with Apache Maven, JAR files (including sources and JUnit tests) are deployed to an in-house repository, which is basically an HTTP/file server (for example, Artifactory or SVN) that follows a defined directory layout. The complete release package, meaning the distribution, is often placed somewhere else. It is very common to place these files on the website of your company or open-source project. Another option is to deliver the distribution on a network file system (NFS), which you use to exchange files with your business partners or other in-house teams. Once it is clear where to place the distribution and what it contains, you are hitting what is probably the most important question: how do we deploy the release? There are several tools and options available to get a release out. These can be historic make files or some BASH/PERL scripts that run the software build and assemble the final release package. On older Java projects you may still see the usage of homegrown Ant tasks to generate the release and its distribution package. However, today the de-facto standard for Java-based projects is Apache Maven. Maven not only manages the build system of a software project, but it helps to manage the project through its entire lifespan as well. This includes artifacts like: Documentation The product website or JavaDoc. Source code management The location of the SVN repository. Release management Branching and tagging in SVN and creating the distribution of the release. COMMON PRACTICES IMPLEMENTED IN MAVEN PLUGINS
2 2 This is one of the benefits that Maven offers: best practices are coded into a lot of available plugins. This means the Agile development process starts with the choice of a powerful tool belt. Maven is a framework that simply executes plugins that accomplish a variety of important tasks. There are many available plugins for Maven that can be used to perform tasks that are essential for building, packaging, and deploying your software. An example would be to use Maven to post the results of the nightly builds to Twitter (see In this article, we will describe several major plugins and their required configurations that are ideal for producing a software release. Before you start to generate a release, you need to understand that there are several ways to do it. You could start to run the release from within the SVN trunk folder, which is probably not a good idea because the main code line is usually developed on the trunk. It is a common practice to create a separate release branch using a standard naming convention such as release-version-x.y.z. This section uses a common SVN layout: -myproject/ -branches/ -brancha -branchb -tags/ -trunk/ -src -pom.xml... The first task to enable releasing with Maven is to include the maven-release-plugin in your POM as part of the project s Maven build lifecycle: <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-release-plugin</artifactid> <version>2.0</version> Creating the branch and preparing the release Creating the entire release from a release branch is a good pattern. Doing so ensures that the main development can continue on the trunk, without any undesired side effects. Imagine if some of the changes are just not ready in time for a scheduled release. In this case, you would want to be able to reverse the changes that are not completed. This is much easier if you are using a release branch that contains only the tested and completed features approved for the release. Creating a branch can be done with the tools provided by SVN itself, like svn copy. On Windows, there is a convenient graphical tool (TortoiseSVN) that supports creating branches and tags. Even with Apache Maven, there are several possibilities to create a branch, such as with the maven-scm-plugin or the maven-release-plugin. The maven-release-plugin can be used to help automate the release process including creating a release branch automatically. Before you can use the release-plugin for branch creation, you have to configure your Source Control Management (SCM) settings in the project s pom.xml file, as seen in listing 1. Listing 1 Configuring SCM in project s model (POM) <scm> <connection> #1 scm:svn: </connection> <developerconnection> #2 scm:svn: </developerconnection> <url> #3 </scm> #1 URL to check out code #2 URL to work on code #3 URL for web interface Maven site generation
3 3 The SCM configuration in listing 1 is used when the maven site plugin creates the website of the project. The information about the used Source Code Repository is made available on the generated source-repository.html webpage (see MyFaces or CXF). The <connection> element represents the URL that is used by everybody who is interested in checking out the source code (#1). Usually, the anonymous checkout is done through an unsecured http connection. The <developerconnection> section contains the URL, which is used by the developers of the project to commit their changes back into the source repository (#2). In almost all cases this is done through a secured http (https) connection. The only exception would be when the repository is already hidden by a corporate firewall. The last parameter (<url>) is a nice-to-have setting. Usually it contains a web interface to the source code (#3), stored in the repository. Most Subversion servers have something like viewvc or websvn installed. Using GIT as your repository If you plan to use GIT as your repository, you can use the Gitweb or even host your entire project directly on GitHub. The benefit of a web interface installation is that you can easily view the annotated source code with additional information: you get a colored overview of the actual difference between two revisions and some more advanced information of who added or changed the file in which revision. To get similar information, you would need to use a command-line tool for your source code system like git-blame. In SVN, you would use svn blame or TortoiseSVN. Once you configure the required settings, it is time to create the first branch: mvn release:branch -DbranchName=myFirstRelease Shortly after executing the plugin, it asks for the next version number (that is then recorded in the POM) on your trunk. If your project has the version number SNAPSHOT (check your pom.xml for its XML <version/> element), you will see the following prompt: What is the new working copy version for my-tool? (com.book:my-tool) SNAPSHOT: Hitting the ENTER key accepts the suggested value, or you can specify a different version number. After that, the plugin updates the version number that has been automatically incremented in the pom.xml and commits the change to the SVN trunk. The plugin also creates the new branching folder in the source repository. The pattern for the myfirstrelease branch would be something like: MAVEN VERSION SCHEMA The maven-release-plugin requires the version scheme to end with a -SNAPSHOT, such as alpha-4- SNAPSHOT. The release-plugin checks if you have modified files on your project. If this is the case, you will get a build failure: [ERROR] BUILD FAILURE [INFO] [INFO] Cannot prepare the release because you have local modifications : [pom.xml:modified] To continue, you need to evaluate the change and commit it to the SVN trunk or reverse it, if it was not intended. To continue releasing, you need to check out the newly created branch: svn checkout directorytocontainthebranch If you take a look at the <scm> section of its pom.xml file, you ll notice that the previous branch goal also updated this section. It contains the right URLs to point to our new SVN branch. Before can you can continue with the release preparation, your project s pom.xml needs some extra configuration, see listing 2. Listing 2 maven-release-plugin in project s POM <build>
4 4 <plugins> <plugin> <groupid>org.apache.maven.plugins</groupid> <artifactid>maven-release-plugin</artifactid> #1 <version>2.0</version> <configuration> <preparationgoals>clean verify install</preparationgoals> #A <tagbase> #2 </configuration> </plugin> </plugins>.. </build> #1 Includes the maven-release-plugin #A Configures preparation goals #2 Base location of tags Inside the <build> section of your pom.xml you have to configure the maven-release-plugin (#1). The important part here is the <tagbase> element, which tells the plugin the base location for all of your Subversion tags (#2). By default, the plugin assumes that you create the release out of the trunk folder and, therefore, it would automatically follow the common pattern to create all TAGs as subdirectories of the default SVN tag-location, which is the tags/ folder. Since we want to run the release preparation from a branch, we apply the above configuration to our pom.xml file. GENERATING OUT OF THE TRUNK Generating releases out of the trunk folder is also commonly used. However, this approach has some risks and you should only take this approach if you have the experience to understand its risks. It is simply safer to have a separate release branch folder for this step. The good news is that the extra setup is not too difficult. Now you can finally start the preparation of your release: mvn release:prepare What does preparation mean? If your branch has some Maven snapshot dependencies, the plugin asks you if you really want to continue with the release procedure. Generally, it is a very bad idea to branch and release a software package that has a dependency on a snapshot because these are usually generated every day, with a nightly build (basically, snapshots are unreleased software or software under development). The consequence of this is that your released project can become very unstable. In the worst case, this can mean that overnight some depreciated APIs have been removed from your dependency and the result is that your released software is no longer usable. You really want to avoid this scenario and should never release software that has a snapshot dependency; instead, you want to reference stable versions. Once the release-plugin identifies a snapshot dependency on your project, it gives you the following prompt: There are still some remaining snapshot dependencies.: Do you want to resolve them now? (yes/no) no: The default value for the prompt is no because you should avoid snapshot dependencies. If you continue with the release by entering yes, even if there is one or more snapshot dependencies on your project, the plugin will force you to upgrade to the released version of the dependency. TIP If you want to avoid any snapshot dependencies on your project, you need to use the maven-enforcer-plugin. For instance, if your project depends on a SNAPSHOT dependency, the plugin wants to use the released version of it. If your project really depends on a change that was made in SNAPSHOT and there is no such release yet, it is recommended to delay releasing the latest changes. Instead, you should use an earlier version of the dependency.
5 5 But I must release with snapshots! Sometimes there are no other options and you must release with a snapshot dependency, for example, because a critical bug was fixed on a dependent project. One approach to releasing would be to build the dependency on your system and manually change the version to something that would never be picked by the original project team. An option would be using some version string like modified-by-MyCompany-for-iteration-1 because it makes clear that your team provided the modified (or hacked) dependency. This special dependency is also a candidate for your distribution, as it is nowhere else available. Note that things like this are only a valid option if the license of the (open source) dependency fits into your own schema. Another option to deal with snapshots is the versions:lock-snapshots plugin. It inspects all POMs and replaces all snapshot versions with the current timestamp version of that snapshot, for example, You can do your releasing with this modified code base. You could also switch back to regular snapshots via versions:unlock-snapshots plugin. Maven s version plugin also provides some other neat goals to work with versions, as seen here. To continue with the preparation, let s assume there already was a release and we just haven t picked up the released version yet. You could manually update the version and commit the change to SVN or let the releaseplugin do it for you. During the execution of the release:prepare goal, the plugin asks you about the version number for the release: What is the release version for my-tool? (com.book:my-tool) 1.0.0: : alpha What is SCM release tag or label for my-tool? (com.book:my-tool) my-tool alpha: : What is the new development version for my-tool? (com.book:my-tool) alpha-SNAPSHOT: : For the version number, you could accept the suggested value or you could specify a different version ID. It is always good to have some alpha, beta, or release-candidate releases before shipping the final release. Let s imagine there is a demand for an alpha release. On the prompt, simply type in alpha and accept the suggested defaults for the Subversion tag and the next version number increment. After you specify the version number, the plugin triggers the regular project build and also executes some SVN tasks. Under the hood, it creates the tag (URL would be and it also updates and commits the new version number (1.0.1-alpha-SNAPSHOT) to your previously created branch. SVN TAG A tag inside of the Subversion repository is by convention a folder that is never updated. Tag folders can be understood as a single source of truth because they identify the exact version of the source code that was used to create a baseline release! Later, if you have to patch an existing release, for instance due to a critical security bug, you usually create a branch out of the corresponding tag folder to make sure there is nothing else to patch. By just committing changes to the tag (what is possible by default), the tag becomes a branch automatically (by convention). If you want to be sure that this does not happen, restrict the access to tag folders, e.g. by using SVN hooks. If problems occur during the release:prepare goal, execution could lead to a build failure. In such cases, you need to solve the failures, of course. For instance, if your SVN server is down and you need your admin to get it back up, once the problems are fixed, you can simply continue where the maven-release-plugin exited the job by entering the command: mvn release:prepare -Dresume Another option would be running mvn release:clean release:prepare, which first deletes all temporary files created by the plugin and afterwards reruns the entire release preparation again. If the release-plugin had already changed some of your files, like the <version> in the pom.xml files, you could roll back these changes like so: mvn release:rollback The release-plugin has some built-in safety, which ensures you are not spending extra hours on reassembling the release again and again. This is part of the Agile strategy behind Maven and similar tools.
6 6 Perform the release Before you can perform the last steps on your release, the creation of the release, the release-plugin requires a little bit more configuration in your pom.xml. What you need to configure is the distribution management section. Here is an example of what this can look like: <distributionmanagement> <repository> <id>local-repository</id> <name>my staging component repo</name> <url>file:///m2_repo</url> </repository> </distributionmanagement> Inside the <distributionmanagement> section, you specify the Maven repository where the release should be deployed to. Usually the Maven repository is a remote (HTTP) server and the upload to it is done via SSH. However, for now we will use a folder on the local file system because it works as well. To finish the release procedure you simply need to invoke the release:perform goal: mvn release:perform The plugin now creates a target/checkout directory and checks out the previously created Subversion tagged version of your project. Next, it executes the normal build process. However, with the release:perform goal, we not only generate the normal JAR file (or whatever deployment unit your project delivers), the plugin also generates the matching javadoc-jar and source-jar files: my-tool alpha-javadoc.jar my-tool alpha-sources.jar my-tool alpha.jar During the execution of the release:perform goal, the maven-release-plugin uses the deploy-plugin and handles the upload to the Maven repository, which has been configured in the <distributionmanagement> section of your project s pom.xml file. If no error occurs, the release-plugin cleans up its temporary files by internally calling mvn release:clean. This erases the backup POM files (pom.xml.releasebackup) and the release.properties file, which stores information about the ongoing release process. Congratulations! Your release is complete. Over the course of this guide, you saw that Maven has many useful features that are implemented through its plugins. However, there is still some room to improve this release process. By configuring a remote repository (the component repository), the invocation of mvn release:perform will deploy the artifacts to the server. However, you don t always want to directly deploy the newly generated Maven artifacts to a production Maven repository. In a case like that, the release:stage goal is your friend: mvn release:stage -DstagingRepository=remote-repo::default::scpexe://URL_TO_DIR The release:stage goal does not require a repository URL to be present in the pom.xml, but the same settings.xml configuration is still needed! Note that the stagingrepository parameter starts with the ID of the specified server. A software release requires more than just compiling sources from a Subversion tag. The generated artifacts (such as documentation and binary JAR file) are reviewed and tested by the QA team. Of course, every project has a bunch of JUnit tests and the entire development even starts with a test case. The final testing is still done by the QA team, who eventually approves the release. The QA gets the released artifacts from a staging Maven Repository. The best solution would be that the QA and the customer get exactly those files that have been tested and verified by the QA team. Sometimes, it is a requirement that you need to make the exact JAR files available that you used for testing, for example, when a project is implementing a Java standard and executing a test compatibility test kit (TCK) as part of the required test plan. This could be the above specified file:///m2_repo directory, which could be mounted as a network device. The QA test plan is executed against the previously created release artifacts. Once the QA team gives their OK, the Maven artifacts should be deployed to a production/release Maven repository. Here are a few options for automating the deployment: 1. Rebuild the bits from the Subversion tag. Once you build the code, you will need to use the maven-deployplugin to get the artifacts deployed. This plugin reruns the important parts of the previous release procedure, without having QA to test the generated bits. Testing is important because it is always possible that some mistakes happen while rebuilding the release from the TAG folder.
7 7 2. Copy the artifacts to the final repository using secure copy, scp, or copy, cp, to manually copy the artifacts. This ensures the exact JAR files are made available through the Maven repository. However, doing so would destroy the maven metadata (see below). 3. Using the maven-stage-plugin. Use the stage:copy goal: mvn stage:copy -Dsource= file:///m2_local_staging_repo/ \ -Dtarget= scp://maven_repository_server/path/to/repo \ -Dversion=1.2.3 The plugin is basically a smarter version of the copy process, which also honors the maven metadata. The plugin creates a ZIP file of all in the local staging repository and uploads it to the given remote server by using scp. Once the upload is done, the ZIP is extracted and later removed. This means that the artifacts are now correctly deployed to your Maven repository. The plugin is useful, especially when you care about having intact maven metadata files. However, the plugin itself has some small issues. You have to specify a (meaningless) version parameter and it is not possible to download from a remote server to your local folder. Additionally, your current user account needs to exist on the server and you are required to have the write access rights for the remote directory. Finally, the password entered for the remote account is displayed in plaintext. These are significant limitations, but the overall benefit outweighs the extra effort and results in having correct metadata files. 4. Copy the artifact via the repository manager feature set. Artifactory provides a context menu for all artifacts in your repositories, as seen in figure 2. You can mark artifacts and copy (or move) them to another repository (for example, a special staging repository). Artifactory provides a dry run feature. This way, you can first try to execute the command without any commit to keep a consistent state even if something goes wrong. If your check is successful, you can then execute the command. You can also use advanced staging strategies by applying matrix parameters and smart searches. Figure 2 Copy artifacts to a staging repository with Artifactory Summary This article introduced release management with Maven. We learned that it is possible to host Maven artifacts in Subversion, although using a dedicated repository manager like Artifactory adds much more value and results in a better solution.
8 8 Here are some other Manning titles you might be interested in: Becoming Agile in an imperfect world Greg Smith and Ahmed Sidky Specification by Example Gojko Adzic Enterprise Search in Action Marc Teutelink Last updated: July 20, 2011
Maven or how to automate java builds, tests and version management with open source tools
Maven or how to automate java builds, tests and version management with open source tools Erik Putrycz Software Engineer, Apption Software [email protected] Outlook What is Maven Maven Concepts and
Content. Development Tools 2(63)
Development Tools Content Project management and build, Maven Version control, Git Code coverage, JaCoCo Profiling, NetBeans Static Analyzer, NetBeans Continuous integration, Hudson Development Tools 2(63)
Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI)
Sonatype CLM Enforcement Points - Continuous Integration (CI) i Sonatype CLM Enforcement Points - Continuous Integration (CI) Sonatype CLM Enforcement Points - Continuous Integration (CI) ii Contents 1
Software Delivery Integration and Source Code Management. for Suppliers
Software Delivery Integration and Source Code Management for Suppliers Document Information Author Version 1.0 Version Date 8/6/2012 Status final Approved by Reference not applicable Subversion_for_suppliers.doc
Version Control. Luka Milovanov [email protected]
Version Control Luka Milovanov [email protected] Configuration Management Configuration management is the management of system change to software products Version management: consistent scheme of version
Jenkins on Windows with StreamBase
Jenkins on Windows with StreamBase Using a Continuous Integration (CI) process and server to perform frequent application building, packaging, and automated testing is such a good idea that it s now a
SOFTWARE DEVELOPMENT BASICS SED
SOFTWARE DEVELOPMENT BASICS SED Centre de recherche Lille Nord Europe 16 DÉCEMBRE 2011 SUMMARY 1. Inria Forge 2. Build Process of Software 3. Software Testing 4. Continuous Integration 16 DECEMBRE 2011-2
Continuous Integration The Full Monty Artifactory and Gradle. Yoav Landman & Frederic Simon
Continuous Integration The Full Monty Artifactory and Gradle Yoav Landman & Frederic Simon About us Yoav Landman Creator of Artifactory, JFrog s CTO Frederic Simon JFrog s Chief Architect 10+ years experience
Sonatype CLM for Maven. Sonatype CLM for Maven
Sonatype CLM for Maven i Sonatype CLM for Maven Sonatype CLM for Maven ii Contents 1 Introduction 1 2 Creating a Component Index 3 2.1 Excluding Module Information Files in Continuous Integration Tools...........
Introducing Xcode Source Control
APPENDIX A Introducing Xcode Source Control What You ll Learn in This Appendix: u The source control features offered in Xcode u The language of source control systems u How to connect to remote Subversion
BlueJ Teamwork Tutorial
BlueJ Teamwork Tutorial Version 2.0 for BlueJ Version 2.5.0 (and 2.2.x) Bruce Quig, Davin McCall School of Engineering & IT, Deakin University Contents 1 OVERVIEW... 3 2 SETTING UP A REPOSITORY... 3 3
Version Control with Subversion and Xcode
Version Control with Subversion and Xcode Author: Mark Szymczyk Last Update: June 21, 2006 This article shows you how to place your source code files under version control using Subversion and Xcode. By
Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012
Jenkins Continuous Build System Jesse Bowes CSCI-5828 Spring 2012 Executive summary Continuous integration systems are a vital part of any Agile team because they help enforce the ideals of Agile development
<Insert Picture Here> Introducing Hudson. Winston Prakash. Click to edit Master subtitle style
Introducing Hudson Click to edit Master subtitle style Winston Prakash What is Hudson? Hudson is an open source continuous integration (CI) server. A CI server can do various tasks
Subversion Integration for Visual Studio
Subversion Integration for Visual Studio VisualSVN Team VisualSVN: Subversion Integration for Visual Studio VisualSVN Team Copyright 2005-2008 VisualSVN Team Windows is a registered trademark of Microsoft
Build management & Continuous integration. with Maven & Hudson
Build management & Continuous integration with Maven & Hudson About me Tim te Beek [email protected] Computer science student Bioinformatics Research Support Overview Build automation with Maven Repository
Software project management. and. Maven
Software project management and Maven Problem area Large software projects usually contain tens or even hundreds of projects/modules Will become messy if the projects don t adhere to some common principles
How to set up SQL Source Control. The short guide for evaluators
How to set up SQL Source Control The short guide for evaluators Content Introduction Team Foundation Server & Subversion setup Git setup Setup without a source control system Making your first commit Committing
CPSC 491. Today: Source code control. Source Code (Version) Control. Exercise: g., no git, subversion, cvs, etc.)
Today: Source code control CPSC 491 Source Code (Version) Control Exercise: 1. Pretend like you don t have a version control system (e. g., no git, subversion, cvs, etc.) 2. How would you manage your source
Using Git for Project Management with µvision
MDK Version 5 Tutorial AN279, Spring 2015, V 1.0 Abstract Teamwork is the basis of many modern microcontroller development projects. Often teams are distributed all over the world and over various time
Maven2 Reference. Invoking Maven General Syntax: Prints help debugging output, very useful to diagnose. Creating a new Project (jar) Example:
Maven2 Reference Invoking Maven General Syntax: mvn plugin:target [-Doption1 -Doption2 dots] mvn help mvn -X... Prints help debugging output, very useful to diagnose Creating a new Project (jar) mvn archetype:create
Version Control with. Ben Morgan
Version Control with Ben Morgan Developer Workflow Log what we did: Add foo support Edit Sources Add Files Compile and Test Logbook ======= 1. Initial version Logbook ======= 1. Initial version 2. Remove
Version Control with Subversion
Version Control with Subversion Introduction Wouldn t you like to have a time machine? Software developers already have one! it is called version control Version control (aka Revision Control System or
Version Control! Scenarios, Working with Git!
Version Control! Scenarios, Working with Git!! Scenario 1! You finished the assignment at home! VC 2 Scenario 1b! You finished the assignment at home! You get to York to submit and realize you did not
Version control. HEAD is the name of the latest revision in the repository. It can be used in subversion rather than the latest revision number.
Version control Version control is a powerful tool for many kinds of work done over a period of time, including writing papers and theses as well as writing code. This session gives a introduction to a
How To Run A Hello World On Android 4.3.3 (Jdk) On A Microsoft Ds.Io (Windows) Or Android 2.7.3 Or Android 3.5.3 On A Pc Or Android 4 (
Developing Android applications in Windows Below you will find information about the components needed for developing Android applications and other (optional) software needed to connect to the institution
Software infrastructure for Java development projects
Tools that can optimize your development process Software infrastructure for Java development projects Presentation plan Software Development Lifecycle Tools What tools exist? Where can tools help? Practical
Vladimir Bakhov AT-Consulting [email protected] +7 (905) 7165446
Vladimir Bakhov AT-Consulting [email protected] +7 (905) 7165446 Svetlana Panfilova AT-Consulting [email protected] +7 (903) 1696490 Google group for this presentation is vobaks Source
Builder User Guide. Version 6.0.1. Visual Rules Suite - Builder. Bosch Software Innovations
Visual Rules Suite - Builder Builder User Guide Version 6.0.1 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312
Introduction to Source Control Management in OO 10
HP OO 10 OnBoarding Kit Community Assistance Team Introduction to Source Control Management in OO 10 HP Operations Orchestration 10 comes with an enhanced development model which is completely aligned
BarTender Version Upgrades. Best practices for updating your BarTender installation WHITE PAPER
BarTender Version Upgrades Best practices for updating your BarTender installation WHITE PAPER Contents Understanding Version Upgrades 3 Upgrading BarTender to a Newer Version 4 Planning a Version Upgrade
Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation
Practicing Continuous Delivery using Hudson Winston Prakash Oracle Corporation Development Lifecycle Dev Dev QA Ops DevOps QA Ops Typical turn around time is 6 months to 1 year Sprint cycle is typically
Introduction to Subversion
Introduction to Subversion Getting started with svn Matteo Vescovi 19/02/2010 Agenda A little bit of theory Overview of Subversion Subversion approach to Version Control Using Subversion Typical subversion
Version Control Using Subversion. Version Control Using Subversion 1 / 27
Version Control Using Subversion Version Control Using Subversion 1 / 27 What Is Version Control? Version control is also known as revision control. Version control is provided by a version control system
Automated performance testing using Maven & JMeter. George Barnett, Atlassian Software Systems @georgebarnett
Automated performance testing using Maven & JMeter George Barnett, Atlassian Software Systems @georgebarnett Create controllable JMeter tests Configure Maven to create a repeatable cycle Run this build
Efficient Automated Build and Deployment Framework with Parallel Process
Efficient Automated Build and Deployment Framework with Parallel Process Prachee Kamboj 1, Lincy Mathews 2 Information Science and engineering Department, M. S. Ramaiah Institute of Technology, Bangalore,
Continuous Integration: Put it at the heart of your development
Continuous Integration: Put it at the heart of your development Susan Duncan Tools Product Manager, Oracle 1 Program Agenda What is CI? What Does It Mean To You? Make it Hudson Evolving Best Practice For
Pragmatic Version Control
Extracted from: Pragmatic Version Control using Subversion, 2nd Edition This PDF file contains pages extracted from Pragmatic Version Control, one of the Pragmatic Starter Kit series of books for project
How To Use An Orgsync With Anorgfusion Middleware
Oracle Fusion Middleware Developing Applications Using Continuous Integration 12c (12.1.2) E26997-02 February 2014 Describes how to build automation and continuous integration for applications that you
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments. George Bochenek Randy Jones
JavaScript Applications for the Enterprise: From Empty Folders to Managed Deployments George Bochenek Randy Jones Enterprise Development What is it? Source Control Project Organization Unit Testing Continuous
Builder User Guide. Version 5.4. Visual Rules Suite - Builder. Bosch Software Innovations
Visual Rules Suite - Builder Builder User Guide Version 5.4 Bosch Software Innovations Americas: Bosch Software Innovations Corp. 161 N. Clark Street Suite 3500 Chicago, Illinois 60601/USA Tel. +1 312
Oracle Fusion Middleware. 1 Oracle Team Productivity Center Server System Requirements. 2 Installing the Oracle Team Productivity Center Server
Oracle Fusion Middleware Installation Guide for Oracle Team Productivity Center Server 11g Release 2 (11.1.2.1.0) E17075-02 September 2011 This document provides information on: Section 1, "Oracle Team
Hudson configuration manual
Hudson configuration manual 1 Chapter 1 What is Hudson? Hudson is a powerful and widely used open source continuous integration server providing development teams with a reliable way to monitor changes
Source Control Guide: Git
MadCap Software Source Control Guide: Git Flare 11.1 Copyright 2015 MadCap Software. All rights reserved. Information in this document is subject to change without notice. The software described in this
Using InstallAware 7. To Publish Web Updates. November 2007
Using InstallAware 7 To Publish Web Updates November 2007 The information contained in this document represents the current view of InstallAware Software Corporation on the issues discussed as of the date
Continuous Delivery for Alfresco Solutions. Satisfied customers and happy developers with!! Continuous Delivery!
Continuous Delivery for Alfresco Solutions Satisfied customers and happy developers with!! Continuous Delivery! About me Roeland Hofkens #rhofkens [email protected] http://opensource.westernacher.com
Global Software Change Management for PVCS Version Manager
Global Software Change Management for PVCS Version Manager... www.ikanalm.com Summary PVCS Version Manager is considered as one of the leading versioning tools that offers complete versioning control.
D5.4.4 Integrated SemaGrow Stack API components
ICT Seventh Framework Programme (ICT FP7) Grant Agreement No: 318497 Data Intensive Techniques to Boost the Real Time Performance of Global Agricultural Data Infrastructures Deliverable Form Project Reference
Drupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
Nick Ashley TOOLS. The following table lists some additional and possibly more unusual tools used in this paper.
TAKING CONTROL OF YOUR DATABASE DEVELOPMENT Nick Ashley While language-oriented toolsets become more advanced the range of development and deployment tools for databases remains primitive. How often is
DAVE Usage with SVN. Presentation and Tutorial v 2.0. May, 2014
DAVE Usage with SVN Presentation and Tutorial v 2.0 May, 2014 Required DAVE Version Required DAVE version: v 3.1.6 or higher (recommend to use the most latest version, as of Feb 28, 2014, v 3.1.10) Required
Using GitHub for Rally Apps (Mac Version)
Using GitHub for Rally Apps (Mac Version) SOURCE DOCUMENT (must have a rallydev.com email address to access and edit) Introduction Rally has a working relationship with GitHub to enable customer collaboration
CI/CD Cheatsheet. Lars Fabian Tuchel Date: 18.March 2014 DOC:
CI/CD Cheatsheet Title: CI/CD Cheatsheet Author: Lars Fabian Tuchel Date: 18.March 2014 DOC: Table of Contents 1. Build Pipeline Chart 5 2. Build. 6 2.1. Xpert.ivy. 6 2.1.1. Maven Settings 6 2.1.2. Project
Introduction to Programming Tools. Anjana & Shankar September,2010
Introduction to Programming Tools Anjana & Shankar September,2010 Contents Essentials tooling concepts in S/W development Build system Version Control System Testing Tools Continuous Integration Issue
Software Quality Exercise 2
Software Quality Exercise 2 Testing and Debugging 1 Information 1.1 Dates Release: 12.03.2012 12.15pm Deadline: 19.03.2012 12.15pm Discussion: 26.03.2012 1.2 Formalities Please submit your solution as
Beginners guide to continuous integration. Gilles QUERRET Riverside Software
Beginners guide to continuous integration Gilles QUERRET Riverside Software About the speaker Working with Progress and Java since 10 years Started Riverside Software 7 years ago Based in Lyon, France
Developing Applications Using Continuous Integration 12c (12.2.1)
[1]Oracle Fusion Middleware Developing Applications Using Continuous Integration 12c (12.2.1) E55590-01 October 2015 Describes how to build automation and continuous integration for applications that you
Change Manager 5.0 Installation Guide
Change Manager 5.0 Installation Guide Copyright 1994-2008 Embarcadero Technologies, Inc. Embarcadero Technologies, Inc. 100 California Street, 12th Floor San Francisco, CA 94111 U.S.A. All rights reserved.
Developing In Eclipse, with ADT
Developing In Eclipse, with ADT Android Developers file://v:\android-sdk-windows\docs\guide\developing\eclipse-adt.html Page 1 of 12 Developing In Eclipse, with ADT The Android Development Tools (ADT)
Ipswitch Client Installation Guide
IPSWITCH TECHNICAL BRIEF Ipswitch Client Installation Guide In This Document Installing on a Single Computer... 1 Installing to Multiple End User Computers... 5 Silent Install... 5 Active Directory Group
Continuous Integration
Continuous Integration Collaborative development issues Checkout of a shared version of software ( mainline ) Creation of personal working copies of developers Software development: modification of personal
Integrating your Maven Build and Tomcat Deployment
Integrating your Maven Build and Tomcat Deployment Maven Publishing Plugin for Tcat Server MuleSource and the MuleSource logo are trademarks of MuleSource Inc. in the United States and/or other countries.
QlikView 11 Source Control Walkthrough
QlikView 11 Source Control Walkthrough A QlikView Technology White Paper Originally published: August, 2011 Updated August, 2012 www.qlikview.com 1 Table of Contents BACKGROUND... 3 SOURCE CONTROL BASICS...
Source Control Systems
Source Control Systems SVN, Git, GitHub SoftUni Team Technical Trainers Software University http://softuni.bg Table of Contents 1. Software Configuration Management (SCM) 2. Version Control Systems: Philosophy
UOFL SHAREPOINT ADMINISTRATORS GUIDE
UOFL SHAREPOINT ADMINISTRATORS GUIDE WOW What Power! Learn how to administer a SharePoint site. [Type text] SharePoint Administrator Training Table of Contents Basics... 3 Definitions... 3 The Ribbon...
CISC 275: Introduction to Software Engineering. Lab 5: Introduction to Revision Control with. Charlie Greenbacker University of Delaware Fall 2011
CISC 275: Introduction to Software Engineering Lab 5: Introduction to Revision Control with Charlie Greenbacker University of Delaware Fall 2011 Overview Revision Control Systems in general Subversion
SDK Code Examples Version 2.4.2
Version 2.4.2 This edition of SDK Code Examples refers to version 2.4.2 of. This document created or updated on February 27, 2014. Please send your comments and suggestions to: Black Duck Software, Incorporated
Hudson Continous Integration Server. Stefan Saasen, [email protected]
Hudson Continous Integration Server Stefan Saasen, [email protected] Continous Integration Software development practice Members of a team integrate their work frequently Each integration is verified by
Software project management. and. Maven
Software project management and Maven Problem area Large software projects usually contain tens or even hundreds of projects/modules Will become messy and incomprehensible ibl if the projects don t adhere
Automatic promotion and versioning with Oracle Data Integrator 12c
Automatic promotion and versioning with Oracle Data Integrator 12c Jérôme FRANÇOISSE Rittman Mead United Kingdom Keywords: Oracle Data Integrator, ODI, Lifecycle, export, import, smart export, smart import,
NASA Workflow Tool. User Guide. September 29, 2010
NASA Workflow Tool User Guide September 29, 2010 NASA Workflow Tool User Guide 1. Overview 2. Getting Started Preparing the Environment 3. Using the NED Client Common Terminology Workflow Configuration
Developing Software in a Private workspace - 4.01 PM PMS
SBCH06.fm Page 67 Friday, October 4, 2002 4:01 PM 6 Private Workspace A government clerk s room, showing a desk with books, telephone and directory, and a desk lamp on it. Washington, D.C., 1939. Photo
Version Uncontrolled! : How to Manage Your Version Control
Version Uncontrolled! : How to Manage Your Version Control Harold Dost III, Raastech ABSTRACT Are you constantly wondering what is in your production environment? Do you have any doubts about what code
Software configuration management
Software Engineering Theory Software configuration management Lena Buffoni/ Kristian Sandahl Department of Computer and Information Science 2015-09-30 2 Maintenance Requirements System Design (Architecture,
MALWAREBYTES PLUGIN DOCUMENTATION
Contents Requirements... 2 Installation Scenarios... 2 Malwarebytes 2.xx or 1.75 is already deployed.... 2 Install / Update Malwarebytes Plugin... 3 Configuring Malwarebytes Plugin... 5 About the Screens...
IKAN ALM Architecture. Closing the Gap Enterprise-wide Application Lifecycle Management
IKAN ALM Architecture Closing the Gap Enterprise-wide Application Lifecycle Management Table of contents IKAN ALM SERVER Architecture...4 IKAN ALM AGENT Architecture...6 Interaction between the IKAN ALM
IBM WebSphere Application Server Version 7.0
IBM WebSphere Application Server Version 7.0 Centralized Installation Manager for IBM WebSphere Application Server Network Deployment Version 7.0 Note: Before using this information, be sure to read the
Using Microsoft Visual Studio 2010. API Reference
2010 API Reference Published: 2014-02-19 SWD-20140219103929387 Contents 1... 4 Key features of the Visual Studio plug-in... 4 Get started...5 Request a vendor account... 5 Get code signing and debug token
Modulo II Software Configuration Management - SCM
Modulo II Software Configuration Management - SCM Professor Ismael H F Santos [email protected] April 05 Prof. Ismael H. F. Santos - [email protected] 1 Bibliografia Introduction to Apache
Continuous Integration
Continuous Integration Sébastien Besson Open Microscopy Environment Wellcome Trust Centre for Gene Regulation & Expression College of Life Sciences, University of Dundee Dundee, Scotland, UK 1 Plan 1.
Practice Fusion API Client Installation Guide for Windows
Practice Fusion API Client Installation Guide for Windows Quickly and easily connect your Results Information System with Practice Fusion s Electronic Health Record (EHR) System Table of Contents Introduction
Backing Up TestTrack Native Project Databases
Backing Up TestTrack Native Project Databases TestTrack projects should be backed up regularly. You can use the TestTrack Native Database Backup Command Line Utility to back up TestTrack 2012 and later
Getting started with OWASP WebGoat 4.0 and SOAPUI.
Getting started with OWASP WebGoat 4.0 and SOAPUI. Hacking web services, an introduction. Version 1.0 by Philippe Bogaerts [email protected] www.radarhack.com Reviewed by Erwin Geirnaert
State of Michigan Data Exchange Gateway. Web-Interface Users Guide 12-07-2009
State of Michigan Data Exchange Gateway Web-Interface Users Guide 12-07-2009 Page 1 of 21 Revision History: Revision # Date Author Change: 1 8-14-2009 Mattingly Original Release 1.1 8-31-2009 MM Pgs 4,
CSE 70: Software Development Pipeline Build Process, XML, Repositories
CSE 70: Software Development Pipeline Build Process, XML, Repositories Ingolf Krueger Department of Computer Science & Engineering University of California, San Diego La Jolla, CA 92093-0114, USA California
Software Configuration Management and Continuous Integration
1 Chapter 1 Software Configuration Management and Continuous Integration Matthias Molitor, 1856389 Reaching and maintaining a high quality level is essential for each today s software project. To accomplish
Installation Guide for contineo
Installation Guide for contineo Sebastian Stein Michael Scholz 2007-02-07, contineo version 2.5 Contents 1 Overview 2 2 Installation 2 2.1 Server and Database....................... 2 2.2 Deployment............................
Using Subversion in Computer Science
School of Computer Science 1 Using Subversion in Computer Science Last modified July 28, 2006 Starting from semester two, the School is adopting the increasingly popular SVN system for management of student
RecoveryVault Express Client User Manual
For Linux distributions Software version 4.1.7 Version 2.0 Disclaimer This document is compiled with the greatest possible care. However, errors might have been introduced caused by human mistakes or by
ControlPoint. Advanced Installation Guide. Publication Date: January 12, 2016. Metalogix International GmbH., 2008-2016 All Rights Reserved.
ControlPoint Publication Date: January 12, 2016 All Rights Reserved. This software is protected by copyright law and international treaties. Unauthorized reproduction or distribution of this software,
Advanced Computing Tools for Applied Research Chapter 4. Version control
Advanced Computing Tools for Applied Research Jaime Boal Martín-Larrauri Rafael Palacios Hielscher Academic year 2014/2015 1 Version control fundamentals 2 What you probably do now Manually save copies
In depth study - Dev teams tooling
In depth study - Dev teams tooling Max Åberg mat09mab@ Jacob Burenstam Linder ada09jbu@ Desired feedback Structure of paper Problem description Inconsistencies git story explanation 1 Introduction Hypotheses
Exchange Brick-level Backup and Restore
WHITEPAPER BackupAssist Version 4 Exchange Mailbox Add-on www.backupassist.com 2 Contents 1. Introduction and Overview... 3 1.1 What does the Exchange Mailbox Add-on do?... 3 1.2 Who needs the Exchange
Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise. #jenkinsconf. Jenkins User Conference Boston #jenkinsconf
Case Study: Using Jenkins to Build WebSphere Portal Applications for the Enterprise Sam Alexander Senior Managing Consultant IBM Software Services for Collaboration June 18, 2014 #jenkinsconf Topics Typical
DocuShare Installation Guide
DocuShare Installation Guide Publication date: May 2009 This document supports DocuShare Release 6.5/DocuShare CPX Release 6.5 Prepared by: Xerox Corporation DocuShare Business Unit 3400 Hillview Avenue
Side-by-side Migration Guide for Snare Server v7
Side-by-side Migration Guide for Snare Server v7 Intersect Alliance International Pty Ltd. All rights reserved worldwide. Intersect Alliance Pty Ltd shall not be liable for errors contained herein or for
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved
ultimo theme Update Guide Copyright 2012-2013 Infortis All rights reserved 1 1. Update Before you start updating, please refer to 2. Important changes to check if there are any additional instructions
