Browse Source

Merge pull request #97 from raandree/ai/version-history

docs: complete the version history from the PowerShell Gallery
pull/98/head
Raimund Andrée 1 week ago
committed by GitHub
parent
commit
59663c937c
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 39
      .memory-bank/activeContext.md
  2. 6
      .memory-bank/decisions/0009-docs-on-github.md
  3. 83
      .memory-bank/progress.md
  4. 44
      .memory-bank/techContext.md
  5. 6
      CHANGELOG.md
  6. 69
      Docs/Version-History.md

39
.memory-bank/activeContext.md

@ -9,31 +9,30 @@ source: current task evidence
## Current focus ## Current focus
PRs #94 (docs on GitHub) and #95 (manifest and version 5.0.0, stacked on PRs #94, #95, and #96 are merged; CI and the wiki run on GitHub Actions.
PR #94) are open and build on AppVeyor. The move to GitHub Actions (CI and The version history completed from the PowerShell Gallery packages is
a wiki generated from `Docs`, Decision 11) is PR-ready on the local branch PR-ready on the local branch `ai/version-history`; the maintainer pushes it
`ai/github-actions`, stacked on #95; the maintainer pushes it and opens the and opens the PR. Work package 5 (code defects) waits for the maintainer's
PR. Merge order: #94, #95 (merge commits), then the GitHub Actions PR. go-ahead.
## Evidence ## Evidence
- `Wiki.Tests.ps1` failed 25 of 25 before the exporter existed and passes - Six Gallery packages compared (4.0.0, 4.2.2 to 4.2.6), each imported in
25 of 25 in Windows PowerShell 5.1 and PowerShell 7.6.1. A negative its own Windows PowerShell process: exported cmdlets 30, 35, 36, 36, 36,
control (broken anchor, missing page, missing file) reports all three. 36. `Show-SimpleAccess` was exported only by 4.0.0 (the manifest of 4.2.2
- A dry run against a clone of the live wiki adds 41 pages, changes Home to 4.2.4 lists it as `Show-NTFSSimpleAccess`) and deleted in 4.2.5. All
and How-to-install, and deletes the stale `Cmdlets.md` and versions export the aliases `dir2`, `gi2`, `rm2`, and `del2` only.
`Version-History.textile`; nothing was pushed. - 4.2.4 already carried the MIT license (`LicenseUri`), the setting
- `Invoke-Tests.ps1`, as CI calls it, passed locally against a Release `IdentifyHardLinks`, and AlphaFS 2.2.1; 4.2.5 fixed the `-Account`
build: Windows PowerShell 5.1 253 of 253; PowerShell 7 217 passed and 36 aliases (#18, #36) and #48 but broke the `Applies to` column, which 4.2.6
skipped (`Get-Help -Online` runs only in Windows PowerShell). fixed (#57). 4.2.5 and 4.2.6 still ship AlphaFS 2.2.1: `d8f67af` updated
- actionlint 1.7.12 reports nothing for `.github/workflows/ci.yml`. The only `packages.config`, not the `HintPath`.
runner image `windows-2025` has Visual Studio 2022 MSBuild 17.14, NuGet, - `Wiki.Tests.ps1` passes with the changed page; markdownlint (with `MD024`
the GitHub CLI, and PowerShell 7.6; `master` has no branch protection. siblings only for `CHANGELOG.md`) and the link check found nothing.
- The local branch `ai/read-the-docs` keeps the dropped strict-build work - The local branch `ai/read-the-docs` keeps the dropped strict-build work
(`886c874`, `325ec76`); delete it once it is no longer wanted. (`886c874`, `325ec76`); delete it once it is no longer wanted.
## Next step ## Next step
After the maintainer pushes: read the AppVeyor results of #94 and #95 and After the maintainer opens the PR: read its GitHub Actions run with
the first GitHub Actions run with `gh run view`. Work package 5 (code `gh pr checks`. Then wait for the go-ahead for work package 5.
defects) starts only after the maintainer's go-ahead.

6
.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. that GitHub shows it when you open the `Docs` folder.
- Rejected: taking over or re-importing the Read the Docs project with a - 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 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.

83
.memory-bank/progress.md

@ -9,13 +9,12 @@ source: repository evidence
## Current status ## Current status
PRs #91, #92, and #93 are merged. The documentation matches the cmdlets at PRs #91 to #96 are merged; `master` (`4f9f7cc`) carries version 5.0.0,
`master`, and the module ships the help file generated from it which is not released yet. CI runs on GitHub Actions: build, docs checks,
(`en-US\NTFSSecurity.dll-Help.xml`). Otherwise the module source differs and tests in Windows PowerShell 5.1 and PowerShell 7, plus the wiki, which
from the 4.2.6 release only by the `Remove-Item2 -PassThru` rename and is generated from `Docs` (43 pages). AppVeyor no longer reports on `master`.
`CompatiblePSEditions`. Open PRs: #94 (work package 3) and #95 (work package PR-ready locally: `ai/version-history`, the version history completed from
4, stacked on #94); the move to GitHub Actions is PR-ready locally on the PowerShell Gallery packages.
`ai/github-actions`, stacked on #95.
## Recent milestones ## 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 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` text. AppVeyor passed 218 of 218 on the PR (54834295) and on `master`
(54834350). (54834350).
- 2026-10-04: The maintainer dropped Read the Docs: the docs stay on GitHub - 2026-10-04: Work packages 3 (#94, `bde59a5`), 4 (#95, `6665825`), and the
and the wiki is retired (Decision 9). Work package 3 committed locally on move to GitHub Actions (#96, `4f9f7cc`) merged with merge commits: Read
`ai/docs-on-github` (`84328dc`). The strict Read the Docs build prepared the Docs dropped (Decision 9), version 5.0.0 with a valid manifest
before stays unmerged on the local branch `ai/read-the-docs`. (Decision 10), CI and a wiki generated from `Docs` on GitHub Actions
- 2026-10-04: Work package 4 committed locally on `ai/manifest-version` (Decision 11). The first `master` run (37218869672) passed and published
(`678ff90`), stacked on `ai/docs-on-github`: valid manifest (requires the wiki (`62ec94a`, 43 pages).
PowerShell 5.1), 36 cmdlets, version 5.0.0 everywhere (Decision 10), - 2026-10-04: The maintainer kept the version history separate from
`-PassThur` alias. The AppVeyor test script, run locally in Windows `CHANGELOG.md` and had it completed from the six PowerShell Gallery
PowerShell 5.1, passed: no docs drift, 0 broken links, current help file, packages and the commit history: release dates, notes for 4.2.2, detailed
228 of 228 Pester tests. `Test-ModuleManifest` passes in Windows notes for 4.2.4, and separate notes for 4.2.5 and 4.2.6
PowerShell 5.1 and PowerShell 7.6.1. (`ai/version-history`).
- 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.
## Stable capabilities ## Stable capabilities
@ -72,33 +64,20 @@ next package starts only after the maintainer's go-ahead.
1. Housekeeping: done (#92). 1. Housekeeping: done (#92).
2. Ship help: done (#93). 2. Ship help: done (#93).
3. Docs on GitHub (was: Read the Docs), PR #94: Read the Docs and MkDocs 3. Docs on GitHub: done (#94).
configuration removed, `Docs/index.md` renamed to `Docs/README.md`, the 4. Manifest and version 5.0.0: done (#95). Before the release: set the date
wiki's version history and install steps moved into `Docs` (with of the 5.0.0 section to the release date (fold the `[Unreleased]` entries
reconstructed notes for 4.2.5 and 4.2.6), contributor guide updated. Keep into it), tag `5.0.0` (no `v` prefix), build in Release, and clean
the wiki on: the GitHub Actions PR generates it from `Docs`, which also `C:\Program Files\WindowsPowerShell\Modules\NTFSSecurity` before
keeps the release-note links to `wiki/Version-History` working. `Publish-Module`; releases so far were Debug builds published with the
`Sup3rlativ3` may be asked to delete the Read the Docs project. whole output folder (`.pdb`, `.xml`, `System.Management.Automation.dll`),
4. Manifest and version, PR #95, stacked on #94 (merge #94 first with a and the removed `NTFSSecurity-Help.xml` would ship again.
merge commit). 4b. CI and the wiki on GitHub Actions: done (#96). Left to the maintainer:
Maintainer decisions: `PowerShellVersion` 5.1, `DotNetFrameworkVersion` revoke AppVeyor's GitHub access if it is still granted, consider
4.5.2, `RootModule`; version 5.0.0; `[Alias('PassThur')]` on **Restrict editing to collaborators only** for the wiki, and optionally
`Remove-Item2 -PassThru`, listed under Deprecated; `NTFSSecurity`, ask `Sup3rlativ3` to delete the Read the Docs project.
`Security2`, and `PrivilegeControl` carry the module version (Decision 4c. Version history from the PowerShell Gallery: PR-ready on
10). Before the release, not part of the PR: set the date of the 5.0.0 `ai/version-history`.
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.
5. Code defects, listed below: `review: on`, one PR per group, regression 5. Code defects, listed below: `review: on`, one PR per group, regression
test first. Pester 5 tests import `NTFSSecurity\bin\Release`, run in a test first. Pester 5 tests import `NTFSSecurity\bin\Release`, run in a
`$env:TEMP` sandbox and in the CI workflow (pattern: `$env:TEMP` sandbox and in the CI workflow (pattern:

44
.memory-bank/techContext.md

@ -65,16 +65,19 @@ source: repository evidence
## Constraints ## Constraints
- `ModuleVersion` is `5.0.0` on `ai/manifest-version` (work package 4, - `ModuleVersion` on `master` is `5.0.0` (not released); the latest tag and
unreleased; `master` still says `4.2.5`); the latest tag and Gallery Gallery release is `4.2.6`. The manifest requires PowerShell 5.1 and .NET
release is `4.2.6`. The manifest requires PowerShell 5.1 and .NET
Framework 4.5.2, uses `RootModule`, and lists exactly 36 cmdlets; Framework 4.5.2, uses `RootModule`, and lists exactly 36 cmdlets;
`Test-ModuleManifest` passes in Windows PowerShell 5.1 and PowerShell 7.6. `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 - 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` `master` differs from tag `4.2.6` by the `Remove-Item2 -PassThur` to
to `-PassThru` rename and `CompatiblePSEditions` in the manifest; work `-PassThru` rename (with a `-PassThur` alias), the manifest changes of
package 4 adds the manifest and version changes and the `-PassThur` #95, and the assembly versions.
alias. - 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 - Releases have no script and no CI deployment. Evidence from 4.2.6: the
Gallery DLLs are Debug builds (`DebuggableAttribute` 263), the nuspec Gallery DLLs are Debug builds (`DebuggableAttribute` 263), the nuspec
comes from `Publish-Module`, the package holds the whole output folder 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 published manifest differs from the tag only by `ModuleVersion` (tags
carry the previous version). GitHub releases attach `NTFSSecurity.zip`. carry the previous version). GitHub releases attach `NTFSSecurity.zip`.
- CI: GitHub Actions on pull requests and pushes to `master` (Decision 11). - CI: GitHub Actions on pull requests and pushes to `master` (Decision 11).
The AppVeyor project `raandree/ntfssecurity` builds until the maintainer AppVeyor no longer reports on `master` (checked on `4f9f7cc`). The Read
deletes it after the GitHub Actions PR is merged. The Read the Docs the Docs project `ntfssecurity` (maintainer `Sup3rlativ3`) and a second
project `ntfssecurity` (maintainer `Sup3rlativ3`) and a second AppVeyor AppVeyor project are attached to the fork `Sup3rlativ3/NTFSSecurity`,
project are attached to the fork `Sup3rlativ3/NTFSSecurity`, which no which no longer exists (GitHub 404, 2026-10-04). That site still serves
longer exists (GitHub 404, 2026-10-04). That site still serves pages from pages from 2020 and isn't used (Decision 9).
2020 and isn't used (Decision 9).
- `Get-FileHash2` fails in PowerShell 7; all other cmdlets passed a smoke - `Get-FileHash2` fails in PowerShell 7; all other cmdlets passed a smoke
test in PowerShell 7.6. test in PowerShell 7.6.
- `CHANGELOG.md` lists user-visible changes only; CI and build-only changes - `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: publishes from `master` only. Actions are pinned by commit SHA:
`actions/checkout` v7.0.1, `actions/upload-artifact` v7.0.1. `actions/checkout` v7.0.1, `actions/upload-artifact` v7.0.1.
- Read CI runs with `gh run list --repo raandree/NTFSSecurity --workflow - Read CI runs with `gh run list --repo raandree/NTFSSecurity --workflow
ci.yml` and `gh run view <id> --log-failed` (read-only). While AppVeyor ci.yml`, `gh pr checks <number>`, and `gh run view <id> --log-failed`
still builds: `api/projects/raandree/ntfssecurity/history`, build (read-only).
`api/projects/raandree/ntfssecurity/builds/<buildId>`, job log
`api/buildjobs/<jobId>/log` (public, no token).
- Workflow lint: actionlint (download the release zip into `$env:TEMP` and - Workflow lint: actionlint (download the release zip into `$env:TEMP` and
check its SHA-256 against the checksum file); PowerShell steps check check its SHA-256 against the checksum file); PowerShell steps check
`$LASTEXITCODE` after every native command, because GitHub checks only `$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 `powershell.exe -NoProfile -EncodedCommand` with Pester imported by full
path. A run without `bin\Release\en-US` must fail. path. A run without `bin\Release\en-US` must fail.
- Markdown lint: `npx markdownlint-cli2` with `MD013` limited to prose - 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/<version>`
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`. - YAML: `ConvertFrom-Yaml` (powershell-yaml) on `.github/workflows/ci.yml`.
- Links: the CI step 02 (MarkdownLinkCheck 0.2.0) checks only relative - Links: the CI step 02 (MarkdownLinkCheck 0.2.0) checks only relative
links in `Docs`; it strips anchors and skips absolute URLs. links in `Docs`; it strips anchors and skips absolute URLs.

6
CHANGELOG.md

@ -14,6 +14,12 @@ The format is based on
[wiki](https://github.com/raandree/NTFSSecurity/wiki), generated from the [wiki](https://github.com/raandree/NTFSSecurity/wiki), generated from the
`Docs` folder after every change, with a sidebar that lists all cmdlets `Docs` folder after every change, with a sidebar that lists all cmdlets
### Changed
- Complete the version history with the release dates from the PowerShell
Gallery, notes for 4.2.2, detailed notes for 4.2.4, and separate notes for
4.2.5 and 4.2.6
## [5.0.0] - 2026-10-04 ## [5.0.0] - 2026-10-04
### Changed ### Changed

69
Docs/Version-History.md

@ -4,32 +4,73 @@ This page lists the changes in NTFSSecurity 4.2.6 and earlier. It replaces
the hand-written version history that the GitHub wiki kept until 2018. For the the hand-written version history that the GitHub wiki kept until 2018. For the
changes since 4.2.6, see the [changelog](../CHANGELOG.md). changes since 4.2.6, see the [changelog](../CHANGELOG.md).
## 4.2.5 and 4.2.6 Dates are the days on which the PowerShell Gallery published a version.
Versions without a date were released only on CodePlex, and their release
dates are lost. The notes for 4.2.2 and later also draw on a comparison of
the packages in the PowerShell Gallery and on the commit history.
The PowerShell Gallery published 4.2.5 on 2019-07-11 and 4.2.6 on ## 4.2.6 - 2019-07-12
2019-07-12. The wiki listed no changes for these versions, so this list is
reconstructed from the commit history.
- Removed `Show-NTFSSimpleAccess`, which used Windows Forms, for - Fixed the `Applies to` column in the output of `Get-NTFSAccess`
compatibility with PowerShell Core. ([#57](https://github.com/raandree/NTFSSecurity/pull/57)).
- Fixed parameter alias definitions that made importing the module fail,
for example in Service Management Automation ## 4.2.5 - 2019-07-11
- Removed `Show-SimpleAccess`, which used Windows Forms, for compatibility
with PowerShell Core. It had not been available since 4.2.2.
- Fixed the aliases `IdentityReference` and `ID` of the `-Account`
parameter, whose definition made importing the module fail, for example
in Service Management Automation
([#18](https://github.com/raandree/NTFSSecurity/issues/18), ([#18](https://github.com/raandree/NTFSSecurity/issues/18),
[#36](https://github.com/raandree/NTFSSecurity/issues/36)). [#36](https://github.com/raandree/NTFSSecurity/issues/36)).
- Fixed the `ToSimpleFileSystemAccessRule2` method of the access entries - Fixed the `ToSimpleFileSystemAccessRule2` method of the access entries
that `Get-NTFSAccess` returns that `Get-NTFSAccess` returns
([#48](https://github.com/raandree/NTFSSecurity/issues/48)). ([#48](https://github.com/raandree/NTFSSecurity/issues/48)).
- Fixed the `ApplyTo` column in the output of `Get-NTFSAccess`. - Known issue: the `Applies to` column in the output of `Get-NTFSAccess`
shows the inheritance flags instead of the scope, such as
`ThisFolderSubfoldersAndFiles`. 4.2.6 fixes it.
## 4.2.4 - 2018-08-13
- `Get-ChildItem2` adds a `HardLinkCount` property to each file. The new
module setting `IdentifyHardLinks` turns it off.
- The objects that `Get-NTFSOwner` returns have the properties `FullName`
and `Account`, so you can pipe them into `Set-NTFSOwner`
([#31](https://github.com/raandree/NTFSSecurity/issues/31)).
- `Copy-Item2 -Force` and `Move-Item2 -Force` replace an existing file
instead of failing.
- Updated AlphaFS, the library for long paths, to 2.2.1.
- Added the MIT license. - Added the MIT license.
- Fixed `Get-NTFSSimpleAccess -ExcludeInherited`, which returned inherited
permissions ([#12](https://github.com/raandree/NTFSSecurity/issues/12)).
- Fixed `-PassThru` of `Enable-NTFSAccessInheritance`,
`Disable-NTFSAccessInheritance`, `Enable-NTFSAuditInheritance`, and
`Disable-NTFSAuditInheritance`
([#33](https://github.com/raandree/NTFSSecurity/issues/33)).
- Fixed `Remove-NTFSAudit`, which didn't work
([#35](https://github.com/raandree/NTFSSecurity/issues/35)).
## 4.2.4 ## 4.2.3 - 2016-05-19
- Added the cmdlet `Get-FileHash2`.
- Bug fixes. - Bug fixes.
## 4.2.3 ## 4.2.2 - 2016-05-18
- Added the cmdlet `Get-FileHash2`. No notes exist for this version. Compared with 4.0, the previous version in
- Bug fixes. the PowerShell Gallery, it adds the cmdlets of 4.2 and 4.2.1 and these
changes, which no notes mention:
- Added the cmdlet `Test-Path2`.
- Added the `-PassThur` parameter to `Remove-Item2`, renamed to `-PassThru`
in 5.0.0.
- `Add-NTFSAudit` takes the audit flags in the new `-AuditFlags` parameter
instead of `-AccessType`.
- `Remove-NTFSAudit` has the new parameters `-Path` and
`-SecurityDescriptor`, and its `-Type` parameter is renamed to
`-AuditFlags`, its former alias.
- `Show-SimpleAccess` is no longer available, because the module manifest
lists it as `Show-NTFSSimpleAccess`.
## 4.2.1 ## 4.2.1
@ -50,7 +91,7 @@ reconstructed from the commit history.
entries. The old behavior is still available with the `-RemoveSpecific` entries. The old behavior is still available with the `-RemoveSpecific`
switch parameter. switch parameter.
## 4.0 ## 4.0 - 2015-08-19
- The `*-NTFSAccess` cmdlets can now work on security descriptors to allow - The `*-NTFSAccess` cmdlets can now work on security descriptors to allow
bulk processes. bulk processes.

Loading…
Cancel
Save