See https://twitter.com/jsonapi/status/1069593631365959680 — RC1 of version 1.1 of the JSON:API spec was released — see https://jsonapi.org/format/1.1/.
Until it's final, we shouldn't switch over from 1.0 to 1.1, but we should explicitly verify that we are fully compatible with it.
Relevant tweets quoted:
-
New 1.1 features include "profiles", which provide a means to negotiate additional semantics beyond what's covered in the base spec. Profiles could cover specific means of filtering, paginating, or versioning resources. Create and share profiles here: https://jsonapi.org/extensions/
We have #2955020: Spec Compliance: JSON API's profile/extention (Fancy Filters, Drupal sorting, Drupal pagination, relationship arity) needs to be explicitly communicated for this.
-
Also of note is the change in the official recommendation to use camelCase names for resource fields. This reduces the friction of composing + parsing JSON:API with JavaScript and other languages.
We can't do this without massive disruption.
https://jsonapi.org/#update-history is likely going to be helpful.
| Comment | File | Size | Author |
|---|---|---|---|
| #16 | 3019574-16.patch | 7.89 KB | wim leers |
| #16 | interdiff.txt | 3.06 KB | wim leers |
| #15 | 3019574-15.patch | 10.58 KB | wim leers |
| #15 | interdiff.txt | 4.61 KB | wim leers |
| #13 | 3019574-13.patch | 6.37 KB | gabesullice |
Comments
Comment #2
e0ipsoNor we should. This falls on the implementor's side, they should use JSON:API Extras for it.
Comment #3
wim leersCompletely agreed — sorry for not making that more clear :) OTOH, good to have an explicit +1 :)
Comment #4
wim leersOnce we switch to 1.1 support, we'll need to take care of all of the following (in these points below I'm following the structure in https://jsonapi.org/#update-history):
infoURL may be repeated as one of thetypeURLscamelCase— we're not adopting that (see #2 + #3), plus it's only a recommendation anywayComment #5
wim leersBased on #4, AFAICT JSON:API 1.1 only requires changes for:
@e0ipso and @gabesullice: I'd love to hear your thoughts on how this should impact 2.0RC3 and 2.0-stable. IMHO 2.2.a is a hard blocker for 2.0-stable, and 1.1 should be too to be safe.
Comment #7
gabesullice+1 to 1.1 and 2.2a as stable blockers. I'm ambivalent about whether they should blocking RC3 though.
I'm beginning to feel like we're abusing the RC process a bit... if we know there will be changes, can we really tag a release candidate if we know it's not really a true candidate for release? OTOH, tagged releases seem to increase testing and adoption of 2.0 which I like.
Comment #8
wim leersI don't think we are. We released RC1 thinking it could be a stable release. Bugs were found. RC2 was released. Bugs were again found, and they're now all fixed. But also during RC2, https://twitter.com/jsonapi/status/1069593631365959680 happened. While that is not a bug, that does pose a risk of BC breaks post-2.0. Better to address that now rather than later.
But yes, I think we're getting distracted in the RC phase; I think several of the lately committed performance issues should not have been committed during RC (2 commits for #3014232, 1 commit for #3017239. They weren't critical. Anything non-critical should wait until after 2.0.
Comment #9
gabesulliceFirst, a simple CS fix.
Comment #11
gabesulliceThis should address 2.2a.
Comment #13
gabesulliceEssentially:
Comment #15
wim leersThis fixes most failures.
Comment #16
wim leersThese are for points 1.2 and 1.3 and are definitely safe to add later. Let's remove them here. That will make the patch green.
Comment #18
wim leersIMHO #16 should get committed, then RC3 should be tagged. We'll need a follow-up for points 1.2 and 1.3.
+1 from @e0ipso and/or @gabesullice wanted :)
Comment #19
gabesulliceThis LGTM. Committing.
Comment #21
gabesulliceComment #22
gabesulliceCR created: https://www.drupal.org/node/3020073