Skip to content

Releases: LibreBooking/librebooking

v4.2.0

03 Mar 01:13

Choose a tag to compare

v4.2.0 (2026-03-03)

Bug Fixes

  • Add composer.lock to 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 invoice attribute (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.debug help 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](2b928db...

Read more

v4.1.0

05 Feb 00:38

Choose a tag to compare

v4.1.0 (2026-02-05)

Bug Fixes

  • Add command-line usage instructions for CombineDbFilesTask and UpgradeDbTask causing phpstan issue (bea840d)

  • Add default value handling in ConfigurationFile::GetKey method (0f785cb)

  • Add null check in EnsureNull method (1bda603)

  • Api group update will create a new group rather than updating the group (b939389)

  • Availability edit button disappears after editing schedule (f12d65f)

  • Cannot access offset type on ShibbolethConfigKeys (a853e09)

  • Changed wrong auth details response code to 401 (da4d633)

  • Database migration for 4.0 (0b6c844)

  • Display current reservation on tablet view and refine layout (#803, 570b889)

  • Edited plugin config example to use nested layout (1b14b35)

  • Error in keycloak/oauth url generation (eb548ff)

  • Error in reservation.start.time.constraint (98b72b4)

  • Exporter page broken after config validation (f7c6c3d)

  • Flatpickr week start day ignored for Starts Today schedules (a46c31a)

  • GetConfigGroup and ConfiKeys in API (12fc5dc)

  • Ignore invalid configs in ManageConfiguration (711e01e)

  • Include conditionally displaying title and description (#941, 46d3069)

  • Informational log message changed to more appropriate level (DEBUG instead of ERROR) (dadca6b)

  • Null error on unknown key (a8363f1)

  • Reorder PSR12 rule (7c3473a)

  • Show option key rather than values on config wrong choice (e35a030)

  • Standardize log messages and improve error handling in configuration tests (0214c6d)

  • Trumbowyg fails to load when use.local.js.libs is set to true (ccaba0b)

  • Update environment variable keys and add resource options in config files (5cbd1a1)

  • Update manual database setup documentation (9c175bf)

  • Use BooleanConverter for TABLET_VIEW_ALLOW_RESERVATIONS (d941886)

  • Use ConfigKey instead of hard-coded name (62a1e9b)

  • Use default logging level of 'error' (0e850d3)

  • Use lower-case log_level (44ca668)

  • Wrong section for slack token (f407878)

  • auth: Prevent auto-registration when self-registration is disabled (9f24a5a)

  • auth: Updated plugin configuration keys into nested structures (1cfe196)

  • AutocompleteUser: Handle potential null values (d90b7ab)

  • chore: Resolve many html escape issues (c8a6396)

  • config: Preserve unknown subkeys in original structure for validation and improve error logging for invalid config values (723f238)

  • config: Update configurator to new plugin config (3fe962b)

  • htaccess: Prevent redirect loop for /Web path without trailing slash (ad8bde2)

  • image-upload: Use correct directory for uploading image (88cb94a)

  • ldap: Rename debug configuration key for consistency (f8efae3)

  • ldap: Update default search filter to be optional with improved description (7c17c7c)

  • pdf: Enhance PDF generation error handling and improve table formatting (b165000)

  • pdf: Handle default values for repeat options and reservation details in PDF generation (fda8a76)

  • profile: Resolve loading the profile page when multiple attributes (e5e423f)

  • profile: Resolve saving of unchecked checkbox in the profile (2672584)

  • reservation: Resolve html rendering in announcement emails (1fad3be)

  • reservation: Resolve weekly series checkbox status on load (d7a62b4)

  • Resources: Improve string retrieval logic (7e27ac5)

  • schedule: Correct date display and layout issues (d684695)

  • templates: Replace regex check with empty check in Italian email templates (1e71f81)

  • test: Update configuration key test (3444e6c)

  • tests: Update symbolic link creation and improve PHPUnit error handling (ae628bc)

Chores

  • Update phpstan-baseline.neon (200517a)

  • git: Enforce LF line endings (85a929f)

  • git: Normalize all line endings to LF (b211a9a)

  • phpstan: Update for 2.1.25 release (86594c1)

  • phpstan: Update phpstan-baseline.neon (79ac102)

  • scripts: Remove jQuery Timepicker plugin files (1632653)

  • templates: Remove unused Timepicker includes (9d25543)

Code Style

  • Enhance PHP-CS-Fixer rules with Symfony standards (a42d5f8)

  • Redesign API help page with Bootstrap and improved UI (3f13add)

  • vscode: Add initial .vscode/settings.json (afae984)

Continuous Integration

Read more

v4.0.0

06 Aug 15:28

Choose a tag to compare

Highlights

  • New configuration file format. Please read the documentation for more
    details. Thanks to @lucs7 for all of their work.
  • Initial work on getting PHPStan setup and working. We have level 1 working
    with no baseline and are currently using level 2 with a baseline.
  • Add configuration option to be able to choose the resource contact from a
    drop-down list of registered users.
  • Language selector now working on the login page.
  • New date selector library used, thanks @labmecanicatec

What's Changed

  • style(manage_resources): don't default collapse CustomAttributes by @JohnVillalovos in #682
  • fix: EmailMessage.php variable defined after use by @lucs7 in #683
  • fix: captchas not working by @lucs7 in #684
  • fix(participation): add missing ParticipationNotification import by @JohnVillalovos in #686
  • chore: ensure all config variables are in both config files by @JohnVillalovos in #689
  • fix(reservation): fix the delete reason not submitted when a reservation is not approved. by @belcirelk in #696
  • fix(reservation): pdf generation is not working in French by @belcirelk in #697
  • fix(API): stop storing multiple custom attributes of same type for Reources by @JohnVillalovos in #681
  • chore: Replace jQuery UI datepicker with flatpickr by @labmecanicatec in #756
  • fix(login): Language selector is not working due to httponly cookie by @belcirelk in #763
  • fix: allow setting language for non-HTTPS by @JohnVillalovos in #764
  • chore: remove exec permission from some files by @JohnVillalovos in #765
  • chore: add text to the "More Resource Actions" drop-down by @JohnVillalovos in #766
  • refactor: timezone handling and remove jstz library by @labmecanicatec in #769
  • feat: optional: resource contact may be chosen via a drop-down list of users by @JohnVillalovos in #770
  • Fix for reminders on cancelled reservations by @cgutteridge in #773
  • Fix for phpunit tests and additional error check by @lucs7 in #774
  • fix: error in WebAuthenticationTest and Facebook login by @lucs7 in #781

New Contributors

Full Changelog: v3.0.3...v4.0.0

v3.0.3

10 Jul 04:33

Choose a tag to compare

Highlights

What's Changed

Full Changelog: v3.0.2...v3.0.3

v3.0.2

07 Jul 23:15

Choose a tag to compare

Highlights

What's Changed

New Contributors

Full Changelog: v3.0.1...v3.0.2

v3.0.1

28 Jun 17:59

Choose a tag to compare

What's Changed

Full Changelog: v3.0.0...v3.0.1

v3.0.0

27 Jun 19:20

Choose a tag to compare

Highlights

  • Bootstrap 5 Framework and Bootstrap icons now used.
  • Modernization of the user interface.
  • Integration of libraries such as Datatables and Trumbowyg.
  • Migrate external libraries to be pulled in via composer instead of storing the code for those projects in the repository. Also upgraded versions of external libraries used.
  • Improvements to the CI system.
  • Thanks to @labmecanicatec and @lucs7 for all their work this release.

What's Changed

Read more

2.8.6.2 - GA4 Fix

19 Aug 11:30

Choose a tag to compare

The previous 2.8.6.2 had an issue with the Google Analytics 4 integration, if previously downloaded you can simply replace the globalfooter.tpl file in the tpl folder.

Check the commit history https://github.com/LibreBooking/app/commits/master for all the changes (there are many)

Thanks to everyone that has contributed, your efforts allow this project to keep going.

2.8.6.1

26 Sep 08:41

Choose a tag to compare

Many bug-fixes since the last release. This release fixes the ldap connection problem. Thanks to everyone who has contributed.

2.8.6

18 Apr 10:14

Choose a tag to compare

Librebooking now has PHP8 support
Many bugs, updates and even new features were added but the list is a bit long so for further details please check the commit history https://github.com/LibreBooking/app/commits/develop

Thanks to all that have contributed without you this release would not be possible.