Discussion:
Reorganized repo and Tycho build pushed to Assembla
(too old to reply)
Miles Sabin
2010-06-21 15:30:49 UTC
Permalink
Hi folks,

It's been a while coming, but we now have a reorganized repository
structure and a Tycho/Maven 3 build of the Scala IDE up on Assembla.

I've got a long blog post on all of this brewing, but in the meantime ...

Currently this is on branch tycho-reorg because I want to get feedback
from people before merging it into master. Everything is now contained
in a single repository (the main one:
git-S4HirUi+***@public.gmane.org:scala-ide.git). You'll need Maven 3 on your path.
cd into org.scala-ide.build and run build-ide-release.sh. All being
well you'll end up with an update site in
org.scala-ide.sdt.update-site/target/site.

I'd like input from the Maven mavens on whether this is reasonably
clean and idiomatic. I'd also like to hear from the people working on
sbt integrations, because we can now see what parts of Tycho I've
needed for the build, and so what needs to be added to sbt for it to
be usable as a build platform for the IDE.

It'd be great to hear from Mirko and Matt on how the new repository
structure and build process gets along with the refactoring and
formatting projects, and how we can get those included in the build
ASAP.

It'd also be great to hear from Christian and Joachim on how this fits
with their ideas of how the test components that they're working on
could be incorporated into the build. Again, I'd like to get these
into the build ASAP.

Also, now that all the binaries have been removed from the VCS and
we're relying on Tycho to provision the target platform, I'd love to
hear from Jin about whether he thinks his patch for Eclipse 3.6
compatibility can be revived. The Helios release date is June 23rd
(ie. this Wednesday), so we're not going to be ready for that, but
it'd be great if we could get something 3.6 compatible out very
shortly after.

Cheers,


Miles
--
Miles Sabin
tel: +44 7813 944 528
gtalk: miles-XKJT71GPLR04Q++***@public.gmane.org
skype: milessabin
http://www.chuusai.com/
http://twitter.com/milessabin
Mirko Stocker
2010-06-22 07:08:18 UTC
Permalink
Post by Miles Sabin
cd into org.scala-ide.build and run build-ide-release.sh.
It worked! The second time..

The first time, it failed with:

[INFO] Adding repository http://download.eclipse.org/releases/galileo
[WARNING] Failed to access p2 repository galileo
(http://download.eclipse.org/releases/galileo), will try to use local cache.
Reason: org.eclipse.equinox.p2.core.ProvisionException: Unable to read
repository at
http://download.eclipse.org/releases/galileo/compositeContent.jar.
...
[ERROR] Internal error: java.lang.RuntimeException:
org.eclipse.equinox.p2.core.ProvisionException: No solution found because the
problem is unsatisfiable. -> [Help 1]

But I guess there's not much we can do about that.

I was also able to install it into a fresh Galileo Eclipse and it worked
immediately after restarting. I always had trouble activating the weaving, but
not this time.

Btw. I also saw two typos.. grep for Eclispe and sonartype in the build dir.

Now about the refactoring integration. I guess the situation is similar as
with the compiler: not everybody wants to build their own refactoring jar (you
called it partial- and full checkout). How is this currently done?

Cheers, and thanks for all the work

Mirko
--
Mirko Stocker | me-ce+***@public.gmane.org
Work: http://ifs.hsr.ch | http://infoq.com
Personal: http://misto.ch | http://twitter.com/m_st
Miles Sabin
2010-06-22 07:33:57 UTC
Permalink
Post by Mirko Stocker
Post by Miles Sabin
cd into org.scala-ide.build and run build-ide-release.sh.
It worked! The second time..
[INFO] Adding repository http://download.eclipse.org/releases/galileo
[WARNING] Failed to access p2 repository galileo
(http://download.eclipse.org/releases/galileo), will try to use local cache.
Reason: org.eclipse.equinox.p2.core.ProvisionException: Unable to read
repository at
http://download.eclipse.org/releases/galileo/compositeContent.jar.
...
org.eclipse.equinox.p2.core.ProvisionException: No solution found because the
problem is unsatisfiable. -> [Help 1]
But I guess there's not much we can do about that.
Unfortunately not ... I've seen occasional connectivity issues, but I
guess that's something that goes with Maven. Presumably judicious use
of offline mode will help.
Post by Mirko Stocker
I was also able to install it into a fresh Galileo Eclipse and it worked
immediately after restarting. I always had trouble activating the weaving, but
not this time.
Excellent! :-)
Post by Mirko Stocker
Btw. I also saw two typos.. grep for Eclispe and sonartype in the build dir.
Good catch ... thanks.
Post by Mirko Stocker
Now about the refactoring integration. I guess the situation is similar as
with the compiler: not everybody wants to build their own refactoring jar (you
called it partial- and full checkout). How is this currently done?
For the Scala compiler and libraries I'm just pulling them in as Maven
dependencies from scala-tools.org. For the Equinox Weaving components
I've created a p2 repository on download.scala-ide.org and they're
pulled in as OSGi dependencies by Tycho.

I think the latter is probably the best option ... Tycho does a very
good job pulling in OSGi artifacts from p2 repositories, but doesn't
like pulling them in from Maven repositories (obviously it can pull
them in as ordinary library dependencies ... it's only an issue if it
need to consume them as bundles).

I can host that p2 repository on download.scala-ide.org and then
either add the bundles to a Scala IDE specific feature or reuse your
feature as a whole. Presumably we'll eventually need some Scala IDE
specific integration (eg. aspects to hook into the JDTs Java
refactorings) and for that I suggest creating an new project in the
Scala IDE repository.

Does all that work for you?
Post by Mirko Stocker
Cheers, and thanks for all the work
Likewise :-)

