Kévin Dunglas
843d199469
perf: cache computations in WithRequestDocumentRoot ( #1154 )
2024-11-13 07:10:53 +01:00
Kévin Dunglas
69c43ee43d
chore: use upstream e-dant/watcher headers and build system ( #1119 )
Lint Code Base / Lint Code Base (push) Has been cancelled
Sanitizers / ${{ matrix.sanitizer }} (asan) (push) Has been cancelled
Sanitizers / ${{ matrix.sanitizer }} (msan) (push) Has been cancelled
Tests / tests (8.2) (push) Has been cancelled
Tests / tests (8.3) (push) Has been cancelled
Tests / tests (8.4) (push) Has been cancelled
2024-10-31 09:39:51 +01:00
Kévin Dunglas
56d2f99548
chore: make the watcher module internal
Lint Code Base / Lint Code Base (push) Waiting to run
Sanitizers / ${{ matrix.sanitizer }} (asan) (push) Waiting to run
Sanitizers / ${{ matrix.sanitizer }} (msan) (push) Waiting to run
Tests / tests (8.2) (push) Waiting to run
Tests / tests (8.3) (push) Waiting to run
Tests / tests (8.4) (push) Waiting to run
2024-10-07 15:37:40 +02:00
Alexander Stecher
8d9b6e755b
feat: restart workers when on source changes ( #1013 )
...
* Adds filesystem watcher with tests.
* Refactoring.
* Formatting.
* Formatting.
* Switches to absolute path in tests.
* Fixes race condition from merge conflict.
* Fixes race condition.
* Fixes tests.
* Fixes markdown lint errors.
* Switches back to absolute paths.
* Reverts back to relative file paths.
* Fixes golangci-lint issues.
* Uses github.com/dunglas/go-fswatch instead.
* Stops watcher before stopping workers.
* Updates docs.
* Avoids segfault in tests.
* Fixes watcher segmentation violations on shutdown.
* Adjusts watcher latencies and tests.
* Adds fswatch to dockerfiles
* Fixes fswatch in alpine.
* Fixes segfault (this time for real).
* Allows queueing new reload if file changes while workers are reloading.
* Makes tests more consistent.
* Prevents the watcher from getting stuck if there is an error in the worker file itself.
* Reverts changing the image.
* Puts fswatch version into docker-bake.hcl.
* Asserts instead of panicking.
* Adds notice
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update dev-alpine.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update dev.Dockerfile
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Runs fswatch version.
* Removes .json.
* Replaces ms with s.
* Resets the channel after closing it.
* Update watcher_options.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Asserts no error instead.
* Fixes a race condition where events are fired after frankenphp has stopped.
* Updates docs.
* Update watcher_options_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Allows queuing events while watchers are reloading.
* go fmt
* Refactors stopping and draining logic.
* Allows extended watcher configuration with dirs, recursion, symlinks, case-sensitivity, latency, monitor types and regex.
* Updates docs.
* Adds TODOS.
* go fmt.
* Fixes linting errors.
* Also allows wildcards in the longform and adjusts docs.
* Adds debug log.
* Fixes the watcher short form.
* Refactors sessions and options into a struct.
* Fixes an overflow in the 'workersReadyWG' on unexpected terminations.
* Properly logs errors coming from session.Start().
* go fmt.
* Adds --nocache.
* Fixes lint issue.
* Refactors and resolves race condition on worker reload.
* Implements debouncing with a timer as suggested by @withinboredom.
* Starts watcher even if no workers are defined.
* Updates docs with file limit warning.
* Adds watch config unit tests.
* Adjusts debounce timings.
* go fmt.
* Adds fswatch to static builder (test).
* Adds a short grace period between stopping and destroying the watcher sessions.
* Adds caddy test.
* Adjusts sleep time.
* Swap to edant/watcher.
* Fixes watch options and tests.
* go fmt.
* Adds TODO.
* Installs edant/watcher in the bookworm image.
* Fixes linting.
* Refactors the watcher into its own module.
* Adjusts naming.
* ADocker image adjustments and refactoring.
* Testing installation methods.
* Installs via gcc instead.
* Fixes pointer formats.
* Fixes lint issues.
* Fixes arm alpine and updates docs.
* Clang format.
* Fixes dirs.
* Adds watcher version arg.
* Uses static lib version.
* Adds watcher to tests and sanitizers.
* Uses sudo for copying the shared lib.
* Removes unnused func.
* Refactoring.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Adds fpic.
* Fixes linting.
* Skips tests in msan.
* Resets op_cache in every worker thread after termination
* Review fixes part 1.
* Test: installing libstc++ instead of gcc.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Test: using msan ignorelist.
* Allows '/**/' for global recursion and '**/' for relative recursion.
* Reverts using the ignorelist.
* Calls opcache directly.
* Adds --watch to php-server command
* Properly free CStrings.
* Sorts alphabetically and uses curl instead of git.
* Labeling and formatting.
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update .github/workflows/sanitizers.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update .github/workflows/tests.yaml
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update caddy/caddy.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update watcher/watcher.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update frankenphp.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update watcher/watcher.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update docs/config.md
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update frankenphp_with_watcher_test.go
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update testdata/files/.gitignore
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update watcher/watcher-c.h
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Update watcher/watcher.c
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
* Fixes test and Dockerfile.
* Fixes Dockerfiles.
* Resets go versions.
* Replaces unsafe.pointer with uintptr_t
* Prevents worker channels from being destroyed on reload.
* Minimizes the public api by only passing a []string.
* Adds support for directory patterns and multiple '**' globs.
* Adjusts label.
* go fmt.
* go mod tidy.
* Fixes merge conflict.
* Refactoring and formatting.
* Cleans up unused vars and functions.
* Allows dirs with a dot.
* Makes test nicer.
* Add dir tests.
* Moves the watch directive inside the worker directive.
* Adds debug log on special events.
* Removes line about symlinks.
* Hints at multiple possible --watch flags.
* Adds ./**/*.php as default watch configuration.
* Changes error to a warning.
* Changes the default to './**/*.{php,yaml,yml,twig,env}' and supports the {bracket} pattern.
* Fixes linting.
* Fixes merge conflict and adjust values.
* Adjusts values.
---------
Co-authored-by: a.stecher <a.stecher@sportradar.com>
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
2024-10-07 13:17:24 +02:00
Kévin Dunglas
6c708be99d
ci: upgrade to super-linter 6 ( #952 )
2024-08-04 14:05:54 +02:00
Kévin Dunglas
0751f453b9
fix: create a custom Go build when using musl to prevent a crash ( #913 )
2024-07-11 10:26:28 +02:00
Kévin Dunglas
0500ebc191
perf: improve PHP thread management ( #898 )
2024-07-09 09:39:03 +02:00
Kévin Dunglas
3dbb3fd48d
feat(static): add ftp, gettext, gmp, imagick, mbregex, parallel, protobuf, shmop, soap, ssh2, sysmsg, sysvshm, tidy, xlswriter, yaml and zstd extensions ( #773 )
2024-05-11 15:43:00 +02:00
Kévin Dunglas
593233db17
fix: DOMdocument not found when building embedded apps
2024-04-27 03:17:28 +02:00
Kévin Dunglas
498294a561
feat: option to use mimalloc for static builds ( #666 )
...
* feat: use mimalloc for static builds
* fix: use Tweag's approach
* fix: debug build
* chore: mark USE_MIMALLOC as experimental
* ci: build a static binary using mimalloc
2024-04-23 14:04:25 +02:00
Kévin Dunglas
85b8a8c805
fix(static): ensure that FRANKENPHP_VERSION is defined in child Docker images
2024-04-22 11:35:51 +02:00
Kévin Dunglas
e0531fa17c
ci: build static binary with debug symbols
2024-03-09 00:33:11 +01:00
Kévin Dunglas
36b752d0a6
feat: compress Linux binaries with UPX ( #572 )
2024-02-12 10:01:27 +01:00
Kévin Dunglas
36a6daa8ba
docs: use tabs instead of spaces in Dockerfiles
2024-01-29 17:17:34 +01:00
Rafael Kassner
b7c8d4cd49
Add ctype and session PHP extensions to static builder
2023-12-20 00:13:27 +01:00
Kévin Dunglas
58597bfeab
ci: better tags for static-builder Docker image
2023-12-07 00:30:21 +01:00
Kévin Dunglas
dee84ed906
feat: define needed environment variables in static-builder.Dockerfile ( #338 )
2023-12-06 15:56:40 +01:00
Kévin Dunglas
537f899939
feat: use tar to embed apps ( #333 )
2023-12-03 19:17:36 +01:00
Kévin Dunglas
6509cddd2a
feat: embed PHP apps into the FrankenPHP binary
2023-12-02 15:40:51 +01:00
Kévin Dunglas
c9bf9940d1
ci: add Super-Linter ( #323 )
2023-12-01 17:26:21 +01:00
Kévin Dunglas
de5de146c3
ci: add generic static build script ( #322 )
2023-11-30 08:07:39 +01:00
Natsuki Ikeguchi
b32e738d75
feat: Upgrade to PHP 8.3
...
Signed-off-by: Natsuki Ikeguchi <me@s6n.jp>
2023-11-29 10:40:24 +01:00
Kévin Dunglas
b56b47d187
ci: improve static build steps ( #305 )
2023-11-16 14:06:34 +01:00
DubbleClick
ea2c7c2895
feat: add ext-ldap and ext-sysvsem to static builder, add PHP_EXTENSION_LIBS to enhance extensions ( #203 )
...
* add ldap and sysvsem extension to static-builder
* add lib support for static-builder to enhance enabled extensions (such as libjpeg for gd)
* disable opcache-jit
* include bz2, order alphabetically
* Update static.md
---------
Co-authored-by: Kévin Dunglas <kevin@dunglas.fr>
2023-11-01 15:50:19 +01:00
DubbleClick
9bf24b7d88
fix(static): add start-group and end-group around php-config libs ( #241 )
...
don't be dependent on php not messing up when compiling the embed sapi
2023-10-05 17:53:43 +02:00
Kévin Dunglas
123d167729
ci: release infrastructure ( #213 )
...
* ci: release infrastructure
* ci: release CircleCI binary
* fix circle
* fix Circle pipeline
* improve tags and docs
* improvements
2023-09-20 14:15:41 +02:00
Kévin Dunglas
09b2282441
feat: set SAPI version
2023-09-16 13:55:41 +02:00
Kévin Dunglas
b7098f7408
feat: Apple Silicon static build and better version name ( #205 )
...
* feat: Apple Silicon static build and better version name
Build a static binary for macOS and Apple Silicon.
Also add the PHP version to the version command.
* fix CircleCI Composer cache key
* fix export
* fix and optims
* cleanup
2023-09-14 01:10:20 +02:00
Kévin Dunglas
1f3007337d
feat: create a static build of FrankenPHP ( #198 )
...
* ci: create a static build of FrankenPHP
* try to use alpine
* path mapping
* cache and fixes
* fix
* fix include path
* fix include path
* fix include path
* switch to Docker
* fix github token
* cleanup
* various improvements
* macOS instructions
* fix GHA
* docs
* feat: mac static builds
* minor fix
* fix wd
* Apple silicon build
* Revert "Apple silicon build"
This reverts commit 7a2997e092
.
* add opcache
* update builder
* upgrade to PHP 8.2
* switch to upstream static-php-cli, add intl
2023-09-12 22:08:19 +02:00