Hello! I'm glad to announce the release of 3.0.0-beta version of eLabFTW.
What's a beta version?
This is a stabilized alpha version. No major changes should occur before the final release. Only bugfixes will be considered before release.
How to try it?
It is recommended to use a copy of your normal database to try this version.
Edit your "elabftw.yml" file so that the image line looks like this: image:elabftw/elabimg:next. Then issue elabctl update.
Make sure that you have a (working) backup of your database if something goes wrong during the upgrade! As downgrading back to the previous version implies reimporting a backup database (because the structure will be changed during the upgrade process).
NOTE: it is not recommended to try out unstable releases if you have a lot of users depending on the instance! Use a testing database!
What's new in this release?
A lot! And there is still quite a few things I want to include, but I also don't want to have too much differences between the latest released version and the dev version, so I felt the need to at least release an alpha version.
Full changelog:
Breaking changes:
- For users: Old API keys will be erased upon update. Users of the HTTP REST API will need to generate new keys from their profile.
- For sysadmins: If you are not using Docker you'll need to edit your CSP header and change google.com to gstatic.com!
- For sysadmins: to update to version 3.0.0, run
elabctl updateand thendocker exec -it elabftw php bin/console db:updateto3
New features:
- Add a report generating tool for sysadmin (#1000)
- Add support for Indonesian language (thanks to Khari Secario)
- Add possibility to send email to the team (#840)
- API keys are now stored properly and they have permissions (read/write or read-only)
- Add privacy policy setting in Sysadmin panel (#870)
- Add visibility setting to import CSV/ZIP (#988)
- Add "hr" plugin in tinymce for horizontal rules
Bugfixes:
- Fix issue with IDP of id different of 1, add active attribute to IDP (#1025)
- Fix insert in text at cursor position for markdown (#1094)
- Fix issue with multiple tag search and clicking a tag hiding the other tags (#974 #632)
- Correctly display markdown on revision page
Enhancements:
- API endpoint will send proper error codes instead of always 200
- Bring back the pretty pie chart on profile page. Note: if you are not using Docker you'll need to edit your CSP header and change google.com to gstatic.com!
- Add CSRF protection on basically every POST request
- Add recipients in BCC for mass email (#1021)
- The full users list is not displayed anymore on Sysconfig and Admin pages. A query must be entered (empty query will show all users)
- Add footer on search page when there is no search (#848)
- Set default font size in TinyMCE to 10pt (#880)
- Display the name of the author of revision (#924)
- Better warning message before deletion (#934)
- Add last login info for users (#1000)
- Add book link to view mode of bookable item (#847)
- Use marked instead of markdown-js to preview markdown (#1092)
- Allow admin to delete scheduler events of users in team (#1111)
- Add SECURITY.md file for security related information
- Add link to instance in email sent to admin after user registration (#953)
- Add gitter chat in footer
- Add documentation link on SAML config page (#1115)
Dev corner:
- Add more namespacing (for traits, models, controllers, services, exceptions and interfaces) and corresponding folders in
src/ - Add new UploadTrait for common file operations
- Add new custom Exceptions, see Contributing page
- Update onelogin/php-saml to 3.0.0: drop the
mcryptPHP extension - Get rid of the
src/viewsclasses - Add new controllers in
src/controllers - Code style: don't check bool return value but expect exceptions if something goes wrong
- FormKey renamed in Csrf and added to App
- Remove
useridproperty of Users - Code style: don't catch exceptions, let them bubble up
- Code style: always use custom exceptions
- Add Extensions class to get the correct icon depending on extension
- Add MakeThumbnail to create thumbnails for uploaded files
- Split controllers in RedirectResponse and JsonResponse (Ajax)
- Add foreign keys constraints to the MySQL tables
- Change the update strategy: use sql files now
- Rename status (experiments) and type (items) columns in category
- Load prism.js from node_modules with webpack
- Better use of wepback for tinymce
- Add
tests/api.shfor testing the HTTP API - Load js from src folder if debug is on
- Numerous other small improvements to the code
- Add Contributor License Agreement for contributions
- Add a service to populate user data (very alpha for now) to work on a bigger database in dev
- Lint CSS with stylelint (see contributing doc)
- Lint JS with eslint
- Add .editorconfig and fix indentation discrepencies
- Add more tests in circleci (lint css, js and php)
- Remove jquery complexify from code and revamp the registration page
Please try it out and report any bug you might find (especially with the new features!).
Cheers,
~Nico