kart

Distributed version-control for geospatial and tabular data

https://github.com/koordinates/kart

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary

Keywords

data data-versioning geospatial geospatial-data gis version-control

Keywords from Contributors

xunit-test xunit-framework yolov5 graph-generation interactive cryptocurrencies mesh parallel notebook network-simulation
Last synced: 6 months ago · JSON representation ·

Repository

Distributed version-control for geospatial and tabular data

Basic Info
  • Host: GitHub
  • Owner: koordinates
  • License: other
  • Language: Python
  • Default Branch: master
  • Homepage: https://kartproject.org
  • Size: 108 MB
Statistics
  • Stars: 637
  • Watchers: 26
  • Forks: 41
  • Open Issues: 54
  • Releases: 38
Topics
data data-versioning geospatial geospatial-data gis version-control
Created over 7 years ago · Last pushed 6 months ago
Metadata Files
Readme Changelog Contributing License Citation Authors

README.md

Kart: Distributed version-control for datasets

Build Docs

Installing

Upgrading to v0.16.1

See the v0.16.1 release notes for changes, upgrading, and compatibility notes.

Windows

Download the .msi installer from the release page.

If Windows Defender SmartScreen says "it prevented an unrecognized app from starting" after downloading, you'll need to click "Run anyway".

macOS

Download the .pkg installer from the release page;

Or use Homebrew to install: brew install koordinates/kart/kart

Linux

For Debian/Ubuntu-based distributions, download the .deb package from the release page and install via dpkg -i kart_*.deb.

For RPM-based distributions, download the .rpm package from the release page and install via rpm -i kart-*.rpm.

Source

For Kart development see the Contributing Notes.

Usage

See the documentation for tutorials and reference.

If you're new to git

Configure the identity you will use for Kart commits with:

console $ kart config --global user.email "you@example.com" $ kart config --global user.name "Your Name"

Quick Start

  1. Export a GeoPackage from Koordinates with any combination of vector layers and tables.
  2. Create a new Kart repository and import the GeoPackage (eg. kx-foo-layer.gpkg). console $ kart init myproject --import GPKG:kx-foo-layer.gpkg $ cd myproject Use this repository as the directory to run all the other commands in. This will also create a working copy as myproject/myproject.gpkg to edit.
  3. Editing the working copy in QGIS/etc:
    • will track changes in the internal kart tables
    • additions/edits/deletes of features are supported
    • changing feature PKs is supported
    • schema changes should be detected, but aren't supported yet (will error).
    • Use F5 to refresh your QGIS map after changing the underlying working-copy data using kart.
  4. With your working copy, kart commands should work if run from the myproject/ folder. Check --help for options, the most important ones are supported. In some cases options are passed straight through to an underlying git command:
    • kart diff diff the working copy against the repository (no index!)
    • kart commit -m {message} commit outstanding changes from the working copy
    • kart log review commit history
    • kart branch & kart checkout -b branch management
    • kart fetch fetch upstream changes.
    • kart status show working copy state.
    • kart merge merge. Supports --ff/--no-ff/--ff-only from one merge source.
    • kart switch switch to existing or new branches.
    • kart reset & kart restore discard changes in the working copy.
    • kart tag ...
    • kart remote .... Remember simple remotes can just be another local directory.
    • kart push / kart pull
    • kart clone initialise a new repository from a remote URL,

License

GPLv2 with linking exception

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License, version 2, as published by the Free Software Foundation.

In addition to the permissions in the GNU General Public License, the authors give you unlimited permission to link the compiled version of this file into combinations with other programs, and to distribute those combinations without any restriction coming from the use of this file. (The General Public License restrictions do apply in other respects; for example, they cover modification of the file, and distribution when not linked into a combined executable.)

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; see the file COPYING. If not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

Owner

  • Name: Koordinates
  • Login: koordinates
  • Kind: organization
  • Email: support@koordinates.com
  • Location: New Zealand

A geospatial data management platform inspired by cracking GIS data out of vendor silos. You can host, manage, share, publish, access, and build apps.

