These training archives may be out of date, but have been retained and kept available for the community's benefit in reviewing previous sessions.
Current training documentation can be found here: Training
Learning outcomes
- Communicate value of cross-institutional collaboration process
- Feel comfortable getting involved in development sprints
- What are minimum requirements
- Be able to articulate technology stack and tools
- Know where to look for more details
Sprints
- 2-Week long sprints
- Scheduled in 6-month phases
- All community developers
Weekly schedule
- A standard scrum approach is taken
Agile/Scrum terms
- Daily stand-up
- Product and Sprint backlogs
- Scrum
- Sprint
- Sprint planning
- Sprint retrospective
- Velocity
Support tools
Pivotal Tracker
- Bug tracking system
- Tightly tied with git commits
- Ticket flow/process
Travis-CI
- Basic sanity build on each commit
Jenkins
- Continuous integration build server
- Publishes snapshot build artifacts to sonatype
- Publishes code-coverage and stats to sonar
Sonar
- Dashboard of codebase health
- Test code coverage
- Code problem areas, or hotspots
- Total lines of code and complexity, etc
The basics
Java7 webapp
- Fedora is a standard Java7 web-application
- Jetty and Tomcat, or one-click
- Deployed as a war
- Configuration via
- Configuration files
- System-properties
- Repository objects/resources
Maven3
- Build tool
- Manages library dependencies, build artifacts, code formatting, integration tests, release signing and deployment, code-coverage, etc
- Release artifacts are deployed to maven-central
Github
Main F4 codebase
- fcrepo4
Other important projects
- ontology
- fcrepo-jms-indexer-pluggable
- fcrepo-module-auth-rbacl
- fcrepo-module-auth-xacml
- fcrepo-build-tools
- fcrepo-sample-dataset
Git process
- Standard: fork the codebase, commit to a branch, send PR
- Facilitates collaboration
Application stack
Top - Fedora webapp
- Adds preservation and access sensibilities
- Linked data, LDP abstraction
Middle - JCR implementation
- Modeshape - open source JCR reference implementation
Bottom - Storage/Caching
- Infinispan - open source Java caching and persistence
- Foundation of clustering that is exposed through the stack
Background reading
jax-rs (jersey)
jcr
infinispan
modeshape
maven
git-flow
guava
wiki - process, documentation, roadmap