[scala-fresh] View this page "Build Design"

4 views
Skip to first unread message

Josh Suereth

unread,
May 11, 2010, 9:18:49 AM5/11/10
to Scala Fresh
Started a page describing the new build system we're creating for
Scala Fresh

Click on http://groups.google.com/group/scala-fresh/web/build-design -
or copy & paste it into your browser's address bar if that doesn't
work.

--
You received this message because you are subscribed to the Google Groups "Scala Fresh" group.
To post to this group, send email to scala...@googlegroups.com.
To unsubscribe from this group, send email to scala-fresh...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/scala-fresh?hl=en.

Josh Suereth

unread,
May 11, 2010, 9:38:47 AM5/11/10
to Scala Fresh
Hey Guys, I added the high-level overview for how the build should
work. Please take a look, comment and add details as appropriate.
There's a lot more I could write, but have not yet.

Take time (when you have it) to review this and let me know what you
think. I'm going to start prepping hudson/nexus access for us.
After which, we'll start dolling out/volunteering for tasks and get
this thing running!

Heiko Seeberger

unread,
May 11, 2010, 4:36:03 PM5/11/10
to Scala Fresh
Great stuff!
Not sure how to use the env vars (e.g. SCALA_BUILD_VERSION) in an SBT
build ...

Josh Suereth

unread,
May 11, 2010, 5:12:09 PM5/11/10
to scala...@googlegroups.com
Would you mind doing some investigaton there?  I have my theories, but it might require a custom runner of SBT.   In the meantime, we can just hardcode to 2.8.0-SNAPSHOT or something until we figure out the details.   I can also bug Mark about it when I have some more time.


Thanks!
- Josh

Heiko Seeberger

unread,
May 11, 2010, 5:14:32 PM5/11/10
to scala...@googlegroups.com
Hum, what kind of env vars are these? Any idea how to access these from Java/Scala?

Heiko
--
Heiko Seeberger

Company: weiglewilczek.com
Blog: heikoseeberger.name
Follow me: twitter.com/hseeberger
OSGi on Scala: scalamodules.org
Lift, the simply functional web framework: liftweb.net
Stambecco, highly scalable computing: stambecco.org

Josh Suereth

unread,
May 11, 2010, 5:37:26 PM5/11/10
to scala...@googlegroups.com
environment variables... so things like System.getEnvironment or other...

Jason Zaugg

unread,
May 11, 2010, 5:45:45 PM5/11/10
to scala...@googlegroups.com
Here's an example of accessing a java system property from the Scalaz
build [1]. Docs are here [2]

To access an environment variable from JVM, you use System.getenv("PATH").

-jason

[1] http://github.com/scalaz/scalaz/blob/master/project/build/OverridableVersion.scala
[2] http://code.google.com/p/simple-build-tool/wiki/Properties

On Tue, May 11, 2010 at 11:37 PM, Josh Suereth <joshua....@gmail.com> wrote:
> environment variables... so things like System.getEnvironment or other...
>
> On Tue, May 11, 2010 at 2:14 PM, Heiko Seeberger
> <heiko.s...@googlemail.com> wrote:
>>
>> Hum, what kind of env vars are these? Any idea how to access these from
>> Java/Scala?
>> Heiko

Derek Chen-Becker

unread,
May 14, 2010, 6:21:24 PM5/14/10
to scala...@googlegroups.com
Looks good to me. When you say that the nexus staging repo must be closed + promoted to become public, will that be a manual process or something automatic?

Derek

Josh Suereth

unread,
May 14, 2010, 9:51:05 PM5/14/10
to scala...@googlegroups.com
desire is for automatic, based on criteria we set in hudson.   I'm not exactly sure how to drive this.  I figure we attempt it to start out, and if it becomes a hastle, we can the staged repo stuff and rethink.

- Josh

Derek Chen-Becker

unread,
May 15, 2010, 5:34:41 PM5/15/10
to scala...@googlegroups.com
I've been reading the link you sent and it looks like promotion is manual, but staging is automatic, based on the path of the artifact. Is the path sufficiently fine-grained for what we want to do? Just looking at the dialog in the manual I don't see any other criteria that can be used to determine whether a deployment is staged or not.

Derek

Josh Suereth

unread,
May 15, 2010, 6:27:43 PM5/15/10
to scala...@googlegroups.com, scala...@googlegroups.com
The repository itself can be used.   Funny enough, once a staging repo is automatically created (in our case from the scala distro...). I think any other staged artifacts go into the same repo.   I figure I'll try it out on the new fresh repo by grabbing *all* artifacts on fresh-nightly.

Also,  I was hoping to use the nexus rest API to auto-close/promote staged repos after a successful nightly (where success => all builds succeed)

Thoughts?

- Josh

Josh Suereth

unread,
May 15, 2010, 6:31:10 PM5/15/10
to scala...@googlegroups.com, scala...@googlegroups.com
Not sure my response did mention,

But you can apply these rules on a repo basis, hence the completely new repos for scala fresh.

I seems staging will be much more important for milestones, as it gives us a chance to repost candidates for a milestone (depending on the rules we set).

Anyway, if I'm not reading the rest of this wrong, I think this should all work well.   Once the girls are in bed, I'll try to set up a nightly against paulp's fresh branch.   This will at least create un-promoted staging repos so we can get a better feel for flow.

- Josh

Derek Chen-Becker

unread,
May 17, 2010, 11:27:30 AM5/17/10
to scala...@googlegroups.com
OK, I missed the part where we could do this on separate repos. That should help a lot. I'm a little overwhelmed with the Nexus docs at the moment, but I like the direction that we're headed with this.

Derek

Derek Chen-Becker

unread,
May 19, 2010, 2:02:06 PM5/19/10
to scala...@googlegroups.com
I've been reading through the Nexus docs you sent a bit more. I think I'm overthinking this :) Basically, we want a current build to push *all* artifacts into a snapshot repo until the entire snapshot tests out OK, right? That sounds like it should be very simple with the Nexus stuff by just specifying a snapshot filter path of ".*".

Derek

Josh Suereth

unread,
May 19, 2010, 2:31:17 PM5/19/10
to scala...@googlegroups.com
exactly!

The goal is to push *everything at once* in some kind of "atomic build", which means we can catch everything.

Josh Suereth

unread,
Jun 15, 2010, 8:57:59 PM6/15/10
to Scala Fresh
Tweaked how we configure projects with the currently building Scala
version and nexus staging repo to resolve artifacts from. If anyone
wants to help with this effort, please let me know! We currently
need to write a utility that runs after a Scala Build and generates
static metadata files that other projects can use to build against the
latest 'fresh' Scala.
Reply all
Reply to author
Forward
0 new messages