Pinax Stripe 4.0.0 Release Coming Soon
Introduction
We have only had one substantial release this year and that was 3.4.0 back in April (we subsequently had a 3.4.1 a week later). We had four releases (one of them a minor point release) throughout 2016, which is about the right speed, I think, given that this is a pretty stable and widely used production app.
We will have another release out before the end of the year that will include a lot of great things.
There have been close to 300 commits (warning that link seems to be breaking Github because the comparison is so large) merged to master
since 3.4.0 coming from thirteen different contributors with most of that activity happening within the last two months.
Samwise
We are using the Samwise Milestone to prep the release.
So far there are 103 issues and pull requests that make up this release.
Lots of good stuff. Let’s dive in.
Features
The highlight of this release is Stripe Connect support which enables site builders to create multi-sided marketplaces. Check out this intro video from Stripe about Connect.
Very exciting! Can’t wait to see what people build with pinax-stripe
and this new feature.
In addition to Connect support:
Enhancements
- cache the stripe customer property
- upgraded middleware for Django 1.10+ compatibility
- dropped
print
forsys.stdout
- improved the handling of deleted customers
- removed redundant transactions
- made the CustomerUpdatedWebhook more efficient
- factored out STATUS_CURRENT
- replaced next(iter()) with first() calls on querysets
- all models now have
__repr__
methods making debugging easier - improved / DRY’d up sync_plans
- improved performance of Django admin with prefetch
- improved how subscriptions.create works
- made the JSONFields which are nullable also blankable
Bug Fixes
- last 4 digits card in email receipt shown again
- fixed plan not storing correctly when syncing invoice data
- fix transfers that are manually created in Stripe to be synced
- removed duplicate quantity fields
- update length of stripe id column to work with mysql
- fixed bug involving some plans having trials and others not having trials
- fix makemigrations script
- fixed the CustomerDeletedWebhook
- fixed bug with send_receipt when backend returns None
- fixed admin so that it handles customers without users
Engineering
Developers of pinax-stripe pushed Pinax engineering forward this month by setting new standards for our quality engineering as well as tweaks to some of our coding style.
There are a lot of PRs and Issues around this so I won’t link them. To summarize, though:
- Switched to CircleCI from TravisCI
- Switched to CodeCov from Coveralls
- Added pytest support
- Added linting for double-quotes (the Pinax standard)
- Added linting for import ordering using
isort
- Added checks for missing migrations as part of the linting
- Dropped support for Django 1.7
- Updated how test settings are structured
- Added testing against postgres
Release Roadmap
Samwise will release as 4.0.0 at the end of October. While we believe that Samwise is backward compatible with the 3.x releases of pinax-stripe
, the addition of Stripe Connect support is big enough that we feel it warrants a major version number.
A follow-up milestone, Rosie, is already being planned to complete Samwise. Trying to release earlier and more often instead of delay the release of all these good things any longer. We will use Rosie to collect critical bug fixes that are needed from Samwise. Very low-risk features and enhancements will also be considered but we will scope Rosie to ship by end of November.
It will be 100% backward compatible with Samwise.
Conclusion
As you can see lots of good stuff coming. It could not happen without all our great contributors. With this release, developers will have the ability to build marketplaces leveraging Stripe Connect. No longer limited to just one-off charges or recurring subscriptions, you can enable your users to conduct transactions between each other.
What will you build?