Skip to content

Commit

Permalink
Combine a couple of sections and add a link.
Browse files Browse the repository at this point in the history
  • Loading branch information
stephengillie committed Mar 5, 2024
1 parent b29433a commit f5e1552
Showing 1 changed file with 2 additions and 8 deletions.
10 changes: 2 additions & 8 deletions AUTHORING_MANIFESTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ If any letters, spaces, or other non-numeric characters (other than dots) are ad

## Pre-release, early release, release candidate, and alpha & beta versions.

Many packages have "pre-release" PackageIdentifiers, to both spread the pre-release client and also keep mainline users on the stable release. When pre-release packages are submitted under a mainline PackageIdentifier, it can be disruptive to users who value stability over new features. There is definite demand for most pre-release software, and creating a pre-release PackageIdentifier is a great way to help satisfy this demand while still meeting the need to deliver a stable product.
Many packages have "pre-release" PackageIdentifiers, to both spread the pre-release client and also keep mainline users on the stable release. When pre-release packages are submitted under a mainline PackageIdentifier, it can be disruptive to users who value stability over new features. And sometimes the pre-release version number includes a letter, disrupting the sort order. There is definite demand for most pre-release software, and creating a pre-release PackageIdentifier is a great way to help satisfy this demand while still meeting the need to deliver a stable product.

Developers are free to version their products as they please. This section is meant to guide manifest submitters in creating manifests to meet both needs. While we try to ensure packages install and upgrade correctly, we don't necessarily know all software and their release mechanisms/cadences. Having an open-source repository allows individuals with much better knowledge of specific software packages to maintain those packages, including splitting pre-release channels from mainline channels when appropriate.

Expand All @@ -144,12 +144,6 @@ Developers are free to version their products as they please. This section is me
- Other developers might add a different development line with a separate repo, different application names and icons, and separate version schema.
- Not all letters indicate pre-release channels. For example, some developers append "-E" to the version number, to differentiate mainline Electron releases from their other mainline releases. If in doubt, ask the developer.

### Adding or removing letters from the version can cause matching issues

- As long as a package version sticks to either semantic or string, it's pretty easy to sort. But switching usually causes the order to become confused.
**This can cause the "upgrade always available" bug.**
- This is another problem caused by adding pre-release versions into the mainline channel - it frequently disrupts the sort order, especially when the pre-release versions have letters in their version numbers, but the mainline versions do not.

### How to make pre-release versions available

If the pre-release versions have different metadata, then just appending the appropriate term to the mainline PackageIdentifier might be enough. The appropriate term would depend on how the developers refer to their early releases - such as `.alpha`, `.beta`, `.pre`, `.rc`, etc. And this new PackageIdentifier would replace the mainline PackageIdentifier in pre-release manifests, manifest names, and manifest paths.
Expand Down Expand Up @@ -201,7 +195,7 @@ Notes, ideas, and discussion on how to implement and support release channels is
- This issue appears to be common to MSI installers.
- When installing to `%LOCALAPPDATA%` for `user` scope, the software package's registry entries are added to `HKEY_LOCAL_MACHINE` instead of `HKEY_CURRENT_USER`.
- This makes the `user` scope software package appear to be of `machine` scope instead.
- Related to Winget incorrectly detects per-user MSI scope (No applicable update found) winget-cli#3011
- Related to [Winget incorrectly detects per-user MSI scope (`No applicable update found`)](https://github.com/microsoft/winget-cli/issues/3011)
- So a user can only get a "user" scope when installing for the first time, unless one of the below Workarounds is in place.
- This means, for subsequent upgrades through `winget upgrade`, the user will end up getting the "machine" scope installation.
- A dual (or side-by-side) installation of the package (both user and machine scope) will result.
Expand Down

1 comment on commit f5e1552

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@check-spelling-bot Report

🔴 Please review

See the 📜action log for details.

Unrecognized words (20)
aloneguid
alonguid
ALVR
appinstaller
BDCE
beacause
DFAF
differring
Failback
Familyname
FFXIV
HKEY
MSIINSTALLPERUSER
Pulovers
schemae
submitters
suport
Teamcraft
Upgradecode
Workarounds
Previously acknowledged words that are now absent admins Daa Esco fabricbot jedieaston Joakim Kad Karan Levvie mdanish quhxl redistribution russellbanks Tbot timezone Trenly :arrow_right:
To accept ✔️ these unrecognized words as correct and remove the previously acknowledged and now absent words, run the following commands

... in a clone of the [email protected]:stephengillie/winget-pkgs.git repository
on the winget-pkgs-AUTHORING-MANIFESTS-md branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/v0.0.21/apply.pl' |
perl - 'https://github.com/stephengillie/winget-pkgs/actions/runs/8163697023/attempts/1'
Pattern suggestions ✂️ (1)

You could add these patterns to .github/actions/spelling/patterns.txt:

# Automatically suggested patterns
# hit-count: 2 file-count: 1
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b

Warnings (1)

See the 📜action log for details.

ℹ️ Warnings Count
ℹ️ candidate-pattern 1

See ℹ️ Event descriptions for more information.

If the flagged items are 🤯 false positives

If items relate to a ...

  • binary file (or some other file you wouldn't want to check at all).

    Please add a file path to the excludes.txt file matching the containing file.

    File paths are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your files.

    ^ refers to the file's path from the root of the repository, so ^README\.md$ would exclude README.md (on whichever branch you're using).

  • well-formed pattern.

    If you can write a pattern that would match it,
    try adding it to the patterns.txt file.

    Patterns are Perl 5 Regular Expressions - you can test yours before committing to verify it will match your lines.

    Note that patterns can't match multiline strings.

Please sign in to comment.