All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Nothing
- Nothing
- Nothing
- Drop support for PHP 8.2
- Nothing
- Add config option for
REDIRECT_EXTRA_PATH_MODE
- Add config option for
DB_USE_ENCRYPTION
- Nothing
- Deprecate
AppendExtraPathConfigOption
.
- Nothing
- Nothing
- Nothing
- Switch to xdebug for code coverage reports, as pcov is not marking functions as covered
- Update shlinkio coding standard to v2.4
- Update to PHPStan 2.0
- Nothing
- Remove dependency on
laminas/laminas-config
.
- Nothing
- Add
ROBOTS_ALLOW_ALL_SHORT_URLS
config option. - Add
ROBOTS_USER_AGENTS
config option. - Add support for
laminas/laminas-servicemanager
v4.x.
- Update to PHPUnit 11
- Update to PHPStan 1.11
- Nothing
- Nothing
- Nothing
- Add
MEMORY_LIMIT
config option.
- Nothing
- Nothing
- Nothing
- Nothing
- Add QR code options for foreground color, background color and logo URL.
- Update dependencies
- Default value for QR codes enabled for disabled short URLs is now true.
- Title resolution defaults to true now.
- Nothing
- Remove config options related with webhooks.
- Remove config option to decode redis credentials.
- Remove support for openswoole.
- Remove infection and mutation tests.
- Remove web and task worker config options.
- Nothing
- Add config option to enable/disable QR codes for disables short URLs.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Removed dependency on functional-php
- Nothing
- Nothing
- Nothing
- Add
CacheNamespaceConfigOption
to customize the cache namespace. - Add support for PHP 8.3
- #200 Add Matomo integration config options.
- Add
RedisDecodeCredentialsConfigOption
to enable/disable URL-decoding on redis server credentials. - Add
RabbitMqUseSslConfigOption
to enable SSL connections to RabbitMQ servers.
-
#199 Async-related questions no longer depend on the presence of the swoole/openswoole extension. Instead, a question is asked at first to know the runtime to be used.
This ensures those questions are asked for roadrunner too, and skipped if swoole/openswoole is installed but not meant to be used.
- Nothing
- Drop support for PHP 8.1
- Nothing
- Improve
init
command's--initial-api-key
flag, so that it can receive an optional value which will be used as the initial API key.
- #193 Display improved verbosity hint for installation commands based on
interactive
flag, suggesting-vvv
for interactive executions, andSHELL_VERBOSITY=3
for non-interactive ones. - Display warning next to SQLite when selecting database, informing it is not supported for production setups.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Make sure installation commands are run with the right timeout
- Nothing
- Nothing
- Nothing
- Nothing
- Fix silent error when trying to download rr binary
-
#183 Create new
init
command that can be used to set up and initialize the environment for Shlink.This command makes sure the database is created, caches are cleared, etc., and can be used by those who wish to automate Shlink installations with env vars instead of the interactive
install
/update
.The existing
install
andupdate
commands use this one internally, and it is also suitable for the docker image entry point. -
#184 During updates, the installer can now detect if the RoadRunner binary exists in the "old" installation folder, in which case it downloads a new instance as part of the process.
- Changed
loosely
byloose
for the short URL mode, ensuring a migration for those who previously setloosely
. - Updated to PHPUnit 10 and migrated config to PHPUnit 10.1 format.
- Nothing
- Nothing
- Nothing
- #174 Added support for redirect status codes 308 and 307.
- Added support for short URL mode option.
- Migrated infection config to json5.
- Migrated test doubles from prophecy to PHPUnit mocks.
- Replaced references to
doma.in
bys.test
.
- Nothing
- Nothing
- Nothing
- Added config option to enable/disable trailing slashes support.
- Added new script to make sure first API key is generated after successfully installing Shlink.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Updated to shlink-config 2.0.
- Nothing
- Nothing
- Nothing
- #162 Added support for the redis pub/sub config option.
- #166 Added support for the multi-segment slugs config option.
- Nothing
- Nothing
- #161 Dropped support for PHP 8.0
- #151 Removed compatibility with config path approach. Only env vars are supported now.
- Nothing
- #157 Added support for the timezone config option.
- Nothing
- Deprecated webhook-related config options.
- Nothing
- #155 Fixed router config cache not getting deleted when editing config options.
- Nothing
- Nothing
- Nothing
- Nothing
- Fixed delete threshold being always saved as 1.
- Nothing
- Nothing
- Nothing
- Nothing
- Fixed non-sqlite questions being asked when importing a pre-7.0 config using SQLite.
- #143 Reworked how config options are "persisted", switching from regular config to an env var map.
- Dropped support for Symfony 5.
- Updated to infection 0.26, enabling HTML reports.
- Added explicitly enabled composer plugins to composer.json.
- Nothing
- Removed everything that was deprecated
- Nothing
- #140 Added support for RabbitMQ options.
- Added support for PHP 8.1.
- Added support for Symfony 6.0.
- Added support for openswoole.
- Added "round block size" config option for QR codes.
- Updated to phpstan 1.0
- Nothing
- Nothing
- Nothing
- Nothing
- Moved ci workflow to external repo and reused
- Nothing
- Nothing
- #132 Ensured a minimum amount of task workers.
- #122 Added support for QR code config options.
- #124 Added support for redis sentinels in redis config.
- #126 Added support to send orphan visits to webhooks, if any.
- #128 Added support for IP-based tracking.
- Nothing
- Nothing
- Nothing
- Nothing
- #115 Added support for
append_extra_path
config option.
- Nothing
- #118 Dropped support for PHP 7.4
- Nothing
- #86 Added new optional installation command to download GeoLite2 db file.
- #109 Added ability to define deprecated config paths for options, that are transparently migrated to the new one during update.
- #108 Added new tracking options.
- #106 Increased required mutation score to 90%.
- #112 Ensured IP anonymization option is only asked if tracking or IP tracking have not been disabled.
- Nothing
- Nothing
- Nothing
- Migrated build to Github Actions.
- Nothing
- Nothing
- Nothing
- #51 Created new command that allows updating the value of any configuration option.
- #96 Updated required MSI to 85%.
- Nothing
- Nothing
- Nothing
- Added explicit support for PHP 8
- Added support for unix sockets on MySQL, MariaDB and PostgreSQL databases
- Updated to
infection
0.20.
- Nothing
- Nothing
- Nothing
- Nothing
- Added PHP 8 to the build matrix, allowing failures on it.
- Updated to composer 2.
- Nothing
- Nothing
- Nothing
- #87 Added config options for redirect customization.
- Nothing
- Nothing
- Nothing
- Nothing
- #71 Added config options for mercure integration.
- #82 Added config option to optionally disable IP address anonymization.
- #76 Added
MYSQL_ATTR_USE_BUFFERED_QUERY => true
driver option for mysql and mariadb connections.
-
#74 Grouped several config options to sub-namespaces. The changed classes are as follows.
Database
:Config\Option\DatabaseDriverConfigOption
->Config\Option\Database\DatabaseDriverConfigOption
Config\Option\DatabaseNameConfigOption
->Config\Option\Database\DatabaseNameConfigOption
Config\Option\DatabaseHostConfigOption
->Config\Option\Database\DatabaseHostConfigOption
Config\Option\DatabasePortConfigOption
->Config\Option\Database\DatabasePortConfigOption
Config\Option\DatabaseUserConfigOption
->Config\Option\Database\DatabaseUserConfigOption
Config\Option\DatabasePasswordConfigOption
->Config\Option\Database\DatabasePasswordConfigOption
Config\Option\DatabaseSqlitePathConfigOption
->Config\Option\Database\DatabaseSqlitePathConfigOption
Config\Option\DatabaseMySqlOptionsConfigOption
->Config\Option\Database\DatabaseMySqlOptionsConfigOption
UrlShortener
:Config\Option\ShortDomainHostConfigOption
->Config\Option\UrlShortener\ShortDomainHostConfigOption
Config\Option\ShortDomainSchemaConfigOption
->Config\Option\UrlShortener\ShortDomainSchemaConfigOption
Config\Option\ValidateUrlConfigOption
->Config\Option\UrlShortener\ValidateUrlConfigOption
Config\Option\ShortCodeLengthOption
->Config\Option\UrlShortener\ShortCodeLengthOption
Visit
:Config\Option\VisitsWebhooksConfigOption
->Config\Option\Visit\VisitsWebhooksConfigOption
Config\Option\CheckVisitsThresholdConfigOption
->Config\Option\Visit\CheckVisitsThresholdConfigOption
Config\Option\VisitsThresholdConfigOption
->Config\Option\Visit\VisitsThresholdConfigOption
Redirect
:Config\Option\BaseUrlRedirectConfigOption
->Config\Option\Redirect\BaseUrlRedirectConfigOption
Config\Option\InvalidShortUrlRedirectConfigOption
->Config\Option\Redirect\InvalidShortUrlRedirectConfigOption
Config\Option\Regular404RedirectConfigOption
->Config\Option\Redirect\Regular404RedirectConfigOption
Worker
:Config\Option\TaskWorkerNumConfigOption
->Config\Option\Worker\TaskWorkerNumConfigOption
Config\Option\WebWorkerNumConfigOption
->Config\Option\Worker\WebWorkerNumConfigOption
The rest remain the same.
- Nothing
- Nothing
- #78 Allowed clear cache command to fail, and ensured it is not run on new installs.
- #80 Added config option to ask for a custom GeoLite license key.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- #68 Updated dev dependencies.
- Nothing
- Nothing
- #69 Ensured
doctrine orm:clear-cache:meta
command is run after the installation, to avoid outdated cached metadata to be persisted between versions.
- Nothing
- Nothing
- Nothing
- Nothing
- #66 Fixed regression making config not to be loaded from proper location.
- Nothing
- #64 Added
shlinkio/shlink-config
as a project dependency, deprecating theShlinkio\Shlink\Installer\Utils\PathCollection
class.
- Nothing
- Nothing
- Nothing
- #62 Added config option to ask for default short codes length.
- Nothing
- Nothing
- Nothing
- Nothing
- #56 Added MicrosoftSQL to the list of supported database servers.
- #57 Created new service to handle importing assets from previous versions when updating.
- Nothing
- Nothing
- Nothing
- Nothing
- #41 Added gif to readme file which shows how the tool works.
- Nothing
- Nothing
- Nothing
- #55 Fixed GeoLite db file not being imported on updates.
- #19 Added support to ask for redis servers URIs during installation.
- #38 Configuration generation deeply refactoring, easing including new options.
- #44 Updated to coding standard v2.1.0
- #45 Migrated from Zend Framework components to Laminas.
- Nothing
- #43 Dropped support for PHP 7.2 and 7.3
- #52 GeoLite2 db is no longer downloaded during installation.
- Nothing
- #37 Added option to ask for visits webhooks.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Updated dependencies and no longer allow build failures on PHP 7.4
- Nothing
- Nothing
- Nothing
- #30 Added support to ask for the amount of web workers and task workers that should be used when serving the app with swoole.
- Nothing
- Nothing
- Nothing
- Nothing
- #31 Added new configuration options for URL redirects.
- #28 Updated coding-standard and infection dependencies.
- Nothing
- Nothing
- Nothing
- Added MariaDB to the list of officially supported databases.
- Nothing
- Nothing
- Nothing
- Nothing
- #22 Allowed commands run during installation to be overwritten via configuration.
- #21 Improved question to ask for short domain name, letting know more domains can be added later.
- Nothing
- #23 Removed the option to ask for the language for shlink.
- Nothing
- Nothing
- Nothing
- Nothing
- Nothing
- Fixed shlink config no longer overwriting installer's config, and therefore, not being able to customize anything.
- #17 Allowed commands run during installation to be overwritten via configuration.
- #10 Updated coding standard to shlinkio/php-coding-standard v1.1.0.
- #13 Updated coding standard to shlinkio/php-coding-standard v1.2.x.
- Nothing
- Nothing
- Nothing
- #7 Added support to configure the list of questions to ask per plugin.
- Nothing
- Nothing
- Nothing
- Nothing
- First release
- Nothing
- Nothing
- Nothing
- Nothing