Changelog#
リリースバージョンは Semantic Versioning つまり``<major>.<minor>.<patch>`` に従っています。
後方互換性のない変更は <major> バージョンでのみ導入され、 <minor> リリースの 🔥 非推奨 セクションで事前に通知されます。
v0.6.0.dev1023 (2026-06-07)#
💣 Breaking Changes#
#1468: Adopted PEP 570 and PEP 3102 to enforce clarity on position-only and keyword-only parameters in public API functions and methods. (@bjlittle)
#1751: Renamed the following
geovista downloadcommand line interface (CLI) flags--imageto--images, and--rasterto--rasters. (@bjlittle)#1984: Renamed the utility function
sanitize_datatogeovista.common.sanitize_vtk(). (@bjlittle)#2176: Renamed the convenience dataclass
SampleStructuredXYZtogeovista.pantry.data.SamplePointsXYZ. (@bjlittle)#2259: Replaced the
geovista.thememodule withgeovista.themes. Previously the global plotting theme was updated as a side-effect by importinggeovista.theme. Insteadgeovista.themesadopts the new extensiblepyvista.plotting.themes.Themeplugin registry framework for third-party packages available from>=0.48.0. (@bjlittle)
✨ New Features#
#1368: Added the
geovista.geodesic.BBox.outlineproperty to provide the outline edges of the geometry defining the associated geodesic bounding-box manifold. (@bjlittle)#1499: Added the
geovista --data-versionoption to the command line interface (CLI) to show the configured geovista-data version. (@bjlittle)#1751: Added the
--doc-imagesand--unit-imagesflags to thegeovista downloadcommand line interface (CLI) to download documentation test and unit test assets separately. (@bjlittle)#1872: Added the
bboxproperty to thegeovista.geoplotter.GeoPlotterBaseallowing users to consistently subset the render so that only geometries enclosed by the bounding-box are rendered, including coastlines, base layers, meshes, graticule meridians/parallels and their labels. Closes #1869. (@RobWatersMet)#1908: Added alternative
geovista.geodesic.BBoxworkflow equivalent toenclosed(). ABBoxinstance is now callable, extracting the region from the single argumentmeshcontained within its geodesic bounded-box manifold e.g.,bbox(mesh)is equivalent tobbox.enclosed(mesh). The behaviour of theBBoxinstance is configured with theoutside,preferenceandtolerancegetter/setter properties. (@bjlittle)#1985: Added the utility function
geovista.common.sanitize()to purge standard index arrays from one or more meshes. (@bjlittle)#2014: Added a new
factorkeyword togeovista.gridlines.create_meridians()andgeovista.gridlines.create_parallels()methods. This new keyword and the existingn_sampleskeyword are have also been made available via thegeovista.geoplotter.GeoPlotterBase.add_graticule()convenience function. Closes #1994. (@ukmo-ccbunney)#2079: Added
--tidyoption togeovista downloadto remove old asset directories from the geovista cache whilst keeping the current data version. Closes #2073. (@ukmo-ccbunney)#2102: Added graticule actor naming for meridians, parallels and labels thus allowing them to be easily updated or removed from the plotter scene. (@bjlittle)
#2185: Added initial
pyvista.StructuredGridsupport with thegeovista.bridge.Transform.to_structured_grid()method, along with a supporting Grid gallery section. (@bjlittle)#2259: Added the
geovista.themesmodule which adopts the extensiblepyvista.plotting.themes.Themeplugin registry framework for third-party packages (pyvista >=0.48.0). Includes the newGeoVistaDocumentThemeandGeoVistaThemeboth of which are discoverable and registered by pyvista throughentry-points(PEP621). TheGeoVistaThemewill be loaded and enabled by default. Override this behaviour with the GEOVISTA_DISABLE_PLOT_THEME environment variable. Additionally provisions the following functionality:#676: Added support for 3D vectors in
geovista.bridge.Transform.from_points()(@pp-mo)#997: Added NASA Black Marble "night lights" global texture
geovista.pantry.textures.black_marble(). Closes #992. (@bjlittle)
🚀 Enhancements#
#1300: Made the entire code base mypy compliant. This should make development faster and more intuitive for anyone using an IDE and/or any sort of type-checking. (@trexfeathers)
#1389: Extended the
geovista.themeto automatically reposition an outlined and filled scalar bar for improved readability. (@bjlittle)#1472: Migrated infrastructure from tox to pixi 🧚. Closes #154 and #170. (@bjlittle)
#1982: Enhanced
geovista.geodesic.BBox.enclosed()to support geodesic manifold extraction of projected surfaces. (@bjlittle)#1990: Enabled the
allow_empty_meshoption for ourgeovista.theme, which permits empty meshes to be added to a plotter scene without exception. (@bjlittle)#2023: Updated
geovista.geodesic.BBoxto allow corner points to be specified in different projections via newcrskeyword (defaults togeovista.crs.WGS84). Closes #1986. (@ukmo-ccbunney)#2033: Optimised
geovista.geoplotter.GeoPlotterBasemanifold extraction introduced by #1872 which is now specified through the genericmanifoldkeyword argument instead ofbbox, and accessed through themanifoldproperty. Additionally, empty meshes may be added to aGeoPlotterwithout exception. (@bjlittle)
🐛 Bug Fixes#
#1184: Fixed
geovista.bridge.Transform.from_points()to create a mesh from scalar spatial points. (@bjlittle)#1202: Configured bespoke
User-Agentwithinrequestsheader ofpooch.Pooch.fetch()to avoid flakyHTTP403 Forbidden error responses when downloading assets from the geovista-data repository. (@bjlittle)#1301: Fixed
geovista.common.from_cartesian()to handle polar points with no associated cell. (@bjlittle)#1436: Fixed
geovista.cachetests forWindowsplatform. (@beroda)#1466: Ensured to close the
pooch.Poochcache registry after configuration. (@bjlittle)#1956: Fixed gallery carousel generation to support mixed-case URL targets for sphinx-design card carousels. (@tkknight)
#1977: Fixed
geovista.transformsuch thattransform_mesh(),transform_point(), andtransform_points()correctly handle a projected CRS source transformation. Additionally,geovista.geoplotter.GeoPlotterBase.add_mesh()correctly renders a projected CRS geometry within a plotter scene. (@bjlittle)#2018: Fixed issue where
mesh_argswere not always being passed to the GeoPlotter when adding graticule meridians/parallels. (@ukmo-ccbunney)#2042: Removed the
geovista.themeopinionated scalar bar configuration for fixed position and size. Rather, default to adaptive positioning and scale behaviour offered bypyvista, leaving the user to customise. Otherwise ageovistathemed scalar bar can easily render incorrectly. (@bjlittle)#2050: Added defensive guard within
geovista.geoplotter.GeoPlotterBase.add_mesh()prior to accessing theis_emptyproperty, which does not exist on all pyvista instances. (@bjlittle)
🔗 Dependencies#
#1000: Skip the
tests.bridge.test_from_tifftests if the rasterio optional package dependency is not installed. (@bjlittle)#1001: Skip individual
geovista.examplesimage tests if their optional package dependencies are not installed. (@bjlittle)#1013: Introduced minimum pin
sphinx-tags >=0.4for multi-line tags support. (@bjlittle)#1019: Introduced minimum pin
sphinx-autoapi >=3.0.0and purge use of obsoleteautoapi_typeconfiguration option. (@bjlittle)#1020: Added the sphinx-changelog package dependency for rendering a
changelogfrom news fragments using towncrier and generating a releasechangelog. (@bjlittle)#1039: Introduced temporary maximum pin
towncrier <24.7.0due to breaking change for sphinx-changelog. (@bjlittle)#1040: Bumped
mambaforgefrom22.9to23.11forreadthedocsand introduced minimum pinlazy_loader >=0.4. (@bjlittle)#1051: Introduced minimum pin
sphinx-autoapi >=3.2.0. (@bjlittle)#1067: Unpinned towncrier and introduced minimum pin
sphinx-changelog >=1.6.0. (@bjlittle)#1118: Adopted Scientific Python SPEC-0, a common time-based policy for dropping dependencies. This replaces the NEP-29 deprecation policy. (@bjlittle)
#1157: Introduced temporary minimum pin
h3-py ==3.7.7to avoid breaking major release4.xbehaviour. (@bjlittle)#1178: Dropped the optional
pyarrowdependency aspandas >2.2.0no longer issues aDeprecationWarning. (@bjlittle)#1188: Introduced minimum pin
rasterio >=1.4.2to supportgdal >=3.10.0. (@bjlittle)#1242: Enabled
sphinx.ext.durationto assist with identifying documentation building bottlenecks. (@bjlittle)#1243: Adopted
numpy >=1.25minimum pin to comply with SPEC-0 package deprecation policy. (@bjlittle)#1255: Avoid using
pydata-sphinx-theme 0.16.1, see #1247. (@bjlittle)#1276: Introduced temporary maximum pin
pydata-sphinx-theme <0.16.0, see #1247. (@bjlittle)#1372: Introduced minimum pin
sphinx-gallery >=0.17forREADME.rsttoGALLERY_HEADER.rstmigration. (@bjlittle)#1428: Introduced minimum pin
setuptools >=77.0.3to support PEP 639 changes tolicenseandlicense-filesfields in thepyproject.toml. (@bjlittle)#1494: Introduced minimum pin
pyvista >=0.45.0and dropped the pytest plugin pytest-xvfb for headless display support. (@bjlittle)#1496: Extended distribution support to cover
py313. (@bjlittle)#1561: Introduced pin
trame-vtk ==2.8.15to avoid subplot interactive scene behaviour regression. (@bjlittle)#1572: Added pytest-pretty plugin for pretty printing of the
pytestsummary. (@bjlittle)#1760: Added vtk-xref
sphinxextension for linking directly to VTK's documentation using the:vtk:reference role. (@bjlittle)#1763: Refreshed the
geovista.report.Reportpackage dependencies. (@bjlittle)#1808: Added sphinxcontrib-mermaid
sphinxextension for rendering embedded mermaid diagrams. (@bjlittle)#1943: Added sphinxcontrib-bibtex
sphinxextension for BibTeX style citations and references. (@bjlittle)#2072: Refreshed the
geovista.report.Reportto reflect the package migration fromnest-asynciotonest-asyncio2forpyvista >=0.47.0. (@bjlittle)#2128: Migrated from the obsolete
libgl1-mesa-glxpackage to the modern equivalentlibgl1andlibglx-mesa0. (@bjlittle)#2183: Added the geocoding package geopy as a core dependency. (@bjlittle)
#2199: Added sphinx-sitemap
sphinxextension to generate sitemaps.org compliant documentation sitemaps. (@bjlittle)#2202: Added sphinx-iconify
sphinxextension to use iconify-icon web component. (@bjlittle)#2240: Added the check-manifest package dependency to the
devspixi 🧚feature. (@bjlittle)#2254: Added the jupyterlab package dependency to the
devspixi 🧚feature, and added the wurlitzer package dependency to thedocspixi 🧚feature. (@bjlittle)#2266: Adopted trame-pyvista package as a managed replacement for
trame,trame-client,trame-server,trame-vtkandtrame-vuetify. (@bjlittle)
💽 Assets#
#1185: Updated the
geovista.cacheto referencegeovista-data =2024.10.2, which includes the corrected NASA Blue Marble texture. (@bjlittle)#1303: Updated the
geovista.cacheto referencegeovista-data =2025.1.4, which includes new vector data assets. (@bjlittle)#1765: Updated the
geovista.cacheto referencegeovista-data =2025.10.2, which includes the documentation test image assets. (@bjlittle)#1886: Updated the
geovista.cacheto referencegeovista-data =2025.12.0, which includes the rehostedFESOMtime-series decimated to the first time-step. (@bjlittle)#1908: Updated the
geovista.cacheto referencegeovista-data =2025.12.1, which includes a newBBoximage unit test asset. (@bjlittle)#1977: Updated the
geovista.cacheto referencegeovista-data =2026.01.1, which includes newgeovista.transform.transform_mesh()andgeovista.geoplotter.GeoPlotterBase.add_mesh()image unit test assets. (@bjlittle)#1982: Updated the
geovista.cacheto referencegeovista-data =2026.01.2, which includes newgeovista.geodesic.BBox.enclosed()image unit test assets. (@bjlittle)#2033: Updated the
geovista.cacheto referencegeovista-data =2026.02.0, which includes the new Plotter Extraction image unit test asset. (@bjlittle)#2035: Updated the
geovista.cacheto referencegeovista-data =2026.02.1, which includes updated point-cloud and DYNAMICO image unit test assets. (@bjlittle)#2064: Updated the
geovista.cacheto reference2026.02.5, which includes updated documentation image test filenames as generated by thepyvista-plotdirective forpyvista >=0.47.0. (@bjlittle)
📚 Documentation#
#1006: Added
sphinxInternationalization support. (@tkoyama010)#1009: Enabled rendering a version badge in the primary sidebar, and a
latesttostableversion banner announcement for documentation onreadthedocs. (@bjlittle)#1010, #1012: Updated the version announcement banner for
readthedocs. (@bjlittle)#1013: Refactored structure of
geovista.examplessphinx-tags. Closes #823. (@bjlittle)#1014: Moved the
tagslink from the primary sidebar to a sphinx-design card in the 参照 section. (@bjlittle)#1016: Added
changelogandwhatsnewsphinx-design cards to the 参照 section. (@bjlittle)#1022: Fixed unset
authorin page footer of documentation. (@bjlittle)#1023: Renamed the runtime generated examples gallery carousel from
gallery-carousel.rsttogallery_carousel.rstin order to comply with implicit documentation file naming convention. (@bjlittle)#1025: Added initial towncrier infrastructure to support the
changelog. (@bjlittle)#1026: Retro generated
changelogentries for all relevant pull-request post 0.5.0 release. (@bjlittle)#1053: Adopted sphinx-autoapi
3.2.1templates. (@bjlittle)#1054: Updated the
Region Manifold Extractiontutorial to include the approximate article reading time and also shorten links within margin notes for readability. (@bjlittle)#1055: Cross-referenced module headings to improve primary sidebar readability for the API Reference section. (@bjlittle)
#1056: Added the initial What's New infrastructure. (@bjlittle)
#1057: Updated the What's New to reference the associated release Discussion. (@bjlittle)
#1058: Clarified pending unreleased What's New details as To Be Done (
TBD). (@bjlittle)#1070: Updated the towncrier
changelogtemplate. (@bjlittle)#1077: Updated
README.mdwith introduction forStar Historysection. (@bjlittle)#1080: Updated the Changelog contributor guidelines. (@bjlittle)
#1085: Added buttons to the reference About section. (@bjlittle)
#1096: Documented the
changelogquality assurance performed by theci-changelogAction. (@bjlittle)#1099: Adjusted the Region Manifold Extraction tutorial to render better on reduced footprint mobile platforms. (@bjlittle)
#1152: Used explicit strings in enum.StrEnum instances (instead of
auto()), thus making the documentation clearer. (@trexfeathers)#1183: Adopted sphinx-autoapi
3.3.3templates. (@bjlittle)#1226: Resolved unnecessary
linkcheckURL redirects. (@bjlittle)#1269: Rebranded the
changelogFont Awesome icon. (@bjlittle)#1280: Added a convenience link in the
GeoVista 101sidebar to thechangelog. (@bjlittle)#1284: Added a gallery example for region manifold extraction using
geovista.geodesic.wedge(). Closes #1285. (@ESadek-MO)#1294: Updated the docstring of the region manifold extraction example. (@bjlittle)
#1305: Added a gallery example using
pyvista.PolyDataFilters.contour_banded(). (@HGWright)#1306: Added the new
samplesphinx-tags category. (@bjlittle)#1307: Renamed the gallery examples
Region Extractionsection toExtractionto maintain the primary sidebar menu in alphabetical order. (@bjlittle)#1309: Added references to the new
cast,contourandtriangulatesphinx-tags for thefiltercategory. (@bjlittle)#1312: Added trame admonition for open Issue regarding
contour_banded()interactive scene rendering. See Contour. (@bjlittle)#1328: Removed use of the
shadowoption from all 例 titles and scalar bars, as shadowed text does not render correctly with trame in theInteractive Sceneonreadthedocs. (@bjlittle)#1339: Simplified several 例 by using
geovista.pantry.meshesinstead of loadinggeovista.pantry.datato construct sample meshes. (@bjlittle)#1362: Enabled tooltips for the Tutorials and
README.mdgallery carousel, and disabled sphinx-tippy tooltips for the gallery 例 and Tags. (@bjlittle)#1364: Added a cubed-sphere panel region extraction gallery example using
geovista.geodesic.panel(). (@bjlittle)#1376: Added the Domain gallery section, including the Clouds and Clouds (Projected) examples. (@bjlittle)
#1379: Added the new
resolutionsphinx-tags category. (@bjlittle)#1385: Reduced the Clouds and Clouds (Projected) examples by rendering only a single cloud mesh in order to reduce documentation build time. (@bjlittle)
#1388: Updated gallery 例 to use an outlined and filled scalar bar to aid readability. The scalar bar is also repositioned and resized by
geovista.theme. (@bjlittle)#1391: Enabled
sphinx-buildoptimisation to distribute its workload automatically across the number of available CPUs. (@bjlittle)#1395: Enabled sphinx-gallery to distribute its workload automatically across the number of available CPUs. Disable by setting the
GEOVISTA_SPHX_GLR_SERIALenvironment variable. (@bjlittle)#1424: Converted pyvista documentation URLs to use
snake_casepost pyvista v0.45.0 release. Reference pyvista #7169. Closes #1423. (@bjlittle)#1518: Added support for optional pyvista plot directives of inline documentation to streamline building execution time. Includes the new
make html-inlinecommand. Closes #1150. (@bjlittle)#1567: Updated
README.mdand インストール section to include pixi 🧚 instructions. Closes #1476. (@bjlittle)#1579: Added the Pixi Workflow section to document the pixi 🧚 tasks available to clean, build and render the documentation. (@bjlittle)
#1583: Added introductions to each gallery example section. (@bjlittle)
#1606: Registered the console prompt (
$) with sphinx-copybutton to automatically excluded it when copyingconsolecode blocks. (@bjlittle)#1616: Added reference to pixi 🧚 install instructions. (@bjlittle)
#1628: Added a VHS tape recording to インストール showing a developer install with pixi 🧚. (@bjlittle)
#1633: Added a VHS tape recording to the
README.mdshowing how to create a new pixi 🧚 project, install, activate thenimport geovista. (@bjlittle)#1653: Rebranded the
geovistatitle using La Machine Company TrueType font. (@bjlittle)#1660: Updated the インストール section to include uv instructions. (@bjlittle)
#1669: Updated the
intersphinxmapping forcartopy, which is now hosted onreadthedocs. (@bjlittle)#1676: Refreshed
README.mdplotting example images. (@bjlittle)#1681: Refreshed Tutorials card image for Region Manifold Extraction. (@bjlittle)
#1762: Applied the
:vkt:role from thesphinxextension vtk-xref to cross-reference items within the VTK documentation. (@bjlittle)#1764: Adopted the pyvista
document_buildplotting themestyle for our documentation. (@bjlittle)#1818: Used the
pyvista.CameraPositionto explicitly clarify the camera position vectors in the GeoTIFF DEM gallery example. (@bjlittle)#1821: Enabled zooming and panning of mermaid diagrams in the Packaging guidelines. (@bjlittle)
#1860: Disabled zooming and panning of mermaid diagrams in the Packaging guidelines. (@bjlittle)
#1908: Enabled sphinx-autoapi documentation of
special-members(aka dunder methods). (@bjlittle)#1912: Added the icon in the primary sidebar as a navigation convenience to the pyvista documentation. (@bjlittle)
#1931, #1932: Added the
geovistabadgeas a shields.io endpoint asset. (@bjlittle)
#1941: Reformatted the community Third-Party Packages as a table for readability. (@bjlittle)
#1945: Added the community Publications section with a bibliography to reference scientific publications using
geovista. (@bjlittle)#1960: Applied colour Branding to the Font Awesome icons. (@bjlittle)
#1962: Completed first and second level title Font Awesome icon coverage. (@bjlittle)
#2033: Added the Plotter Extraction gallery example. (@bjlittle)
#2035: Updated the scalar-bar formatting for
README.mdand gallery point-cloud and DYNAMICO examples. (@bjlittle)#2114: Added rebranded Logo section to the contributor guidelines. (@bjlittle)
#2117: Added Badge section to the contributor guidelines. (@bjlittle)
#2164: Added the new
versionsphinx-tags category. (@bjlittle)#2178: Added the experimental 🧪 tag for highlighting experimental features and content. (@bjlittle)
#2201: Create a
sitemap.xmlonly for thestableversion of the documentation onreadthedocsto improve Search Engine Optimization and discoverability. (@bjlittle)#2251: Added インストール section tab synchronization. (@bjlittle)
#2255: Used the wurlitzer
IPythonextension to remove third-party diagnostic output from the renderedmyst-nbtutorial. (@bjlittle)#2276: Adopted sphinx-llms-txt to generate Large Language Model (
LLM) friendly Markdown summaries of the documentation. (@bjlittle)#2307: Added the custom sphinx
readingtimedirective to automatically estimate the audience reading time of a page and render a branded banner. (@bjlittle)#987: Updated the Region Manifold Extraction tutorial to correct typos and add a cross-reference to
pyvista.DataSetFilters.select_enclosed_points(). (@bjlittle)#994: Adopted the standard of naming the
plotteraspthroughout documentation, docs-strings and examples. (@bjlittle)
💼 Internal#
#1036: Adjusted the number of contributors rendered per line to better suit reduced footprint on mobile platforms. (@bjlittle)
#1040: Adopt
nodefaultsto explicitly ignore the condadefaultschannel when building thecondalock files. (@bjlittle)#1050: Fixed typos and extended the list of files to
skipwithcodespell. (@bjlittle)#1075: Applied fix to avoid breaking change behaviour to code coverage upload, as introduced by the actions/upload-artifact v4.4.0 Action. (@bjlittle)
#1082: Added
ci-changelogAction to perform quality assurance on pull-requestchangelognews fragment/s. Closes #1031. (@bjlittle)#1087: Reduced the
all-contributorsimage size for better rendering on mobile platforms. (@bjlittle)#1090: Report to the console by default for the
ci-changelogAction. (@bjlittle)#1091: Use
SHAchecksums for 3rd party Action versions. (@bjlittle)#1094: Add the
skip-changeloglabel todependabotandci-locksAction generated pull-requests. (@bjlittle)#1120: Removed technical debt by migrating builtin
open()usage topathlib.Path.open()since enforcing SPEC-0 minimumpython>=3.11support. (@bjlittle)#1121: Updated
dependabotconfiguration to include composite actions. (@bjlittle)#1133: Merged back
0.5.xrelease feature branch intomainfor0.5.2. (@bjlittle)#1136: Changed the frequency of the
ci-locksActioncronto be every 2nd day to assist with earlier detection of breaking regressions in package dependencies, see #1131. (@bjlittle)#1137: Removed Action duplication by migrating common job level
defaultsdefinitions to the workflow level. (@bjlittle)#1138: Added
ci-locks-testAction to assist with early detection of breaking regressions in package dependencies by running nightly tests against the latest resolvedconda-lockenvironment. (@bjlittle)#1139: Added lock file artifact upload for
ci-locks-testAction to allow contributor reproducibility of any regression behaviour. (@bjlittle)#1141: Configured setup-miniconda Action to avoid using the
defaultschannel. (@bjlittle)#1144: Refactored
Preferenceenums to use enum.StrEnum and enum.auto aspy311is now the minimum supported distribution, see #1118. (@bjlittle)#1155: Reverted use of the jwalton/gh-find-current-pr Action within the
ci-changelogAction. (@bjlittle)#1158: Added
ci-tests-pypiAction to assist with early detection of breaking regressions in package dependencies by running nightly tests against the latest resolved PyPI environment. (@bjlittle)#1174: Merged back
0.5.xrelease feature branch intomainfor0.5.3. Closes #1156. (@bjlittle)#1219: Avoid using a pyvista private attribute when gathering active scalars information. (@user27182)
#1274: Removed a
__all__duplicate entry ingeovista.pantry.data. (@HGWright)#1318: Added a
py.typedfile in compliance with PEP 561. (@trexfeathers)#1398: Migrated from
sphinx-linkcheckbuilder to cron activated lychee Action. The link check workflow is no longer performed as part of a pull-request. (@bjlittle)#1409: Added missing optional packages h3-py and rasterio to the
geovista.report. (@bjlittle)#1411: Added https://earthexplorer.usgs.gov/ to the list of URLs ignored by the lychee Action. Closes #1410. (@bjlittle)
#1438: Enabled caching and updated the list of URLs ignored by the lychee Action. Closes #1435. (@bjlittle)
#1516: Dropped use of deprecated
ActiveArrayInfoTuplein thegeovista.core. (@bjlitte)#1547: Enforced an
open-pull-request-limitfor automateddependabotgenerated pull-requests. (@bjlittle)#1564: Included
trame-commonpackage to the scoobygeovista.report.Report. (@bjlittle)#1597: Added
nodefaultschannel tolock2yamltemplate. (@bjlittle)#1750: Dropped support for
py311as recommended by SPEC-0. (@bjlittle)#1754: Configured the infrastructure to support unit test and documentation test image caching using pytest-pyvista. (@bjlittle)
#1777: Added
ci-tests-docsAction to perform pytest-pyvista documentation image testing ofpyvista-plotdirective static scenes. (@bjlittle)#1780: Added artifact upload of failed documentation test images for the
ci-tests-docsAction. (@bjlittle)#1850: Adopted explicit default
permissionsfor Actions. (@bjlittle)#1901: Endeavour to provision a community readable
pooch.Poochcache. (@bjlittle)#1911: Updated
ci-tests-lockandci-tests-pypiActions to capture and upload failed image unit tests as artifacts. (@bjlittle)#1929: Added
README.mdlight/dark theme support for our Star History Chart. (@bjlittle)#1958: Applied consistent formatting to our labels. (@bjlittle)
#1997: Relaxed the regex checking for the existence of an author in new changelog fragments. (@ukmo-ccbunney)
#2110: Tidied the CLI entry-point to always route through
geovista.__main__and support direct script invocation. (@bjlittle)#2179: Enabled generation of a generic
condaenvironmentYAMLfile that tracks the latest supported distribution ofpython. (@bjlittle)#2247: Dropped the use of
pyvista.start_xvfbwhen building the documentation. (@bjlittle)#989: Added adRise/update-pr-branch Action to automatically update stale
auto-mergepull-requests. (@tkoyama010)#996: Enabled
require_passed_checksfor adRise/update-pr-branch Action. (@bjlittle)#999: Merged back
0.5.xrelease feature branch intomainfor0.5.1. (@bjlittle)
🌱 Community#
#1007: Added @wx4stg as a contributor for
ideasandpromotion. (@tkoyama010)#1011: Added @tkoyama010 as a contributor for
promotion. (@tkoyama010)#1032: Added @berndbecker as a contributor for
ideas. (@bjlittle)#1034: Opened the doors to the 🍬 Candy Store, a community space on GH Discussions to openly share and promote how
geovistais being used. (@bjlittle)#1035: Added @bjlittle as a contributor for
promotion. (@tkoyama010)#1037: Added @dennissergeev as a contributor for
talk. (@bjlittle)#1044, #1046: Added @sit23 as a contributor for
exampleandvideo. (@tkoyama010)#1045: Added the
Awesomebadge and registeredgoevistawith Awesome Open Geoscience for promotion within the Earth Science community. (@tkoyama010)#1047: Added @tkoyama010 as a contributor for
mentoring. (@tkoyama010)#1086: Added @bjlittle as a contributor for
security. (@tkoyama010)#1088: Added @sit23 as a contributor for
promotion. (@bjlittle)#1095: Added @bjlittle as a contributor for
ideas. (@tkoyama010)#1097: Congratulations to @ukmo-ccbunney who became a
geovistacore contributor. (@bjlittle)#1203, #1209: "So long
X, and thanks for all the fish". Migrated toBluesky. (@bjlittle)#1220: Added @user27182 as a contributor for
code. (@tkoyama010)#1236: Added @kuchaale as a contributor for
example. (@bjlittle)#1237: Added @dennissergeev as a contributor for
example. (@bjlittle)#1250: Added @tkoyama010 as a contributor for
security. (@bjlittle)#1271: Added @HGWright as a contributor for
review. (@bjlittle)#1275: Added @HGWright as a contributor for
code. (@bjlittle)#1290: Added @ESadek-MO as a contributor for
code,example, anddata. (@bjlittle)#1296: Added @ESadek-MO as a contributor for
review. (@bjlittle)#1311: Added @HGWright as a contributor for
dataandexample. (@bjlittle)#1437: Added @beroda as a contributor for
bug,codeandtest. (@bjlittle)#1670: Added @rcomer as a contributor for
review. (@bjlittle)#1738: Added @changliao1025 as a contributor for
bug. (@bjlittle)#1772: Added @mo-ijadav as a contributor for
promotion. (@bjlittle)#1862: Added @DanCopsey as a contributor for
promotionandtool. (@bjlittle)#1870: Added @RobWatersMet as a contributor for
ideas. (@bjlittle)#1873: Added @RobWatersMet as a contributor for
codeandtest. (@bjlittle)#1939: Added @Erin-1919 as a contributor for
promotion. (@bjlittle)#1940: Added aeolus package to the Community section. (@dennissergeev)
#1942: Added @dennissergeev as a contributor for
documentation. (@bjlittle)#1949: Added ngview package to the Community section. (@DanCopsey)
#1950: Added @DanCopsey as a contributor for
documentation. (@bjlittle)#1957: Added @tkknight as a contributor for
bugandcode. (@bjlittle)#1998: Added @ukmo-ccbunney as a contributor for
codeanddocumentation. (@bjlittle)#2004: Added @scout-the-beagle 🐶 as contributor for
audio,ideas,mentoring,question, andsecurity. (@bjlittle)#2019: Added @ukmo-ccbunney as a contributor for
bug. (@bjlittle)#2120: Updated the Contributor Covenant Code of Conduct from version
2.1to version3.0. (@tkoyama010)#2168: Added @pp-mo as a contributor for
code,data,example,talk,test, andpromotion. (@bjlittle)#2170: Added @ukmo-ccbunney as a contributor for
talkandpromotion. (@bjlittle)#988: Added @bjlittle as a contributor for
tutorial. (@tkoyama010)#993: Added @Hedonical as a contributor for
ideas. (@tkoyama010)
🛠️ Contributor Infrastructure#
#1005: Added the
ci-jossworkflow to automatically compile our JOSS paper fromMarkdowntoPDF. (@tkoyama010)#1008: Enabled the nbQA
pre-commithook to ensure tutorialjupyternotebook quality assurance against ruff rule compliance. (@bjlittle)#1064: Dropped nbQA
pre-commithook, as ruff lints and formats Jupyter notebooks by default from v0.6.0. (@tkoyama010)#1124: Dropped the use of
toxto render lock file updates within theci-locksAction due to incompatibilites between the pinned tox-conda plugin and the modern runner environment. (@bjlittle)#1146: Optimised the documentation building workflow by providing control of whether tutorial
jupyter notebookcode cells are executed. By default, code cells will only be executed when building the documentation with either themake htmlormake html-tutorialcommands. Closes #1030. (@bjlittle)#1147: Adopted caching of tutorial
jupyter notebookoutputs when building the documentation. The cache will only be cleared with either themake clean-cacheormake clean-allcommands. Themake cleancommand will not clear the cache. Closes #1018. (@bjlittle)#1160: Updated
dependabotto orchestrate updates for thepippackage-ecosystem. (@bjlittle)#1162: Triggered the
ci-tests-pypiAction on apull_requestevent in order to provide test coverage ofdependabotpackage updates. (@bjlittle)#1177: Extended
ci-locksAction to supportpy313. (@bjlittle)#1207: Added taplo
pre-commithook to format and sorttomlfiles. (@tkoyama010)#1211: Complied with ruff
flake8-boolean-trap(FBT) andflake8-todos(TD) rules. (@bjlittle)#1212: Complied with ruff
flake8-annotations(ANN) rules. (@bjlittle)#1214: Complied with ruff
pylint-refactor(PLR) rules. (@bjlittle)#1215: Complied with ruff
pylint-warning(PLW) rules. (@bjlittle)#1216: Complied with ruff
flake8-self(SLF) rules. (@bjlittle)#1217: Dropped the use of
.ruff.tomlto capture outstanding ruff rule exceptions. Non-compliances have been addressed or moved to thepyproject.toml. (@bjlittle)#1225: Dropped sort-all
pre-commithook, as ruff 0.8.0 stabilized the unsorted-dunder-all (RUF022) preview rule. (@bjlittle)#1227: Dropped the use of
setup.py, given the already configured PEP 517build-backendwith setuptools. (@bjlittle)#1241: Dropped use of
latesttag and explicitly pinned toubuntu-22.04Action runner-image. (@bjlittle)#1254: Updated the
ci-labelAction to migrate fromnep-29to SPEC-0. (@bjlittle)#1257: Enabled the zizmor
pre-commithook for security static analysis of Actions. Closes #1248. (@tkoyama010)#1277: Rationalised the use of
sphinxcross-references. (@bjlittle)#1298: Added developer Documentation guidelines. (@bjlittle)
#1313: Mirrored the pyvista PyPI package management strategy by adopting a rolling latest maximum pin, and rely on
dependabotto orchestrate ecosystem updates. (@bjlittle)#1317: Detect missing author
:user:directive within achangelognews fragment. (@bjlittle)#1324: Configured the
conda-remove-defaults = trueoption for the setup-miniconda Action. (@bjlittle)#1325: Converted pypi-publish Action options from
snake_casetokebab-case. (@bjlittle)#1356: Extended the validate-project
pre-commithook to use additional schema compliance checks forpyproject.toml. (@bjlittle)#1388: Updated the testing theme background, font and colormap. (@bjlittle)
#1414: Updated the pygrep-hooks
pre-commithook to include additional coverage. (@bjlittle)#1458: Enabled sphinx-lint
pre-commithook to quality check.rstand.pyfiles. (@bjlittle)#1495: Consolidated
cartopy-cachecomposite Action to use a single common cache for all Actions. (@bjlittle)#1497: Created the PyPI optional dependencies
devsgroup and renamed the pixi 🧚 featuredevtodevs. Also included the zizmor package todevs. (@bjlittle)#1500: Migrated to actions/create-github-app-token Action from tibdex/github-app-token Action. (@bjlittle)
#1509: Adopted publishing binary wheels to PyPI with a Trusted Publisher via the OpenID Connect (OIDC) Standard. (@bjlittle)
#1513: Resolved various
ruff ==0.12.0rule non-compliances. (@bjlittle)#1567: Created the PyPI optional dependencies
allgroup. (@bjlittle)#1578: Added the pixi 🧚 workflow tasks
clean-all,clean-cacheanddoctestfor thedocsfeature. (@bjlittle)#1585: Added the pixi 🧚 workflow tasks
testandtest-cleanfor thetestfeature. (@bjlittle)#1595: Migrated
readthedocsto build with pixi 🧚. (@bjlittle)#1609: Added the direnv
.envrcconfiguration file to.gitignore. (@bjlittle)#1612: Added developer Cross-References guidelines. (@bjlittle)
#1620: Updated the
ci-labelAction to auto-labelpixibranches. (@bjlittle)#1621: Added the latest supported distribution of
pythonto the pixi 🧚defaultenvironment. (@bjlittle)#1668: Enabled ruff
flake8-copyrightpreview rule (CPY001) to enforce file copyright preamble. (@bjlittle)#1671: Added developer Copyright & License guidelines. (@bjlittle)
#1727: Updated developer Documentation guidelines. (@bjlittle)
#1770: Added the
html-docstring-inlinetask as a documentation Build option to build and render onlydocstringandinlineimages and scenes within the documentation. (@bjlittle)#1771: Building documentation will now automatically check, verify and create the
docs/image_cachesymbolic link the appropriatepooch.Poochdocumentation reference test images cache. (@bjlittle)#1776: Added the
doc-imagespixi 🧚 task to thedocsfeature which performs documentation image testing ofpyvista-plotdirective static scenes. (@bjlittle)#1783: Rebranded the
doc-imagespixi 🧚 task astests-docs. Also added Pixi Tasks to the Packaging guidelines. (@bjlittle)#1787: Added descriptions to the pixi 🧚 tasks, available via the
pixi task listcommand line interface (CLI). (@bjlittle)#1810: Added embedded mermaid graphs of pixi 🧚 solve-group environment hierarchies to the Packaging guidelines. (@bjlittle)
#1820: Reduced the
dependabotschedule interval for thepipecosystem to bedailynow that the cooldown period is configured. (@bjlittle)#1824: Added @geovista-bot as a generic user independent codeowner. (@bjlittle)
#1830: Introduced the
@geovista-bot auto-approveworkflow to approve pull-requests by trusted contributors and thus permitting elevatedmainbranch protection by enforcingCODEOWNERSreviews. (@bjlittle)#1847: Reduced
max-concurrencyto a single thread when performing URL linkchecks with the lychee Action. This is to avoid exceptions caused by sporadic server-side connection resets. (@bjlittle)#1858: Updated the Cross-References guidelines to include the use of the
:name:option for afigureortable, and recommended the:alt:option forfigureaccessibility best practice. (@bjlittle)#1883: Relaxed
dependabotto ignorepatchreleases for thePyPIecosystem in order to reduce the update cadence and closer align to the default pixi 🧚major/minormaximum capping-pin strategy for explicit dependency versions. (@bjlittle)#1890: Capture failed image unit tests for the
ci-testsAction as a workflow artifact, and also when using thetests-unitpixi 🧚 task. (@bjlittle)#1965: Added the
ci-first-contributionAction to automatically acknowledge and welcome first time Issue and Pull-Request contributions from the community. (@bjlittle)#2008: Extended the
@geovista-bot auto-approveworkflow behaviour to allow trusted collaborators to request approval for bot sourced pull-requests. (@bjlittle)#2020: Added developer Codecraft 🚧 maintenance guidelines. (@bjlittle)
#2061: Added developer Generative AI guidelines. (@bjlittle)