Releases: koordinates/kart
v0.12.1
0.12.1
Changes
The most notable change in 0.12.1 is the fix of a compatibility issue with the Kart QGIS plugin.
- Modified
point-cloud-import --replace-existing
to reuse previously imported tiles, rather than reimport them, if tiles that have already been imported are imported again - potentially saving time and disk space. Note thatpoint-cloud-import --update-existing
already had this optimization. #783 - Reintroduced support for
log --graph
. #784 - Added checks to various commands to ensure user.name and user.email have been configured (ie to
kart merge
), to bring them in line withkart commit
behaviour. #785
v0.12.0
0.12.0
Major changes
- First and foremost: point cloud datasets! Kart now supports point cloud datasets which track changes to a set of LAS files. This required the addition of a file-system working copy (as opposed to the existing database working copy types), and integrating Git LFS to store the large files. To get started with point cloud datasets, see
Point Cloud Datasets #565
Other changes
- Install tab completion using
kart install tab-completion
instead ofkart config --install-tab-completion
. #701 - "Primary key conflicts" - conflicts caused by reusing a primary key which is already assigned to a feature outside the spatial filter - are renamed to "spatial filter conflicts" for future proofing with other dataset types. Consequently, commit option
--allow-pk-conflicts
is renamed to--allow-spatial-filter-conflicts
. - Support shell detection for tab completion installation when running in helper mode. #704
- Bugfix: directing geojson diff output to the console didn't work in a multi-dataset repo, even if only one dataset had changed. #702
- Improve argument parsing for
kart diff
andkart show
. #706 - Bugfix: don't allow
kart merge
to fast-forward if the user specifies a merge message. #705 diff
,show
,create-patch
andapply
now handle attached files (as could already be created usingkart commit-files
) #583metadata.xml
is now consistently treated as an attached file, rather than as a hidden "meta item". #583apply
andmeta set
now support--amend
to amend an existing commit- Bugfix: don't allow
kart diff
to diff to/from HEAD if HEAD does not yet point to a commit. - Improved progress reporting during working-copy checkout. #738
- Support for changing the primary key column of an existing dataset. #238
- Help for the user get the working copy back into a valid state if a crash or similar causes it to become out of sync with the Kart repo. #751
- Enable the background CLI helper on Linux & macOS in CI builds. The helper improves CLI performance significantly. #776
New Contributors
- @olegsson made their first contribution in #709 -
Use pyreflink to take advantage of copy-on-write capable filesystem when creating the working copy.
Compatibility
Point cloud datasets created using Kart 0.12 and later won't be visible when using earlier versions of Kart, but they are still present in the repository. Upgrading to Kart 0.12 is strongly recommended for anyone accessing repositories which contain point cloud datasets - in fact upgrading to 0.12 is generally recommended, it is easier to install 0.12 than to check what each repository contains.
v0.11.5
0.11.5
Major changes
- Tab completion. Run
kart config --install-tab-completion=auto
to install. Supports Windows cmd, Windows PowerShell, macOS and Linux. #643 - Add
kart helper
which starts a long running process to reduce the overhead of Python startup.
Other changes
- Add man-style pagers instead of click's default help page on
kart <command> --help
. #643 - Changed format of feature IDs in GeoJSON output to be more informative and consistent. #135
- Fixed primary key issues for shapefile import - now generates an
auto_pk
by default, but uses an existing field if specified (doesn't use the FID). #646 - Add
--with-dataset-types
option tokart meta get
which is informative now that there is more than one type of dataset. #649 - Support
kart diff COMMIT1 COMMIT2
as an alternative to typingkart diff COMMIT1...COMMIT2
#666 - Add
kart helper
which starts a long running process to reduce the overhead of Python startup. - the
--num-processes
option toinit
andimport
commands is now deprecated and does nothing. In most situations it offered no performance gain. #692 - Honour symlinks for shared libraries rather than including copies created by PyInstaller. #691
- Strip shared libraries on Linux to reduce package size. #691
Thanks to our Google Summer of Code contributor @amal-thundiyil (#643)
v0.11.3
0.11.3
- Added support for
--output
optionkart conflicts
. #135 - Bugfix: Better error message on using
kart conflicts -ogeojson
formeta-item
conflicts. #515 - Removed the older
upgrade-to-tidy
andupgrade-to-kart
features which were only relevant to Sno (predecessor of Kart). #585 - Added support for
--decorate
and--no-decorate
inkart log
. #586 - Bugfix: Fixed a bug where creating a MSSQL working copy fails when there are large (~10KB) geometries. #617
- Bugfix: Fixed
kart diff <commit-id>
for a commit containing a dataset that has since been deleted usingkart data rm
. #611 - Add
ext-run
to provide an execution environment for prototyping ideas/extensions. - Added more context about datasets to JSONL diffs. #624
- Fix
kart branch -o json
when branch HEAD is unborn or repo is empty - this would either fail outright or report that HEAD is on branch "null" which is not exactly true. #637
External contributors
https://github.com/amal-thundiyil
https://github.com/Zumitify
v0.11.1
v0.11.0
Major changes
Support for spatial filters (#456) - the spatial filter can be updated during an init
, clone
or checkout
by supplying the option --spatial-filter={CRS};{GEOMETRY}
.
When a spatial filter is set, the working copy will only contain features that intersect the spatial filter, and changes that happened outside the working copy are not shown to the user unless specifically required. Starting with Kart 0.11.0, only the features that are inside the specified spatial filter are downloaded during a clone. See the Spatial filter documentation to get started.
Other changes
- Expanded
--output-format
/-o
to accept format specifiers; e.g.-o json:compact
.kart log
now accepts text formatstrings, e.g.-o text:%H
#544 - Deprecated
--json-style
in favour of-o json:{style}
- diff: Added
--add-feature-count-estimate=<accuracy>
tojson-lines
diffs. This lazily inserts an estimate of the total number of features into the output stream. #543 - Bugfix: fixed errors with Postgres working copies when one or more datasets have no CRS defined. #529
- Bugfix: better error message when
kart import
fails due to multiple XML metadata files for a single dataset, which Kart does not support #547 - When there are two pieces of XML metadata for a single dataset, but one is simply a
GDALMultiDomainMetadata
wrapping the other, the wrapped version is ignored. #547 - Bugfix: fixed a bug preventing
checkout -b NEW_BRANCH HEAD^
and similar commands from working - Bugfix: fixed a bug where
kart merge
would fail in a shallow clone, in certain circumstances. #555
v0.10.8
New features
- More advanced filters for
log
,diff
andcommit
: All of these now work:- Wildcard (
*
) filters for dataset names, e.g.kart diff -- *parcel*:meta:schema.json
will show only schema changes for all datasets withparcel
in their names.*
by itself matches all datasets. #532 - You can now output the history of individual features:
kart log -- <dataset-name>:feature:<feature-primary-key>
. #496
- Wildcard (
Behavioural changes
kart clone
now strips.git
off the end of automatically-generated repo paths, if--bare
is not specified. #540
Bug fixes
- fixed certificate verification errors when cloning HTTPS repositories on some Linux distributions. #541
- fixed an error when merging a commit where every feature in a dataset is deleted. #506
import
: Disallowed--replace-ids
when the primary key is changing. #521
Development
- Simpler developer builds using CMake - see the contributing notes.
v0.10.7
0.10.7
Bugfix release
log
: Fixed some regressions in 0.10.6 involving argument parsing:- Auto-incrementing PK sequences now work in PostGIS working copies for table names containing the
.
character. #468
v0.10.6
0.10.6
New features
- New
kart data rm
command to simply delete datasets and commit the result #490 - Minimal patches:
kart create-patch
now supports--patch-type minimal
, which creates a much-smaller patch; relying on the patch recipient having the HEAD commit in their repository #482kart apply
now applies both types of patch.
Behavioural changes
- Added a specification for allowed characters & path components in dataset names - see Valid Dataset Names.
- Information about the current spatial filter is now shown in
status
. #456 kart log
now accepts a--
marker to signal that all remaining arguments are dataset names. #498
Bugs fixed
- Make Kart more robust to manual edits to the GPKG working copy that don't leave the metadata exactly as Kart would leave it (such as by leaving unneeded table rows in
gpkg_contents
) #491 - Diffing between an old commit and the current working copy no longer fails when datasets have been deleted in the intervening commits.
- Existing auto-incrementing integer PK sequences are now overwritten properly in GPKG working copies. #468
import
from a Postgres or MSSQL source will no longer prepend the database schema name to the imported dataset path.