Cheers,


Miles
--
Miles Sabin
tel: +44 7813 944 528
gtalk: miles-XKJT71GPLR04Q++***@public.gmane.org
skype: milessabin
http://www.chuusai.com/
http://twitter.com/milessabin
Mirko Stocker
2010-06-22 08:34:49 UTC
Permalink
Post by Miles Sabin
I can host that p2 repository on download.scala-ide.org and then
either add the bundles to a Scala IDE specific feature or reuse your
feature as a whole.
Ok, that sounds good. And if someone wants to use the library for a non osgi
project (e.g. in ENSIME, and there's another one who already uses it to modify
source code), then I could just publish the same artifacts to e.g. scala-
tools.org, right?
Post by Miles Sabin
Presumably we'll eventually need some Scala IDE
specific integration (eg. aspects to hook into the JDTs Java
refactorings) and for that I suggest creating an new project in the
Scala IDE repository.
Let me see if I got all that right:

- we publish my library+feature on your p2 repository
- we create a new project (e.g. org.scala-ide.sdt.refactoring) that contains
all the eclipse-scala-refactoring specific components (the ui things and in the
future also the hooks)
- the scala-feature then adds this org.scala-ide.sdt.refactoring project.

That sounds fine to me, you're the boss and the expert :-)

Cheers

Mirko
--
Mirko Stocker | me-ce+***@public.gmane.org
Work: http://ifs.hsr.ch | http://infoq.com
Personal: http://misto.ch | http://twitter.com/m_st
Miles Sabin
2010-06-22 09:04:26 UTC
Permalink
Post by Mirko Stocker
Post by Miles Sabin
I can host that p2 repository on download.scala-ide.org and then
either add the bundles to a Scala IDE specific feature or reuse your
feature as a whole.
Ok, that sounds good. And if someone wants to use the library for a non osgi
project (e.g. in ENSIME, and there's another one who already uses it to modify
source code), then I could just publish the same artifacts to e.g. scala-
tools.org, right?
Exactly so.
Post by Mirko Stocker
Post by Miles Sabin
Presumably we'll eventually need some Scala IDE
specific integration (eg. aspects to hook into the JDTs Java
refactorings) and for that I suggest creating an new project in the
Scala IDE repository.
- we publish my library+feature on your p2 repository
- we create a new project (e.g. org.scala-ide.sdt.refactoring) that contains
all the eclipse-scala-refactoring specific components (the ui things and in the
future also the hooks)
- the scala-feature then adds this org.scala-ide.sdt.refactoring project.
That's exactly right :-)

I'll get the p2 repository up today ...

Cheers,


