Skip to content

Development Roadmap

Gregory Brown edited this page Jan 16, 2014 · 57 revisions

We are taking yet another crack at getting Prawn to a stable 1.0 release. See the notes below for what we've accomplished so far, and what our plans for the future are. These notes may be a bit vague and hazy initially, but will become more clear in time.

Our progress so far (since November 2013)

  • In November 2013, Gregory Brown resumed active maintenance work on Prawn, ending a long period of core team inactivity. This was made possible thanks to funding from Madriska -- a consulting company run by Prawn core team member Brad Ediger.

  • Prawn's contribution policies were made significantly more liberal, allowing anyone who gets a pull request accepted to get commit access as a contributor. A dozen contributors were given access by the end of November.

  • On December 15, 2013, Prawn 0.13.0 was released. This gem was the first official release of Prawn since August 2011. Work done in the now-defunct 1.0.0.rc1 and 1.0.0.rc2 versions was rolled into the 0.13.0 gem, along with some additional improvements. This release brought Prawn's official gem in sync with our master branch for the first time in over two years.

  • Starting with 0.13.0, Gregory has committed to publish feature releases monthly, and bug fixes releases on an as-needed basis until the end of April 2014. Some checklists and release management guidelines will also be written up so that others can assist with cutting Prawn releases in the future.

  • 2013-12-23: Prawn 0.13.1 was released.

  • 2014-01-06: Prawn 0.13.2 was released.

  • 2014-01-15: Prawn 0.14.0 was released.

Upcoming releases

0.14.0 (January 15, 2014)

Incremental improvements, with a focus on filling in missing pieces, making APIs more consistent, and incorporating changes based on feedback from 0.13.x. This will be the last "experimental" release before 1.0.

0.15.0 (February 16, 2014)

This release will stabilize and clearly define our public API. The focus will be on improving the documentation and manual, deciding what features will be officially supported in 1.0, and making any final tweaks to external features.

After this release, incompatibilities may only be introduced in Prawn's internals. Improvements may still be added, but existing public features will not be changed unless there is a very strong reason (#) to do so. In other words, everything documented in Prawn's manual for 0.15.0 should still work the same way on 1.0.0!

(#): For example, a feature with a bad bug in it may be cut or simplified to improve overall stability, but we won't just change a method signature for aesthetic reasons.

1.0.0 (March 16, 2014)

At this point, we should have very clear documentation that defines the dividing lines between our "official" public API, our experimental features, and our internals. We will begin using semantic versioning for our public API, or something very close to it.

For Prawn's users, this release will guarantee a stable API that will continue to work for a long time. For extension authors, we may not be able to offer something reliable until much later, but we will certainly do our best to make Prawn easier to extend in a reliable way.

1.1.0 (April 15, 2014)

The first of hopefully many post-1.0 incremental improvement releases. Newly introduced features will probably be considered "experimental" until we label them otherwise, but we will do our best to keep backwards compatibility whenever it is practical to do so.

For this and all future 1.x releases, you can assume that if your code runs on Prawn 1.0, it will work on any 1.x release.

Clone this wiki locally