Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
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

  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

Java webapp

 

Maven

 

Github

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: 

...

Sprints

 

Weekly schedule

Background reading

 

Support tools

Pivotal Tracker

 

Sonar

 

Jenkins

 

  • 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