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

Consider removing OPTIONS version negotiation #510

Closed
thekaveman opened this issue Jun 4, 2020 · 5 comments · Fixed by #536
Closed

Consider removing OPTIONS version negotiation #510

thekaveman opened this issue Jun 4, 2020 · 5 comments · Fixed by #536
Labels
Agency Specific to the Agency API Policy Specific to the Policy API Provider Specific to the Provider API
Milestone

Comments

@thekaveman
Copy link
Collaborator

Is your feature request related to a problem? Please describe.

Back when the version header was specified, we included the notion of version negotiation via OPTIONS requests. See #293 for implementation and conversation history.

In my 2 years of ingesting Provider data at the City of Santa Monica, we never had a need for version negotiation. A follow-up comment on #293 indicates that this feature complicates the Provider implementation and versioning of MDS, especially given we are just now entering 1.0 territory:

... in the case of MDS, i think it's very clear that when we publish a new version, we want to deprecate the old, and in order to encourage the deprecation of the old to be done in a timely manner, we shouldn't allow negotiations for older versions after a short amount of time passes the release of a major version.

... if a client can accept an updated version of MDS Provider, i don't see a case where they would want to accept the older version, which would happen via OPTIONS content negotiation

Describe the solution you'd like

I'm opening this issue to discuss the possibility of removing OPTIONS version negotiation from the spec. I'm especially curious to hear from anyone that has used this feature:

  • if you are a Provider that has implemented this feature, how easy/complicated was this implementation? Do you see consumers using version negotiation? If so, how many/which versions are being negotiated for?
  • if you are a data consumer that has implemented this feature, how easy/complicated was this implementation? Why do you use version negotiation? How many/which versions are you negotiating for?

If possible, I'd like to include this in 1.0.0 since we're making a number of breaking changes, including to the version header itself.

Is this a breaking change

  • Yes, breaking

Impacted Spec

For which spec is this feature being requested?

  • agency
  • policy
  • provider

Describe alternatives you've considered

Do nothing, leave the feature specified as-is.

@thekaveman thekaveman added Provider Specific to the Provider API Agency Specific to the Agency API Policy Specific to the Policy API labels Jun 4, 2020
@thekaveman thekaveman added this to the 1.0.0 milestone Jun 12, 2020
@thekaveman
Copy link
Collaborator Author

Draft PR to look at this in context: lacuna-tech#12

Submitted against the Reconciliation PR/branch as much has been changed/reorganized in this PR and targeting it will help avoid conflicts. I marked as Draft for now as there hasn't yet been much discussion, but we'll bring it up on the next Provider call.

@schnuerle
Copy link
Member

Even if this isn't used now, do you see the need for this to be potentially used more in the future as there are more releases out there that people are supporting? Would like anyone's thoughts on this, but otherwise this change looks good to simplify the spec.

@thekaveman
Copy link
Collaborator Author

thekaveman commented Jun 18, 2020

Discussion on 6/18: it sounds like this hasn't been widely implemented in the field and we are OK with removing.

Important to note that the ability to request different versions of the spec is not being changed, we're just simplifying and saying that a human should be making that decision each time vs. trying to automate discovery and agreement of versions. It sounds like this is the more general practice in the field today anyway.

Once #506 is merged, I'll submit a new PR with the same changes as the linked PR, into the MDS repo.

@marie-x
Copy link
Collaborator

marie-x commented Jun 22, 2020

Sounds good to me

@schnuerle
Copy link
Member

Completed with #536.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Agency Specific to the Agency API Policy Specific to the Policy API Provider Specific to the Provider API
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants