Skip to content

Commit 3546d18

Browse files
committed
Add first version of roadmap doc
1 parent cf1330c commit 3546d18

File tree

1 file changed

+59
-0
lines changed

1 file changed

+59
-0
lines changed

ROADMAP.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Roadmap
2+
3+
This file provides an overview of the direction this project is heading. It contains both likely and more aspirational changes. For more granular improvements, see the [project’s issues backlog](https://github.com/springload/draftjs_exporter/issues).
4+
5+
## Planned
6+
7+
> Specific, well-scoped changes that have concrete time-bound implementation plans.
8+
9+
## Ready
10+
11+
> Feasible, near-term improvement ideas that are clear in scope.
12+
13+
### Performance regression baselines in CI
14+
15+
Add representative content fixtures and record `make benchmark` + memray stats per PR to fail builds on slowdowns in string, lxml, and html5lib engines.
16+
17+
### Configuration cookbook and compatibility matrix
18+
19+
Expand docs with end-to-end samples for Django/Wagtail and pure Python usage, plus tables covering supported Python versions, optional parser versions, and Draft.js releases.
20+
21+
### Release and maintenance automation
22+
23+
Add a tagged-release workflow that builds with `uv`, publishes to PyPI, updates `CHANGELOG`, and generates SBOMs; surface renovate rules and dependency review dashboards.
24+
25+
### AI-assisted configuration starter kit
26+
27+
Provide a cookbook showing how to prompt LLMs to draft block maps/entity decorators from HTML samples, and scripts to turn that output into typed configs and fixtures.
28+
29+
## Experimental
30+
31+
> Possible changes that require R&D, and high-risk ideas that could bring large benefits but with likely trade-offs.
32+
33+
### Rust-backed DOM engine
34+
35+
Prototype a Rust extension or PyO3 module for DOM construction to outperform the current string/lxml/html5lib engines on large documents.
36+
37+
### Streaming and async export
38+
39+
Explore a streaming API that yields HTML incrementally (sync/async) to reduce memory for very long ContentState exports.
40+
41+
### Python 3.12+ only refactor
42+
43+
After dropping 3.10/3.11, adopt 3.12+ features (faster f-strings, `typing.Self`/`TypeAliasType`, better `match` exhaustiveness) to simplify Options/State internals and improve runtime speed.
44+
45+
## Backlog
46+
47+
> Likely useful but lower-priority or “filler” tasks.
48+
49+
### Demo gallery refresh
50+
51+
Publish a richer set of showcases (static site and notebooks) covering Wagtail, vanilla Django, Flask, and headless integrations with generated screenshots.
52+
53+
### Draft.js export diffing
54+
55+
Diff outputs between engines or configurations or content states.
56+
57+
### Security review cadence
58+
59+
Document a quarterly process to update upper bounds for html5lib/bs4/lxml, run CodeQL/SAST reports, and refresh SECURITY.md with any findings.

0 commit comments

Comments
 (0)