{"id":13646259,"url":"https://github.com/math-comp/math-comp","last_synced_at":"2025-05-14T22:08:29.862Z","repository":{"id":28501909,"uuid":"32018344","full_name":"math-comp/math-comp","owner":"math-comp","description":"Mathematical Components","archived":false,"fork":false,"pushed_at":"2025-05-09T02:17:40.000Z","size":17106,"stargazers_count":624,"open_issues_count":155,"forks_count":118,"subscribers_count":33,"default_branch":"master","last_synced_at":"2025-05-09T03:28:21.156Z","etag":null,"topics":["coq","mathcomp","ssreflect"],"latest_commit_sha":null,"homepage":"https://math-comp.github.io","language":"Coq","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/math-comp.png","metadata":{"files":{"readme":"README-CI-Nix.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","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":"AUTHORS","dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2015-03-11T13:13:27.000Z","updated_at":"2025-05-09T02:17:46.000Z","dependencies_parsed_at":"2024-01-14T09:59:39.646Z","dependency_job_id":"2cad2d0f-7c8b-4dd5-857b-831c562524e2","html_url":"https://github.com/math-comp/math-comp","commit_stats":{"total_commits":1576,"total_committers":61,"mean_commits":25.83606557377049,"dds":0.7728426395939086,"last_synced_commit":"c16d2b0e136dc0d1a6d116e6276ecf82191d2b7a"},"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math-comp%2Fmath-comp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math-comp%2Fmath-comp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math-comp%2Fmath-comp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/math-comp%2Fmath-comp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/math-comp","download_url":"https://codeload.github.com/math-comp/math-comp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254235700,"owners_count":22036964,"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":["coq","mathcomp","ssreflect"],"created_at":"2024-08-02T01:02:51.601Z","updated_at":"2025-05-14T22:08:24.848Z","avatar_url":"https://github.com/math-comp.png","language":"Coq","funding_links":[],"categories":["Rocq Prover"],"sub_categories":[],"readme":"# MathComp CI\n\nThere are two main CI systems on math-comp repo:\n* An OPAM based CI using gitlab, configured in `.gitlab-ci.yml`\n  and using Docker images from https://hub.docker.com/r/coqorg/coq/\n  and OPAM packages from https://github.com/coq/opam-coq-archive\n  This CI is outside the scope of the current document.\n* A Nix based CI based on top of packages of nixpkgs\n  https://github.com/NixOS/nixpkgs and the coq-nix-toolbox\n  https://github.com/coq-community/coq-nix-toolbox\n  This is further document here.\n\n## Nix Based CI\n\n### Local Installation and Nix Usage\n\nSee this great wiki page\nhttps://github.com/math-comp/math-comp/wiki/Using-nix for how to\ninstall Nix and use it locally to enjoy CI caching and speed up your\ndevelopment process.\n\n### Rerunning a CI Task Locally\n\nYou can take example of the files `.github/workflows/nix-action-coq-*.yml`\nFor instance, to rerun multinomials for Coq 8.12 :\n```shell\n% nix-build --argstr bundle \"coq-8.12\" --argstr job multinomials\n```\nThe list of bundles can be found in `.nix/config.nix`.\n\n### Test CI Configurations with Overlays\n\nFor simple overlays, it's enough to add a line in the .nix/config.nix\nfile (look for \"overlay\" there).\n\nFor more elaborate overlays (for instance editing package dependencies),\na simple way to test modification of the CI configuration (new version\nor configuration change of some package for instance) is through\noverlays, see the corresponding paragraph at\nhttps://github.com/coq-community/coq-nix-toolbox#overlays (for sha256\nhashes, one can just put an empty string, run the `nix-build` command\nabove and an error will give the correct value).\n\n### Updating coq-nix-toolbox\n\nOnce overlays are satisfactory, they should eventually be merged into\nthe nixpkgs package repository.\n\nThe file `.nix/coq-nix-toolbox.nix` contains the git commit hash of\nthe version of coq-nix-toolbox used (c.f.,\nhttps://github.com/coq-community/coq-nix-toolbox ). Coq-nix-toolbox\nitself contains the git commit hash of the version of nixpkgs it uses\n(c.f. https://github.com/NixOS/nixpkgs/ ). So in order to add or\nremove a Nix derivation (package), one needs to first update nixpkgs,\nthen coq-nix-toolbox and finally the `.nix/coq-nix-toolbox.nix` file\nhere. See the [coq-nix-toolbox README](https://github.com/coq-community/coq-nix-toolbox#testing-coqpackages-updates-in-nixpkgs)\nfor details of the process.\n\n### Learning Nix basics\n\nBasic concepts of the Nix package manager:\nhttps://nixos.org/manual/nix/stable/ (I particularly recommend\n[Part I. introduction](https://nixos.org/manual/nix/stable/#chap-introduction) and\n[Chapter 9. Basic Package Management](https://nixos.org/manual/nix/stable/#ch-basic-package-mgmt))\n\nNix is based on its own functional language:\n[Part IV. Writing Nix Expressions](https://nixos.org/manual/nix/stable/#chap-writing-nix-expressions)\n\nSpecifics for Coq packages: [15.5. Coq and coq packages](https://nixos.org/manual/nixpkgs/unstable/#sec-language-coq)\n\n### Caching\n\nThe CI uses caching provided by https://www.cachix.org/ and there is a\ntoken in the math-comp organization to authenticate and store the\nresults. Any CI build is stored globally and can be used on one's own\ncomputer as described in\nhttps://github.com/math-comp/math-comp/wiki/Using-nix\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmath-comp%2Fmath-comp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmath-comp%2Fmath-comp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmath-comp%2Fmath-comp/lists"}