[Building Sakai] Important information for trunk developers (SNAPSHOT artifacts)

Matthew Jones matthew at longsight.com
Thu Apr 26 17:45:14 PDT 2012


Just as a (short) notice to developers:

A few issues were discussed on this mornings release call. This is mainly
for developers working on Sakai CLE trunk, and those who have contrib tools
that they are expecting to work on 2.9+.

There were two potential problems which I've resolved tonight that may
cause you some issues with your local work.

*Quick summary:*
- If you're using https://source.sakaiproject.org/svn/sakai/trunk/ use
https://source.sakaiproject.org/svn/sakai/branches/sakai-trunk-all/ instead.

1) Sakai 2.10-SNAPSHOT artifacts seemed to still be downloaded even though
newer ones were built. It was unsure if this was because of maven version
(mvn3 is recommended for trunk development) but as a short term solution,
all 2.10 SNAPSHOTS were removed from all repositories and no new artifacts
for 2.10 will be deployed.

This means that right now https://source.sakaiproject.org/svn/sakai/trunk/ will
probably if you have a clean local repository and will be out of date
quickly.
You should instead use
https://source.sakaiproject.org/svn/sakai/branches/sakai-trunk-all/. We'll
very likely switch trunk with trunk-all.

What this does for you is downloads everything it needs from Sakai rather
than downloading assemblies from core-deploy. These assemblies don't
entirely make sense in trunk anyway because it changes so often. These
assemblies will still be present for Sakai 2.9 and no changes are intended
for 2.9 at least until the conference.

*Quick summary:*
- If you have an indie, switch parent from purepoms to master. If you have
some apis dependencies inherited through compile scope, these might be
overridden by dependencyManagement in master so you may need to define more
dependencies.

2) Purepoms were removed from 2.9 and trunk after 2.9.0-b03 a few months
ago. If your contrib tool still uses a purepoms for 2.9 or 2.10 snapshot it
will no longer be able to find these artifacts. (
https://jira.sakaiproject.org/browse/SAK-21564) Old artifacts for
2.9-SNAPSHOT and 2.10-SNAPSHOT were in
source.sakaiproject.org/maven2-snapshots. These artifacts were up to 5
months old. We had changed to deploying all artifacts releases and
snapshots to maven central/sonatype, so if your tool had this repository
defined you need to update it.

Ideally your tool can use a fixed release version of 2.9 (like 2.9.0-b05).
That would be ideally what your parent looks like:

    <parent>
        <groupId>org.sakaiproject</groupId>
        <artifactId>master</artifactId>
        <version>2.9.0-b05</version>
    </parent>

You can use the version 2.9-SNAPSHOT which is in the repository, but
2.10-SNAPSHOT currently would require your users to download and build
sakai-trunk-all to use. (As mentioned in Step #1)

It was also noticed that some projects had dependencies defined in their
"api's" with no scope defined (so it got compile) and when the api was a
dependency in something else (like the impl or the tool) those other
dependencies would be pulled in as transisitive dependencies. However,
since all api's are now defined in the master dependencyManagement as
"provided", your tools dependencies may have to have these api's
explicitly defined.

Confused?

Say you're the dashboard project and you used to inherit from purepoms.
Switching to master alone will cause some dependencies to not be found.
This is because in the dashboard-api there is:


	    <dependency>
		    <groupId>org.sakaiproject.assignment</groupId>
		    <artifactId>sakai-assignment-api</artifactId>
	        <version>${sakai.version}</version>
	    </dependency>

After switching to master, this scope becomes "provided" instead of
"compile" as it isn't defined here, and it won't work when you include it
in impl. So you'd need to define these as provided in impl.
https://source.sakaiproject.org/viewsvn/longsight/dashboard/trunk/impl/pom.xml?root=contrib&r1=79394&r2=79398
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://collab.sakaiproject.org/pipermail/sakai-dev/attachments/20120426/c35cc615/attachment.html 


More information about the sakai-dev mailing list