{"id":22599618,"url":"https://github.com/singularityhub/singularity-catalog","last_synced_at":"2025-04-15T11:54:51.609Z","repository":{"id":40631713,"uuid":"369898907","full_name":"singularityhub/singularity-catalog","owner":"singularityhub","description":"The Singularity Community Catalog of Singularity* recipe files.","archived":false,"fork":false,"pushed_at":"2025-04-14T05:39:45.000Z","size":214689,"stargazers_count":11,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-14T06:32:49.789Z","etag":null,"topics":["singularity","singularity-catalog","singularity-container","singularity-recipe"],"latest_commit_sha":null,"homepage":"https://singularityhub.github.io/singularity-catalog/","language":"Singularity","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/singularityhub.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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}},"created_at":"2021-05-22T20:21:10.000Z","updated_at":"2025-04-14T05:39:50.000Z","dependencies_parsed_at":"2023-09-25T09:30:45.771Z","dependency_job_id":"f952256f-dbb9-4548-a490-9c7451b37ec7","html_url":"https://github.com/singularityhub/singularity-catalog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singularityhub%2Fsingularity-catalog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singularityhub%2Fsingularity-catalog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singularityhub%2Fsingularity-catalog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/singularityhub%2Fsingularity-catalog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/singularityhub","download_url":"https://codeload.github.com/singularityhub/singularity-catalog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249067774,"owners_count":21207395,"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":["singularity","singularity-catalog","singularity-container","singularity-recipe"],"created_at":"2024-12-08T11:10:42.059Z","updated_at":"2025-04-15T11:54:48.200Z","avatar_url":"https://github.com/singularityhub.png","language":"Singularity","readme":"# Singularity Catalog\n\n![assets/img/singularity-catalog.png](assets/img/singularity-catalog.png)\n\nThis is the Singularity Community Catalog, or Singularity recipe files discovered\nin the wild across the community! It is another version of the [spack-stack-catalog](https://spack.github.io/spack-stack-catalog) (pushed second, but developed first!), which itself is inspired by the [snakemake-workflow-catalog](https://github.com/snakemake/snakemake-workflow-catalog) that is released under an [MIT LICENSE](.github/SNAKEMAKE-LICENSE).\n\n⭐ [View the Catalog](https://singularityhub.github.io/singularity-catalog/) ⭐\n\nIf you want your recipes to be added to the catalog, they simply need to be\ndiscoverable via a GitHub search. The repository must be public, and the recipe\nmust be named according to the published convention, \"Singularity\" or \"Singularity*\"\n\n## How does it work?\n\nA Singularity recipe is a definition file to build a Singularity container. It can be thought of as a packaged set of packages to install alongside a configuration. Following convention specified in the [Singularity publication](https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0177459#sec042)and thousands of recipes on GitHub that were built on Singularity Hub, Singularity recipes are typically represented in a \"Singularity\" file, akin to a Dockerfile, optionally with an extension to indicate a particular tag. This means that we can easily discover these files across GitHub using the GitHub API and present a catalog here. This is the Singularity community catalog! 🎉️ You can come here to find recipe examples, and browse what the community is working on. While there are many thousands of recipes online, we include recipes based on the following criteria: \n\n- We parse the 1000 most recently indexed on a nightly basis\n- Your file must be named following the Singularity published convention. If Singularity is in the name of the .def file it might be discovered, but since *.def is not specific enough to Singularity, we cannot search for these files.\n- The recipe is contained in a public Github repository.\n- The repository is small enough to be cloned into a Github actions job.\n- The repository is not on the [skiplist](skiplist.txt).\n\nAdditionally, we now support adding repos and search expressions to [repos.txt](repos.txt),\nso a repository with *.def files (which are not specific to Singularity and would not be\npossible to search with the GitHub API) can be added.\n\n## Usage\n\n### Install Dependencies\n\nThe update of repositories that have Singularity* recipes is done during an automated CI,\nhowever you might want to run the update script locally. You can first install\nrequirements:\n\n```bash\npython -m venv env\npip install -r requirements.txt\n```\n\n### Environment\n\nYou'll need to export a personal access token as `GITHUB_TOKEN`:\n\n```bash\nexport GITHUB_TOKEN=xxxxxxxxxxx\n```\n\n### Run update script\n\nThen, run the script!\n\n```bash\npython scripts/generate-catalog.py\n```\n\nThis should be run nightly to update the recipes here.\n\n## Calculate Metrics\n\nIf you run the script [generate-graph-data.py](generate-graph-data.py) you\ncan generate the [containers.yaml](_data/containers.yaml) data file that\nshows counts of base containers, tags, and bootstraps.\n\n```bash\npython scripts/generate-graph-data.py\n```\n\n![assets/img/plot.png](assets/img/plot.png)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsingularityhub%2Fsingularity-catalog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsingularityhub%2Fsingularity-catalog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsingularityhub%2Fsingularity-catalog/lists"}