Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
100 commits
Select commit Hold shift + click to select a range
9f83a9a
Correct unit to units in AuxCoord docstring (#6348)
jfrost-mo Mar 1, 2025
409b1d1
Bump scitools/workflows from 2025.02.3 to 2025.03.1 (#6357)
dependabot[bot] Mar 6, 2025
9fede7c
Use realized data in benchmarks when requested (#6339)
bouweandela Mar 6, 2025
c6f65a2
Make array equal work with masked Dask arrays and add tests (#6325)
bouweandela Mar 7, 2025
0ae0d49
Handle NetCDF variable length strings (and other VLen types) (#6340)
ukmo-ccbunney Mar 7, 2025
8745465
[pre-commit.ci] pre-commit autoupdate (#6356)
pre-commit-ci[bot] Mar 7, 2025
cf85915
Combine cubes 2 (#6334)
pp-mo Mar 7, 2025
df5c55f
Updated environment lockfiles (#6359)
scitools-ci[bot] Mar 10, 2025
92d0d63
Tolerant handling of `standard_name` and dimension coordinate loading…
trexfeathers Mar 10, 2025
a09eba1
Update CF standard names table. (#6361)
ESadek-MO Mar 10, 2025
8e20079
Whats new updates for v3.12.0rc0 . (#6362)
pp-mo Mar 10, 2025
99dbd26
[pre-commit.ci] pre-commit autoupdate (#6363)
pre-commit-ci[bot] Mar 10, 2025
d8d7994
Merging release branch into main
pp-mo Mar 11, 2025
d76810e
Restore latest Whats New files.
pp-mo Mar 11, 2025
60e6793
Remove patch section from new blank whatsnew 'latest.rst'.
pp-mo Mar 11, 2025
ab02001
Merge pull request #6364 from pp-mo/v3.12.x.mergeback
ESadek-MO Mar 11, 2025
e29bfa8
Updated environment lockfiles (#6366)
scitools-ci[bot] Mar 17, 2025
d692a5f
Bump scitools/workflows from 2025.03.1 to 2025.03.3 (#6365)
dependabot[bot] Mar 17, 2025
0ec821d
Whats new updates for v3.12.0 . (#6376)
pp-mo Mar 24, 2025
aabc493
Merge pull request #6379 from SciTools/v3.12.x
ESadek-MO Mar 24, 2025
ea1e2dd
[pre-commit.ci] pre-commit autoupdate (#6371)
pre-commit-ci[bot] Mar 24, 2025
eea55d6
Fix typo in cape docs (#6380)
lbdreyer Mar 25, 2025
e09fe14
Add ci-template-check.yml. (#6377)
trexfeathers Mar 26, 2025
1c7fdd8
Bump scitools/workflows from 2025.03.3 to 2025.03.4 (#6372)
dependabot[bot] Mar 26, 2025
4518005
Updated environment lockfiles (#6375)
scitools-ci[bot] Mar 26, 2025
2605673
Bump scitools/workflows from 2025.03.4 to 2025.03.8 (#6382)
dependabot[bot] Mar 27, 2025
6928d4b
Run linkchecks regularly, instead of on PRs (#6386)
pp-mo Mar 28, 2025
e40215d
Updated environment lockfiles (#6389)
scitools-ci[bot] Mar 31, 2025
69f775e
Whatsnew for scheduled link-checks. (#6392)
pp-mo Mar 31, 2025
8062e63
Remove obsolete link-check config. (#6394)
pp-mo Mar 31, 2025
d1b66b8
Bump lycheeverse/lychee-action from 2.3.0 to 2.4.0 (#6400)
dependabot[bot] Apr 3, 2025
bf9e9ba
docs: purge linkcheck within makefile (#6397)
bjlittle Apr 3, 2025
7414937
Removed some unnecessary `global` declarations that were upssetting (…
ukmo-ccbunney Apr 3, 2025
4d3de26
TST: fix image comparison failures (#6395)
rcomer Apr 4, 2025
e18ea9d
[pre-commit.ci] pre-commit autoupdate (#6396)
pre-commit-ci[bot] Apr 8, 2025
5c7845e
Updated environment lockfiles (#6403)
scitools-ci[bot] Apr 8, 2025
a1c791e
Bump scitools/workflows from 2025.03.8 to 2025.04.0 (#6406)
dependabot[bot] Apr 10, 2025
9f981ca
[pre-commit.ci] pre-commit autoupdate (#6409)
pre-commit-ci[bot] Apr 14, 2025
dbeda2f
Updated environment lockfiles (#6408)
scitools-ci[bot] Apr 15, 2025
7fd73e8
[pre-commit.ci] pre-commit autoupdate (#6413)
pre-commit-ci[bot] Apr 21, 2025
2b9ddae
Bump scitools/workflows from 2025.04.0 to 2025.04.3 (#6418)
dependabot[bot] Apr 24, 2025
8379188
Update Iris benchmarking to align with templating (#6421)
trexfeathers Apr 25, 2025
aae05aa
Align MANIFEST.in with scitools template. (#6414)
pp-mo Apr 25, 2025
6d984ae
Realign with re-styled template. (#6422)
pp-mo Apr 25, 2025
ec33cd0
Remove `setup.py develop` command (#6424)
trexfeathers Apr 28, 2025
90e36fe
[pre-commit.ci] pre-commit autoupdate (#6425)
pre-commit-ci[bot] Apr 28, 2025
129d746
pep639: setuptools license and license-files fields (#6428)
bjlittle Apr 30, 2025
438f83f
Run linkchecks regularly, instead of on PRs (#6386)
pp-mo Mar 28, 2025
a6b4b19
Update Iris benchmarking to align with templating (#6421)
trexfeathers Apr 25, 2025
6df2d64
Remove `setup.py develop` command (#6424)
trexfeathers Apr 28, 2025
6dd0ad5
Merge pull request #6430 from trexfeathers/cherry-pick-312
ESadek-MO Apr 30, 2025
8962e3b
Whats new updates for v3.12.1 (#6431)
trexfeathers Apr 30, 2025
cb28338
Bump scitools/workflows from 2025.04.3 to 2025.04.4 (#6432)
dependabot[bot] May 1, 2025
c0b5ac5
Fix broken link SciTools/iris#6427. (#6429)
trexfeathers May 1, 2025
1df0f1c
Merging release branch into main
trexfeathers May 1, 2025
dc33b2e
Remove duplicate What's New entry.
trexfeathers May 2, 2025
416b23e
Merge pull request #6435 from trexfeathers/3121-mergeback
ESadek-MO May 2, 2025
7e3c921
Temporary Nox negation pin - see wntrblm/nox#961. (#6441)
trexfeathers May 2, 2025
220b860
[pre-commit.ci] pre-commit autoupdate (#6445)
pre-commit-ci[bot] May 6, 2025
d853046
Adds a warning for `iris.coord_categorisation.add_season_membership` …
HGWright May 7, 2025
9650c27
Bump scitools/workflows from 2025.04.4 to 2025.05.1 (#6448)
dependabot[bot] May 8, 2025
9fbb360
Compatibility with Dask `2025.4` (#6451)
trexfeathers May 9, 2025
ffaaab9
Whats new updates for v3.12.2 . (#6452)
trexfeathers May 9, 2025
1014db1
Merging release branch into main.
trexfeathers May 9, 2025
a3155ed
Restore open What's New dropdowns.
trexfeathers May 9, 2025
c37fc92
Merge pull request #6453 from trexfeathers/312-2-mergeback
bjlittle May 9, 2025
cc2145a
Updated environment lockfiles (#6412)
scitools-ci[bot] May 9, 2025
75e09f5
Fix linkcheck failures (#6455)
trexfeathers May 9, 2025
1285efb
Various linkcheck fixes and improvements (#6460)
trexfeathers May 12, 2025
cfe0357
[pre-commit.ci] pre-commit autoupdate (#6463)
pre-commit-ci[bot] May 13, 2025
16c6a33
social: migrate from x to bluesky (#6237)
bjlittle May 13, 2025
dac71a7
Bump scitools/workflows from 2025.05.1 to 2025.05.2 (#6466)
dependabot[bot] May 15, 2025
f9b8ef0
Bump lycheeverse/lychee-action from 2.4.0 to 2.4.1 (#6467)
dependabot[bot] May 15, 2025
4d42439
New testing facilities (WIP temporary).
pp-mo May 14, 2025
905493f
Fixes?
pp-mo May 16, 2025
4efdf9d
Updated environment lockfiles (#6469)
scitools-ci[bot] May 19, 2025
d300d41
[pre-commit.ci] pre-commit autoupdate (#6470)
pre-commit-ci[bot] May 20, 2025
be7f48c
Also convert attribute units when calling `convert_units` (#6416)
bouweandela May 20, 2025
9017fd2
Bump scitools/workflows from 2025.05.2 to 2025.05.3 (#6471)
dependabot[bot] May 22, 2025
8dea269
Allow masked data in coords (#6468)
ukmo-ccbunney May 23, 2025
40bd935
Updated environment lockfiles (#6474)
scitools-ci[bot] May 27, 2025
313d154
[pre-commit.ci] pre-commit autoupdate (#6475)
pre-commit-ci[bot] May 27, 2025
cc6183e
Remove links for invalid derived bounds.
pp-mo May 28, 2025
c35bdd1
Updated tests for derived bounds : WIP working but more to do.
pp-mo May 28, 2025
917818b
Completed checks, tidied up and removed debug.
pp-mo May 28, 2025
7927212
Bump scitools/workflows from 2025.05.3 to 2025.05.4 (#6482)
dependabot[bot] May 29, 2025
ee74499
Replace test datafile with CDL in test.
pp-mo May 29, 2025
ad29c2b
Remove redundant imports.
pp-mo May 29, 2025
b7dd7bc
Remerge split code sections for derived-bounds-handling/not.
pp-mo May 29, 2025
3061514
Replace try-except; adjust some varnames and comments.
pp-mo May 30, 2025
6aa9c81
Revised handling of invalid bounds ref.
pp-mo May 30, 2025
a29edd9
Merge branch 'main' into pp_derived_bounds
pp-mo May 30, 2025
171d07d
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2025
f18ecee
adding more comments for readability + removing unused imports
HGWright May 30, 2025
7a44db5
adding more comments covering the rest of the code
HGWright May 30, 2025
eb0419f
Merge pull request #119 from HGWright/pp_pp_derived_bounds
pp-mo May 30, 2025
3ee6367
Fix future string conversions.
pp-mo May 30, 2025
de76115
Fix blank link style error.
pp-mo May 30, 2025
957161f
Tidy safe reference checking code.
pp-mo May 30, 2025
0b370aa
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] May 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/benchmarks_report.yml
Original file line number Diff line number Diff line change
Expand Up @@ -80,4 +80,4 @@ jobs:
- name: Post reports
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: python benchmarks/bm_runner.py _gh_post
run: benchmarks/bm_runner.py _gh_post
19 changes: 17 additions & 2 deletions .github/workflows/benchmarks_run.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ on:

jobs:
pre-checks:
# This workflow supports two different scenarios (overnight and branch).
# The pre-checks job determines which scenario is being run.
runs-on: ubuntu-latest
if: github.repository == 'SciTools/iris'
outputs:
Expand All @@ -36,9 +38,11 @@ jobs:
# SEE ALSO .github/labeler.yml .
paths: requirements/locks/*.lock setup.py
- id: overnight
name: Check overnight scenario
if: github.event_name != 'pull_request'
run: echo "check=true" >> "$GITHUB_OUTPUT"
- id: branch
name: Check branch scenario
if: >
github.event_name == 'pull_request'
&&
Expand Down Expand Up @@ -67,13 +71,14 @@ jobs:

steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4
- name: Checkout repo
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Install Nox
run: |
pip install nox
pip install nox!=2025.05.01

- name: Cache environment directories
id: cache-env-dir
Expand Down Expand Up @@ -107,6 +112,8 @@ jobs:
echo "OVERRIDE_TEST_DATA_REPOSITORY=${GITHUB_WORKSPACE}/${IRIS_TEST_DATA_PATH}/test_data" >> $GITHUB_ENV

- name: Benchmark this pull request
# If the 'branch' condition(s) are met: use the bm_runner to compare
# the proposed merge with the base branch.
if: needs.pre-checks.outputs.branch == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -115,10 +122,14 @@ jobs:
nox -s benchmarks -- branch origin/${{ github.base_ref }}

- name: Run overnight benchmarks
# If the 'overnight' condition(s) are met: use the bm_runner to compare
# each of the last 24 hours' commits to their parents.
id: overnight
if: needs.pre-checks.outputs.overnight == 'true'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# The first_commit argument allows a custom starting point - useful
# for manual re-running.
run: |
first_commit=${{ inputs.first_commit }}
if [ "$first_commit" == "" ]
Expand All @@ -132,6 +143,8 @@ jobs:
fi

- name: Warn of failure
# The overnight run is not on a pull request, so a failure could go
# unnoticed without being actively advertised.
if: >
failure() &&
steps.overnight.outcome == 'failure'
Expand All @@ -143,13 +156,15 @@ jobs:
gh issue create --title "$title" --body "$body" --label "Bot" --label "Type: Performance" --repo $GITHUB_REPOSITORY

- name: Upload any benchmark reports
# Uploading enables more downstream processing e.g. posting a PR comment.
if: success() || steps.overnight.outcome == 'failure'
uses: actions/upload-artifact@v4
with:
name: benchmark_reports
path: .github/workflows/benchmark_reports

- name: Archive asv results
# Store the raw ASV database(s) to help manual investigations.
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
Expand Down
35 changes: 35 additions & 0 deletions .github/workflows/ci-linkchecks.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Linkcheck

on:
workflow_dispatch:
schedule:
- cron: "00 06 * * *"

jobs:
linkChecker:
runs-on: ubuntu-latest
permissions:
issues: write # required for peter-evans/create-issue-from-file
steps:
- uses: actions/checkout@v4

- name: Link Checker
id: lychee
uses: lycheeverse/lychee-action@82202e5e9c2f4ef1a55a3d02563e1cb6041e5332
with:
token: ${{secrets.GITHUB_TOKEN}}
fail: false
args: "--verbose --max-concurrency 1 './docs/**/*.rst' './docs/**/*.inc' './lib/**/*.py'"

- name: Create Issue From File
if: steps.lychee.outputs.exit_code != 0
uses: peter-evans/create-issue-from-file@e8ef132d6df98ed982188e460ebb3b5d4ef3a9cd
with:
title: Link Checker Report
content-filepath: ./lychee/out.md
labels: "Bot, Type: Documentation, Type: Bug"

- name: Fail Workflow On Link Errors
if: steps.lychee.outputs.exit_code != 0
run:
exit {{ steps.lychee.outputs.exit_code }}
2 changes: 1 addition & 1 deletion .github/workflows/ci-manifest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,4 @@ concurrency:
jobs:
manifest:
name: "check-manifest"
uses: scitools/workflows/.github/workflows/ci-manifest.yml@2025.02.3
uses: scitools/workflows/.github/workflows/ci-manifest.yml@2025.05.4
16 changes: 16 additions & 0 deletions .github/workflows/ci-template-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Checks if a PR makes any changes that ought to be shared via templating.
# See the called workflow in the scitools/workflows repo for more details.

name: ci-template-check

on:
pull_request_target:
branches:
- main

jobs:
prompt-share:
uses: scitools/workflows/.github/workflows/[email protected]
secrets: inherit
with:
pr_number: ${{ github.event.pull_request.number }}
2 changes: 1 addition & 1 deletion .github/workflows/ci-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ jobs:
matrix:
os: ["ubuntu-latest"]
python-version: ["3.13"]
session: ["doctest", "gallery", "linkcheck"]
session: ["doctest", "gallery"]
include:
- os: "ubuntu-latest"
python-version: "3.13"
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/refresh-lockfiles.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,5 +14,5 @@ on:

jobs:
refresh_lockfiles:
uses: scitools/workflows/.github/workflows/refresh-lockfiles.yml@2025.02.3
uses: scitools/workflows/.github/workflows/refresh-lockfiles.yml@2025.05.4
secrets: inherit
59 changes: 59 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
# nonfunctional, found in some code examples
file:///

# DEAD : legacy in various old whatsnews
https://biggus.readthedocs.io

# unkown problem, works in browser : used in further_topics/ugrid/data_model
https://doi.org/10.3390/jmse2010194

# DEAD, todo:remove, used in docs/src/userguide/plotting_a_cube.rst
https://effbot.org

# nonfunctional, found in some code examples
https://foo/

# DEAD, todo:remove, used in docs/src/further_topics/ugrid/data_model.rst
https://ibm-design-language.eu-de.mybluemix.net/design/language/resources/color-library

# DEAD, legacy in whatsnew/1.4.rst
https://geoport.whoi.edu/thredds/dodsC/bathy/gom15

# exist, but bad certificates
https://georepository.com
https://geoport.whoi.edu:80/thredds/

# catch (at least) github userids, of which many in whatsnews, too many --> "too many requests" failures
https://github.com/[^/]*$

# GitHub seems especially keen to rate-limit "blob" URLs.
# (maybe because these are especially associated with abuse?)
https://github.com/[^/]*/[^/]*/blob/.*

# nonfunctional example, used in docs/src/developers_guide/gitwash/development_workflow.rst
https://github.com/your-user-name/iris

# problem with bad certificate (review sometime?)
https://scitools.github.com/cartopy

# returns 403 when accessed from GitHub Actions
https://stackoverflow.com

# legacy ref in whatsnew/3.0.rst
https://stickler-ci.com

# DEAD, todo:remove, used in lib/iris/symbols.py
https://www.wmo.int/pages/prog/www/DPFS/documents/485_Vol_I_en_colour.pdf

# DEAD, todo:remove, used in docs/src/userguide/plotting_a_cube.rst
# unkown problem, works in browser : used in docs/src/index.rst
https://www.flaticon.com

# nonfunctional example, used in lib/iris/io/__init__.py
https://www.thing.com

# DEAD, todo:remove, used in docs/src/userguide/plotting_a_cube.rst
https://www.personal.psu.edu/cab38/ColorBrewer/ColorBrewer_updates.html

# nonfunctional, found in some code examples
https://www.somehost.com
4 changes: 2 additions & 2 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ repos:
- id: no-commit-to-branch

- repo: https://github.com/astral-sh/ruff-pre-commit
rev: "v0.9.7"
rev: "v0.11.11"
hooks:
- id: ruff
types: [file, python]
Expand All @@ -45,7 +45,7 @@ repos:
additional_dependencies: [tomli]

- repo: https://github.com/PyCQA/flake8
rev: 7.1.2
rev: 7.2.0
hooks:
- id: flake8
types: [file, python]
Expand Down
99 changes: 89 additions & 10 deletions MANIFEST.in
Original file line number Diff line number Diff line change
@@ -1,33 +1,112 @@
prune .github
prune benchmarks
prune docs
prune etc
# NOTE: based on a generic template in Scitools/.github/templates/MANIFEST.in

# General principles
# - enable user to build locally, as well as in CI
# - make it ignore temporary files generated by dev processes, e.g. coverage checks
# - encode typical decisions, e.g. whether we package docs, requirements etc

#---------
# SECTION: main code sources
# N.B. package dir is "lib" not "src"
recursive-include lib *.cdl *.cml *.json *.md *.py *.template *.txt *.xml
# principles:
# - *no* "prune" command is used
# - use "include-recursive", by relevant file extensions
# hints:
# - top-level dir is typically "src", but maybe "lib" or <package-name>
# - default package rules mean we generally don't actually *need* a statement
# - but it's better to be explicit
# - extension filetypes are typically sources (*.py)
# - might also need testdata files, e.g. *.nc, *.npy *.npz
# - also possibly non-python, e.g. *.pyx for Cython


#---------
# SECTION: docs
prune docs
# and if required ... include ONLY docs source files.
# E.G. recursive-include docs *.rst *.inc
# principles:
# - use prune to ignore everything (optionally: except the docs sources)
# hints:
# - most projects don't want to package the docs, but some currently do (cf-units).


#---------
# SECTION: requirements
prune requirements
recursive-include requirements *.txt
prune tools
# principles:
# include just requirements-level info, not lock files
# hints:
# - not all projects include requirements, but they can be drawn in anyway by dynamic dependencies
# in the setuptools build process, linked via config in pyproject.toml
# - for some repos, the *.txt are actually lockfiles. This probably needs fixing.


#---------
# SECTION: root files
exclude .flake8
exclude .git-blame-ignore-revs
exclude .git_archival.txt
exclude .gitattributes
exclude .gitignore
exclude .lycheeignore
exclude .mailmap
exclude .pre-commit-config.yaml
exclude .readthedocs.yml
exclude .ruff.toml
exclude CHANGES
include CITATION.cff
exclude CODE_OF_CONDUCT.md
exclude codecov.yml
include COPYING
include COPYING.LESSER
include CITATION.cff
include LICENSE
exclude Makefile
exclude noxfile.py
exclude codecov.yml
include noxfile.py
# principles:
# - *ANY* file in the root should be explicitly "include"- or "exclude"-d
# - EXCEPT (possibly) those covered by setuptools default rules (see above link)
# - including : README.md/.rst; pyproject.toml; setup.py/.cfg
# - N.B. a GHA "ci-manifest" check, if used, will check all this
# - the above are typical ones : given in sorted order
# - NB many will (eventually) be templated, but that is a separate issue
# - probably, this section can be included as *boilerplate*
# - i.e. it doesn't matter if some of the files mentioned don't exist


#---------
# SECTION: generic exclusions
# (1) top-level directories to omit entirely
prune .github
prune .nox
prune .tox
prune .coverage
# (2) top-level files to omit
exclude .coveragerc
# (3) file types (path patterns) to skip everywhere
global-exclude *.py[cod]
global-exclude __pycache__
# principles:
# - common directories, files and file-types to be generally ignored
# - all outside version control, temporary non-coding output and cache data
# produced by dev processes, automation or user tools
# - by having this section LAST, it can remove files which might have been added by
# previous sections -- such as python compiler cache files
# - can include this section as **boilerplate** :
# - won't all exist in every repo, but including them all does no harm


#
#=================================
# Local Iris-specific settings
#
prune benchmarks
prune etc
prune tools

# files required to build iris.std_names module
include etc/cf-standard-name-table.xml
include tools/generate_std_names.py

global-exclude *.py[cod]
global-exclude __pycache__
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
| | |
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| ⚙️ CI | [![ci-manifest](https://github.com/SciTools/iris/actions/workflows/ci-manifest.yml/badge.svg)](https://github.com/SciTools/iris/actions/workflows/ci-manifest.yml) [![ci-tests](https://github.com/SciTools/iris/actions/workflows/ci-tests.yml/badge.svg)](https://github.com/SciTools/iris/actions/workflows/ci-tests.yml) [![ci-wheels](https://github.com/SciTools/iris/actions/workflows/ci-wheels.yml/badge.svg)](https://github.com/SciTools/iris/actions/workflows/ci-wheels.yml) [![pre-commit](https://results.pre-commit.ci/badge/github/SciTools/iris/main.svg)](https://results.pre-commit.ci/latest/github/SciTools/iris/main) |
| 💬 Community | [![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-2.1-4baaaa.svg)](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) [![GH Discussions](https://img.shields.io/badge/github-discussions%20%F0%9F%92%AC-yellow?logo=github&logoColor=lightgrey)](https://github.com/SciTools/iris/discussions) [![twitter](https://img.shields.io/twitter/follow/scitools_iris?color=yellow&label=twitter%7Cscitools_iris&logo=twitter&style=plastic)](https://twitter.com/scitools_iris) |
| 📖 Documentation | [![rtd](https://readthedocs.org/projects/scitools-iris/badge/?version=latest)](https://scitools-iris.readthedocs.io/en/latest/?badge=latest) |
| 💬 Community | [![Contributor Covenant](https://img.shields.io/badge/contributor%20covenant-2.1-4baaaa.svg)](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) [![GH Discussions](https://img.shields.io/badge/github-discussions%20%F0%9F%92%AC-yellow?logo=github&logoColor=lightgrey)](https://github.com/SciTools/iris/discussions) [![bluesky](https://img.shields.io/badge/scitools-0285FF?label=bluesky&logo=bluesky&logoColor=0285FF)](https://bsky.app/profile/scitools.bsky.social) |
| 📖 Documentation | [![rtd](https://readthedocs.org/projects/scitools-iris/badge/?version=latest)](https://scitools-iris.readthedocs.io/en/latest/?badge=latest) [![Check Links](https://github.com/SciTools/iris/actions/workflows/ci-linkchecks.yml/badge.svg)](https://github.com/SciTools/iris/actions/workflows/ci-linkchecks.yml) |
| 📈 Health | [![codecov](https://codecov.io/gh/SciTools/iris/branch/main/graph/badge.svg?token=0GeICSIF3g)](https://codecov.io/gh/SciTools/iris) |
| ✨ Meta | [![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff) [![NEP29](https://raster.shields.io/badge/follows-NEP29-orange.png)](https://numpy.org/neps/nep-0029-deprecation_policy.html) [![license - bds-3-clause](https://img.shields.io/github/license/SciTools/iris)](https://github.com/SciTools/iris/blob/main/LICENSE) [![conda platform](https://img.shields.io/conda/pn/conda-forge/iris.svg)](https://anaconda.org/conda-forge/iris) |
| 📦 Package | [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.595182.svg)](https://doi.org/10.5281/zenodo.595182) [![conda-forge](https://img.shields.io/conda/vn/conda-forge/iris?color=orange&label=conda-forge&logo=conda-forge&logoColor=white)](https://anaconda.org/conda-forge/iris) [![pypi](https://img.shields.io/pypi/v/scitools-iris?color=orange&label=pypi&logo=python&logoColor=white)](https://pypi.org/project/scitools-iris/) [![pypi - python version](https://img.shields.io/pypi/pyversions/scitools-iris.svg?color=orange&logo=python&label=python&logoColor=white)](https://pypi.org/project/scitools-iris/) |
Expand Down
Loading
Loading