Backward and forward compatibility challenges in Contrib modules

In an ideal world, releases happen early and often.

In an ideal world, those releases are quickly adopted by users and they work together nicely.

Adoption of Semantic Versioning in Drupal core made this even easier, but real world websites and businesses challenges delay adoption sometimes. While supporting previous releases, we need to support both the latest release and the upcoming release if we want to be ready once a new release comes out.

Also, Contrib modules need to adapt to experimental modules in some cases, and to play nice with several versions of other modules in the ecosystem.

In this discussion we will quickly introduce the problem, talking about the challenges that we faced improving the Lingotek module features and its integrations with other modules, while adding compatibility with experimental modules in Core.

We will also see how other systems face this issue, and discuss if we could adapt similar mechanisms in Drupal.org.

 We will discuss the following open questions:

  • How can we make clearer which core versions do we support?
  • How can we make clearer which other contrib modules do we integrate with?
  • How can we make clearer which versions of those modules do we integrate with?
  • How can we make clearer which experimental modules in Core do we integrate with?
  • Strategies for compatibility with multiple core releases.
  • How can contrib modules adopt semantic versioning?

Note:

This talk could be seen as a continuation of the discussion “Backwards Compatibility: Burden & Benefit” at DrupalCon Baltimore lead by Wim Leers: http://wimleers.com/talk/bc-burden-benefit 

If you have faced challenges on contrib modules you maintain and want to share ideas or co-present, please get in touch. In any case, there will be plenty of time to have a real discussion, so please show up :-)

 

Session Track

Core Conversations

Experience level

Intermediate

Drupal Version

Drupal 8 (current)

Session Time Slot(s)

Time: 
09/28/2017 - 10:45 to 09/28/2017 - 11:45
Room: 
Schubert 3