Maven SCM Plugin for RTC
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
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
Hello,
i download the Build Tool Kit 2.0.0.2 Fix3 and Fix5 but i don't find the jazz-scm-plugin.zip ! Bouuuhouhou. :(
Do someone know where can i download it ?
i download the Build Tool Kit 2.0.0.2 Fix3 and Fix5 but i don't find the jazz-scm-plugin.zip ! Bouuuhouhou. :(
Do someone know where can i download it ?
In the line 2 above, the scmUrl is identified ok, but in line 7, the parameter --repository-uri is mounted as "https://caelum" where should be https://caelum:9443, if you see the last information in this line, you can see the lost 9443
Partial Log:
1 - Tagging release with the label JC5_ServicosRetaguarda-1.17...
2 - scmUrl - rtcbuild;passwordishere@https://caelum:9443
3 - Scheme - https
4 - ScmTagPhase :: scmTagParameters remotingTag true
5 - ScmTagPhase :: scmTagParameters scmRevision null
6 - Executing tag command...
7 - Command line - /bin/sh -c cd /home/likewise-open/DOMAIN.COM.BR/USERHOME/meus_projetos/JC5_ServicosRetaguarda && scm create snapshot --repository-uri https://caelum --username rtcbuild --password passwordishere --name JC5_ServicosRetaguarda-1.17 --description ' copy for tag JC5_ServicosRetaguarda-1.17' 9443
8 - err - Problema ao executar 'create snapshot':
Important party of my config:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0</version>
<configuration>
<tagBase>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</tagBase>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.4</version>
<configuration>
<message>Release automatizado de versao.</message>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</plugin>
<scm>
<connection>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</connection>
<developerConnection>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</developerConnection>
<url>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</url>
</scm>
Partial Log:
1 - Tagging release with the label JC5_ServicosRetaguarda-1.17...
2 - scmUrl - rtcbuild;passwordishere@https://caelum:9443
3 - Scheme - https
4 - ScmTagPhase :: scmTagParameters remotingTag true
5 - ScmTagPhase :: scmTagParameters scmRevision null
6 - Executing tag command...
7 - Command line - /bin/sh -c cd /home/likewise-open/DOMAIN.COM.BR/USERHOME/meus_projetos/JC5_ServicosRetaguarda && scm create snapshot --repository-uri https://caelum --username rtcbuild --password passwordishere --name JC5_ServicosRetaguarda-1.17 --description ' copy for tag JC5_ServicosRetaguarda-1.17' 9443
8 - err - Problema ao executar 'create snapshot':
Important party of my config:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>2.0</version>
<configuration>
<tagBase>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</tagBase>
<autoVersionSubmodules>true</autoVersionSubmodules>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-plugin</artifactId>
<version>1.4</version>
<configuration>
<message>Release automatizado de versao.</message>
</configuration>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jazz</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-api</artifactId>
<version>1.3</version>
</dependency>
</dependencies>
</plugin>
<scm>
<connection>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</connection>
<developerConnection>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</developerConnection>
<url>scm:jazz:rtcbuild;passwordhere@https://caelum:9443/jazz:Liberacao-JC5_Bridge</url>
</scm>
In the line 2 above, the scmUrl is identified ok, but in line 7, the parameter --repository-uri is mounted as "https://caelum" where should be https://caelum:9443, if you see the last information in this line, you can see the lost 9443
Thanks Rodrigo, I'll take a look at the code for that task to see why it went missing for your given repository url.
In the line 2 above, the scmUrl is identified ok, but in line 7, the parameter --repository-uri is mounted as "https://caelum" where should be https://caelum:9443, if you see the last information in this line, you can see the lost 9443
Thanks Rodrigo, I'll take a look at the code for that task to see why it went missing for your given repository url.
Hello David,
More info: In my environment, i have some projects, where this problem don't occours.
In your opinion, do you think that i should open a work item for this? Or wait your feedback? (We are a IBM Partner formal client, and have some support, of course, not one that you can supply in this specific case :) )
Annother question, we have access to source code for tha jazz maven scm provider?
Thanks.
In your opinion, do you think that i should open a work item for this? Or wait your feedback? (We are a IBM Partner formal client, and have some support, of course, not one that you can supply in this specific case :) )
Annother question, we have access to source code for tha jazz maven scm provider?
Thanks.
Hi Rodrigo,
We're planning on releasing the source so that the Maven community can maintain it. (I'll look into this shortly). Given that, instead of making Jazz work items, you can just report any issues here and I'll take a look at them (and hopefully fix them)
In your opinion, do you think that i should open a work item for this? Or wait your feedback? (We are a IBM Partner formal client, and have some support, of course, not one that you can supply in this specific case :) )
Annother question, we have access to source code for tha jazz maven scm provider?
Thanks.
Hi Rodrigo,
We're planning on releasing the source so that the Maven community can maintain it. (I'll look into this shortly). Given that, instead of making Jazz work items, you can just report any issues here and I'll take a look at them (and hopefully fix them)
OK, I will wait eagerly for the next release and/or for the source code release to the maven comunity. If you can release a SNAPSHOT with the correction of the url repository missing infos, i will appreciate it. Thanks in advance.
Hi,
Dont know where I am wrong, downloaded Build System Toolkit. Following are the folder present inside the zip file.
"atoc", "native", "Offerings", "plugins"
Not able to find "...\jazz\buildsystem\maven\jazz-scm-plugin.zip"
Build tool kid version I have is "RTC-BuildSystem-Toolkit-repo-3.0M7a.zip"
Where I am wrong ?, Please help
Thanks,
Rama.
Dont know where I am wrong, downloaded Build System Toolkit. Following are the folder present inside the zip file.
"atoc", "native", "Offerings", "plugins"
Not able to find "...\jazz\buildsystem\maven\jazz-scm-plugin.zip"
Build tool kid version I have is "RTC-BuildSystem-Toolkit-repo-3.0M7a.zip"
Where I am wrong ?, Please help
Thanks,
Rama.
Build tool kid version I have is "RTC-BuildSystem-Toolkit-repo-3.0M7a.zip"
Where I am wrong ?, Please help
Thanks,
Rama.
Hi Rama,
That is the .zip for a Installation Manager Repository.
What you want (if you don't want to install the build toolkit using Installation Manager) is to find the .zip below:
https://jazz.net/downloads/rational-team-concert/milestones/3.0M7a/RTC-BuildSystem-Toolkit-Win-3.0M7a.zip
Hi,
I' want to install maven release process for my snapshot so I'm using RTC 3 and Maven 3.0.3, and I follow the documentation located at: https://jazz.net/wiki/bin/view/Main/UsingMavenScmPlugin?rev=5.
When I perform the command "mvn release:prepare" I get the following error:
Resuming release from phase 'scm-check-modifications'
Verifying that there are no local modifications...
scmUrl - username;password@https://rtchost:rtcport/jazz:workspace
Scheme - https
Executing status command...
Command line - cmd.exe /X /C "scm status --username username --password password --wide"
err - 'scm' is not recognized as an internal or external command,
operable program or batch file.
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.343s
Finished at: Tue May 17 15:47:20 EDT 2011
Final Memory: 6M/495M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project maven-gen-plugin: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
->
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project maven-gen-plugin: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoFailureException: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:219)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:181)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.apache.maven.shared.release.scm.ReleaseScmCommandException: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
at org.apache.maven.shared.release.phase.ScmCheckModificationsPhase.execute(ScmCheckModificationsPhase.java:109)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:203)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:140)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:103)
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:211)
... 22 more
Any help, welcome,
Salmi.
I' want to install maven release process for my snapshot so I'm using RTC 3 and Maven 3.0.3, and I follow the documentation located at: https://jazz.net/wiki/bin/view/Main/UsingMavenScmPlugin?rev=5.
When I perform the command "mvn release:prepare" I get the following error:
Resuming release from phase 'scm-check-modifications'
Verifying that there are no local modifications...
scmUrl - username;password@https://rtchost:rtcport/jazz:workspace
Scheme - https
Executing status command...
Command line - cmd.exe /X /C "scm status --username username --password password --wide"
err - 'scm' is not recognized as an internal or external command,
operable program or batch file.
------------------------------------------------------------------------
BUILD FAILURE
------------------------------------------------------------------------
Total time: 1.343s
Finished at: Tue May 17 15:47:20 EDT 2011
Final Memory: 6M/495M
------------------------------------------------------------------------
Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project maven-gen-plugin: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
->
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.0:prepare (default-cli) on project maven-gen-plugin: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:213)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoFailureException: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:219)
at org.apache.maven.plugins.release.PrepareReleaseMojo.execute(PrepareReleaseMojo.java:181)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: org.apache.maven.shared.release.scm.ReleaseScmCommandException: Unable to check for local modifications
Provider message:
Error code for Jazz SCM status command - 1
Command output:
'scm' is not recognized as an internal or external command,
operable program or batch file.
at org.apache.maven.shared.release.phase.ScmCheckModificationsPhase.execute(ScmCheckModificationsPhase.java:109)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:203)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:140)
at org.apache.maven.shared.release.DefaultReleaseManager.prepare(DefaultReleaseManager.java:103)
at org.apache.maven.plugins.release.PrepareReleaseMojo.prepareRelease(PrepareReleaseMojo.java:211)
... 22 more
Any help, welcome,
Salmi.
page 2of 11 pages