The dust is settling after the release of Textpattern 4.7.3. This is a great opportunity to peep into the imaginary crystal ball to see what the future generations of our content management system might look like. Before that, let’s check the history books and recap some of what’s happened in the Textpattern universe so far.
A potted history of Textpattern version numbers
The version numbers attached to Textpattern releases relate to their chronological order, and they loosely follow the semantic versioning format. I say ‘loosely’ with a caveat: the earliest days of Textpattern development were driven by project founder Dean Allen, and pre-1.0 releases had version identifiers including ‘g117a’ and ‘1.0rc3’. When I refer to ‘pre-1.0 releases’, this is somewhat misleading since a public release of Textpattern 1.0 didn’t materialise. Dean released what was considered a stable, production-ready Textpattern 4.0.0 for general use.
Textpattern version 4.0.1 arrived soon after, with improvements and a few bug fixes thanks to the effect of more people with eyeballs and keyboards becoming involved. Textpattern versions 4.0.2 – 4.0.8 followed over the years with further fixes and enhancements. Textpattern 4.1.0, codenamed “crockery”, was intended to become the next big step up for the platform but – despite a lot of code being worked into a parallel branch – the feature set and associated changes proved too ambitious for a single release. Textpattern 4.1.0 never materialised and was ultimately skipped. The code was either jettisoned or kept; for the latter, changes were gradually merged into subsequent versions 4.2.0, 4.3.0 and 4.4.0 at a more sustainable pace.
In semantic versioning parlance, release numbers follow a ‘major dot minor dot patch’ format. Most Textpattern releases are patch releases, essentially fixing (patching) bugs or issues. New or enhanced functionality is typically added in a minor release, and a major release is usually attached to significant code overhaul that might have backwards compatibility issues. Looking at the Textpattern release notes, it’s evident that minor releases often include numerous enhancements and improvements over the previous minor release, and patch releases sometimes augment existing functionality as a result of wider feedback from the Textpattern user community.
Textpattern has one major release (Textpattern 4.0.0, released in 2004), 6 minor releases and about 20 patch releases on its track record, if applying the semantic versioning model rigorously. Semantic versioning tells us that a backwards-incompatible change is a trigger for a major release. In real-world, day-to-day Textpattern development, it’s not always clear when a minor release gathers enough change to justify a major release, as is evident with one major release about 15 years ago. Whether this is a side-effect of crockery’s bumpy ride or other factors – such as Textpattern’s well-known efforts to make upgrades as painless as possible – is open to interpretation, as is the extent to which our CMS adheres to semantic versioning rules. The next version of Textpattern might be 4.8, or 5.0.
Textpattern roadmap
The most recent roadmap published here (see Textpattern Portishead meet 2015) focused on the then-upcoming release of 4.6, with a nod toward plans for future versions. The roadmap was largely adhered to for the 4.6 release cycle, and a lot of the changes for 4.7 were also on target. Textpattern’s developer community uses GitHub’s issue milestone feature to maintain a living Textpattern roadmap. Issues represent upcoming changes to Textpattern, and the associated milestone is a marker for when it’s planned to happen. Software roadmaps and milestones evolve with time, such is their nature, and the consensus is that with the release of version 4.7.3, the Textpattern 4.7 cycle is complete. With that in mind, Team Textpattern will discuss, plan and work on the next non-patch release.
In no particular order of priority, and without prejudice, here’s a selection of headline changes currently on the Textpattern Next Non-Patch Version Roadmap (and yes, we might revisit that name):
- Unlimited custom fields for Articles, Images, Files, Links, Sections, Categories and Users
- Internationalisation improvements (localised initial content, fix language-dependent URL issues)
- File and Image handling improvements
- Investigate GraphQL as a replacement for XML-RPC
- Investigate third-party mail transport support
- Dark Mode support in admin-side theme(s)
- Ongoing code improvements (converting PHP functions to classes, modernise and modularise JavaScript, unit testing)
Compatibility
Great care is taken to ensure the Textpattern upgrade process goes smoothly, and that administrators or users don’t get nasty surprises. It’s likely that future developments in Textpattern will introduce one or more backwards compatibility issues which may not be easily mitigated with code or documentation. As work on the upcoming Textpattern release series continues, we’ll reach a point where we know whether it will be released as Textpattern 4.8 or Textpattern 5.0. In either case, you will find explanatory release notes to help you determine if your Textpattern instances will be affected by any of the changes made.
Get involved and be informed
Textpattern continues to evolve and adapt. Engaged users with critical, real-world feedback are an important part of open source project development, and these contributions aid with bug swatting and overall enhancements. Textpattern core has no code for gathering usage metrics, and has no spyware or similar undesirable software to ‘phone home’. As such, we value input from our global user base to help guide development based on need and available resources.
And now, over to you. What is most interesting or relevant to you on the headline changes listed above? What can you offer to help us meet our next release goals? Whether you’re a seasoned Textpattern administrator, an active user, or coming to Textpattern with fresh eyes, we’d love to hear from you. Please use this thread on the Textpattern forum and share your viewpoint. When we have more firm plans and news on the above items, we will publish articles on each and invite comment. In the meantime, keep an eye on the various feature branches in the official repository for early access to these new features as they are developed. Please feel free to jump in with code Pull Requests or for raising issues against a particular feature branch to guide the development process.