| gaborhojtsy |
CKEditor 4 is EOL in 2023 https://support.ckeditor.com/hc/en-us/articles/115005281629-How-long-wil... |
| xjm |
The conclusion we had in the core committer meeting is that D9 may need to be EOL in 2023 _regardless_ of CKEditor, if we're depending on Symfony 4 at that point. However, if we go to Symfony 5, then we need to worry about CKEditor 5 support. |
| gaborhojtsy |
well, at least not guaranteed for later |
| xjm |
And the other conclusion was that we want to just do a scope estimate of what CKEditor 5 _support_ would entail, and think about this for the D8 LTS if it's achievable. But probably wouldn't be a must-have. |
| gaborhojtsy |
Anyone enthusiastic about it? :slightly_smiling_face: |
| xjm |
Well we said we'd ask Wim to spend a day on it. I don't think we actually did that yet though. :slightly_smiling_face: |
| xjm |
So if someone else does in the meantime that's awesome. |
| mikelutz |
I’m enthusiastic about someone else doing it. :slightly_smiling_face: My javascript kung-fu is not the strongest. |
| gaborhojtsy |
Lol. It would be best if there would be more people other than Wim for the sake of both the project and Wim :smile: |
| mikelutz |
https://www.drupal.org/project/drupal/issues/2966864 Linking this for the transcript |
| gaborhojtsy |
I posted a summary at https://www.drupal.org/project/drupal/issues/2966864#comment-12888742 |
| gaborhojtsy |
I also pinged the question to Wim, so it does not get forgotten :slightly_smiling_face: |
| xjm |
It's an interesting thought experiment, but I'm with Berdir on this one. And I don't consider it to be something that should be on the D9 roadmap. |
| xjm |
We can keep the discussion and tests ongoing but for me it's out of scope for D9's API policy. We have enough to do. |
| mikelutz |
Maybe something we consider deprecating extending certain classes in Drupal 9 and then mark them final in Drupal 10. I really do like the idea, but it seems controversial enough that I don’t think we can get consensus and give contrib enough warning before 9.0 |
| xjm |
Yep, that's a fair way of looking at it |
| gaborhojtsy |
Either way we need tooling for contrib / custom code to tell if they are extending internal stuff alongside with tooling if they use deprecated. Both are critical for knowing where update pains may be. |
| xjm |
I think that would be a good separate issue to file, much higher-level |
| xjm |
And related to the ongoing meta to mark stuff explicitly as `@internal` when the policy implicitly says it is (which we've had as sprint fodder for a couple years now) |
| xjm |
Like the current meta is likely a blocker to making tooling surface it better |
| xjm |
(vs. programmatically interpreting a 50-entry policy `<dl>`) |
| Nick Wilde |
I like the idea and hate the idea. Like often I do extend classes for custom work that I know may change but I want future improvements most of the time. But mostly I'm vaguely against; _I like more choices, even if some are riskier_. |
| gaborhojtsy |
https://www.drupal.org/project/drupal/issues/2550249 |
| mikelutz |
The flip to that is a lot of stuff that should probably in fairness to contrib be marked @api as well that isn’t. |
| gaborhojtsy |
@Nick Wilde the ultimate problem is *you* may like those choices but when sites use modules that liked those and then have the upgrade pains that we said they would not have is a problem :smile: |
| mikelutz |
It would be really nice to have everything marked for the LTS, it would feel like we had Drupal 8 finally buttoned up, lol. |
| xjm |
Actually for `@api`, we talked to Symfony about this a couple years back |
| mikelutz |
poetic, if not practical. :slightly_smiling_face: |
| Nick Wilde |
To be clear, for *contrib* I don't like blind extend. For custom only I'm talking about |
| xjm |
They eventually flipped their practice to focusing on marking `@internal` rather than `@api`, for the same reasons we did in practice: It's much easier to identify what's _not_ API than what _should be carved in stone_ |
| gaborhojtsy |
for tooling, we have https://www.drupal.org/node/2811561 but I am not sure d.o testbot uses it? @mixologic |
| xjm |
The BC policy doc doesn't yet really account for this, but frankly we don't really use `@api` because honestly we need to support the whole surface. Especially with how Drupal's extended. |
| mikelutz |
And it’s much easier to remove an @internal than an @api. |
| mikelutz |
That’s true, by the numbers the doc says that most things not marked @api should be considered @internal |
| xjm |
Yep, removing `@internal` is analogous to increasing visibility which is an API addition. vs. reducing it (removing `@api`) which is a BC break. |
| xjm |
There's a different meta for specific `@internal` additions; trying to find it |
| xjm |
Dunno why it is not linked in the main policy issue |
| mikelutz |
So, my patches should use @internal a lot more than I do. I don’t use it much because I consider it implicit according to the BC docs. |
| xjm |
Understandable when core also doesn't comply with that yet :slightly_smiling_face: |
| xjm |
Oh it is linked: https://www.drupal.org/project/drupal/issues/2873395 |
| xjm |
That's something that should probably go on the D9 meta if it's not there yet |
| xjm |
And something we'll want to really sprint on in Seattle for example. Good intermediate-level task to contribute to D9 readiness. |
| mikelutz |
So in that issue about final, I posted a patch that added a trait that triggered an error if you extended the class. I wonder if that triat or something similar might be still usefull in D8 for classes we intend to mark internal in D9. |
| mikelutz |
I guess it’s just marking things the policy already says are internal, so no need to trigger errors, I suppose. goes back to tooling. |
| xjm |
It could be a useful pattern, but we don't want to accidentally raise errors for internal things being used correctly by collaborators. OTOH it would help us get info on when things _shouldn't_ be `@internal`, but when that's "by breaking someone's stuff" we need to be careful :slightly_smiling_face: |
| alexpott |
The thing is with the final discussion is that there are patterns that people can use to compose their classes differently that make upgrading and maintenance easier. It’s just that we don’t recommend them or enforce them via final and the free-for-all means that popular modules extend internal classes all the time. If we want reliable unattended updates it feels like something has to give. |
| catch |
https://drupal.slack.com/archives/CDDD98AMN/p1544470744027800?thread_ts=... this sounds worth exploring. |
| xjm |
Yeah, a trait could be an opt-in on a case-by-case basis. If we went that route though I'd rather see that as something we optionally include in new code when appropriate. Easy to remove it later if someone files an issue saying "Let me use this thing". I'm not on board with it being anything we block D9 on though. |
| xjm |
People extending paramconverters is not what makes minor updates break people's sites |
| gaborhojtsy |
What this could really use is someone to jump in and try to make Drupal core support both 8.x and 9.x extensions and/or extensions without compatibility version numbers. |
| xjm |
Including auditing core for all the things that might be affected e.g. update status/security update info/etc. |
| gaborhojtsy |
@mixologic and I started to look into what it would take for localize.d.o integration in 8 to drop the core compatibility in URLs and it works sort of (more server side verifications and changes required): https://www.drupal.org/project/drupal/issues/3016471 |
| gaborhojtsy |
the same would need to be done for modules/themes/update.d.o integration, etc. as @xjm wrote above |
| xjm |
I wonder if useful content for the D9 page or a child thereof might be "top things we need help with from contributors", which would include this, the `@internal`, Symfony, CKeditor, etc. And/or something like the 'sprint' tag for this initiative (which would be combined with the current tag for another Kanban). |
| gaborhojtsy |
As per @mixologic the DA has resources to do this, so it may eventually get blocked on core devs lacking yeah :smile: |
| gaborhojtsy |
@xjm The sprint tag is a good idea, I’ll see what I can do :slightly_smiling_face: |
| mixologic |
It would also be helpful to separate out the 'd9 readiness milestones' |
| xjm |
As in, vs. implementation issues? |
| mixologic |
Because some of them are things we want to do before we branch, some before we cut an alpha, and some before we release. etc. |
| xjm |
Ahh I get it |
| xjm |
So tagging separately based on which of those buckets it's in |
| xjm |
(Or something) |
| gaborhojtsy |
@mixologic separate them as in tags or issue structure? https://www.drupal.org/project/drupal/issues/3007300 has two children based on pre-branch / post-branch |
| mixologic |
i.e. a lot of the d.o. requirements probably need to be in place before we branch, and thus has a shorter timeline. |
| gaborhojtsy |
unfortunately many post-branch issues have pre-branch exploration/prepare components |
| xjm |
Maybe issue management/tags should be spun up into its own thread? Although we're almost at time |
| xjm |
So, maybe for next meeting :slightly_smiling_face: which we might want to reschedule given Christmas Eve is a holiday that will affect a lot of folks |
| mixologic |
sure. And there might even be things we can live with for a while that dont necessarily *block* branching, but should happen soon afterwards. |
| gaborhojtsy |
Done https://drupal.slack.com/archives/CDDD98AMN/p1544471861034300 |
| xjm |
From @mixologic : |
| xjm |
> Because some of them are things we want to do before we branch, some before we cut an alpha, and some before we release. etc. |
| xjm |
> i.e. a lot of the d.o. requirements probably need to be in place before we branch, and thus has a shorter timeline. |
| xjm |
> sure. And there might even be things we can live with for a while that dont necessarily *block* branching, but should happen soon afterwards. |
| xjm |
So the meta already has one split; do we also want to adjust our tagging practices for this? And/or get more specific on the groupings on the meta? |
| gaborhojtsy |
the hard part for me was that post-branching issues mostly have pre-branch todos as well, eg. post-branching is actually make Symfony 4/5 required, but to support them optionally in 9 is pre-branch |
| gaborhojtsy |
“Must-have to branch Drupal 9” would be a suitable tag? |
| gaborhojtsy |
it needs to be quite specific :smile: |
| gaborhojtsy |
then “Must-have on Drupal 9 branch” maybe for the second group |
| xjm |
"Blocks branching 9.0.x"? |
| xjm |
Must-have-ness should be marked by the critical issue priority |
| xjm |
"9.0.x branching blocker" and "9.0.0-alpha1 blocker" and "9.0.0 blocker" or such |
| gaborhojtsy |
those tags would be more in line with our usual practice yeah — that said if its a blocker, it will be critical :smile: should haves will not block |
| gaborhojtsy |
I will look into separating the issues along those lines |
| gaborhojtsy |
I think 9.0.0 blocker is a bit vague, we know it means the release but adding the “release” word would be less ambiguous |
| xjm |
Right. I don't think we'd have many things in that box yet. Maybe some of the d.o stuff. |
| gaborhojtsy |
I was more thinking of drive-by tagging, that looks like an enticing one to tag all the things with |
| gaborhojtsy |
as something that blocks the brancing will *also* block 9.0.0 eventually :smile: |
| gaborhojtsy |
making it more specific about the release would be clearer |
| xjm |
Also stuff that can't be done _until_ 9.0.x is branched can be blocked on a single "Branch 9.0.x" critical issue that the RMs would own |
| xjm |
As in, marked postponed |
| xjm |
and the "Branch 9.0.x" would be postponed on its respective meta :slightly_smiling_face: |
| gaborhojtsy |
yup |
| gaborhojtsy |
will look into opening more of these so there are reference points |
| gaborhojtsy |
https://imgflip.com/i/2on25b |
Comments
Comment #2
wim leers#3019332-14: Use final to define classes that are NOT extension points referred to this issue and then marked it postponed on D9, indicating it could only happen in D10. But this issue is empty. So I reactivated it until we have strong arguments to justify postponing it.
Comment #10
justafishComment #11
justafishComment #12
justafish