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

Should OCFL include a compatibility promise? #572

Open
srerickson opened this issue Jan 6, 2022 · 3 comments
Open

Should OCFL include a compatibility promise? #572

srerickson opened this issue Jan 6, 2022 · 3 comments
Milestone

Comments

@srerickson
Copy link
Contributor

Looking toward the release of 1.1 and the possibility of 2.0 on the horizon, it may be helpful to include a non-normative statement describing expectations for compatibility between 1.0 and future revisions of the spec. (Go's "compatibility promise" is an example of such a statement).

In the case of OCFL, such a statement might include the following:

"It is intended that valid OCFL objects created with version 1.0 of the spec will continue to be valid for future OCFL versions."

This specific promise may be unrealistic. Rather, my suggestion is that it would helpful to communicate how the spec may or may not evolve in the future. Are OCFL editors open to placing constraints on future revisions? If so, what are these constraints?

@zimeon
Copy link
Contributor

zimeon commented Jan 10, 2022

This is an interesting question. I consider this promise to already be present because:

But maybe something more should be spelled out? This does, of course, rely on software maintaining support for all prior versions.

@srerickson
Copy link
Contributor Author

I agree that some promises are already present, or latent, in the draft spec and that it would be useful to spell these out. Also, compatibility is possibly a less pressing concern for OCFL than it is for, say, a programming language because OCFL objects declare the exact version of the specification against which they should be interpreted (i.e., "a valid OCFL x.y object will always be a valid OCLF x.y object").

My hope is to identify ways to make implementing OCFL easier since it may become quite challenging to support all prior versions, as required. Rather than compatibility, maybe it would suffice to emphasize stability in the spec wherever it is necessary or possible.

@rosy1280 rosy1280 modified the milestones: 1.1, 2.0 Feb 3, 2022
@rosy1280
Copy link
Contributor

rosy1280 commented Feb 3, 2022

We would like to defer this to 2.0 so we have something more substantive to talk about regarding compatibility.

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

No branches or pull requests

3 participants