Home

>

Tools

>

Ghost

>

Releases

>

3.27.0

Ghost Release: 3.27.0

Tag Name: 3.27.0

Release Date: 7/27/2020

Ghost LogoGhost

Open-source publishing platform specifically designed for professional bloggers and publications. Focuses on clean, minimalist writing and publishing experience.

TL;DR

Ghost 3.27.0 brings significant improvements to member management

This release enhances member management with automatic labeling during imports, improved deletion workflows for members with Stripe subscriptions, and performance optimizations for sites with large member bases. The update focuses on making member operations more efficient and providing better tracking capabilities for imported members.

Highlight of the Release

    • Automatic labeling of members during CSV imports
    • Optional cancellation of Stripe subscriptions when deleting members
    • Performance improvements for member limit checks
    • Publication icon now available in members site data
    • Improved cascade deletion for member records

Migration Guide

No migration steps are required for this release. The changes are backward compatible and will be applied automatically when you upgrade.

Upgrade Recommendations

This release contains important bug fixes and performance improvements for member management. It is recommended for all users, especially those who regularly import members or manage sites with Stripe subscriptions.

Upgrade as soon as convenient, particularly if you've experienced issues with member deletion or import labeling.

Bug Fixes

Fixed Member Deletion with Deleted Stripe Data

Fixed an issue where attempting to delete members with already-deleted Stripe data would fail. The system now properly handles this scenario, ensuring members can be deleted regardless of their Stripe data status.

Fixed Auto-generated Label Attachment During Import

Resolved a bug where the automatically generated import label was being created and returned in the response but wasn't actually being attached to the imported members.

Fixed OEmbed Test Dependencies

Fixed issues with OEmbed tests by adding nock.cleanAll() to prevent inter-test dependencies. This addresses a problem where tests were passing incorrectly due to Mocha's retry behavior.

Fixed Settings Unit Tests

Resolved issues in settings unit tests by properly cleaning up tracker listeners between tests and correctly mocking select and update queries in the "emits edit events" test.

New Features

Automatic Member Import Labeling

Members imported via CSV now automatically receive a label with the date and time of import. This makes it easier to track, filter, and manage batches of imported members. The import label is also returned in the API response, allowing clients to automatically filter the members list by the newly created label once an import completes.

Optional Stripe Subscription Cancellation

When deleting members, you now have the option to cancel associated Stripe subscriptions. This feature is disabled by default but can be enabled by including a cancel=true query parameter in the API request. This gives administrators more control over the member deletion process.

Publication Icon in Members Site Data

The publication icon from settings is now passed in the site data API for use in the members portal. This allows the members portal to use the publication icon instead of the logo for signup/signin pages, providing a more consistent branding experience.

Test Mode for Bulk Email

A new configuration option has been added to send bulk emails in test mode. This uses Mailgun's testmode flag to have emails accepted but not delivered, which is particularly useful for developers testing bulk email functionality.

Security Updates

No specific security fixes were included in this release.

Performance Improvements

Optimized Member Limit Checks

Member limit code has been refactored to eliminate duplication and now uses raw queries instead of fetching fully hydrated members and subscriptions when only a count is needed. This significantly improves performance, especially for sites with large member databases.

Improved Member Model Cascading

The Member model has been updated to properly cascade on destroy, removing orphaned rows in members_stripe_* tables when a member is deleted. This ensures database cleanliness and prevents data buildup from deleted members.

Impact Summary

Ghost 3.27.0 focuses on enhancing member management capabilities with automatic labeling during imports and improved deletion workflows. The release addresses several bugs related to member operations and includes performance optimizations that will benefit sites with large member databases.

The addition of automatic import labeling provides better tracking and management of imported members, while the optional Stripe subscription cancellation gives administrators more control over the member deletion process. Performance improvements for member limit checks will be particularly beneficial for sites approaching their member limits.

For developers, the release includes several test fixes and improvements to model methods, as well as a new test mode configuration for bulk email sending. These changes contribute to a more reliable development environment and easier testing of member-related functionality.

Full Release Notes

  • ✨ Updated members deletion to optionally cancel Stripe subscriptions - Fabien O'Carroll
  • 🐛 Fixed deleting members with deleted Stripe data - Fabien O'Carroll

See the changelogs for Ghost and Ghost-Admin for the details of every change in this release.

Statistics:

File Changed21
Line Additions784
Line Deletions290
Line Changes1,074
Total Commits21

User Affected:

  • Can now track imported members with automatic labels
  • Have more control over member deletion with optional Stripe subscription cancellation
  • Will experience better performance when working with large member databases
  • Can use testmode for bulk email sending during development

Contributors:

kevinansfieldrshbhgrgallouisErisDSrenovate-bot