From a152c572a176150d4dad8aa645eba38c58175d5a Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 09:42:23 +0000 Subject: [PATCH 01/10] Bump version to 2.4.0 for release --- medcat-v2/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index b7bc6095d..e9674066e 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "medcat" -version = "2.2.0-dev" +version = "2.4.0" description = "Medical Concept Annotation Toolkit (v2)" From f588328d5bcdde196abf3a9508059bbb68471668 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 10:19:18 +0000 Subject: [PATCH 02/10] CU-869banbwt: Fix issues with installation from source by providing package directory --- medcat-v2/pyproject.toml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index b7bc6095d..0efc554c4 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -131,6 +131,12 @@ test = [] # TODO - list requires = ["setuptools>=43.0.0", "wheel"] build-backend = "setuptools.build_meta" +[tool.setuptools] +package-dir = { "medcat" = "medcat" } + +[tool.setuptools.packages.find] +include = ["medcat*"] + [tool.ruff.lint] # 1. Enable some extra checks for ruff select = ["E", "F"] From 87d1d4a8bd06b020ee2729aa916b854dc817910f Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 13:24:42 +0000 Subject: [PATCH 03/10] CU-869banbwt: On the way to fixing versioning --- medcat-v2/pyproject.toml | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index 0efc554c4..41a3f8d2a 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -1,7 +1,7 @@ [project] name = "medcat" -version = "2.2.0-dev" +dynamic = ["version"] description = "Medical Concept Annotation Toolkit (v2)" @@ -128,7 +128,7 @@ test = [] # TODO - list [build-system] # These are the assumed default build requirements from pip: # https://pip.pypa.io/en/stable/reference/pip/#pep-517-and-518-support -requires = ["setuptools>=43.0.0", "wheel"] +requires = ["setuptools>=43.0.0", "setuptools_scm>=8", "wheel"] build-backend = "setuptools.build_meta" [tool.setuptools] @@ -137,6 +137,16 @@ package-dir = { "medcat" = "medcat" } [tool.setuptools.packages.find] include = ["medcat*"] +[tool.setuptools_scm] +# look for .git folder in root of repo +root = ".." +version_scheme = "post-release" +# NOTE: tags are case sensitive +tag_regex = "^MedCAT/v(?P\\d+(?:\\.\\d+)*)(?:[ab]\\d+|rc\\d+)?$" +local_scheme = "node-and-date" +# to avoid tags that don't match (e.g from other projects in repo) +git_describe_command = "git describe --dirty --tags --long --match 'MedCAT/v*'" + [tool.ruff.lint] # 1. Enable some extra checks for ruff select = ["E", "F"] From 97b203ae058da77552dc0a4991181c449ecbaf39 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 13:26:33 +0000 Subject: [PATCH 04/10] CU-869banbwt: Fix tag regex --- medcat-v2/pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index 41a3f8d2a..ae5b470f4 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -142,10 +142,10 @@ include = ["medcat*"] root = ".." version_scheme = "post-release" # NOTE: tags are case sensitive -tag_regex = "^MedCAT/v(?P\\d+(?:\\.\\d+)*)(?:[ab]\\d+|rc\\d+)?$" +tag_regex = "^[Mm]ed[Cc][Aa][Tt]/v(?P\\d+(?:\\.\\d+)*)(?:[ab]\\d+|rc\\d+)?$" local_scheme = "node-and-date" # to avoid tags that don't match (e.g from other projects in repo) -git_describe_command = "git describe --dirty --tags --long --match 'MedCAT/v*'" +git_describe_command = "git describe --dirty --tags --long --match '[Mm]ed[Cc][Aa][Tt]/v*'" [tool.ruff.lint] # 1. Enable some extra checks for ruff From faafee227fe64a9ddd8349cc43751254cad65a3c Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 14:26:20 +0000 Subject: [PATCH 05/10] CU-869banbwt: Remove unncessary part of pyproject.toml (git describe overwrite) --- medcat-v2/pyproject.toml | 2 -- 1 file changed, 2 deletions(-) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index ae5b470f4..67085128b 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -144,8 +144,6 @@ version_scheme = "post-release" # NOTE: tags are case sensitive tag_regex = "^[Mm]ed[Cc][Aa][Tt]/v(?P\\d+(?:\\.\\d+)*)(?:[ab]\\d+|rc\\d+)?$" local_scheme = "node-and-date" -# to avoid tags that don't match (e.g from other projects in repo) -git_describe_command = "git describe --dirty --tags --long --match '[Mm]ed[Cc][Aa][Tt]/v*'" [tool.ruff.lint] # 1. Enable some extra checks for ruff From 5892e990e280b8a728b9f3032bfdbf27597bfecf Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 14:38:21 +0000 Subject: [PATCH 06/10] CU-869banbwt: Update release scripts - do not change version in commit --- medcat-v2/.release/prepare_minor_release.sh | 12 ------------ medcat-v2/.release/prepare_patch_release.sh | 14 -------------- 2 files changed, 26 deletions(-) diff --git a/medcat-v2/.release/prepare_minor_release.sh b/medcat-v2/.release/prepare_minor_release.sh index 415d9ac97..ee9299dfe 100644 --- a/medcat-v2/.release/prepare_minor_release.sh +++ b/medcat-v2/.release/prepare_minor_release.sh @@ -67,18 +67,6 @@ fi # NOTE: will overwrite release branch if --force is specified run_or_echo git checkout -B "$RELEASE_BRANCH" -# Update version in pyproject.toml -if [[ "$(uname)" == "Darwin" ]]; then - # macOS (BSD sed) - run_or_echo sed -i \'\' \'s/^version = \".*\"/version = \"\'$VERSION\'\"/\' pyproject.toml -else - # Linux (GNU sed) - run_or_echo sed -i \'s/^version = \".*\"/version = \"\'$VERSION\'\"/\' pyproject.toml -fi - -run_or_echo git add pyproject.toml -run_or_echo git commit -m \"Bump version to $VERSION for release\" - # Create and push tag run_or_echo git tag -a \"$VERSION_TAG\" -m \"Release v$VERSION\" run_or_echo git push origin \"$RELEASE_BRANCH\" diff --git a/medcat-v2/.release/prepare_patch_release.sh b/medcat-v2/.release/prepare_patch_release.sh index d4700235c..31aba83aa 100644 --- a/medcat-v2/.release/prepare_patch_release.sh +++ b/medcat-v2/.release/prepare_patch_release.sh @@ -169,20 +169,6 @@ for HASH in "${CHERRYPICK_HASHES[@]-}"; do fi done - -# Update version in pyproject.toml -if [[ "$(uname)" == "Darwin" ]]; then - # macOS (BSD sed) - run_or_echo sed -i \'\' \'s/^version = \".*\"/version = \"\'$VERSION\'\"/\' pyproject.toml -else - # Linux (GNU sed) - run_or_echo sed -i \'s/^version = \".*\"/version = \"\'$VERSION\'\"/\' pyproject.toml -fi - -# add and commit changes -run_or_echo git add pyproject.toml -run_or_echo git commit -m \"Bump version to $VERSION\" --allow-empty - # now do the tagging # NOTE: can force since without the `--force` flag we would have checked # for existing tag From 77887e11c173b8afdcd2e217835bf2a70f731d28 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 14:54:53 +0000 Subject: [PATCH 07/10] CU-869banbwt: Simplify tag regex --- medcat-v2/pyproject.toml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index 67085128b..cc2abd2b7 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -141,8 +141,7 @@ include = ["medcat*"] # look for .git folder in root of repo root = ".." version_scheme = "post-release" -# NOTE: tags are case sensitive -tag_regex = "^[Mm]ed[Cc][Aa][Tt]/v(?P\\d+(?:\\.\\d+)*)(?:[ab]\\d+|rc\\d+)?$" +tag_regex = "^medcat/v(?P\\d+(?:\\.\\d+)*)(?:[ab]\\d+|rc\\d+)?$" local_scheme = "node-and-date" [tool.ruff.lint] From d4c7249932dc441bf1690d9dbf76eca18752134e Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 14:56:35 +0000 Subject: [PATCH 08/10] CU-869banbwt: Make dev status stable / production --- medcat-v2/pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-v2/pyproject.toml b/medcat-v2/pyproject.toml index cc2abd2b7..2488f6ade 100644 --- a/medcat-v2/pyproject.toml +++ b/medcat-v2/pyproject.toml @@ -33,7 +33,7 @@ classifiers = [ # 3 - Alpha # 4 - Beta # 5 - Production/Stable - "Development Status :: 4 - Beta", + "Development Status :: 5 - Production/Stable", "Intended Audience :: Healthcare Industry", # "Topic :: Natural Language Processing :: Named Entity Recognition and Linking", From cc5c2432c7d7083dda997298883a62f5e2953144 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 15:48:52 +0000 Subject: [PATCH 09/10] CU-869banbwt: Fix version issue for demo app during integration tests --- medcat-demo-app/webapp/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/medcat-demo-app/webapp/Dockerfile b/medcat-demo-app/webapp/Dockerfile index 4ce1c9ecf..4c0d581d4 100644 --- a/medcat-demo-app/webapp/Dockerfile +++ b/medcat-demo-app/webapp/Dockerfile @@ -30,7 +30,7 @@ RUN pip install -U pip && if [ "$USE_CPU_TORCH" = "true" ]; then \ ARG REINSTALL_CORE_FROM_LOCAL=false RUN if [ "$REINSTALL_CORE_FROM_LOCAL" = "true" ]; then \ echo "Reinstalling medcat based on relative path"; \ - pip install -e "/webapp/medcat-v2[meta-cat,spacy]"; \ + SETUPTOOLS_SCM_PRETEND_VERSION="2.4.0-dev0" pip install -e "/webapp/medcat-v2[meta-cat,spacy]"; \ fi # Get the spacy model (for later copy) From 360915c02876625a63110e23d1e9fe1fafc47bd0 Mon Sep 17 00:00:00 2001 From: mart-r Date: Fri, 28 Nov 2025 15:49:16 +0000 Subject: [PATCH 10/10] CU-869banbwt: Fix version issue during service integration tests --- medcat-service/Dockerfile | 2 +- medcat-service/Dockerfile_gpu | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/medcat-service/Dockerfile b/medcat-service/Dockerfile index 0c1ca1796..cf6eb8fe9 100644 --- a/medcat-service/Dockerfile +++ b/medcat-service/Dockerfile @@ -29,7 +29,7 @@ COPY . /cat ARG REINSTALL_CORE_FROM_LOCAL=false RUN if [ "$REINSTALL_CORE_FROM_LOCAL" = "true" ]; then \ echo "Reinstalling medcat based on relative path"; \ - pip install -e "./medcat-v2[meta-cat,spacy]"; \ + SETUPTOOLS_SCM_PRETEND_VERSION="2.4.0-dev0" pip install -e "./medcat-v2[meta-cat,spacy]"; \ fi # Now run the simple api diff --git a/medcat-service/Dockerfile_gpu b/medcat-service/Dockerfile_gpu index 5f756bf2b..2086e64f5 100644 --- a/medcat-service/Dockerfile_gpu +++ b/medcat-service/Dockerfile_gpu @@ -50,7 +50,7 @@ COPY . /cat ARG REINSTALL_CORE_FROM_LOCAL=false RUN if [ "$REINSTALL_CORE_FROM_LOCAL" = "true" ]; then \ echo "Reinstalling medcat based on relative path"; \ - pip install -e "./medcat-v2[meta-cat,spacy]"; \ + SETUPTOOLS_SCM_PRETEND_VERSION="2.4.0-dev0" pip install -e "./medcat-v2[meta-cat,spacy]"; \ fi # Now run the simple api