mirror of
https://github.com/shlinkio/shlink.git
synced 2024-11-29 01:18:59 +03:00
Deprecate support for openswoole
This commit is contained in:
parent
6351d0b87d
commit
a11be5b2ff
10 changed files with 14 additions and 7 deletions
|
@ -16,7 +16,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com), and this
|
||||||
* *Nothing*
|
* *Nothing*
|
||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
* *Nothing*
|
* [#1783](https://github.com/shlinkio/shlink/issues/1783) Deprecated support for openswoole. RoadRunner is the best replacement, with the same capabilities, but much easier and convenient to install and manage.
|
||||||
|
|
||||||
### Removed
|
### Removed
|
||||||
* [#1790](https://github.com/shlinkio/shlink/issues/1790) Drop support for PHP 8.1.
|
* [#1790](https://github.com/shlinkio/shlink/issues/1790) Drop support for PHP 8.1.
|
||||||
|
|
|
@ -31,7 +31,7 @@ Then you will have to follow these steps:
|
||||||
* Run `./indocker bin/cli db:migrate` to get database migrations up to date.
|
* Run `./indocker bin/cli db:migrate` to get database migrations up to date.
|
||||||
* Run `./indocker bin/cli api-key:generate` to get your first API key generated.
|
* Run `./indocker bin/cli api-key:generate` to get your first API key generated.
|
||||||
|
|
||||||
Once you finish this, you will have the project exposed in ports `8000` through nginx+php-fpm and `8080` through openswoole.
|
Once you finish this, you will have the project exposed in ports `8800` through RoadRunner, `8080` through openswoole and `8000` through nginx+php-fpm.
|
||||||
|
|
||||||
> Note: The `indocker` shell script is a helper tool used to run commands inside the main docker container.
|
> Note: The `indocker` shell script is a helper tool used to run commands inside the main docker container.
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ The purposes of every folder are:
|
||||||
* `data`: Common runtime-generated git-ignored assets, like logs, caches, etc.
|
* `data`: Common runtime-generated git-ignored assets, like logs, caches, etc.
|
||||||
* `docs`: Any project documentation is stored here, like API spec definitions or architectural decision records.
|
* `docs`: Any project documentation is stored here, like API spec definitions or architectural decision records.
|
||||||
* `module`: Contains a sub-folder for every module in the project. Modules contain the source code, tests and configurations for every context in the project.
|
* `module`: Contains a sub-folder for every module in the project. Modules contain the source code, tests and configurations for every context in the project.
|
||||||
* `public`: Few assets (like `favicon.ico` or `robots.txt`) and the web entry point are stored here. This web entry point is not used when serving the app with openswoole.
|
* `public`: Few assets (like `favicon.ico` or `robots.txt`) and the web entry point are stored here. This web entry point is not used when serving the app with RoadRunner or openswoole.
|
||||||
|
|
||||||
## Project tests
|
## Project tests
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ In order to ensure stability and no regressions are introduced while developing
|
||||||
|
|
||||||
The project provides some tooling to run them against any of the supported database engines.
|
The project provides some tooling to run them against any of the supported database engines.
|
||||||
|
|
||||||
* **API tests**: These are E2E tests that spin up an instance of the app with openswoole, and test it from the outside by interacting with the REST API.
|
* **API tests**: These are E2E tests that spin up an instance of the app with RoadRunner or openswoole, and test it from the outside by interacting with the REST API.
|
||||||
|
|
||||||
These are the best tests to catch regressions, and to verify everything behaves as expected.
|
These are the best tests to catch regressions, and to verify everything behaves as expected.
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ RUN \
|
||||||
# Install openswoole and sqlsrv driver for x86_64 builds
|
# Install openswoole and sqlsrv driver for x86_64 builds
|
||||||
RUN apk add --no-cache --virtual .phpize-deps ${PHPIZE_DEPS} unixodbc-dev && \
|
RUN apk add --no-cache --virtual .phpize-deps ${PHPIZE_DEPS} unixodbc-dev && \
|
||||||
if [ "$SHLINK_RUNTIME" == 'openswoole' ]; then \
|
if [ "$SHLINK_RUNTIME" == 'openswoole' ]; then \
|
||||||
|
# Openswoole is deprecated. Remove in v4.0.0
|
||||||
pecl install openswoole-${OPENSWOOLE_VERSION} && \
|
pecl install openswoole-${OPENSWOOLE_VERSION} && \
|
||||||
docker-php-ext-enable openswoole ; \
|
docker-php-ext-enable openswoole ; \
|
||||||
fi; \
|
fi; \
|
||||||
|
@ -49,6 +50,7 @@ RUN apk add --no-cache git && \
|
||||||
# FIXME Ignoring ext-openswoole platform req, as it makes install fail with roadrunner, even though it's a dev dependency and we are passing --no-dev
|
# FIXME Ignoring ext-openswoole platform req, as it makes install fail with roadrunner, even though it's a dev dependency and we are passing --no-dev
|
||||||
php composer.phar install --no-dev --prefer-dist --optimize-autoloader --no-progress --no-interaction --ignore-platform-req=ext-openswoole && \
|
php composer.phar install --no-dev --prefer-dist --optimize-autoloader --no-progress --no-interaction --ignore-platform-req=ext-openswoole && \
|
||||||
if [ "$SHLINK_RUNTIME" == 'openswoole' ]; then \
|
if [ "$SHLINK_RUNTIME" == 'openswoole' ]; then \
|
||||||
|
# Openswoole is deprecated. Remove in v4.0.0
|
||||||
php composer.phar remove spiral/roadrunner spiral/roadrunner-jobs spiral/roadrunner-cli spiral/roadrunner-http --with-all-dependencies --update-no-dev --optimize-autoloader --no-progress --no-interaction ; \
|
php composer.phar remove spiral/roadrunner spiral/roadrunner-jobs spiral/roadrunner-cli spiral/roadrunner-http --with-all-dependencies --update-no-dev --optimize-autoloader --no-progress --no-interaction ; \
|
||||||
elif [ "$SHLINK_RUNTIME" == 'rr' ]; then \
|
elif [ "$SHLINK_RUNTIME" == 'rr' ]; then \
|
||||||
php composer.phar remove mezzio/mezzio-swoole --with-all-dependencies --update-no-dev --optimize-autoloader --no-progress --no-interaction --ignore-platform-req=ext-openswoole ; \
|
php composer.phar remove mezzio/mezzio-swoole --with-all-dependencies --update-no-dev --optimize-autoloader --no-progress --no-interaction --ignore-platform-req=ext-openswoole ; \
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
export APP_ENV=test
|
export APP_ENV=test
|
||||||
export TEST_ENV=api
|
export TEST_ENV=api
|
||||||
export TEST_RUNTIME="${TEST_RUNTIME:-"openswoole"}"
|
export TEST_RUNTIME="${TEST_RUNTIME:-"openswoole"}" # Openswoole is deprecated. Remove in v4.0.0
|
||||||
export DB_DRIVER="${DB_DRIVER:-"postgres"}"
|
export DB_DRIVER="${DB_DRIVER:-"postgres"}"
|
||||||
export GENERATE_COVERAGE="${GENERATE_COVERAGE:-"no"}"
|
export GENERATE_COVERAGE="${GENERATE_COVERAGE:-"no"}"
|
||||||
|
|
||||||
|
|
2
build.sh
2
build.sh
|
@ -10,6 +10,7 @@ fi
|
||||||
version=$1
|
version=$1
|
||||||
noSwoole=$2
|
noSwoole=$2
|
||||||
phpVersion=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
|
phpVersion=$(php -r 'echo PHP_MAJOR_VERSION . "." . PHP_MINOR_VERSION;')
|
||||||
|
# Openswoole is deprecated. Remove in v4.0.0
|
||||||
[[ $noSwoole ]] && swooleSuffix="" || swooleSuffix="_openswoole"
|
[[ $noSwoole ]] && swooleSuffix="" || swooleSuffix="_openswoole"
|
||||||
distId="shlink${version}_php${phpVersion}${swooleSuffix}_dist"
|
distId="shlink${version}_php${phpVersion}${swooleSuffix}_dist"
|
||||||
builtContent="./build/${distId}"
|
builtContent="./build/${distId}"
|
||||||
|
@ -38,6 +39,7 @@ if [[ $noSwoole ]]; then
|
||||||
# If generating a dist not for openswoole, uninstall mezzio-swoole
|
# If generating a dist not for openswoole, uninstall mezzio-swoole
|
||||||
${composerBin} remove mezzio/mezzio-swoole --with-all-dependencies --update-no-dev $composerFlags
|
${composerBin} remove mezzio/mezzio-swoole --with-all-dependencies --update-no-dev $composerFlags
|
||||||
else
|
else
|
||||||
|
# Deprecated. Remove in Shlink v4.0.0
|
||||||
# If generating a dist for openswoole, uninstall RoadRunner
|
# If generating a dist for openswoole, uninstall RoadRunner
|
||||||
${composerBin} remove spiral/roadrunner spiral/roadrunner-jobs spiral/roadrunner-cli spiral/roadrunner-http --with-all-dependencies --update-no-dev $composerFlags
|
${composerBin} remove spiral/roadrunner spiral/roadrunner-jobs spiral/roadrunner-cli spiral/roadrunner-http --with-all-dependencies --update-no-dev $composerFlags
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -46,7 +46,7 @@
|
||||||
"pugx/shortid-php": "^1.1",
|
"pugx/shortid-php": "^1.1",
|
||||||
"ramsey/uuid": "^4.7",
|
"ramsey/uuid": "^4.7",
|
||||||
"shlinkio/shlink-common": "^5.5",
|
"shlinkio/shlink-common": "^5.5",
|
||||||
"shlinkio/shlink-config": "^2.4",
|
"shlinkio/shlink-config": "dev-main#245bbdd as 2.5",
|
||||||
"shlinkio/shlink-event-dispatcher": "^3.0",
|
"shlinkio/shlink-event-dispatcher": "^3.0",
|
||||||
"shlinkio/shlink-importer": "^5.1",
|
"shlinkio/shlink-importer": "^5.1",
|
||||||
"shlinkio/shlink-installer": "^8.4",
|
"shlinkio/shlink-installer": "^8.4",
|
||||||
|
|
|
@ -52,6 +52,7 @@ return (static function (): array {
|
||||||
],
|
],
|
||||||
],
|
],
|
||||||
|
|
||||||
|
// Deprecated. Remove in Shlink 4.0.0
|
||||||
'mezzio-swoole' => [
|
'mezzio-swoole' => [
|
||||||
'swoole-http-server' => [
|
'swoole-http-server' => [
|
||||||
'logger' => [
|
'logger' => [
|
||||||
|
|
|
@ -13,6 +13,7 @@ chdir(dirname(__DIR__));
|
||||||
require 'vendor/autoload.php';
|
require 'vendor/autoload.php';
|
||||||
|
|
||||||
// Workaround to make this compatible with both openswoole 22 and earlier versions.
|
// Workaround to make this compatible with both openswoole 22 and earlier versions.
|
||||||
|
// Openswoole support is deprecated. Remove in v4.0.0
|
||||||
if (! function_exists('swoole_set_process_name')) {
|
if (! function_exists('swoole_set_process_name')) {
|
||||||
// phpcs:disable
|
// phpcs:disable
|
||||||
function swoole_set_process_name(string $name): void
|
function swoole_set_process_name(string $name): void
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
This image provides an easy way to set up [shlink](https://shlink.io) on a container-based runtime.
|
This image provides an easy way to set up [shlink](https://shlink.io) on a container-based runtime.
|
||||||
|
|
||||||
It exposes a shlink instance served with [openswoole](https://openswoole.com/), which can be linked to external databases to persist data.
|
It exposes a shlink instance served with [RoadRunner](https://roadrunner.dev) or [openswoole](https://openswoole.com/), which can be linked to external databases to persist data.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ if [ "$SHLINK_RUNTIME" == 'rr' ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "$SHLINK_RUNTIME" == 'openswoole' ]; then
|
if [ "$SHLINK_RUNTIME" == 'openswoole' ]; then
|
||||||
|
# Openswoole is deprecated. Remove in Shlink 4.0.0
|
||||||
# When restarting the container, openswoole might think it is already in execution
|
# When restarting the container, openswoole might think it is already in execution
|
||||||
# This forces the app to be started every second until the exit code is 0
|
# This forces the app to be started every second until the exit code is 0
|
||||||
until php vendor/bin/laminas mezzio:swoole:start; do sleep 1 ; done
|
until php vendor/bin/laminas mezzio:swoole:start; do sleep 1 ; done
|
||||||
|
|
Loading…
Reference in a new issue