-
Notifications
You must be signed in to change notification settings - Fork 315
Description
In order to fix #164, I though we could reach feature parity with https://github.com/adubkov/py-zabbix and unify the work effort into a single project. This would have allowed us to fix this namespace issue.
@szuro reached out and proposed to merge his own projects instead of https://github.com/adubkov/py-zabbix. See discussion at #194 (comment)
The plan would be to merge https://github.com/szuro/zabbix-enums and https://gitlab.com/szuro/zappix into this project.
I don't have much time to put into merging all the projects, but I can do some work once we planned everything.
Before all, we should agree on the development process:
- Do we agree to follow conventional commits spec ?
- Should we follow semantic versioning ? Maybe that's obvious, but we should be sure we all use the same versioning schema.
- How should we document the libraries ? I am in favor of picking a docstring format (maybe ?) and generate the documentation from the docstrings.
Merge zabbix enums in the api namespace
I think we can start by merging the enum library in the project, as the changes does not seem to require much thinking apart from naming.
I wonder if we want to keep the enums namespace, or have a more generic namespace such as types or typing ?
We could have the following structure:
from pyzabbix import ZabbixAPI
# or
from pyzabbix.api import ZabbixAPI
# And for types
from pyzabbix.api.types.z60 import SomeEnum
from pyzabbix.api.typing.z60 import SomeEnum@szuro Are there any breaking changes you intend to do will the enums library is merged ?
Is this library automatically generated ? Is there a way to generate it ?
Merge zappix in the pyzabbix namespace
First, apart from fixing #164, what does this merge bring/fix ? Is there any way we could fix this without having to merge the projects ? I prefer to ask, so we don't dive into a whole lot of work without a well defined goal.
Maybe both libraries should stay separated but each can be maintained under the same umbrella, advertising/linking to the other project for missing features.
That being said, we might bloat the project with dependencies while some people might only want to use the API client. So I was thinking, maybe we want to hide the added features behind a extra flag such as pyzabbix[sender] ?
Regarding the proposed namespace in #194 (comment)
wrapping everything in a network namespace seem overkill, maybe we simply want to have pyzabbix.sender and pyzabbix.agent (I am probably missing some packages ?) We can always have a shared private namespace for network related code in pyzabbix._network for shared protocols/socket/...
How could we split the merge into smaller parts ? Can the agent and sender be merged independently ?
I probably missed a few points.
cc @szuro