The release of Fedora 6.0 marks a significant milestone for the community. Fedora 6.0 addresses some of the performance and scale limitations of earlier releases, introduces a standards-based, long-term preservation-focused persistence layer, and adds a basic search service.
As such, the process for moving to the production release of Fedora 6.0 will include both Alpha and Beta releases to ensure the broader community has ample opportunity to confirm the functionality against local needs and use cases, and to provide feedback from local testing.
Alpha
The Alpha release includes the following features:
- Oxford Common File Layout persistence
- Search service
- Alpha release of migration tooling that provides for upgrades from Fedora 3, 4, and 5 to Fedora 6
Additionally, the following features will be in the Beta release of Fedora 6.0.0 but are not found in the Alpha:
- Targeted rebuild of side-loaded OCFL objects
- Search service user interface
- Migration of Fedora 4 ACLs to Fedora 6
- Support for LDP Indirect Containers
- Support for the http://www.w3.org/ns/oa#PreferContainedDescriptions header
Breaking changes from Fedora 5.x
The following are breaking changes in Fedora 6 that should be considered if porting a client application that interacted with a Fedora 5 repository:
- API for creating and managing Transactions has changed
- POST-ing to a URL which does not exist will now create the destination as a pseudo-container, i.e. "ghost node", and create a child node inside of it. Previously, this would result in a 404
- Memento timestamps may no longer be specified when creating a memento
- Mementos cannot be deleted
- ActivityStream Actors, in event notifications, now correctly contain a single type rather than a list of types
- No more http://fedora.info/definitions/v4/repository#hasParent property on nested containers
- No more http://fedora.info/definitions/v4/repository#writable property on resources
Fedora API Compliance
One of the goals of the Fedora 6.0 release is to retain compliance with the featureset found in Fedora 5.1 which includes continuing to be compliant with the Fedora API Specification.
The Alpha release of Fedora 6 has the following results when the Fedora API TestSuite is run against it. Before the production release of Fedora 6, we strive to have 100% compliance with this test suite.
Req Level | Num Pass | Num Fail | Num Skip | % Pass |
---|---|---|---|---|
MUST | 142 | 7 | 6 | 95% |
SHOULD | 38 | 5 | 1 | 88% |
MAY | 23 | 1 | 18 | 96% |
Total | 203 | 13 | 25 | 94% |
For comparison, here are the results of Fedora 5.1.1:
Req Level | Num Pass | Num Fail | Num Skip | % Pass |
---|---|---|---|---|
MUST | 146 | 3 | 6 | 98% |
SHOULD | 43 | 0 | 1 | 100% |
MAY | 30 | 0 | 12 | 100% |
Total | 219 | 3 | 19 | 99% |
Full results can be found at https://fedora.info/spec-tests/.
Upgrading to the Alpha
In conjunction with the Fedora 6.0 Alpha release comes upgrade tooling that allows for migrating Fedora 3, 4 and 5 repositories to Fedora 6.0. Please see the Migrate to Fedora 6 instructions for details on how to perform these upgrades.
Beta
Community integrations
During the course of Beta testing, it is important to verify that applications in the Islandora and Samvera communities integrate with the Beta release of Fedora 6.0.
Islandora
The Islandora community will build a new fcrepo container using ISLE and encourage our community to pull it in and test using Fedora 6. We will manually test integration by walking through our Fedora relevant use cases. We will seek to test:
- Green-field installations
- Existing Islandora 8 installations
- Islandora 7 installations that are migrating into Islandora 8
Samvera
Initial sanity testing of Fedora 6.0 with Valkyrie has already been successfully conducted. Further testing should focus on Valkyrie-based use cases since ActiveFedora is unlikely to be updated to work with Fedora 6.0. Candidates for testing include Hyrax, Hyku, and Avalon, though this will depend on the timeline for Valkyrie integration.
Testing should begin with green-field scenarios and include performance and scale tests. Migration testing will likely be out of scope for the beta because the current Fedora-based migration tools do not take Samvera applications into consideration when migrating from Fedora 3, 4, or 5 to Fedora 6.0. However, the current tools should be tested in order to determine whether or not they represent a suitable starting point for Samvera migrations vs. creating a new tool for this purpose.
Performance criteria
Before releasing the Beta version of Fedora 6.0, a list of performance and scale tests will be identified, designed and executed in order to provide clarity to the community regarding the application's characteristics under various usage scenarios. Examples of such tests will include:
- How many resources can be ingested into Fedora? How long does it take?
- How do POST response times change on binary resources as the size of the binaries increases?
- How do GET/POST response times change as the size of the repository increases?
- How do GET/POST response times change on a compound resource as the number of resource versions increases?
- How do GET response times change on binary resources as the number of binary resources in the repository increases?
- How do GET response times change on containers as the number of child and/or member resources increases?
- etc
Feedback
Community testing and feedback is vital during the the Alpha and Beta phases of Fedora 6.0 in order to ensure that the application meets (exceeds?) the needs of production use cases. Any feedback that you have during the testing process will be valuable to know; good or bad.
Please use any of the project communication channels for sharing your results: Mailing Lists etc.