blob: 84c707d66a437a1e6e8137edc30a207ed20976e3 [file] [log] [blame]
------
SCM Implementation: Jazz
------
Chris Graham
--------------
2012-03-19
--------------
~~ 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/doxia/references/apt-format.html
SCM Implementation: Jazz
* General Info
This SCM provider wrappers the underlying command line tool "scm" that is provided as part of Jazz SCM offering.
As such, this provider is subject to the capabilities provided by the scm tool.
The scm tool itself is documented at:
*V2.0.0 {{http://publib.boulder.ibm.com/infocenter/rtc/v2r0m0/topic/com.ibm.team.scm.doc/topics/r_scm_cli_scm.html}}
*V3.0 {{http://publib.boulder.ibm.com/infocenter/clmhelp/v3r0/topic/com.ibm.team.scm.doc/topics/r_scm_cli_scm.html}}
* V3.0.1 {{http://publib.boulder.ibm.com/infocenter/clmhelp/v3r0m1/topic/com.ibm.team.scm.doc/topics/r_scm_cli_scm.html}}
[]
Jazz is available from:
Link: {{http://jazz.net/}}
License: Free
IBM Rational Team Concert is IBM commercial offering based upon the Jazz base platform. This provider may
also be used with RTC.
Link: {{http://www-01.ibm.com/software/rational/products/rtc/}}
License: Commercial
* Environment Configuration
The Jazz SCM source control command line tools are installed in JazzInstallDir/scmtools/eclipse,
which may not have been added to your default path. You must make sure that this path is available to maven when
using this provider.
Additionally, the user used to log onto the Jazz SCM server must be assigned a
{{{http://publib.boulder.ibm.com/infocenter/clmhelp/v3r0m1/topic/com.ibm.jazz.repository.web.admin.doc/topics/c_license_mgmt_over.html}Developer Client Access License}}.
10 developer licenses are available for free from {{http://jazz.net/}}.
* SCM URL
<<<scm:jazz:[username[;password]@]http[s]://server_name[:port]/jazzPath:repositoryWorkspace>>>
* <username;password> May be provided directly in the pom, or using the server_name:port to obtain
the details from the user's settings.xml file.
* http[s]://server_name:port/jazzPath Specify the jazz server and path to connect to.
* <repositoryWorkspace> The name of the user's remote repository workspace used to checkin to, or load from.
[]
+-------
scm:jazz:[username[;password]@]http[s]://server_name[:port]/jazzPath:repositoryWorkspace
+-------
* Examples
-------
scm:jazz:username;password@https://server.name:9443/jazz:Chris's Repository Workspace
-------
-------
scm:jazz:https://server.name:9443/jazz:Chris's Repository Workspace
-------
-------
scm:jazz:https://server.name:9443/ccm:GPDBBuildWorkspace
-------
* Jazz SCM Concepts and Artefacts
This provider only interacts with Jazz SCM, not all of the full capabilities of the full
Jazz Server. This implementation is basically a wrapper for the Jazz SCM CLI tool, <<<scm>>>,
and as such it is limited to the functionality provided by the underlying <<<scm>>> tool.
There are many artifacts and concepts in Jazz SCM. Many of these artifacts and concepts are
substantially different than how many other SCM providers work.
We need some way to address these when we try to map the given maven-scm framework to Jazz SCM.
Below is a list of these "artifacts / concepts" and roughly how they relate to the maven-scm framework.
* Local Workspace
* This corresponds to fileSet.getBasedir() and is the "baseDirectory" in which the SCM goals are performed against.
* Url Path (ex: https://localhost)
* This must be specified in the "SCM URL" of the pom.xml.
* It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
* Port (ex: 9443)
* This must be specified in the "SCM URL" of the pom.xml.
* It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
* Jazz Path (ex: /jazz)
* This must be specified in the "SCM URL" of the pom.xml.
* It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
* Repository Workspace
* This must be specified in the "SCM URL" of the pom.xml.
* It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
* Username
* This may be specified in the "SCM URL" of the pom.xml.
* If not specified in the pom.xml, the username must be specified in a server entry of settings.xml.
* It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java.
* Password
* This may be specified in the "SCM URL" of the pom.xml.
* If not specified in the pom.xml, the username must be specified in a server entry of settings.xml.
* It's value will be stored in our implementation of the ScmProviderRepositoryWithHost.java
* Components
* There is currently no concept of individual components in our implementation, or specifying them,
they are implicitly obtained from the repository workspace.
* Scm goals are currently assumed to be against all components in the repository workspace.
* Baselines
* Since we don't distinguish components, we do not use the concept of baselines.
* Snapshots
* We can use snapshots because we have a repository workspace defined in the SCM URL.
* We assume that ScmVersion.getName() will correspond to a snapshot name.
* Streams
* We currently do not support the concept of streams in our provider.
* Project Areas
* We currently do not support the concept of project areas in our provider.
* Team Areas
* We currently do not support the concept of team areas in our provider.
* Multiple Outgoing Change Sets
* The SCM add operation performs a checkin, but it does not create a new change set.
* The SCM checkin operation creates a new changeset, with the given comment and then checks the files in.
* Delivering Change Sets
* Changes are delivered/promoted as controlled by the <<<pushChanges>>> flag when we have a valid flow target.
* Discarding Change Sets
* We currently do not support the concept of discarding change sets in our provider.