{"id":15010854,"url":"https://github.com/haskell/ghcup-metadata","last_synced_at":"2025-04-09T13:06:00.197Z","repository":{"id":38779042,"uuid":"420207088","full_name":"haskell/ghcup-metadata","owner":"haskell","description":"GHCup metadata repository","archived":false,"fork":false,"pushed_at":"2025-03-30T09:28:18.000Z","size":2444,"stargazers_count":36,"open_issues_count":14,"forks_count":30,"subscribers_count":18,"default_branch":"develop","last_synced_at":"2025-04-06T01:31:51.887Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/haskell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-10-22T18:42:14.000Z","updated_at":"2025-04-04T12:01:55.000Z","dependencies_parsed_at":"2022-08-09T06:00:47.320Z","dependency_job_id":"852f52d1-38b1-4d75-8946-567ff0bdae37","html_url":"https://github.com/haskell/ghcup-metadata","commit_stats":{"total_commits":644,"total_committers":25,"mean_commits":25.76,"dds":"0.20962732919254656","last_synced_commit":"9f595d9a34a7bf41784c5ee776412af7ee2fb3cb"},"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fghcup-metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fghcup-metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fghcup-metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/haskell%2Fghcup-metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/haskell","download_url":"https://codeload.github.com/haskell/ghcup-metadata/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248045231,"owners_count":21038553,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-09-24T19:36:37.264Z","updated_at":"2025-04-09T13:06:00.175Z","avatar_url":"https://github.com/haskell.png","language":"Haskell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# GHCup metadata\n\nThis repo is a collection of different GHCup metadata. These are mappings from tool versions (e.g. GHC 9.6.5)\nto bindist URLs (e.g. https://downloads.haskell.org/~ghc/9.6.5/ghc-9.6.5-x86_64-fedora33-linux.tar.xz), depending\non architecture (e.g. X86_64), platform (e.g Linux) and possibly distro (e.g. Fedora).\n\n## For end users\n\n### Metadata variants (distribution channels)\n\n* `ghcup-A.B.C.yaml`: this is the main metadata and what ghcup uses by default\n* `ghcup-vanilla-A.B.C.yaml`: this is similar to `ghcup-A.B.C.yaml`, but only uses upstream bindists (no patches/fixes are applied, no missing platforms added)\n* `ghcup-prereleases-A.B.C.yaml`: this contains pre-releases of all tools\n* `ghcup-cross-A.B.C.yaml`: this contains experimental cross compilers. See https://www.haskell.org/ghcup/guide/#cross-support for details.\n\n### Using the metadata\n\nIf you want access to both pre-releases and cross compilers, run:\n\n```\nghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-prereleases-0.0.7.yaml\nghcup config add-release-channel https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-cross-0.0.8.yaml\n```\n\nIf you want **only** vanilla upstream bindists and opt out of all unofficial stuff, you'd run:\n\n```sh\nghcup config set url-source https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-vanilla-0.0.8.yaml\n```\n\nAlso check the [config.yaml documentation](https://github.com/haskell/ghcup-hs/blob/master/data/config.yaml).\n\n## Contributions\n\n### The default channel (`ghcup-A.B.C.yaml`)\n\nThis channel is strictly maintained by the GHCup project.\nMost bindists here are built downstream by the GHCup developers, e.g.:\n\n* https://github.com/stable-haskell/haskell-language-server\n* https://github.com/stable-haskell/cabal\n* https://github.com/stable-haskell/stack\n\nFor GHC bindists there is no automation yet and it is done manually (e.g. for FreeBSD and Alpine i386).\n\nYou can suggest updates to tool versions via raising an issue or a PR.\n\n### The vanilla channel (`ghcup-vanilla-A.B.C.yaml`)\n\nThese are technically maintained by the upstream developers (GHC, HLS, cabal and stack developers).\nGHCup developers do not interfere with decisions in general and do only little QA.\n\nYou can suggest updates to tool versions via raising an issue or a PR, but you may also want to CC\nsome of the upstream developers.\n\nFor GHC:\n\n- [bgamari](https://github.com/bgamari)\n- [mpickering](https://github.com/mpickering)\n- [wz1000](https://github.com/wz1000)\n\nFor Cabal:\n\n- [Kleidukos](https://github.com/Kleidukos)\n- [geekosaur](https://github.com/geekosaur)\n- [Mikolaj](https://github.com/Mikolaj)\n\nFor Stack:\n\n- [mpilgrem](https://github.com/mpilgrem)\n\nFor HLS:\n\n- [wz1000](https://github.com/wz1000)\n- [michaelpj](https://github.com/michaelpj)\n\n### Other channels\n\nOther channels are maintained in collaboration.\n\n### Understanding tags\n\nTags are documented [here](https://github.com/haskell/ghcup-hs/blob/master/lib/GHCup/Types.hs). Search for `data Tag`.\nSome tags are unique. Uniqueness is checked by `cabal run ghcup-gen -- check -f ghcup-\u003cyaml-ver\u003e.yaml`.\n\nIf you want to check prereleases, do: `cabal run ghcup-gen -- check -f ghcup-prereleases-\u003cyaml-ver\u003e.yaml --channel=prerelease`\n\n### During a PR\n\nThe following things are relevant when raising a PR.\n\n#### ghcup-gen\n\n`ghcup-gen` is a cabal project that lives in this repository to aid with various metadata tasks.\nRun `cabal run ghcup-gen -- --help` for more information.\n\nTo test that the yaml is valid and certain tags are unique, you can run:\n\n```sh\ncabal run ghcup-gen -- check -f ghcup-0.0.8.yaml\n```\n\nTo test that all bindists you just added are fetchable, you can run e.g.:\n\n```sh\ncabal run ghcup-gen -- check-tarballs -f ghcup-0.0.8.yaml -u 'ghc-9\\.6\\.6'\n```\n\n#### Bindist CI\n\nThere is a manual workflow that runs smoke tests on all supported platforms against a tool version (e.g. installing GHC and compiling a\nhello world): https://github.com/haskell/ghcup-metadata/actions/workflows/bindists.yaml\n\nTo execute it your branch must exist on the main repository and you must have privileges to the repository.\nIf you don't, ask the ghcup maintainer or some of the listed upstream maintainers.\n\nSome of the failures are expected (e.g. armv7 on GHC).\n\n#### GPG signing\n\n- make sure to sign the yaml files you edited, e.g.: `gpg --detach-sign -u \u003cyour-email\u003e ghcup-0.0.8.yaml` or ask a GHCup developer to sign\n- PGP pubkeys need to be cross-signed by the GHCup team\n- they need to be added to the CI: https://github.com/haskell/ghcup-metadata/blob/develop/.github/workflows/sigs\n- and need to be documented on the homepage\n  * https://github.com/haskell/ghcup-hs/blob/master/docs/guide.md#gpg-verification\n  * https://github.com/haskell/ghcup-hs/blob/master/docs/install.md#unix\n\n### Other information/help\n\nAn introduction into GHCup can be found in this presentation: https://www.haskell.org/ghcup/talks/Zurihac2024/GHCup.html\n\nYou can also join the [Matrix channel](https://matrix.to/#/#ghcup:matrix.org) if you need help.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaskell%2Fghcup-metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhaskell%2Fghcup-metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhaskell%2Fghcup-metadata/lists"}