{"id":14155950,"url":"https://github.com/pkgxdev/pantry","last_synced_at":"2025-05-16T04:07:10.123Z","repository":{"id":62234180,"uuid":"556421325","full_name":"pkgxdev/pantry","owner":"pkgxdev","description":"pkg manifests","archived":false,"fork":false,"pushed_at":"2025-05-14T19:10:45.000Z","size":6306,"stargazers_count":180,"open_issues_count":129,"forks_count":124,"subscribers_count":7,"default_branch":"main","last_synced_at":"2025-05-14T20:26:17.073Z","etag":null,"topics":["package-manifests"],"latest_commit_sha":null,"homepage":"https://pkgx.dev/pkgs/","language":"C","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/pkgxdev.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,"zenodo":null}},"created_at":"2022-10-23T20:13:37.000Z","updated_at":"2025-05-14T19:10:48.000Z","dependencies_parsed_at":"2023-12-07T16:46:09.820Z","dependency_job_id":"ffe03627-4998-40d3-835a-360922869f4e","html_url":"https://github.com/pkgxdev/pantry","commit_stats":{"total_commits":3922,"total_committers":118,"mean_commits":33.23728813559322,"dds":0.6965833758286588,"last_synced_commit":"826e87e9cec127f17d9f7aa414db1c12f1ad4f71"},"previous_names":["teaxyz/pantry"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fpantry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fpantry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fpantry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pkgxdev%2Fpantry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pkgxdev","download_url":"https://codeload.github.com/pkgxdev/pantry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254464897,"owners_count":22075571,"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":["package-manifests"],"created_at":"2024-08-17T08:05:06.608Z","updated_at":"2025-05-16T04:07:05.114Z","avatar_url":"https://github.com/pkgxdev.png","language":"C","funding_links":[],"categories":["others","C"],"sub_categories":[],"readme":"![pkgx](https://pkgx.dev/banner.png)\n\npkgx metadata and build instructions.\n\n# Contributing\n\nYou need [`pkgx`]. We recommend using [`dev`] to get [`brewkit`] which we use\nto build packages:\n\n```sh\n$ git clone https://github.com/pkgxdev/pantry\n\n$ cd pantry\n\n$ dev  # https://docs.pkgx.sh/dev\n# ^^ adds brewkit (ie. the `bk` command) to your devenv\n# ^^ IMPORTANT! Otherwise the `bk` command will not be found\n# ^^ Alternatively, you can use pkgx and prefix your commands with the ENV\n# ^^ PKGX_PANTRY_PATH=$(pwd) pkgx bk [command]\n\n$ bk init\n# ^^ creates a “wip” package.yml\n# ^^ if you already know the name, you can pass it as an argument\n\n$ bk edit\n# ^^ opens the new package.yml in your EDITOR\n\n$ bk build\n# builds to `./builds`\n# ^^ needs a zero permissions GITHUB_TOKEN to use the GitHub API\n# either set `GITHUB_TOKEN` or run `gh auth login`\n\n$ pkgx yq .provides \u003cprojects/$(bk status | tr -d '[:space:]')/package.yml\n- bin/foo\n# ^^ purely demonstrative for the next step\n\n$ pkgx foo\n# ^^ anything in the `provides:` key will now run\n\n$ bk audit\n# ^^ worth doing an audit to check for common pkging issues\n\n$ bk test\n# ^^ you need to write a test that verifies the package works\n\n$ gh repo fork\n$ git branch -m my-new-package\n$ git push origin my-new-package\n$ gh pr create\n```\n\n\u003e [!NOTE]\n\u003e If you don’t want to use [`dev`] you can prefix [`pkgx`] in front of all\n\u003e `bk` commands or [`pkgm i bk`] to install [`brewkit`] to `/usr/local`.\n\n\u003e [!TIP]\n\u003e * `bk build` and `bk test` can be invoked eg. `bk docker build` to run\n\u003e   inside a Docker container for Linux builds and testing\n\u003e * All commands take an optional pkg-spec eg. `bk build node@19`\n\u003e * While inside the pantry `dev` environment you can run commands from any\n\u003e   built packages provided you specified their `provides:` key in the\n\u003e   `package.yml`.\n\n\u003e [!NOTE]\n\u003e We use a special package called [`brewkit`] to build packages both here and\n\u003e in CI/CD. `brewkit` provides the `bk` command.\n\n\u003e [!IMPORTANT]\n\u003e brewkit installs the built products to `${PKGX_DIR:-$HOME/.pkgx}` which\n\u003e means they are installed to your unix-user’s pkgx cache.\n\n## GitHub Codespaces\n\n`pantry` also works in GitHub Codespaces. The default configuration\nprovided with the repository will install/update `pkgx` at the time\nyou attach, so you should be able to quickly work on test packages\nin a remote linux environment (or work from a device with just a web browser).\n\n## Packaging Guide\n\nPackaging can be cumbersome.\nOur [wiki] is our packaging knowledge base.\nFor other assistance, start a [discussion].\n\nThe best way to figure out solutions for your problems is to read other\nexamples from the pantry.\n\n# After Your Contribution\n\nWe build “bottles” (tar’d binaries) and upload them to our CDN. Thus your\ncontribution will be available at merge-time + build-time + CDN distribution\ntime.\n\n`pkgx` should\nautomatically sync the pantry to your local machine if you ask for something\nit doesn’t know about, but in the case where that fails do a `pkgx --sync`\nfirst.\n\n\u003e [!NOTE]\n\u003e The pantry automatically builds new releases of packages *as soon as they\n\u003e are released* (usually starting the builds within seconds). There is no need\n\u003e to submit PRs for updates.\n\nNote that while in the pantry `dev` environment you can use your new package\nif you built it. However this will not work outside the pantry `dev` unless\nyou either:\n\n1. You set `PKGX_PANTRY_PATH`\n2. Get your PR merged!\n\n# Working on Other People’s Pull Requests\n\nPackaging can be fiddly so we all pitch in. If you want to help someone else\nwith their pull request then you can use GitHub’s CLI:\n\n```sh\n$ gh pr checkout 123\n\n# or you can copy paste the URL:\n$ gh pr checkout https://github.com/pkgxdev/pantry/pull/123\n\n# then open for editing:\n$ bk edit\n```\n\n\n[wiki]: https://github.com/pkgxdev/pantry/wiki\n[discussion]: https://github.com/orgs/pkgxdev/discussions\n[IPFS]: https://ipfs.tech\n[`npmjs.com/provider.yml`]: ./projects/npmjs.com/provider.yml\n[`brewkit`]: https://github.com/pkgxdev/brewkit\n[`pkgm i bk`]: https://github.com/pkgxdev/pkgm\n[`dev`]: https://github.com/pkgxdev/dev\n[`pkgx`]: https://github.com/pkgxdev/pkgx\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkgxdev%2Fpantry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpkgxdev%2Fpantry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpkgxdev%2Fpantry/lists"}