Skip to content

Commit f304ad3

Browse files
Merge branch 'main' into main
2 parents 16ac4a4 + 7b855c1 commit f304ad3

File tree

889 files changed

+22543
-12457
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

889 files changed

+22543
-12457
lines changed

.circleci/config.yml

+74-1
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,82 @@ jobs:
1414
steps:
1515
- checkout
1616
- run: .circleci/setup_env.sh
17-
- run: PATH=$HOME/miniconda3/envs/pandas-dev/bin:$HOME/miniconda3/condabin:$PATH ci/run_tests.sh
17+
- run: >
18+
PATH=$HOME/miniconda3/envs/pandas-dev/bin:$HOME/miniconda3/condabin:$PATH
19+
LD_PRELOAD=$HOME/miniconda3/envs/pandas-dev/lib/libgomp.so.1:$LD_PRELOAD
20+
ci/run_tests.sh
21+
build-aarch64:
22+
parameters:
23+
cibw-build:
24+
type: string
25+
machine:
26+
image: ubuntu-2004:202101-01
27+
resource_class: arm.large
28+
environment:
29+
ENV_FILE: ci/deps/circle-38-arm64.yaml
30+
TRIGGER_SOURCE: << pipeline.trigger_source >>
31+
steps:
32+
- checkout
33+
- run:
34+
name: Check if build is necessary
35+
command: |
36+
# Check if tag is defined or TRIGGER_SOURCE is scheduled
37+
if [[ -n "$CIRCLE_TAG" ]]; then
38+
echo 'export IS_PUSH="true"' >> "$BASH_ENV"
39+
elif [[ $TRIGGER_SOURCE == "scheduled_pipeline" ]]; then
40+
echo 'export IS_SCHEDULE_DISPATCH="true"' >> "$BASH_ENV"
41+
# Look for the build label/[wheel build] in commit
42+
# grep takes a regex, so need to escape brackets
43+
elif (git log --format=oneline -n 1 $CIRCLE_SHA1) | grep -q '\[wheel build\]'; then
44+
: # Do nothing
45+
elif ! (curl https://api.github.com/repos/pandas-dev/pandas/issues/$CIRCLE_PR_NUMBER | jq '.labels' | grep -q 'Build'); then
46+
circleci-agent step halt
47+
fi
48+
- run:
49+
name: Build aarch64 wheels
50+
command: |
51+
pip3 install cibuildwheel==2.9.0
52+
cibuildwheel --output-dir wheelhouse
53+
environment:
54+
CIBW_BUILD: << parameters.cibw-build >>
55+
56+
- run:
57+
name: Install Anaconda Client & Upload Wheels
58+
command: |
59+
echo "Install Mambaforge"
60+
MAMBA_URL="https://github.com/conda-forge/miniforge/releases/download/4.14.0-0/Mambaforge-4.14.0-0-Linux-aarch64.sh"
61+
echo "Downloading $MAMBA_URL"
62+
wget -q $MAMBA_URL -O minimamba.sh
63+
chmod +x minimamba.sh
64+
65+
MAMBA_DIR="$HOME/miniconda3"
66+
rm -rf $MAMBA_DIR
67+
./minimamba.sh -b -p $MAMBA_DIR
68+
69+
export PATH=$MAMBA_DIR/bin:$PATH
70+
71+
mamba install -y -c conda-forge anaconda-client
72+
73+
source ci/upload_wheels.sh
74+
set_upload_vars
75+
upload_wheels
76+
- store_artifacts:
77+
path: wheelhouse/
1878

1979
workflows:
2080
test:
81+
# Don't run trigger this one when scheduled pipeline runs
82+
when:
83+
not:
84+
equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
2185
jobs:
2286
- test-arm
87+
build-wheels:
88+
jobs:
89+
- build-aarch64:
90+
filters:
91+
tags:
92+
only: /^v.*/
93+
matrix:
94+
parameters:
95+
cibw-build: ["cp38-manylinux_aarch64", "cp39-manylinux_aarch64", "cp310-manylinux_aarch64", "cp311-manylinux_aarch64"]

.github/workflows/32-bit-linux.yml

+6
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
pull_request:
910
branches:
1011
- main
12+
- 2.0.x
1113
- 1.5.x
1214
paths-ignore:
1315
- "doc/**"
@@ -52,3 +54,7 @@ jobs:
5254
name: Test results
5355
path: test-data.xml
5456
if: failure()
57+
concurrency:
58+
# https://github.community/t/concurrecy-not-work-for-push/183068/7
59+
group: ${{ github.event_name == 'push' && github.run_number || github.ref }}-32bit
60+
cancel-in-progress: true

.github/workflows/code-checks.yml

+2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
pull_request:
910
branches:
1011
- main
12+
- 2.0.x
1113
- 1.5.x
1214

1315
env:
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
name: Deprecations Bot
2+
3+
on:
4+
pull_request:
5+
branches:
6+
- main
7+
types:
8+
[closed]
9+
10+
11+
permissions:
12+
contents: read
13+
14+
jobs:
15+
deprecation_update:
16+
permissions:
17+
issues: write
18+
if: >-
19+
contains(github.event.pull_request.labels.*.name, 'Deprecate') && github.event.pull_request.merged == true
20+
runs-on: ubuntu-22.04
21+
env:
22+
DEPRECATION_TRACKER_ISSUE: 50578
23+
steps:
24+
- name: Checkout
25+
run: |
26+
echo "Adding deprecation PR number to deprecation tracking issue"
27+
export PR=${{ github.event.pull_request.number }}
28+
BODY=$(curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" https://api.github.com/repos/${{ github.repository }}/issues/${DEPRECATION_TRACKER_ISSUE} |
29+
python3 -c "import sys, json, os; x = {'body': json.load(sys.stdin)['body']}; pr = os.environ['PR']; x['body'] += f'\n- [ ] #{pr}'; print(json.dumps(x))")
30+
echo ${BODY}
31+
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -X PATCH -d "${BODY}" https://api.github.com/repos/${{ github.repository }}/issues/${DEPRECATION_TRACKER_ISSUE}

.github/workflows/docbuild-and-upload.yml

+9
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
tags:
910
- '*'
1011
pull_request:
1112
branches:
1213
- main
14+
- 2.0.x
1315
- 1.5.x
1416

1517
env:
@@ -87,3 +89,10 @@ jobs:
8789
name: website
8890
path: web/build
8991
retention-days: 14
92+
93+
- name: Trigger web/doc preview
94+
run: curl -X POST https://pandas.pydata.org/preview/submit/$RUN_ID/$PR_ID/
95+
env:
96+
RUN_ID: ${{ github.run_id }}
97+
PR_ID: ${{ github.event.pull_request.number }}
98+
if: github.event_name == 'pull_request'

.github/workflows/macos-windows.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -4,20 +4,21 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
pull_request:
910
branches:
1011
- main
12+
- 2.0.x
1113
- 1.5.x
1214
paths-ignore:
1315
- "doc/**"
16+
- "web/**"
1417

1518
env:
1619
PANDAS_CI: 1
1720
PYTEST_TARGET: pandas
1821
PATTERN: "not slow and not db and not network and not single_cpu"
19-
ERROR_ON_WARNINGS: "1"
20-
2122

2223
permissions:
2324
contents: read

.github/workflows/package-checks.yml

+2
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
pull_request:
910
branches:
1011
- main
12+
- 2.0.x
1113
- 1.5.x
1214
types: [ labeled, opened, synchronize, reopened ]
1315

.github/workflows/preview-docs.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Preview docs
2+
on:
3+
issue_comment:
4+
types: created
5+
6+
permissions:
7+
contents: read
8+
9+
jobs:
10+
preview_docs:
11+
permissions:
12+
issues: write
13+
pull-requests: write
14+
runs-on: ubuntu-22.04
15+
steps:
16+
- if: github.event.comment.body == '/preview'
17+
run: |
18+
if curl --output /dev/null --silent --head --fail "https://pandas.pydata.org/preview/${{ github.event.issue.number }}/"; then
19+
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"body": "Website preview of this PR available at: https://pandas.pydata.org/preview/${{ github.event.issue.number }}/"}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments
20+
else
21+
curl -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" -d '{"body": "No preview found for PR #${{ github.event.issue.number }}. Did the docs build complete?"}' https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/comments
22+
fi

