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

  1. Communicate value of cross-institutional collaboration process
  2. Feel comfortable getting involved in development sprints
    • What are minimum requirements
  3. Be able to articulate technology stack and tools
  4. 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

  • No labels