diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 5fc0f47..2a80a81 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -95,7 +95,7 @@ jobs: release: needs: [verify, gates, security, codeql, scripts, fuzzing] - uses: KofTwentyTwo/standards/.github/workflows/release-velopack.yml@96cbdf208a15c9c524676bd15ff9e323228a952b # v1.1.1 + uses: KofTwentyTwo/standards/.github/workflows/release-velopack.yml@083d90326a8f3b750d840b6180e00870ee1342f5 # v1.1.2 permissions: contents: write # create and publish the GitHub release id-token: write # sign attestations; Azure OIDC when signing diff --git a/Directory.Build.props b/Directory.Build.props index 4cbeef1..96533ba 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -54,7 +54,7 @@ commit as "+" on AssemblyInformationalVersion, which the About dialog and the CLI's version output show as a short hash. --> - 1.0.0 + 1.0.3 dev diff --git a/README.md b/README.md index 5deb22c..f0baad4 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,7 @@ Read Markdown comfortably, keep up with changes, and turn your notes into someth MarkdownViewr is a dedicated Windows reader for project documentation, notes, and README files. Open a document, choose a look you like, and focus on the words. -**[Release downloads](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases) · [User guide](docs/user-guide.md) · [Ask a question](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/discussions)** - -> The first Windows release is being prepared. There are no published Windows downloads yet; the Releases page will contain the stable installer and development previews when publication completes. +**[Download Windows installer](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases/latest/download/markdownviewr-windows-stable-Setup.exe) · [User guide](docs/user-guide.md) · [Ask a question](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/discussions)** [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE) [![OpenSSF Best Practices](https://www.bestpractices.dev/projects/15417/badge)](https://www.bestpractices.dev/en/projects/15417) @@ -29,17 +27,17 @@ Contents and Source start hidden. Turn them on when needed, or change their new- ## Download and install -The planned Windows packages support **Windows 10 version 1809 or later and Windows 11, x64**. Microsoft Edge WebView2 Runtime is required. No .NET SDK is needed to use a release. +Windows packages support **Windows 10 version 1809 or later and Windows 11, x64**. Microsoft Edge WebView2 Runtime is required. No .NET SDK is needed to use a release. | Edition | Choose it for | Package | | --- | --- | --- | -| Stable | Everyday reading | `markdownviewr-windows-stable-Setup.exe` | -| Development preview | Trying upcoming changes | `markdownviewr-windows-dev-Setup.exe` | -| Portable | Running without installation | `markdownviewr-windows-stable-Portable.zip` | +| Stable | Everyday reading | [Download EXE installer](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases/latest/download/markdownviewr-windows-stable-Setup.exe) | +| Development preview | Trying upcoming changes | [Download dev EXE installer](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases/download/v1.0.2-beta.1/markdownviewr-windows-dev-dev-Setup.exe) | +| Portable | Running without installation | [Download portable ZIP](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases/latest/download/markdownviewr-windows-stable-Portable.zip) | -Once available, download a package from [Releases](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases). Run Setup for a per-user installation without administrator rights, or extract the portable ZIP before launching the app. +Download a package from [Releases](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases). Run Setup for a per-user installation without administrator rights, or extract the portable ZIP before launching the app. -Installed editions check for updates through **Help → Check for updates**. Stable and development editions keep separate settings and update channels, so they can coexist. Portable copies do not self-update. +Installed and portable editions check for updates through **Help → Check for updates**. Stable and development editions keep separate settings and update channels, so they can coexist. ## Quick start diff --git a/SECURITY.md b/SECURITY.md index 59a663e..0774a3c 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -50,11 +50,10 @@ minor receives security fixes for 6 months. Public Windows releases require Authenticode signing of the final shipped binaries and installers. Publication fails closed until the approved Azure signing identity -and expected publisher, trust and timestamp are verified. No verified signed -MarkdownViewr release has been published yet; unsigned test fixtures are not releases. +and expected publisher, trust and timestamp are verified. Unsigned test fixtures are not releases. Verify final signatures, `SHA256SUMS` and provenance attestations as described in the -[README](README.md#verifying-a-release) and +[Developer Guide](DEVELOPERS.md#releases-and-verification) and [release signing instructions](docs/release-signing.md). No historical exception is claimed as permission to publish unsigned application releases. diff --git a/docs/SESSION-STATE.md b/docs/SESSION-STATE.md index 4f83e22..cf275cf 100644 --- a/docs/SESSION-STATE.md +++ b/docs/SESSION-STATE.md @@ -1,49 +1,36 @@ # Session State -Updated: 2026-10-12 +Updated: 2026-10-13 -## Release blockers after main merge - 2026-10-12 +## Release source and verification -Standards PR44 was personally reviewed by the owner and merged atb3e4b49. -Its version/changelog-only release PR42 merged at96cbdf2; signedv1.1.1 was pushed -and release CI38322016784 is running. The app caller now pins that exact builder. -No new Azure administration or credentials are required. +Application behavior remains the owner-reviewed PR37 source at main4c0ccc7. +Actual focused30, native111, published111 and installed stable/dev110 reports +have zero failures/skips. Unchanged-source main validation38325540268 attempt2 +also passes published111 and installed stable/dev110 each. Update/restart, +channel coexistence, registration and preservation of defaults are verified. -App PR37's first hosted run completed111 published tests:110 passed, one literal -keyboard assertion observedjk instead ofjkg. The test now waits for the exactjkg -value within its existing10-second deadline before retaining the same assertion. -FlaUI5.0.0's UntilInputIsProcessed is only a100ms sleep, not an acknowledgement. -The exact test is also included in the focused hosted regression job. Builds and -formatting pass; hosted verification remains required. Local baseline and changed -runs both stopped earlier at missing FindText, so they do not verify thejkg fix. -Temporary diagnostics were removed. Original preview processes/profiles remain -untouched. Fresh exact-head hosted acceptance must pass before merge/publication. +The signing caller pins standards1.1.2 at +083d90326a8f3b750d840b6180e00870ee1342f5. Personally approved PR45 corrects the +GitHub pwsh bootstrap wrapper; all hosted signing checks pass. Caller NuGet +mapping, Azure trust scopes and strict publisher/signature gates are unchanged. +No new Azure administration is required. -The owner-reviewed application merged through PR35 at38dd5c1. Main CI38294895221 -passed; retained published111 and installed stable/dev110 reports have zero -failures/skips. OpenSSF project15417 assessment is saved at70%, not passing. -The exact Syft image is now explicitly owner-approved and allowlisted. +Preserve the failed1.0.0 and1.0.1 stable/dev tags. New candidates are +1.0.2/stable and1.0.2-beta.1/dev. Production status and exact shipped-artifact +proof belong in [release checklist](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/issues/33) +and [GitHub Releases](https://github.com/KofTwentyTwo/MarkdownViewr.Windows/releases). +Require successful signing and verification of exact downloaded bytes before +claiming a signed public release. -Neither production release is published. Signedv1.0.0 andv1.0.0-beta.1 tags remain -preserved. Dev38299469062 passed acceptance and Azure OIDC login, then failed the -official signing action dependency install because --add-source conflicts with -NuGet package source mapping. Standards PR44 stages the exact verified dependency -without changing caller NuGet policy;40 signing tests and the real package bootstrap -pass locally. Production CI signing and final artifact verification remain pending. +The maintainer authorized release without further human-review requests on +2026-10-13. Record this as an explicit release-specific waiver, never as a claim +that an unseen change was personally read. Automated review and technical CI +remain required. The next development prefix is1.0.3. EXE/ZIP publication comes +first; MSI is tracked for the following release in issue36. OpenSSF15417 remains +70%, not passing. Preserve original owner previews/profiles and unrelated work. -Stable38299469141 attempt2 completed110 of111 published tests without a reported -test failure before its600-second process limit. The successful main published -suite took572 seconds. The bounded suite budget is now900 seconds; individual -test deadlines, assertions, cases and failure handling remain unchanged. The job -budget allows all three suites plus packaging/update probes. Two real subprocess -regressions verify that hangs and nonzero exits still fail the gate. Fresh hosted -acceptance is required; this timing change is not proof of a successful release. - -The owner's latest instruction is EXE/portable ZIP first, MSI next release (#36). -Do not cancel runs, alter published assets, replace existing release tags, skip -acceptance or claim public downloads. Next: genuine review and green checks for -the two fixes, merge the shared builder, update the app's immutable builder pin, -then publish new signed release candidates and verify the downloaded artifacts. +## Historical release snapshots ## Current release status - 2026-10-12 diff --git a/docs/TODO.md b/docs/TODO.md index aaaddd7..4740542 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -1,21 +1,18 @@ # Development Tasks -## Current release checklist - 2026-10-12 +## Release and follow-up work -- [x] Merge genuinely owner-reviewed app through PR35 at38dd5c1; all main gates pass. -- [x] Preserve signed1.0.0/stable and1.0.0-beta.1/dev tags; no release is published. -- [x] Apply only the exact Syft image addition explicitly approved by the owner. -- [x] Prove production Azure OIDC login; preserve existing account/profile/trust. -- [x] Reproduce signing dependency conflict; standards PR44 real package bootstrap and40 signing tests pass locally. -- [x] Measure stable retry110/111 without reported test failures before600-second limit; prepare bounded900-second suite budget with unchanged assertions/deadlines. -- [ ] Obtain genuine reviews, pass exact-head hosted checks and merge the release fixes. -- [x] Owner personally reviewed standards PR44; merge the signing fix and version-only PR42 through normal protections, then push signedstandards1.1.1. -- [x] Update the app caller to fixed builder96cbdf2; preserve caller NuGet mapping and strict signing verification. -- [x] Keep the exactjkg assertion while awaiting native text processing within its existing deadline; add the case to focused hosted regressions. -- [ ] Verify fresh full hosted acceptance and obtain genuine final-head app review before merge. -- [ ] Publish stable/dev EXE and ZIP candidates; verify exact distributed signatures, timestamps, hashes, SBOMs and attestations (#33). -- [ ] Update user download links only after actual verified publication. -- [ ] Deliver signed and acceptance-tested MSI installers in the next release (#36), following the owner's latest decision. +- [x] Merge reviewed PR37 at4c0ccc7; focused30/native111/published111/stable110/dev110 pass with no failures/skips. +- [x] Merge personally approved signing-wrapper PR45 and metadata-only standards1.1.2 proposal; pin083d903 without changing NuGet mapping or Azure trust scopes. +- [x] Preserve failed1.0.0 and1.0.1 stable/dev tags and prepare new1.0.2 candidates. +- [x] Prepare direct download links, portable-update guidance and developer verification links. +- [x] Set next development VersionPrefix to1.0.3. +- [ ] Verify published standards1.1.2 bundle hashes/provenance and exact builder bytes. +- [ ] Pass final exact-head CI, record automated review and the maintainer's explicit release-specific review waiver, and merge normally. +- [ ] Publish signed stable/dev EXE installers and portable ZIPs; verify exact shipped signatures, publisher, trust, timestamps, checksums, SBOMs and provenance (#33). +- Deliver signed, installed-acceptance-tested MSI installers next release (#36). +- Reduce repeated validation while preserving trust and complete acceptance (#38). +- Complete remaining OpenSSF evidence; saved70% is not a passing badge (#31). ## Prior release checklist diff --git a/docs/user-guide.md b/docs/user-guide.md index a8afda4..3efef79 100644 --- a/docs/user-guide.md +++ b/docs/user-guide.md @@ -60,7 +60,7 @@ The installer preserves your current defaults. Windows requires you to choose th ## Updates and local data -Installed stable and development editions update within their own channels using **Help → Check for updates**. They have separate settings, recent files, and logs. Portable copies require a fresh download. +Stable and development editions, including portable copies, update within their own channels using **Help → Check for updates**. They have separate settings, recent files, and logs. Settings and logs are stored locally under `%LOCALAPPDATA%\markdownviewr-windows` or `%LOCALAPPDATA%\markdownviewr-windows-dev`. **Help → Activity log** opens the log viewer and provides a shortcut to its folder.