From 550c3e5cce330ed29df172cdc58f2bfdf6aa8c25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 00:34:35 -0400 Subject: [PATCH 1/9] publish to dedicated Artifacrory repo --- .github/workflows/python_deploy_dev.yml | 6 +++--- .github/workflows/python_deploy_prod.yml | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/python_deploy_dev.yml b/.github/workflows/python_deploy_dev.yml index 7790acda7..969b8a09a 100644 --- a/.github/workflows/python_deploy_dev.yml +++ b/.github/workflows/python_deploy_dev.yml @@ -23,9 +23,9 @@ jobs: package-name: gempy python-version: '3.12' recipe-path: conda.recipe/recipe.yaml - source-repo-names: '["public-noremote-conda-dev"]' + source-repo-names: '["gempy-noremote-conda-dev"]' conda-channels: '["conda-forge"]' - publish-repo-names: '["public-noremote-conda-dev"]' + publish-repo-names: '["gempy-noremote-conda-dev"]' build-experimental: true secrets: JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }} @@ -42,7 +42,7 @@ jobs: package-name: gempy version-tag: ${{ github.ref_name }} python-version: '3.12' - virtual-repo-names: '["public-pypi-dev"]' + virtual-repo-names: '["gempy-pypi-dev"]' secrets: JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }} JFROG_ARTIFACTORY_TOKEN: ${{ secrets.JFROG_ARTIFACTORY_TOKEN }} diff --git a/.github/workflows/python_deploy_prod.yml b/.github/workflows/python_deploy_prod.yml index 20da53fbd..938e5ae7c 100644 --- a/.github/workflows/python_deploy_prod.yml +++ b/.github/workflows/python_deploy_prod.yml @@ -36,7 +36,7 @@ jobs: id-token: write contents: write with: - virtual-repo-names: '["public-noremote-conda-prod"]' + virtual-repo-names: '["gempy-noremote-conda-prod"]' release-tag: ${{ github.event.release.tag_name || github.event.inputs.release-tag }} secrets: JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }} @@ -52,7 +52,7 @@ jobs: contents: write with: package-name: 'gempy' - virtual-repo-names: '["public-pypi-prod"]' + virtual-repo-names: '["gempy-pypi-prod"]' release-tag: ${{ github.event.release.tag_name || github.event.inputs.release-tag }} secrets: JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }} From 359aa59943cc65780b34e3c2a2acf2e180ab41a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 00:35:06 -0400 Subject: [PATCH 2/9] update version of gempy-engine in recipe --- conda.recipe/recipe.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conda.recipe/recipe.yaml b/conda.recipe/recipe.yaml index 4a1bba5ee..7eb5aa532 100644 --- a/conda.recipe/recipe.yaml +++ b/conda.recipe/recipe.yaml @@ -31,7 +31,7 @@ requirements: - setuptools-scm run: - python >=${{ python_min }} - - gempy-engine >=2025.3.0dev0,<2025.4.0 + - gempy-engine >=2026.0.2dev0,<2026.1 - typing_extensions tests: From a0818ded12e0b96222851e2da0ef970bd50f9f42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 00:36:52 -0400 Subject: [PATCH 3/9] CI-tools @v3 --- .github/workflows/python_deploy_dev.yml | 4 ++-- .github/workflows/python_deploy_prod.yml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/python_deploy_dev.yml b/.github/workflows/python_deploy_dev.yml index 969b8a09a..de63a4687 100644 --- a/.github/workflows/python_deploy_dev.yml +++ b/.github/workflows/python_deploy_dev.yml @@ -15,7 +15,7 @@ jobs: call-workflow-conda-publish: name: Publish development conda package on JFrog Artifactory if: github.repository == 'MiraGeoscience/gempy' - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_rattler_package.yml@v3.6.0-alpha.1 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_rattler_package.yml@v3 permissions: id-token: write contents: write @@ -33,7 +33,7 @@ jobs: call-workflow-pypi-publish: name: Publish development pypi package (JFrog Artifactory) if: github.repository == 'MiraGeoscience/gempy' - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@v3.6.0-alpha.1 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@v3 permissions: id-token: write contents: write diff --git a/.github/workflows/python_deploy_prod.yml b/.github/workflows/python_deploy_prod.yml index 938e5ae7c..7549215c2 100644 --- a/.github/workflows/python_deploy_prod.yml +++ b/.github/workflows/python_deploy_prod.yml @@ -31,7 +31,7 @@ jobs: if: | github.repository == 'MiraGeoscience/gempy' && (github.event_name == 'release' || github.event.inputs.publish-conda == 'true') - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-release_conda_assets.yml@v3.6.0-alpha.1 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-release_conda_assets.yml@v3 permissions: id-token: write contents: write @@ -46,7 +46,7 @@ jobs: if: | github.repository == 'MiraGeoscience/gempy' && (github.event_name == 'release' || github.event.inputs.publish-pypi == 'true') - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-release_pypi_assets.yml@v3.6.0-alpha.1 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-release_pypi_assets.yml@v3 permissions: id-token: write contents: write From 4380b690d706e7f7a64ba153f7d1f13c6298e8ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 00:38:10 -0400 Subject: [PATCH 4/9] add more github workflows --- .github/workflows/issue_to_jira.yml | 22 ++++++++++++++ .github/workflows/pr_jira_actions.yml | 19 ++++++++++++ .github/workflows/security_scan.yml | 43 +++++++++++++++++++++++++++ 3 files changed, 84 insertions(+) create mode 100644 .github/workflows/issue_to_jira.yml create mode 100644 .github/workflows/pr_jira_actions.yml create mode 100644 .github/workflows/security_scan.yml diff --git a/.github/workflows/issue_to_jira.yml b/.github/workflows/issue_to_jira.yml new file mode 100644 index 000000000..64350558a --- /dev/null +++ b/.github/workflows/issue_to_jira.yml @@ -0,0 +1,22 @@ +name: Create JIRA issue + +on: + issues: + types: [opened] + +permissions: {} + +jobs: + call-workflow-create-jira-issue: + if: startsWith(github.repository, 'MiraGeoscience/') # run on the Mira repo only + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-jira-issue_to_jira.yml@v3 + permissions: + contents: read + issues: write + with: + project-key: 'GEOPY' + components: '[{"name": "gempy"}]' + secrets: + JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} + JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} + JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} diff --git a/.github/workflows/pr_jira_actions.yml b/.github/workflows/pr_jira_actions.yml new file mode 100644 index 000000000..65299b541 --- /dev/null +++ b/.github/workflows/pr_jira_actions.yml @@ -0,0 +1,19 @@ +name: JIRA actions + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review, edited] + +jobs: + call-workflow-pr_jira_actions: + if: | # run on the Mira repo only + startsWith(github.repository, 'MiraGeoscience/') && + (github.event.action != 'edited' || github.event.changes.title != null) + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-jira-pr_actions.yml@v3 + permissions: + contents: read + pull-requests: write + secrets: + JIRA_API_TOKEN: ${{ secrets.JIRA_API_TOKEN }} + JIRA_USER_EMAIL: ${{ secrets.JIRA_USER_EMAIL }} + JIRA_BASE_URL: ${{ secrets.JIRA_BASE_URL }} diff --git a/.github/workflows/security_scan.yml b/.github/workflows/security_scan.yml new file mode 100644 index 000000000..49675b3f5 --- /dev/null +++ b/.github/workflows/security_scan.yml @@ -0,0 +1,43 @@ +name: Security Scan + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + branches: + - develop + - main + - release/** + - feature/** + - hotfix/** + push: + branches: + - develop + - main + - release/** + - feature/** + - hotfix/** + +permissions: {} + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +jobs: + call-workflow-zizmor-annotate: + name: Zizmor analysis (advanced security) + if: github.event_name != 'pull_request' + permissions: + security-events: write + contents: read + actions: read + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-zizmor-advanced-security.yml@v3 + + call-workflow-zizmor-advanced-security: + name: Zizmor analysis (annotate) + if: github.event_name == 'pull_request' + permissions: + checks: write + contents: read + actions: read + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-zizmor-annotate.yml@v3 From 9cbfe43391468f8ec0a0bfaafe4b60f1d64e4a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 07:58:15 -0400 Subject: [PATCH 5/9] exclude auto-generated version files --- .gitignore | 5 ++++- gempy/_version.py | 16 ---------------- 2 files changed, 4 insertions(+), 17 deletions(-) delete mode 100644 gempy/_version.py diff --git a/.gitignore b/.gitignore index 79b97fefa..0a4025718 100644 --- a/.gitignore +++ b/.gitignore @@ -184,4 +184,7 @@ examples/tutorials/z_other_tutorials/json_io/combination_model_computed.json /test/temp/ test/test_modules/run_test.py -.junie \ No newline at end of file +.junie + +/gempy_engine/_version.py +/_version.txt \ No newline at end of file diff --git a/gempy/_version.py b/gempy/_version.py deleted file mode 100644 index 86c00f251..000000000 --- a/gempy/_version.py +++ /dev/null @@ -1,16 +0,0 @@ -# file generated by setuptools_scm -# don't change, don't track in version control -TYPE_CHECKING = False -if TYPE_CHECKING: - from typing import Tuple, Union - VERSION_TUPLE = Tuple[Union[int, str], ...] -else: - VERSION_TUPLE = object - -version: str -__version__: str -__version_tuple__: VERSION_TUPLE -version_tuple: VERSION_TUPLE - -__version__ = version = '2024.2.0.3.dev0+gf344a731.d20240626' -__version_tuple__ = version_tuple = (2024, 2, 0, 3, 'dev0', 'gf344a731.d20240626') From 350cd824d42e6a7c9b9b9620fc24a8d14f808965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 08:09:01 -0400 Subject: [PATCH 6/9] add config for pytest --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 pyproject.toml diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 000000000..5adc14470 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,2 @@ +[tool.pytest.ini_options] +norecursedirs = [".git", ".venv", "node_modules", "htmlcov", "static", "templates"] From c78f6bb58208eaa4aae4b5876cfd561a6351ccce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 08:11:49 -0400 Subject: [PATCH 7/9] use changes from CI-tools --- .github/workflows/python_deploy_dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python_deploy_dev.yml b/.github/workflows/python_deploy_dev.yml index de63a4687..969b8a09a 100644 --- a/.github/workflows/python_deploy_dev.yml +++ b/.github/workflows/python_deploy_dev.yml @@ -15,7 +15,7 @@ jobs: call-workflow-conda-publish: name: Publish development conda package on JFrog Artifactory if: github.repository == 'MiraGeoscience/gempy' - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_rattler_package.yml@v3 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_rattler_package.yml@v3.6.0-alpha.1 permissions: id-token: write contents: write @@ -33,7 +33,7 @@ jobs: call-workflow-pypi-publish: name: Publish development pypi package (JFrog Artifactory) if: github.repository == 'MiraGeoscience/gempy' - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@v3 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@v3.6.0-alpha.1 permissions: id-token: write contents: write From 5750973103e6631c93dc79fb6b02a71a1505d6f4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 08:43:02 -0400 Subject: [PATCH 8/9] exposes workflow dispatch with option to publish dev tag --- .github/workflows/python_deploy_dev.yml | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/.github/workflows/python_deploy_dev.yml b/.github/workflows/python_deploy_dev.yml index 969b8a09a..32f67828d 100644 --- a/.github/workflows/python_deploy_dev.yml +++ b/.github/workflows/python_deploy_dev.yml @@ -4,6 +4,23 @@ on: push: tags: - 'v*' # Push events to every version tag (eg. v1.0.0) + workflow_dispatch: + inputs: + publish-conda: + description: 'Publish Conda package' + required: false + type: boolean + default: true + publish-pypi: + description: 'Publish PyPI package' + required: false + type: boolean + default: true + publish-dev-tag: + description: 'Force publish if the version tag is a development version (eg. 3.0.0.dev1)' + required: false + type: boolean + default: false permissions: {} @@ -27,6 +44,7 @@ jobs: conda-channels: '["conda-forge"]' publish-repo-names: '["gempy-noremote-conda-dev"]' build-experimental: true + publish-dev-tag: ${{ github.event.inputs.publish-dev-tag || false }} secrets: JFROG_ARTIFACTORY_URL: ${{ secrets.JFROG_ARTIFACTORY_URL }} JFROG_ARTIFACTORY_TOKEN: ${{ secrets.JFROG_ARTIFACTORY_TOKEN }} @@ -40,7 +58,7 @@ jobs: with: package-manager: setuptools package-name: gempy - version-tag: ${{ github.ref_name }} + publish-dev-tag: ${{ github.event.inputs.publish-dev-tag || false }} python-version: '3.12' virtual-repo-names: '["gempy-pypi-dev"]' secrets: From 4eefd60056dfa8be8f88ded3083e28cc23b15e39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Hensgen?= <24550538+sebhmg@users.noreply.github.com> Date: Wed, 10 Jun 2026 09:06:28 -0400 Subject: [PATCH 9/9] use newer change from CI-tools --- .github/workflows/python_deploy_dev.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/python_deploy_dev.yml b/.github/workflows/python_deploy_dev.yml index 32f67828d..65a481b7d 100644 --- a/.github/workflows/python_deploy_dev.yml +++ b/.github/workflows/python_deploy_dev.yml @@ -32,7 +32,7 @@ jobs: call-workflow-conda-publish: name: Publish development conda package on JFrog Artifactory if: github.repository == 'MiraGeoscience/gempy' - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_rattler_package.yml@v3.6.0-alpha.1 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_rattler_package.yml@v3.7.0-alpha.1 permissions: id-token: write contents: write @@ -51,7 +51,7 @@ jobs: call-workflow-pypi-publish: name: Publish development pypi package (JFrog Artifactory) if: github.repository == 'MiraGeoscience/gempy' - uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@v3.6.0-alpha.1 + uses: MiraGeoscience/CI-tools/.github/workflows/reusable-python-publish_pypi_package.yml@v3.7.0-alpha.1 permissions: id-token: write contents: write