.github/workflows/python-dev.yml

+1
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ on:
3333
- None
3434
paths-ignore:
3535
- "doc/**"
36+
- "web/**"
3637

3738
env:
3839
PYTEST_WORKERS: "auto"

.github/workflows/sdist.yml

+3-1
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,17 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
pull_request:
910
branches:
1011
- main
12+
- 2.0.x
1113
- 1.5.x
1214
types: [labeled, opened, synchronize, reopened]
1315
paths-ignore:
1416
- "doc/**"
17+
- "web/**"
1518

1619
permissions:
1720
contents: read
@@ -92,5 +95,4 @@ jobs:
9295
- name: Import pandas
9396
run: |
9497
cd ..
95-
conda list
9698
python -c "import pandas; pandas.show_versions();"

.github/workflows/ubuntu.yml

+11-18
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ on:
44
push:
55
branches:
66
- main
7+
- 2.0.x
78
- 1.5.x
89
pull_request:
910
branches:
1011
- main
12+
- 2.0.x
1113
- 1.5.x
1214
paths-ignore:
1315
- "doc/**"
14-
15-
env:
16-
PANDAS_CI: 1
16+
- "web/**"
1717

1818
permissions:
1919
contents: read
@@ -29,7 +29,8 @@ jobs:
2929
matrix:
3030
env_file: [actions-38.yaml, actions-39.yaml, actions-310.yaml, actions-311.yaml]
3131
pattern: ["not single_cpu", "single_cpu"]
32-
pyarrow_version: ["7", "8", "9", "10"]
32+
pyarrow_version: ["8", "9", "10"]
33+
pandas_ci: [1]
3334
include:
3435
- name: "Downstream Compat"
3536
env_file: actions-38-downstream_compat.yaml
@@ -38,7 +39,6 @@ jobs:
3839
- name: "Minimum Versions"
3940
env_file: actions-38-minimum_versions.yaml
4041
pattern: "not slow and not network and not single_cpu"
41-
error_on_warnings: "0"
4242
- name: "Locale: it_IT"
4343
env_file: actions-38.yaml
4444
pattern: "not slow and not network and not single_cpu"
@@ -63,52 +63,45 @@ jobs:
6363
env_file: actions-310.yaml
6464
pattern: "not slow and not network and not single_cpu"
6565
pandas_copy_on_write: "1"
66-
error_on_warnings: "0"
6766
- name: "Data Manager"
6867
env_file: actions-38.yaml
6968
pattern: "not slow and not network and not single_cpu"
7069
pandas_data_manager: "array"
71-
error_on_warnings: "0"
7270
- name: "Pypy"
7371
env_file: actions-pypy-38.yaml
7472
pattern: "not slow and not network and not single_cpu"
7573
test_args: "--max-worker-restart 0"
76-
error_on_warnings: "0"
7774
- name: "Numpy Dev"
7875
env_file: actions-310-numpydev.yaml
7976
pattern: "not slow and not network and not single_cpu"
8077
test_args: "-W error::DeprecationWarning -W error::FutureWarning"
81-
error_on_warnings: "0"
78+
# TODO(cython3): Re-enable once next-beta(after beta 1) comes out
79+
# There are some warnings failing the build with -werror
80+
pandas_ci: 0
8281
exclude:
83-
- env_file: actions-38.yaml
84-
pyarrow_version: "7"
8582
- env_file: actions-38.yaml
8683
pyarrow_version: "8"
8784
- env_file: actions-38.yaml
8885
pyarrow_version: "9"
89-
- env_file: actions-39.yaml
90-
pyarrow_version: "7"
9186
- env_file: actions-39.yaml
9287
pyarrow_version: "8"
9388
- env_file: actions-39.yaml
9489
pyarrow_version: "9"
95-
- env_file: actions-311.yaml
96-
pyarrow_version: "7"
97-
- env_file: actions-311.yaml
90+
- env_file: actions-310.yaml
9891
pyarrow_version: "8"
99-
- env_file: actions-311.yaml
92+
- env_file: actions-310.yaml
10093
pyarrow_version: "9"
10194
fail-fast: false
10295
name: ${{ matrix.name || format('{0} pyarrow={1} {2}', matrix.env_file, matrix.pyarrow_version, matrix.pattern) }}
10396
env:
10497
ENV_FILE: ci/deps/${{ matrix.env_file }}
10598
PATTERN: ${{ matrix.pattern }}
10699
EXTRA_APT: ${{ matrix.extra_apt || '' }}
107-
ERROR_ON_WARNINGS: ${{ matrix.error_on_warnings || '1' }}
108100
LANG: ${{ matrix.lang || '' }}
109101
LC_ALL: ${{ matrix.lc_all || '' }}
110102
PANDAS_DATA_MANAGER: ${{ matrix.pandas_data_manager || 'block' }}
111103
PANDAS_COPY_ON_WRITE: ${{ matrix.pandas_copy_on_write || '0' }}
104+
PANDAS_CI: ${{ matrix.pandas_ci }}
112105
TEST_ARGS: ${{ matrix.test_args || '' }}
113106
PYTEST_WORKERS: ${{ contains(matrix.pattern, 'not single_cpu') && 'auto' || '1' }}
114107
PYTEST_TARGET: ${{ matrix.pytest_target || 'pandas' }}

