clarin-eric / component-registry-rest

Component Registry back end
GNU General Public License v3.0
2 stars 1 forks source link

Component and profile versioning/deprecation #12

Closed twagoo closed 8 years ago

twagoo commented 8 years ago

This ticket covers the back end aspect of component and profile versioning/deprecation, originally Trac #142. Corresponding front end issue: #66 and #67.

Concrete tasks:

Description of original Trac ticket:

Note: Trac #571 covers support for public drafts (publicly visible private components), a subset of the functionality described here, without the lifecycle status properties specified in CMDI 1.2

This enhancement should enable an owner of a component to designate a new component or profile as the new version of an existing a component, marking the existing version deprecated. There will (at least initially) be no mechanism to deal with backwards compatibility, i.e. published components will remain unchanged but users will be strongly encouraged to use to the new version. The status will be represented in the XML/XSD of the profile (see #146).

This is the first and most important step after the required general component schema update in implementing the Component Lifecycle Management features of CMDI 1.2.

Also take note of the envisioned set of '''views''' that strongly relate to this (and the additional option to mark development components for review). See ComponentVersioning#Viewsworkspacesandregistries.

twagoo commented 8 years ago

Status indexing was implemented in 5a07e782d1f8d3aa080bf18fc3516e51195e5993

twagoo commented 8 years ago

Status information is taken from component spec header and stored in the database (part of changes in 73b488d8922e3d117af3411625ae18b1f34004b6 that also fix #2)

twagoo commented 8 years ago

As of 8c1bf0894b301bdcf2972318566cba3091140dcb, status for profiles and components can be assigned/retrieved via {id}/status (GET/POST). TODO: same for successor.

twagoo commented 8 years ago

As of b9cfd7356e92369d53df2849c19c5a79db57fc99, successors for profiles and components can be assigned/retrieved via {id}/successor (GET/POST).

twagoo commented 8 years ago

Component/profile listing can be filtered with the status query parameter. Default behaviour depends on user space. Implemented including tests as of 40ae6621189905e4622aca7d70b0d97e1fd9c994