Skip to content

Improve correctness, documentation, packaging, and benchmarks - #27

Merged
andymeierdev merged 9 commits into
mainfrom
andymeierdev/code-review-improvements
Aug 7, 2026
Merged

Improve correctness, documentation, packaging, and benchmarks#27
andymeierdev merged 9 commits into
mainfrom
andymeierdev/code-review-improvements

Conversation

@andymeierdev

@andymeierdev andymeierdev commented Aug 6, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • harden HTML and SVG rendering with encoded attribute values, invariant numeric serialization, broader WHATWG/WAI-ARIA coverage, and bounded renderer-buffer retention
  • complete the maintained HTMX, Datastar, Alpine.js, Tailwind Plus Elements, and common-production SVG APIs with pinned inventory tests
  • replace Markdown-based documentation with typed F# pages, typed SVG shell icons, direct render tests, responsive benchmark analysis, a changelog, Datastar-first examples, and a pinned self-hosted Datastar Docs shell
  • strengthen NuGet packaging with a single net8.0 compatibility asset, Source Link symbols, API compatibility validation, and typed FAKE-based .NET 8/9/10 consumer verification
  • add process-isolated BenchmarkDotNet workloads, profiling corrections, representative results, and opt-in FAKE benchmark targets
  • add Docker-backed Firefox E2E coverage and a manually dispatched release pipeline that generates the next vYYYY.M.MINOR tag, verifies one package artifact, deploys the matching Docs version/commit, runs production E2E, publishes that exact artifact, waits for NuGet availability, and creates the GitHub Release
  • retain an independently dispatchable Docs deployment workflow for deployment-only fixes
  • update application, documentation, benchmark, and Pulumi dependencies and refresh infrastructure locks

Notable breaking changes

  • rename Tailwind to TailwindElements without a compatibility alias
  • remove invalid Datastar and Alpine helpers/overloads and correct presence-only/directive signatures
  • always HTML-encode attribute values
  • ship only the lib/net8.0 package asset while retaining runtime compatibility checks for .NET 8, 9, and 10

Migration examples are included on the typed /changelog page.

Verification

  • solution build: 0 warnings and 0 errors
  • library tests: 56 passed
  • Docs tests: 19 passed
  • Docker-backed Firefox E2E: 16 passed, including server-rendered HTML, release health metadata, Datastar mobile navigation, theme persistence, and outside-click dismissal
  • desktop light, desktop dark/theme-menu, and mobile navigation screenshots inspected with no browser errors
  • release metadata propagation verified with explicit version and commit values
  • monthly version increment, explicit override, existing-tag conflict, same-commit retry, and idempotent FAKE Git tag push behavior verified
  • GitHub Actions workflows pass actionlint and ShellCheck validation
  • Pulumi TypeScript checks pass
  • BenchmarkDotNet process-isolated smoke suite: 33 cases passed
  • filtered MediumRun benchmark and FAKE argument forwarding verified
  • NuGet package contents, Source Link metadata, API compatibility, and .NET 10 consumer execution verified locally; .NET 8/9 execution remains covered by CI
  • Pulumi production preview completed without deployment, replacement, or deletion
  • npm audits report zero vulnerabilities
  • git diff --check passed

@github-actions

github-actions Bot commented Aug 6, 2026

Copy link
Copy Markdown

🍹 preview on fsharp-view-engine/prod

Pulumi report

View in Pulumi Cloud

  Previewing update (prod)

View Live: https://app.pulumi.com/meiermade/fsharp-view-engine/prod/previews/71ee12f5-d080-412b-8b82-b012c51049a3

pulumi:pulumi:Stack: (same)
  [urn=urn:pulumi:prod::fsharp-view-engine::pulumi:pulumi:Stack::fsharp-view-engine-prod]
  ~ docker-build:index:Image: (update)
      [id=sha256:59c08fe493a66e70d4a5f8fe76d6022c2e053db11b573e20e6ab64b754b09fc2]
      [urn=urn:pulumi:prod::fsharp-view-engine::docker-build:index:Image::fsharpviewengine]
    ~ cacheFrom  : [
        + [0]: {
                + disabled: false
                + gha     : {
                    + scope: "buildkit"
                  }
                + raw     : ""
              }
      ]
    ~ cacheTo    : [
        + [0]: {
                + disabled: false
                + gha     : {
                    + ignoreError: true
                    + mode       : "max"
                    + scope      : "buildkit"
                  }
                + raw     : ""
              }
      ]
    ~ context    : {
        ~ location: "/Users/andy/repos/meiermade/FSharp.ViewEngine/sln" => "/home/runner/work/FSharp.ViewEngine/FSharp.ViewEngine/sln"
      }
    - contextHash: "4644a04fa86f9d954e1d7412d721ef2a57c05eecaa42a25171baeecb529a9c23"
    ~ dockerfile : {
        ~ location: "/Users/andy/repos/meiermade/FSharp.ViewEngine/sln/Dockerfile" => "/home/runner/work/FSharp.ViewEngine/FSharp.ViewEngine/sln/Dockerfile"
      }
  ~ cloudflare:index/dnsRecord:DnsRecord: (update)
      [id=b162c1beaab67095a3cfcb444a2693e6]
      [urn=urn:pulumi:prod::fsharp-view-engine::cloudflare:index/dnsRecord:DnsRecord::fsharpviewengine]
      content: "29a22278-9fe7-4d10-a3a4-69834d0dffc0.cfargotunnel.com"
      name   : "fsharpviewengine"
      proxied: true
      ttl    : 1
      type   : "CNAME"
      zoneId : "1d09a5f3c5efd0a617f98a9ac32abfc4"
  ~ kubernetes:apps/v1:Deployment: (update)
      [id=fsharpviewengine/fsharpviewengine]
      [urn=urn:pulumi:prod::fsharp-view-engine::kubernetes:apps/v1:Deployment::fsharpviewengine]
    ~ spec: {
        ~ template: {
            ~ spec: {
                ~ containers: [
                    ~ [0]: {
                            + env  : [
                            +     [0]: {
                                    + name : "RELEASE_VERSION"
                                    + value: "preview"
                                  }
                            +     [1]: {
                                    + name : "RELEASE_COMMIT"
                                    + value: "9f62d848b2d4cf38fb4e8097dc4553e0d7b5638b"
                                  }
                              ]
                            ~ image: "us-east1-docker.pkg.dev/meiermade-platform/platform/fsharpviewengine:latest@sha256:59c08fe493a66e70d4a5f8fe76d6022c2e053db11b573e20e6ab64b754b09fc2" => [unknown]
                          }
                    ~ [1]: {
                            ~ image: "cloudflare/cloudflared:2026.2.0" => "cloudflare/cloudflared:2026.7.3"
                          }
                  ]
              }
          }
      }
Resources:
  ~ 3 to update
  7 unchanged
  

@andymeierdev
andymeierdev merged commit f20feaf into main Aug 7, 2026
3 checks passed
@andymeierdev
andymeierdev deleted the andymeierdev/code-review-improvements branch August 7, 2026 10:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant