[Building Sakai] [cle-release-team] Important information for trunk developers (SNAPSHOT artifacts)

Maurer, Christopher Wayne chmaurer at iupui.edu
Fri Apr 27 05:38:19 PDT 2012


My trunk-all build is failing on lessonbuilder.  Looks like it's set for a master of 2.9-SNAPSHOT.  I imagine that should be updated to be 2.10-SNAPSHOT?

Chris

From: Matthew Jones <matthew at longsight.com<mailto:matthew at longsight.com>>
Date: Thursday, April 26, 2012 8:45 PM
To: "cle-release-team at collab.sakaiproject.org<mailto:cle-release-team at collab.sakaiproject.org>" <cle-release-team at collab.sakaiproject.org<mailto:cle-release-team at collab.sakaiproject.org>>, dev sakai <sakai-dev at collab.sakaiproject.org<mailto:sakai-dev at collab.sakaiproject.org>>
Subject: [cle-release-team] Important information for trunk developers (SNAPSHOT artifacts)

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<http://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/20120427/30101502/attachment.html 


More information about the sakai-dev mailing list