Skip to content

Latest commit

 

History

History
811 lines (614 loc) · 29.7 KB

CHANGES.md

File metadata and controls

811 lines (614 loc) · 29.7 KB

Changelog

These are all the changes in Lektor since the first public release.

3.3.10 (2023-05-05)

  • Address recent deprecations of various bits of werkzeug.urls, avoiding use of the deprecated functions where possible. (#1144, #1142)

  • Pin werkzeug<2.41. Since the deprecated werkzeug.urls.URL is part of our Publisher API, we can not disuse that without changing public API. (#1144)

3.3.9 (2023-04-16)

Bit-Rot

  • Fix installation of local plugins (from the packages/ subdirectory). This was broken by release 23.1 of pip which dropped support for the --install-option flag to pip install. (#1129, #1127)

Bugs

  • Implement better input validation for the date/time-formatting jinja filters. Prior to this, passing a jinja2.Undefined value to the date, time, or datetime filters would elicit an assertion error. (#1122, #1121)

  • Fix for spurious rebuilds. Recent versions of watchdog (>=2.3.0) enabled tracking of IN_OPEN events. These fire when a file is opened — even just for reading. Now we're pickier about only responding to events that indicate file modifications. (#1117)

3.3.8 (2023-02-28)

Test under python 3.11. (#1084)

Bugs Fixed

Plugins

  • PluginController.emit would, under certain circumstances, silently ignore TypeErrors thrown by plugin hook methods. (#1086, #1085)

Packaging

  • List all directly imported packages as dependencies. Fixes #1109.

3.3.7 (2022-09-21)

Bugs

Dev Server

  • Remove frontend javascript rebuild machinery altogether. Since the frontend source code is not included in distributed Lektor wheels this was breaking LEKTOR_DEV functionality for all but those running Lektor from git. (#1072)

3.3.6 (2022-07-27)

Changes

Admin Frontend

  • The save hotkey (<ctl>-s) now always switches to the preview view. Previously, the save hotkey was disabled unless there were changes to be saved. (#1022)

Bugs

Admin Frontend

  • Fix for spurious page scrolling when typing in textareas. (#1038, #1050)
  • Make size = {small|large} field option work again. (#1022)
  • Fix the edit (<ctl>-e) hotkey. (#1022)
  • Handle hotkeys when the preview iframe has the focus. (#1022)

Dev Server

  • Fix building of javascript when devserver is run with LEKTOR_DEV set. Broken since Lektor 3.3.2 by PR #1003.

3.3.5 (2022-07-18)

Bugs

Admin Server

3.3.4 (2022-05-02)

Bugs

Bit-rot

3.3.3 (2022-03-29)

Bugs

Bit-rot

CI

  • Update pre-commit config to use black==22.3.0 to avoid breakage caused by click>=8.1.0. (#1019)

3.3.2 (2022-03-01)

Features

Command Line

License

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 — the url_path should always be that corresponding to the primary alternative. (#958)
  • Pad.get, if not passed an explicit value for the alt 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 when Pad.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

  • Fix for test failures when git is not installed. (#998, #1000)

Refactorings

  • Cleaned up EditorSession to split mapping methods (for access to record data) to a separate class, now available as EditorSession.data. (#969)

Testing

  • Cleaned up and moved our pylint and coverage configuration to pyproject.toml. (#990, #991)

Admin UI

  • Move frontend source from lektor/admin/static/ to frontend/. Compiled frontend code moved from lektor/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)

3.3.1 (2022-01-09)

Bugs Fixed

  • Fixed an import cycle which caused in ImportError if lektor.types was imported before lektor.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

  • Finish rewriting React class-based components to function-based components. #977
  • Finish adding types for all API endpoints. #980
  • Remove disused event-source polyfill.

3.3.0 (2021-12-14)

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
  • Fall back to watchdog PollingObserver if default Observer 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

  • Fix bug in lektor.sourcesearch.find_files which was causing intermittent exceptions. #895, #897

Miscellaneous

  • Fix reference cycle in Environment. #882
  • Fix "unclosed file" ResourceWarnings. #898

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

JS code

Dependencies

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

3.2.3 (2021-12-11)

Compatibility

  • Restore python 2.7 compatibility. It was broken in leketor 3.2.2. #951
  • Pin inifile>=0.4.1 to support python 3.10 #943, #953

3.2.2 (2021-09-18)

Packaging

  • Fixes a problem with the uploaded wheel in 3.2.1.

Compatibility

  • Fixes to support werkzeug 2.x. #911

3.2.1 (2021-09-18)

Compatibility

  • 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: and mailto: 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

Code Reformatting

  • Blackify, reorder-python-imports, flake8. #823
  • Reformatted js code with prettier. #825
  • Update pylint config. #822

3.2.0

Release date 20th of August, 2020

  • Fix off-by-one error in pagination'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 and dev shell CLI commands.
  • Bugfix where lektor plugins reinstall triggered on_setup_env instead of just reinstalling plugins.
  • Added the ability to generate video thumbnails with ffmpeg.
  • Added mode and upscale thumbnail arguments, changing the preferred method to crop to using mode. mode can be crop, fit, or stretch. 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

3.1.3

Release date 26th of January, 2019

  • Release with universal build.

3.1.2

Release date 7th of September 2018

  • Fix pagination and virtual pathing for alts
  • Fixing deply from local server in Python 3
  • Now passing server_info to publisher from local server, providing better support for plugin provided publishers.
  • Added a more full-featured example project.
  • Adding Jinja2 do extension.
  • Better new-plugin command.
  • More tests.
  • Added the ability to sort child pages in admin according to models.
  • Better image handling and info detection for JPGs and SVGs
  • Lektor can now be ran with python -m lektor
  • New plugins now come with a more full featured setup.py

3.1.1

Release date 18th of April 2018

  • Better Image dimension detection.
  • Fix backwards compatibility with thumbnail generation.
  • Adding safety check when runnning new build in non-empty dir since that could delete data.
  • Adding command aliases.

3.1.0

Release date 29th of January 2018.

  • Adding ability to use Lektor Themes.
  • Adding Markdown event hook between instantiating the Renderer and creating the Markdown Processor
  • Improving tests for GitHub deployment.
  • Added the ability to use IPython in the lektor dev shell if it's available.
  • Added ability to publish from different filesystems.
  • Adding new option to turn disable editing fields on alternatives.
  • Added automated testing for Windows.
  • Expanded automated testing environments to Python 2.7, 3.5, 3.6, & Node 6, 7, 8.
  • Windows bugfixes.
  • Improved exif image data.
  • Improved date handling in admin.
  • Make GitHub Pages branch detection case insensitive.
  • Set sqlite isolation to autocommit.
  • Fixed errors in the example project.
  • Enabling pylint and standard.js.
  • Improved image rotation.
  • Now measuring tests and pull requests with code coverage.
  • Thumbnails can now have a defined quality.
  • Moved Windows cache to local appdata.
  • README tweaks.
  • Beter translations.
  • Better file tracking in watcher.
  • Upgraded many node dependencies.
  • Upgraded from ES5 to ES6.
  • Added mp4 attachment type.
  • Bugfixes for Python 3.

3.0.1

Released on 13th of June 2017.

  • Bugfixes and improved Python 2 / 3 compatibility

3.0

Released on 15th of July 2016.

  • Switch to newer mistune (markdown parser).
  • Rename --build-flags to --extra-flags, allow the deploy command to also accept extra flags.

2.4

Released on 7th of July 2016.

  • Resolved an issue with unicode errors being caused by the quickstart.

2.3

Released on 31st of May 2016

  • Fixed an issue with get_alts not being available in the template environment.

2.2

Released on 12th of April 2016

  • Corrected an issue where certain translations would not make the admin panel load.

2.1

Released on 12th of April 2016

  • Fixed a code signing issue on OS X 10.10.3 and lower.

2.0

Released on 11th of April 2016

  • Added _discoverable system field which controls if a page should show up in children. The default is that a page is discoverable. Setting it to False means in practical terms that someone needs to know the URL as all collection operations will not return it.
  • Added for_page function to pagination that returns the pagiantion for a specific page.
  • Make pagination next_page and prev_page be None on the edges.
  • Allow plugins to provide publishers.
  • Added |markdown filter.
  • Added French translations.
  • Unicode filenames as final build artifacts are now explicitly disallowed.
  • Serve up a 404.html as an error page in the dev server.
  • Improvements to the path normalization and alt handling. This should support URL generation in more complex cases between alts now.
  • Show a clearer error message when URL generation fails because a source object is virtual (does not have a path).
  • Empty text is now still valid markdown.
  • Lektor clean now loads the plugins as well.
  • Basic support for type customization.
  • Fields that are absent in a content file from an alternative are now pulled from the primary content file.
  • Development server now resolves index.html for assets as well.
  • Markdown processing now correctly adjusts links relative to where the rendered output is rendered.
  • Added Dutch translations.
  • Added Record.get_siblings()
  • Added various utilties: build_url, join_path, parse_path
  • Added support for virtual paths and made pagination work with it.
  • Added support for Query.distinct
  • Add support for pagination url resolving on root URL.
  • Server information can now also contain extra key/value pairs that can be used by publishers to affect the processing.
  • The thumbnails will now always have the correct width and height set as an attribute.
  • added datetime type
  • added support for the process_image utility functions so that plugins can use it directly.
  • added support for included_assets and excluded_assets in the project file.
  • added Spanish translations.
  • added Japanese translations.
  • added support for discovering existing alts of sources.
  • added support for image cropping.
  • added preliminary support for publishing on windows.
  • children and attachments can now have a hidden flag configured explicitly. Attachments will also no longer inherit the hidden flag of the parent record as that is not a sensible default.
  • changed internal sqlite consistency mode to improve performance on HDDs.
  • allow SVG files to be treated as images. This is something that does not work in all situations yet (in particular thumbnailing does not actually do anything for those)

1.2.1

Released on 3rd of February 2016

  • Bugfix release primarily for OS X which fixes a code signing issue.

1.2

Released on 1st of February 2016

  • Fixed an error that caused unicode characters in the project name to be mishandled in the quickstart.
  • Do not create empty folders when the quickstart skips over files.
  • Empty values for the slug field now pull in the default.
  • Corrected a bug in hashing in the FTP publisher that could cause files to not upload correctly.
  • Improved error message for when imagemagick cannot be found.
  • Fixed scrolling in the admin for firefox and some other browsers.
  • Fixed a problem with deleting large projects due to sqlite limitations.
  • Fixed admin preview of root page in firefox.
  • Changed FTPS data channel to use TLS.

1.1

Released on 27th of December 2015

  • Fixed a bug where resolving URL paths outside of alts did not fall back to asset resolving.
  • verbose mode now correctly displays traceback of build failures.
  • Fixed a bug that caused build failures not to be remembered.
  • Fixed a bad EXIF attribute (longitude was misspelt)
  • Use requests for URL fetching instead of urllib. This should fix some SSL errors on some Python versions.
  • Parent of page now correctly resolves to the right alt.
  • Publish from a temporary folder on the same device which solves problems on machines with /tmp on a different drive.

1.0

Released on 21st of December 2015

  • Improved ghpages and rsync deployments.
  • Implemented options for default URL styles.
  • All artifacts now depend on the project file.
  • Fixed an issue with renames from tempfile in the quickstart.

0.96

Initial test release. Release date 19th of December 2015