Snapshot/integration builds on sbt community repo

62 views
Skip to first unread message

eugene yokota

unread,
May 25, 2012, 1:44:36 PM5/25/12
to simple-b...@googlegroups.com
Hi all,

I'd like to start a discussion on implementing snapshot/integration build support on sbt community repo,
and potentially other Ivy repositories.

For security and caching reasons, Josh and I are interested in pursuing the unique version approach,
in which the snapshot versions are appended with unique string, like date and/or time.

Here's the idea I have for sbt-ivy-snapshot plugin.

- It defines uniqueVersion key.
- When uniqueVersion is true, it replaces -SNAPSHOT in version with current date and time in UTC e.g 0.8.2-SNAPSHOT => 0.8.2-20120525173400.
- It also changes deliverConfiguration's status to "snapshot" and adds a custom status called snapshot to ivyXML.

When the build user wants to use your snapshot, they would say addSbtPlugin("com.example" % "sbt-foo" % "latest.snapshot").
If they dont' care if it's a release or snapshot they can also say "latest.integration". See [1] for more info.

What do you think?

-eugene


dave

unread,
May 25, 2012, 3:41:14 PM5/25/12
to simple-b...@googlegroups.com
On Friday, May 25, 2012 12:44:36 PM UTC-5, eugene yokota wrote:
When the build user wants to use your snapshot, they would say addSbtPlugin("com.example" % "sbt-foo" % "latest.snapshot").

Many projects have multiple active lines of development. How would you specify which snapshot that you want? 

For example, say sbt-foo has two active lines of development: 0.7.x and 0.8.x. How would you specify that you need an 0.7 snapshot instead of an 0.8 snapshot?
 
-eugene
 
dave
<>< 

eugene yokota

unread,
May 25, 2012, 3:52:44 PM5/25/12
to simple-b...@googlegroups.com
For plugin development, I was thinking single track of snapshot would be ok.

But if I think about it, you probably could embed this information in info.status.

- It also changes deliverConfiguration's status to "0.8.2-SNAPSHOT" and adds a custom status called snapshot to ivyXML.

This way the build user can say:

addSbtPlugin("com.example" % "sbt-foo" % "latest.0.8.2-SNAPSHOT")

-eugene

dave

unread,
May 25, 2012, 4:06:32 PM5/25/12
to simple-b...@googlegroups.com
Maybe it's just my Maven bias talking, but shouldn't:

  addSbtPlugin("com.example" % "sbt-foo" % "latest.0.8.2-SNAPSHOT")

be identical to:

  addSbtPlugin("com.example" % "sbt-foo" % "0.8.2-SNAPSHOT")

Or is this one of those subtle and tricky ways that Maven and Ivy are different?

dave

eugene yokota

unread,
May 25, 2012, 4:21:13 PM5/25/12
to simple-b...@googlegroups.com
On Fri, May 25, 2012 at 4:06 PM, dave <leed...@yahoo.com> wrote:
> Maybe it's just my Maven bias talking, but shouldn't:
>
>   addSbtPlugin("com.example" % "sbt-foo" % "latest.0.8.2-SNAPSHOT")
>
> be identical to:
>
>   addSbtPlugin("com.example" % "sbt-foo" % "0.8.2-SNAPSHOT")
>
> Or is this one of those subtle and tricky ways that Maven and Ivy are
> different?

"latest.0.8.2-SNAPSHOT" says give me the latest artifact who's status
is 0.8.2-SNAPSHOT, regardless of the version.

"0.8.2-SNAPSHOT" says give me the artifact whose version is 0.8.2-SNAPSHOT.

I am trying to come up with a way that allows plugin authors to
publish snapshots without involving jar overwrites.

-eugene

dave

unread,
May 25, 2012, 4:30:08 PM5/25/12
to simple-b...@googlegroups.com
So, yes, both tricky and subtle.

Thanks,
dave
So, yes, both tricky and subtle.

Thanks,
dave
<>< 
Reply all
Reply to author
Forward
0 new messages