Home

>

Tools

>

Ghost

>

Releases

>

0.9.0 Beta 2

Ghost Release: 0.9.0 Beta 2

Pre Release

Tag Name: 0.9.0-beta.2

Release Date: 6/15/2016

Ghost LogoGhost

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

TL;DR

Ghost 0.9.0-beta.2 introduces significant new features including internal tags and post scheduling, along with important improvements to CSV parsing, timezone handling, and middleware organization. This beta release focuses on enhancing content management capabilities while improving system reliability and developer experience.

Highlight of the Release

    • Introduction of internal tags feature for private content organization
    • Complete post scheduling system with timezone awareness
    • Improved CSV parsing for more reliable imports
    • Better timezone handling with UTC option and proper DST display
    • Middleware reorganization and version matching middleware

Migration Guide

Middleware Changes

If you've built custom code that interacts with Ghost's middleware, note that middleware setup has been moved from the server index into the middleware index file.

Lodash 4.x Update

Ghost has updated to Lodash 4.13.1 from an earlier version. If you're using custom themes or extensions that rely on Lodash functionality, you may need to update your code to be compatible with Lodash 4.x. Notable changes include:

  • Removal of the lodash.toString override
  • Changes to function signatures and behavior in some Lodash methods

Event Handling

The event system has been refactored with changes to how listeners are registered. If you've built custom code that interacts with Ghost's event system, you may need to update your implementation:

  • init() functions in xmlrpc and slack have been renamed to listen()
  • Event listener registration has been improved to prevent memory leaks

Upgrade Recommendations

This is a beta release intended for testing purposes only and should not be used in production environments.

If you're upgrading from a previous version of Ghost and using [email protected], you'll need to delete your node_modules directory before running npm install --production.

For developers and testers:

  • Use npm install --production to install dependencies
  • Use npm start --production to start Ghost
  • Note that this beta only works in production mode - JavaScript files for dev mode are missing

This release contains significant new features and improvements that would benefit from thorough testing, particularly the new internal tags and post scheduling functionality.

Bug Fixes

Navigation URL Handling

  • Fixed issue where domain names couldn't be referenced on external pages in navigation (#6939)

Template Rendering

  • Added guard for cases where currentUrl is undefined in navigation, preventing errors in the error.hbs template (#6937)

Promise Handling

  • Fixed runaway promise issue with Bluebird by properly informing it about Promise usage (#6935)

Test Environment

  • Fixed model_events_spec.js to prevent throwing general events that affect other tests
  • Fixed permalink test (#6975)

Post Scheduling

  • Fixed delete bug in default scheduler
  • Added proper error handling and retry logic for scheduling operations

Timezone Configuration

  • Fixed issue where config.theme.timezone could be undefined when settings aren't loaded from database

New Features

Internal Tags

Ghost now supports internal tags that are only visible to administrators and not exposed publicly. This feature allows for better content organization without affecting the public-facing tag structure. Internal tags are implemented using a new visibility property and are controlled via a labs flag.

Post Scheduling

A comprehensive post scheduling system has been implemented with:

  • PUT endpoint to publish scheduled posts
  • Function endpoint to retrieve scheduled posts with query parameters
  • Timezone awareness that reschedules posts when blog timezone changes
  • Safety checks to prevent publishing in the future or past without explicit permission
  • Retry logic for failed scheduling attempts
  • Configurable scheduling adapter system

Version Matching Middleware

Added middleware that checks the X-Ghost-Version header to ensure API compatibility:

  • Returns a 400 error (VersionMismatchError) if versions don't match
  • Skips validation if header is not provided
  • Improves API reliability for client applications

Security Updates

No specific security fixes were mentioned in this release.

Performance Improvements

CSV Parsing

  • Switched to a dedicated CSV parser for greater reliability and better string management when importing CSV files

Event Handling

  • Improved event listener management to prevent memory leaks and test interference
  • Added proper cleanup for event listeners after tests

Database Connection

  • Improved readability and performance of database connection handling

Impact Summary

Ghost 0.9.0-beta.2 represents a significant step forward with two major new content management features: internal tags and post scheduling. These features enhance Ghost's capabilities for content organization and publishing workflow.

The internal tags feature allows content creators to use tags for organization without exposing them publicly, solving a long-standing need for private categorization. The post scheduling system brings robust timezone-aware scheduling with safety checks and retry mechanisms.

System reliability has been improved through better CSV parsing, proper timezone handling, and various bug fixes. Developer experience is enhanced with reorganized middleware, better test utilities, and updated dependencies including Lodash 4.x.

These changes primarily benefit content creators with new organizational tools and administrators with more reliable system operation. Developers will need to adapt to some architectural changes but gain improved testing and API compatibility tools.

Full Release Notes

This is a beta release, it exists for testing purposes only :)

  • It should not be considered stable
  • It should not be used on production environments.

The zip file is a proper 'built' release of Ghost, just like you would get from Ghost.org, so use it with:

  • npm install --production
  • npm start --production

No grunt tasks are required.

Please note: this beta only works in production mode - the JavaScript files for dev mode are missing.

Install instructions are at http://support.ghost.org/installation

Please see the related issue for details on what is being tested and how to get involved.

Upgrade note:
If you are upgrading from any previous version of Ghost and you use [email protected] you will need to delete your node_modules directory before running npm install --production - see the related issue for more details.

Statistics:

File Changed117
Line Additions3,477
Line Deletions859
Line Changes4,336
Total Commits77

User Affected:

  • Can now use internal tags to organize content without exposing tags publicly
  • Benefit from improved post scheduling with timezone awareness
  • More reliable CSV imports with the new CSV parser

Contributors:

cobbspurErisDSjuanpacokirrg001greenkeeperio-botsebgiekevinansfieldaileensakulstraacburdine