Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Registered extension name #14

Closed
pwinckles opened this issue Jun 3, 2020 · 3 comments
Closed

Registered extension name #14

pwinckles opened this issue Jun 3, 2020 · 3 comments
Assignees

Comments

@pwinckles
Copy link
Contributor

pwinckles commented Jun 3, 2020

The draft OCFL spec reads:

Extension sub-directories SHOULD be named according to a registered extension name.

When describing object extensions.

The current extensions format does not specify what an extensions "registered extension name" is. I assume that it is extension's specification filename .md? I think this should be made explicit, and, I would suggested, included in the header section of every extension specification.

@pwinckles
Copy link
Contributor Author

From my perspective, the following are the key elements that must be clearly defined in the extension spec for extensions to work:

  1. How extensions are identified
  2. Where extension files are stored
  3. How extensions are referenced and loaded (this might fit better in the OCFL spec)
  4. How extensions are versioned
  5. How new extensions are added

Of these points, the first three are still not clearly addressed in the core spec or the extension spec and I think would largely be addressed with resolution of this issue. Here are my answers to the questions based on my assumed intent:

  1. An extension's id is its filename without the .md. For example, 0000-example-extension. The id should be referenced within the extension's spec.
  2. Extension files are stored under extensions/<EXT-ID> under either the repository root or the object root.
  3. Extensions are referenced, when possible such as in ocfl_layout.json, using their extension id. When an OCFL repository or OCFL object is accessed, OCFL clients must first check the extensions directory and load any extensions that they understand. This is key for extensions that cannot otherwise be referenced within core OCFL files.

It's worth noting that 0001-digest-algorithms, as currently specified, is a special case. It is an implicit extension of the core spec. That is to say, it is not explicitly referenced in inventory files and it does not require any extension files to be written to [object-root]/extensions/0001-digest-algorithms.

@neilsjefferies
Copy link
Member

Mostly solved by #13 awaiting policy for new extensions

@neilsjefferies
Copy link
Member

Policy added in #24

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants