From 27e36d596c72fc6d4388c17ccf36936891dd0081 Mon Sep 17 00:00:00 2001 From: Felipe Date: Fri, 17 May 2024 17:30:08 -0300 Subject: [PATCH 1/2] remove workflows, add codeql --- .github/workflows/broken-linkcheck.yml | 39 -- .github/workflows/cache-cleanup-weekly.yml | 32 -- .github/workflows/cache-cleanup.yml | 30 -- .github/workflows/code-checks.yml | 183 -------- .github/workflows/codeql.yml | 74 ++-- .github/workflows/comment-commands.yml | 91 ---- .../workflows/deprecation-tracking-bot.yml | 65 --- .github/workflows/docbuild-and-upload.yml | 92 ---- .github/workflows/package-checks.yml | 81 ---- .github/workflows/stale-pr.yml | 27 -- .github/workflows/unit-tests.yml | 407 ------------------ .github/workflows/wheels.yml | 201 --------- 12 files changed, 35 insertions(+), 1287 deletions(-) delete mode 100644 .github/workflows/broken-linkcheck.yml delete mode 100644 .github/workflows/cache-cleanup-weekly.yml delete mode 100644 .github/workflows/cache-cleanup.yml delete mode 100644 .github/workflows/code-checks.yml delete mode 100644 .github/workflows/comment-commands.yml delete mode 100644 .github/workflows/deprecation-tracking-bot.yml delete mode 100644 .github/workflows/docbuild-and-upload.yml delete mode 100644 .github/workflows/package-checks.yml delete mode 100644 .github/workflows/stale-pr.yml delete mode 100644 .github/workflows/unit-tests.yml delete mode 100644 .github/workflows/wheels.yml diff --git a/.github/workflows/broken-linkcheck.yml b/.github/workflows/broken-linkcheck.yml deleted file mode 100644 index 191252cccf1c3..0000000000000 --- a/.github/workflows/broken-linkcheck.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Linkcheck -on: - schedule: - # Run monthly on the 1st day of the month - - cron: '0 0 1 * *' - pull_request: - paths: - - ".github/workflows/broken-linkcheck.yml" - - "doc/make.py" -jobs: - linkcheck: - if: false - runs-on: ubuntu-latest - defaults: - run: - shell: bash -el {0} - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Conda - uses: ./.github/actions/setup-conda - - - name: Build Pandas - uses: ./.github/actions/build_pandas - - - name: Run linkcheck script - working-directory: ./doc - run: | - set -o pipefail - python make.py linkcheck | tee linkcheck.txt - - - name: Display broken links - if: failure() - working-directory: ./doc - run: grep broken linkcheck.txt diff --git a/.github/workflows/cache-cleanup-weekly.yml b/.github/workflows/cache-cleanup-weekly.yml deleted file mode 100644 index 6da31f7354457..0000000000000 --- a/.github/workflows/cache-cleanup-weekly.yml +++ /dev/null @@ -1,32 +0,0 @@ -name: Purge caches once a week -on: - schedule: - # 4:10 UTC on Sunday - - cron: "10 4 * * 0" - -jobs: - cleanup: - runs-on: ubuntu-latest - if: github.repository_owner == 'pandas-dev' - permissions: - actions: write - steps: - - name: Clean Cache - run: | - gh extension install actions/gh-actions-cache - - REPO=${{ github.repository }} - - echo "Fetching list of cache key" - allCaches=$(gh actions-cache list -L 100 -R $REPO | cut -f 1 ) - - ## Setting this to not fail the workflow while deleting cache keys. - set +e - echo "Deleting caches..." - for cacheKey in $allCaches - do - gh actions-cache delete $cacheKey -R $REPO --confirm - done - echo "Done" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/cache-cleanup.yml b/.github/workflows/cache-cleanup.yml deleted file mode 100644 index 099974141c1d1..0000000000000 --- a/.github/workflows/cache-cleanup.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: Clean closed branch caches -on: - pull_request: - types: - - closed - -jobs: - cleanup: - runs-on: ubuntu-latest - steps: - - name: Clean Cache - run: | - gh extension install actions/gh-actions-cache - - REPO=${{ github.repository }} - BRANCH="refs/pull/${{ github.event.pull_request.number }}/merge" - - echo "Fetching list of cache key" - cacheKeysForPR=$(gh actions-cache list -R $REPO -B $BRANCH | cut -f 1 ) - - ## Setting this to not fail the workflow while deleting cache keys. - set +e - echo "Deleting caches..." - for cacheKey in $cacheKeysForPR - do - gh actions-cache delete $cacheKey -R $REPO -B $BRANCH --confirm - done - echo "Done" - env: - GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/code-checks.yml b/.github/workflows/code-checks.yml deleted file mode 100644 index 937af7e49c6d3..0000000000000 --- a/.github/workflows/code-checks.yml +++ /dev/null @@ -1,183 +0,0 @@ -name: Code Checks - -on: - push: - branches: - - main - - 2.2.x - pull_request: - branches: - - main - - 2.2.x - -env: - ENV_FILE: environment.yml - PANDAS_CI: 1 - -permissions: - contents: read - -# pre-commit run by https://pre-commit.ci/ -jobs: - docstring_typing_manual_hooks: - name: Docstring validation, typing, and other manual pre-commit hooks - runs-on: ubuntu-22.04 - defaults: - run: - shell: bash -el {0} - - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-code-checks - cancel-in-progress: true - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Conda - uses: ./.github/actions/setup-conda - - - name: Build Pandas - id: build - uses: ./.github/actions/build_pandas - with: - editable: false - - # The following checks are independent of each other and should still be run if one fails - - # TODO: The doctests have to be run first right now, since the Cython doctests only work - # with pandas installed in non-editable mode - # This can be removed once pytest-cython doesn't require C extensions to be installed inplace - - name: Run doctests - run: cd ci && ./code_checks.sh doctests - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Install pandas in editable mode - id: build-editable - if: ${{ steps.build.outcome == 'success' && always() }} - uses: ./.github/actions/build_pandas - with: - editable: true - - - name: Check for no warnings when building single-page docs - run: ci/code_checks.sh single-docs - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Run checks on imported code - run: ci/code_checks.sh code - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Run docstring validation - run: ci/code_checks.sh docstrings - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Run check of documentation notebooks - run: ci/code_checks.sh notebooks - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Use existing environment for type checking - run: | - echo $PATH >> $GITHUB_PATH - echo "PYTHONHOME=$PYTHONHOME" >> $GITHUB_ENV - echo "PYTHONPATH=$PYTHONPATH" >> $GITHUB_ENV - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Typing - uses: pre-commit/action@v3.0.1 - with: - extra_args: --verbose --hook-stage manual --all-files - if: ${{ steps.build.outcome == 'success' && always() }} - - - name: Run docstring validation script tests - run: pytest scripts - if: ${{ steps.build.outcome == 'success' && always() }} - - asv-benchmarks: - name: ASV Benchmarks - runs-on: ubuntu-22.04 - defaults: - run: - shell: bash -el {0} - - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-asv-benchmarks - cancel-in-progress: true - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Conda - uses: ./.github/actions/setup-conda - - - name: Build Pandas - id: build - uses: ./.github/actions/build_pandas - - - name: Run ASV benchmarks - run: | - cd asv_bench - asv machine --yes - asv run --quick --dry-run --durations=30 --python=same --show-stderr - - build_docker_dev_environment: - name: Build Docker Dev Environment - runs-on: ubuntu-22.04 - defaults: - run: - shell: bash -el {0} - - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-build_docker_dev_environment - cancel-in-progress: true - - steps: - - name: Clean up dangling images - run: docker image prune -f - - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Build image - run: docker build --pull --no-cache --tag pandas-dev-env . - - - name: Show environment - run: docker run --rm pandas-dev-env python -c "import pandas as pd; print(pd.show_versions())" - - requirements-dev-text-installable: - name: Test install requirements-dev.txt - runs-on: ubuntu-22.04 - - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-requirements-dev-text-installable - cancel-in-progress: true - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Python - id: setup_python - uses: actions/setup-python@v5 - with: - python-version: '3.10' - cache: 'pip' - cache-dependency-path: 'requirements-dev.txt' - - - name: Install requirements-dev.txt - run: pip install -r requirements-dev.txt - - - name: Check Pip Cache Hit - run: echo ${{ steps.setup_python.outputs.cache-hit }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index df850f2523a89..13c95b427b689 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -17,7 +17,7 @@ on: pull_request: branches: [ "main" ] schedule: - - cron: '40 12 * * 1' + - cron: '28 21 * * 3' jobs: analyze: @@ -44,12 +44,8 @@ jobs: fail-fast: false matrix: include: - - language: c-cpp - build-mode: autobuild - - language: javascript-typescript - build-mode: none - - language: python - build-mode: none + - language: python + build-mode: none # CodeQL supports the following values keywords for 'language': 'c-cpp', 'csharp', 'go', 'java-kotlin', 'javascript-typescript', 'python', 'ruby', 'swift' # Use `c-cpp` to analyze code written in C, C++ or both # Use 'java-kotlin' to analyze code written in Java, Kotlin or both @@ -59,39 +55,39 @@ jobs: # If you are analyzing a compiled language, you can modify the 'build-mode' for that language to customize how # your codebase is analyzed, see https://docs.github.com/en/code-security/code-scanning/creating-an-advanced-setup-for-code-scanning/codeql-code-scanning-for-compiled-languages steps: - - name: Checkout repository - uses: actions/checkout@v4 + - name: Checkout repository + uses: actions/checkout@v4 - # Initializes the CodeQL tools for scanning. - - name: Initialize CodeQL - uses: github/codeql-action/init@v3 - with: - languages: ${{ matrix.language }} - build-mode: ${{ matrix.build-mode }} - # If you wish to specify custom queries, you can do so here or in a config file. - # By default, queries listed here will override any specified in a config file. - # Prefix the list here with "+" to use these queries and those in the config file. + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. - # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs - # queries: security-extended,security-and-quality + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality - # If the analyze step fails for one of the languages you are analyzing with - # "We were unable to automatically build your code", modify the matrix above - # to set the build mode to "manual" for that language. Then modify this step - # to build your code. - # â„šī¸ Command-line programs to run using the OS shell. - # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun - - if: matrix.build-mode == 'manual' - shell: bash - run: | - echo 'If you are using a "manual" build mode for one or more of the' \ - 'languages you are analyzing, replace this with the commands to build' \ - 'your code, for example:' - echo ' make bootstrap' - echo ' make release' - exit 1 + # If the analyze step fails for one of the languages you are analyzing with + # "We were unable to automatically build your code", modify the matrix above + # to set the build mode to "manual" for that language. Then modify this step + # to build your code. + # â„šī¸ Command-line programs to run using the OS shell. + # 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun + - if: matrix.build-mode == 'manual' + shell: bash + run: | + echo 'If you are using a "manual" build mode for one or more of the' \ + 'languages you are analyzing, replace this with the commands to build' \ + 'your code, for example:' + echo ' make bootstrap' + echo ' make release' + exit 1 - - name: Perform CodeQL Analysis - uses: github/codeql-action/analyze@v3 - with: - category: "/language:${{matrix.language}}" + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff --git a/.github/workflows/comment-commands.yml b/.github/workflows/comment-commands.yml deleted file mode 100644 index 62956f5825782..0000000000000 --- a/.github/workflows/comment-commands.yml +++ /dev/null @@ -1,91 +0,0 @@ -name: Comment Commands -on: - issue_comment: - types: created - -permissions: - contents: read - issues: write - pull-requests: write - -jobs: - issue_assign: - runs-on: ubuntu-22.04 - if: (!github.event.issue.pull_request) && github.event.comment.body == 'take' - concurrency: - group: ${{ github.actor }}-issue-assign - steps: - - run: | - echo "Assigning issue ${{ github.event.issue.number }} to ${{ github.event.comment.user.login }}" - curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"assignees": ["${{ github.event.comment.user.login }}"]}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/assignees - preview_docs: - runs-on: ubuntu-22.04 - if: github.event.issue.pull_request && github.event.comment.body == '/preview' - concurrency: - group: ${{ github.actor }}-preview-docs - steps: - - uses: pandas-dev/github-doc-previewer@v0.3.2 - with: - previewer-server: "https://pandas.pydata.org/preview" - artifact-job: "Doc Build and Upload" - asv_run: - runs-on: ubuntu-22.04 - # TODO: Support more benchmarking options later, against different branches, against self, etc - if: github.event.issue.pull_request && startsWith(github.event.comment.body, '@github-actions benchmark') - defaults: - run: - shell: bash -el {0} - env: - ENV_FILE: environment.yml - COMMENT: ${{github.event.comment.body}} - - concurrency: - # Set concurrency to prevent abuse(full runs are ~5.5 hours !!!) - # each user can only run one concurrent benchmark bot at a time - # We don't cancel in progress jobs, but if you want to benchmark multiple PRs, you're gonna have - # to wait - group: ${{ github.actor }}-asv - cancel-in-progress: false - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # Although asv sets up its own env, deps are still needed - # during discovery process - - name: Set up Conda - uses: ./.github/actions/setup-conda - - - name: Run benchmarks - id: bench - continue-on-error: true # asv will exit code 1 for regressions - run: | - # extracting the regex, see https://stackoverflow.com/a/36798723 - REGEX=$(echo "$COMMENT" | sed -n "s/^.*-b\s*\(\S*\).*$/\1/p") - cd asv_bench - asv check -E existing - git remote add upstream https://github.com/pandas-dev/pandas.git - git fetch upstream - asv machine --yes - asv continuous -f 1.1 -b $REGEX upstream/main HEAD - echo 'BENCH_OUTPUT<> $GITHUB_ENV - asv compare -f 1.1 upstream/main HEAD >> $GITHUB_ENV - echo 'EOF' >> $GITHUB_ENV - echo "REGEX=$REGEX" >> $GITHUB_ENV - - - uses: actions/github-script@v7 - env: - BENCH_OUTPUT: ${{env.BENCH_OUTPUT}} - REGEX: ${{env.REGEX}} - with: - script: | - const ENV_VARS = process.env - const run_url = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}` - github.rest.issues.createComment({ - issue_number: context.issue.number, - owner: context.repo.owner, - repo: context.repo.repo, - body: '\nBenchmarks completed. View runner logs here.' + run_url + '\nRegex used: '+ 'regex ' + ENV_VARS["REGEX"] + '\n' + ENV_VARS["BENCH_OUTPUT"] - }) diff --git a/.github/workflows/deprecation-tracking-bot.yml b/.github/workflows/deprecation-tracking-bot.yml deleted file mode 100644 index 3d4cab7be09c5..0000000000000 --- a/.github/workflows/deprecation-tracking-bot.yml +++ /dev/null @@ -1,65 +0,0 @@ -# This bot updates the issue with number DEPRECATION_TRACKER_ISSUE -# with the PR number that issued the deprecation. - -# It runs on commits to main, and will trigger if the PR linked to a merged commit has the "Deprecate" label -name: Deprecations Bot - -on: - push: - branches: - - main - - -permissions: - contents: read - -jobs: - deprecation_update: - permissions: - issues: write - runs-on: ubuntu-22.04 - env: - DEPRECATION_TRACKER_ISSUE: 56596 - steps: - - uses: actions/github-script@v7 - id: update-deprecation-issue - with: - script: | - body = await github.rest.issues.get({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: ${{ env.DEPRECATION_TRACKER_ISSUE }}, - }) - body = body["data"]["body"]; - linkedPRs = await github.rest.repos.listPullRequestsAssociatedWithCommit({ - owner: context.repo.owner, - repo: context.repo.repo, - commit_sha: '${{ github.sha }}' - }) - linkedPRs = linkedPRs["data"]; - console.log(linkedPRs); - if (linkedPRs.length > 0) { - console.log("Found linked PR"); - linkedPR = linkedPRs[0] - isDeprecation = false - for (label of linkedPR["labels"]) { - if (label["name"] == "Deprecate") { - isDeprecation = true; - break; - } - } - - PR_NUMBER = linkedPR["number"]; - - body += ("\n- [ ] #" + PR_NUMBER); - if (isDeprecation) { - console.log("PR is a deprecation PR. Printing new body of issue"); - console.log(body); - github.rest.issues.update({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: ${{ env.DEPRECATION_TRACKER_ISSUE }}, - body: body - }) - } - } diff --git a/.github/workflows/docbuild-and-upload.yml b/.github/workflows/docbuild-and-upload.yml deleted file mode 100644 index 924a6263f34d2..0000000000000 --- a/.github/workflows/docbuild-and-upload.yml +++ /dev/null @@ -1,92 +0,0 @@ -name: Doc Build and Upload - -on: - push: - branches: - - main - - 2.2.x - tags: - - '*' - pull_request: - branches: - - main - - 2.2.x - -env: - ENV_FILE: environment.yml - PANDAS_CI: 1 - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - -permissions: - contents: read - -jobs: - web_and_docs: - name: Doc Build and Upload - runs-on: ubuntu-22.04 - - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-web-docs - cancel-in-progress: true - - defaults: - run: - shell: bash -el {0} - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Conda - uses: ./.github/actions/setup-conda - - - name: Build Pandas - uses: ./.github/actions/build_pandas - - - name: Test website - run: python -m pytest web/ - - - name: Build website - run: python web/pandas_web.py web/pandas --target-path=web/build - - - name: Build documentation - run: doc/make.py --warnings-are-errors - - - name: Build documentation zip - run: doc/make.py zip_html - - - name: Install ssh key - run: | - mkdir -m 700 -p ~/.ssh - echo "${{ secrets.server_ssh_key }}" > ~/.ssh/id_rsa - chmod 600 ~/.ssh/id_rsa - echo "${{ secrets.server_ip }} ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFjYkJBk7sos+r7yATODogQc3jUdW1aascGpyOD4bohj8dWjzwLJv/OJ/fyOQ5lmj81WKDk67tGtqNJYGL9acII=" > ~/.ssh/known_hosts - if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) - - - name: Copy cheatsheets into site directory - run: cp doc/cheatsheet/Pandas_Cheat_Sheet* web/build/ - - - name: Upload web - run: rsync -az --delete --exclude='pandas-docs' --exclude='docs' --exclude='benchmarks' web/build/ web@${{ secrets.server_ip }}:/var/www/html - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - - - name: Upload dev docs - run: rsync -az --delete doc/build/html/ web@${{ secrets.server_ip }}:/var/www/html/pandas-docs/dev - if: github.event_name == 'push' && github.ref == 'refs/heads/main' - - - name: Upload prod docs - run: rsync -az --delete doc/build/html/ web@${{ secrets.server_ip }}:/var/www/html/pandas-docs/version/${GITHUB_REF_NAME:1} - if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/') - - - name: Move docs into site directory - run: mv doc/build/html web/build/docs - - - name: Save website as an artifact - uses: actions/upload-artifact@v4 - with: - name: website - path: web/build - retention-days: 14 diff --git a/.github/workflows/package-checks.yml b/.github/workflows/package-checks.yml deleted file mode 100644 index 2de1649d42dfd..0000000000000 --- a/.github/workflows/package-checks.yml +++ /dev/null @@ -1,81 +0,0 @@ -name: Package Checks - -on: - push: - branches: - - main - - 2.2.x - pull_request: - branches: - - main - - 2.2.x - types: [ labeled, opened, synchronize, reopened ] - -permissions: - contents: read - -defaults: - run: - shell: bash -el {0} - -jobs: - pip: - if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}} - runs-on: ubuntu-22.04 - strategy: - matrix: - extra: ["test", "pyarrow", "performance", "computation", "fss", "aws", "gcp", "excel", "parquet", "feather", "hdf5", "spss", "postgresql", "mysql", "sql-other", "html", "xml", "plot", "output-formatting", "clipboard", "compression", "all"] - fail-fast: false - name: Install Extras - ${{ matrix.extra }} - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-pip-extras-${{ matrix.extra }} - cancel-in-progress: true - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Setup Python - id: setup_python - uses: actions/setup-python@v5 - with: - python-version: '3.10' - - - name: Pip install with extra - run: | - python -m pip install .[${{ matrix.extra }}] -v - shell: bash -el {0} - conda_forge_recipe: - if: ${{ github.event.label.name == 'Build' || contains(github.event.pull_request.labels.*.name, 'Build') || github.event_name == 'push'}} - runs-on: ubuntu-22.04 - strategy: - matrix: - python-version: ['3.9', '3.10', '3.11'] - fail-fast: false - name: Test Conda Forge Recipe - Python ${{ matrix.python-version }} - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-conda-forge-recipe-${{ matrix.python-version }} - cancel-in-progress: true - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python - uses: mamba-org/setup-micromamba@v1 - with: - environment-name: recipe-test - create-args: >- - python=${{ matrix.python-version }} - boa - conda-verify - cache-downloads: true - cache-environment: true - - - name: Build conda package - run: conda mambabuild ci --no-anaconda-upload --verify --strict-verify --output --output-folder . diff --git a/.github/workflows/stale-pr.yml b/.github/workflows/stale-pr.yml deleted file mode 100644 index 792afe8f4faf5..0000000000000 --- a/.github/workflows/stale-pr.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: "Stale PRs" -on: - schedule: - # * is a special character in YAML so you have to quote this string - - cron: "0 0 * * *" - -permissions: - contents: read - -jobs: - stale: - permissions: - pull-requests: write - if: github.repository_owner == 'pandas-dev' - runs-on: ubuntu-22.04 - steps: - - uses: actions/stale@v9 - with: - repo-token: ${{ secrets.GITHUB_TOKEN }} - stale-pr-message: "This pull request is stale because it has been open for thirty days with no activity. Please [update](https://pandas.pydata.org/pandas-docs/stable/development/contributing.html#updating-your-pull-request) and respond to this comment if you're still interested in working on this." - stale-pr-label: "Stale" - exempt-pr-labels: "Needs Review,Blocked,Needs Discussion" - days-before-issue-stale: -1 - days-before-pr-stale: 30 - days-before-close: -1 - remove-stale-when-updated: false - debug-only: false diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml deleted file mode 100644 index 1b88d4d90d3e1..0000000000000 --- a/.github/workflows/unit-tests.yml +++ /dev/null @@ -1,407 +0,0 @@ -name: Unit Tests - -on: - push: - branches: - - main - - 2.2.x - pull_request: - branches: - - main - - 2.2.x - paths-ignore: - - "doc/**" - - "web/**" - -permissions: - contents: read - -defaults: - run: - shell: bash -el {0} - -jobs: - ubuntu: - runs-on: ubuntu-22.04 - timeout-minutes: 90 - strategy: - matrix: - env_file: [actions-39.yaml, actions-310.yaml, actions-311.yaml, actions-312.yaml] - # Prevent the include jobs from overriding other jobs - pattern: [""] - include: - - name: "Downstream Compat" - env_file: actions-311-downstream_compat.yaml - pattern: "not slow and not network and not single_cpu" - pytest_target: "pandas/tests/test_downstream.py" - - name: "Minimum Versions" - env_file: actions-39-minimum_versions.yaml - pattern: "not slow and not network and not single_cpu" - - name: "Locale: it_IT" - env_file: actions-311.yaml - pattern: "not slow and not network and not single_cpu" - extra_apt: "language-pack-it" - # Use the utf8 version as the default, it has no bad side-effect. - lang: "it_IT.utf8" - lc_all: "it_IT.utf8" - # Also install it_IT (its encoding is ISO8859-1) but do not activate it. - # It will be temporarily activated during tests with locale.setlocale - extra_loc: "it_IT" - - name: "Locale: zh_CN" - env_file: actions-311.yaml - pattern: "not slow and not network and not single_cpu" - extra_apt: "language-pack-zh-hans" - # Use the utf8 version as the default, it has no bad side-effect. - lang: "zh_CN.utf8" - lc_all: "zh_CN.utf8" - # Also install zh_CN (its encoding is gb2312) but do not activate it. - # It will be temporarily activated during tests with locale.setlocale - extra_loc: "zh_CN" - - name: "Pypy" - env_file: actions-pypy-39.yaml - pattern: "not slow and not network and not single_cpu" - test_args: "--max-worker-restart 0" - - name: "Numpy Dev" - env_file: actions-311-numpydev.yaml - pattern: "not slow and not network and not single_cpu" - test_args: "-W error::DeprecationWarning -W error::FutureWarning" - - name: "Pyarrow Nightly" - env_file: actions-311-pyarrownightly.yaml - pattern: "not slow and not network and not single_cpu" - fail-fast: false - name: ${{ matrix.name || format('ubuntu-latest {0}', matrix.env_file) }} - env: - PATTERN: ${{ matrix.pattern }} - LANG: ${{ matrix.lang || 'C.UTF-8' }} - LC_ALL: ${{ matrix.lc_all || '' }} - PANDAS_CI: ${{ matrix.pandas_ci || '1' }} - TEST_ARGS: ${{ matrix.test_args || '' }} - PYTEST_WORKERS: ${{ matrix.pytest_workers || 'auto' }} - PYTEST_TARGET: ${{ matrix.pytest_target || 'pandas' }} - NPY_PROMOTION_STATE: ${{ matrix.env_file == 'actions-311-numpydev.yaml' && 'weak' || 'legacy' }} - # Clipboard tests - QT_QPA_PLATFORM: offscreen - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.env_file }}-${{ matrix.pattern }}-${{ matrix.extra_apt || '' }}} - cancel-in-progress: true - - services: - mysql: - image: mysql:8.0.33 - env: - MYSQL_ALLOW_EMPTY_PASSWORD: yes - MYSQL_DATABASE: pandas - options: >- - --health-cmd "mysqladmin ping" - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 3306:3306 - - postgres: - image: postgres:13 - env: - PGUSER: postgres - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - POSTGRES_DB: pandas - options: >- - --health-cmd pg_isready - --health-interval 10s - --health-timeout 5s - --health-retries 5 - ports: - - 5432:5432 - - moto: - image: motoserver/moto:4.1.13 - env: - AWS_ACCESS_KEY_ID: foobar_key - AWS_SECRET_ACCESS_KEY: foobar_secret - ports: - - 5000:5000 - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Extra installs - run: sudo apt-get update && sudo apt-get install -y ${{ matrix.extra_apt }} - if: ${{ matrix.extra_apt }} - - - name: Generate extra locales - # These extra locales will be available for locale.setlocale() calls in tests - run: sudo locale-gen ${{ matrix.extra_loc }} - if: ${{ matrix.extra_loc }} - - - name: Set up Conda - uses: ./.github/actions/setup-conda - with: - environment-file: ci/deps/${{ matrix.env_file }} - - - name: Build Pandas - id: build - uses: ./.github/actions/build_pandas - with: - meson_args: ${{ matrix.meson_args }} - cflags_adds: ${{ matrix.cflags_adds }} - - - name: Test (not single_cpu) - uses: ./.github/actions/run-tests - if: ${{ matrix.name != 'Pypy' }} - env: - # Set pattern to not single_cpu if not already set - PATTERN: ${{ env.PATTERN == '' && 'not single_cpu' || matrix.pattern }} - - - name: Test (single_cpu) - uses: ./.github/actions/run-tests - env: - PATTERN: 'single_cpu' - PYTEST_WORKERS: 0 - if: ${{ matrix.pattern == '' && (always() && steps.build.outcome == 'success')}} - - macos-windows: - timeout-minutes: 90 - strategy: - matrix: - # Note: Don't use macOS latest since macos 14 appears to be arm64 only - os: [macos-13, macos-14, windows-latest] - env_file: [actions-39.yaml, actions-310.yaml, actions-311.yaml, actions-312.yaml] - fail-fast: false - runs-on: ${{ matrix.os }} - name: ${{ format('{0} {1}', matrix.os, matrix.env_file) }} - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.env_file }}-${{ matrix.os }} - cancel-in-progress: true - env: - PANDAS_CI: 1 - PYTEST_TARGET: pandas - PATTERN: "not slow and not db and not network and not single_cpu" - PYTEST_WORKERS: 'auto' - - steps: - - name: Checkout - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Conda - uses: ./.github/actions/setup-conda - with: - environment-file: ci/deps/${{ matrix.env_file }} - - - name: Build Pandas - uses: ./.github/actions/build_pandas - - - name: Test - uses: ./.github/actions/run-tests - - Linux-32-bit: - runs-on: ubuntu-22.04 - container: - image: quay.io/pypa/manylinux2014_i686 - options: --platform linux/386 - steps: - - name: Checkout pandas Repo - # actions/checkout does not work since it requires node - run: | - git config --global --add safe.directory $PWD - - if [ $GITHUB_EVENT_NAME != pull_request ]; then - git clone --recursive --branch=$GITHUB_REF_NAME https://github.com/${GITHUB_REPOSITORY}.git $GITHUB_WORKSPACE - git reset --hard $GITHUB_SHA - else - git clone --recursive https://github.com/${GITHUB_REPOSITORY}.git $GITHUB_WORKSPACE - git fetch origin $GITHUB_REF:my_ref_name - git checkout $GITHUB_BASE_REF - git -c user.email="you@example.com" merge --no-commit my_ref_name - fi - - name: Build environment and Run Tests - # https://github.com/numpy/numpy/issues/24703#issuecomment-1722379388 - run: | - /opt/python/cp311-cp311/bin/python -m venv ~/virtualenvs/pandas-dev - . ~/virtualenvs/pandas-dev/bin/activate - python -m pip install --no-cache-dir -U pip wheel setuptools meson[ninja]==1.2.1 meson-python==0.13.1 - python -m pip install numpy --config-settings=setup-args="-Dallow-noblas=true" - python -m pip install --no-cache-dir versioneer[toml] cython python-dateutil pytz pytest>=7.3.2 pytest-xdist>=2.2.0 hypothesis>=6.46.1 - python -m pip install --no-cache-dir --no-build-isolation -e . --config-settings=setup-args="--werror" - python -m pip list --no-cache-dir - export PANDAS_CI=1 - python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-32bit - cancel-in-progress: true - - Linux-Musl: - runs-on: ubuntu-22.04 - container: - image: quay.io/pypa/musllinux_1_1_x86_64 - steps: - - name: Checkout pandas Repo - # actions/checkout does not work since it requires node - run: | - git config --global --add safe.directory $PWD - - if [ $GITHUB_EVENT_NAME != pull_request ]; then - git clone --recursive --branch=$GITHUB_REF_NAME https://github.com/${GITHUB_REPOSITORY}.git $GITHUB_WORKSPACE - git reset --hard $GITHUB_SHA - else - git clone --recursive https://github.com/${GITHUB_REPOSITORY}.git $GITHUB_WORKSPACE - git fetch origin $GITHUB_REF:my_ref_name - git checkout $GITHUB_BASE_REF - git -c user.email="you@example.com" merge --no-commit my_ref_name - fi - - name: Configure System Packages - run: | - apk update - apk add musl-locales - - name: Build environment - run: | - /opt/python/cp311-cp311/bin/python -m venv ~/virtualenvs/pandas-dev - . ~/virtualenvs/pandas-dev/bin/activate - python -m pip install --no-cache-dir -U pip wheel setuptools meson-python==0.13.1 meson[ninja]==1.2.1 - python -m pip install --no-cache-dir versioneer[toml] cython numpy python-dateutil pytz pytest>=7.3.2 pytest-xdist>=2.2.0 hypothesis>=6.46.1 - python -m pip install --no-cache-dir --no-build-isolation -e . --config-settings=setup-args="--werror" - python -m pip list --no-cache-dir - - - name: Run Tests - run: | - . ~/virtualenvs/pandas-dev/bin/activate - export PANDAS_CI=1 - python -m pytest -m 'not slow and not network and not clipboard and not single_cpu' pandas --junitxml=test-data.xml - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-musl - cancel-in-progress: true - - python-dev: - # This job may or may not run depending on the state of the next - # unreleased Python version. DO NOT DELETE IT. - # - # In general, this will remain frozen(present, but not running) until: - # - The next unreleased Python version has released beta 1 - # - This version should be available on GitHub Actions. - # - Our required build/runtime dependencies(numpy, pytz, Cython, python-dateutil) - # support that unreleased Python version. - # To unfreeze, comment out the ``if: false`` condition, and make sure you update - # the name of the workflow and Python version in actions/setup-python ``python-version:`` - # - # After it has been unfrozen, this file should remain unfrozen(present, and running) until: - # - The next Python version has been officially released. - # OR - # - Most/All of our optional dependencies support the next Python version AND - # - The next Python version has released a rc(we are guaranteed a stable ABI). - # To freeze this file, uncomment out the ``if: false`` condition, and migrate the jobs - # to the corresponding posix/windows-macos/sdist etc. workflows. - # Feel free to modify this comment as necessary. - if: false # Uncomment this to freeze the workflow, comment it to unfreeze - defaults: - run: - shell: bash -eou pipefail {0} - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - # Separate out macOS 13 and 14, since macOS 14 is arm64 only - os: [ubuntu-22.04, macOS-13, macOS-14, windows-latest] - - timeout-minutes: 90 - - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-${{ matrix.os }}-${{ matrix.pytest_target }}-dev - cancel-in-progress: true - - env: - PYTEST_WORKERS: "auto" - PANDAS_CI: 1 - PATTERN: "not slow and not network and not clipboard and not single_cpu" - PYTEST_TARGET: pandas - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python Dev Version - uses: actions/setup-python@v5 - with: - python-version: '3.12-dev' - - - name: Build Environment - run: | - python --version - python -m pip install --upgrade pip setuptools wheel meson[ninja]==1.2.1 meson-python==0.13.1 - python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple numpy - python -m pip install versioneer[toml] - python -m pip install python-dateutil pytz tzdata cython hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0 pytest-cov - python -m pip install -ve . --no-build-isolation --no-index --no-deps --config-settings=setup-args="--werror" - python -m pip list - - - name: Run Tests - uses: ./.github/actions/run-tests - - emscripten: - # Note: the Python version, Emscripten toolchain version are determined - # by the Pyodide version. The appropriate versions can be found in the - # Pyodide repodata.json "info" field, or in the Makefile.envs file: - # https://github.com/pyodide/pyodide/blob/stable/Makefile.envs#L2 - # The Node.js version can be determined via Pyodide: - # https://pyodide.org/en/stable/usage/index.html#node-js - name: Pyodide build - runs-on: ubuntu-22.04 - concurrency: - # https://github.community/t/concurrecy-not-work-for-push/183068/7 - group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-wasm - cancel-in-progress: true - steps: - - name: Checkout pandas Repo - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python for Pyodide - id: setup-python - uses: actions/setup-python@v5 - with: - python-version: '3.11.3' - - - name: Set up Emscripten toolchain - uses: mymindstorm/setup-emsdk@v14 - with: - version: '3.1.46' - actions-cache-folder: emsdk-cache - - - name: Install pyodide-build - run: pip install "pyodide-build==0.25.1" - - - name: Build pandas for Pyodide - run: | - pyodide build - - - name: Set up Node.js - uses: actions/setup-node@v4 - with: - node-version: '18' - - - name: Set up Pyodide virtual environment - run: | - pyodide venv .venv-pyodide - source .venv-pyodide/bin/activate - pip install dist/*.whl - - - name: Test pandas for Pyodide - env: - PANDAS_CI: 1 - run: | - source .venv-pyodide/bin/activate - pip install pytest hypothesis - # do not import pandas from the checked out repo - cd .. - python -c 'import pandas as pd; pd.test(extra_args=["-m not clipboard and not single_cpu and not slow and not network and not db"])' diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml deleted file mode 100644 index ab0201ca623aa..0000000000000 --- a/.github/workflows/wheels.yml +++ /dev/null @@ -1,201 +0,0 @@ -# Workflow to build wheels for upload to PyPI. -# Inspired by numpy's cibuildwheel config https://github.com/numpy/numpy/blob/main/.github/workflows/wheels.yml -# -# In an attempt to save CI resources, wheel builds do -# not run on each push but only weekly and for releases. -# Wheel builds can be triggered from the Actions page -# (if you have the permissions) on a commit to main. -# -# Alternatively, you can add labels to the pull request in order to trigger wheel -# builds. -# The label(s) that trigger builds are: -# - Build -name: Wheel builder - -on: - schedule: - # 3:27 UTC every day - - cron: "27 3 * * *" - push: - pull_request: - types: [labeled, opened, synchronize, reopened] - paths-ignore: - - "doc/**" - - "web/**" - workflow_dispatch: - -concurrency: - group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} - cancel-in-progress: true - -permissions: - contents: read - -jobs: - build_sdist: - name: Build sdist - if: >- - (github.event_name == 'schedule') || - github.event_name == 'workflow_dispatch' || - (github.event_name == 'pull_request' && - contains(github.event.pull_request.labels.*.name, 'Build')) || - (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ( ! endsWith(github.ref, 'dev0'))) - runs-on: ubuntu-22.04 - env: - IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} - IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} - outputs: - sdist_file: ${{ steps.save-path.outputs.sdist_name }} - steps: - - name: Checkout pandas - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.11' - - - name: Build sdist - run: | - python -m pip install build - python -m build --sdist - - - uses: actions/upload-artifact@v4 - with: - name: sdist - path: ./dist/* - - - name: Sanity check sdist files - run: | - ls ./dist - - - name: Output sdist name - id: save-path - shell: bash -el {0} - run: echo "sdist_name=$(ls ./dist)" >> "$GITHUB_OUTPUT" - - build_wheels: - needs: build_sdist - name: Build wheel for ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} - if: >- - (github.event_name == 'schedule') || - github.event_name == 'workflow_dispatch' || - (github.event_name == 'pull_request' && - contains(github.event.pull_request.labels.*.name, 'Build')) || - (github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && ( ! endsWith(github.ref, 'dev0'))) - runs-on: ${{ matrix.buildplat[0] }} - strategy: - fail-fast: false - matrix: - # GitHub Actions doesn't support pairing matrix values together, let's improvise - # https://github.com/github/feedback/discussions/7835#discussioncomment-1769026 - buildplat: - - [ubuntu-22.04, manylinux_x86_64] - - [ubuntu-22.04, musllinux_x86_64] - - [macos-12, macosx_x86_64] - # Note: M1 images on Github Actions start from macOS 14 - - [macos-14, macosx_arm64] - - [windows-2022, win_amd64] - # TODO: support PyPy? - python: [["cp39", "3.9"], ["cp310", "3.10"], ["cp311", "3.11"], ["cp312", "3.12"]] - env: - IS_PUSH: ${{ github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') }} - IS_SCHEDULE_DISPATCH: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} - steps: - - name: Checkout pandas - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - # TODO: Build wheels from sdist again - # There's some sort of weird race condition? - # within Github that makes the sdist be missing files - - # We need to build wheels from the sdist since the sdist - # removes unnecessary files from the release - - name: Download sdist (not macOS) - #if: ${{ matrix.buildplat[1] != 'macosx_*' }} - uses: actions/download-artifact@v4 - with: - name: sdist - path: ./dist - - - name: Output sdist name (macOS) - id: save-path - shell: bash -el {0} - run: echo "sdist_name=$(ls ./dist)" >> "$GITHUB_ENV" - - # Python version used to build sdist doesn't matter - # wheel will be built from sdist with the correct version - - name: Unzip sdist (macOS) - if: ${{ startsWith(matrix.buildplat[1], 'macosx') }} - run: | - tar -xzf ./dist/${{ env.sdist_name }} -C ./dist - - - name: Output sdist name (macOS) - id: save-path2 - shell: bash -el {0} - run: echo "sdist_name=$(cd ./dist && ls -d */)" >> "$GITHUB_ENV" - - - name: Build wheels - uses: pypa/cibuildwheel@v2.18.0 - with: - package-dir: ./dist/${{ startsWith(matrix.buildplat[1], 'macosx') && env.sdist_name || needs.build_sdist.outputs.sdist_file }} - env: - CIBW_PRERELEASE_PYTHONS: True - CIBW_BUILD: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} - - - name: Set up Python - uses: mamba-org/setup-micromamba@v1 - with: - environment-name: wheel-env - # Use a fixed Python, since we might have an unreleased Python not - # yet present on conda-forge - create-args: >- - python=3.11 - anaconda-client - wheel - cache-downloads: true - cache-environment: true - - - name: Validate wheel RECORD - shell: bash -el {0} - run: for whl in $(ls wheelhouse); do wheel unpack wheelhouse/$whl -d /tmp; done - - # Testing on windowsservercore instead of GHA runner to fail on missing DLLs - - name: Test Windows Wheels - if: ${{ matrix.buildplat[1] == 'win_amd64' }} - shell: pwsh - run: | - $TST_CMD = @" - python -m pip install hypothesis>=6.46.1 pytest>=7.3.2 pytest-xdist>=2.2.0; - python -m pip install `$(Get-Item pandas\wheelhouse\*.whl); - python -c `'import pandas as pd; pd.test(extra_args=[`\"--no-strict-data-files`\", `\"-m not clipboard and not single_cpu and not slow and not network and not db`\"])`'; - "@ - # add rc to the end of the image name if the Python version is unreleased - docker pull python:${{ matrix.python[1] == '3.12' && '3.12-rc' || format('{0}-windowsservercore', matrix.python[1]) }} - docker run --env PANDAS_CI='1' -v ${PWD}:C:\pandas python:${{ matrix.python[1] == '3.12' && '3.12-rc' || format('{0}-windowsservercore', matrix.python[1]) }} powershell -Command $TST_CMD - - - uses: actions/upload-artifact@v4 - with: - name: ${{ matrix.python[0] }}-${{ matrix.buildplat[1] }} - path: ./wheelhouse/*.whl - - - name: Upload wheels & sdist - if: ${{ success() && (env.IS_SCHEDULE_DISPATCH == 'true' || env.IS_PUSH == 'true') }} - shell: bash -el {0} - env: - PANDAS_STAGING_UPLOAD_TOKEN: ${{ secrets.PANDAS_STAGING_UPLOAD_TOKEN }} - PANDAS_NIGHTLY_UPLOAD_TOKEN: ${{ secrets.PANDAS_NIGHTLY_UPLOAD_TOKEN }} - # trigger an upload to - # https://anaconda.org/scientific-python-nightly-wheels/pandas - # for cron jobs or "Run workflow" (restricted to main branch). - # Tags will upload to - # https://anaconda.org/multibuild-wheels-staging/pandas - # The tokens were originally generated at anaconda.org - run: | - source ci/upload_wheels.sh - set_upload_vars - upload_wheels From cdf308485e46c5df640516bf85762e3b5513c79d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 23:45:20 +0000 Subject: [PATCH 2/2] Bump mypy from 1.9.0 to 1.11.2 Bumps [mypy](https://github.com/python/mypy) from 1.9.0 to 1.11.2. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/1.9.0...v1.11.2) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements-dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements-dev.txt b/requirements-dev.txt index f5da7f70ccdba..21f1ef0aa549b 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -54,7 +54,7 @@ moto flask asv>=0.6.1 flake8==6.1.0 -mypy==1.9.0 +mypy==1.11.2 tokenize-rt pre-commit>=3.6.0 gitpython