.github/workflows/wheels.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,8 @@ jobs:
8686
activate-environment: test
8787
channels: conda-forge, anaconda
8888
channel-priority: true
89-
mamba-version: "*"
89+
# mamba fails to solve, also we really don't need this since we're just installing python
90+
# mamba-version: "*"
9091

9192
- name: Test wheels (Windows 64-bit only)
9293
if: ${{ matrix.buildplat[1] == 'win_amd64' }}
@@ -154,7 +155,8 @@ jobs:
154155
python-version: '3.8'
155156
channels: conda-forge
156157
channel-priority: true
157-
mamba-version: "*"
158+
# mamba fails to solve, also we really don't need this since we're just installing python
159+
# mamba-version: "*"
158160

159161
- name: Build sdist
160162
run: |
@@ -171,8 +173,8 @@ jobs:
171173
pip install hypothesis>=6.34.2 pytest>=7.0.0 pytest-xdist>=2.2.0 pytest-asyncio>=0.17
172174
cd .. # Not a good idea to test within the src tree
173175
python -c "import pandas; print(pandas.__version__);
174-
pandas.test(extra_args=['-m not clipboard and not single_cpu', '--skip-slow', '--skip-network', '--skip-db', '-n=2']);
175-
pandas.test(extra_args=['-m not clipboard and single_cpu', '--skip-slow', '--skip-network', '--skip-db'])"
176+
pandas.test(extra_args=['-m not clipboard and not single_cpu and not slow and not network and not db', '-n 2']);
177+
pandas.test(extra_args=['-m not clipboard and single_cpu and not slow and not network and not db'])"
176178
- uses: actions/upload-artifact@v3
177179
with:
178180
name: sdist

0 commit comments

Comments
 (0)