Skip to content

Releases: koordinates/kart

v0.12.1

09 Feb 21:08
Compare
Choose a tag to compare

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 that point-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 with kart commit behaviour. #785

v0.12.0

26 Jan 21:40
Compare
Choose a tag to compare

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 of kart 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 and kart show. #706
  • Bugfix: don't allow kart merge to fast-forward if the user specifies a merge message. #705
  • diff, show, create-patch and apply now handle attached files (as could already be created using kart commit-files) #583
  • metadata.xml is now consistently treated as an attached file, rather than as a hidden "meta item". #583
  • apply and meta 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

23 Aug 04:04
Compare
Choose a tag to compare

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 to kart 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 typing kart diff COMMIT1...COMMIT2 #666
  • Add kart helper which starts a long running process to reduce the overhead of Python startup.
  • the --num-processes option to init and import 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

07 Jun 00:16
Compare
Choose a tag to compare

0.11.3

  • Added support for --output option kart conflicts. #135
  • Bugfix: Better error message on using kart conflicts -ogeojson for meta-item conflicts. #515
  • Removed the older upgrade-to-tidy and upgrade-to-kart features which were only relevant to Sno (predecessor of Kart). #585
  • Added support for --decorate and --no-decorate in kart 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 using kart 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

15 Mar 22:55
Compare
Choose a tag to compare

Patch release to fix one issue:

  • Improve performance when creating a working copy in a spatially filtered repository (this was previously slower than in a non-filtered repository; now it is much faster) #561

v0.11.0

21 Feb 23:29
Compare
Choose a tag to compare

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> to json-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

16 Jan 19:43
Compare
Choose a tag to compare

New features

  • More advanced filters for log, diff and commit: 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 with parcel 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

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

v0.10.7

22 Nov 23:24
Compare
Choose a tag to compare

0.10.7

Bugfix release

  • log: Fixed some regressions in 0.10.6 involving argument parsing:
    • range arguments (x..y or x...y) were handled incorrectly. #504
    • -n INTEGER caused an error #507
    • kart log @ was empty (@ is supposed to be handled as a synonym for HEAD) #510
  • Auto-incrementing PK sequences now work in PostGIS working copies for table names containing the . character. #468

v0.10.6

11 Nov 03:21
Compare
Choose a tag to compare

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 #482
    • kart 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.

v0.10.5

06 Oct 21:39
Compare
Choose a tag to compare

0.10.5 - Bug fix release

Bugs fixed:

  • Fixed regressions in diff -o geojson since Kart 0.10.1 #487
  • Removed kart show -o geojson #487
  • Fix for #478 merge --dry-run raises error
  • Fix for #483 diff error with Z/M geometries