From a735ed17464b707360672e81f8f47787b4ac94d2 Mon Sep 17 00:00:00 2001 From: Raimund Andree Date: Sun, 4 Oct 2026 19:36:23 +0200 Subject: [PATCH] chore(memory-bank): record the merges of #94 to #96 and the Gallery history - #94, #95, and #96 merged; the first master run passed and published the wiki; AppVeyor no longer reports. - Decision 9 records that the version history stays separate from the changelog, and why. - techContext: Gallery versions and dates, the package comparison recipe, and MD024 siblings_only for CHANGELOG.md. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: AI Assistant --- .memory-bank/activeContext.md | 39 +++++---- .memory-bank/decisions/0009-docs-on-github.md | 6 +- .memory-bank/progress.md | 83 +++++++------------ .memory-bank/techContext.md | 44 ++++++---- 4 files changed, 81 insertions(+), 91 deletions(-) diff --git a/.memory-bank/activeContext.md b/.memory-bank/activeContext.md index c35513f..438b536 100644 --- a/.memory-bank/activeContext.md +++ b/.memory-bank/activeContext.md @@ -9,31 +9,30 @@ source: current task evidence ## Current focus -PRs #94 (docs on GitHub) and #95 (manifest and version 5.0.0, stacked on -PR #94) are open and build on AppVeyor. The move to GitHub Actions (CI and -a wiki generated from `Docs`, Decision 11) is PR-ready on the local branch -`ai/github-actions`, stacked on #95; the maintainer pushes it and opens the -PR. Merge order: #94, #95 (merge commits), then the GitHub Actions PR. +PRs #94, #95, and #96 are merged; CI and the wiki run on GitHub Actions. +The version history completed from the PowerShell Gallery packages is +PR-ready on the local branch `ai/version-history`; the maintainer pushes it +and opens the PR. Work package 5 (code defects) waits for the maintainer's +go-ahead. ## Evidence -- `Wiki.Tests.ps1` failed 25 of 25 before the exporter existed and passes - 25 of 25 in Windows PowerShell 5.1 and PowerShell 7.6.1. A negative - control (broken anchor, missing page, missing file) reports all three. -- A dry run against a clone of the live wiki adds 41 pages, changes Home - and How-to-install, and deletes the stale `Cmdlets.md` and - `Version-History.textile`; nothing was pushed. -- `Invoke-Tests.ps1`, as CI calls it, passed locally against a Release - build: Windows PowerShell 5.1 253 of 253; PowerShell 7 217 passed and 36 - skipped (`Get-Help -Online` runs only in Windows PowerShell). -- actionlint 1.7.12 reports nothing for `.github/workflows/ci.yml`. The - runner image `windows-2025` has Visual Studio 2022 MSBuild 17.14, NuGet, - the GitHub CLI, and PowerShell 7.6; `master` has no branch protection. +- Six Gallery packages compared (4.0.0, 4.2.2 to 4.2.6), each imported in + its own Windows PowerShell process: exported cmdlets 30, 35, 36, 36, 36, + 36. `Show-SimpleAccess` was exported only by 4.0.0 (the manifest of 4.2.2 + to 4.2.4 lists it as `Show-NTFSSimpleAccess`) and deleted in 4.2.5. All + versions export the aliases `dir2`, `gi2`, `rm2`, and `del2` only. +- 4.2.4 already carried the MIT license (`LicenseUri`), the setting + `IdentifyHardLinks`, and AlphaFS 2.2.1; 4.2.5 fixed the `-Account` + aliases (#18, #36) and #48 but broke the `Applies to` column, which 4.2.6 + fixed (#57). 4.2.5 and 4.2.6 still ship AlphaFS 2.2.1: `d8f67af` updated + only `packages.config`, not the `HintPath`. +- `Wiki.Tests.ps1` passes with the changed page; markdownlint (with `MD024` + siblings only for `CHANGELOG.md`) and the link check found nothing. - The local branch `ai/read-the-docs` keeps the dropped strict-build work (`886c874`, `325ec76`); delete it once it is no longer wanted. ## Next step -After the maintainer pushes: read the AppVeyor results of #94 and #95 and -the first GitHub Actions run with `gh run view`. Work package 5 (code -defects) starts only after the maintainer's go-ahead. +After the maintainer opens the PR: read its GitHub Actions run with +`gh pr checks`. Then wait for the go-ahead for work package 5. diff --git a/.memory-bank/decisions/0009-docs-on-github.md b/.memory-bank/decisions/0009-docs-on-github.md index 28b89c4..f5decb2 100644 --- a/.memory-bank/decisions/0009-docs-on-github.md +++ b/.memory-bank/decisions/0009-docs-on-github.md @@ -23,4 +23,8 @@ source: maintainer decision in work package 3 that GitHub shows it when you open the `Docs` folder. - Rejected: taking over or re-importing the Read the Docs project with a strict MkDocs build (prepared on the local branch `ai/read-the-docs`, not - merged). + merged). Also rejected (maintainer, 2026-10-04): merging + `Docs/Version-History.md` into `CHANGELOG.md`. Only 5 of the 22 old + versions have a recoverable release date (PowerShell Gallery) and only 3 + have tags, so they can't follow the changelog format; the page instead + carries the Gallery dates and notes completed from the Gallery packages. diff --git a/.memory-bank/progress.md b/.memory-bank/progress.md index 034bf86..9eca350 100644 --- a/.memory-bank/progress.md +++ b/.memory-bank/progress.md @@ -9,13 +9,12 @@ source: repository evidence ## Current status -PRs #91, #92, and #93 are merged. The documentation matches the cmdlets at -`master`, and the module ships the help file generated from it -(`en-US\NTFSSecurity.dll-Help.xml`). Otherwise the module source differs -from the 4.2.6 release only by the `Remove-Item2 -PassThru` rename and -`CompatiblePSEditions`. Open PRs: #94 (work package 3) and #95 (work package -4, stacked on #94); the move to GitHub Actions is PR-ready locally on -`ai/github-actions`, stacked on #95. +PRs #91 to #96 are merged; `master` (`4f9f7cc`) carries version 5.0.0, +which is not released yet. CI runs on GitHub Actions: build, docs checks, +and tests in Windows PowerShell 5.1 and PowerShell 7, plus the wiki, which +is generated from `Docs` (43 pages). AppVeyor no longer reports on `master`. +PR-ready locally: `ai/version-history`, the version history completed from +the PowerShell Gallery packages. ## Recent milestones @@ -36,24 +35,17 @@ from the 4.2.6 release only by the `Remove-Item2 -PassThru` rename and upload had listed 870), six cmdlet-page links reworded for the help text. AppVeyor passed 218 of 218 on the PR (54834295) and on `master` (54834350). -- 2026-10-04: The maintainer dropped Read the Docs: the docs stay on GitHub - and the wiki is retired (Decision 9). Work package 3 committed locally on - `ai/docs-on-github` (`84328dc`). The strict Read the Docs build prepared - before stays unmerged on the local branch `ai/read-the-docs`. -- 2026-10-04: Work package 4 committed locally on `ai/manifest-version` - (`678ff90`), stacked on `ai/docs-on-github`: valid manifest (requires - PowerShell 5.1), 36 cmdlets, version 5.0.0 everywhere (Decision 10), - `-PassThur` alias. The AppVeyor test script, run locally in Windows - PowerShell 5.1, passed: no docs drift, 0 broken links, current help file, - 228 of 228 Pester tests. `Test-ModuleManifest` passes in Windows - PowerShell 5.1 and PowerShell 7.6.1. -- 2026-10-04: The maintainer opened #94 and #95, then chose to keep the wiki, - generated from `Docs`, and to move CI from AppVeyor to GitHub Actions in - one PR (Decision 11): committed locally on `ai/github-actions`, stacked on - #95. `Wiki.Tests.ps1` failed 25 of 25 before the exporter existed and - passes in both editions; `Invoke-Tests.ps1` passed locally in Windows - PowerShell 5.1 (253 of 253) and PowerShell 7 (217 passed, 36 skipped); - actionlint found nothing. +- 2026-10-04: Work packages 3 (#94, `bde59a5`), 4 (#95, `6665825`), and the + move to GitHub Actions (#96, `4f9f7cc`) merged with merge commits: Read + the Docs dropped (Decision 9), version 5.0.0 with a valid manifest + (Decision 10), CI and a wiki generated from `Docs` on GitHub Actions + (Decision 11). The first `master` run (37218869672) passed and published + the wiki (`62ec94a`, 43 pages). +- 2026-10-04: The maintainer kept the version history separate from + `CHANGELOG.md` and had it completed from the six PowerShell Gallery + packages and the commit history: release dates, notes for 4.2.2, detailed + notes for 4.2.4, and separate notes for 4.2.5 and 4.2.6 + (`ai/version-history`). ## Stable capabilities @@ -72,33 +64,20 @@ next package starts only after the maintainer's go-ahead. 1. Housekeeping: done (#92). 2. Ship help: done (#93). -3. Docs on GitHub (was: Read the Docs), PR #94: Read the Docs and MkDocs - configuration removed, `Docs/index.md` renamed to `Docs/README.md`, the - wiki's version history and install steps moved into `Docs` (with - reconstructed notes for 4.2.5 and 4.2.6), contributor guide updated. Keep - the wiki on: the GitHub Actions PR generates it from `Docs`, which also - keeps the release-note links to `wiki/Version-History` working. - `Sup3rlativ3` may be asked to delete the Read the Docs project. -4. Manifest and version, PR #95, stacked on #94 (merge #94 first with a - merge commit). - Maintainer decisions: `PowerShellVersion` 5.1, `DotNetFrameworkVersion` - 4.5.2, `RootModule`; version 5.0.0; `[Alias('PassThur')]` on - `Remove-Item2 -PassThru`, listed under Deprecated; `NTFSSecurity`, - `Security2`, and `PrivilegeControl` carry the module version (Decision - 10). Before the release, not part of the PR: set the date of the 5.0.0 - section to the release date, tag `5.0.0` (no `v` prefix), build in - Release, and clean `C:\Program Files\WindowsPowerShell\Modules\NTFSSecurity` - before `Publish-Module`; releases so far were Debug builds published with - the whole output folder (`.pdb`, `.xml`, - `System.Management.Automation.dll`), and the removed - `NTFSSecurity-Help.xml` would ship again. -4b. GitHub Actions for CI and the wiki (Decision 11), PR-ready on - `ai/github-actions`, stacked on #95 (merge #94 and #95 first with merge - commits). AppVeyor reports a failure on this PR because it removes - `appveyor.yml`; that's expected. After the merge: delete the AppVeyor - project `raandree/ntfssecurity` and revoke AppVeyor's GitHub access, - check the first wiki publication, and consider **Restrict editing to - collaborators only** for the wiki. +3. Docs on GitHub: done (#94). +4. Manifest and version 5.0.0: done (#95). Before the release: set the date + of the 5.0.0 section to the release date (fold the `[Unreleased]` entries + into it), tag `5.0.0` (no `v` prefix), build in Release, and clean + `C:\Program Files\WindowsPowerShell\Modules\NTFSSecurity` before + `Publish-Module`; releases so far were Debug builds published with the + whole output folder (`.pdb`, `.xml`, `System.Management.Automation.dll`), + and the removed `NTFSSecurity-Help.xml` would ship again. +4b. CI and the wiki on GitHub Actions: done (#96). Left to the maintainer: + revoke AppVeyor's GitHub access if it is still granted, consider + **Restrict editing to collaborators only** for the wiki, and optionally + ask `Sup3rlativ3` to delete the Read the Docs project. +4c. Version history from the PowerShell Gallery: PR-ready on + `ai/version-history`. 5. Code defects, listed below: `review: on`, one PR per group, regression test first. Pester 5 tests import `NTFSSecurity\bin\Release`, run in a `$env:TEMP` sandbox and in the CI workflow (pattern: diff --git a/.memory-bank/techContext.md b/.memory-bank/techContext.md index 07c4c9e..af981f4 100644 --- a/.memory-bank/techContext.md +++ b/.memory-bank/techContext.md @@ -65,16 +65,19 @@ source: repository evidence ## Constraints -- `ModuleVersion` is `5.0.0` on `ai/manifest-version` (work package 4, - unreleased; `master` still says `4.2.5`); the latest tag and Gallery - release is `4.2.6`. The manifest requires PowerShell 5.1 and .NET +- `ModuleVersion` on `master` is `5.0.0` (not released); the latest tag and + Gallery release is `4.2.6`. The manifest requires PowerShell 5.1 and .NET Framework 4.5.2, uses `RootModule`, and lists exactly 36 cmdlets; `Test-ModuleManifest` passes in Windows PowerShell 5.1 and PowerShell 7.6. - Besides the shipped help file and its tests (#93), the module source at - `master` differs from tag `4.2.6` only by the `Remove-Item2 -PassThur` - to `-PassThru` rename and `CompatiblePSEditions` in the manifest; work - package 4 adds the manifest and version changes and the `-PassThur` - alias. + `master` differs from tag `4.2.6` by the `Remove-Item2 -PassThur` to + `-PassThru` rename (with a `-PassThur` alias), the manifest changes of + #95, and the assembly versions. +- PowerShell Gallery versions (publish dates): 4.0.0 (2015-08-19), 4.2.2 + (2016-05-18), 4.2.3 (2016-05-19), 4.2.4 (2018-08-13), 4.2.5 (2019-07-11), + 4.2.6 (2019-07-12); none has release notes. Older versions were released + on CodePlex only, and their dates are lost. The git history starts on + 2016-10-10, when the project moved from CodePlex. - Releases have no script and no CI deployment. Evidence from 4.2.6: the Gallery DLLs are Debug builds (`DebuggableAttribute` 263), the nuspec comes from `Publish-Module`, the package holds the whole output folder @@ -82,12 +85,11 @@ source: repository evidence published manifest differs from the tag only by `ModuleVersion` (tags carry the previous version). GitHub releases attach `NTFSSecurity.zip`. - CI: GitHub Actions on pull requests and pushes to `master` (Decision 11). - The AppVeyor project `raandree/ntfssecurity` builds until the maintainer - deletes it after the GitHub Actions PR is merged. The Read the Docs - project `ntfssecurity` (maintainer `Sup3rlativ3`) and a second AppVeyor - project are attached to the fork `Sup3rlativ3/NTFSSecurity`, which no - longer exists (GitHub 404, 2026-10-04). That site still serves pages from - 2020 and isn't used (Decision 9). + AppVeyor no longer reports on `master` (checked on `4f9f7cc`). The Read + the Docs project `ntfssecurity` (maintainer `Sup3rlativ3`) and a second + AppVeyor project are attached to the fork `Sup3rlativ3/NTFSSecurity`, + which no longer exists (GitHub 404, 2026-10-04). That site still serves + pages from 2020 and isn't used (Decision 9). - `Get-FileHash2` fails in PowerShell 7; all other cmdlets passed a smoke test in PowerShell 7.6. - `CHANGELOG.md` lists user-visible changes only; CI and build-only changes @@ -119,10 +121,8 @@ source: repository evidence publishes from `master` only. Actions are pinned by commit SHA: `actions/checkout` v7.0.1, `actions/upload-artifact` v7.0.1. - Read CI runs with `gh run list --repo raandree/NTFSSecurity --workflow - ci.yml` and `gh run view --log-failed` (read-only). While AppVeyor - still builds: `api/projects/raandree/ntfssecurity/history`, build - `api/projects/raandree/ntfssecurity/builds/`, job log - `api/buildjobs//log` (public, no token). + ci.yml`, `gh pr checks `, and `gh run view --log-failed` + (read-only). - Workflow lint: actionlint (download the release zip into `$env:TEMP` and check its SHA-256 against the checksum file); PowerShell steps check `$LASTEXITCODE` after every native command, because GitHub checks only @@ -137,7 +137,15 @@ source: repository evidence `powershell.exe -NoProfile -EncodedCommand` with Pester imported by full path. A run without `bin\Release\en-US` must fail. - Markdown lint: `npx markdownlint-cli2` with `MD013` limited to prose - (tables, code, and headings excluded) on the conceptual pages. + (tables, code, and headings excluded) on the conceptual pages; for + `CHANGELOG.md` also `MD024` with `siblings_only: true`, because every + version repeats the category headings. +- Gallery packages: download + `https://www.powershellgallery.com/api/v2/package/NTFSSecurity/` + into `$env:TEMP` and extract it; dates come from the OData endpoint + `api/v2/FindPackagesById()?id='NTFSSecurity'`. Import each version in its + own process: every version's `NTFSSecurity.dll` has assembly version + 4.2.1.0, so a second version in the same process reuses the first DLL. - YAML: `ConvertFrom-Yaml` (powershell-yaml) on `.github/workflows/ci.yml`. - Links: the CI step 02 (MarkdownLinkCheck 0.2.0) checks only relative links in `Docs`; it strips anchors and skips absolute URLs.