Skip to content

v3.0.0

Choose a tag to compare

@santisq santisq released this 02 May 15:08
· 10 commits to main since this release

What's Changed

v3.0.0 is a major update with significant improvements to performance, usability, and customization.

Major Changes

  • Major internal refactoring of the tree node model for better performance, maintainability, and extensibility.
  • Moved all tree node classes from the PSTree namespace to the new PSTree.Nodes namespace.
  • Made Get-PSTreeRegistry Windows-only (cmdlet and alias pstreereg should no longer be discoverable on non-Windows platforms).
  • Significantly improved memory usage and rendering performance (~20% reduction in string allocations).

New Features

  • Added -SortBy parameter (alias -sb) to both Get-PSTree and Get-PSTreeRegistry.

    • New FileSystemSortMode and RegistrySortMode enums with multiple sorting strategies.
  • Added -Top parameter (alias -t) to Get-PSTree:

    • Limits the number of children displayed per directory.
    • Automatically enables -RecursiveSize and defaults to size-based sorting.
    • Introduces a new TreeSummary type that represents omitted items (with count and total size).
    • Throws a clear error if used with incompatible sort modes.
    • Added Summary property to TreeStyle.FileSystemStyle for customizing the appearance of TreeSummary objects.
    Get-PSTree -Top example
  • Added customizable tree rendering styles:

    • New RenderingStyle property on TreeStyle.
    • Supported styles: Fancy (default), FancyRounded, Classic, ClassicRounded.
    FancyStyles FancyStyles

Changed

  • TreeBase is now a true tree structure with parent references and child collections.
  • Registry values now properly populate the Path property (previously empty).
  • Updated and significantly expanded documentation for Get-PSTree, especially around -Top, TreeSummary, and sorting.
  • Updated about_TreeStyle.md.

Breaking Changes

  • Namespace change: All tree node types moved from PSTree.* to PSTree.Nodes.*.
  • Get-PSTreeRegistry is no longer available on non-Windows platforms.

PRs

  • Updates CI actions. by @santisq in #58
  • Code refactoring to reduce memory consumption by @santisq in #60
  • Add -SortBy parameter to Get-PSTree and Get-PSTreeRegistry by @santisq in #64
  • Add customizable tree rendering styles by @santisq in #65
  • Add -Top parameter and tree consolidation logic by @santisq in #66

Full Changelog: v2.2.8...v3.0.0