Skip to content

WFL Production Readiness: 8/10 by January 1, 2027 #610

Description

@logbie

Goal

Make WFL 8/10 production-ready by January 1, 2027, with an internal target of December 1, 2026 and December reserved as a stabilization buffer.

This is a reliability and release-readiness goal, not a requirement to implement every desired language feature. The supported language must be predictable, secure, testable, documented, and operable.

Target dates

  • November 15, 2026: release candidate
  • December 1, 2026: satisfy the 8/10 production-readiness gate
  • December 2026: stabilization buffer
  • January 1, 2027: public production-ready declaration

Production-readiness scorecard

Score each area from 0–10 and multiply it by its weight. The weighted total must be 8.0 or higher, and all mandatory release gates below must pass.

Area Weight Definition of done
Correctness 25% No known critical correctness defects; parser, analyzer, type checker, modules, and runtime agree on supported behavior
Security 20% Shared execution-budget protections are complete; no unresolved critical/high security findings
Reliability 15% Malformed, adversarial, and resource-intensive programs fail safely without uncontrolled hangs or process crashes
Testing 15% Linux/Windows CI, regression corpus, databases, release smoke tests, and sustained fuzzing cover supported behavior
Compatibility 10% Supported language behavior is documented and protected by compatibility tests; breaking-change policy exists
Operations 5% Releases are repeatable, artifacts are verifiable, and installation/upgrade/rollback paths are documented
Documentation 5% Supported documentation examples execute successfully in CI; unsupported/aspirational syntax is clearly marked
Maintenance 5% Supported platforms, security reporting, triage rules, ownership, and release lifecycle are documented

Score history

Update this table at least monthly and after any release-candidate review.

Date Correctness Security Reliability Testing Compatibility Operations Docs Maintenance Weighted total Evidence
2026-07-13 6.0 5.5 5.0 6.5 6.0 5.0 5.0 7.0 5.8 Scorecard baseline comment; Dev diary/2026-07-13-issue-610-phase-1-scorecard-baseline.md
2026-07-16 6.2 6.2 6.0 7.0 6.2 5.0 4.8 7.8 6.2 Re-score evidence; main CI; nightly; WFL 26.7.38 (0f52b3a)
2026-07-22 6.3 7.0 6.8 7.5 6.4 5.0 5.0 7.8 6.7 Progress review; exact-main CI; Windows nightly; WFL 26.7.47 (9a8e0cc, source 6a7884d)

Mandatory release gates

A weighted score alone cannot compensate for a failed safety gate.

  • No open critical correctness, security, data-loss, or uncontrolled-resource-exhaustion defect
  • No open high-severity security finding
  • Shared runtime execution budget covers parsing, evaluation, pattern matching, web handling, and module loading
  • Deadline, cancellation, operation, recursion/import, pattern-state, byte, HTTP, and WebSocket limits have adversarial tests
  • All supported documentation examples execute in CI
  • All supported TestPrograms pass end-to-end on Linux and Windows, with every skip documented and justified
  • Parser/analyzer/type-checker/runtime consistency suite passes
  • Required CI checks pass on the release commit
  • Fuzz targets complete the agreed sustained run without an unresolved crash or hang
  • Fresh-install and representative-application smoke tests pass
  • Release artifacts, checksums, installation, upgrade, rollback, supported-platform, and known-limitations documentation are published
  • Release candidate completes 14 consecutive days without a critical regression

Phase 1 — Baseline and containment

Target: July 12–August 15, 2026

Exit gate: No known production-readiness risk is untracked.

Phase 2 — Language correctness

Target: August 16–September 30, 2026

Primary known blockers include:

Workstreams:

  • Make main-file and included-module semantics consistent
  • Normalize the meaning and propagation of Any, Unknown, and Nothing
  • Make action-call and return-type inference consistent, including recursion
  • Eliminate accidental coercions and context-dependent parsing
  • Ensure parser, analyzer, type checker, and interpreter accept the same supported constructs
  • Execute documentation examples through the full pipeline in CI
  • Remove, implement, or clearly mark aspirational syntax

Exit gate: No known critical correctness defects and fewer than five accepted high-severity correctness defects, each with an owner and deadline.

Phase 3 — Security and reliability hardening

Target: October 1–31, 2026

  • Complete the ExecutionBudget propagation and enforcement matrix
  • Add malicious-input and boundary tests for every resource limit
  • Establish continuous or scheduled fuzzing with corpus retention
  • Add dependency and supply-chain auditing policy
  • Test cancellation, cleanup, and recovery after budget exhaustion
  • Stress-test concurrency and native web-server paths
  • Classify every panic, crash, hang, and timeout discovered during testing
  • Confirm secrets and sensitive web data are not exposed through diagnostics or logs
  • Re-run the security audit and resolve all critical/high findings

Exit gate: Adversarial inputs cannot trivially hang, exhaust, or crash the host process, and no critical/high security finding remains open.

Phase 4 — Release candidate

Target: November 1–15, 2026

  • Freeze new language features except fixes required by a release gate
  • Publish the supported-language specification
  • Document compatibility, deprecation, and breaking-change policies
  • Produce verifiable release artifacts and checksums
  • Test installation from scratch on every supported platform
  • Run representative WFL applications, including wfl-web, as release canaries
  • Publish upgrade, rollback, operational, and known-limitations documentation
  • Cut the release candidate

Exit gate: The release candidate passes every mandatory gate and begins a 14-day stabilization period.

Phase 5 — 8/10 release and stabilization

Target: November 16–December 31, 2026

  • Accept only release-gate fixes during the RC stabilization period
  • Complete 14 consecutive days without a critical regression
  • Record final scorecard with supporting evidence
  • Reach a weighted score of at least 8.0
  • Publish the production-ready release by December 1, if gates pass
  • Use December for follow-up stabilization and documentation
  • Publish the production-ready declaration no later than January 1, 2027

PR requirements

Every PR contributing to this goal should include:

  • Scorecard area: which readiness category it improves
  • Tracked risk/issue: the linked defect, audit finding, or gate
  • Evidence: tests, benchmarks, fuzz results, documentation validation, or operational proof
  • Regression protection: what prevents the problem from returning
  • Compatibility impact: none, compatible extension, deprecation, or breaking change
  • Resource impact: effect on operations, memory, recursion, bytes, I/O, network, or concurrency
  • Remaining work: follow-up issue where the PR does not fully close the gate

Suggested PR text:

Production-readiness area:
Tracked issue/risk:
Gate improved:
Evidence:
Regression protection:
Compatibility impact:
Resource impact:
Remaining work:

Review cadence

  • Update this tracker after material readiness PRs.
  • Re-score monthly through October.
  • Re-score weekly during November and the RC period.
  • Treat newly discovered critical/high findings as release blockers.
  • Prefer correctness, security, reliability, and regression protection over new features until the release gates pass.

Definition of complete

This tracking issue closes only when:

  1. The weighted score is at least 8.0/10 with linked evidence.
  2. Every mandatory release gate passes.
  3. No critical/high security or critical correctness finding remains open.
  4. The release candidate completes its 14-day stability period.
  5. The production-ready release and known limitations are published.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions