Skip to content

Commit

Permalink
PR #456: Fix to version numbering so that it is in accordance with PE…
Browse files Browse the repository at this point in the history
…P 404

Please approve this CL. It will be submitted automatically, and its GitHub pull request will be marked as merged.

Imported from GitHub PR #456

Recently I tried installing this repo through pip, and it failed with the following message:

```
raise InvalidVersion(f"Invalid version: '{version}'")
pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: 'b4eb09b4a3d167557d999723f7c2ed0d53a1bb7d-'
```

After some googling, I found that this is by design:

* pypa/setuptools#2497
* pypa/setuptools#3772

Apparently, `Setuptools` only supports version numbering in accordance with [PEP 404](https://peps.python.org/pep-0440/) from version 66 onwards. So I created a fork of this repo, changing the version numbering scheme so that it can be installed through pip.

The idea is essentially the same as it is currently, with only some minor modifications. Currently, the version number is simply the hash of the most recent commit, so there isn't any pattern or sequence to be worried about. PEP 404 required the version number to be in base 10, so I changed the base 16 representation of the commit hash to base 10. By keeping the commit hash, the commit can still be retrieved through the version number. I also prepended the commit's timestamp, so that the more recent commits have higher version numbering.

Copybara import of the project:

  - db7542d Change version numbering to be in accordance with PEP 440... by Eduardo <eduardoscsouza@gmail.com>
  - 94860f6 Minor changes for clarity and add explanatory comments. by Eduardo <eduardoscsouza@gmail.com>
  - f0d9155 Merge 94860f6 into b4eb0... by Eduardo Santos Carlos de Souza <eduardoscsouza@gmail.com>

PiperOrigin-RevId: 532326489
  • Loading branch information
MarkDaoust authored and Copybara-Service committed May 16, 2023
1 parent eb5c721 commit b0b0e9d
Showing 1 changed file with 17 additions and 2 deletions.
19 changes: 17 additions & 2 deletions setup.py
Expand Up @@ -31,8 +31,23 @@
sys.argv.remove('--nightly')

project_name = 'tensorflow-examples'
# Get the current commit hash
version = subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('utf-8')
# Get the current commit hash and timestamp
# The timestamp is used so that newer commits have a higher version number
# The hash is used so that the specific commit can be identified
# The hash integer can be converted back to the hash string with:
# '%032x' % commit_hash_int
commit_hash_int = int(
subprocess.check_output(['git', 'rev-parse', 'HEAD'])
.decode('utf-8')
.strip(),
16,
)
commit_timestamp = (
subprocess.check_output(['git', 'show', '-s', '--format=%ct', 'HEAD'])
.decode('utf-8')
.strip()
)
version = f'0.{commit_timestamp}.{commit_hash_int}'

if nightly:
project_name = 'tensorflow-examples-nightly'
Expand Down

0 comments on commit b0b0e9d

Please sign in to comment.