Citation (CITATION)

To cite Kart in publications use:

  Kart contributors (2023). Kart geospatial data version-control software.
  URL https://kartproject.org

A BibTeX entry for LaTeX users is

  @Manual{,
    title = {{Kart} geospatial data version-control software},
    author = {{Kart contributors}},
    year = {2023},
    url = {https://kartproject.org},
  }

GitHub Events

Total
  • Create event: 58
  • Release event: 2
  • Issues event: 21
  • Watch event: 82
  • Delete event: 36
  • Issue comment event: 37
  • Push event: 167
  • Pull request review comment event: 27
  • Pull request review event: 53
  • Pull request event: 72
  • Fork event: 2
Last Year
  • Create event: 58
  • Release event: 2
  • Issues event: 21
  • Watch event: 82
  • Delete event: 36
  • Issue comment event: 37
  • Push event: 167
  • Pull request review comment event: 27
  • Pull request review event: 53
  • Pull request event: 72
  • Fork event: 2

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 2,333
  • Total Committers: 17
  • Avg Commits per committer: 137.235
  • Development Distribution Score (DDS): 0.463
Past Year
  • Commits: 121
  • Committers: 5
  • Avg Commits per committer: 24.2
  • Development Distribution Score (DDS): 0.529
Top Committers
Name Email Commits
Andrew Olsen a****n@k****m 1,252
Craig de Stigter c****g@d****z 505
rcoup r****p@k****m 369
dependabot[bot] 4****] 57
Peter Wilkinson pw@t****u 36
elena e****o@k****m 31
Amal Thundiyil a****l@g****m 30
dependabot-preview[bot] 2****] 21
OrangeOranges o****s@g****m 16
user u****r@u****e 8
Hamish Campbell h****l@g****m 2
Elena Fedchenko 4****h 1
Jonathan Stanger a****e 1
Leigh Hunt l****h@v****z 1
TrellixVulnTeam c****d@t****m 1
enrico ferreguti f****e@c****t 1
Zumitify s****3@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 33
  • Total pull requests: 87
  • Average time to close issues: 6 months
  • Average time to close pull requests: 7 days
  • Total issue authors: 14
  • Total pull request authors: 5
  • Average comments per issue: 1.91
  • Average comments per pull request: 0.31
  • Merged pull requests: 75
  • Bot issues: 0
  • Bot pull requests: 17
Past Year
  • Issues: 12
  • Pull requests: 59
  • Average time to close issues: 5 days
  • Average time to close pull requests: 2 days
  • Issue authors: 4
  • Pull request authors: 5
  • Average comments per issue: 1.25
  • Average comments per pull request: 0.29
  • Merged pull requests: 53
  • Bot issues: 0
  • Bot pull requests: 10
Top Authors
Issue Authors
  • craigds (9)
  • olsen232 (8)
  • Kaessham (3)
  • hamishcampbell (2)
  • andreatitolo (2)
  • FelixEickeler (1)
  • rhysallister (1)
  • rcoup (1)
  • joaov03 (1)
  • Henrik-AFRY (1)
  • sorokine (1)
  • josephduchesne (1)
  • afrigeri (1)
  • SrNetoChan (1)
  • vbjay (1)
Pull Request Authors
  • craigds (57)
  • olsen232 (37)
  • dependabot[bot] (28)
  • rcoup (10)
  • hamishcampbell (2)
Top Labels
Issue Labels
enhancement (10) bug (1) good first issue (1) meta (1)
Pull Request Labels
dependencies (30) python (3)

Dependencies

.github/workflows/build.yml actions
  • ATiltedTree/setup-rust v1 composite
  • actions/cache v3 composite
  • actions/checkout v3 composite
  • actions/download-artifact v3 composite
  • actions/setup-python v4 composite
  • actions/upload-artifact v3 composite
  • apple-actions/import-codesign-certs v1 composite
  • ilammy/msvc-dev-cmd v1 composite
  • lukka/get-cmake latest composite
  • lukka/get-cmake arm64-win-linux composite
  • lukka/run-cmake v10 composite
  • lukka/run-vcpkg v10 composite
  • maxim-lobanov/setup-xcode v1 composite
  • softprops/action-gh-release v1 composite
  • ghcr.io/baosystems/postgis * docker
  • mcr.microsoft.com/mssql/server * docker
  • mysql * docker
