|
1 | 1 | # FloPy 4 development roadmap |
2 | 2 |
|
3 | | -## Phase 1: Minimum Viable Product |
4 | | - |
5 | | -Core functionality. Shortcuts are OK. |
6 | | -Read/write input files, run simulations, get/set data. |
7 | | -Initial deliverable for alpha testing (USGS, Deltares). |
8 | | -Alpha testers include Joeri, Huite, and the core MF6 team. |
9 | | -Release via `pip install ` from github URL of our development sandbox. |
10 | | -Tentative timeframe: July. |
11 | | - |
12 | | -- [x] DFN spec to TOML |
13 | | -- [x] draft object model |
14 | | -- [x] unified IO framework |
15 | | -- [ ] MF6 input file parser |
16 | | -- [ ] MF6 input file writer |
17 | | -- [ ] code generation from spec |
18 | | -- [ ] minimal docs (quickstart, etc) |
19 | | - |
20 | | -## Phase 2: Minimum Marketable Product |
21 | | - |
22 | | -Refactor to make production-ready. |
23 | | -Achieve rough feature-parity with 3.x. |
24 | | -Adopt features from e.g. `imod-python`. |
25 | | -Incorporate feedback from alpha testing. |
26 | | -Beta testers include alpha testers and additional volunteers from USGS and Deltares. |
27 | | -Release via `pip install` from github URL of our development sandbox. |
28 | | -Tentative timeframe: by end of year? |
29 | | - |
30 | | -- [ ] reimplement object model (maintainability over magic) |
31 | | -- [ ] structured xarray index for topology/geometry-aware selections |
32 | | -- [ ] xarray accessors for cross-cutting concerns (plot, export) |
33 | | -- [ ] xugrid integration for UGRID-compliance (DIS/DISV grids) |
34 | | -- [ ] more extensive docs (converted from old flopy examples) |
35 | | -- [ ] IO optimization (tuning, laziness/concurrency, etc) |
36 | | -- [ ] comprehensive logging and error handling |
37 | | -- [ ] validation framework, model checks |
38 | | - |
39 | | -## Phase 3: Rollout |
40 | | - |
41 | | -Integrate the product with the existing repository. |
42 | | -Evaluate feature-parity and fill any remaining gaps. |
43 | | -Release via standard channels (PyPI, Conda). |
44 | | -Dial 3.x down to maintenance mode. |
45 | | - |
46 | | -- [ ] implement 3.x adapters, compare tests/examples |
47 | | -- [ ] finalize 3.x maintenance plan and 4.x release plan |
48 | | -- [ ] finalize MF6 compatibility policy and codegen tooling |
| 3 | +## Demo |
| 4 | + |
| 5 | +Showcase a limited set of core functionality, such as: |
| 6 | + |
| 7 | +- the v2 DFN specification schema and format |
| 8 | +- object model, data model, user-facing APIs |
| 9 | +- IO framework and ASCII file loading/writing |
| 10 | +- constructing, running, modifying simulations |
| 11 | + |
| 12 | +Design and implementation are provisional. Implementation may take shortcuts, e.g. components hand-written instead of generated from the DFN specification. |
| 13 | + |
| 14 | +Release to demo participants via `pip install` from github URL. |
| 15 | + |
| 16 | +## MVP |
| 17 | + |
| 18 | +Support all core functionality, with components generated from the DFN spec. Prioritize functionality over performance/polish. |
| 19 | + |
| 20 | +Release to initial USGS and Deltares testers via `pip install ` from github URL. Begin alpha versioning. |
| 21 | + |
| 22 | +## MMP |
| 23 | + |
| 24 | +Minimum marketable product implements all core and most peripheral functionality, and may involve: |
| 25 | + |
| 26 | +- Achieving rough feature-parity with 3.x |
| 27 | +- Adopting features from e.g. `imod-python` |
| 28 | +- Incorporating feedback from user testing |
| 29 | +- Refactoring and performance optimization |
| 30 | +- Adapting 3.x documentation and examples |
| 31 | +- Comprehensive testing and evaluation |
| 32 | +- Finalizing maintenance/release plans |
| 33 | +- Finalizing MF6 version support plan |
| 34 | + |
| 35 | +Release to wider test audience at USGS and Deltares via `pip install` from github URL. Begin beta versioning. |
| 36 | + |
| 37 | +## GA |
| 38 | + |
| 39 | +Production-ready product achieves feature-parity with 3.x, integrates with the existing repository and becomes generally available via standard channels (PyPI, Conda). |
| 40 | + |
| 41 | +3.x enters maintenance-only mode for a limited time after which support will be dropped and all effort moved to 4.x. |
0 commit comments