Skip to content

v0.8.0

Choose a tag to compare

@github-actions github-actions released this 13 Apr 04:11

Breaking changes in this release

  • Internally, Sno now stores XML metadata in an XML file, instead of nested inside a JSON file. This is part of a longer term plan to make it easier to attach metadata or other files to a repository in a straight-forward way, without having to understand JSON internals. Unfortunately, diffing commits where the XML metadata has been written by Sno 0.8.0 won't work in Sno 0.7.1 or earlier - it will fail with binascii.Error
  • Backwards compatibility with Datasets V1 ends at Sno 0.8.0 - all Sno commands except sno upgrade will no longer work in a V1 repository. Since Datasets V2 has been the default since Sno 0.5.0, most users will be unaffected. Remaining V1 repositories can be upgraded to V2 using sno upgrade EXISTING_REPO NEW_REPO, and the ability to upgrade from V1 to V2 continues to be supported indefinitely. #342
  • sno init now sets the head branch to main by default, instead of master. To override this, add --initial-branch=master
  • reset now behaves more like git reset - specifically, sno reset COMMIT stays on the same branch but sets the branch tip to be COMMIT. #60
  • import now accepts a --replace-ids argument for much faster importing of small changesets from large sources. #378

Other major changes

  • The working copy can now be a SQL Server database (previously only GPKG and PostGIS working copies were supported). The commands init, clone and create-workingcopy now all accept working copy paths in the form mssql://[HOST]/DBNAME/SCHEMA #362
  • Support for detecting features which have changed slightly during a re-import from a data source without a primary key, and reimporting them with the same primary key as last time so they show as edits as opposed to inserts. #212

Minor changes

  • Optimised GPKG working copies for better performance for large datasets.
  • Bugfix - fixed issues roundtripping certain type metadata in the PostGIS working copy: specifically geometry types with 3 or more dimensions (Z/M values) and numeric types with scale.
  • Bugfix - if a database schema already exists, Sno shouldn't try to create it, and it shouldn't matter if Sno lacks permission to do so #391
  • Internal dependency change - Sno no longer depends on apsw, instead it depends on SQLAlchemy.
  • init now accepts a --initial-branch option
  • clone now accepts a --filter option (advanced users only)
  • show -o json now includes the commit hash in the output
  • import from Postgres now uses a server-side cursor, which means sno uses less memory
  • Improved log formatting at higher verbosity levels
  • sno -vvv will log SQL queries to the console for debugging