Warning |
---|
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 |
Table of Contents |
---|
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
...
jersey library
- 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
core of f4
- fcrepo4
Other important projects
- ontology
- fcrepo-jms-indexer-pluggable
- fcrepo-module-auth-rbacl
- fcrepo-module-auth-xacml
- fcrepo-build-tools
- fcrepo-sample-dataset
...
https://github.com/fcrepo4-labs
Git process
standard
- 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
<jcr spec>
Bottom - Storage/Caching
- Infinispan - open source
...
- Java caching and persistence
...
- Foundation of clustering that is exposed through the stack
...
Background reading
2-week long sprints
schedule in 6-month phases
community developers
Weekly schedule
first Monday is sprint planning
stand-up meeting every day at 11am ET
every Thursday has technical community call
Thursday of second week is sprint wrap-up meeting
Friday of second week is tying loose ends
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
code coverage
code problem areas, or hotspots
total lines of code and complexity, etc
Background reading
jax-rs (jersey)
jax-rs (jersey)
jcr
infinispan
modeshape
maven
git-flow
guava
wiki - process, documentation, roadmapjcr