Maven SCM Plugin for RTC
![]()
David Lafreniere (4.8k●7)
| asked Jul 20 '10, 3:41 p.m.
FORUM MODERATOR / JAZZ DEVELOPER edited Oct 06 '16, 10:24 a.m.
Please use this forum topic to discuss the ongoing development of the Maven SCM Plugin for RTC.
I would especially like to know how users intend to use the Maven SCM Plugin and especially the Maven Release plugin in the context of RTC. What would really help is if you could provide a short description of what you feel each scm goal should do. (What would help even more if you could provide a sample Jazz SCM CLI line on exactly what you feel should be done). Often difficulty occurs because we are bound to the Maven SCM Plugin framework, and the level of information supplied to us for each goal may be too little or to much in order to easily map it 1:1 to an RTC use case scenario. RTC SCM is great at being flexible for team (or even personal) use, but it also has many "things" that other traditional SCM systems do not. Questions of discussion could be: 1. Should the checkin goal automatically create and "complete" a change set with the given message/comment every time the checkin goal is executed?. Should it also "deliver" this change set with every checkin goal? or should it just check in files to the existing change set? 2. The checkout goal allows an optional passed in ScmVersion Maven object. For example, the release-plugin calls this checkout goal in the release:perform goal and used this ScmVersion object to represent a "snapshot" which was created in the release:prepare goal. However Jazz RTC does not allow you to checkout (i.e. "load") a particular snapshot. Can we come up with an agreed upon action for this scenario? 2a. One option would be to temporarily create another repository workspace which is based on the given snapshot. This would allow the user to checkout the files properly. However one problem is that these SCM goals act against the workspace defined in the SCM URL (in the pom.xml), thus future goals such as (status or checkin) would be against the original repository workspace, and not the one we checked out of... 3. The "project structure" of Maven projects and RTC/Eclipse projects are different. Maven has the concept of "parent projects" in which entire child projects exist below a parent project, whereas in Eclipse/RTC each project generally exists at the same root level. At the surface this doesn't appear to be a problem, but some Maven users may not be able to do what they want with the Jazz SCM provider. In particular, Jazz SCM does not allow checking out a project underneath another checked out project (i.e. can't have a sandbox in a sandbox). 3a. Ex: During an initial test run of release:perform (after performing after a release:prepare), I saw that the supplied checkout directory was "<releaseProject>\target\checkout" (Which Jazz Scm cannot do). Please see the following Wiki document for additional information. https://jazz.net/wiki/bin/view/Main/BuildFAQ#Does_Jazz_Team_Build_support_Mav |
104 answers
![]()
So if my thinking is correct. All instances similar to:
// Now that we have a list of files to process, we can "add" (scm checkin) them. JazzAddConsumer addConsumer = new JazzAddConsumer( repo, getLogger() ); ErrorConsumer errConsumer = new ErrorConsumer( getLogger() ); JazzScmCommand command = createAddCommand( repo, fileSet ); int status = command.execute( addConsumer, errConsumer ); if ( status != 0 || errConsumer.hasBeenFed() ) { return new AddScmResult( command.getCommandString(), "Error code for Jazz SCM add (checkin) command - " + status, errConsumer.getOutput(), false ); } return new AddScmResult( command.getCommandString(), addConsumer.getFiles() );Will become: // Now that we have a list of files to process, we can "add" (scm checkin) them. JazzAddConsumer addConsumer = new JazzAddConsumer( repo, getLogger() ); ErrorConsumer errConsumer = new ErrorConsumer( getLogger() ); JazzScmCommand command = createAddCommand( repo, fileSet ); int status = command.execute( addConsumer, errConsumer ); if ( status != 0 ) { return new AddScmResult( command.getCommandString(), "Error code for Jazz SCM add (checkin) command - " + status, errConsumer.getOutput(), false ); } return new AddScmResult( command.getCommandString(), addConsumer.getFiles() );Which is consistent with the other providers (that I checked). |
![]()
I appologize if this is not the correct forum to post this question, but there is something missing in the Jazz-SCM maven plugin documentation plugin on https://maven.apache.org/scm/maven-scm-providers/maven-scm-provider-jazz/index.html.
Under the section `Flow Targets`, the documentation reads:
A deliver or accept operates between a repository workspace and its flow target, normally a stream but could also be another repository workspace . The promote is used toCan someone please fill in the blank? A `promote` is used to ... what? Comments Hmmm. A very good question!
Nope. Looking at the history, I never finished the sentence, and you're the first one to pick it up. Thanks!
|
![]()
I am having a lot of trouble configuring my pom to get the SCM Jazz plugin to work (I've already posted a question to that extent).
Do you by any chance have a working example using the plugin that I would be able to examine?
|
Your answer
Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.