As of last week there are five Kuali projects (KS, Rice, Mobility, KPME and OLE) that all inherit from the exact same version of the latest top level Kuali pom (version 3.3.36)
Tops among the various benefits this provides is consistency, transparency, and simplicity for a number of critical software development processes.
BUILDBuilding any one of these five projects is done the same way as all of the others, and is one simple command:
$ mvn clean installAny Kuali developer familiar with checking out and building any one of those projects, will be inherently familiar with how to do so for all of them. Any java developer (including the vast numbers of developers external to Kuali) familiar with Maven will also be able to easily complete a checkout and build. This can typically happen without them needing to speak to someone at Kuali or otherwise requiring extra assistance.
Given the community source model under which Kuali software is produced this is an invaluable asset in terms of enabling the extended global community to engage with Kuali projects and provide feedback. Since every ounce of friction removed from the build process is multiplied across all developers (both internal and external) this has a very positive cumulative affect over time.
RELEASEPublic copies of the project's software are automatically published and conform to a well known and documented standard.
Every project declares a globally unique identifier for every binary it produces. In Maven parlance this is GroupId + ArtifactId + Version, aka "GAV". The identifying information gets automatically baked into the filename of every binary without exception.
Those binaries are then posted to Kuali's public internal repository and (at the project's discretion) to a globally accessible public repository that hosts them for free. This makes them automatically accessible to anyone, anywhere, at no cost to Kuali.
This is only possible because all five projects adhere to a few simple non-negotiable rules critical to keeping the worldwide public exchange of open source software organized and cohesive.
INFORMTechnical information is automatically generated including javadocs that always exactly match the corresponding code.
The latest Kuali branded versions of these are at: Student, Rice, KPME, Mobility, OLE
All content is versioned and permanently published to Amazon's content delivery network (CloudFront).
- High speed browsing (everything is cached to 31 different edge locations around the world)
- Guarantees the content is always available
- Is extremely low cost
There are any number of other benefits to having all five project teams use a shared top level Maven pom. Economies of scale is one, (fixing or upgrading something in one spot benefits all five project teams simultaneously).
I've chosen to highlight these three since they:
- Directly impact day-to-day development in a positive way
- Demonstrate the pro-active steps Kuali is taking to be a good steward of the open source technologies it produces in a cost conscious way
- Represent fundamental software engineering processes that have been abstracted out in a unified way for all five projects teams
Director of Development Operations
The Kuali Foundation Inc