Skip to content

CI: Test on Windows arm64 runners#3911

Draft
weiji14 wants to merge 4 commits into
mainfrom
ci/windows-11-arm
Draft

CI: Test on Windows arm64 runners#3911
weiji14 wants to merge 4 commits into
mainfrom
ci/windows-11-arm

Conversation

@weiji14

@weiji14 weiji14 commented Apr 14, 2025

Copy link
Copy Markdown
Member

Description of proposed changes

Because why not have more failing Windows tests 😆

References:

Similar to #3778 but for Windows

Preview:

Reminders

  • Run make format and make check to make sure the code follows the style guide.
  • Add tests for new features or tests that would have caught the bug that you're fixing.
  • Add new public functions/methods/classes to doc/api/index.rst.
  • Write detailed docstrings for all functions/methods.
  • If wrapping a new module, open a 'Wrap new GMT module' issue and submit reasonably-sized PRs.
  • If adding new functionality, add an example to docstrings or tutorials.

Slash Commands

You can write slash commands (/command) in the first line of a comment to perform
specific operations. Supported slash command is:

  • /format: automatically format and lint the code

@weiji14 weiji14 added the maintenance Boring but important stuff for the core devs label Apr 14, 2025
@weiji14 weiji14 added this to the 0.16.0 milestone Apr 14, 2025
@weiji14 weiji14 self-assigned this Apr 14, 2025
@weiji14
weiji14 marked this pull request as ready for review April 14, 2025 23:56
@weiji14
weiji14 marked this pull request as draft April 14, 2025 23:59
@weiji14

weiji14 commented Apr 15, 2025

Copy link
Copy Markdown
Member Author

Getting an error on the setup-micromamba step at https://github.com/GenericMappingTools/pygmt/actions/runs/14458118336/job/40545485415?pr=3911:

Error: Unsupported platform: win32-arm64

I see that only win_arm64 as supported at https://github.com/mamba-org/mamba/blob/64a620a2aa046d7508a302a06d63f49425b48b7b/libmamba/include/mamba/specs/platform.hpp#L42 from mamba-org/mamba#2745. Maybe something needs to change on mamba, or the GitHub Actions runner. Edit: actually, probably need an extra entry here - https://github.com/mamba-org/setup-micromamba/blob/d17c2171caa36ec145ac7e4658406a66d9af236d/src/util.ts#L24-L31

@weiji14
weiji14 marked this pull request as ready for review July 24, 2026 23:45
@weiji14 weiji14 added this to the 0.20.0 milestone Jul 24, 2026
@weiji14

weiji14 commented Jul 24, 2026

Copy link
Copy Markdown
Member Author

Ok, setup-micromamba has Windows ARM now, but many dependencies are still missing windows-arm builds. Traceback from windows-11-arm - Python 3.14 run at https://github.com/GenericMappingTools/pygmt/actions/runs/30134638554/job/89615978772?pr=3911#step:4:55:

