19. 19
Consequences
– “It’s done when it’s done” meant no one knew when to
expect new features / plan for migrations
– Little incentive for funded core dev = burnout
–Coupling new features with backwards compatibility breaks
limited innovation in core product
– “We’ll break your code, not your data” = people often stayed
on release until EOL, then faced painful upgrade path
24. 24
Benefits
– Predictable release schedule that both end users and core
developers can plan and organize around.
– Site builders can acquire powerful new functionality without
reinventing site.
– Opportunities to get end-user feedback and evolve features
over time (vs. being “stuck” with whatever shipped in 8.0.0).
– Drupal 9 becomes just a normal “minor” release, with
backwards-compatibility layers dropped.
4,200 contributors to core
100K+ active contributors across the project
1750 commits/week
Thousands of add-on modules
…at the expense of backwards-compatibility.
Drupal 8 has lots to love!
Authoring improvements such as WYSIWYG and in-place editing.
Site building tools such as Views, multilingual, and multiple new field types.
Developer improvements such as web services, OOP, and improved page caching
Front-end improvements including Twig, HTML5, and dropping support for old, crusty web browsers.
In general, what I hear from people who grew up on PHP via Drupal 7 and below
That OO
Just {{ variable }}. No more need to check your semi-colons!
Your HTML + CSS designers don’t also need to be PHP experts.
Auto-escaping eliminates XSS vulnerabilities.
Twig’s “extend” feature allows you to only override part of a template.
In Drupal 7, configuration was managed with a mess of update hooks, database values, exportables, and so on.
Drupal 8 everything is held in a standard configuration management system, which is a bunch of human-readable YAML files.
These files can be moved from one environment to the other, held in version control, etc.
And with all of those features, for the first time you can start building great sites with only the stuff that comes in core.
Here’s what we’re planning for the Out of the Box initiative in 8.5.
It showcases all that Drupal core has to offer, and looks GREAT!
And with all of those features, for the first time you can start building great sites with only the stuff that comes in core.
Here’s what we’re planning for the Out of the Box initiative in 8.5.
It showcases all that Drupal core has to offer, and looks GREAT!
Each release = new features, provided on an “it’s done when it’s done” and “we’ll break your code, not your data” basis … backwards compatibility eschewed, upgrade path provided.
Release rates slowed and development time increased as more and more ambitious goals.
Each Drupal release supported until the one two releases after. (e.g. Drupal 5 supported until Drupal 7 comes out, etc.)
On this basis, a common practice was to skip a release—don’t upgrade your Drupal 5 site until Drupal 7 comes out.
Drupal 8 now uses semantic versioning,
Not only that, but new capabilities and improvements keep getting added every 6 months in “minor” releases.
The next minor release, Drupal 8.4.0, comes out next week!
* stands for “experimental modules”, which are previews of upcoming core functionality for broader testing and feedback.
In the past, getting new core features involved waiting 4+ years, and a massively painful upgrade path.
Now, minor releases retain API backwards compatibility, and provide update paths.
“In theory,” Drupal 8 to Drupal 9 will be no more difficult than Drupal 8.3 to 8.4.
Even Experimental modules will be backwards-compatible from 8.4 on.
Will be branched when we run out of cool things to do in Drupal 8 without breaking BC.
Most D8 modules will work with D9, if they’ve been keeping up with minor releases.
These include things like making sure modules can work on multiple core major versions at once
That Drupal 8 isn’t using any deprecated APIs and we have automated tests to check that we don’t introduce more.
So the short version: not for a good while yet. :) There will be at least 6 months to a year’s notice ahead of time.
Alpha doubles as “feature freeze.” Good opportunity to look at what’s changed and what might affect you.
Beta marks both locking down of features, as well as locking down of commits from the prior release.
One month later, new version released, EOL of previous version.
If your launch date is after the next release, start developing on it now.
Alpha release is where we start to lock things down. Great time to start paying attention, testing on your dev sites.
RC = this is what we plan to ship with.
Development never stops!
Change records required for commits that make significant changes.
New release announcements, general community announcements.
@api vs. @internal vs. unspecified
Example: Rename a database column. Instead, use DB abstraction layer.
Itemized list of things that need to be taken into consideration.
Step through each of the major new initiatives.icon sources:
https://www.flaticon.com/free-icon/shuffle_148750#term=arrow&page=1&position=39
https://www.flaticon.com/free-icon/picture_489821#term=gallery&page=1&position=8
https://www.flaticon.com/free-icon/layout_272364#term=layout&page=1&position=5
https://www.flaticon.com/free-icon/api_439163#term=api&page=1&position=6
https://www.flaticon.com/free-icon/workflow_267967#term=workflow&page=1&position=6
https://www.flaticon.com/free-icon/package_189058#term=box&page=1&position=19
https://www.flaticon.com/free-icon/integrated-circuit_1615#term=components&page=1&position=3
“Do-ocracy”
Intrinsic motivation vs. employer motivation
But NOT ‘waiting for requests’
The roadmap links off to issues where these problems are being actively discussed and worked on.
Emphasize non-technical contributions.
One last painful upgrade.
Recommend doing it as soon as it makes “organizational” sense to do so.
Risk of waiting until Drupal 9 = lots of paradigm shifts in addition to code changes. (e.g. Paragraphs)
One issue per project
Has information such as what the overall roadmap is, where the maintainer needs help.
Lots of priority given to 6 to 8 migration path, since that’s more urgent.
7 to 8 migration path working, but still has some holes.
Best thing to do is set up a Drupal 8 site, try it, tell us your experience.
Lots of focus on stabilizing Migration right now.
First is an overview of Drupal 8 and what it entails.
Second is “how to” documentation for Drupal, in multiple languages.
Third is API reference, including concept/overview pages.