Changelog History
Page 1
-
v3.4.0 Changes
🚀 This release drops support for Python 3.6, which has reached end-of-life in December 2021.
🔄 Changes
Markdown
🔗 Links and image URLs in markdown text are now, by default, resolved via the Lektor database. Previously, they were not. Note that this behavior may be customized on a per-datamodel-field basis if one wants to get the old behavior back. (#992)
👍 Lektor now supports either [mistune][] 2.x or mistune 0.x. The configuration API of mistune 2.x differs significantly from that of mistune 0.x. If you are using a plugin that customizes the markdown rendering, you will likely have to update the plugin to support the newer mistune, or pin mistune to the older version. (#992)
🐛 Bugs
Admin Server
- 🔨 Refactor and fix numerous buglets in the admin http server. (#987)
Admin Frontend
- 🏗 Use esbuild rather than webpack/babel to build the admin js code. (#1012)
- ⚡️ Update frontend deps. (#1025)
🏗 Builder
- 🏗 The
asseturl
filter was not propery tracking build dependencies resulting in stale hashes in the asset URL if the asset was updated. (#1020)
Bit-rot
- 🛠 Fixes for
click==8.1.3
. (#1031, #1033) - 🛠 Fixes for
werkzeug>=2.1.0
. (#1019, #1018) - ⚡️ Update npm package minimist. (#1021)
CI
- ⚡️ Update pre-commit config to use
black==22.3.0
to avoid breakage caused byclick>=8.1.0
. (#1019) - ⚡️ Updateto
pylint=2.13.4
. (#1025)
🔨 Refactorings
- ✂ Removed unused cruft. (#1009)
✅ [mistune]: https://mistune.readthedocs.io/en/latest/
-
v3.3.2 Changes
March 01, 2022🔋 Features
💻 Command Line
- Enabled the [Jinja debug extension][jinja-dbg-ext] when the
LEKTOR_DEV
env var is set to 1 andlektor server
is used. (#984)
License
- The wording in the LICENSE file was standardized to that of the current BSD 3-Clause License. (#972)
🐛 Bugs
Markdown Renderer
- 🛠 Fix overzealous HTML-entity escaping of link and image attributes. (#989)
Admin API
- Fix a bug in
make_editor_session
when editing non-existant pages with a non-primary alt. (#964) - 🛠 Fix the ability to add an initial flowblock to a page. (Broken in 3.3.1.)
- 🔨 Refactor API views to move business logic back into the
Tree
adapter (#967). This fixes #962.
💻 Admin UI
- 🔄 Changed the structure of the URLs used by the GUI single-page app (#976). This fixes problems with the "edit" pencil when using alternatives (#975), and issues when page ids include colons (#610).
- 🔨 Other React refactors and fixes (#988).
Database
- Fix
Attachment.url_path
when alternatives are in use. There is only one copy of each attachment emitted — theurl_path
should always be that corresponding to the primary alternative. (#958) Pad.get
, if not passed an explicit value for thealt
parameter, now returns the record for the primary alternative rather than the fallback record. Similarly,Pad.root
now returns the root record for the primary alternative. (#958, #965)- 🛠 Fix for uncaught
OSError(error=EINVAL)
on Windows whenPad.get
was called with a path containing characters which are not allowed in Windows filenames (e.g.<>*?|\/":
).
🏗 Builder
- 🏗 Pages now record a build dependency on their datamodel
.ini
file. - 🛠 Fix sqlite version detection so that we use "without rowid" optimization with current versions of sqlite. (#1002)
💻 Command Line
- When running
lektor dev new-theme
: fix check for ability to create symlinks under Windows. (#996) - Fix rsync publisher when deletion enabled on macOS. (#946, #954)
✅ Tests
🔨 Refactorings
- Cleaned up
EditorSession
to split mapping methods (for access to record data) to a separate class, now available asEditorSession.data
. (#969)
✅ Testing
💻 Admin UI
- 🚚 Move frontend source from
lektor/admin/static/
tofrontend/
. Compiled frontend code moved fromlektor/admin/static/gen/
to 'lektor/admin/static/`. (#1003)
Packaging
- Omit
example
subdirectory, frontend source code, developer-centric config files, as well as other assorted cruft from sdist. (#986)
✅ [jinja-dbg-ext]: https://jinja.palletsprojects.com/en/latest/extensions/#debug-extension
- Enabled the [Jinja debug extension][jinja-dbg-ext] when the
-
v3.3.1 Changes
January 09, 2022🐛 Bugs Fixed
- 🛠 Fixed an import cycle which caused in
ImportError
iflektor.types
was imported beforelektor.environemnt
. #974
🗄 Deprecations
- 🗄 Disuse deprecated
Thread.setDaemon()
. #979
💻 Admin UI
- 🛠 Fix spastic scroll behavior when editing flow elements. #640
- 🛠 Fix admin GUI when page contains an unknown flowblock type. #968
- 🛠 Fix admin GUI layout on mobile devices. #981
✅ Tests
- ✅ Increased timeout in
test_watcher.IterateInThread
to prevent random spurious failures during CI testing. - Fix
tests/test_prev_next_sibling.py
so as to allow running multiple test runs in parallel. - ✅ Use per-testenv coverage files to prevent contention when running
tox --parallel
. - ✅ Mark tests that require a working internet connections with pytest mark
requiresinternet
. #983
🔨 Refactors
💻 Admin UI
- 🛠 Fixed an import cycle which caused in
-
v3.3.0 Changes
December 14, 2021🚀 This release drops support for versions of Python before 3.6. 👍 In particular, Python 2.7 is no longer supported.
🚀 Quite a few bugs have been fixed since the previous release.
🐎 The Admin UI has seen a major refactor and various performance optimisations. ⚡️ It has been rewritten in Typescript, and updated to use v5 of the Bootstrap CSS framework.
🐛 Bugs Fixed
Database
- 🛠 Fix queries with offset but without a limit. #827
- 🛠 Fix the handling of deferred (descriptor-type) model fields when used in
slug_format
and when used as a sort key. #789 - ⚠ Refrain from issuing warning about future change in implicit image upscaling behavior in cases that do not involve upscaling. #885
- 🛠 Fix bug with translation fallback of record label. #897
Data Modelling
- 🛠 Fixed pagination issue which caused child-less paginated pages to not be built. #952
Publisher
- 👍 Allow rsync deployment to a local path. #830
- 🛠 Clean up subprocess handling in
lektor.publisher
. This fixes "ResourceWarning: unclosed file" warnings which were being emitted when using the rsync publisher, as well as possible other buglets. #896
💻 Command Line
- 🛠 Fix circular imports in
lektor.cli
to allow its use as an executable module (python -m lektor.cli
). #682, #856 - 0️⃣ Fall back to
watchdog
PollingObserver
if defaultObserver
type fails to start. This fixes "OSError: inotify watch limit reached" and perhaps other similar failures. #861, #886
🔌 Plugins
- 🛠 Fix the
Plugin.emit
method so that it works. #859 - 👻 Reword the (previously incomprehensible) exception message emitted when attempting to load a plugin from an improperly named distribution. #875, #879
👷 Build System
Miscellaneous
💻 Admin UI
- 🛠 Fix the checkboxes widget. They were broken so as to be uncheckable. #812, #817
- 🔄 Fix page data being incorrectly marked as changed when flow block is expanded/collapsed in the edit UI. #828, #842
- 🛠 Fix encoding of URLs when opening the admin UI from the pencil button. #815, #837
- 💻 Rename a CSS class in the admin UI to prevent breakage by ad blockers.
The class
add-block
was being blocked by the EasyList FR ad blocker. #785, #841 - 😌 Relax URL checking to allow all valid URLs in URL fields. #793, #840, #864
- ⚡️ Preview iframe was not always updating when it should. #844, #846
- 👉 Make the "Save" button always visible (without need to scroll on long pages). #43, #870
- Disable the "Save" button unless there are changes. #872
- ➕ Add "<ctl>-e" hotkey shortcut to edit page. #876
- ⚡️ Update UI to Bootstrap v4. (This fixes a layout issue with the date picker.) #648, #884
- 🛠 Fix edit page failure for select and checkbox widgets with no choices. #890, #900
- ⚡️ Update UI to Bootstrap v5. #917, #926
- ➕ Add missing translation strings, show error dialogs on top of other dialogs #934.
Internal changes
Python code
- ⬇️ Drop python 2 compatibility. #822, #850, #871, #920, #922
- ⬇️ Drop python 3.5 compatibility. #878, #880
- 👌 Support python 3.10. #938
- 🏗 Switch to PEP-518-compatible (pyproject.toml) build process. #933, #942
- Code beautification/reformatting. We now use black, reorder-python-imports, [flake8][], and [pylint][]. #823, #916, #925, #936
- 🔨 Refactor rsync publisher tests. #836
- Restructure code to prevent circular imports. #856, #871, #873
- 🛠 Minor docstring fixes. #874
- 👕 Enabled pylint's no-self-use policy. #887
JS code
- We now require node >= 14. #940
- ⚡️ Update NPM/JS dependencies. Update to webpack v5. #816, #834, #848, #852, #860, #905, #917, #926, #945, #957
- 💅 Use prettier and [eslint][] for JS (and YAML) beautification and style enforcement. #825, #936
- ✅ Disuse unmaintained
jsdomify
to prevent hanging tests. #839 - Disuse jQuery. #851
- 🔨 Convert JS code to Typescript. Various other refactoring and cleanups. #857, #869, #872
- 🔨 Refactor code to handle hotkeys. #876
Dependencies
- 😌 Relax
werkzeug<1
towerkzeug<3
. #829, #833, #911, #923 - ⬇️ Drop support for Python 2. #818, #819
- We now require
Jinja2>=3.0
. #921
✅ Testing/CI
- ✅ Use
tox
for local testing. #824 - 👕 Pin version of
pylint
used for tests. #891 - ✅ Complete rewrite of the tests for
lektor.pluginsystem
to increase coverage and reduce running time. #881. - ✅ Test under Python 3.9. #845
- ✅ Test under Node v14 and v16. #852, #927
- ⚡️ Do not run
brew update
in MacOS CI workflow. #853 - CI workflow simplification. #927
👕 [pylint]: https://pylint.org/
✅ [flake8]: https://flake8.pycqa.org/en/latest/
👕 [eslint]: https://eslint.org/
-
v3.2.3 Changes
December 11, 2021 -
v3.2.2 Changes
September 18, 2021Packaging
- 🛠 Fixes a problem with the uploaded wheel in 3.2.1.
Compatibility
- 🛠 Fixes to support werkzeug 2.x. [#911][]
-
v3.2.1 Changes
September 18, 2021Compatibility
- ✅ Pin
pytest-click<1
for python 2.7. #924 - 🛠 Fixes to support werkzeug 1.x. [#833][]
🐛 Bugs
- 👍 Allow rsync deployment to a local path. [#830][], [#836][]
- 🛠 Fix queries with offset but without a limit. [#827][]
💻 Admin UI
- 🛠 Fix select and checkboxes widgets when choices is empty. [#900][]
- ⚡️ Update npm packages. [#848][], [#834][], [#816][]
- 🛠 Fix updating of the preview iframe. [#846][]
- 👍 Allow
ftps:
andmailto:
URLs in url fields. [#840][] - 🛠 Fix the toggling of flow widgets in the admin UI to not mark the content as changed. [#842][]
- 📇 Rename CSS class to prevent conflict with EasyList FR adblock list. [#841][]
- 🛠 Fix the handling of the URLs when opening the admin UI from the pencil button. [#837][]
- 🛠 Fix the checkboxes widget in the admin UI. [#817][]
✅ Testing / CI
- ✅ Test under python 3.9. [#845][]
- 👷 Various CI test fixes. #932, [#839][], #832, #826
- ➕ Added a
tox.ini
. [#824][]
Code Reformatting
- Blackify, reorder-python-imports, flake8. [#823][]
- Reformatted js code with prettier. [#825][]
- ⚡️ Update pylint config. [#822][]
- ✅ Pin
-
v3.2.0 Changes
August 20, 2020🚀 Release date 20th of August, 2020
- Fix off-by-one error in pagintaion's iter_pages in the interpretation of the right_current argument, and adding an appropriate trailing
None
for some uses. - ➕ Add support for setting an output_path in the project file.
- Replaced the slugify backend to handle unicode more effectively. This may break some slugs built from unicode.
- 🐎 Several modernization and performance improvements to the admin UI
- 👌 Improved speed of source info updates.
- Set colorspace to sRGB for thumbnails.
- Now stripping profiles and comments from thumbnails.
- ➕ Added support for deleting and excluding files for the rsync deployment publisher.
- 👌 Improved speed of flow rendering in the admin UI.
- 🛠 Bugfix to correctly calculate relative urls from slugs that contain dots.
- 🛠 Bugfix to allow negative integers in integer fields in the admin UI.
- 👌 Improved image-heavy build speeds by reducing the amount of data extracted from EXIFs.
- ➕ Added the ability to collapse flow elements in the admin UI.
- 🔌 Now
extra_flags
is passed to all plugin events. - Extra flags can now be passed to the
clean
anddev shell
CLI commands. - Bugfix where
lektor plugins reinstall
triggeredon_setup_env
instead of just reinstalling plugins. - ➕ Added the ability to generate video thumbnails with ffmpeg.
- ➕ Added
mode
andupscale
thumbnail arguments, changing the preferred method to crop to usingmode
.mode
can becrop
,fit
, orstretch
.upscale=False
can now prevent upscaling. - ➕ Added a new CLI command
lektor dev new-theme
. - 🛠 Made admin use full UTF-8 version of RobotoSlab. Fixes missing glyphs for some languages
- ⬆️ Bumped minimum Jinja2 version to 2.11
- ⬆️ Bumped filetype dependency to 1.0.7 because of API changes
- Relative urls are now as short as possible.
- 🔄 Changed default slug creation to use slugify. This should mean greater language support, but this may produce slightly different results than before for some users
- 🔧 Automatically include setup.cfg configured for universal wheels when creating plugins
- Fix off-by-one error in pagintaion's iter_pages in the interpretation of the right_current argument, and adding an appropriate trailing
-
v3.2.dev0
August 14, 2020 -
v3.1.3 Changes
January 27, 2019🚀 Release date 26th of January, 2019
- 🚀 Release with universal build.