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

Remove extension mechanism from base spec. #660

Merged
merged 3 commits into from
May 22, 2015
Merged

Conversation

dgeb
Copy link
Member

@dgeb dgeb commented May 21, 2015

Instead of rushing the extension mechanism into the 1.0 release, we are
marking it as experimental and removing it from the base spec.

This allows us to solidify the extension concepts for a future release.

Instead of rushing the extension mechanism into the 1.0 release, we are
marking it as experimental and removing it from the base spec.

This allows us to solidify the extension concepts for a future release.
@dgeb dgeb added this to the 1.0 milestone May 21, 2015
@bintoro
Copy link
Contributor

bintoro commented May 21, 2015

Okay, so will extensions use a completely different media type eventually, or how does this work in terms of 1.0 implementations and their lack of awareness of the ext parameter?

@dgeb
Copy link
Member Author

dgeb commented May 21, 2015

1.0 client implementations won't be aware of the ext parameter or any media type parameters.

We should probably explicitly declare that media type parameters must be ignored. I was debating where to place such a statement.

@dgeb
Copy link
Member Author

dgeb commented May 21, 2015

I am working on wording in the base spec regarding the ext parameter to ensure that it's future compatible. Will update soon...

This allows for future compatibility with an extension mechanism
that uses `ext` to specify an extension and possibly uses other
paramters for extension negotiation.
@dgeb
Copy link
Member Author

dgeb commented May 21, 2015

I've introduced a media type negotiation section in the base spec - please review carefully 85d8386

[as discussed in the base specification](/format#extending).
Official and custom extensions to the specification are discussed below.
* [Official](#official-extensions) and [custom](#custom-extensions) extensions
are in development. The `supported-ext` and `ext` media type parameters can
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we start the sentence that says "The supported-ext and ext..." with the clause "Currently, ", to suggest that the parameters may change?

@ethanresnick
Copy link
Member

@dgeb Thanks for punting on extensions for now, so that we can both get the mechanism right and still get 1.0 out tonight! That seems like the right call.

A couple other things:

  1. Any chance that punting on extensions means we have the bandwidth to further consider the attempted-"best of all worlds" proposal I made for include rules? I responded to your last comment earlier. If you agree with the solution in concept, then I can work up the PR!
  2. Once we tag 1.0 tonight, what are your thoughts on having a delay of a week or so before doing any big 1.0 promo campaigns? That would give client libraries, which I suspect are almost all be broken now, given the rapid changes over the last two days, a chance to catch up.

@dgeb
Copy link
Member Author

dgeb commented May 22, 2015

Any chance that punting on extensions means we have the bandwidth to further consider the attempted-"best of all worlds" proposal I made for include rules?

Commented

what are your thoughts on having a delay of a week or so before doing any big 1.0 promo campaigns?

Lines up well with #661 :)

@tkellen
Copy link
Member

tkellen commented May 22, 2015

Nicely done @dgeb! I'm really glad we've decided to take this approach. 👍 from me.

dgeb added a commit that referenced this pull request May 22, 2015
Remove extension mechanism from base spec.
@dgeb dgeb merged commit 5fbfc32 into gh-pages May 22, 2015
@ethanresnick
Copy link
Member

Thanks @dgeb! Also, any comments on #660 (comment)?

@dgeb
Copy link
Member Author

dgeb commented May 22, 2015

@ethanresnick see #660 (comment)

We now have a little time to ensure the correctness and readability of this section.

@tkellen tkellen deleted the shelve-extensions branch May 22, 2015 01:32
@bintoro
Copy link
Contributor

bintoro commented May 22, 2015

The new section on media type negotiation distinguishes between ext and other parameters. Is this mainly to allow proprietary parameters for versioning and such?

@dgeb
Copy link
Member Author

dgeb commented May 22, 2015

The intent is to reserve the ext parameter as a way to request an extension. 1.0 servers won't support extensions and therefore need to reject all such requests (which may come from 1.1 clients that use ext).

@bintoro
Copy link
Contributor

bintoro commented May 22, 2015

@dgeb Sorry, I phrased that poorly. What I mean is, why not put a blanket ban on all parameters? I'm assuming this is because we want to allow APIs to use the same header for their own stuff, too. This is fine, but it also implies that JSON API will never use anything besides ext.

@dgeb
Copy link
Member Author

dgeb commented May 22, 2015

This is fine, but it also implies that JSON API will never use anything besides ext.

@bintoro Given the current requirements on the server, I think this could more accurately be said "JSON API will never use another media type parameter besides ext to negotiate an extension".

Since this PR is now merged, please open an issue to discuss this further if you like. I'm not sure it's a major problem, but we should be clear-eyed about the implications and alternatives.

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

Successfully merging this pull request may close these issues.

None yet

5 participants