pyproject.toml pypi
requirements/CMakeLists.txt pypi
  • APPEND *
  • BYPRODUCTSliccheck-report.txt *
  • CAUTIOUS-s *
  • COMMAND *
  • COMMENT *
  • DEPENDSliccheckEnvpy-dependencies *
  • DEPENDSpip-compile-upgrade.stamp *
  • DEPENDSpip-compile.stamp *
  • DEPENDSrequirementsEnv *
  • OUTPUTpip-compile-upgrade.stamp *
  • OUTPUTpip-compile.stamp *
  • PARENT_SCOPE *
  • VERBATIM *
  • WORKING_DIRECTORY *
  • add_custom_command *
  • add_custom_target *
  • cffi *
  • createvirtualenvironment *
  • cryptography *
  • endforeach *
  • foreach *
  • gdal *
  • include *
  • psycopg2 *
  • py-license-check *
  • py-requirements *
  • py-requirements-upgrade *
  • pygit2 *
  • pysqlite3 *
  • reflink *
  • set *
  • string *
requirements/dev.in pypi
  • appnope * development
  • colorama * development
  • ipdb * development
  • ipython * development
  • pexpect >4.3 development
requirements/dev.txt pypi
  • appnope ==0.1.3 development
  • asttokens ==2.2.1 development
  • backcall ==0.2.0 development
  • colorama ==0.4.6 development
  • decorator ==5.1.1 development
  • executing ==1.2.0 development
  • ipdb ==0.13.11 development
  • ipython ==8.10.0 development
  • jedi ==0.18.2 development
  • matplotlib-inline ==0.1.6 development
  • parso ==0.8.3 development
  • pexpect ==4.8.0 development
  • pickleshare ==0.7.5 development
  • prompt-toolkit ==3.0.36 development
  • ptyprocess ==0.7.0 development
  • pure-eval ==0.2.2 development
  • pygments ==2.13.0 development
  • six ==1.16.0 development
  • stack-data ==0.6.2 development
  • traitlets ==5.7.1 development
  • wcwidth ==0.2.5 development
requirements/docs.in pypi
  • sphinx-autobuild *
  • sphinx-rtd-theme *
requirements/docs.txt pypi
  • alabaster ==0.7.12
  • babel ==2.11.0
  • certifi ==2022.12.7
  • charset-normalizer ==2.1.1
  • colorama ==0.4.6
  • docutils ==0.17.1
  • idna ==3.4
  • imagesize ==1.4.1
  • jinja2 ==3.1.3
  • livereload ==2.6.3
  • markupsafe ==2.1.1
  • packaging ==22.0
  • pygments ==2.13.0
  • pytz ==2022.6
  • requests ==2.31.0
  • six ==1.16.0
  • snowballstemmer ==2.2.0
  • sphinx ==5.3.0
  • sphinx-autobuild ==2021.3.14
  • sphinx-rtd-theme ==1.1.1
  • sphinxcontrib-applehelp ==1.0.2
  • sphinxcontrib-devhelp ==1.0.2
  • sphinxcontrib-htmlhelp ==2.0.0
  • sphinxcontrib-jsmath ==1.0.1
  • sphinxcontrib-qthelp ==1.0.3
  • sphinxcontrib-serializinghtml ==1.1.5
  • tornado ==6.3.3
  • urllib3 ==1.26.16
requirements/requirements.in pypi
  • Pygments *
  • boto3 >=1.29.1
  • certifi *
  • click *
  • docutils <0.18
  • jsonschema >=4.3
  • msgpack *
  • pymysql *
  • rst2txt *
  • shellingham *
  • sqlalchemy *
  • tqdm *