Details
  error    libmamba Could not solve for environment specs
      The following packages are incompatible
      ├─ contextily =* * is not installable because there are no viable options
      │  ├─ contextily [1.0.0|1.0.1|...|1.7.1] would require
      │  │  └─ matplotlib-base =* *, which does not exist (perhaps a missing channel);
      │  ├─ contextily 1.0rc2 would require
      │  │  └─ matplotlib =* *, which does not exist (perhaps a missing channel);
      │  └─ contextily [0.9.2|0.99.0|1.0rc1] would require
      │     └─ cartopy =* *, which does not exist (perhaps a missing channel);
      ├─ geopandas =* * is not installable because there are no viable options
      │  ├─ geopandas [1.0.0|1.0.1|...|1.1.4] would require
      │  │  └─ matplotlib-base =* *, which does not exist (perhaps a missing channel);
      │  ├─ geopandas 0.14.4 would require
      │  │  └─ fiona >=1.8.21 *, which does not exist (perhaps a missing channel);
      │  ├─ geopandas [0.14.0|0.14.1|0.14.2|0.14.3] would require
      │  │  └─ fiona >=1.8.21,<1.10.0a0 *, which does not exist (perhaps a missing channel);
      │  ├─ geopandas 0.13.2 would require
      │  │  └─ fiona >=1.8.19,<1.10.0a0 *, which does not exist (perhaps a missing channel);
      │  ├─ geopandas [0.12.1|0.12.2|0.13.0|0.13.1|0.13.2] would require
      │  │  └─ fiona <1.10.0a0 *, which does not exist (perhaps a missing channel);
      │  └─ geopandas [0.10.0|0.10.1|...|0.9.0] would require
      │     └─ fiona =* *, which does not exist (perhaps a missing channel);
      ├─ ghostscript =10.7.1 * does not exist (perhaps a typo or a missing channel);
      ├─ gmt =6.6.0 * does not exist (perhaps a typo or a missing channel);
      ├─ make =* * does not exist (perhaps a typo or a missing channel);
      ├─ netcdf4 =* * does not exist (perhaps a typo or a missing channel);
      ├─ numpy =2.5 * does not exist (perhaps a typo or a missing channel);
      ├─ pandas =* * does not exist (perhaps a typo or a missing channel);
      ├─ pyarrow-core =* * does not exist (perhaps a typo or a missing channel);
      ├─ pytest-mpl =* * is not installable because there are no viable options
      │  ├─ pytest-mpl 0.19.0 would require
      │  │  └─ matplotlib-base >=3.5.3 *, which does not exist (perhaps a missing channel);
      │  ├─ pytest-mpl 0.18.0 would require
      │  │  └─ matplotlib-base >=3.3.3 *, which does not exist (perhaps a missing channel);
      │  ├─ pytest-mpl [0.11|0.12|...|0.17.0] would require
      │  │  └─ matplotlib-base =* *, which does not exist (perhaps a missing channel);
      │  └─ pytest-mpl [0.10|0.11|0.8|0.9] would require
      │     └─ matplotlib =* *, which does not exist (perhaps a missing channel);
      ├─ rioxarray =* * is not installable because there are no viable options
      │  ├─ rioxarray [0.21.0|0.22.0] would require
      │  │  └─ rasterio >=1.4.3 *, which does not exist (perhaps a missing channel);
      │  ├─ rioxarray [0.20.0|0.21.0] would require
      │  │  └─ numpy >=2 *, which does not exist (perhaps a missing channel);
      │  ├─ rioxarray [0.15.1|0.15.2|...|0.20.0] would require
      │  │  └─ numpy >=1.23 *, which does not exist (perhaps a missing channel);
      │  ├─ rioxarray [0.13.3|0.13.4|0.14.0|0.14.1|0.15.0] would require
      │  │  └─ numpy >=1.21 *, which does not exist (perhaps a missing channel);
      │  ├─ rioxarray [0.10.0|0.10.1|...|0.9.1] would require
      │  │  └─ pyproj >=2.2 *, which does not exist (perhaps a missing channel);
      │  ├─ rioxarray [0.0.27|0.0.28|...|0.4.0] would require
      │  │  └─ pyproj >=2 *, which does not exist (perhaps a missing channel);
      │  ├─ rioxarray [0.0.18|0.0.19|...|0.0.26] would require
      │  │  └─ pillow =* *, which does not exist (perhaps a missing channel);
      │  └─ rioxarray [0.0.10|0.0.11|...|0.0.9] would require
      │     └─ rasterio =* *, which does not exist (perhaps a missing channel);
      ├─ sphinx-gallery =* * is not installable because there are no viable options
      │  ├─ sphinx-gallery [0.16.0|0.17.0|...|0.21.0] would require
      │  │  └─ pillow =* *, which does not exist (perhaps a missing channel);
      │  ├─ sphinx-gallery [0.10.0|0.10.1|...|0.9.0] would require
      │  │  └─ matplotlib-base =* *, which does not exist (perhaps a missing channel);
      │  └─ sphinx-gallery 0.5.0 would require
      │     └─ matplotlib =* *, which does not exist (perhaps a missing channel);
      └─ xarray =* * is not installable because there are no viable options
         ├─ xarray [2025.10.1|2025.11.0|...|2026.7.0] would require
         │  └─ numpy >=1.26 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2024.10.0|2024.11.0|...|2025.6.1] would require
         │  └─ numpy >=1.24 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2024.5.0|2024.6.0|2024.7.0] would require
         │  └─ numpy >=1.23 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2024.1.0|2024.1.1|2024.2.0|2024.3.0] would require
         │  └─ numpy >=1.23,<2.0a0 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2023.10.0|2023.10.1|2023.11.0|2023.12.0|2023.8.0] would require
         │  └─ numpy >=1.22,<2.0a0 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2023.2.0|2023.3.0|...|2023.9.0] would require
         │  └─ numpy >=1.21,<2.0a0 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2022.10.0|2022.11.0|2022.12.0|2023.1.0] would require
         │  └─ numpy >=1.20 *, which does not exist (perhaps a missing channel);
         ├─ xarray [2022.6.0|2022.9.0] would require
         │  └─ numpy >=1.19 *, which does not exist (perhaps a missing channel);
         ├─ xarray [0.20.0|0.20.1|...|2022.6.0] would require
         │  └─ numpy >=1.18 *, which does not exist (perhaps a missing channel);
         ├─ xarray [0.15.1|0.16.0|...|0.19.0] would require
         │  └─ numpy >=1.17 *, which does not exist (perhaps a missing channel);
         ├─ xarray 0.15.0 would require
         │  └─ numpy >=1.15 *, which does not exist (perhaps a missing channel);
         ├─ xarray [0.14.0|0.14.1] would require
         │  └─ numpy >=1.14 *, which does not exist (perhaps a missing channel);
         └─ xarray [0.12.0|0.12.1|0.12.2|0.12.3|0.13.0] would require
            └─ numpy >=1.12 *, which does not exist (perhaps a missing channel).
  critical libmamba Could not solve for environment specs

Need to wait for a whole bunch of packages (numpy, gmt itself, etc), see status on https://conda-forge.org/status/migration/?name=supportwindowsarm64platform.

@weiji14
weiji14 marked this pull request as draft July 24, 2026 23:57
@weiji14 weiji14 modified the milestones: 0.20.0, 0.21.0 Jul 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

maintenance Boring but important stuff for the core devs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants