Skip to content

Commit

Permalink
Convert back to setuptools-scm
Browse files Browse the repository at this point in the history
  • Loading branch information
john-westcott-iv committed Jan 31, 2024
1 parent 9973419 commit 9e3c22f
Show file tree
Hide file tree
Showing 4 changed files with 35 additions and 29 deletions.
23 changes: 13 additions & 10 deletions ansible_base/__init__.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
try:
from ._version import version
except ImportError:
version = 'Unknown'
from ._version import __version__, __version_tuple__ # noqa: F401
except Exception:
import datetime
import subprocess
from typing import Tuple, Union

from typing import Tuple, Union
calver_now = datetime.datetime.now().strftime("%Y.%m.%d")
shaw = subprocess.check_output(['git', 'rev-parse', '--short', 'HEAD']).decode('ascii').strip()

VERSION_TUPLE = Tuple[Union[int, str], ...]
VERSION_TUPLE = Tuple[Union[int, str], ...]

__version__: str
__version_tuple__: VERSION_TUPLE
version_tuple: VERSION_TUPLE
__version__: str
__version_tuple__: VERSION_TUPLE
version_tuple: VERSION_TUPLE

__version__ = version
__version_tuple__ = version_tuple = tuple(version.split('.'))
__version__ = f'{calver_now}-{shaw}'
__version_tuple__ = version_tuple = tuple(__version__.split('.'))
6 changes: 0 additions & 6 deletions ansible_base/_version.py

This file was deleted.

8 changes: 3 additions & 5 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,6 @@ classifiers = [
]
dynamic = ["version", "dependencies", "optional-dependencies"]

[tool.setuptools]
include-package-data = false

[tool.setuptools.packages.find]
include = ["ansible_base*"]

Expand All @@ -51,14 +48,15 @@ optional-dependencies.rest_filters = { file = [ "requirements/requirements_rest_
optional-dependencies.channel_auth = { file = [ "requirements/requirements_channels.in" ] }
optional-dependencies.jwt_consumer = { file = [ "requirements/requirements_jwt_consumer.in" ] }
optional-dependencies.testing = { file = [ "requirements/requirements_testing.in" ] }
version = {attr = "ansible_base.__version__"}

[build-system]
requires = ["setuptools>=64"]
requires = ["setuptools>=64", "setuptools_scm>=8"]
build-backend = 'setuptools.build_meta'

[tool.setuptools_scm]
version_scheme = "calver-by-date"
version_file = 'ansible_base/_version.py'
local_scheme = 'no-local-version'

[tool.black]
line-length = 160
Expand Down
27 changes: 19 additions & 8 deletions tools/ansible/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,30 @@
tasks:
- name: Generate calver release number
set_fact:
release_number: "{{ ansible_date_time.year }}.{{ ansible_date_time.month }}.{{ ansible_date_time.day }}"
# setuptools-scm will strip leading 0's off the date format so we need to do that too
release_number: "{{ (ansible_date_time.date | to_datetime('%Y-%m-%d')).strftime('%Y.%m.%d') | regex_replace('\\.0', '.') }}"

- name: "Update version file with {{ release_number }}"
ansible.builtin.lineinfile:
create: True
line: "version = '{{ release_number }}'"
path: "../../ansible_base/_version.py"
regex: "^version = .*"
- name: Tag the repo
command:
cmd: "git tag -f {{ release_number }}"

- name: Get the build number from setuptools-scm
command:
cmd: python -m setuptools_scm
register: setuptools_command_version

- debug:
var: setuptools_command_version

- name: Make sure the selected release number and setuptools_scm agree
assert:
that:
release_number == setuptools_command_version.stdout
msg: "We expected the release number to be {{ release_number }} but setuptools-scm wanted it to be {{ setuptools_command_version.stdout }}"

- name: Build django-ansible-base
command:
cmd: make build
creates: 'dist/django-ansible-base-{{ release_number }}.tar.gz'
args:
chdir: '../../'
tags:
Expand Down

0 comments on commit 9e3c22f

Please sign in to comment.