v4.2.0 (2026-03-03)
Bug Fixes
-
Add
composer.lockto the repository (febdc12) -
Add null-safety for PHP 8.1+ string function deprecations (
b817269) -
Issue with GetHeader called with non-existing header (
0f387cc) -
Null parameter error in debug mode (
f1719d8) -
Pdf generation for on the reservation page (
4d84247) -
When an unknown error happens use HTTP 500 (
20521ac) -
admin: Correct bulk checkbox handling in blackouts and clean up user script (
a1fa73d) -
admin: Fetch reservation deletion checkboxes when needed instead of from a cache (
0224527) -
admin: Make delete button visible on all user table pages (
e285c95) -
auth: Repair MoodleAdv config access and add regression coverage (
109ac86) -
authentication: Preserve guest sessions during cookie login (
a0b96e4) -
config: Time constraint 'same_day' config not working (
772ad0e) -
db: Give a more helpful error if can't connect to database (
48f5818) -
documentation: Start and end reminders can only be minutes, hours and days (
e8105b0) -
documentation: Update reservation start time constraint documentation (
0d15ca3) -
htaccess: Correct possible redirect loop (
411e787) -
htaccess: Infinite redirect to base URL (
e42cb4a) -
preflight: Resolve phpstan issue with PHP 8.5 (
93fef16) -
shibboleth: Use correct config key names (
937cfb2)
Chores
-
Add some agents files (
8933f86) -
Add the .github/copilot-instructions.md symbolic link (
14541f9) -
Fix malformed test file (
a707a92) -
Have 'php-cs-fixer' be composer installed (
13e26c9) -
Remove dev dependency 'kint' as unused (
c27d335) -
Run php-cs-fixer on the code base (
1c7e576) -
Update flatpickr.min.js version 4.6.13 (
06654c5) -
dependabot: Increase version in composer.json (
94bfb2a) -
dependabot: Run updates each day for composer (
aebf8d8) -
monolog: Change use of deprecated variables (
0d0692e) -
phpstan: Add comments to
phpstan.neon(b053d4c) -
phpstan: Enable level 2 on tests with phpstan-phpunit extension (
b30b1ab) -
phpstan: Enable level 2 without a baseline (excluding tests) (
051f21c) -
stripe: Handle non-existing
invoiceattribute (d54cb07) -
translations: Updates to French translation (
e34fdda)
Code Style
- data-cleanup: Enhance admin interface with responsive card design (
60c0e73)
Continuous Integration
-
Remove duplicate 'setup-php' in GitHub CI (
9540596) -
Run the phpstan and phpcsfixer job on push (
0221450) -
Start testing with PHP 8.5 (
bbdd167) -
dependabot: Initial setup of dependabot (
537620c) -
php-cs-fixer: Enforce php-cs-fixer in CI (
59e8b9b) -
phplint: Parallelize the phplint run (
aa0739a) -
phpstan: Add an initial 'phpstan_next' check (
55b9cb1) -
phpstan: Add caching to speed up the CI (
daf5166) -
phpstan: If phpstan fails, run again with verbose/debug (
bcb3fdc) -
phpstan: Use a matrix for phpstan jobs (
c15bd82) -
refactor: Move phpunit to its own YAML file (
cd5e596)
Documentation
-
Create comprehensive copilot-instructions.md file (
098b48f) -
Repository renamed to 'Librebooking/librebooking' (
b8e7751) -
api: Add note to API web page about slash characters (
032fea7) -
API: Add warning about trailing slash characters (
d5bda61) -
changelog: Add the CHANGELOG to the documentation site (
d083950) -
changelog: Update CHANGELOG.md to use PSR formatting style (
84e8038) -
ci: Use 'doc8' to check ReStructuredText files (
4efd995) -
config: Clarify prevent.participation setting description (
93b2f02) -
config: Correct the
app.debughelp text (96d0ea6) -
cron: Add documentation on how to setup cron jobs (
75d7539) -
logging: Correct LB_LOGGING_* names (
88551cf) -
README: Update the demo site link to have the
/Web/path (e005a61) -
saml: Minor cleanup of SAML docs (
3952a26) -
translation: Add missing Finnish lang strings (
4468d76) -
translation: Add missing Finnish language email templates (
2b928db) -
translation: Finnish lang typos and small rewording (
416f027)
Features
-
Display friendly error messages for LDAP authentication failures (
cc320fa) -
Generate a helpful web page if missing composer (
c996aa5) -
Provide a helpful error message if no DB access (
4f48ec2) -
assets: Load Flatpickr globally with themed month dropdown styles (
ff4ee81) -
config: Support optional footer version suffix (
6cc8a4c) -
email: Add SMTP AutoTLS configuration option (
381ad2b) -
flatpickr: Replace legacy datepicker with modern Flatpickr integration (
d407ccc) -
preflight: Add an initial preflight check (
0d9b0ce)
Refactoring
-
announcement: Replace native date inputs with flatpickr (
46db645) -
data-cleanup: Replace native date inputs with flatpickr (
0110ab2) -
date-attribute: Replace native date time input with flatpickr (
63465be) -
generate-reports: Replace native date inputs with flatpickr (
b80aabc) -
ldap: Migrate to using the
pear/net_ldap2package (2bbdc83) -
manage-reservations: Replace native date time input with flatpickr (
22d7b7d) -
manage-schedules: Replace native date inputs with flatpickr (
c3fa374) -
ScheduleStyle: Convert ScheduleStyle to an enum (
f6e8404) -
search-reservations: Replace native date inputs with flatpickr (
77b512c)
Testing
-
Enable
strict_types=1fortests/(c46536b) -
Enable
strict_types=1fortests/Application/(31f78bc) -
Enable
strict_types=1fortests/Application/Authentication/(22826e0) -
Enable
strict_types=1fortests/Domain/(042d284) -
Enable
strict_types=1fortests/Infrastructure/(9404c15) -
Enable
strict_types=1fortests/Plugins/(cb871d4) -
Enable
strict_types=1fortests/Presenters/(8fd1fc7) -
Enable
strict_types=1fortests/WebService/(84b454a) -
Enable
strict_types=1fortests/WebServices/(074917a) -
Fix date/time dependent test failure (
3151445) -
Fix date/time dependent test failure (again) (
9d46a88) -
Setup a basic integration in the CI (
6dfaf06) -
phpstan: Enable PHPStan level 3 for
Pages/Ajax/(58917c1) -
phpstan: Enable PHPStan level 3 for
WebServices/(481f700) -
phpstan: Enable PHPStan level 3 for some of
Pages/(43cb19e) -
phpstan: Enable phpstan level 3 typing in
Controls/(77f1cea) -
phpstan: Fix level 3 typing issues in
tests/fakes/(2c15873) -
phpstan: Fix remaining level 3 typing issues in
tests/(c1dd848) -
phpstan: Fix some level 3 typing issues in
tests/(1c5d6d7) -
plugins: Use correct directory name (
7f735d9) -
reservation: Stabilize full-series recurrence test (
ede46c2)
Detailed Changes: v4.1.0...v4.2.0