deb-arm64 package type for Debian arm64
Resolves the in-repo half of #24076 (DSR for Debian 12 arm64). We already build a `linux-arm64` self-contained binary and a `tar-arm64` tarball, but the only `.deb` we ship is `amd64`. This adds a `deb-arm64` packaging path that consumes the existing arm64 signed binary drop and emits a deb whose control field reports `Architecture: arm64` and whose filename ends in `_arm64.deb`. The packaging logic itself was almost free — `New-DebPackage` already takes `HostArchitecture` and writes it verbatim into the deb control file and output filename, and Debian uses `arm64` natively (no `aarch64` translation like RPM needs). So the new switch arm in `Start-PSPackage` is a clone of `'deb'` with `HostArchitecture = "arm64"`. Pipeline-side: - `linux-package-build.yml` learns the `deb-arm64` packageType and maps it to the `Signed-linux-arm64` drop folder - `PowerShell-Packages-Stages.yml` adds a `deb_arm64` job that consumes the existing `drop_linux_build_linux_arm64` / `drop_linux_sign_linux_arm64` artifacts (the same ones feeding `tar-arm64` today) - `release-validate-packagenames.yml` widens the deb regex from `_amd64\.deb` to `_(amd64|arm64)\.deb` I deliberately did not set `hostArchitecture: arm64` on the new job's pool. Per OneBranch's ARM64 Build Hosts guidance, that flag is for native compilation of arm64 code; we're just running `dpkg-deb` over already-built arm64 binaries, which is what `tar-arm64` does today on the default amd64 linux pool. The existing signing step's `files_to_sign: '**/*.rpm;**/*.deb'` glob already picks up the new artifact with no change. The remaining DSR checklist items (Docker image in PowerShell/PowerShell-Docker, PMC publish, lifecycle and install-doc updates in MicrosoftDocs/PowerShell-Docs) live outside this repo and are tracked on #24076. Drafted by Copilot (Claude Opus 4.7 (High reasoning)). Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
msixbundle-vpack pipeline (#150) (#27209)
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:
Developing and Contributing
Want to contribute to PowerShell? Please start with the Contribution Guide to learn 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.
Building PowerShell
| Linux | Windows | macOS |
|---|---|---|
| Instructions | Instructions | Instructions |
If you have any problems building PowerShell, please start by consulting the developer FAQ.
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.
Support
For support, see the Support Section.
Legal and Licensing
PowerShell is licensed under the MIT license.
Docker Containers
Important
The PowerShell container images are now maintained by the .NET team. The containers at
mcr.microsoft.com/powershellare currently not maintained.
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.
Code of Conduct
Please see our Code of Conduct before participating in this project.
Security Policy
For any security issues, please see our Security Policy.