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 back to the project results and feedback.
Alpha
One of the goals with 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 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:
- Indirect Containers
- Support for the
http://www.w3.org/ns/oa#PreferContainedDescriptions
header - ...
Breaking changes from Fedora 5.x
- POST-ing to a URL which does not exist will now create the destination as a 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.
- Transactions API...
- No more http://fedora.info/definitions/v4/repository#RepositoryRoot on repository root
- 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
The Fedora 6.0.0-alpha build has the following results when the Fedora API TestSuite is run against it.
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 is the results of Fedora 5.1.1 are
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% |
Currently failing tests are:
- 3.1.3-0: Implementations must allow the ldp:insertedContentRelation property to be set by default to an implementation defined value.
- 3.1.3-P: Implementations SHOULD allow the ldp:insertedContentRelation property to be set by default to ldp:MemberSubject.
- 3.10.2-D: A client may include the X-If-State-Token header field in a PUT request to make the request conditional on the resource's current state token matching the client's value.
- 3.2.1-B: In addition to the requirements of [LDP], an implementation ... may support the value http://www.w3.org/ns/oa#PreferContainedDescriptions for the Prefer header when making GET requests on LDPC resources.
- 3.6.1-A: Any LDP-RS must support PUT to update statements that are not server-managed triples (as defined in [LDP] 2). [LDP] 4.2.4.1 and 4.2.4.3 remain in effect. (This is a failure of the test suite)
- 4.1.1-A-1: If no LDPRm is appropriate to the Accept-Datetime value, implementations should return a 406 (Unacceptable).
- 4.1.2-B: Must support PUT for updating existing LDPRvs
- 4.2.6: LDPRm resources must support DELETE if DELETE is advertised in OPTIONS (https://github.com/fcrepo/fcrepo/pull/1790)
- 4.3.3.1-E: If an LDPCv supports POST, a POST with a Memento-Datetime header should be understood to create a new LDPRm contained by the LDPCv, with the state given in the request body.
- 4.3.3.1-F: If an LDPCv supports POST, a POST with a Memento-Datetime header should be understood to create a new LDPRm contained by the LDPCv, with the datetime given in the Memento-Datetime request header.
- 6.1: For every resource whose state is changed as a result of an HTTP operation, there MUST be a corresponding notification made available describing that change.
- 6.2-A: The notification serialization MUST conform to the [activitystreams-core] specification, and each event MUST contain the IRI of the resource and the event type.
- 6.2-B: Wherever possible, data SHOULD be expressed using the [activitystreams-vocabulary].
Upgrading to the Alpha
...
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
...
Samvera
...
Performance criteria
The following performance criteria will be documented and verify prior to the 6.0 production release:
- ...