Releases: koordinates/kart
v0.15.1
Changes
- Prevented committing local changes to linked datasets. #953
- Fixes a bug where even datasets marked as
--no-checkout
are checked out when the working copy is first created. #954 - Fixes a bug where minor changes to auxiliary metadata (.aux.xml) files that Kart is supposed to ignore were preventing branch changes. #957
- Improved performance when the user filters a diff request to only show certain features. #962
- Clean up the empty directory if a clone fails outright. #963
- Fixes
add-dataset
to work for PostGIS working copies. #965 - Fixes
kart import --link
to not fetch any tiles when importing into a bare Kart repo. #970
v0.15.0
Major changes
- First and foremost: linked datasets! Kart now supports linking a tile-based dataset to tiles that are hosted on S3, so that the tiles don't need to be hosted on a Kart LFS server. For more information, see Linked Datasets. #905
Other changes
- Native Apple Silicon builds are now available for macOS 12 and newer. #927
- Adds support for disabling the working-copy checkout of specific datasets using the commands
kart import DATASET --no-checkout
orkart checkout --not-dataset=DATASET
, and re-enabling it usingkart checkout --dataset=DATASET
. #926 - Adds information on referencing and citing Kart to
CITATION
. #914 - Fixes a bug where Kart would misidentify a non-Kart repo as a Kart V1 repo in some circumstances. #918
- Improve schema extraction for point cloud datasets. #924
- Some tweaks to
--dry-run
output of Kart LFS commands. #932 - Now using Python 3.11 to build Kart, and vendored dependencies have been updated to newer versions. #933
- Adds support for importing point-cloud and raster tiles directly from an S3 URL. #940
checkout
: Smoother progressbar updates- Add library support for WEBP & ZSTD compression with GeoTIFF raster datasets. #951
v0.14.2
v0.14.1
Changes
- Fixes a bug where Git subprocesses (such as git clone) don't prompt the user for credentials or to resolve SSH issues on Windows. #852
- Better protection against XSS in the HTML diff viewer. #884
- Speed-up: greatly reduces the time taken to update the index file after checking out LFS tiles to the working copy. #880
- Adds
--with-dataset-types
option tokart data ls
command (and deprecateskart data version
). #892 - Use
journal_mode = WAL
in annotations.db sqlite database. #898 - Slightly modifies the GPKG working copy format to avoid an incompatiblity with Global Mapper. #899
v0.14.0
Major changes
- First and foremost: raster datasets! Kart now supports raster datasets, which track changes to a set of GeoTIFF files. To get started, see Raster Datasets #794
Other changes
v0.13.0
Major fix: Corruption of Postgres NUMERIC values
If your repositories use the NUMERIC or NUMERIC(a,b) types and were imported/committed from a Postgres source or working copy, you may have lost data.
Specifically, any numeric values with a scale of zero (no digits after the decimal point) were affected. If the only numerics in your repositories were defined with a scale greater than zero, no data corruption should have occured.
For example, a value of 100 in a postgres database with the type NUMERIC(10, 0) or NUMERIC would have been imported as 1 - losing its trailing zeroes.
However, a value of 100.0 in a field declared as NUMERIC(10, 1) would not have been affected.
Other data types (integer, floating-point etc) are not affected, and repos sourced from other SQL databases (Geopackage, MSSQL, MySQL) were not affected.
Other changes
- Allow kart to import non-spatial tables from PostgreSQL databases which don't have postGIS extension installed. #728
- PostgreSQL working copy no longer requires PostGIS for aspatial datasets. #729
- Fixes a bug where the current spatial filter isn't stored in the filesystem working copy, affecting the spatial filtering of point cloud datasets. #833
- Fixes pthread_key leaks in a long running Kart process due to repeated loading and unloading of mod_spatialite. #838
- Fixes a bug where features are written to the working copy without their CRS identifier during
kart resolve
. #840 - Drop CI testing of amazonlinux:2, replace with amazonlinux:2023. #838
- Point clouds (or rasters): during import, require the user to choose if they want to make a "cloud-optimized" dataset or a "preserve-format" dataset. #842
- Point clouds (or rasters): require
--no-convert-to-dataset-format
to add new tiles to a dataset that can be committed as-is but only if the dataset's format is changed. Note--convert-to-dataset-format
works as before. #842 - Allow kart to check out attached files into the file-based working copy.
- Fixes a bug where tab-completion wasn't working with helper mode, affects macOS and Linux. #851
- Fixes a bug where git-lfs (and potentially other subprocesses) wasn't working reliably with helper mode, affects macOS and Linux. #853
import
now informs the user to useadd-dataset
instead if they try to import a table that is already inside the working copy. #249- Fixes a bug where datasets with no CRS couldn't be checked out into a Geopackage working copy. #855
- Upgrade libgit2 to v1.6.4, pygit2 to v1.12.1 (plus Kart-specific changes). #868
v0.12.3
- Fix the issue where re-importing the same shapefile with
--replace-existing
would show spurious schema changes (and therefore row changes). #791 - Added support for committing new layers to a kart repository with
add-dataset
and the table name. #249 - Switched the crs84Extent field for point-cloud tiles to store a 4-point-polygons (instead of an axis-aligned envelope). #809
- Improved progress reporting when importing tiles, in line with working copy checkout.
- Added support for
--diff-format
option underkart show
command to display different level of detail depending on the user's needs. #721 - Allow for automatically resolving primary key conflicts during a merge using
kart resolve --renumber=(ours|theirs)
#814 - Improved tile import performance for point-cloud (and eventually raster) by making it multithreaded. #818
- Fixed a bug where Kart would require
user.name
anduser.email
to be set, even whenGIT_AUTHOR_EMAIL
and similar variables were set in the environment. #812 - Update native dependencies. #820
- Drop CI testing of Debian Stretch/oldoldstable. #820
v0.12.2
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.