ansible / ansible/pylibssh

[DESIGN] Improve DX/UX of the public APIs

Open
#91 1 comment 0 reactions 3 assignees Claimed by @Qalthos View on GitHub
bug documentation enhancement help wanted
Dominant language
Cython
Stars
79
Forks
47
Avg merge
1d 11h
Merged PRs (30d)
6

Description

* [ ] Define the public APIs
* [ ] Separate internal APIs

Thoughts 💭
==========

1. It's not clear what are the usage scenarios of the lib (API-wise).
2. It is too low-level (mostly).
3. Most of the exposed classes implement managing resources and require calls to open/connect and close/disconnect. The idiomatic way of working with them is to implement context manager interfaces that guarantee that the managed resources are closed once unneeded, no matter what.
4. The usage sequence seems to require passing extra initialization params to the connect method. This is an antipattern: objects must be ready to use right away after the initialization. So things like credentials should be passed to init, not connect.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.