Neoteroi / BlackSheep

Fast ASGI web framework for Python
https://www.neoteroi.dev/blacksheep/
MIT License
1.8k stars 75 forks source link

Does BlackSheep adhere to Semantic Versioning? #481

Closed netanel-haber closed 4 months ago

netanel-haber commented 4 months ago

Discussed in https://github.com/Neoteroi/BlackSheep/discussions/478

Originally posted by **netanel-haber** February 5, 2024 I recently unpinned BlackSheep from `==2.0.4` to `~=2.0.4`, and `2.0.6` was installed, which includes the default signal handler registry. This broke my testing flow, where I start blacksheep servers in a `Thread` (maybe a bad idea, but that's another discussion I guess): > [Besides, only the main thread of the main interpreter is allowed to set a new signal handler.](https://docs.python.org/3/library/signal.html#signals-and-threads) I was wondering what versioning scheme BlackSheep adheres to? I couldn't find any mention in the docs. I think the additions in `2.0.6` should at least be considered features by the standard of semver. Thanks!
RobertoPrevato commented 4 months ago

Hi @netanel-haber I do my best to not introduce breaking changes, but sometimes breaking changes are introduced unintentionally and this happens in every project, not only mine.

I don´t like your use of the word "purport" in this context. I put a lot of effort maintaining two branches for v1 and v2 in the past months, to support Python from 3.8 to 3.12 and Pydantic v1 and v2.

netanel-haber commented 4 months ago

Hey, truly no offense meant at all - with the word purport or otherwise (I edited out the word either way). It was a genuine question since many libraries don't adhere to semver as a principal, which is a legitimate decision. I'm glad to hear that it was unintentional, though.

I'll just finish by saying I appreciate your dedication and hard work and have already simplified my code by merging features that I requested and you developed swiftly and professionally (2.0.4), which I'm grateful for.

RobertoPrevato commented 4 months ago

Thank You for your kind words, and sorry if I misunderstood. :) In summary yes, I try to adhere to semantic versioning, and to avoid breaking changes with patch or minor versions.