ionelmc / python-tblib

Serialization library for Exceptions and Tracebacks.
BSD 2-Clause "Simplified" License
164 stars 33 forks source link

External vendoring #48

Open ionelmc opened 4 years ago

ionelmc commented 4 years ago

So I would like to discuss the vendoring in gevent and understand what needs to happen for this library to stop being vendored. I believe @jamadden can give some input, any suggestions or requirements are welcome.

jamadden commented 4 years ago

Aside from greenlet, on most platforms gevent doesn't have any required third-party dependencies, it vendors everything it needs (libev, libuv, c-ares, etc). It only has optional dependencies for non-core functions. I didn't want to add a third-party dependency for the critical function of getting tracebacks across greenlets.

gevent's a low-level library likely to be deployed in lots of different scenarios and having third-party dependencies can make it more difficult to deploy due to conflicts or even policies.

ionelmc commented 4 years ago

Yes but gevent already uses features that require recent packaging tooling (like env markers) - I doubt an external dep is really a problem. All I want to avoid is processes like https://github.com/ionelmc/python-tblib/issues/42 which make me wonder why I even bother making this a library instead of a blogpost/gist/stackoverflow answer. Because it's effectively that if everyone vendors it.

ionelmc commented 4 years ago

Also note that Victor's patch had a regression (https://github.com/ionelmc/python-tblib/commit/a96352760d20bedb881dd592fd342a732a36ec4b). Hassles can be avoided without vendoring.