Hello Fedora Community,
We have concluded the seventh sprint within the "Beta Phase" of Fedora4
development. The work of this and each sprint comes completely from the
contribution of Fedora stakeholder institutions in allocating developer
time. If you would like to become involved with Fedora4 development, please
send me an email. If you have comments on the work from this sprint, please
send an email or comment directly on the wiki.
Below is a link to the Sprint B7 summary (also included in-full in this
email's body):
https://wiki.duraspace.org/display/FF/Sprint+B7+Summary
Andrew Woods
================
Development Team
================
Benjamin Armintor - Columbia University
frank asseg - FIZ Karlsruhe
Nigel Banks - Discovery Garden
Chris Beer - Stanford University
Esme Cowles - University of California, San Diego (scrum master)
Osman Din - Yale University
Michael Durbin - University of Virginia
Eric James - Yale University
========
HackFest
========
Unlike the previous sprints in the Beta phase, Sprint B7 started with a
week-long hack-fest [1] in Austin, TX alongside of the DLF conference. The
majority of the developers on Sprint B7 attended the hackfest in addition
to some other Fedora developers. Two highlights of the event were:
- Consensus on targeted subset of 4.0 capabilities [2] scheduled for the
next community-facing release
- Hosting of a Fedora 4 install-fest [3] where interested community members
were invited to chat with the Fedora developers and install the software
============
Sprint Themes
============
--------------------
1) Authorization
Continuing with the theme of authorization, this sprint put some finishing
touches on the access roles module [4] which allows repository
adminstrators to associate "read", "write", and "admin" roles with user
principals on repository object and datastream nodes. The Fedora 4
authorization feature now ensures that:
- Child nodes of a requested node are not visible in API responses
- Deletion of a node will recursively delete its children nodes, unless the
requesting user does not have sufficient privileges to delete one or more
of the children, in which case the entire deletion operation will fail.
More details on the design and implementation of the authorization feature
can be found on the following wiki page [5] and its sub-pages.
--------------------
2) Simplified Deployment
One of the goals of Fedora 4 is to simplify the application deployment as
well as the wiring of optional components and their subsequent
configuration. Although there is a significant amount of work remaining
towards this goal, one early step in this direction is the ability to
deploy Fedora 4 by just dropping the web-application archive (war file)
into a servlet container without the need for any additional configuration.
Leveraging this simple deployment capability, this sprint produced a
"one-click-run" download [6] which literally enables the user to click on
the download to start up a local Fedora 4 repository.
A brief introduction to navigating the Fedora 4 web interface is documented
on the wiki [7].
--------------------
3) Large Files
This sprint furthered the support Fedora 4 offers for the management of
large files. As mentioned in previous sprints, Fedora 4's initial approach
with respect to large files is to expose the underlying ModeShape
"projection" or "federation" [8] feature. In response to the performance
issues revealed earlier, this sprint once again contributed updates to the
ModeShape codebase that provide the option to either postpone the most
time-intensive "federation" action (i.e. unique internal identifier
generation based on content checksum) until the content is requested or to
use a faster, surrogate internal identifier in the case where performance
would otherwise be unacceptable.
Additional details of the "large files" approach can be found on the wiki
[9].
--------------------
4) Content Modelling
One aspect of Fedora 4 content modelling is the ability to define custom
repository node-types including the node's composition (i.e. property types
and multiplicity). In addition to the existing "compact node definition"
[10] (CND) file, this sprint added the ability to define node-types at
runtime via the Fedora 4 REST-API [11]. This now allows repository managers
to configure repository node-types programatically after the application
has been installed.
--------------------
5) Versioning
This sprint introduced the first implementation of the versioning
capability within Fedora 4. This initial implementation creates versions of
individual object and datastream resources on all mutation events. Although
not yet at the point of addressing the scope of versioning requirements,
enough of the feature is in place to evaluate performance, storage, and
general functionality which will inform subsequent iterations.
--------------------
6) Feature Planning
The focus of this sprint was on progressing towards the specific subset of
4.0 capabilities [2]; however, some planning of future features also took
place. Specifically, where there exists a risk that present design
decisions should be informed by or take into consideration future
capabilities, those capabilities are investigated to mitigate potential
long-term impacts. Two such examples from this sprint are:
- Asynchronous REST-API [12]
- Runtime wiring and configuration [13] frameworks
--------------------
7) House-Cleaning
As in most sprints, on-going improvements were made to the codebase and
surrounding documentation.
- Integration tests were updated, including better coverage of HTML views
- HTML UI was updated
- RESTful status codes were reviewed
- Javadocs were supplemented
=========
References
=========
[1] https://wiki.duraspace.org/display/FF/2013-11-04+Austin
[2] https://wiki.duraspace.org/display/FF/Fedora+4.0+Key+Capabilities
[3] https://wiki.duraspace.org/display/FF/2013-11-05++Austin+Install-Fest
[4] https://wiki.duraspace.org/display/FF/Access+Roles+Module
[5]
https://wiki.duraspace.org/display/FF/Design+-+Authentication+and+Authorization
[6]
https://github.com/futures/fcrepo4/releases/tag/untagged-636f203d851575812c07
[7]
https://wiki.duraspace.org/display/FF/Navigating+the+Repository+via+HTML+interface
[8] https://docs.jboss.org/author/display/MODE/Federation
[9] https://wiki.duraspace.org/display/FF/Design+-+Large+Files
[10]
https://docs.jboss.org/author/display/MODE/Compact+Node+Type+(CND)+files
[11] https://wiki.duraspace.org/display/FF/HTTP+API#HTTPAPI-ContentModeling
[12] https://wiki.duraspace.org/display/FF/Design+-+Asynchronous+REST+API
[13] https://wiki.duraspace.org/display/FF/Design+-+Wiring+and+configuration
------------------------------------------------------------------------------
Shape the Mobile Experience: Free Subscription
Software experts and developers: Be at the forefront of tech innovation.
Intel(R) Software Adrenaline delivers strategic insight and game-changing
conversations that shape the rapidly evolving mobile landscape. Sign up now.
http://pubads.g.doubleclick.net/gampad/clk?id=63431311&iu=/4140/ostg.clktrk
_______________________________________________
Fedora-commons-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fedora-commons-developers