Releases: antonplagemann/GoogleMonicaSync
Releases · antonplagemann/GoogleMonicaSync
v.5.0.1
Bugfix Release
Changes from v5.0.0:
Bugfixes:
- Fixed the issue of resetting/overwriting the gender of a Monica contact during sync. This bug occured when you have a gender type other than "Other" set (default) and then changed name or birthday at Google. Thx to @FlipperLP for the report in #62 😊
v5.0.0
Bugfix Release
Changes from v4.1.2:
Breaking changes:
- Fixed filtering google contacts by id instead of label name (thx to @PerfectSlayer for raising this bug).
Check your.env
file: You should use label names instead of ids for the variablesGOOGLE_LABELS_INCLUDE
andGOOGLE_LABELS_EXCLUDE
. If you are using ids (e.g.1c87d0118e225be5
) you need to update them to the corresponding label name. If you are not using those variables, theres no action needed.
Bugfixes:
- Fixed an issue where the google contact filtering by label has been ignored (thx to @PerfectSlayer for the fix!).
- Updated setup document.
- Improved error logging
- Added api retries to avoid temporary errors
v4.1.2
Bugfix Release
Changes from v4.1.1:
Bugfixes:
- Removed OAuth out-of-band (OOB) flow as it is deprecated and no longer available starting October 2022.
Thx @amalani for bringing this to my attention in #51 🙏 - Updated setup document
v4.1.1
Feature Release
Changes from v4.0.0:
New features:
- Added support for sending all log messages to a syslog server
Seeconf.example
on how to set the syslog target server or file.
Bugfixes:
- Fixed wrong "no token"-exception that made it impossible to complete the authorization flow to get a new Google token
- Updated readme to avoid Google token expiration after 7 days
v4.0.0
Feature Release
Changes from v3.2.0:
New features:
- Added full docker 🐳 support with automatic deployments
Breaking changes:
- Changed config from python file (
conf.py
) to.env
file (for update instructions see below)
Bugfixes:
- Fixed missing gender error #29
- Fixed an issue where a raw birthday format produced an exception instead of beeing skipped
- Fixed an issue where some contacts have been unintentionally skipped during delta sync
- Fixed an issue where a new Google token would not have a
refresh_token
for non-interactive token refresh - Fixed an issue where OAuth scopes have been parsed wrong during Google token refresh
- Fixed an issue where a deleted contact does not get removed from the database (=> failing database check)
- Fixed a rare issue where database check could fail
- Fixed and improved some logging issues
Background changes (no effects on functionality):
- Added instructions for setting up a GCP People API project
- Added fully automated tests of every command and environment using GitHub Actions
- Added SonarCloud SAST CI
- Added CodeQL SAST CI
- Added a new command-line switch for specifying config location path
- Introduced
black
codestyle - Introduced
flake8
linting - Introduced
bandit
security check - Introduced
mypy
type checking - Introduced
isort
import sorting - Reduced code complexity and duplication
- Introduced snake_case naming convention
- Added custom exceptions (better error handling)
- Changed initial Google authorization flow from
local_webserver
toconsole
(more robust) - Changed pickling format from
binary
tobase64
to be readable characters (file updates automatically on next script run)
Update instructions from v3.x.x:
- Automatic: Do a
pip install -r requirements.txt
, then runGMSync.py -u
once. This converts yourconf.py
into a.env
file and moves your credential files into the right subfolders. - Manual: Create a new
.env
file (use.env.example
as template). Then move yourcredentials.json
andtoken.pickle
files into a newdata
subfolder. Do apip install -r requirements.txt
afterwards.
v3.2.1
v3.2.0
Changes from v3.1.3:
- Added support for nickname syncing (Google → Monica)
- Optimized matching with existing contacts at initial sync (#23)
- Fixed usage of static gender ids, they are now dynamically fetched (#22)
- Optimized logging (#21)
- Updated note handling (convert newlines to
markdown
newlines) - Removed old code & updated error handling