diff --git a/.spelling b/.spelling index 222baac294..00783a32cf 100644 --- a/.spelling +++ b/.spelling @@ -259,6 +259,7 @@ alpha.7 Toolset WiX 2012r2 +CHANGELOG.md - docs/testing-guidelines/PowerShellCoreTestStatus.md Get-Acl Set-Acl diff --git a/docker/README.md b/docker/README.md index bb7e2d2042..36307b2fa6 100644 --- a/docker/README.md +++ b/docker/README.md @@ -33,7 +33,7 @@ The nightly containers derive from their respective release images, such as `microsoft/powershell:centos7`, then run the `bootstrap.ps1` script which clones the repository, runs `Start-PSBootstrap -Package` to install building and packaging tools, -runs `Start-PSBuild -Crossgen` to build PowerShell with native-image DLLs, +runs `Start-PSBuild -Crossgen -PSModuleRestore` to build PowerShell with native-image DLLs, runs `Start-PSPackage` to generate the platform's package, and finally installs the generated package. diff --git a/docker/nightly/centos7/Dockerfile b/docker/nightly/centos7/Dockerfile index 40067edd5b..4e104d57c9 100644 --- a/docker/nightly/centos7/Dockerfile +++ b/docker/nightly/centos7/Dockerfile @@ -10,7 +10,7 @@ RUN git clone --recursive https://github.com/$env:fork/PowerShell.git -b $env:br Set-Location PowerShell; \ Import-Module ./build.psm1; \ Start-PSBootstrap -Package -NoSudo; \ - Start-PSBuild -Crossgen; \ + Start-PSBuild -Crossgen -PSModuleRestore; \ Start-PSPackage; SHELL ["/bin/sh", "-c"] diff --git a/docker/nightly/ubuntu14.04/Dockerfile b/docker/nightly/ubuntu14.04/Dockerfile index 17db77b19f..63ea71febb 100644 --- a/docker/nightly/ubuntu14.04/Dockerfile +++ b/docker/nightly/ubuntu14.04/Dockerfile @@ -10,7 +10,7 @@ RUN git clone --recursive https://github.com/$env:fork/PowerShell.git -b $env:br Set-Location PowerShell; \ Import-Module ./build.psm1; \ Start-PSBootstrap -Package -NoSudo; \ - Start-PSBuild -Crossgen; \ + Start-PSBuild -Crossgen -PSModuleRestore; \ Start-PSPackage; SHELL ["/bin/sh", "-c"] diff --git a/docker/nightly/ubuntu16.04/Dockerfile b/docker/nightly/ubuntu16.04/Dockerfile index bfcee5240c..4e59645856 100644 --- a/docker/nightly/ubuntu16.04/Dockerfile +++ b/docker/nightly/ubuntu16.04/Dockerfile @@ -10,7 +10,7 @@ RUN git clone --recursive https://github.com/$env:fork/PowerShell.git -b $env:br Set-Location PowerShell; \ Import-Module ./build.psm1; \ Start-PSBootstrap -Package -NoSudo; \ - Start-PSBuild -Crossgen; \ + Start-PSBuild -Crossgen -PSModuleRestore; \ Start-PSPackage; SHELL ["/bin/sh", "-c"] diff --git a/docs/installation/linux.md b/docs/installation/linux.md index 4041179261..a8a07a42c0 100644 --- a/docs/installation/linux.md +++ b/docs/installation/linux.md @@ -5,7 +5,7 @@ Supports [Ubuntu 14.04][u14], [Ubuntu 16.04][u16], [CentOS 7][cos], and [macOS 10.11][osx]. All packages are available on our GitHub [releases][] page. -All of these steps can be down automatically by the [`download.sh`][download] script. +All of these steps can be done automatically by the [`download.sh`][download] script. You should *never* run a script without reading it first! Please **read the [download][] script first**, and then if you want to run it, use: diff --git a/docs/maintainers/releasing.md b/docs/maintainers/releasing.md index 75bd1632d0..bad80fa2b4 100644 --- a/docs/maintainers/releasing.md +++ b/docs/maintainers/releasing.md @@ -1,3 +1,16 @@ +Release Checklist +================= +* Summarize major changes since the previous release. +* Update [CHANGELOG.md](../../CHANGELOG.md) with the major change list. +* Create an [annotated tag][tag] for the release, with the major change list as the message. +* Push the release tag, and create a release draft with the major change list. +* Build packages and add them to the release draft. +* Create NuGet packages and publish them to [powershell-core feed][ps-core-feed]. +* Publish the release draft. +* Update documentation and scripts to use the links to new packages. +* Push a branch named `docker` to `powershell/powershell` repository to trigger building docker images. +* Delete the `docker` branch once the builds are successful at [powershell docker hub](https://hub.docker.com/r/microsoft/powershell/builds/). + Preparing ========= @@ -43,7 +56,7 @@ Building Packages ================= The `build.psm1` module contains a `Start-PSPackage` function to build packages. -It **requires** that `Start-PSBuild -CrossGen` has been run. +It **requires** that `Start-PSBuild -CrossGen -PSModuleRestore` has been run. Linux / macOS ------------ @@ -128,7 +141,7 @@ Then run the following commands: ``` powershell Import-Module ./build.psm1 Start-PSBootstrap -Package -Start-PSBuild -Crossgen +Start-PSBuild -Crossgen -PSModuleRestore Start-PSPackage ``` @@ -147,7 +160,7 @@ Then run the following commands: ``` powershell Import-Module ./build.psm1 Start-PSBootstrap -Package -Start-PSBuild -Crossgen +Start-PSBuild -Crossgen -PSModuleRestore Start-PSPackage ``` Repeat the steps on other supported Linux distros to generate the corresponding powershell core packages. @@ -183,7 +196,7 @@ Windows ### Overview The `Start-PSPackage` function delegates to `New-MSIPackage` which creates a Windows Installer Package of PowerShell. -The packages *must* be published in release mode, so use `Start-PSBuild -CrossGen -Configuration Release`. +The packages *must* be published in release mode, so use `Start-PSBuild -CrossGen -PSModuleRestore -Configuration Release`. It uses the Windows Installer XML Toolset (WiX) to generate a `PowerShell_.msi`, which installs a self-contained copy of the current version (commit) of PowerShell. It copies the output of the published PowerShell application to a version-specific folder in Program Files, @@ -205,7 +218,7 @@ git checkout -b local-release-branch v6.0.0-alpha.11 ``` powershell Import-Module .\build.psm1 Start-PSBootstrap -Package -Start-PSBuild -Clean -CrossGen -Runtime win10-x64 -Configuration Release +Start-PSBuild -Clean -CrossGen -PSModuleRestore -Runtime win10-x64 -Configuration Release Start-PSPackage -Type msi Start-PSPackage -Type zip ``` @@ -215,7 +228,7 @@ Start-PSPackage -Type zip ``` powershell Import-Module .\build.psm1 Start-PSBootstrap -Package -Start-PSBuild -Clean -CrossGen -Runtime win81-x64 -Configuration Release +Start-PSBuild -Clean -CrossGen -PSModuleRestore -Runtime win81-x64 -Configuration Release Start-PSPackage -Type msi -WindowsDownLevel win81-x64 Start-PSPackage -Type zip -WindowsDownLevel win81-x64 ```