Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Docs + integration testing reboot #569

Open
2 of 3 tasks
cisaacstern opened this issue Aug 22, 2023 · 5 comments
Open
2 of 3 tasks

Docs + integration testing reboot #569

cisaacstern opened this issue Aug 22, 2023 · 5 comments

Comments

@cisaacstern
Copy link
Member

cisaacstern commented Aug 22, 2023

Umbrella issue for a docs + integration testing reboot following the 0.10.0 release. These two topics are grouped together because I propose we model our docs on FastAPI, where all of the docs tutorials "are actually tested Python files". This is achieved there by:

In #563, I've done some experimenting and convinced myself this approach is indeed adaptable for our use case. In addition to the structural exploration, #563 also proves out how we can make integration tests _look & run like actual feedstocks: stored as .py files, run with pangeo-forge-runner, etc. This should go a long way to ensuring compatibility with -runner going forward.

This reboot is probably cleanest if spread across a few PRs:

  • Implement integration testing separate from any docs changes. I will do this as a first step in Use pangeo-forge-runner for integration testing #563 (or perhaps another PR which supersedes it) Integration tests with pangeo-forge-runner #590.
  • Revert the nested hierarchy of the current docs (Pangeo Forge Recipes, and Pangeo Forge Cloud headings) in favor of making these docs "just" about pangeo-forge-recipes. The Cloud docs are now out-of-date, and doing this should make the final item easier, insofar as it impacts the overall narrative arc of the docs.
  • Adapt current notebook tutorials to reference the exact code of these integration tests, as shown in the FastAPI example.

I will get started on the first two items here, and anticipate that the final item (adapting the tutorial notebooks) is where I could use the most help from @derekocallaghan (who's expressed interest in this). Derek, as noted here, still hammering out the foundation for this, I'll ping you as soon as I have something actionable for you to look at.

@cisaacstern
Copy link
Member Author

cisaacstern commented Aug 22, 2023

Adapt current notebook tutorials to reference the exact code of these integration tests, as shown in the FastAPI example.

One potential challenge I anticipate with doing this is that it's hard to run subsets of the code used in an integration tests, and show the outputs of running that subset (in a maintainable way, at least). We can cross that bridge when we come to it, but one idea I had is that we might consider relying more heavily on doctest to illustrate basic functionality of core objects (e.g. FilePattern), rather than doing that in the tutorials. This won't solve every issue related to this migration, but may help with some of them.

@cisaacstern
Copy link
Member Author

xref pangeo-forge/pangeo-forge-runner#89

We'll probably include a simplified version of this as part of the new tutorials.

@cisaacstern
Copy link
Member Author

cisaacstern commented Aug 25, 2023

Noting I think we should rename pangeo-forge-runner before landing this work

@cisaacstern
Copy link
Member Author

cisaacstern commented Aug 31, 2023

As noted in #473 (comment), more complete documentation of custom preprocessors would be a good thing to include here.

@cisaacstern
Copy link
Member Author

Noting that if we do drop notebooks as part of this work, we may finally be able to upgrade sphinx, which appears to be held back by myst-nb, IIUC? xref #593 (comment)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant