added regex pattern matching to version in toml file

This commit is contained in:
mazzol_a 2025-04-25 10:48:16 +02:00
parent c3f1d05033
commit 2815913d10
4 changed files with 16 additions and 13 deletions

View File

@ -4,7 +4,7 @@ source:
{% set version = load_file_regex(load_file = 'VERSION', regex_pattern = '(\d+(?:\.\d+)*(?:[\+\w\.]+))').group(1) %} {% set version = load_file_regex(load_file = 'VERSION', regex_pattern = '(\d+(?:\.\d+)*(?:[\+\w\.]+))').group(1) %}
package: package:
name: sls_detector_software name: sls_detector_software
version: {{ version }} #2025.3.19 version: {{ version }}
build: build:
number: 0 number: 0

View File

@ -4,7 +4,7 @@ source:
{% set version = load_file_regex(load_file = 'VERSION', regex_pattern = '(\d+(?:\.\d+)*(?:[\+\w\.]+))').group(1) %} {% set version = load_file_regex(load_file = 'VERSION', regex_pattern = '(\d+(?:\.\d+)*(?:[\+\w\.]+))').group(1) %}
package: package:
name: slsdet name: slsdet
version: {{ version }} # version: {{ version }}
build: build:
number: 0 number: 0

View File

@ -1,10 +1,16 @@
[tool.scikit-build.metadata.version]
provider = "scikit_build_core.metadata.regex"
input = "VERSION"
regex = '^(?P<version>\d+(?:\.\d+)*(?:[\.\+\w]+)?)$'
result = "{version}"
[build-system] [build-system]
requires = [ "scikit-build-core>=0.10", "pybind11", "numpy",] requires = [ "scikit-build-core>=0.10", "pybind11", "numpy",]
build-backend = "scikit_build_core.build" build-backend = "scikit_build_core.build"
[project] [project]
name = "slsdet" name = "slsdet"
version = "0.0.0" dynamic = ["version"]
[tool.cibuildwheel] [tool.cibuildwheel]
before-all = "uname -a" before-all = "uname -a"

View File

@ -5,10 +5,13 @@ Script to update VERSION file with semantic versioning if provided as an argumen
""" """
import sys import sys
import re import os
import toml
from packaging.version import Version, InvalidVersion from packaging.version import Version, InvalidVersion
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
def get_version(): def get_version():
# Check at least one argument is passed # Check at least one argument is passed
@ -26,19 +29,13 @@ def get_version():
def write_version_to_file(version): def write_version_to_file(version):
with open("VERSION", "w") as version_file: version_file_path = os.path.join(SCRIPT_DIR, "VERSION")
with open(version_file_path, "w") as version_file:
version_file.write(str(version)) version_file.write(str(version))
print(f"Version {version} written to VERSION file.") print(f"Version {version} written to VERSION file.")
def update_pyproject_toml_file(version):
pyproject = toml.load("pyproject.toml")
pyproject["project"]["version"] = str(version)
toml.dump(pyproject, open("pyproject.toml", "w")) #write back
print(f"Version in pyproject.toml set to {version}")
# Main script # Main script
if __name__ == "__main__": if __name__ == "__main__":
version = get_version() version = get_version()
write_version_to_file(version) write_version_to_file(version)
update_pyproject_toml_file(version)