Coder Social home page Coder Social logo

whatsnew's Introduction

logo PowerShell

Welcome to the PowerShell GitHub Community! PowerShell is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework that works well with your existing tools and is optimized for dealing with structured data (e.g. JSON, CSV, XML, etc.), REST APIs, and object models. It includes a command-line shell, an associated scripting language, and a framework for processing cmdlets.

Windows PowerShell vs. PowerShell 7+

Although this repository started as a fork of the Windows PowerShell codebase, changes made in this repository are not ported back to Windows PowerShell 5.1. This also means that issues tracked here are only for PowerShell 7.x and higher. Windows PowerShell specific issues should be reported with the Feedback Hub app, by choosing "Apps > PowerShell" in the category.

New to PowerShell?

If you are new to PowerShell and want to learn more, we recommend reviewing the getting started documentation.

Get PowerShell

PowerShell is supported on Windows, macOS, and a variety of Linux platforms. For more information, see Installing PowerShell.

Upgrading PowerShell

For best results when upgrading, you should use the same install method you used when you first installed PowerShell. The update method is different for each platform and install method.

Community Dashboard

Dashboard with visualizations for community contributions and project status using PowerShell, Azure, and PowerBI.

For more information on how and why we built this dashboard, check out this blog post.

Discussions

GitHub Discussions is a feature to enable free and open discussions within the community for topics that are not related to code, unlike issues.

This is an experiment we are trying in our repositories, to see if it helps move discussions out of issues so that issues remain actionable by the team or members of the community. There should be no expectation that PowerShell team members are regular participants in these discussions. Individual PowerShell team members may choose to participate in discussions, but the expectation is that community members help drive discussions so that team members can focus on issues.

Create or join a discussion.

Chat

Want to chat with other members of the PowerShell community?

There are dozens of topic-specific channels on our community-driven PowerShell Virtual User Group, which you can join on:

Building the Repository

Linux Windows macOS
Instructions Instructions Instructions

If you have any problems building, consult the developer FAQ.

Build status of nightly builds

Azure CI (Windows) Azure CI (Linux) Azure CI (macOS) CodeFactor Grade
windows-nightly-image linux-nightly-image macOS-nightly-image cf-image

Downloading the Source Code

You can clone the repository:

git clone https://github.com/PowerShell/PowerShell.git

For more information, see working with the PowerShell repository.

Developing and Contributing

Please look into the Contribution Guide to know how to develop and contribute. If you are developing .NET Core C# applications targeting PowerShell Core, check out our FAQ to learn more about the PowerShell SDK NuGet package.

Also, make sure to check out our PowerShell-RFC repository for request-for-comments (RFC) documents to submit and give comments on proposed and future designs.

Support

For support, see the Support Section.

Legal and Licensing

PowerShell is licensed under the MIT license.

Windows Docker Files and Images

License: By requesting and using the Container OS Image for Windows containers, you acknowledge, understand, and consent to the Supplemental License Terms available on Microsoft Artifact Registry.

Telemetry

Please visit our about_Telemetry topic to read details about telemetry gathered by PowerShell.

Governance

The governance policy for the PowerShell project is described the PowerShell Governance document.

This project has adopted the Microsoft Open Source Code of Conduct. For more information, see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

whatsnew's People

Contributors

adityapatwardhan avatar jameswtruher avatar sdwheeler avatar stevel-msft avatar thejasonhelmick avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

whatsnew's Issues

@juvtib Feedback

Summary of the new feature / enhancement

I am responding to the call for feedback on the PowerShell blog.

This project does not make sense to me. And I do not plan on using it in its current form.

I am comfortable referencing Microsoft Docs and the GitHub release notes for updated information on PowerShell.

I think a basic module which simply linked to those resources in the pwsh "logo" or message of the day would add value by increasing the visibility and accessibility of changelog information.

Basically, I'm afraid the WhatsNew module will add lag and errors to the changelogs without adding any compelling automation.

In part, I'm concerned that issues like #10 make it seem that WhatsNew will be an authoritative source of information. And companies might use the results from WhatsNew to justify cutting costs during upgrades. In this scenario, I do not think there is a substitute for reading the changelogs and testing software.


My challenge is for someone to reply with an example PowerShell session that proves me wrong and shows how the WhatsNew module adds value over the existing changelog sources.

