license-cop icon indicating copy to clipboard operation
license-cop copied to clipboard

[AG-42] Support sbt-plugin-releases repositories when parsing Scala SBT plugins

Open felipead opened this issue 7 years ago • 0 comments

When parsing Scala dependencies from SBT files, we find many SBT plugins declared as follows:

addSbtPlugin("com.cavorite" % "sbt-avro" % "0.3.2")
addSbtPlugin("com.julianpeeters" % "sbt-avrohugger" % "latest.integration")

These dependencies are fetched from specific repositories (they use the Ivy format). For instance, information about the com.cavorite:sbt-avro dependency is fetched from:

http://dl.bintray.com/sbt/sbt-plugin-releases/com.cavorite/sbt-avro/scala_2.10/sbt_0.13/1.1.0/ivys/ivy.xml

Licensing and dependencies information can be obtained from processing this XML file:

<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="2.0" xmlns:e="http://ant.apache.org/ivy/extra">
	<info organisation="com.cavorite" module="sbt-avro" revision="1.1.0" status="release" publication="20161213163356" e:sbtVersion="0.13" e:scalaVersion="2.10">
		<license name="BSD 3-Clause" url="https://github.com/sbt/sbt-avro/blob/master/LICENSE"/>
		<description>
		Sbt plugin for compiling Avro sources
		</description>
	</info>
	<configurations>
		<conf name="compile" visibility="public" description=""/>
		<conf name="runtime" visibility="public" description="" extends="compile"/>
		<conf name="test" visibility="public" description="" extends="runtime"/>
		<conf name="provided" visibility="public" description=""/>
		<conf name="optional" visibility="public" description=""/>
		<conf name="sources" visibility="public" description=""/>
		<conf name="docs" visibility="public" description=""/>
		<conf name="pom" visibility="public" description=""/>
	</configurations>
	<publications>
		<artifact name="sbt-avro" type="jar" ext="jar" conf="compile"/>
		<artifact name="sbt-avro" type="src" ext="jar" conf="sources" e:classifier="sources"/>
		<artifact name="sbt-avro" type="doc" ext="jar" conf="docs" e:classifier="javadoc"/>
	</publications>
	<dependencies>
		
		<dependency org="org.scala-lang" name="scala-library" rev="2.10.6" conf="provided->default(compile)"/>
		<dependency org="org.scala-sbt" name="sbt" rev="0.13.12" conf="provided->default(compile)"/>
		<dependency org="org.apache.avro" name="avro" rev="1.7.7" conf="compile->default(compile)"/>
		<dependency org="org.apache.avro" name="avro-compiler" rev="1.7.7" conf="compile->default(compile)"/>
		<dependency org="org.specs2" name="specs2-core_2.10" rev="3.6.4" conf="test->default(compile)"/>
		
		
	</dependencies>
</ivy-module>

This is an (incomplete) list of sbt-plugin-releases repositories used by most projects:

  • http://dl.bintray.com/sbt/sbt-plugin-releases/
  • http://dl.bintray.com/tpolecat/sbt-plugin-releases/

Going forward, all sbt plugins can be classified as development dependencies.

felipead avatar Jan 11 '18 00:01 felipead