Skip to content

Commit 47ce9f1

Browse files
TravisEz13joeyaiello
authored andcommitted
RFC0027 - Snaps of Preview builds of PowerShell Core (#134)
@PowerShell/powershell-committee has approved this RFC with quorum from @HemantMahawar, @daxian-dbw, @BrucePay, @JamesWTruher, and @joeyaiello. Absent are @khansen00 and @SteveL-MSFT * initial draft of snap preview RFC * fix typo * address PR feedback * fix spelling issue * update comments due date * add motivation for calling the preview build stable. * Update and rename 4-Experimental-Accepted/RFCXXXX-Snap-Preview.md to 5-Final/RFC0027-Snap-Preview.md * Add Committee decision for Snap package RFC
1 parent 5502b2e commit 47ce9f1

File tree

1 file changed

+83
-0
lines changed

1 file changed

+83
-0
lines changed

5-Final/RFC0027-Snap-Preview.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
RFC: RFC
3+
Author: Travis Plunk (@TravisEz13)
4+
Status: Final
5+
Version: 0.1
6+
Area: Packaging
7+
Comments Due: July 15, 2018
8+
Plan to implement: Yes
9+
---
10+
11+
# Snaps of Preview builds
12+
13+
We currently have not published any [Snap packages](https://snapcraft.io) of a preview build. There are some significant questions before we do.
14+
Primarily, do we follow Snap's model of channels or do we have a separate package called `powershell-preview`.
15+
I propose we have a separate package as it will allow side-by-side installation with the stable Snap and will be consistent with our Linux package names.
16+
17+
## Motivation
18+
19+
Snaps are easy to use and having a Snap of the preview would allow people to adopt the preview across a wide variety of platforms.
20+
We want to design the preview Snap in a way that allows for the preview Snap to be installed easily without losing access to the stable version of PowerShell.
21+
22+
## Specification
23+
24+
* There shall be two Snap packages available:
25+
* Stable: a production-ready, supported build, called `powershell`.
26+
* Preview: an unsupported build that may contain incomplete new features and high-impact bugs,
27+
and should therefore not be used in production, called `powershell-preview`. Our hope is that the development process ensures that every build is stable and high quality.
28+
* Aliases
29+
* Stable package: `pwsh`
30+
* Preview package: `pwsh-preview`
31+
* Snap channels
32+
* Stable package: Will always use the `stable` channel, because it is stable.
33+
* Preview package: Will always use the `stable` channel, because the package name and version indicates the quality.
34+
* Alternative: Preview builds could use the `edge` channel, and release candidates could use the `candidate` channel.
35+
This would mean you would always have to use the one of the following commands to install `sudo snap install powershell-preview --edge --classic` or `sudo snap install powershell-preview --candidate --classic`
36+
37+
## Alternate Considerations and Proposals
38+
39+
### Use Snap's model of channels
40+
41+
The main dis-advantage here is that preview builds cannot be install side-by-side with a stable build (at least with Snap alone). Snap does allow you to switch between things you have downloaded fairly quickly so this is not fatal.
42+
43+
* There shall be one Snap package available:
44+
* Called `powershell`.
45+
* Alias
46+
* `pwsh`
47+
* Snap channels
48+
* Stable builds would be published to the stable channel and installed using the following command:
49+
`sudo snap install powershell --classic`
50+
* Release Candidate builds would be published to the stable channel and installed using the following command:
51+
`sudo snap install powershell --classic --candidate`
52+
* Preview builds would be published to the stable channel and installed using the following command:
53+
`sudo snap install powershell --classic --edge`
54+
55+
## Open Questions
56+
57+
---------------
58+
## PowerShell Committee Decision
59+
60+
### Voting Results
61+
62+
Joey Aiello: Accept
63+
64+
Bruce Payette: Accept
65+
66+
Steve Lee: Absent
67+
68+
Hemant Mahawar: Accept
69+
70+
Jim Truher: Accept
71+
72+
Dongbo Wang: Accept
73+
74+
Kenneth Hansen: Absent
75+
76+
### Majority Decision
77+
78+
We support side-by-side and want to keep it that way, hence the distinct packages.
79+
The alias names also make sense given the pattern we set with the existing Linux packages.
80+
81+
### Minority Decision
82+
83+
N/A

0 commit comments

Comments
 (0)