3 ms·
I'm talking here about a developer API that is extremely flexible and extensible. Even one-liner contributions can have bad effects, and virtually all contribu
by zzzeek 9y ago
I'm talking here about a developer API that is extremely flexible and extensible. Even one-liner contributions can have bad effects, and virtually all contributions I receive "work" at a superficial level and if they provide tests the tests usually pass. "made it through testing" is a low bar, the bigger implications of a patch need to be considered.
Examples of PRs that "work" exactly as intended yet are the wrong way to solve the problem:
https://github.com/zzzeek/sqlalchemy/pull/381 https://github.com/zzzeek/sqlalchemy/pull/381
https://github.com/zzzeek/sqlalchemy/pull/382 https://github.com/zzzeek/sqlalchemy/pull/382
Here's a large PR:
https://github.com/zzzeek/sqlalchemy/pull/365 https://github.com/zzzeek/sqlalchemy/pull/365
that after lots and lots of back and forth I finally merged with lots of edits from me at: https://github.com/zzzeek/sqlalchemy/commit/7d3da6f850dca54b941275279470c37bec64a48f https://github.com/zzzeek/sqlalchemy/commit/7d3da6f850dca54b...
...aannnnndddd - after all that work and testing, it was wrong! Fortunately someone caught the mistake within the beta release:
https://bitbucket.org/zzzeek/sqlalchemy/issues/4072/mysqldmlinsertvalues-shadows-the https://bitbucket.org/zzzeek/sqlalchemy/issues/4072/mysqldml...
if I had released that fully and the whole world coded to "mysql.insert.values.bar == 5", that's broken API since it breaks the values() method. Backwards-incompatible fix required.