Pinax 18.01: Django 2.0, Stripe Connect, Templates, and Patches
2017 was a blur with no distributions but we are back in the saddle this year with a great distribution that brings lots of improvements to Pinax.
Pinax 18.01 brings support for Django 1.11 and 2.0 alongside Python 2.7, 3.4, 3.5, and 3.6. Documentation has moved from various places that were harder to maintain to each app’s README. We improved the entire CI process and test coverage, moving from Travis CI to Circle CI.
Some additional highlights:
- a major upgrade for
pinax-stripe, now with Stripe Connect support for building marketplaces
pinax-templateswith default semantic templates for many Pinax apps
- a new template preview site that is always running the latest
- amazing app “patches” — hexagonal tiles, lovingly crafted to evoke the spirit of each Pinax app
A Community Effort
Since the last Pinax release in August 2016, open-source developers made a huge contribution to the Pinax ecosystem. Based on GitHub records, we saw:
- Forty-eight (48) contributors
- 1460 commits
- 185 closed issues
- 356 closed pull requests
Thanks so much to all the Pinax community members who helped make this release possible!
Two Pinax apps were upgraded and supported by demonstration and/or starter projects:
A site invitation app for inviting others to join your site.
A user notification management app which informs users when events have occurred
Updated Template Management
Managing templates for reusable apps is a chore and there are lots of conflicting options. You can ship templates in the app itself. You can just provide documentation on what template variables are sent and require the site developer provide the templates. You can ship a package of templates as another Django app. We did the latter for years via
pinax-theme-bootstrap with Bootstrap classes in the markup.
This path not only locked folks into Bootstrap, but more importantly made templates hard to maintain when new versions of Bootstrap came out.
With 18.01, Pinax moved away from
pinax-theme-bootstrap to a semantic approach demonstrated in pinax-templates. Read more about this change in our Semantic Templates blog post.
Adding app templates to
pinax-templates is a three step process:
- move templates from the app to
- “semantify” the template code so that the templates are agnostic to any CSS framework
- demonstrate template use in pinax_theme_tester (seen online at http://templates.pinaxproject.com)
If you have a favorite Pinax app which does not have
pinax-template support, remember PRs are the best way to help. We can provide guidance for updating
pinax_theme_tester and welcome your assistance!
The theme tester displays templates used by each Pinax app supported by
pinax-templates. The tester displays source code, snippets, and templatetag usage.Read more about its design in our Pinax Theme Tester blog post.
App patches brighten your day.
In the pinax-design repo we added assets for Pinax branding, including a new set of Patches for each app. We wanted to add a little fun as well as branding to each Pinax app. We blogged about this last September.
In December 2017, Django released v2.0. This presented challenges as the extensive Django v2.0 release notes testify.
Pinax app continuous integration configurations were updated following Eldarion’s Code Quality guidance and code massaged until all tests passed for all supported Django/Python combinations.
In addition, Eldarion’s 10 Tips For Upgrading to Django 2.0 provided guidance for knocking out the most common upgrade issues. Pinax apps also gained a new Import Ordering Standard, with a handy technique for standardizing import ordering.
App documentation is now standardized in a single README.md file available in each repository for all but the largest apps. The documentation is re-organized, updated, and improved in many ways. It’s much better than before but not every app has complete documentation. Documentation pull requests are welcome!
All updated Pinax apps support the following pairings: Django 1.11 on Python 2.7, 3.4, 3.5, and 3.6, and Django 2.0 on Python 3.4, 3.5, and 3.6.
|Django \ Python||2.7||3.4||3.5||3.6|
pinax-stripe improved tremendously, gaining Stripe Connect support. Read our Pinax Stripe 4.0.0 blog post for more details. Even with the new capabilities
pinax-stripe test coverage remains consistently above 99%!
Updated Starter Projects
package.json for JS dependencies. Read our Simplifying the Static Build Process blog post for more details.
All starter project dependencies are updated to the latest Pinax app releases defined in this distribution.
Updated Demonstration Projects
All code is updated to Django 2.0 standards.
Rebuilt from scratch using starter project
account, and using
pinax-invitations to invite new users, and
pinax-notifications to notify inviters when their invitees accept.
Read more about the original project in Building Cloudspotting, Part 1 and Part 2 blog posts.
Updated for Django 2.0,
pinax-calendars-demo demonstrates output from
Now supports project creation in the directory of your choosing with the
--location <path> option. This is useful if you use
pipenv with your project.
- Drop Django 1.8, 1.9, and 1.10 support, following the Django Project release timeline.
- Drop Python 3.3 support, following the Python Project release schedule.
This distribution delivers a solid foundation of mature apps to help you build your next great web application. With full support for Django 2.0, high-quality community-driven code, and a fantastic contributor community, we hope you will join us for your next project.
If you haven’t already, join us in Slack and say hello. We’d love to know what you are building.