diff --git a/README.md b/README.md index ca7fca0447..2d9e17511b 100644 --- a/README.md +++ b/README.md @@ -2,8 +2,8 @@ ==================== Welcome to the PowerShell GitHub Community! -PowerShell is a cross-platform (Windows, Linux, and OS X) 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. +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. [logo]: assets/Powershell_64.png @@ -27,7 +27,7 @@ You can download and install a PowerShell package for any of the following platf | Ubuntu 16.04 | [.deb][rl-ubuntu16] | [Instructions][in-ubuntu16] | | Ubuntu 14.04 | [.deb][rl-ubuntu14] | [Instructions][in-ubuntu14] | | CentOS 7 | [.rpm][rl-centos] | [Instructions][in-centos] | -| OS X 10.11 | [.pkg][rl-osx] | [Instructions][in-osx] | +| OS X 10.11 | [.pkg][rl-macos] | [Instructions][in-macos] | | Docker | | [Instructions] [in-docker] | [rl-windows10]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/PowerShell_6.0.0.9-alpha.9-win10-x64.msi @@ -35,14 +35,14 @@ You can download and install a PowerShell package for any of the following platf [rl-ubuntu16]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.16.04.1_amd64.deb [rl-ubuntu14]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell_6.0.0-alpha.9-1ubuntu1.14.04.1_amd64.deb [rl-centos]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell-6.0.0_alpha.9-1.el7.centos.x86_64.rpm -[rl-osx]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell-6.0.0-alpha.9.pkg +[rl-macOS]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.9/powershell-6.0.0-alpha.9.pkg [installation]: docs/installation [in-windows]: docs/installation/windows.md#msi [in-ubuntu14]: docs/installation/linux.md#ubuntu-1404 [in-ubuntu16]: docs/installation/linux.md#ubuntu-1604 [in-centos]: docs/installation/linux.md#centos-7 -[in-osx]: docs/installation/linux.md#os-x-1011 +[in-macos]: docs/installation/linux.md#macos-1011 [in-docker]: docs/installation/docker.md To install a specific version, visit [releases](https://github.com/PowerShell/PowerShell/releases). @@ -57,21 +57,21 @@ Want to chat with other members of the PowerShell community? Building the Repository ----------------------- -| Linux | Windows | OS X | +| Linux | Windows | macOS | |--------------------------|----------------------------|------------------------| -| [Instructions][bd-linux] | [Instructions][bd-windows] | [Instructions][bd-osx] | +| [Instructions][bd-linux] | [Instructions][bd-windows] | [Instructions][bd-macOS] | If you have any problems building, please consult the developer [FAQ][]. ### Build status of master branches -| AppVeyor (Windows) | Travis CI (Linux / OS X) | +| AppVeyor (Windows) | Travis CI (Linux / macOS) | |--------------------------|--------------------------| | [![av-image][]][av-site] | [![tv-image][]][tv-site] | [bd-linux]: docs/building/linux.md [bd-windows]: docs/building/windows-core.md -[bd-osx]: docs/building/osx.md +[bd-macOS]: docs/building/macos.md [FAQ]: docs/FAQ.md @@ -106,7 +106,7 @@ Please see the [Contribution Guide][] for how to develop and contribute. If you have any problems, please consult the [known issues][], developer [FAQ][], and [GitHub issues][]. If you do not see your problem captured, please file a [new issue][] and follow the provided template. -If you are developing .NET Core C# applications targeting PowerShell Core, please [check out our FAQ][] to learn more about the PowerShell SDK NuGet package. +If you are developing .NET Core C# applications targeting PowerShell Core, please [check out our FAQ][] to learn more about the PowerShell SDK NuGet package. [check out our FAQ]: docs/FAQ.md#where-do-i-get-the-powershell-core-sdk-package [Contribution Guide]: .github/CONTRIBUTING.md diff --git a/build.sh b/build.sh index aaab8c8484..fd4205bf32 100755 --- a/build.sh +++ b/build.sh @@ -4,5 +4,5 @@ if hash powershell 2>/dev/null; then echo 'Continuing with `powershell -noprofile -c Start-PSBuild`' powershell -noprofile -c "Import-Module ./build.psm1; Start-PSBuild" else - echo 'No `powershell`, see docs/building/linux.md or osx.md to build PowerShell!' + echo 'No `powershell`, see docs/building/linux.md or macos.md to build PowerShell!' fi diff --git a/docs/building/internals.md b/docs/building/internals.md index 3480a97215..9a6781e181 100644 --- a/docs/building/internals.md +++ b/docs/building/internals.md @@ -1,7 +1,7 @@ Internals of build process ========================================= -The purpose of this document is to explain build process **internals** with subtle nuances. +The purpose of this document is to explain build process **internals** with subtle nuances. This document is not by any means complete. The ultimate source of truth is the code in `.\build.psm1` that's getting executed on the corresponding CI system. @@ -14,7 +14,7 @@ Top directory We are calling `dotnet` tool build for `$Top` directory - `src\powershell-win-core` for CoreCLR on Windows. -- `src\powershell-unix` for CoreCLR on Linux and OS X. +- `src\powershell-unix` for CoreCLR on Linux and macOS. - `src\powershell-win-full` for FullCLR builds (Windows only) ### Dummy dependencies diff --git a/docs/building/osx.md b/docs/building/macos.md similarity index 93% rename from docs/building/osx.md rename to docs/building/macos.md index 29a2a1df83..984c88481b 100644 --- a/docs/building/osx.md +++ b/docs/building/macos.md @@ -1,10 +1,10 @@ -Build PowerShell on OS X +Build PowerShell on macOS ======================== This guide supplements the [Linux instructions](./linux.md), as -building on OS X is almost identical. +building on macOS is almost identical. -.NET Core (and by transitivity, us) only supports OS X 10.11, per +.NET Core (and by transitivity, us) only supports macOS 10.11, per CoreFX issue #[7731][]. [7731]: https://github.com/dotnet/corefx/issues/7731 @@ -12,9 +12,9 @@ CoreFX issue #[7731][]. Environment =========== -You will want [Homebrew](http://brew.sh/), the missing package manager for OS X. +You will want [Homebrew](http://brew.sh/), the missing package manager for macOS. Once installed, follow the same instructions to download and -install a self-hosted copy of PowerShell on your OS X machine, +install a self-hosted copy of PowerShell on your macOS machine, and use`Start-PSBootstrap` to install the dependencies. The `Start-PSBootstrap` function does the following: diff --git a/docs/cmdlet-example/README.md b/docs/cmdlet-example/README.md index 5be3afb00f..16a9688f79 100644 --- a/docs/cmdlet-example/README.md +++ b/docs/cmdlet-example/README.md @@ -1,14 +1,14 @@ Building a C# Cmdlet ==================== -This example project demonstrates how to build your own C# cmdlet for PowerShell. -When built in the following manner, the resulting DLL can be imported everywhere: -Windows PowerShell with Desktop .NET (FullCLR) and PowerShell on Windows, Linux, and OS X with .NET Core (CoreCLR). +This example project demonstrates how to build your own C# cmdlet for PowerShell. +When built in the following manner, the resulting DLL can be imported everywhere: +Windows PowerShell with Desktop .NET (FullCLR) and PowerShell on Windows, Linux, and macOS with .NET Core (CoreCLR). Setup ----- -We use the [.NET Command-Line Interface][dotnet-cli] (`dotnet`) to build the cmdlet library. +We use the [.NET Command-Line Interface][dotnet-cli] (`dotnet`) to build the cmdlet library. Install the `dotnet` tool and ensure `dotnet --version` is at least `1.0.0-rc2`. .NET CLI uses a `project.json` file for build specifications: @@ -35,7 +35,7 @@ Install the `dotnet` tool and ensure `dotnet --version` is at least `1.0.0-rc2`. } ``` -Note that no source files are specified. +Note that no source files are specified. .NET CLI automatically will build all `.cs` files in the project directory. Going through this step-by-step: @@ -44,27 +44,27 @@ Going through this step-by-step: - `"version": "1.0.0-*"`: The wild-card can be replaced using the `--version-suffix` flag to `dotnet build`. -- [Microsoft.PowerShell.5.ReferenceAssemblies][powershell]: Contains the SDK reference assemblies for PowerShell version 5. +- [Microsoft.PowerShell.5.ReferenceAssemblies][powershell]: Contains the SDK reference assemblies for PowerShell version 5. Targets the `net40` framework. - [netstandard1.3][]: The target framework for .NET Core portable libraries. This is an abstract framework that will work anywhere its dependencies work. Specifically, the 1.3 version allows this assembly to work even on Windows PowerShell with Desktop .NET. -- `"imports": [ "net4" ]`: Since the PowerShell reference assemblies target the older `net40` framework, +- `"imports": [ "net4" ]`: Since the PowerShell reference assemblies target the older `net40` framework, we `import` it here to tell `dotnet restore` that we know we're loading a possibly-incompatible package. -- [Microsoft.NETCore][netcore]: Provides a set of packages that can be used when building portable +- [Microsoft.NETCore][netcore]: Provides a set of packages that can be used when building portable libraries on .NETCore-based platforms. - [Microsoft.NETCore.Portable.Compatibility][portable]: Enables compatibility - with portable libraries targeting previous .NET releases like .NET Framework 4.0. + with portable libraries targeting previous .NET releases like .NET Framework 4.0. Required to build against the PowerShell reference assemblies package. -Other dependencies can be added as needed; +Other dependencies can be added as needed; refer to the [.NET Core package gallery][myget] for package availability, name, and version information. -Because the .NET Core packages are not yet released to NuGet.org, +Because the .NET Core packages are not yet released to NuGet.org, you also need this `NuGet.config` file to setup the [.NET Core MyGet feed][myget]: ```xml @@ -94,7 +94,7 @@ Building dotnet restore ``` -This reads the `project.json` and `NuGet.config` files and uses NuGet to restore the necessary packages. +This reads the `project.json` and `NuGet.config` files and uses NuGet to restore the necessary packages. The generated `project.lock.json` lockfile contains the resolved dependency graph. Once packages are restored, building is simple: @@ -105,7 +105,7 @@ dotnet build This will produce the assembly `./bin/Debug/netstandard1.3/SendGreeting.dll`. -This build/restore process should work anywhere .NET Core works, including Windows, Linux, and OS X. +This build/restore process should work anywhere .NET Core works, including Windows, Linux, and macOS. Deployment ---------- diff --git a/docs/dev-process/coding-guidelines.md b/docs/dev-process/coding-guidelines.md index e3440e6fd2..0d06365209 100644 --- a/docs/dev-process/coding-guidelines.md +++ b/docs/dev-process/coding-guidelines.md @@ -32,7 +32,7 @@ There are 3 primary preprocessor macros we define during builds: * DEBUG - guard code that should not be included in release builds * CORECLR - guard code that differs between Full CLR and CoreCLR -* UNIX - guard code that is specific to Unix (Linux and Mac OS X) +* UNIX - guard code that is specific to Unix (Linux and macOS) Any other preprocessor defines found in the source are used for one-off custom builds, typically to help debug specific scenarios. @@ -81,4 +81,4 @@ When adding platform dependent code, prefer preprocessor directives over runtime checks. We produce a single binary for all UNIX variants, -so runtime checks are currently necessary for some platform differences, e.g. OS X and Linux. +so runtime checks are currently necessary for some platform differences, e.g. macOS and Linux. diff --git a/docs/git/basics.md b/docs/git/basics.md index 71bf0327fe..f1fcb6939c 100644 --- a/docs/git/basics.md +++ b/docs/git/basics.md @@ -66,7 +66,7 @@ Authentication On Windows, the best way to use Git securely is [Git Credential Manager for Windows][manager]. It's included in the official Git installer for Windows. -#### Linux and OS X +#### Linux and macOS If you do not have a preferred method of authentication, enable the storage credential helper, which will cache your credentials in plaintext on your diff --git a/docs/installation/linux.md b/docs/installation/linux.md index 13a4eed338..8f50b14dc5 100644 --- a/docs/installation/linux.md +++ b/docs/installation/linux.md @@ -2,7 +2,7 @@ Package installation instructions ================================= Supports [Ubuntu 14.04][u14], [Ubuntu 16.04][u16], -[CentOS 7][cos], and [OS X 10.11][osx]. +[CentOS 7][cos], and [macOS 10.11][osx]. All packages are available on our GitHub [releases][] page. Once the package is installed, run `powershell` from a terminal. @@ -70,10 +70,10 @@ sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0 [CentOS 7]: https://www.centos.org/download/ -OS X 10.11 +macOS 10.11 ========== -Using OS X 10.11, download the PKG package `powershell-6.0.0-alpha.9.pkg` from the [releases][] page onto the OS X machine. +Using macOS 10.11, download the PKG package `powershell-6.0.0-alpha.9.pkg` from the [releases][] page onto the macOS machine. Either double-click the file and follow the prompts, or install it from the terminal: @@ -96,10 +96,10 @@ Paths The profiles respect PowerShell's per-host configuration, so the default host-specific profiles exists at `Microsoft.PowerShell_profile.ps1` in the same locations. -On Linux and OS X, the [XDG Base Directory Specification][xdg-bds] is respected. +On Linux and macOS, the [XDG Base Directory Specification][xdg-bds] is respected. -Note that because OS X is a derivation of BSD, +Note that because macOS is a derivation of BSD, instead of `/opt`, the prefix used is `/usr/local`. Thus, `$PSHOME` is `/usr/local/microsoft/powershell/6.0.0-alpha.9/`, and the symlink is placed at `/usr/local/bin/powershell`. diff --git a/docs/learning-powershell/README.md b/docs/learning-powershell/README.md index 554eb41df6..c741b24190 100644 --- a/docs/learning-powershell/README.md +++ b/docs/learning-powershell/README.md @@ -20,7 +20,7 @@ At the end of this exercise, you should be able to launch the PowerShell session - Get PowerShell by installing package * [PowerShell on Linux][inst-linux] - * [PowerShell on OS X][inst-macos] + * [PowerShell on macOS][inst-macos] * [PowerShell on Windows][inst-win] For this tutorial, you do not need to install PowerShell if you are running on Windows. @@ -48,7 +48,7 @@ PowerShell Editor In this section, you will create a PowerShell script using a text editor. You can use your favorite editor to write scripts. -We use Visual Studio Code (VS Code) which works on Windows, Linux, and OS X. +We use Visual Studio Code (VS Code) which works on Windows, Linux, and macOS. Click on the following link to create your first PowerShell script. - [Using Visual Studio Code (VS Code)][use-vscode-editor] diff --git a/docs/learning-powershell/using-vscode.md b/docs/learning-powershell/using-vscode.md index 2c327e29bb..c5e56aec56 100644 --- a/docs/learning-powershell/using-vscode.md +++ b/docs/learning-powershell/using-vscode.md @@ -1,7 +1,7 @@ Using Visual Studio Code for PowerShell Development ==== -If you are working on Linux and OS X, you cannot use the PowerShell ISE because it is not supported on these platforms. +If you are working on Linux and macOS, you cannot use the PowerShell ISE because it is not supported on these platforms. In this case, you can choose your favorite editor to write PowerShell scripts. Here we choose Visual Studio Code as a PowerShell editor. @@ -16,7 +16,7 @@ Editing with Visual Studio Code * **Linux**: follow the installation instructions on the [Running VS Code on Linux](https://code.visualstudio.com/docs/setup/linux) page -* **OS X**: follow the installation instructions on the [Running VS Code on OS X](https://code.visualstudio.com/docs/setup/osx) page +* **macOS**: follow the installation instructions on the [Running VS Code on macOS](https://code.visualstudio.com/docs/setup/osx) page **NOTE:** On OS X you must install OpenSSL for the PowerShell extension to work correctly. The easiest way to accomplish this is to install [Homebrew](http://brew.sh/) and then run `brew install openssl`. The PowerShell extension @@ -30,7 +30,7 @@ Editing with Visual Studio Code - Launch the Visual Studio Code app by: * **Windows**: typing **code** in your PowerShell session * **Linux**: typing **code .** in your terminal - * **OS X**: typing **code** in your terminal + * **macOS**: typing **code** in your terminal - Press **F1** (or **Ctrl+Shift+P**) which opens up the "Command Palette" inside the Visual Studio Code app. @@ -64,7 +64,7 @@ you will need to add a new variable to your user settings file. // On Linux: "powershell.developer.powerShellExePath": "/opt/microsoft/powershell//powershell" - // On OS X: + // On macOS: "powershell.developer.powerShellExePath": "/usr/local/microsoft/powershell//powershell" ``` diff --git a/docs/maintainers/issue-management.md b/docs/maintainers/issue-management.md index 0e5aebe861..cea0ff1f4e 100644 --- a/docs/maintainers/issue-management.md +++ b/docs/maintainers/issue-management.md @@ -56,7 +56,7 @@ These labels describe what feature area of PowerShell that an issue affects. These are for issues that are specific to certain operating systems: * `OS-Linux` -* `OS-OS X` +* `OS-macOS` * `OS-Windows` * `OS-WSL`: Windows Subsystem for Linux diff --git a/docs/maintainers/releasing.md b/docs/maintainers/releasing.md index 76f5216eae..be40c6c910 100644 --- a/docs/maintainers/releasing.md +++ b/docs/maintainers/releasing.md @@ -1,18 +1,18 @@ Preparing ========= -PowerShell releases use [Semantic Versioning][semver]. +PowerShell releases use [Semantic Versioning][semver]. Until we hit 6.0, each sprint results in a bump to the build number, so `v6.0.0-alpha.7` goes to `v6.0.0-alpha.8`. When a particular commit is chosen as a release, we create an [annotated tag][tag] that names the release, -and list the major changes since the previous release. +and list the major changes since the previous release. An annotated tag has a message (like a commit), and is *not* the same as a lightweight tag. Create one with `git tag -a v6.0.0-alpha.7`. -Our convention is to prepend the `v` to the semantic version. -The summary (first line) of the annotated tag message should be the full release title, +Our convention is to prepend the `v` to the semantic version. +The summary (first line) of the annotated tag message should be the full release title, e.g. 'v6.0.0-alpha.7 release of PowerShell'. While creating a release, it is advised to make a new branch such that @@ -20,9 +20,9 @@ necessary documentation updates and hot fixes can be made, without having to include all changes made to master. This release branch can be reviewed by the normal PR process. -When the annotated tag is finalized, push it with `git push --tags`. -GitHub will see the tag and present it as an option when creating a new [release][]. -Start the release, use the annotated tag's summary as the title, +When the annotated tag is finalized, push it with `git push --tags`. +GitHub will see the tag and present it as an option when creating a new [release][]. +Start the release, use the annotated tag's summary as the title, and save the release as a draft while you upload the binary packages. Just as important as creating the release is updating the links on our readme, @@ -45,7 +45,7 @@ Building Packages The `build.psm1` module contains a `Start-PSPackage` function to build packages. It **requires** that `Start-PSBuild -CrossGen` has been run. -Linux / OS X +Linux / macOS ------------ The `Start-PSBuild` function delegates to `New-UnixPackage`. @@ -67,7 +67,7 @@ Please also refer to the function for details on the package properties (such as the description, maintainer, vendor, URL, license, category, dependencies, and file layout). -> Note that the only configuration on Linux and OS X is `Linux`, +> Note that the only configuration on Linux and macOS is `Linux`, > which is release (i.e. not debug) configuration. ### Side-By-Side Design @@ -86,7 +86,7 @@ this package will contain actual PowerShell bits These bits are installed to `/opt/microsoft/powershell/6.0.0-alpha.8/`, where the version will change with each update (and is the pre-release version). -On OS X, the prefix is `/usr/local`, +On macOS, the prefix is `/usr/local`, instead of `/opt/microsoft` because it is derived from BSD. > When we have access to package repositories where dependencies can be properly resolved, @@ -125,11 +125,11 @@ Windows The `Start-PSBuild` 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`. -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, -and installs a shortcut in the Start Menu. +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, +and installs a shortcut in the Start Menu. It can be uninstalled through Programs and Features. -Note that PowerShell is always self-contained, thus using it does not require installing it. +Note that PowerShell is always self-contained, thus using it does not require installing it. The output of `Start-PSBuild` includes a `powershell.exe` executable which can simply be launched.