requirements/requirements.txt pypi
  • attrs ==22.1.0
  • boto3 ==1.29.6
  • botocore ==1.32.6
  • certifi ==2022.12.7
  • click ==8.1.4
  • docutils ==0.17.1
  • jmespath ==1.0.1
  • jsonschema ==4.17.3
  • msgpack ==0.6.2
  • pycparser ==2.21
  • pygments ==2.13.0
  • pymysql ==1.0.2
  • pyodbc ==5.0.1
  • pyrsistent ==0.19.2
  • python-dateutil ==2.8.2
  • rst2txt ==1.1.0
  • s3transfer ==0.7.0
  • shellingham ==1.5.0
  • six ==1.16.0
  • sqlalchemy ==1.4.45
  • tqdm ==4.64.1
  • urllib3 ==1.26.16
requirements/test.in pypi
  • atomicwrites >=1.0 test
  • colorama * test
  • html5lib * test
  • pytest * test
  • pytest-benchmark * test
  • pytest-cov * test
  • pytest-helpers-namespace * test
  • pytest-mock * test
  • pytest-profiling * test
  • pytest-shard * test
  • pytest-sugar * test
  • pytest-xdist * test
requirements/test.txt pypi
  • aspectlib ==2.0.0 test
  • atomicwrites ==1.4.1 test
  • attrs ==22.1.0 test
  • colorama ==0.4.6 test
  • coverage ==6.5.0 test
  • execnet ==1.9.0 test
  • fields ==5.0.0 test
  • gprof2dot ==2022.7.29 test
  • html5lib ==1.1 test
  • iniconfig ==1.1.1 test
  • packaging ==22.0 test
  • pluggy ==1.0.0 test
  • py-cpuinfo ==9.0.0 test
  • pytest ==7.2.0 test
  • pytest-benchmark ==4.0.0 test
  • pytest-cov ==4.0.0 test
  • pytest-helpers-namespace ==2021.12.29 test
  • pytest-mock ==3.10.0 test
  • pytest-profiling ==1.7.0 test
  • pytest-shard ==0.1.2 test
  • pytest-sugar ==0.9.6 test
  • pytest-xdist ==3.1.0 test
  • six ==1.16.0 test
  • termcolor ==2.1.1 test
  • webencodings ==0.5.1 test
requirements/vendor-wheels.txt pypi
  • cffi ==1.16.0
  • cryptography ==41.0.6
  • gdal ==3.8.0
  • psycopg2 ==2.9.9
  • pygit2 ==1.12.1
  • pyodbc ==5.0.1
  • pysqlite3 ==0.5.2
  • reflink ==0.2.2
setup.py pypi
vcpkg-vendor/vcpkg-overlay-ports/gdal/vcpkg.json vcpkg
  • json-c *
  • libgeotiff *
  • pkgconf *
  • proj *
  • tiff *
  • vcpkg-cmake *
  • vcpkg-cmake-config *
  • vcpkg-pkgconfig-get-modules *
  • zlib *
vcpkg-vendor/vcpkg-overlay-ports/libgit2/vcpkg.json vcpkg
  • http-parser *
  • vcpkg-cmake *
  • vcpkg-cmake-config *
  • zlib *
vcpkg-vendor/vcpkg-overlay-ports/libspatialite/vcpkg.json vcpkg
  • geos *
  • libiconv *
  • libxml2 *
  • proj *
  • sqlite3 *
  • vcpkg-pkgconfig-get-modules *
  • zlib *
vcpkg-vendor/vcpkg-overlay-ports/pdal/vcpkg.json vcpkg
  • curl *
  • gdal *
  • libgeotiff *
  • libxml2 *
  • nanoflann *
  • nlohmann-json *
  • pdal *
  • vcpkg-cmake *
  • vcpkg-cmake-config *
vcpkg-vendor/vcpkg.json vcpkg
  • curl *
  • gdal *
  • libffi *
  • libgit2 *
  • libpq *
  • libspatialite *
  • openssl *
  • pcre2 *
  • pdal *
  • proj *
  • python3 *
  • sqlite3 *
  • tiff *
  • unixodbc *