PowerShell / PowerShell/PSResourceGet

Add Suggestion information when Modules are renamed or deprecated due to authors moving onto other work

Open
#1,314 4 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

Area-Find feature_request
Dominant language
C#
Stars
576
Forks
114
Avg merge
1d 2h
Merged PRs (30d)
7

Description

Summary of the new feature / enhancement

Currently there is no mechanism for when modules are renamed to aid in the discoverability of the new name of the module, nor is there in the Gallery a way (that I know of) for a request of merging the results from Module A & Module B together when it is just a simple rename.

I propose to add to PSResourceGet (& would love it backported to PowerShellGet) the ability for some metadata based checking to surface a message to a user when a module has been renamed, completely deprecated or archived. This would be based on giving guidance on adding a new set of tags to modules as part of this process so that this aids discoverability going forward, both for managed deprecations and as optionally giving out recommendations on similar modules too.

These tags perhaps should be & would be added into the existing tags array in the PSD1
Deprecated perhaps paired with NewModuleName:NewModuleName & this in the new module DeprecatedModule:OldModuleName
Archived perhaps paired with 1/more of SuggestedModule:OtherModuleName

Doing so would aid further in discoverability and provide an easier to query graph link that could potentially be optimised on backend calls to the gallery's database layer, whilst, if done correctly, likely would provide opportunity for an interesting set of data to view as use of the gallery continues to grow.

This is based on my comment for this as a strategy going forward, after a number of rethinks on how I think it best to achieve this painful process.

Proposed technical implementation details (optional)

When as user runs Find-PSResource for a module that has been deprecated, it returns a suggestion item as well for any module that has been suggested by the author of the module that has been searched for.

An Example would be for ThreadJob which is now replaced by Microsoft.PowerShell.ThreadJob
Results would be returned for both ThreadJob and Microsoft.PowerShell.ThreadJob

If a User instead Install-PSResource for the deprecated module they should ideally be prompted with one/more modules that have been provided

An example might be that a module like PoshRSJobs had deprecated and recommended

An Example for say the InvokeBuild Module would be to also return suggestion item for ModuleBuilder any other similar projects too.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by reviewing the existing Find-PSResource and Install-PSResource behavior, then clarify how Deprecated, Archived, NewModuleName, DeprecatedModule, and SuggestedModule tags should be interpreted. Done should include an agreed user-facing behavior for renamed, deprecated, and archived modules.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
cli, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.