Releases: sculpin/sculpin
Sculpin 3.2.0
New in Sculpin 3.2.0:
- Remove IntlExtension configuration - this removes several localized filters in twig
- Remove twig/extensions dependency
- Add exit codes to Command classes
- Remove unnecessary third constructor parameter to ConsoleIo
- add .php-version and .phpunit.result.cache to gitignore (thanks @sunadarake!)
- create Sculpin::EVENT_AFTER_GENERATE (thanks @sunadarake!)
- Add PHP attributes to suppress some PHP 8.1 deprecation notices
- Don't pass null to normalize in SourcePermalinkFactory::generatePermalinkPathname()
- Only overwrite value in SourcePermalinkFactory::normalize if iconv() succeeds (thanks @friartuck6000!)
- Update composer and allow theme composer plugin config changes
- Override PhpMarkdownExtraParser's doExtraAttributes method to cast $attr to string
Also, the primary branch has been renamed to main
.
Sculpin 3.1.1
Sculpin 3.1.1 updates the include
in bin/sculpin
to use the __DIR__
constant. Thanks, @vdelau!
Sculpin 3.1.0
Sculpin 3.1.0 adds support for PHP 8.0, and drops support for PHP 7.2.
Sculpin 3.0.3
This Sculpin release fixes some deprecated syntax notices under PHP 7.4, by upgrading michelf/php-markdown to v1.9.
Thanks, Michel, for getting that update live!
Sculpin 3.0.2
This Sculpin release fixes issues (#432, #434) with certain file names and file types.
When processing content types, such as entries in source/_posts/*
, Sculpin will now skip certain files.
- "hidden" files (beginning with a
.
) will be skipped silently.- This helps suppress files like
.DS_Store
.
- This helps suppress files like
- files which aren't recognized by any registered Formatter will be skipped with a "Skipped ..." message.
- This helps combat strange behaviour for files with no extension.
Sculpin 3.0.1
This release improves the content:create
command and fixes an issue with sorting that is caused by PHP's uasort
behaving in an undefined way when sorting items with equal values.
- Boilerplate is now generated by default when using content:create. Use
--dry-run
/-d
to suppress the creation of these files. Note that the content type YAML definition still needs to be added by hand to yoursculpin_kernel.yml
file. - Taxonomy-related boiler plate files now default to using the
default
layout instead of no layout at all. This should result in prettier output. - ProxySourceCollection now uses the StableSort algorithm from Martijn van der Lee to ensure stable sorting results, which will eliminate some of the issues reported in bug #308 that were causing generate to constantly repeat in watch mode.
- Thanks to Rami Jumaah and Christian Riesen, Pages can now refer to their own relative pathname and filename using
page.relative_pathname
andpage.filename
. This can be useful for implementing an "Edit This Page" link directly to a GitLab or GitHub VCS URL.
Sculpin 3.0.0
Sculpin 3 is here!
It's been a long time coming, but thanks to the intrepid efforts of many contributors, Sculpin 3 is finally here.
This new release brings the project a bit more in line with modern PHP features and introduces some new commands and parameters.
Shout out to the following folks for all of their contributions - thanks for your help!
- lex111 (Alexey Pyltsyn)
- Xerkus (Aleksei Khudiakov)
- GawainLynch (Gawain Lynch)
- dbu (David Buchmann, from Liip)
- ChristianRiesen (Christian Riesen, from Liip)
New in Sculpin 3:
- Supports PHP 7.2 and higher!
- Initialize a bare-bones set of
source/
files using the newinit
command - The
generate
command now supports--source-dir
and--output-dir
parameters - Create custom content types with the new
content:create
command- Generates a very basic skeleton of templates
- Supports defining custom taxonomies (such as
tags
orcategories
or any other categorizations you need)
However, there are some changes that affect backwards compatibility.
- PHP 7.2 is the minimum PHP version that Sculpin 3 will run on
- Some new return typehints may require custom bundles to have
their method signatures updated. - A number of core classes are now
final
and some methods have been
moved toprotected
andprivate
to help reduce the code's
complexity.
- Some new return typehints may require custom bundles to have
- Changes to the
symfony/yaml
component mean that certain YAML front
matter values will need to be enclosed in quotes, particularly if they
contain colons.- Sculpin should be quite verbose when this happens.
- Changes to pagination mean that certain URLs, such as
"/blog/page/2.html", will change to a folder (e.g., "/blog/page/2/").- A gist can be found here with a concept for providing HTML-based
redirects for legacy pagination files: https://gist.github.com/beryllium/a1b0be7b603486f5e39f869db8ff3484
- A gist can be found here with a concept for providing HTML-based
- Bundles that write to the
sculpin.output_dir
parameter should be
updated to use thesculpin.writer
service instead, in order to
respect the--output-dir
parameter.
Also, the Sculpin Blog Skeleton has begun being modernized, and the
first stage of this involves setting things up with Yarn and Encore and
Webpack instead of the previous solution for assets.
If you encounter issues with the new release or have suggestions, please
use GitHub Issues or the
comments below.
Enjoy!
Sculpin 3.0.0 RC5
A hotfix release to fix an issue in RC4. This undoes #420 which seems to have broken the site configuration factory.
Sculpin 3.0.0 RC4
This is Release Candidate 4 for Sculpin 3.0.0.
New requirements for this version of Sculpin include PHP 7.2 or higher.
As this is a Release Candidate, please help by filing GitHub issues if you notice any problems!
New for Release Candidate 4:
A number of developers have chipped in to provide some great code cleanups and fixes. Thanks to @dbu @GawainLynch @ChristianRiesen @bellisk @opdavies, things are looking much nicer in Sculpin land.
- Some references to %kernel.root_dir% have been changed to a hopefully more-accurate %kernel.project_dir% argument (#420)
- PermalinkCollectionStrategy has been pulled out of the container so that SF4.2+ can properly dump the service container if desired (#419)
- Exception handling has been improved and now displays colourful & more informative exceptions in watch mode (#421)
- Missing data provider fatal error is now a more-informative exception (#418)
- References to Twig classes have been switched to use namespaces (#423, efaa7c3)
- A number of core classes are now
final
and some methods have been moved toprotected
andprivate
; this will help reduce the complexity/surface of the code (#416, #417)- If this causes an issue, please file an issue or a PR. There might be use cases that weren't known about.
New for Release Candidate 3:
- Fixed an issue with custom bundles not being able to register event handlers. There may be other custom bundle/extension issues lurking in the corners. Keep an eye out!
New for Release Candidate 2:
:folder
permalink property- Bugfix for theme resource method
New for Release Candidate 1:
- New
--source-dir
parameter to thegenerate
command - New
init
command for initializing a bare-bones Sculpin configuration
Description:
Initialize a default site configuration.
Usage:
init [options]
Options:
-t, --title=TITLE Specify a title for your Sculpin site.
[default: "My Sculpin Site"]
-s, --subtitle=SUBTITLE Specify a sub-title for your Sculpin site.
[default: "A Static Site Powered By Sculpin"]
--project-dir=PROJECT-DIR The project directory.
[default: "."]
Help:
The init command initializes a default site configuration.
New for Alpha 4:
- @lex111 has made great progress with updating sculpin's source code to use more PHP 7.x syntax and functionality.
- Attention: Sculpin extension developers - it would be helpful to check that your extension works with this alpha release's changes.
New for Alpha 3:
- @lex111 found and fixed an issue with the
event_dispatcher
service not being public. - A little bit of syntax cleanup (
array()
to[]
)
New for Alpha 2:
-
A number of dependencies have been updated to the latest versions. This may introduce unexpected behaviour or deprecation notices in workflows that are not currently part of the test suite.
-
Handling of the new
--output-dir
parameter has been modified. Bundles and extensions that rely onsculpin.output_dir
should be updated to use thesculpin.writer
service for writing to the proper output location. -
The temporary workaround for the
dflydev/dot-access-configuration
dependency in Alpha 1 has been removed.
Alpha 1:
-
A potential BC break to watch out for is a change in the URL format of interstitial "pagination" files. Bookmarks for "Page 2" and such may need to be updated.
- A gist can be found here with a concept for providing HTML-based redirects for legacy pagination files: https://gist.github.com/beryllium/a1b0be7b603486f5e39f869db8ff3484
-
This alpha version also includes the new "sculpin content:create" command, which allows you to generate a custom data type and associated templates straight from the command line:
Usage:
content:create [options] [--] <type>
Arguments:
type Name for this type (e.g., "posts")
Options:
-b, --boilerplate Generate boilerplate/placeholder/template files.
-t, --taxonomy=TAXONOMY Organize content by taxonomy categories ("tags",
"categories", "types", etc) (multiple values allowed)
Help:
The content:create command helps you create a custom content type and,
optionally, the associated boilerplate/templates.
Enjoy!
Sculpin 3.0.0 RC3
This is Release Candidate 3 for Sculpin 3.0.0.
New requirements for this version of Sculpin include PHP 7.2 or higher.
As this is a Release Candidate, please help by filing GitHub issues if you notice any problems!
New for Release Candidate 3:
- Fixed an issue with custom bundles not being able to register event handlers. There may be other custom bundle/extension issues lurking in the corners. Keep an eye out!
New for Release Candidate 2:
:folder
permalink property- Bugfix for theme resource method
New for Release Candidate 1:
- New
--source-dir
parameter to thegenerate
command - New
init
command for initializing a bare-bones Sculpin configuration
Description:
Initialize a default site configuration.
Usage:
init [options]
Options:
-t, --title=TITLE Specify a title for your Sculpin site.
[default: "My Sculpin Site"]
-s, --subtitle=SUBTITLE Specify a sub-title for your Sculpin site.
[default: "A Static Site Powered By Sculpin"]
--project-dir=PROJECT-DIR The project directory.
[default: "."]
Help:
The init command initializes a default site configuration.
New for Alpha 4:
- @lex111 has made great progress with updating sculpin's source code to use more PHP 7.x syntax and functionality.
- Attention: Sculpin extension developers - it would be helpful to check that your extension works with this alpha release's changes.
New for Alpha 3:
- @lex111 found and fixed an issue with the
event_dispatcher
service not being public. - A little bit of syntax cleanup (
array()
to[]
)
New for Alpha 2:
-
A number of dependencies have been updated to the latest versions. This may introduce unexpected behaviour or deprecation notices in workflows that are not currently part of the test suite.
-
Handling of the new
--output-dir
parameter has been modified. Bundles and extensions that rely onsculpin.output_dir
should be updated to use thesculpin.writer
service for writing to the proper output location. -
The temporary workaround for the
dflydev/dot-access-configuration
dependency in Alpha 1 has been removed.
Alpha 1:
-
A potential BC break to watch out for is a change in the URL format of interstitial "pagination" files. Bookmarks for "Page 2" and such may need to be updated.
- A gist can be found here with a concept for providing HTML-based redirects for legacy pagination files: https://gist.github.com/beryllium/a1b0be7b603486f5e39f869db8ff3484
-
This alpha version also includes the new "sculpin content:create" command, which allows you to generate a custom data type and associated templates straight from the command line:
Usage:
content:create [options] [--] <type>
Arguments:
type Name for this type (e.g., "posts")
Options:
-b, --boilerplate Generate boilerplate/placeholder/template files.
-t, --taxonomy=TAXONOMY Organize content by taxonomy categories ("tags",
"categories", "types", etc) (multiple values allowed)
Help:
The content:create command helps you create a custom content type and,
optionally, the associated boilerplate/templates.
Enjoy!