diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml
deleted file mode 100755
index 8d9608f..0000000
--- a/.azure-pipelines/azure-pipelines-linux.yml
+++ /dev/null
@@ -1,44 +0,0 @@
-# This file was generated automatically from conda-smithy. To update this configuration,
-# update the conda-forge.yml and/or the recipe/meta.yaml.
-# -*- mode: yaml -*-
-
-jobs:
-- job: linux
- pool:
- vmImage: ubuntu-latest
- strategy:
- matrix:
- linux_64_:
- CONFIG: linux_64_
- UPLOAD_PACKAGES: 'True'
- DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
- timeoutInMinutes: 360
- variables: {}
-
- steps:
- # configure qemu binfmt-misc running. This allows us to run docker containers
- # embedded qemu-static
- - script: |
- docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
- ls /proc/sys/fs/binfmt_misc/
- condition: not(startsWith(variables['CONFIG'], 'linux_64'))
- displayName: Configure binfmt_misc
-
- - script: |
- export CI=azure
- export flow_run_id=azure_$(Build.BuildNumber).$(System.JobAttempt)
- export remote_url=$(Build.Repository.Uri)
- export sha=$(Build.SourceVersion)
- export GIT_BRANCH=$BUILD_SOURCEBRANCHNAME
- export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME})
- if [[ "${BUILD_REASON:-}" == "PullRequest" ]]; then
- export IS_PR_BUILD="True"
- else
- export IS_PR_BUILD="False"
- fi
- .scripts/run_docker_build.sh
- displayName: Run docker build
- env:
- BINSTAR_TOKEN: $(BINSTAR_TOKEN)
- FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN)
- STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN)
diff --git a/.github/workflows/conda-build.yml b/.github/workflows/conda-build.yml
index b4e6e61..fe4baaf 100644
--- a/.github/workflows/conda-build.yml
+++ b/.github/workflows/conda-build.yml
@@ -4,12 +4,117 @@
name: Build conda package
on:
- workflow_dispatch:
+ push:
+
+ pull_request:
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
+ cancel-in-progress: true
jobs:
build:
- name: Disabled build
- runs-on: ubuntu-slim
- if: false
+ name: ${{ matrix.CONFIG }}
+ runs-on: ${{ matrix.runs_on }}
+ timeout-minutes: 360
+ strategy:
+ fail-fast: false
+ max-parallel: 50
+ matrix:
+ include:
+ - CONFIG: linux_64_
+ STORE_BUILD_ARTIFACTS: False
+ UPLOAD_PACKAGES: True
+ os: ubuntu
+ runs_on: ['ubuntu-latest']
+ DOCKER_IMAGE: quay.io/condaforge/linux-anvil-x86_64:alma9
+ tools_install_dir: ~/miniforge3
+ build_workspace_dir: build_artifacts
+ docker_run_args:
steps:
- - run: exit 0
+
+ - name: Checkout code
+ uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
+
+ - name: Build on Linux
+ id: build-linux
+ if: matrix.os == 'ubuntu'
+ env:
+ MINIFORGE_HOME: ${{ matrix.tools_install_dir }}
+ CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }}
+ CONFIG: ${{ matrix.CONFIG }}
+ UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
+ DOCKER_IMAGE: ${{ matrix.DOCKER_IMAGE }}
+ CI: github_actions
+ CONDA_FORGE_DOCKER_RUN_ARGS: "${{ matrix.docker_run_args }}"
+ BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
+ FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
+ STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
+ shell: bash
+ run: |
+ if [[ "$(uname -m)" == "x86_64" ]]; then
+ echo "::group::Configure binfmt_misc"
+ docker run --rm --privileged multiarch/qemu-user-static:register --reset --credential yes
+ fi
+ export flow_run_id="github_$GITHUB_RUN_ID"
+ export remote_url="https://github.com/$GITHUB_REPOSITORY"
+ export sha="$GITHUB_SHA"
+ export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
+ export GIT_BRANCH="$(basename $GITHUB_REF)"
+ if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
+ export IS_PR_BUILD="True"
+ else
+ export IS_PR_BUILD="False"
+ fi
+ export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}"
+ export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}"
+ echo "::endgroup::"
+ ./.scripts/run_docker_build.sh
+
+ - name: Build on macOS
+ id: build-macos
+ if: matrix.os == 'macos'
+ env:
+ MINIFORGE_HOME: ${{ matrix.tools_install_dir }}
+ CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }}
+ CONFIG: ${{ matrix.CONFIG }}
+ UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
+ CI: github_actions
+ BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
+ FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
+ STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
+ shell: bash
+ run: |
+ export flow_run_id="github_$GITHUB_RUN_ID"
+ export remote_url="https://github.com/$GITHUB_REPOSITORY"
+ export sha="$GITHUB_SHA"
+ export FEEDSTOCK_NAME="$(basename $GITHUB_REPOSITORY)"
+ export GIT_BRANCH="$(basename $GITHUB_REF)"
+ if [[ "${GITHUB_EVENT_NAME}" == "pull_request" ]]; then
+ export IS_PR_BUILD="True"
+ else
+ export IS_PR_BUILD="False"
+ fi
+ export MINIFORGE_HOME="${MINIFORGE_HOME/#~/${HOME}}"
+ export CONDA_BLD_PATH="${CONDA_BLD_PATH/#~/${HOME}}"
+ ./.scripts/run_osx_build.sh
+
+ - name: Build on windows
+ id: build-windows
+ if: matrix.os == 'windows'
+ shell: cmd
+ run: |
+ set "flow_run_id=github_%GITHUB_RUN_ID%"
+ set "remote_url=https://github.com/%GITHUB_REPOSITORY%"
+ set "sha=%GITHUB_SHA%"
+ call ".scripts\run_win_build.bat"
+ env:
+ MINIFORGE_HOME: ${{ matrix.tools_install_dir }}
+ CONDA_BLD_PATH: ${{ matrix.build_workspace_dir }}
+ PYTHONUNBUFFERED: 1
+ CONFIG: ${{ matrix.CONFIG }}
+ CI: github_actions
+ UPLOAD_PACKAGES: ${{ matrix.UPLOAD_PACKAGES }}
+ BINSTAR_TOKEN: ${{ secrets.BINSTAR_TOKEN }}
+ FEEDSTOCK_TOKEN: ${{ secrets.FEEDSTOCK_TOKEN }}
+ STAGING_BINSTAR_TOKEN: ${{ secrets.STAGING_BINSTAR_TOKEN }}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 47b5408..86a9c55 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,6 +6,7 @@
# Ignore all files and folders in root
*
!/conda-forge.yml
+!.recipe_maintainers.json
# Don't ignore any files/folders if the parent folder is 'un-ignored'
# This also avoids warnings when adding an already-checked file with an ignored parent.
diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh
index d7df163..aa7c3d3 100755
--- a/.scripts/build_steps.sh
+++ b/.scripts/build_steps.sh
@@ -36,7 +36,7 @@ mv /opt/conda/conda-meta/history /opt/conda/conda-meta/history.$(date +%Y-%m-%d-
echo > /opt/conda/conda-meta/history
micromamba install --root-prefix ~/.conda --prefix /opt/conda \
--yes --override-channels --channel conda-forge --strict-channel-priority \
- pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=24.1"
+ pip python=3.12 conda-build conda-forge-ci-setup=4 "conda-build>=26.3"
export CONDA_LIBMAMBA_SOLVER_NO_CHANNELS_FROM_INSTALLED=1
# set up the condarc
diff --git a/.scripts/run_docker_build.sh b/.scripts/run_docker_build.sh
index b63b5a0..10d6a2a 100755
--- a/.scripts/run_docker_build.sh
+++ b/.scripts/run_docker_build.sh
@@ -11,6 +11,8 @@ source .scripts/logging_utils.sh
set -xeo pipefail
+DOCKER_EXECUTABLE="${DOCKER_EXECUTABLE:-docker}"
+
THISDIR="$( cd "$( dirname "$0" )" >/dev/null && pwd )"
PROVIDER_DIR="$(basename "$THISDIR")"
@@ -27,7 +29,7 @@ if [[ "${sha:-}" == "" ]]; then
popd
fi
-docker info
+${DOCKER_EXECUTABLE} info
# In order for the conda-build process in the container to write to the mounted
# volumes, we need to run with the same id as the host machine, which is
@@ -35,6 +37,7 @@ docker info
export HOST_USER_ID=$(id -u)
# Check if docker-machine is being used (normally on OSX) and get the uid from
# the VM
+
if hash docker-machine 2> /dev/null && docker-machine active > /dev/null; then
export HOST_USER_ID=$(docker-machine ssh $(docker-machine active) id -u)
fi
@@ -76,16 +79,34 @@ if [ -z "${CI}" ]; then
DOCKER_RUN_ARGS="-it ${DOCKER_RUN_ARGS}"
fi
-( endgroup "Configure Docker" ) 2> /dev/null
+# Default volume suffix for Docker (preserve original behavior)
+VOLUME_SUFFIX=",z"
+# Podman-specific handling
+if [ "${DOCKER_EXECUTABLE}" = "podman" ]; then
+ # Fix file permissions for rootless podman builds
+ podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${ARTIFACTS}"
+ podman unshare chown -R ${HOST_USER_ID}:${HOST_USER_ID} "${RECIPE_ROOT}"
+
+ # Add SELinux label only if enforcing
+ if command -v getenforce &>/dev/null && [ "$(getenforce)" = "Enforcing" ]; then
+ VOLUME_SUFFIX=",z"
+ else
+ VOLUME_SUFFIX=""
+ fi
+fi
+
+( endgroup "Configure Docker" ) 2> /dev/null
( startgroup "Start Docker" ) 2> /dev/null
export UPLOAD_PACKAGES="${UPLOAD_PACKAGES:-True}"
export IS_PR_BUILD="${IS_PR_BUILD:-False}"
-docker pull "${DOCKER_IMAGE}"
-docker run ${DOCKER_RUN_ARGS} \
- -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw,z,delegated \
- -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw,z,delegated \
+
+${DOCKER_EXECUTABLE} pull "${DOCKER_IMAGE}"
+
+${DOCKER_EXECUTABLE} run ${DOCKER_RUN_ARGS} \
+ -v "${RECIPE_ROOT}":/home/conda/recipe_root:rw${VOLUME_SUFFIX},delegated \
+ -v "${FEEDSTOCK_ROOT}":/home/conda/feedstock_root:rw${VOLUME_SUFFIX},delegated \
-e CONFIG \
-e HOST_USER_ID \
-e UPLOAD_PACKAGES \
diff --git a/README.md b/README.md
index ee2acee..b706ff3 100644
--- a/README.md
+++ b/README.md
@@ -20,10 +20,11 @@ Current build status
====================
-
| All platforms: |
+
+ | All platforms: |
-
-
+
+
|
diff --git a/azure-pipelines.yml b/azure-pipelines.yml
deleted file mode 100644
index aa63c81..0000000
--- a/azure-pipelines.yml
+++ /dev/null
@@ -1,31 +0,0 @@
-# This file was generated automatically from conda-smithy. To update this configuration,
-# update the conda-forge.yml and/or the recipe/meta.yaml.
-# -*- mode: yaml -*-
-
-stages:
-- stage: Check
- jobs:
- - job: Skip
- pool:
- vmImage: 'ubuntu-latest'
- variables:
- DECODE_PERCENTS: 'false'
- RET: 'true'
- steps:
- - checkout: self
- fetchDepth: '2'
- - bash: |
- git_log=`git log --max-count=1 --skip=1 --pretty=format:"%B" | tr "\n" " "`
- echo "##vso[task.setvariable variable=log]$git_log"
- displayName: Obtain commit message
- - bash: echo "##vso[task.setvariable variable=RET]false"
- condition: and(eq(variables['Build.Reason'], 'PullRequest'), or(contains(variables.log, '[skip azp]'), contains(variables.log, '[azp skip]'), contains(variables.log, '[skip ci]'), contains(variables.log, '[ci skip]')))
- displayName: Skip build?
- - bash: echo "##vso[task.setvariable variable=start_main;isOutput=true]$RET"
- name: result
- displayName: Export result
-- stage: Build
- condition: and(succeeded(), eq(dependencies.Check.outputs['Skip.result.start_main'], 'true'))
- dependsOn: Check
- jobs:
- - template: ./.azure-pipelines/azure-pipelines-linux.yml
\ No newline at end of file
diff --git a/recipe/meta.yaml b/recipe/meta.yaml
index 441970f..a300012 100644
--- a/recipe/meta.yaml
+++ b/recipe/meta.yaml
@@ -1,5 +1,5 @@
{% set name = "openseries" %}
-{% set version = "2.1.7" %}
+{% set version = "2.1.8" %}
{% set python_min = "3.11" %}
package:
@@ -8,7 +8,7 @@ package:
source:
url: https://pypi.org/packages/source/{{ name[0] }}/{{ name }}/openseries-{{ version }}.tar.gz
- sha256: 659f34cc04e8b81c7c20b3c706d5192478de5c964970f60ee568594066654e80
+ sha256: 024c1de150cb1c95f08929d3063edac259f17e7488be25c99758e4e458b4833a
build:
noarch: python
@@ -18,9 +18,9 @@ build:
requirements:
host:
- python {{ python_min }}
- - poetry-core >=2.3.1
- pip
- - numpy >=1.23.2
+ - setuptools >=69
+ - wheel
run:
- python >={{ python_min }}
- exchange-calendars >=4.8