-
1.
1
Drupal 9 and Backwards
Compatibility
Why now is the time to upgrade to Drupal 8
Angie @webchick Byron
Office of the CTO
-
2.
©2017 Acquia Inc. — Confidential and Proprietary2
-
3.
3
Agenda
– Brief overview of Drupal
– History/evolution of Drupal releases
– Drupal 8, 9, and the future
– Practical advice for site builders
-
4.
©2017 Acquia Inc. — Confidential and Proprietary4
-
5.
©2017 Acquia Inc. — Confidential and Proprietary5
#1: Flexible framework
-
6.
©2017 Acquia Inc. — Confidential and Proprietary6
#2: Amazing community
-
7.
©2017 Acquia Inc. — Confidential and Proprietary7
#3: Cutting edge of technology
-
8.
©2017 Acquia Inc. — Confidential and Proprietary8
Drupal 8: Overview
Graphic courtesy of
themesnap.com
-
9.
©2017 Acquia Inc. — Confidential and Proprietary9
Modern, Object-Oriented PHP
• Cleaner
• Well structured
• Improved consistency
• Testable
• Design patterns
-
10.
©2017 Acquia Inc. — Confidential and Proprietary10
Improved Theming
• Twig library
• Simplified syntax
• Separation of logic + presentation
• Improved Security
• Template Inheritance and Overrides
-
11.
©2017 Acquia Inc. — Confidential and Proprietary11
https://www.slideshare.net/philipnorton42/
Configuration Management
-
12.
©2017 Acquia Inc. — Confidential and Proprietary12
You can build REAL sites, out of the box.
-
13.
©2017 Acquia Inc. — Confidential and Proprietary13
You can build REAL sites, out of the box.
-
14.
©2017 Acquia Inc. — Confidential and Proprietary14
Maturing contrib ecosystem
-
15.
©2017 Acquia Inc. — Confidential and Proprietary15
Drupal 8 is now the go-to release for most agencies
-
16.
©2017 Acquia Inc. — Confidential and Proprietary16
Numerous success stories.
-
17.
©2017 Acquia Inc. — Confidential and Proprietary17
A history of Drupal release management
-
18.
©2017 Acquia Inc. — Confidential and Proprietary18
Overview
Drupal 5
Jan 2007 - Jan 2011
Drupal 6
Feb 2008 - Feb 2016
Drupal 8
Nov 2015 - Drupal 10
Drupal 7
Jan 2011 - Drupal 9
-
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
-
20.
©2017 Acquia Inc. — Confidential and Proprietary20
D8 Semantic Versioning: New capabilities every 6 months
Drupal 8.2.0
October 5, 2016
• Content Moderation*
• Settings Tray*
• Date Ranges
• REST API++
Drupal 8.3.0
April 5, 2017
• CKEditor++
• New Status
Report
Drupal 8.4.0
October 4, 2017
• Media API
• Layout API
• jQuery/Symfony
3
Drupal 8.5.0
March 7, 2018
Layout Builder?
Demo Install?
Workspaces?
Drupal 8.1.0
April 20, 2016
• Migrate UI*
• Big Pipe
• Tours
• JS Testing
-
21.
©2017 Acquia Inc. — Confidential and Proprietary21
*With* Backwards Compatibility!
https://dri.es/making-drupal-upgrades-easy-forever
-
22.
©2017 Acquia Inc. — Confidential and Proprietary22
Introducing “LTS” releases / “security fixes only” stage
-
23.
©2017 Acquia Inc. — Confidential and Proprietary23
Innovation through “experimental” modules
-
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.
-
25.
©2017 Acquia Inc. — Confidential and Proprietary25
Drupal 9
-
26.
©2017 Acquia Inc. — Confidential and Proprietary26
Drupal 9: When? Here are the pre-requisites:
https://www.drupal.org/node/2608062
-
27.
©2017 Acquia Inc. — Confidential and Proprietary27
Putting into practice
-
28.
©2017 Acquia Inc. — Confidential and Proprietary28
#1: Know the release schedule.
https://www.drupal.org/core/release-cycle-overview
-
29.
©2017 Acquia Inc. — Confidential and Proprietary29
Supported release
Supported releaseDevelopment
Alp
ha
Bet
a
RC
Supported releaseDevelopment
Alp
ha
Bet
a
RC
SupportedDevelopment
Alp
ha
Bet
a
RC
Y1 M2 M3 M4 M5 M6 M7 M8 M9 M10 M11 Y2 M2 M3 M4 M5 M6 M7 M8
-
30.
©2017 Acquia Inc. — Confidential and Proprietary30
#2: Keep abreast of forthcoming changes.
https://www.drupal.org/list-changes/drupal
-
31.
©2017 Acquia Inc. — Confidential and Proprietary31
#2: Keep abreast of forthcoming changes.
https://groups.drupal.org/core
-
32.
©2017 Acquia Inc. — Confidential and Proprietary32
#3: Understand what backwards-compatibility means.
https://www.drupal.org/core/d8-bc-policy
-
33.
©2017 Acquia Inc. — Confidential and Proprietary33
#4: Read the release notes for “gotchas.”
e.g. https://www.drupal.org/project/drupal/releases/8.4.0
-
34.
©2017 Acquia Inc. — Confidential and Proprietary34
#5: Preview the goals for 8.5.0 and beyond
https://www.drupal.org/core/roadmap
Migrate Media Layout API-First Workflow
Outside-In Out-of-the-Box JavaScript
Framework
Automated
Updates
-
35.
©2017 Acquia Inc. — Confidential and Proprietary35
But, these things don’t happen without help!
-
36.
©2017 Acquia Inc. — Confidential and Proprietary36
#6: Get involved!
https://www.drupal.org/core/roadmap
• Stable migration path
• oEmbed (e.g. YouTube) support
• Media Library
• JSON API
• Automatic Updates /
Improved Composer Support
• Layout Builder
• Workspaces
• Full-Site Previews
• Demo Content + Theme
• React vs. Vue vs. Web
Components vs…
-
37.
©2017 Acquia Inc. — Confidential and Proprietary37
#6: Get involved!
https://www.drupal.org/getting-involved
Design /
Theming
Automated
tests / QA
PHP
Accessibility
Peer Review
Project
Management
Documentatio
n
Architecture
HTML / CSSJS User
Experience
Testing
-
38.
©2017 Acquia Inc. — Confidential and Proprietary38
But I’m still on Drupal 7!
-
39.
©2017 Acquia Inc. — Confidential and Proprietary39
If it’s working for you, that’s fine! (Until Drupal 9.)
But if D8 offers features you want, consider earlier adoption.
-
40.
©2017 Acquia Inc. — Confidential and Proprietary40
Monitor the contributed modules you need.
https://www.drupal.org/project/issues/contrib_tracker
-
41.
©2017 Acquia Inc. — Confidential and Proprietary41
Test the migration path.
https://www.drupal.org/docs/8/upgrade/upgrading-from-drupal-6-or-7-to-
drupal-8
-
42.
42
So, don’t delay; try Drupal 8 today!
https://www.drupal.org/8
https://www.drupal.org/docs/user_guide/en/index.html
https://api.drupal.org/api/drupal
-
43.
©2017 Acquia Inc. — Confidential and Proprietary43
I like to say Drupal is 3 things...
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.
Questions?