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

[Draft Extension Policy] Temporality and versioning of @Context file publication? #560

Open
bumblefudge opened this issue Dec 8, 2023 · 7 comments

Comments

@bumblefudge
Copy link

bumblefudge commented Dec 8, 2023

disclaimer: i have no idea what i'm talking about, so canonical/normative references would be helpful to me and the conversation i'm trying to start.

the extension policy makes it sound like the AS2 @Context file could be updated as often as new extensions were approved by consensus of the CG, with no reference to versioning or min/max frequencies.

if different versions of the AS2 context sat at the same URL, this would mean the referent of the @Context would change often. terms could be mainlined to the as2 context every 2 weeks, which would break RDFC hashes and other graph queries that dereference the @Context values. i don't know how many implementations would be affected by this (the two signing FEPs, ae97 and 8b32, both seem to use JCS so the contents of the @Context URL changing wouldn't affect the digest signed) but i have heard (hearsay, admittedly) that some @Context files in the w3.org/ns namespace are strictly versioned (maybe even according to some version of semver?) to make each update a separate publication. i have no idea how @Context works in SoLiD community, might be worth checking with them?

If each context-file update DID create a new version, that would mean implementations have to support those new terms before bumping to the new context URL, right? In semver terms, that sounds to me more like a major version than a minor one (in that even if implementations don't implement those extensions, they at least have to be able to parse them and appropriately ignore those values). This kinda makes an update to the official context sound equivalent to a major or minor version of the spec itself, non?

In summary, I think the flow is right, and this sketches out the lifecycle for optional extensions being described by additional @Context files that could be dropped when their contents get folded it into the next major version... but perhaps those "folding in" events could be bundled together and thought of as AP2.1 or 3.0?

Just spitballing, looking forward to discussing tomorrow!

@nightpool
Copy link
Collaborator

nightpool commented Dec 8, 2023 via email

@bumblefudge
Copy link
Author

well, at the very least, if they had a security stance of dropping objects with unknown keys in them, they'd have to NOT do that with the keys added in @Context updates, i meant (this is what i vaguely described as "they at least have to be able to parse them and appropriately ignore those values")

@nightpool
Copy link
Collaborator

nightpool commented Dec 8, 2023 via email

@bumblefudge
Copy link
Author

I guess I was overdue for a re-read of the extensibility section of AS2 ! That's embarassing.
In any case, I'm still curious how often the core context could and should be republished!

@evanp
Copy link
Collaborator

evanp commented Dec 8, 2023

@bumblefudge I think it's happened 3-4 times so far. We have timestamped older versions for processors that need to know exactly what's in the context doc. I'll see if I can dig it up.

@bumblefudge
Copy link
Author

that would rule, thanks. when it's been done in the past it wasn't versioned, right? was it errata or new functionality?

@evanp
Copy link
Collaborator

evanp commented Jan 24, 2024

I think that the conversation here is leading more towards best practices than towards a change in the way we as a CG maintain the context document. I'm going to start a primer page at https://www.w3.org/wiki/Activity_Streams/Primer/Context_document_versioning for guidance. Hopefully that helps with our discussion!

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