We've just released Wagtail 2.0. This is a significant update to Wagtail, which - if you're not already familiar with it - is a popular open source CMS, built on Django, with a beautiful admin UI, powering sites for Google, NASA, the NHS, Oxfam, Mozilla, governments, universities, corporations, schools, startups and bloggers around the world.
2.0 is our biggest ever release, in terms of changes and improvements from the previous version. Here's what you need to know:
Draftail is a configurable rich text editor based on Draft.js, built for Wagtail. It replaces hallo.js as the standard editor for rich text content. It offers many immediate usability advantages, including familiar keyboard shortcuts and delightful touches for Markdown lovers. It's also deeply customisable - see the stock picker demo from the docs for an example of introducing domain-specific features for your editors. This work was initiated by Springload – who have been using it in production on banking and government sites for many months – and completed by the redoubtable Thibaud Colas, who again wins this month's most valuable Finland-based French member of the core team. Thank you Thibaud!
Better Scheduled Publishing
Simple scheduled publishing – making pages go live or expire at predetermined dates and times – was added to Wagtail way back in version 0.4. When we designed this feature we didn't take account of a scenario which seems quite obvious now: allowing editors to schedule updates to existing published pages. We're grateful to The Motley Fool, and in particular Patrick Woods, for contributing this feature. If you enjoy code forensics, Patrick's original RFC, the ensuing discussions and the final PR are a wonderful model of open source in action.
There are two reasons we've jumped from 1.13 to 2.0: to mark the significance of this release, and as a reference to Django 2.0, for which we now have full support. Wagtail users can now take advantage of Django 2.0's simplified URL routing syntax, prettier admin and Window functions. Perhaps more importantly, we have followed Django's lead in...
Dropping Python 2.x
Call us reckless neophiles, but we think that, nine years in, Python 3 is looking pretty solid. Like Django itself, we're dropping Python 2.x support so we can remove compatibility cruft from our codebase, speed up testing and start taking advantage of Python 3-specific features (e.g. asyncio). We know that this may be awkward for some of you, but we're sure that it's the right move for Wagtail, and we're keen to play our small part in moving the Python ecosystem forwards. Wagtail 1.12 is already an LTS release, and we're adding long term support for version 1.13, in anticipation that it will take some existing users longer than usual to upgrade to 2.0.
Try it out
python3 -m venv wagtail2env source wagtail2env/bin/activate pip install wagtail wagtail start wagtail2 cd wagtail2 ./manage.py migrate ./manage.py createsuperuser ./manage.py runserver