Skip to content

API Compatibility Notes

Gregory Brown edited this page Feb 14, 2014 · 80 revisions

API Definitions

  • Stable API follows semantic versioning, and will only change when the MAJOR version changes.
  • Extension API can change on MINOR releases, but deprecation warnings will be displayed for at least 30 days in most cases before a change is made.
  • Experimental API can change on any MINOR release, without advanced notice.
  • Prawn Internals are subject to change at any time, even in TINY releases. Do not depend on them. Any features not included in our API documentation should be considered internals.

Recommendations

If you are writing a Prawn extension, it's recommended to stick to the Stable + Extension APIs.

If you are writing a Prawn application, it's recommended to stick to Stable APIs only if you do not want to actively read release notes and possibly change your code on each MINOR update.

Using experimental APIs is encouraged for testers and folks working on projects they don't mind updating when new stuff breaks old code.

Below is a list of all namespaces with public functionality in Prawn, based on the level of APIs they support (as of Prawn 0.15):

Namespace Stable API Extension API Experimental API
Document YES YES YES
Graphics YES - -
Graphics::CapStyle YES - -
Graphics::Color YES - -
Graphics::Dash YES - -
Graphics::JoinStyle YES - -
Graphics::Patterns YES - -
Graphics::Transformation YES - -
Graphics::Transparency YES - -
Images YES - -
Measurements YES - -
SoftMask YES - -
Stamp YES - -
Text YES - -
BoundingBox YES -
Images::Image - YES -
Images::JPG - YES -
Images::PNG - YES -
ImageHandler - YES -
::Prawn - YES -
Text::Formatted::Box - YES YES
Text::Formatted::Parser - YES -
Document::ColumnBox - - YES
Document::Security - - YES
Font - - YES
::Numeric - - YES
Repeater - - YES
Table - - YES
Table::Cells - - YES
Text::Box - - YES
Text::Formatted - - YES
Clone this wiki locally