Skip to content

MDS Roadmap — Post-v0.1.0 Progress Tracker #69

Description

@dean0x

MDS Roadmap

Master tracking issue for all planned work after the v0.1.0 release. Each item links to a detailed issue with its own PRD.

Status Key

  • ✅ Complete
  • 🚧 In Progress
  • ⚪ Not Started

v0.2.0 — Language Enrichment ✅

The core language gets the features users will hit first. Focus: make templates self-sufficient without external preprocessing.

Released: 2026-06-06v0.2.0


v0.3.0 — Production Readiness ✅

Bridge MDS from "template language" to "production LLM input format." Add the developer workflow tooling that makes daily use pleasant.

Released: 2026-06-28v0.3.0

Headline Features (Complete)

Tech-Debt Sweep (Complete)

Do-set — all 11 landed in PR #117 (88ddbcc):

Already Closed (verified done): #98, #101, #80, #77


v0.4.0 — Ecosystem Expansion 🚧

Expand reach beyond JS/TS. Add the quality-of-life tooling that mature languages provide.

Release state (2026-08-12). All v0.4.0 code is merged on main at 113f472; the tag has not been cut. Workspace version is still 0.3.0, and everything below the line is staged under [Unreleased]. CI at 113f472 is green as measured: both CI / CI and CodeQL / Push on main report status=completed, conclusion=success. There was a brief red window at c8b4062 — a rustfmt violation in crates/mds-cli/src/output.rs that rode in on an --admin merge over a cancelled CI run, fixed by cb44b56. That is precisely the failure mode #289 exists to close, which is why it sits in Wave 1. The remaining work is not features — it is the set of decisions and fixes that get materially more expensive once the tag makes them public surface.

Headline Features — landed ✅

Fix / hardening waves — landed ✅


⚪ Wave 1 — everything remaining before the tag

13 issues. This list is exactly the open v0.4.0 milestone as of 2026-08-12 — no more, no less.

Wire format — bytes consumers parse; cheap today, a semver event after the tag

⚠️ Decisions needed — nobody is blocked on code here; somebody has to choose

Deprecation window — miss it and removal costs a major bump

TS public surface

Community / release hygiene

Release-safety gates

Build shape — 6 PRs on one wave branch

PRs squash-merge back into the wave branch in dependency order.

PR Issues Primary files
1. Lint JSON wire contract #211, #202, #203 crates/mds-cli/src/lint.rs, mds-core/src/lint/diagnostic.rs, rules/unused_import.rs, formatter.rs
2. Unknown rule-name ruling #224 mds-core/src/lint/config.rs, crates/mds-python/README.md
3. TS public surface #180, #215, #213 packages/mds/src/util/options.ts, browser.ts, types.ts, backend/native.ts
4. CLI quiet/summary contract #216 crates/mds-cli/src/build.rs:1596, lint.rs
5. Deprecate apply_fixes #209 crates/mds-core/src/lint/fix.rs:691
6. Community + release-safety #38, #288, #289 CODE_OF_CONDUCT.md, .github/workflows/

v0.4.0 gate = MEDIUM (decided 2026-08-09)

The milestone now holds only:

  1. semver-breaking or window-limited items — wire formats, exported type surface, deprecation windows
  2. the one live shipped bugExpose basePath on CompileOptions to match LintOptions #180
  3. community / release hygieneAdd CODE_OF_CONDUCT.md (Contributor Covenant 2.1) #38, Register mdscript name on PyPI (pre-tag prerequisite) #292
  4. release-safety gatesci: reject control bytes and bidi codepoints in tracked source (authoring toolchain injects live ESC) #288, process: CI checks can be cancelled and an --admin squash-merge will not notice #289

Everything else moved to v0.5.0 on a single criterion: none of it becomes more expensive after the tag. A quality or infra fix costs the same after v0.4.0 ships as it does today; a wire-format or exported-type change does not.

Moved out:


⚪ Explicitly deferred past v0.4.0

Everything here is out of scope for the tag. Listed so the boundary is unambiguous.

Closed as duplicate — tracked by the survivor:

Closed Survivor
#115 #114
#159 #136
#174 #235
#258 #157

#178 and #210 are likewise closed as duplicates; their analysis now lives in the surviving issues.


v0.5.0 — Advanced Features

Enable sharing and reuse across projects and teams.


v1.0.0 — Editor Experience (Deferred)

Full editor integration. Intentionally last — language features and production readiness come before distribution overhead. These items require significant DevOps, testing, and maintenance investment beyond the code itself.


Completed Milestones

v0.3.0 (2026-06-28) ✅

  • mds watch, template inheritance (@extends / @block), HMR across all four bundler plugins
  • Intrinsic output format (breaking): template content decides Markdown vs JSON message array
  • Full 11-item tech-debt sweep

v0.2.0 (2026-06-06) ✅

  • 18 built-in functions, default args, logical operators
  • Expression support in @for and @if directives
  • Frontmatter imports
  • wasm-opt re-enabled (Binaryen v129, -Oz)
  • Published to crates.io, npm (with SLSA provenance), and GitHub Releases

v0.1.0 (2026-05-31) ✅

  • Core compiler (lexer, parser, resolver, validator, evaluator)
  • CLI: build, check, init
  • JS/TS ecosystem: WASM bindings, napi-rs, universal package, Vite/Rollup/Webpack plugins
  • Automated release pipeline (workflow dispatch)
  • 591+ tests, full CI/CD
  • Published to crates.io, npm, and GitHub Releases

Notes

  • Editor experience (v1.0.0) is intentionally deferred. Language enrichment and production readiness take priority — we want to ship features users can use before investing in distribution and tooling overhead.
  • The v0.4.0 pre-tag set is deliberately biased toward things that become expensive after the tag: wire formats, exported type names, and deprecation windows. Pure-quality tech debt is listed but is not a blocker.
  • Release path is tag-push: node scripts/bump-version.mjs 0.4.0 → land on main via PR → git tag -a v0.4.0 && git push origin v0.4.0. The workflow_dispatch -f version= path was deleted in chore: harden release machinery (5 independent fixes) #287; bare gh workflow run release.yml is now the dry-run.

Metadata

Metadata

Assignees

No one assigned

    Labels

    trackingProgress tracking issues

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions