mirror of
https://github.com/PowerShell/PowerShell.git
synced 2024-11-24 02:04:07 +08:00
commit
32c8fd659c
@ -1,22 +1,22 @@
|
|||||||
Preparing
|
Preparing
|
||||||
=========
|
=========
|
||||||
|
|
||||||
Open PowerShell releases use [Semantic Versioning][semver]. Until we hit 1.0,
|
PowerShell releases use [Semantic Versioning][semver].
|
||||||
each sprint results in a bump to the minor version number, and interim bugfix
|
Until we hit 1.0, each sprint results in a bump to the minor version number,
|
||||||
releases bump the patch number.
|
and interim bugfix releases bump the patch number.
|
||||||
|
|
||||||
When a particular commit is chosen as a release, we create an
|
When a particular commit is chosen as a release, we create an [annotated tag][tag] that names the release,
|
||||||
[annotated tag][tag] that names the release and list the major changes since the
|
and list the major changes since the previous release.
|
||||||
previous release. An annotated tag has a message (like a commit), and is *not*
|
An annotated tag has a message (like a commit), and is *not* the same as a lightweight tag.
|
||||||
the same as a lightweight tag. Create one with `git tag -a vX.Y.Z`. Our
|
Create one with `git tag -a vX.Y.Z`.
|
||||||
convention is to prepend the `v` to the semantic version. The summary (first
|
Our convention is to prepend the `v` to the semantic version.
|
||||||
line) of the annotated tag message should be the full release title, e.g.
|
The summary (first line) of the annotated tag message should be the full release title,
|
||||||
'v0.3.0 alpha release of Open PowerShell'.
|
e.g. 'v0.6.0 beta release of Open PowerShell'.
|
||||||
|
|
||||||
When the annotated tag is finalized, push it with `git push --tags`. GitHub will
|
When the annotated tag is finalized, push it with `git push --tags`.
|
||||||
see the tag and present it as an option when creating a new [release][]. Start
|
GitHub will see the tag and present it as an option when creating a new [release][].
|
||||||
the release, use the annotated tag's summary as the title, and save the release
|
Start the release, use the annotated tag's summary as the title,
|
||||||
as a draft while you upload the binary packages.
|
and save the release as a draft while you upload the binary packages.
|
||||||
|
|
||||||
[semver]: http://semver.org/
|
[semver]: http://semver.org/
|
||||||
[tag]: https://git-scm.com/book/en/v2/Git-Basics-Tagging
|
[tag]: https://git-scm.com/book/en/v2/Git-Basics-Tagging
|
||||||
@ -28,39 +28,35 @@ Building Packages
|
|||||||
Linux / OS X
|
Linux / OS X
|
||||||
------------
|
------------
|
||||||
|
|
||||||
The `build.psm1` module contains a `Start-PSPackage` function to build Linux
|
The `build.psm1` module contains a `Start-PSPackage` function to build Linux packages.
|
||||||
packages. It requires that `Start-PSBuild -Publish` has been run. The output
|
It requires that `Start-PSBuild -Publish` has been run.
|
||||||
*must* be published so that it includes the runtime. This function will
|
The output *must* be published so that it includes the runtime.
|
||||||
automatically deduce the correct version from the most recent annotated tag
|
This function will automatically deduce the correct version from the most recent annotated tag (using `git describe`),
|
||||||
(using `git describe`), and if not specified, will build a package for the
|
and if not specified, will build a package for the current platform.
|
||||||
current platform.
|
|
||||||
|
|
||||||
At this time, Linux packages must be built on Linux, and OS X packages on OS X;
|
At this time, Linux packages must be built on Linux, and OS X packages on OS X;
|
||||||
however, an RPM can be created on Ubuntu. This requires installing the `rpm`
|
however, an RPM can be created on Ubuntu.
|
||||||
package, building with `-Runtime centos.7.1-x64`, and packaging with `-Type rpm`.
|
This requires installing the `rpm` package, building with `-Runtime centos.7.1-x64`, and packaging with `-Type rpm`.
|
||||||
|
|
||||||
The `Start-PSBuild` function relies on the [Effing Package Management][fpm]
|
The `Start-PSBuild` function relies on the [Effing Package Management][fpm] project,
|
||||||
project, which makes building packages for any (non-Windows) platform a breeze.
|
which makes building packages for any (non-Windows) platform a breeze.
|
||||||
Follow their readme to install FPM.
|
Follow their readme to install FPM.
|
||||||
|
|
||||||
To modify any property of the packages, edit the `Start-PSPackage` function.
|
To modify any property of the packages, edit the `Start-PSPackage` function.
|
||||||
Please also refer to the function for details on the package properties (such as
|
Please also refer to the function for details on the package properties (such as the description,
|
||||||
the description, maintainer, vendor, URL, license, category, dependencies, and
|
maintainer, vendor, URL, license, category, dependencies, and file layout).
|
||||||
file layout).
|
|
||||||
|
|
||||||
[fpm]: https://github.com/jordansissel/fpm
|
[fpm]: https://github.com/jordansissel/fpm
|
||||||
|
|
||||||
Windows
|
Windows
|
||||||
-------
|
-------
|
||||||
|
|
||||||
The `Start-PSBuild` function delegates to `New-MSIPackage` which creates a
|
The `Start-PSBuild` function delegates to `New-MSIPackage` which creates a Windows Installer Package of PowerShell.
|
||||||
Windows Installer Package of Open PowerShell. It uses the Windows Installer XML
|
It uses the Windows Installer XML Toolset (WiX) to generate a `PowerShell_<version>.msi`,
|
||||||
Toolset (WiX) to generate a `OpenPowerShell_<version>.msi`, which installs a
|
which installs a self-contained copy of the current version (commit) of PowerShell.
|
||||||
self-contained copy of the current version (commit) of Open PowerShell. It
|
It copies the output of the published PowerShell application to a version-specific folder in Program Files,
|
||||||
copies the output of the published PowerShell application to a version-specific
|
and installs a shortcut in the Start Menu.
|
||||||
folder in Program Files, and installs a shortcut in the start-menu. It can be
|
It can be uninstalled through Programs and Features.
|
||||||
uninstalled through Programs and Features.
|
|
||||||
|
|
||||||
Note that Open PowerShell is always self-contained, thus using it does not
|
Note that PowerShell is always self-contained, thus using it does not require installing it.
|
||||||
require installing it. The output of `Start-PSBuild -Publish` includes a
|
The output of `Start-PSBuild -Publish` includes a `powershell.exe` executable which can simply be launched.
|
||||||
`powershell.exe` executable which can simply be launched.
|
|
||||||
|
Loading…
Reference in New Issue
Block a user