More information about the releases.


  • New Fixed the PHP minimum version to 7.4 in composer.json file.
  • New Added the supporting class Filesystem. It is an extension of Symfony Filesystem component with a method for reading the content of files.
  • Improved Updated Symfony components to 4.4.
  • Improved Updated Twig to 3.0.
  • Improved Updated "michelf/php-markdown" to 1.9.
  • New Added class DependencyResolver, a simple dependency resolver. It is useful for keeping tracks of inter-document dependencies.
  • Deleted The configuration option layout_ext is not necessary anymore. Now, the option text_extensions is used to recognize layouts files.
  • Improved The class FilesystemDataSource returns layout item identifiers without file extensions when they are unique. In case of name collision, the filename extension will be added.
  • Fixed Now, Appveyor CI installs PHP and Composer using Chocolatey package system.


Date: 2017-05-07

  • New Dropped the support for PHP 5.5. The minimum version is 5.6.
  • Fixed The Spress-installer plugin is included in the composer.json file when a new blank theme is created.
  • Fixed Fixed an issue when loading layouts and includes of the current theme.
  • Fixed Fixed an issue related with the presedence between the theme's assets and the site's assets.
  • Fixed Bug #107 fixed: ".htaccess not being included in build".
  • Fixed Fixed an issue related to the convertion to array of a Finder class in FilesystemDataSource class.
  • Improved Updated PluginManagerBuilder class with support for loading several plugins from extra->spress_class attribute of a plugin's composer.json file.
  • Improved Renamed some tests with a more descritive name.
  • Improved Fixed some descriptions in commands.
  • Improved Replaced the use of PHPUnit_Framework_TestCase class by TestCase.
  • Improved Deleted the .htaccess value from include key of configuration files due to the fix #107.


Date: 2017-01-15

  • New Support for themes. See the new feature #98.
  • New Package manager with the following new commands: new:theme, add:plugin, remove:plugin and update:plugin. Additionaly, new:site command has been updated for scaffolding new sites using themes. See the new feature #96.
  • New Allow default attributes on "pages" collection. See new feature #93.
  • New New options for applying avoid_renderizer feature to type of files and files belong to a path (relative to src/content folder). See new feature #91.
  • New Added a verbosity level param (optional) to the write method of IOInterface.
  • New Added verbosity and very-verbosity level messages to the ContentManager class.
  • New Added support for overwriting messages to the output in IOInterface.
  • New Added support for ask choice questions in IOInterface.
  • New Added the method getSpress to CommandEnvironmentInterface.
  • New Updated to using Symfony 3.2 components.
  • Improved The terms generated by TaxonomyGenerator for each item appears sorted.
  • Fixed Avoid an error using --force option of new:site command over a non-empty directory that contains "hidden" directories and files.
  • Fixed Fixed a bug related with the "pagination generator" and the draft posts. See bug #101.
  • Fixed Fixed the askAndHideAnswer method of ConsoleIO class to use the fallback argument.


Date: 2016-07-03

  • New Class FileInfo has been added to the support classes set of the core.
  • New New configuration value aimed to plugin manager builder for excluding directories in the disconvering class phase. Useful to avoid scaning test classes.
  • Fixed Fixed the truncated title_path attribute when the filename contains dots before the extension. More details in bug #88.
  • Fixed The value of title_path is not altered when it is parsed by FilesystemDataSource class. More details in bug #88.
  • Fixed If you set preserve_path_title attribute to true you will get the title parsed from the filename as-is (without the date part). Only rawurlencode function is applied. See PR #90.


Date: 2016-05-23

  • New Two new methods have been added to StringWrapper class: lower and upper for converting a given string to lower-case and upper-case respectively using UTF-8 as encoding.
  • Fixed Bug #80 has been fixed: "Composer install fails if no namespace is specified in new plugin". See PR #81.
  • Fixed Bug #82 has been fixed: "Substr --- in yaml string cause builder crash".
  • Fixed Bug #83 has been fixed: "Same tags on different languages cause builder crash".


Date: 2016-04-12

  • Fixed Bug #78 has been fixed: "/:basename permalink variable contains .html when using *.html.twig". Related with feature #73.
  • Fixed Bug #79 has been fixed: "Error loading plugin's dependencies with -s option at site:build command".
  • Improved Clarified the message when site:build command is invoked against a non Spress site folder.


