...
See also Container for Grouper 2.5 for additional details .
Developer workflow
Gliffy Diagram |
---|
| |
---|
name | packagingDeveloperWorkflow |
---|
pageid | 163119272 |
---|
|
Maven central jars
On each commit, snapshots will be committed
...
Gliffy Diagram |
---|
name | packagingMavenRelease |
---|
pagePin | 4 |
---|
|
Build container
Gliffy Diagram |
---|
name | packagingContainerBuild |
---|
pagePin | 2 |
---|
|
Maven tasks
Compile and jar will be done in maven. Jars will be housed in maven central.
...
Task | Description | Progress |
---|
no snapshots |
|
|
build versions | - when certain type of tag, e.g. GROUPER_RELEASE_2.5.8, it would make the real release jars
- Travis sees tag, pulls down source code
- Runs mvn versions command to assign version locally (in git in pom the version is 2.4-SNAPSHOT)
- Compile
- e.g. grouper-2.5.8.jar
- Publish to staging branch
- Manually release it in maven (whoever tags to do this)
- Automatic ci/cd based on tag format (low priority)
- publish to maven central automatically (low priority)
|
|
remove jars from git | - Remove 3rd party jars from git
- Add the git dependency command in readme
- "ant dev" to get jars from dependency jars and copy to webapp/WEB-INF/lib
|
|
build jars | Each project should have - normal classfile jar
- source jar (low priority)
- test jar (low priority) (if there are test classes)
- test source jar (low priority) (if there are test classes)
- javadoc jar? (low priority)
|
|
notification | every commit, compile everything and run tests (low priority) can there be a notification if build breaks (to core list)? (low priority) |
|
what needs to change after build? | nothing Instead of hard coding grouper version we would get that from manifest from jar |
|
maven grouperParent | - should build everything in grouper, using local filesystem builds as dependencies
- e.g. if something in grouper is dependent on something in grouper client, and that isnt in maven yet, the build should succeed
- only build from parent (assumption)
|
|
maven grouperClient | get maven working on client jars. ant currently works for this, see build.xml - src/ext and src/java should be compiled with no dependencies
- src/testSource can use all of above and jars
- low priority, see if shade can easily (not take a lot of time to get working),
manage the "ext" source jars to be put in the same classpath (since used elsewhere)
|
|
maven grouper | get maven making the grouper jars - grouper depends on client
- source dir and test dir, pretty simple
|
|
maven grouper ui | get maven working for ui jars - ui depends on grouper (and transitively, client)
- source dir and test dir, pretty simple
|
|
maven grouper ws | get maven working for ws jars - classfile jar has source from: src/grouper-ws, src/grouper-ws_v2_0, ... , src/grouper-ws_v2_4 (not there yet but will be) all the src dirs
- test jar has source from: src/test, (low priority) grouper-ws-java-generated-client/src?, (low priority) grouper-ws-java-manaual-client/src/java-manual-client?, (low priority) grouper-ws-test/src/test?
|
|
maven grouper scim | this is grouper-ws/grouper-ws-scim, get maven working for jars - source and test dir, not too complicated
- add dependent jars to project
|
|
maven pspng | should be ready to go right? |
|
maven box connector |
|
|
maven installer | note, we should just move this to the client, right? |
|
maven duo connector |
|
|
maven activemq messaging connector |
|
|
maven aws messaging connector |
|
|
maven rabbitmq messaging connector |
|
|
maven remedy connector |
|
|
Ant tasks
Ant can be used for various minimal tasks and for packaging up tarballs. Maven is used for compile/jar
...