{"id":14990690,"url":"https://github.com/ziglang/release-cutter","last_synced_at":"2025-10-19T13:31:51.751Z","repository":{"id":83504951,"uuid":"403817014","full_name":"ziglang/release-cutter","owner":"ziglang","description":"automating the zig release process","archived":false,"fork":false,"pushed_at":"2024-09-19T00:36:31.000Z","size":31,"stargazers_count":9,"open_issues_count":1,"forks_count":7,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-10-01T03:08:07.443Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Zig","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/ziglang.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,"publiccode":null,"codemeta":null}},"created_at":"2021-09-07T02:34:30.000Z","updated_at":"2024-09-19T00:36:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"c5e2562e-f1c4-4125-bca7-4c49a0198957","html_url":"https://github.com/ziglang/release-cutter","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/ziglang%2Frelease-cutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglang%2Frelease-cutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglang%2Frelease-cutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ziglang%2Frelease-cutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ziglang","download_url":"https://codeload.github.com/ziglang/release-cutter/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219869247,"owners_count":16555572,"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-24T14:20:36.152Z","updated_at":"2025-10-19T13:31:51.427Z","avatar_url":"https://github.com/ziglang.png","language":"Zig","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Release Cutter\n\nHelpful scripts for cutting a Zig release.\n\n## Making a New CI Tarball\n\nFirst, use [zig-bootstrap](https://github.com/ziglang/zig-bootstrap) to build the\nrelevant tarball(s) for the targets the CI needs.\n\nNext, run the update-ci-tarballs.zig script. It has its own usage text to guide\nyou through the process. The final step is using `s3cmd` to upload the tarballs.\nThe script prints suggested commands for you to run which you can copy and paste.\n\nNext you have to do CI chores to update to the new tarball. Each CI system has\ntheir own different chore you have to do.\n\n * ci.ziglang.org\n   - copy the x86_64-linux-musl tarball to ci.ziglang.org:/depot/deps\n   - ssh into ci.ziglang.org and follow\n     [these directions](https://github.com/ziglang/zig-ci/blob/main/docker/debian-amd64-11.1.md),\n     with two modifications:\n     - replace `zig+llvm+lld+clang-x86_64-linux-musl-0.9.1.tar.xz` and\n       `zig+llvm+lld+clang-aarch64-macos-none-0.9.1.tar.xz` with your new tarballs.\n     - bump the version of `debian-amd64:11.1-9` to the next number after the one in\n       the main zig git repo, the `image` fields of `ci/zinc/drone.yml`.\n   - in the main zig git repo, update the `image` fields of `ci/zinc/drone.yml`.\n * azure\n   - in the main zig git repo, update `ZIG_LLVM_CLANG_LLD_NAME` in `azure/pipelines.yml`.\n   - in the main zig git repo, update `CACHE_BASENAME` in `azure/macos_script`.\n * drone\n   - rent an arm64 server from e.g. vultr or digitalocean\n   - use [docker-zig](https://github.com/ziglang/docker-zig) to build and publish an updated\n     docker image\n   - in the main zig git repo, update the `image` fields of `ci/drone/drone.yml`\n * lavahut\n   - in the main zig git repo, update `CACHE_BASENAME` in `srht/freebsd_script`.\n\n### Template for Copying Artifacts from FreeBSD Server\n\n1. Rent FreeBSD VPS and run zig-bootstrap on it.\n2. cd into zig-bootstrap, run these with the IP edited:\n\n```\nrsync -avzu root@96.30.194.18:zig-bootstrap/out/x86_64-native-baseline/ ./out/x86_64-freebsd-gnu-baseline/\nrsync -avzu root@96.30.194.18:zig-bootstrap/out/zig-x86_64-native-baseline/ ./out/zig-x86_64-freebsd-gnu-baseline/\n```\n\nThen you can use the update-ci-tarballs.zig script including for FreeBSD.\n\n## GitHub GraphQL Snippets\n\n### List All the Tiers\n\nThese are hard-coded into the script; if these change the .zig code must be updated.\n\n```gql\n{\n  organization(login: \"ziglang\") {\n    sponsorsListing {\n      tiers(first: 20) {\n        nodes {\n          id\n          name\n          description\n        }\n      }\n    }\n  }\n}\n```\n\nOutput: (2021-12-18)\n\n```\n{\n  \"data\": {\n    \"organization\": {\n      \"sponsorsListing\": {\n        \"tiers\": {\n          \"nodes\": [\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM5NDY1\",\n              \"name\": \"$5 a month\",\n              \"description\": \"A meaningful contribution for a nimble organization. \\r\\n\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM2Mjgy\",\n              \"name\": \"$10 a month\",\n              \"description\": \"Let's reclaim control of Open Source software development!\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM2Mjgz\",\n              \"name\": \"$15 a month\",\n              \"description\": \"Like the previous tier, but it seems the compiler decided to add some padding. Thank you very much!\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM0MDcy\",\n              \"name\": \"$25 a month\",\n              \"description\": \"This funds 30 minutes of paid developer work per month. Brilliant!\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM0MDcx\",\n              \"name\": \"$50 a month\",\n              \"description\": \"This funds one hour of paid developer work per month.\\r\\n\\r\\nAs a reward:\\r\\n\\r\\n* Your name listed in the official release notes with every release of Zig.\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM0MDcw\",\n              \"name\": \"$100 a month\",\n              \"description\": \"This funds two hours of paid developer work per month. With just 40 other people donating this amount, it would be enough to hire someone.\\r\\n\\r\\nAs a reward:\\r\\n\\r\\n* Your name **with a hyperlink to your home page** listed in the official release notes with every release of Zig.\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM0MDc1\",\n              \"name\": \"$200 a month\",\n              \"description\": \"This funds 4 hours of paid developer work per month. With just 20 other people donating this amount, it would be enough to hire someone.\\r\\n\\r\\nAs a reward:\\r\\n * Your name **with a hyperlink to your home page** listed in the official release notes with every release of Zig.\\r\\n * Your name listed at the bottom of ziglang.org landing page.\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjM0MDc3\",\n              \"name\": \"$400 a month\",\n              \"description\": \"This funds 8 hours of paid developer work per month. With just 10 other people donating this amount, it would be enough to hire someone.\\r\\n\\r\\nAs a reward:\\r\\n\\r\\n * Your name **with a hyperlink to your home page** listed in the official release notes with every release of Zig.\\r\\n * Your name **with a hyperlink to your home page** listed at the bottom of ziglang.org landing page.\\r\\n\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjUwMDE0\",\n              \"name\": \"$1,200 a month\",\n              \"description\": \"This funds 24 hours of paid developer work per month.\\r\\n\\r\\nA good option for companies that intend to donate using GitHub Sponsors.\\r\\nPlease contact us for alternative donation methods and any other requests.\\r\\n\"\n            },\n            {\n              \"id\": \"MDEyOlNwb25zb3JzVGllcjUwMjgx\",\n              \"name\": \"$5,000 a month\",\n              \"description\": \"This funds 100 hours of paid developer work per month!\\r\\n\\r\\nWith your help, we're going to take off every Zig at the speed of light!\\r\\n\"\n            }\n          ]\n        }\n      }\n    }\n  }\n}\n```\n\n### Obtain the Full Data Set\n\nIdeally the tool would do this automatically but I didn't bother to set that up\nyet, and I'm not willing to do it in any other language than Zig. Pull requests\nusing other programming languages will be REJECTED!!!\n\nIn the meantime, there's this\n[explorer thing](https://docs.github.com/en/graphql/overview/explorer).\n\n```gql\nquery GetSponsors($tierId: ID) {\n  organization(login: \"ziglang\") {\n    sponsors(tierId: $tierId, first: 100) {\n      nodes {\n        ... on User {\n          id\n          name\n          login\n          twitterUsername\n          websiteUrl\n        }\n        ... on Organization {\n          id\n          name\n          login\n          twitterUsername\n          websiteUrl\n        }\n      }\n    }\n  }\n}\n```\n\n* Do the query multiple times, annotating each result with its `tierId`\n  (I couldn't figure out how to do this directly with GraphQL. Annotate\n  each one by saving each query into a file named `tiers-data/$tierId.json`.\n  - `{\"tierId\": \"ST_kwHOAarWdc3EaQ\"}`\n  - `{\"tierId\": \"ST_kwHOAarWdc3DXg\"}`\n  - `{\"tierId\": \"ST_kwHOAarWdc2FHQ\"}`\n  - `{\"tierId\": \"ST_kwHOAarWdc2FGw\"}`\n  - `{\"tierId\": \"ST_kwHOAarWdc2FFg\"}`\n  - `{\"tierId\": \"ST_kwHOAarWdc2FFw\"}`\n\n### Command Line Application\n\nNow run the `sponsors-html` tool with no arguments and follow the help\ninstructions that it prints.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziglang%2Frelease-cutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fziglang%2Frelease-cutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fziglang%2Frelease-cutter/lists"}