From 091c63cfbf7b40e99e2017a3c37619c7689cc447 Mon Sep 17 00:00:00 2001 From: Simon Willison Date: Sat, 22 Jul 2023 15:47:56 -0700 Subject: [PATCH] Release 3.34 Refs #561, #563, #564, #565, #567, #568, #569, #570, #571 --- docs/changelog.rst | 18 ++++++++++++++++++ setup.py | 2 +- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/docs/changelog.rst b/docs/changelog.rst index 862a2f3..81b163c 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -4,6 +4,24 @@ Changelog =========== +.. _v3_34: + +3.34 (2023-07-22) +----------------- + +This release introduces a new :ref:`plugin system `, with the ability to install plugins that add commands to the ``sqlite-utils`` CLI tool. (:issue:`567`) + +- Documentation describing :ref:`how to build a plugin `. +- First plugin hook: :ref:`plugins_hooks_register_commands`, for plugins to add extra commands to ``sqlite-utils``. (:issue:`569`) +- ``sqlite-utils install -e path-to-directory`` option for installing editable code. This option is useful during the development of a plugin. (:issue:`570`) +- ``table.create(...)`` method now accepts ``replace=True`` to drop and replace an existing table with the same name, or ``ignore=True`` to silently do nothing if a table already exists with the same name. (:issue:`568`) +- ``sqlite-utils insert ... --stop-after 10`` option for stopping the insert after a specified number of records. Works for the ``upsert`` command as well. (:issue:`561`) +- The ``--csv`` and ``--tsv`` modes for ``insert`` now accept a ``--empty-null`` option, which cases empty strings in the CSV file to be stored as ``null`` in the database. (:issue:`563`) +- New ``db.rename_table(table_name, new_name)`` method for renaming tables. (:issue:`565`) +- ``sqlite-utils rename-table my.db table_name new_name`` command for renaming tables. (:issue:`565`) +- The ``table.transform(...)`` method now takes an optional ``keep_table=new_table_name`` parameter, which will cause the original table to be renamed to ``new_table_name`` rather than being dropped at the end of the transformation. (:issue:`571`) +- Documentation now notes that calling ``table.transform()`` without any arguments will reformat the SQL schema stored by SQLite to be more aesthetically pleasing. (:issue:`564`) + .. _v3_33: 3.33 (2023-06-25) diff --git a/setup.py b/setup.py index 7dbd670..95b3573 100644 --- a/setup.py +++ b/setup.py @@ -2,7 +2,7 @@ from setuptools import setup, find_packages import io import os -VERSION = "3.33" +VERSION = "3.34" def get_long_description():