Make whatever assumptions you would like including unlimited developer resources and the following feature requests:

  • The module is built-in to PowerShell.
  • The module is always up-to-date.
  • The module has all formatting magic like links, color, word wrap ...
  • The module provides additional tags on each line like [breaking] for breaking changes.

For example:

The PowerShell WhatsNew module helps me collect all the "breaking changes" in one place which is something I do manually now.

PowerShell 7.2.6
Copyright (c) Microsoft Corporation.

https://aka.ms/powershell
Type 'help' to get help.
Type 'whatsnew' for changes in this version. 

PS /home/michael> whatsnew

...

PS /home/michael> Get-WhatsNew -Heading "breaking changes", "engine updates" -Version "7.2.6", "6.0.0-rc.2"

## Breaking changes

* \[breaking\] Skip null-element check for collections with a value-type element type ([#5432](https://...))

...

## Engine updates and fixes

...

* Fix ForEach-Object -Parallel when passing in script block variable ([#16564](https://...))

I think the WhatsNew module can be made stronger by addressing these concerns.

Regards,

Proposed technical implementation details (optional)

No response

The PR numbers in the content returned by `Get-WhatsNew` should be made hyperlinks

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

The PR numbers in the content returned by Get-WhatsNew should be made hyperlinks.

Today, they are just a number like #12345. That works fine in the GitHub context, but not in the terminal. The PR numbers should be made hyperlinks, so that Show-Markdown can make them clickable.

Error details

No response

Version

0.4.0

Visuals

No response

Get-WhatsNew should return a single string instead of an array of strings

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

Get-WhatsNew should return a single string instead of an array of strings.

There seems now point to return an array of strings from it. Also, returning an array of strings prevents Get-WhatsNew | Show-Markdown from working.

Error details

No response

Environment data

PS:17> Get-Module Microsoft.PowerShell.WhatsNew

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     0.4.0                 Microsoft.PowerShell.WhatsNew       Get-WhatsNew


### Version

0.4.0

### Visuals

_No response_

Support third party modules

Summary of the new feature / enhancement

I would like this module to support third party modules so I can publish what's new content for my module and users can use this module to retrieve it.

Get-WhatsNew -Module MyModule

Proposed technical implementation details (optional)

A module would need to indicate that it supports this feature and ideally pull the content from a url. The easiest way I can think of is adding a module manifest key in PrivateData section with the url.

PrivateData = @{ WhatsNewUri = 'https://mywebsite.com/whatsnew' }

Breaking changes are not referenced in module data

Know the breaking changes

Reading this:
Get-WhatsNew is a cmdlet that provides information about changes and new features for a version of PowerShell, delivered to the local terminal experience.

It is impossible to know the changes (breaking change).
If I plan to port existing code to powershell 7 and above, I know what's new but I don't know what doesn't work like it used to.

Get-WhatsNew -version 6.0 | Select-String 'breaking'
# systems. Some of these are breaking changes, which also affect Windows. Others are only present or
#  Breaking changes
# We've introduced a number of breaking changes in PowerShell Core 6.0.
# To read more about them in detail, see [Breaking Changes in PowerShell Core 6.0][breaking-changes].

For this :
"We've introduced a number of breaking changes in PowerShell Core 6.0."
Ok, but which ones?

here https://github.com/PowerShell/PowerShell/releases/tag/v6.0.0-rc.2 we reference issue 5432
But the module datas does not reference this change

Get-WhatsNew -version 6.0 | Select-String '5432'
#no result

According to the RFC this case is not yet taken into account, but the text quoted at the beginning seems to contradict it.

.
.

I know it's not its purpose, but in a way this module addresses the management of release notes of different Microsoft products offering Powershell cmdlets:
SCCM
https://docs.microsoft.com/en-us/powershell/sccm/2103-release-notes?view=sccm-ps

Teams
https://docs.microsoft.com/en-us/MicrosoftTeams/teams-powershell-release-notes

Azure
https://docs.microsoft.com/en-us/powershell/azure/release-notes-azureps?view=azps-8.0.0

Having a common format for these releases notes impacting Powershell cmdlets would be a great help.

Proposed technical implementation details (optional)

No response

The -All parameter doesn't seem to emit data into the pipeline

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

Get-WhatsNew -version 6.0 | Select-String 'encoding'

# Default encoding is UTF-8 without a BOM except for New-ModuleManifest
# In the past, Windows PowerShell cmdlets like `Get-Content`, `Set-Content` used different encodings,
# such as ASCII and UTF-16. The variance in encoding defaults created problems when mixing cmdlets
# without specifying an encoding.
# ...

Get-WhatsNew -All | Select-String  -pattern 'encoding'
#No Result

Help Get-WhatsNew -parameter All

# -All [<SwitchParameter>]
#   Displays release notes for all versions.


### Expected behavior

```console
The lines containing the search word, if it exists.

Actual behavior

No data seems to be emitted in the pipeline if the -All parameter is specified.

Error details

No error for this case.

Environment data

$PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.3.0-preview.1
PSEdition                      Core
GitCommitId                    7.3.0-preview.1
OS                             Microsoft Windows 10.0.19044
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0, 5.0, 5.1.10032.0, 6.0.0, 6.1.0, 6.2.0, 7.0.0, 7.1.0, 7.2.0, 7.3.0-…
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1
WSManStackVersion              3.0

Version

7.3.0-preview.1

Visuals

image

Update 7.3 release notes before release

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

The current release notes for 7.3 are for preview.4. We just released preview.6.

Expected behavior

Show me the latest docs for 7.3.

Actual behavior

Shows me outdated docs for 7.3

Error details

No response

Environment data

n/a

Version

n/a

Visuals

No response

No package published to this repo

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

Ideally there should be a package published here as well as the gallery

Expected behavior

User can see a release in GitHub UI

Actual behavior

User cannot see a release in GitHub UI

Error details

No response

Environment data

not applicable

Version

not applicable

Visuals

No response

Join-Path: Could not find a parameter matching the name 'Additional'.

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

The module code uses PS Core specifics, while the module manifest says :

  PowerShellVersion = '5.1'

Expected behavior

No error.

Actual behavior

Get-WhatsNew -version 6.0,6.1,6.2,7.0 | Select-String 'encoding'
Join-Path : Impossible de trouver un paramètre correspondant au nom « Additional ».
Au caractère C:\Users\Laurent\Downloads\whatsnew\Microsoft.PowerShell.WhatsNew\Microsoft.PowerShell.WhatsNew.psm1:30 :
74
+ ... Join-Path -Path $PSScriptRoot -ChildPath relnotes -Additional "${file ...
+                                                       ~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument : (:) [Join-Path], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.JoinPathCommand

Error details

Here 'Get-Error' is specific to PS Core.

Environment data

Name                           Value
----                           -----
PSVersion                      5.1.19041.1682
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0, 5.0, 5.1.19041.1682}
BuildVersion                   10.0.19041.1682
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

Version

5.1 and 7.3.0-preview.1

Visuals

No response

The content of `Get-WhatsNew` is not accurate

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

Known issues in 7.3-preview.5

These issues should be fixed in the next release of .NET 7 and included in a future preview of
PowerShell 7.3.

This issue is not being actively worked on, so it likely won't make into the 7.3.

Error details

No response

Environment data

PS:17> Get-Module Microsoft.PowerShell.WhatsNew

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     0.4.0                 Microsoft.PowerShell.WhatsNew       Get-WhatsNew


### Version

0.4.0

### Visuals

_No response_

TestVersion is not recognized

Downloaded repo, import-module and ran Get-WhatsNew. Getting this error:

D:\Temp\whatsnew-main> Get-WhatsNew
TestVersion: The term 'TestVersion' is not recognized as a name of a cmdlet, function, script file, or executable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.

`Get-WhatsNew` should directly render the output using `Show-Marddown` on PS versions where that cmdlet is available

Prerequisites

  • Write a descriptive title.
  • Make sure you are able to repro it on the latest version
  • Search the existing issues.

Steps to reproduce

Get-WhatsNew should directly render the output using Show-Marddown on PS versions where that cmdlet is available.
And it should return a text string as is today only if -AsPlainText is used.

Error details

No response

Environment data

PS:17> Get-Module Microsoft.PowerShell.WhatsNew

ModuleType Version    PreRelease Name                                ExportedCommands
---------- -------    ---------- ----                                ----------------
Script     0.4.0                 Microsoft.PowerShell.WhatsNew       Get-WhatsNew

Version

0.4.0

Visuals

No response

The "What's New" content should try to pull from internet

Summary of the new feature / enhancement

Seems like the module should pull from internet and if that fails, then fallback to the local cache. Also include the article date in the content as an indicator of how old the info is.

Proposed technical implementation details (optional)

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.