Date: 2016-03-26

  • New Support for calling to an existing command inside a command plugin. The CommandEnvironmentInterface interface has been added and CommandPluginInterface has been updated with setCommandEnvironment and getCommandEnvironment methods. See feature #77.
  • New Sort items of a collection. See feature #67.
  • New Support to extends TwigRenderizer with tags. See PR #65.
  • New Each item of a sorted collection has next and prior relationships. At compile time, you have access to these through and page.relationships.prior variables. See feature #69.
  • New Relationship collection for items. A new class has been added: RelationshipCollection. A new method getRelationshipCollection has been added to ItemIterface.
  • New MirrorConverter class has been replaced by MapConverter. See feature #73. Fixed ticket: #28 "Support .twig extention".
  • New Added ItemCollection class to Core support classes.
  • New Added getCollections method in CollectionManager class.
  • New Added clearConverter and countConverter methods in ConverterManager class.
  • Improved Improved permalinks customizations. See PR #64.
  • Improved Eliminated unnecessary calls to setItem method of SiteAttribute class in ContentManager class.
  • Improved The methods for managing the collection of plugins in PluginManager class have been moved to a Collection class.
  • Improved The methods for managing the collection of collection-item in CollectionManager class have been moved to a Collection class.
  • Improved Clarified the error message in case of denied permissions when renaming the temporal file in SelfUpdateCommand class.
  • Fixed Fixed the path available at page.path variable. Prior to this version, this variable contains the relative path to src/content/ but with the filename extension changed by the Converter. Now, the original filename extension isn't altered. A new path snapshot has been created in ItemIterface.


Date: 2016-01-16

  • New PluginTester class has been added to the core for testing plugins easily.
  • Fixed Fixed an issue with the content retrieved by after_render_page event.
  • Fixed A constant name of ItemInterface has been changed: SNAPSHOT_AFTER_PAGE -> SNAPSHOT_AFTER_RENDER_PAGE.


Date: 2016-01-09

  • Improved Normalized the directory separator to '/' irrespective of the operating system.
  • Improved Spresso theme updated to 2.0.1.
  • Fixed Fixed the file's extension twig.html in configuration files.
  • Fixed Fixed the exception "A previous item exists with the same id" thrown by Taxonomy generator due to a key sensitive issue. A normalize method has been added. e.g: "news", "NEWS", " News " are the same term: "news".
  • Fixed Fixed the namespace of AttributeValueException at PaginationGenerator class.


Date: 2016-01-02

  • New ConsoleIO class uses Symfony CLI styles.
  • Improved 100% tests passed in HHVM.
  • Fixed Renamed the package name yosymfony/spress-installer to spress/spress-installer.
  • Fixed Fixed a race condition with the url attribute of items before dispatch spress.before_render_blocks event.
  • Fixed Questions made by commands are using ConsoleIO methods.
  • Fixed Fixed a bug with the built-in server by which a relative URL that contains a dot inside the trailing component throws a 404 not found error. e.g: /doc/2.0.
  • Fixed Added a default value for $fallback argument of askHiddenResponseAndValidate and askAndHideAnswer methods in IOInterface.


Date: 2015-12-07

  • New Added MemoryDataSource, a datasource for generating dynamic content.
  • New Support to sort items at PaginationGenerator with attributes sort_by and `sort_type. See #61.
  • New Added getGeneratorManager method to EnvironmentEvent for managing generators at plugins.
  • Improved Improved the way of generating the classname in PluginGenerator.
  • Improved Minor changes over output styles.
  • Improved Improved HttpServer with support to load internal resources (used with error page). Added a new hook: handleOnAfterRequestFunction. Bootstrap file has been included for using with internal pages like error page.
  • Improved Minor improvements over the Spress application output.
  • Fixed Now, slug method transform dot characters into dash characters.
  • Fixed Fixed lifecycle: render phase starts after converter phase has been finished for all items.
  • Fixed Changed the method remove by removeCollection in CollectionManager class.
  • Fixed PermalinkGenerator adds an initial slash if the permalink doesn't start with it.
  • Fixed MissingAttributeException and AttributeValueException has been moved to Core\ContentManager\Exception.
  • Fixed ConsoleIO passed to key (DI container) when SiteBuildCommand builds Spress instance.
  • Fixed Updated spress-installer version to ~2.0 at composer.json.twig.
  • Fixed Fixed the message of the exception threw when a previous item exists.
  • Deleted ConfigValueException has been deleted.


Date: 2015-10-15

  • New Added a new converter for Markdown: ParsedownConverter. This converter is based on Parsedown by Emanuil Rusev. Deals with issue #40.
  • New Added command plugins: a new kind of plugins witch provides subcommand for spress executable. See #56.
  • New Added self-update command with an alias selfupdate for keeping Spress up to date. See #60.
  • New Taxonomy generator for grouping content around a set of terms. See #57.
  • New Modified RenderizerInterface for throwing a Yosymfony\Spress\Core\ContentManager\Renderizer\Exception\RenderException if an error occurred during redering the content. Method affected: renderBlocks and renderPage.
  • New Added a new special attributte avoid_renderizer for avoiding the renderizer phase over an item.
  • Improved Additional autoload only be processed if exists a composer.json file in the root of the site folder.
  • Fixed The separator for tags and categories of new:post command has been changed from space to comma. See issue #51.
  • Fixed New template for spress plugin scaffold (new:plugin command) - fixed for 2.0 release. See issue #55.
  • Fixed The setUp method of FilesystemDataWriter removes the whole content of the output dir but VCS files. This means thatsite:build` command doesn't remove the VCS files.
  • Deleted Deleted the site:new alias for command new:site.