Miles
--
Miles Sabin
tel: +44 7813 944 528
gtalk: miles-XKJT71GPLR04Q++***@public.gmane.org
skype: milessabin
http://www.chuusai.com/
http://twitter.com/milessabin
Matt Russell
2010-06-22 09:24:46 UTC
Permalink
Post by Miles Sabin
It's been a while coming, but we now have a reorganized repository
structure and a Tycho/Maven 3 build of the Scala IDE up on Assembla.
Awesome stuff! It's much more convenient to have a unified Git repo,
and the Maven/Tycho build looks pretty sweet. Might as well switch
master?
Post by Miles Sabin
Post by Mirko Stocker
- we publish my library+feature on your p2 repository
- we create a new project (e.g. org.scala-ide.sdt.refactoring) that contains
all the eclipse-scala-refactoring specific components (the ui things and in the
future also the hooks)
- the scala-feature then adds this org.scala-ide.sdt.refactoring project.
That's exactly right :-)
I'll get the p2 repository up today ...
I presume we could use the same approach for integrating Scalariform
(although I'm not sure it would warrant a separate Eclipse project).

-- Matt
Miles Sabin
2010-06-22 09:34:38 UTC
Permalink
Post by Matt Russell
Post by Miles Sabin
It's been a while coming, but we now have a reorganized repository
structure and a Tycho/Maven 3 build of the Scala IDE up on Assembla.
Awesome stuff! It's much more convenient to have a unified Git repo,
and the Maven/Tycho build looks pretty sweet. Might as well switch
master?
Let's let it bed in for a few days. I'm going to set up a nightly
build and update site for the branch today and see how it works for
people.

One thing we have to bear in mind is that I've changed all the ids to
have an org.scala-ide prefix which means that p2 won't automatically
see this as an upgrade of any existing installation. There's a
mechanism for telling p2 about this but I haven't implemented it yet,

http://tinyurl.com/3yr4zo7

Unfortunately it requires a post-processing step after the Tycho build.
Post by Matt Russell
Post by Miles Sabin
Post by Mirko Stocker
- we publish my library+feature on your p2 repository
- we create a new project (e.g. org.scala-ide.sdt.refactoring) that contains
all the eclipse-scala-refactoring specific components (the ui things and in the
future also the hooks)
- the scala-feature then adds this org.scala-ide.sdt.refactoring project.
That's exactly right :-)
I'll get the p2 repository up today ...
I presume we could use the same approach for integrating Scalariform
(although I'm not sure it would warrant a separate Eclipse project).
We could, it's really up to you.

If you'd like to move your code into the Scala IDE repo I'd be
delighted, and in fact that would make my life a little easier (than
setting up a separate p2 repository). OTOH, it would make it harder
for other projects to use your work. Your call.

Cheers,


Miles
--
Miles Sabin
tel: +44 7813 944 528
gtalk: miles-XKJT71GPLR04Q++***@public.gmane.org
skype: milessabin
http://www.chuusai.com/
http://twitter.com/milessabin
Miles Sabin
2010-06-22 09:19:15 UTC
Permalink
that's really excellent news! The new repo structure is perfectly on time ;-=)
Yesterday I've started my education camp week working on the GUI testing topic.
Currenty I'm checking out the new git repo (seems to take quite a while, running
since approx 30 minutes and counting 2247/4922 objects...)
I'm surprised it's taking that long. I just did a git clone and it
took 3 minutes.
At the moment I'm working on some details for the installation test (close
welcome view if present), i.e. the code is not yet in a productive state. I think
it would nevertheless be good to start small and see whether anything is working
at all. do you have a few minutes to give it a try at your machine?
Not today, unfortunately.
In contrast to svn I've no expericence yet with git. I guess I need some
credentials to check something in. If so: Can you send me those to checkin a
first version of the GUI tests?
You need to register an SSH public key with Assembla: if you go to
your profile you should see a section "Git settings" and under that a
link to "Manage your public SSH keys" ... click on that and it should
take you through the process of setting yourself up.

Cheers,


Miles
--
Miles Sabin
tel: +44 7813 944 528
gtalk: miles-XKJT71GPLR04Q++***@public.gmane.org
skype: milessabin
http://www.chuusai.com/
http://twitter.com/milessabin
Loading...