- Added
list-files
CLI command for list of project files (#199 by @kaloyan13) - Upgrade pygeodiff to 2.0.4 (#217)
- Do not use paginated endpoint for project version detail (#216)
- Improve client error handling (#209)
- Update rules when pushing with editor permission level (#208)
- Support for "editor" permission level for server >= 2024.4.0. Editors have more limited functionality than "writer" permission: they are not allowed to modify the QGIS project file or change structure of tables (#202, #207)
- Better handling of unexpected errors during the initial download of a project (#201)
- Fixes to CI (#205)
- Add
reset_local_changes()
API call andreset
CLI command to make it possible to discard any changes in the local project directory (#107) - Add
rename_project()
API call andrename
CLI command to rename a project in its workspace (#190) - Add
delete_project_now()
API call for immediate project removal (mainly meant for testing) - Project info can be also queried by project's ID in
MerginClient.project_info()
(#179) - Improve project metadata handling
- Add metadata getters in
MerginProject
class:project_full_name()
,project_name()
,workspace_name()
,project_id()
,workspace_id()
,files()
- Add metadata setters in
MerginProject
class:update_metadata()
,write_metadata()
(should not be needed by module users) - Deprecate
MerginProject.metadata
property, replaced by the methods above - Store all information from server's project info to
.mergin/mergin.json
instead of just some bits. Keep backwards compatibility to readmergin.json
if it uses old-style syntax, new pulls/pushes will write new-style syntax (#83, #151)
- Add metadata getters in
- Fix awkward way of passing full project names to
create_project()
,create_project_and_push()
,clone_project()
and in CLI forcreate
command (#180) - Fix CLI for
list-projects
command (#172) - Write unhandled Python errors from download/pull/push to the client log (#156)
- Keep client log if download of a project fails for some reason (#155)
- Clean up temporary files in .mergin folder (#47)
- Improved hint how to set MERGIN_AUTH on Windows (#170)
- Better error reporting of HTTP errors (#174)
- Updated to pygeodiff 2.0.2
- Use new endpoint to retrieve detailed information about project version (#167)
- Added workspace API to list available workspaces, creating a new workspace and listing projects (#150, #152, #158)
- Removed check for available storage when syncing to personal namespace (#159)
- Added storing project IDs to project metadata files (#154)
- Added set_tables_to_skip() to optionally configure which tables to ignore in geodiff
- Updated to pygeodiff 2.0.1
- New default public server URL (#136)
- Fix issues with files and changesets downloading (#140)
- Fix handling of conflict files (MerginMaps/qgis-plugin#382)
- CLI: Fix mergin-py-client list project (#133)
- CLI: Fix individual file download (#140)
- Reporting can be run without end version specified (MerginMaps/qgis-plugin#365)
- Fixed reporting when some tables were missing (MerginMaps/qgis-plugin#362)
- Added has_writing_permissions() API call
- Added support for reporting of changes based on project history
- Fixed sync issues on Windows when schema changes (#117)
- Better naming of conflict files (#62)
- Unhandled exceptions during pull get written to the client log (#103)
- Fixed download of earlier version of GeoPackage files (#119)
- Add user_service() API call (#113)
- Updated to pygeodiff 1.0.5
- CLI: add, remove and list user permissions in a project (#98, #110)
- Update to pygeodiff 1.0.4
- Allow any namespace in create_project_and_push() (#104)
- CLI: create project & push data using --from-dir (#105)
- Update to pygeodiff 1.0.3
- Update to pygeodiff 1.0.2
- Fixed python error when pushing changes
- Added APIs to download individual files at any version (download_file()) and diffs (get_file_diff()) (#93)
- Robustness fixes (#30, #53, #96)
- Always require geodiff to be available (#92, #63)
- Moved to pygeodiff 1.0.0 - adding various new APIs
- CLI: simplified authentication, with multiple options now (#76)
- user can pass MERGIN_USERNAME and MERGIN_PASSWORD env variables to commands
- user can pass --username (and optionally --password) command line arguments to commands
- user can still use "mergin login" command to first get auth token and set MERGIN_AUTH_TOKEN or pass --auth-token command line argument
- CLI: it is possible to create a project in a different namespace (#81)
- Fixed removal of projects in CLI (#82)
- Fixed possible error when removing project on Windows (#57)
- Fixed issue when a file was deleted both locally and on the server (qgis-mergin-plugin#232)
- Added optional global log (in addition to per-project logs)
- Improved handling of auth token problems
- Better error reporting
- Update to geodiff 0.8.8 (fixed issues with unicode paths, better error reporting)
- Added API (paginated_projects_list()) for paginated listing of projects (#77)
- Fixed sync error that have happened when moving to version >= 10 (#79, fixes MerginMaps/qgis-plugin#219)
- Added more details to diagnostic logs to help finding errors
- Added API to download older version of a project (#74)
- Added API to query project details of an older version of a project
- Added API (get_projects_by_names()) to request project info for specified projects
- Fixed quota check when uploading to organisations (#70)
- Added API to manage collaborators in a project
- Added API for cloning of projects
- Projects can be created on behalf of an organisation
- Update to geodiff 0.8.6 (fixes non-ascii paths, quotes in paths, rebase with gpkg triggers)
- Fix "transferred size and expected total size do not match" (qgis-mergin-plugin#142)
- Disable upload of renames of files to prevent corrupt projects (#27)
- Fix download/pull of subdirs with just empty file(s) (qgis-mergin-plugin#160)
- Add version info to user agent + log versions in log file (qgis-mergin-plugin#150)
- Raise exception when username is passed but no password
- Automatic running of tests in continuous integration on GitHub (#64)
- Release fix
- Update to geodiff 0.8.5 (leaking file handles in hasChanges() call)
- Better error reporting for CLI, detect expired access token
- Project push: fail early if user does not have write permissions
- Support more endpoints with project info + CLI integration
- Raise ClientError when request fails when trying to log in
- Update to geodiff 0.8.4 (fixes a rebase bug, adds logging, supports conflict files)
- More detailed logging
- Better handling of exceptions
- CLI improvements and fixes
- Fixed sync error with missing basefile
- Changed version because the module is going to have also independent releases from QGIS plugin (they had synchronized version numbers until now)
- Fixed load error if pip is not available (#133)
- Asynchronous push/pull/download (#44)
- Basic logging of sync oprations to .mergin/client-log.txt
- Modified create_project() API - does not do project upload anymore
- Second fix of the issue with sync (#119)
- Fixed an issue with synchronization (#119)
- Added checkpointing for GeoPackages (#93)
- More details in exceptions (#106)
- Fix SSL issues on macOS (#70)
- Handling of expired token (#108)
- Fix issue with checksums
- Check for enough free space (#25)
- Added user agent in requests (#31)
- Fix problems with empty files
- show list of local changes
- Support for geodiff
- Added server compatibility checks (#1)
- Added tests (#16)
- Improved push/pull speed using parallel requests
- Added possibility to create blank mergin project
- Added filters for listing projects (owner, shared, query)
- Changed Basic auth to Bearer token-based auth
- Improved CLI: added login, credentials in env variables, delete project
- Download/upload files with multiple sequential requests (chunked transfer)
- Fixed push with no changes
- Blacklisting various temp files from sync
Initial release containing following actions for project:
- list
- create (from local dir)
- download
- sync
with basic CLI icluded.