Maven SCM

Support TFS as SCM Provider

Details

  • Type: Improvement Improvement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Fixed
  • Affects Version/s: 1.3
  • Fix Version/s: 1.3
  • Component/s: None
  • Complexity:
    Intermediate

Activity

Hide
Subhash added a comment - 27/Apr/09 1:27 PM
  • Supports multiple SCM commands like changelog, checkout, checkin etc
  • Supports release thru release plugin
  • Supports building projects using Conitnuum and Maven
Show
Subhash added a comment - 27/Apr/09 1:27 PM
  • Supports multiple SCM commands like changelog, checkout, checkin etc
  • Supports release thru release plugin
  • Supports building projects using Conitnuum and Maven
Hide
Olivier Lamy added a comment - 27/Apr/09 1:34 PM

As it's big patch, I will ask you to send a cla to ASF.
See : http://www.apache.org/licenses/icla.txt
Thanks !

Show
Olivier Lamy added a comment - 27/Apr/09 1:34 PM As it's big patch, I will ask you to send a cla to ASF. See : http://www.apache.org/licenses/icla.txt Thanks !
Hide
Mark Struberg added a comment - 29/Apr/09 4:51 AM

There is also a 'Martin Woodward' mentioned as developer in the pom.
So I think he should also send in an icla.

I only glimpsed over the source, and it looks pretty ok.

They only thing I would wish to see are TCK tests.
You may take a look at the svnexe or the gitexe providers how to write them. They are really easy to integrate and the provider I wrote benefited a lot from them in terms of stability and interopability!

Btw, does mvn release:prepare release:perform work already?

LieGrue,
strub

Show
Mark Struberg added a comment - 29/Apr/09 4:51 AM There is also a 'Martin Woodward' mentioned as developer in the pom. So I think he should also send in an icla. I only glimpsed over the source, and it looks pretty ok. They only thing I would wish to see are TCK tests. You may take a look at the svnexe or the gitexe providers how to write them. They are really easy to integrate and the provider I wrote benefited a lot from them in terms of stability and interopability! Btw, does mvn release:prepare release:perform work already? LieGrue, strub
Hide
Subhash added a comment - 29/Apr/09 5:14 AM

Sure, I'll take care of the iclas right away.

Yes, release:prepare and release:perform work fine with the provider.

Since the JUnit test cases test the command line as it is generated for each goal, I assumed TCK tests may not be essential. But if you think they will help, I'll be happy to add those as well.

Regards,
Subhash

Show
Subhash added a comment - 29/Apr/09 5:14 AM Sure, I'll take care of the iclas right away. Yes, release:prepare and release:perform work fine with the provider. Since the JUnit test cases test the command line as it is generated for each goal, I assumed TCK tests may not be essential. But if you think they will help, I'll be happy to add those as well. Regards, Subhash
Hide
Mark Struberg added a comment - 29/Apr/09 8:46 AM

The JUnit tests only ensure that the tfs provider returns the commandline you think should be used. But it's not only that we need to execute the right statements - the TCK also checks for proper return values from the provider and many other things!

For example: the TfsAddCommand not only has to add the given files to the repository but it also has to return an AddScmResult which must contain the list of changed files! And all scm providers have to return the same list, e.g. not only a directory but all files in that directory, etc
So I'd strongly recommend implementing the TCK tests.

Show
Mark Struberg added a comment - 29/Apr/09 8:46 AM The JUnit tests only ensure that the tfs provider returns the commandline you think should be used. But it's not only that we need to execute the right statements - the TCK also checks for proper return values from the provider and many other things! For example: the TfsAddCommand not only has to add the given files to the repository but it also has to return an AddScmResult which must contain the list of changed files! And all scm providers have to return the same list, e.g. not only a directory but all files in that directory, etc So I'd strongly recommend implementing the TCK tests.
Hide
Subhash added a comment - 04/May/09 11:54 AM

Makes sense. I'll add the TCL test cases and resubmit the patch. Thanks

Show
Subhash added a comment - 04/May/09 11:54 AM Makes sense. I'll add the TCL test cases and resubmit the patch. Thanks
Hide
Subhash added a comment - 01/Aug/09 10:58 AM

