[GRADLE-181] Create a SCM plugin framework Created: 18/Aug/08  Updated: 08/Feb/17  Resolved: 08/Feb/17

Status: Resolved
Project: Gradle
Affects Version/s: None
Fix Version/s: None

Type: New Feature
Reporter: Phil Messenger Assignee: Unassigned
Resolution: Won't Fix Votes: 22


I've written a number of plugins for doing releases etc, and have been a bit frustrated by the lack of a SCM framework such as one might find in Maven. At the moment I've followed the approach taken by Gradle itself and hard coded in subversion via the svnkit library. A generic SCM framework would make it easier to support different source management tools such as CVS or git.

Comment by Hans Dockter [ 24/Aug/08 ]

That is definitely something we need. Beside release management we will need this when we offer to define cvs/svn/... projects. We might think about using the code of another project for this layer. Maven has such a layer. Maybe we could have a look at Cruisecontrol.

Comment by Phil Messenger [ 08/Oct/08 ]

I've had a look at the Maven SCM provider framework and the SCM stuff in Cruiscontrol.

The Maven code is pretty feature complete though coded in a quintessentially "maven" style. It exposes functionality for performing branches, committing etc.

The Cruiscode control is unsuitable for our purposes as it's basically limited to simple checkouts.

Comment by Ken Sipe [ 25/Mar/10 ]

@Hans I noticed this was "fixed" for the pre-release... I'm curious... I didn't see anything in the source tree. what is the change? is it the use of svnkit?

Comment by Hans Dockter [ 05/May/10 ]

@Ken It was just moved. We haven't tackled this yet.

Comment by Benjamin Muschko [ 15/Nov/16 ]

As announced on the Gradle blog we are planning to completely migrate issues from JIRA to GitHub.

We intend to prioritize issues that are actionable and impactful while working more closely with the community. Many of our JIRA issues are inactionable or irrelevant. We would like to request your help to ensure we can appropriately prioritize JIRA issues you’ve contributed to.

Please confirm that you still advocate for your JIRA issue before December 10th, 2016 by:

  • Checking that your issues contain requisite context, impact, behaviors, and examples as described in our published guidelines.
  • Leave a comment on the JIRA issue or open a new GitHub issue confirming that the above is complete.

We look forward to collaborating with you more closely on GitHub. Thank you for your contribution to Gradle!

Comment by Benjamin Muschko [ 08/Feb/17 ]

Most SCMs provide a Java-based implementation to run version control operations. I see the functionality more as something that lives in an external plugin and not necessarily as a core functionality of Gradle. Given the breadth of SCMs out there I don't we'd be able to ever keep up and would end up with a half-baked approach. Please keep in mind that Gradle is compatible with Ant meaning you can can reuse existing tasks. If you need another abstraction layer on top of the SCM Java libraries then that would be a workable option e.g.

You might also want to look at the following Gradle plugin:

Generated at Wed Jun 30 11:23:44 CDT 2021 using Jira 8.4.2#804003-sha1:d21414fc212e3af190e92c2d2ac41299b89402cf.