Skip to content

Commit f6c304d

Browse files
authored
revise roadmap (#221)
Introduce a demo phase targeting the Deltares event next month. Rewrite some things. Specifics can be documented as issues, keep this document high-level.
1 parent 3c21698 commit f6c304d

File tree

1 file changed

+39
-46
lines changed

1 file changed

+39
-46
lines changed

docs/dev/map.md

Lines changed: 39 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,41 @@
11
# FloPy 4 development roadmap
22

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

Comments
 (0)