-
Notifications
You must be signed in to change notification settings - Fork 168
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
index backends by id, not by name #931
base: master
Are you sure you want to change the base?
index backends by id, not by name #931
Conversation
@cpitclaudel hey, thanks! We're in the middle of a big port ATM and I'm focusing all the time I can find in that. Once #894 is ready to land, I'll review this and merge. Luckly it looks like this branch won't generate any conflicts, though we'll have to port the change in datastore over to the new datastore. |
Looking forward to that :) Good luck with the port! |
@@ -180,10 +180,14 @@ def save(self): | |||
self._save_function() | |||
|
|||
|
|||
class CoreConfig(): | |||
class CoreConfig_(): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why the underscore here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For backwards compatibility: CoreConfig
is redefined below:
def CoreConfig():
return CoreConfig_.get_instance()
It is time now! Monsieur @cpitclaudel, rebasez donc cette branche, et lâchez les chiens! See also the updated general status and convenient links in #737. |
This will also be relevant to @jaesivsm's interests. |
This prevents the configuration from being read and modified in two different places (`CoreConfig` objects are created in `datastore.py`, `treefactory.py`, and `backends/__init__.py`). * GTG/core/config.py (CoreConfig_): Rename from `CoreConfig`. (CoreConfig_.INSTANCE): New field (use it to store the unique config instance). (CoreConfig_.__init__): Make sure that we are only ever initialized once. (CoreConfig_.get_instance): New method. (CoreConfig): New function to initialize and return the singleton config object.
This allows GTG to have multiple backends of one kind at the same time. * GTG/backends/__init__.py (BackendFactory.get_saved_backends_list): Rename `backend` to `backend_id` for clarity. Call `config.rename_backend_section` on each backend for compatibility with previous versions of GTG. * GTG/core/config.py (CoreConfig_.rename_backend_section): New function to rename a config section (from backend name to backend ID). (CoreConfig_.get_all_backends): Rename `backend` to `backend_id` for clarity. Fixes getting-things-gnome#930.
cb090d5
to
f56a620
Compare
Congrats on the big merge! :) I rebased this, but I'll need help to test:
After a quick glance through the code, I'm also not entirely certain of what a backend module refers to, so the change may not be right in the new architecture? |
Hi @cpitclaudel, sorry for the delay. At first glance, this sounds like a good idea. The problem is that the only backend module we have now is caldav, since the "local" backend is now integrated into the datastore. And the Caldav backend has a fair share of bugs too from the refactor. On top of that, there are some potential problems with having more than caldav backend like race conditions when synchronizing that need careful work and testing. Since we are trying to finish 0.7 at this moment, I'll remove the milestone for this and leave it open for later |
Sure thing, good luck with the 0.7 release! I look forward to using GTG when CalDAV is back :) |
This allows GTG to have multiple backends of one kind at the same time.
backend
tobackend_id
for clarity. Callconfig.rename_backend_section
oneach backend for compatibility with previous versions of GTG.
rename a config section (from backend name to backend ID).
(CoreConfig_.get_all_backends): Rename
backend
tobackend_id
for clarity.not by backend name.
Fixes #930.