Skip to content
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

Plans for future updates #232

Open
lavagetto opened this issue Mar 3, 2017 · 2 comments
Open

Plans for future updates #232

lavagetto opened this issue Mar 3, 2017 · 2 comments

Comments

@lavagetto
Copy link
Collaborator

lavagetto commented Mar 3, 2017

Hi all!

I thought I might spend 10 minutes to write down some ideas on how to evolve the library now.

Deprecation of old methods

We have quite a few methods that are a leftover of the first version of the client, and that are now nothing more than aliases for the base methods.

I would like to reduce the API surface and deprecate those methods for now, and remove them in a later version

V3 support

While I know there is a v3 python client that works decently, it has a couple of issues:

  • It doesn't have the fault tolerance that python-etcd has
  • Its API is very different from the one we have here. While I agree that not everything should be 1:1 with the current API, I personally find it very irritating to have to rewrite all of my code to transition to use etcd3.
  • python-etcd is a standard and it's already packaged in a few linux distros, it would be nice to have support for etcd v 3 for python in the distributions easily.
  • I am unsure if this should be a small compatibility layer on top of the existing library or a new implementation. I'm honestly thinking of the latter, as I already wrote a semi-complete client implementation some months ago and never found the time to finish it.

What do people think? Other things that would be useful?

@SamuelMarks
Copy link
Contributor

SamuelMarks commented Jun 18, 2017

It may be as simple as creating a v2 shim—always printing a deprecation message when it's is used—which could be rather trivial, something like:

def _all_get(key, **kwargs):
    return namedtuple('Val', 'value')(self.get(key)) if self.protocol == 3 else self.get(key)

@r0h4n
Copy link

r0h4n commented Aug 16, 2017

Do we have etcd API v3 support? Kinda confused looking at the comments

@virtualsafety
Copy link

Do we have etcd API v3 support?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants