From eb9a0b66c478ed0e63f31f80796bb129d36f5904 Mon Sep 17 00:00:00 2001 From: Julian Ospald Date: Wed, 4 Jan 2023 18:48:03 +0800 Subject: [PATCH] Document distribution policies --- docs/about.md | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/docs/about.md b/docs/about.md index 06a05d8..d7c506a 100644 --- a/docs/about.md +++ b/docs/about.md @@ -60,6 +60,29 @@ All you wanted to know about GHCup. 3. handling cabal projects 4. being a stack alternative +## Distribution policies + +Like most Linux distros and other distribution channels, GHCup also +follows certain policies. These are as follows: + +1. The end-user experience is our primary concern + - ghcup in CI systems as a use case is a first class citizen +2. We strive to collaborate with all maintainers of all the tools we support and maintain a good relationship +3. We may fix build system or other distribution bugs in upstream bindists + - these are always communicated upstream +4. We may even patch source code of supported tools in very rare cases if that is required to ensure that the end-user experience does not break + - we'll first try to upstream any such required patch and demand a new release to avoid downstream patching + - patches will be communicated to the maintainers either way and we'll strive to get their review + - they will also be communicated to the end-user + - they will be uploaded along with the bindist + - we will avoid maintaining long-running downstream patches (currently zero) +5. We may add bindists for platforms that upstream does not support + - this is currently the case for GHC for e.g. Alpine and possibly FreeBSD in the future + - this is currently also the case for stack on darwin M1 + - we don't guarantee for unofficial bindists that the test suite passes at the moment (this may change in the future) +6. We GPG sign all the GHCup metadata as well as the unofficial bindists + - any trust issues relating to missing checksums or GPG signatures is a bug and given high priority + ## How Installs a specified GHC version into `~/.ghcup/ghc/`, and places `ghc-` symlinks in `~/.ghcup/bin/`. @@ -75,15 +98,15 @@ cabal-install/HLS/stack are installed in `~/.ghcup/bin/-` and have un ## Known users * CI: - - [Github actions/virtual-environments](https://github.com/actions/virtual-environments) - - [Github haskell/actions/setup](https://github.com/haskell/actions/tree/main/setup) - - [haskell-ci](https://github.com/haskell-CI/haskell-ci) + - [Github actions/virtual-environments](https://github.com/actions/virtual-environments) + - [Github haskell/actions/setup](https://github.com/haskell/actions/tree/main/setup) + - [haskell-ci](https://github.com/haskell-CI/haskell-ci) * mirrors: - - [sjtug](https://mirror.sjtu.edu.cn/docs/ghcup) + - [sjtug](https://mirror.sjtu.edu.cn/docs/ghcup) * tools: - - [vscode-haskell](https://github.com/haskell/vscode-haskell) - - [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer) - - [vabal](https://github.com/Franciman/vabal) + - [vscode-haskell](https://github.com/haskell/vscode-haskell) + - [nvim-lsp-installer](https://github.com/williamboman/nvim-lsp-installer) + - [vabal](https://github.com/Franciman/vabal) ## Known problems