Date: 2015-08-12

  • New Data-sources: (issue #46) data sources can load site data from certain locations like filesystem or database.
  • New Site structure (issue #41).
  • New Data-writer (issue #44): The DataWriter's responsibility is to persist the content of the items.
  • New Collections (issue #43): collections allow you to define a new type of document like page or post.
  • New Generators (issue #45): Generators are used for generating new items of content.
  • New These events spress.before_convert, spress.after_convert receive a ContentEvent as an argument.
  • New Renderizer (issue #48): Renderizer are responsible for formatting content.
  • New List of new events: spress.before_render_blocks, spress.after_render_blocks, spress.before_render_page, spress.after_render_page. See #49.
  • New Established PHP 5.5 as minimum version (see #42).
  • New List of new configuration attributes: text_extensions, attribute_syntax, preserve_path_title, collections, data_sources.
  • Improved Updated Symfony componentes to 2.7.
  • Improved Updated Markdown parser (michelf/php-markdown) from Michel Fortin.
  • Improved Updated built-in theme Spresso to 2.0.
  • Deleted Methods initialize and getSupportExtension of ConverterInterface have been deleted.
  • Deleted TemplateManager class of plugin API.
  • Deleted EnviromentEvent class.
  • Deleted List of deleted events: spress.after_convert_posts, spress.before_render_pagination, spress.after_render_pagination, spress.before_render, spress.after_render. See #49.
  • Deleted List of configuration attributes (config.yml) deleted because they have been marked as deprecated: baseurl, paginate, paginate_path, limit_posts, processable_ext, destination, posts, includes, layouts, plugins.


Date: 2015-02-25

  • Improved Spresso theme updated to 1.1.1.
  • Improved Dependencies have been updated.


Date: 2015-01-08

  • Fixed Bug #30: Adding source parameter to config appears to not do anything.
  • Improved Support for exceptions during parsing a site with --server and `--watch options.
  • Improved config.yml is reloaded when rebuilding the site with watch mode enabled.
  • Improved Spresso theme updated to 1.1.
  • Improved Symfony components updated to 2.6.


Date: 2014-12-21

  • New variable: server_watch_ext at global configuration.
  • Fixed Default value for layout at new:post command assigned to null.
  • Fixed Fixed questions for tags and categories in new:post command.
  • Fixed Fixed new:post help message.
  • Fixed Added validators for command options.
  • Improved Performance of combination --server and --watch options improved.
  • Improved Deleted unused variables.


Date: 2014-11-21

  • New Issue #17: Twig debug mode through configuration.
  • New Two new scaffolding commands: new:post and new:plugin.
  • New Proposal #22: Namespace "new" in commands for creating stuff.
  • Deprecated The command site:new has been declared deprecated and replaced by new:site.


Date: 2014-10-19

  • New IO API useful for interacting with the users.
  • New Proposal #9: Support for environment configuration files. New key env for config.yml.
  • New PR #12: Added ability to use multiple extensions on layouts.
  • New Proposal #15: Built-in server and watch for changes.
  • Fixed Issue #10: Classname with typo: EnviromentEvent. This class was replaced by EnvironmentEvent.
  • Fixed PR #14: Changed Frontmatter regex pattern to allow for CRLF line endings.
  • Improved Proposal #13: Split Spress into Spress Core and its ecosystem.
  • Improved Replaces all uses of deprecated method mergeWith from ConfigServiceProvider by union method.
  • Improved Proposal #11: Improve the plugins manager for writing plugins more easily.
  • Improved Decoupled options for Plugin Manager.
  • Improved PSR-4 for classloader.
  • Improved Symfony components >= 2.4 and < 3 in composer.json.
  • Improved The default value for url key at global configuration is empty-string.
  • Improved Documentation fixes.
  • Deprecated The configuration options: baseurl and relative_permalinks has been declared deprecated.


Date: 2014-05-22

  • Fixed bug #7: Error with Site Build.
  • Improved Tested on PHP 5.6 (Travis CI).


Date: 2014-03-30

  • Fixed bug #6: Twig tags not rendered in posts located at variable site.posts.
  • Fixed bug #6 with variables site.categories and site.tags.
  • Improved Variables site.categories and site.tags have page-identifier as index of array.
  • Improved Base implementation of ContentItemInterface created at ContentItem. The classes PageItem and PostItem extend from this.


Date: 2014-03-08

  • New events related with pagination phase (issue #3): spress.before_render_pagination and spress.after_render_pagination.
  • Improved Payload argument of Render method (plugins TemplateManager) is optional.
  • Improved pagination phase of posts.
  • Fixed bug #4: UrlGenerator always has ending slash.
  • Fixed the class loader path when Spress is installed as package.


Date: 2014-02-05

  • New Added template manager to the API plugins for rendering Twig templates (accessible from spress.start event).
  • Improved the class loader of the site plugins.
  • Fixed documentation


Date: 2014-01-12

  • New Support to Composer for spress site plugins.
  • New Install themes with Composer.
  • New Generate composer.json in a blank site.
  • Improved the search of folders that starting with underscore.
  • Fixed the documentation.
  • Deleted Spresso theme. Now is a package.