We are unable to proceed with the TCK testcases as TFS does not support testing against a known fixture. We have incorporated important checks in the unit test cases (http://github.com/subhash/maven-scm-provider-tfs/commits/master). Please let us know if this suffices for the first version of the SCM provider

Show
Subhash added a comment - 01/Aug/09 10:58 AM We are unable to proceed with the TCK testcases as TFS does not support testing against a known fixture. We have incorporated important checks in the unit test cases (http://github.com/subhash/maven-scm-provider-tfs/commits/master). Please let us know if this suffices for the first version of the SCM provider
Hide
Olivier Lamy added a comment - 01/Aug/09 11:25 AM

No problem for me.
Temporary this new provider can be incorporated in scm sandbox until you send your clas.

Show
Olivier Lamy added a comment - 01/Aug/09 11:25 AM No problem for me. Temporary this new provider can be incorporated in scm sandbox until you send your clas.
Hide
Mark Struberg added a comment - 01/Aug/09 2:31 PM

short explanation: For the last 2 months we contacted a few developers from within Microsoft and also MVPs from well known 3rd party companies. It looks like TFS simply does not support any kind of 'initialising' to a certain point. The only way to get a specific state into TFS would be stopping the server, doing a SQLServer backup, restart TFS and run a few jobs to recalculate internal data. Another way would be to create a VMware running in snapshot mode (readonly) and restarting the VM for every TCK. All other options we discussed are even more unpracticable.

So it looks pretty unrealistic that we will ever get TCKs running for TFS, instead we need to run all the tests manually with little projects. Subhash already did a lot of internal testing this way.

For getting it even better, we'd have to make it usable for a lot of people easily. So I'd like to see it in our maven-scm SVN as early as possible.

Show
Mark Struberg added a comment - 01/Aug/09 2:31 PM short explanation: For the last 2 months we contacted a few developers from within Microsoft and also MVPs from well known 3rd party companies. It looks like TFS simply does not support any kind of 'initialising' to a certain point. The only way to get a specific state into TFS would be stopping the server, doing a SQLServer backup, restart TFS and run a few jobs to recalculate internal data. Another way would be to create a VMware running in snapshot mode (readonly) and restarting the VM for every TCK. All other options we discussed are even more unpracticable. So it looks pretty unrealistic that we will ever get TCKs running for TFS, instead we need to run all the tests manually with little projects. Subhash already did a lot of internal testing this way. For getting it even better, we'd have to make it usable for a lot of people easily. So I'd like to see it in our maven-scm SVN as early as possible.
Hide
Mark Struberg added a comment - 24/Aug/09 2:56 PM

provider has been committed.

There are still a few things left to do

  • update all poms to use the tfs provider
  • create a site documentation and update maven-scm site,
  • update the scm provider matrix in our wiki
Show
Mark Struberg added a comment - 24/Aug/09 2:56 PM provider has been committed. There are still a few things left to do
  • update all poms to use the tfs provider
  • create a site documentation and update maven-scm site,
  • update the scm provider matrix in our wiki
Hide
Subhash added a comment - 01/Oct/09 9:27 AM

When is maven-scm v1.3 expected to be released? Our provider contribution will be included in that release, and we would like to tell our customers to watch our for the release. Is there a webpage or wiki I can check to track the release schedule and progress?

Thanks so much

Show
Subhash added a comment - 01/Oct/09 9:27 AM When is maven-scm v1.3 expected to be released? Our provider contribution will be included in that release, and we would like to tell our customers to watch our for the release. Is there a webpage or wiki I can check to track the release schedule and progress? Thanks so much
Hide
Mark Struberg added a comment - 23/Nov/09 5:05 PM

provider added. Txs to Subhash and Martin!

Show
Mark Struberg added a comment - 23/Nov/09 5:05 PM provider added. Txs to Subhash and Martin!

People

Dates

  • Created:
    27/Apr/09 1:03 PM
    Updated:
    23/Nov/09 5:05 PM
    Resolved:
    23/Nov/09 5:05 PM