You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Theoretically everything up to 1.0.0 is considered unstable and prone to change at any time:
Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable.
At Hugging Face, we try and apply the rule that while we have major version zero, minor releases (0.x.0) may add new features and break things (the equivalent of a major release), while patch releases (0.0.x) behave very closely to patches as understood by semantic versioning:
Patch version Z (x.y.Z | x > 0) MUST be incremented if only backward compatible bug fixes are introduced. A bug fix is defined as an internal change that fixes incorrect behavior.
Now for development versions, this is a bit out of the control of semantic versioning IMO but the way that we do it in transformers/diffusers/huggingface_hub is to update the version defined in the init to the "development of the next version".
What that means is that:
For transformers, where there are no plans to go to v5 for now, we would do as such:
We release version v4.38.0
The next version we'll release, if everything goes well, is going to be v4.39.0
We put v4.39.0.dev0 as we're developing that next version.
We're not putting v4.38.1.dev0 as that would mean "we're preparing for the upcoming patch; patch which may or may not happen, and that should only contain bugfixes and no new features.
For huggingface_hub, there are no plan to go to v1 for now, so:
We release version v0.21.0
The next version we'll release, if everything goes well, is going to be v0.22.0
We put v0.22.0.dev0 as we're developing that next version.
If, however, we were planning on releasing a v1 for huggingface_hub, we might instead put v1.0.0.dev0. We won't want to put v0.21.1.dev0 at any point however.
Finally, we only put .dev0 right now (and no .dev1, .dev2, etc), but we could eventually add them with patches as separators. So we'd go:
v4.38.0 Released
v4.39.0.dev0 in the init
v4.38.1 Released
v4.39.0.dev1 in the init
Here what's most important is that you stick to it, imo.
Theoretically everything up to 1.0.0 is considered unstable and prone to change at any time:
At Hugging Face, we try and apply the rule that while we have major version zero, minor releases (
0.x.0
) may add new features and break things (the equivalent of a major release), while patch releases (0.0.x
) behave very closely to patches as understood by semantic versioning:Now for development versions, this is a bit out of the control of semantic versioning IMO but the way that we do it in
transformers
/diffusers
/huggingface_hub
is to update the version defined in the init to the "development of the next version".What that means is that:
For
transformers
, where there are no plans to go to v5 for now, we would do as such:v4.38.0
v4.39.0
v4.39.0.dev0
as we're developing that next version.We're not putting
v4.38.1.dev0
as that would mean "we're preparing for the upcoming patch; patch which may or may not happen, and that should only contain bugfixes and no new features.For
huggingface_hub
, there are no plan to go to v1 for now, so:v0.21.0
v0.22.0
v0.22.0.dev0
as we're developing that next version.If, however, we were planning on releasing a v1 for
huggingface_hub
, we might instead putv1.0.0.dev0
. We won't want to putv0.21.1.dev0
at any point however.Finally, we only put
.dev0
right now (and no.dev1
,.dev2
, etc), but we could eventually add them with patches as separators. So we'd go:v4.38.0
Releasedv4.39.0.dev0
in the initv4.38.1
Releasedv4.39.0.dev1
in the initHere what's most important is that you stick to it, imo.
Originally posted by @LysandreJik in #77 (comment)
The text was updated successfully, but these errors were encountered: