huggingface / huggingface/lighteval

To remember for version upgrades

Open
#97 0 comments 0 reactions 0 assignees View on GitHub
to-keep
Dominant language
Python
Stars
2.5k
Forks
555
Avg merge
1d 6h
Merged PRs (30d)
1

Description

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:

1. We release version `v4.38.0`
2. The next version we'll release, if everything goes well, is going to be `v4.39.0`
3. 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:

1. We release version `v0.21.0`
2. The next version we'll release, if everything goes well, is going to be `v0.22.0`
3. 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.

_Originally posted by @LysandreJik in https://github.com/huggingface/lighteval/pull/77#discussion_r1514537715_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.