Closed
Conversation
Post release 1.8.0 reset
sketch a plan
sketch a plan for #263
sketch a plan for #262
Reimplement programmatic access to models for looser coupling and better developer/user experience. Instead of baking a model registry into the package, let repositories publish their own registries, discoverable by devtools. Allows devtools and model repositories to move independently, and allows explicit model versioning. See the design document for more detail.
CLI and programmatic access to ecosystem programs. Meant to eventually supersede the role of pymake in tracking available programs, as well as flopy's get-modflow tool in installing them. See the design document for more detail. This is a rough draft and will likely evolve before initial release. Needs more extensive testing.
Make the recent models API enhancements non-breaking * restore `DEFAULT_REGISTRY` via `__getattr__` * dictionary style access to file entry properties
Several fixes for the Models API * always include URL for files in registries * drop sync_registry standalone function * fix sync command behavior with no arguments * use https://raw.githubusercontent.com/... URLs
Support MODFLOW_DEVTOOLS_NO_AUTO_SYNC env var for Models API (like Programs API), use it in CI tests. And filter out None recursively before writing TOML to the cache.
Exclude some known output file extensions during model registry creation. Also fix the locking mechanism around the cache.
Refine #263 * move exe attribute to program section * rename binary to distribution * don't auto-sync on registry file generation, only on api consumer commands * update registry file generation to work with local assets
Similar fix was recently made in the programs API in #276
and programs bootstrap file
…ocs (#281) * In program registry files, allow specifying exe (path of binary within zip archive) either at the program level (if same in all dists) or at the distribution level (if varies per dist). E.g. mf6 dists have a nested folder inside the distribution with the same name as the platform-specific dist, so they need to specify at the distribution-level, while programs with a single bin/ folder or with binaries at the top-level can use the program-level. By default, expect binaries under a bin/ folder * Add tests for the above and for --force CLI semantics: sync --force re-retrieves registries, install --force reinstalls programs * Update user- and dev-facing docs
* no version management, just installation * smarter default executable location detection in distribution archives * add more programs to bootstrap file
* add commands for models and programs CLIs, with root mf namespace * add : interactive bindir prompt like flopy's get-modflow, with similar options * fix exe path resolution
Support version string substitutions in - version.txt (conventional source of truth) - pixi.toml - meson.build As well as arbitrary substitutions into other files. This feels like reinventing the wheel, but we can't use setuptools_scm or versioneer with Fortran projects, AFAIK, only Python projects. This will at least prevent proliferation of version update scripts
This reverts commit f9e26de.
* update the model registry generation tool to work with local files or release assets * add an experimental warning to the programs API, for now * trim developer docs, update user-facing docs * finish incomplete cache clear functionality
New group ecosystem combines dfn and models (and will include the new programs API functionality) #266 . Instead of several narrowly scoped groups we now recommend just test and ecosystem. With 2.x we can drop dfn and models
In the release asset distribution scheme (used by the examples repo, as opposed to the version controlled scheme used by the test models repos), the zipfile needs to be in the Pooch registry for fetching to succeed
big rewrite. preview available in experimental dfns module. to be released, and old dfn module removed, in v2. old dfn module remains for now.
didn't mean to drop it in #271. also a few other fixes
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release 1.9.0
The release can be approved by merging this pull request into
main. This will trigger a job to publish the release to PyPI.New features
This release improves the architecture of the models API, decoupling model repositories from devtools and adding a CLI. This release also contains an experimental programs API that can be used to inspect available versions of MODFLOW 6 and related programs, and help with installs.