{"id":13696459,"url":"https://github.com/denoland/bump-workspaces","last_synced_at":"2025-10-19T21:32:16.086Z","repository":{"id":220289509,"uuid":"751247955","full_name":"denoland/bump-workspaces","owner":"denoland","description":"A tool for upgrading Deno workspace packages using conventional commits","archived":false,"fork":false,"pushed_at":"2024-11-26T10:27:29.000Z","size":138,"stargazers_count":14,"open_issues_count":5,"forks_count":7,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-01-30T06:11:16.263Z","etag":null,"topics":["conventional-commits","deno","monorepo","workspaces"],"latest_commit_sha":null,"homepage":"https://jsr.io/@deno/bump-workspaces","language":"TypeScript","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/denoland.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-02-01T08:21:59.000Z","updated_at":"2025-01-15T23:45:47.000Z","dependencies_parsed_at":"2024-06-06T12:43:05.554Z","dependency_job_id":"652624ae-55be-4710-b2d7-5e4d219278b0","html_url":"https://github.com/denoland/bump-workspaces","commit_stats":null,"previous_names":["denoland/bump_workspaces"],"tags_count":23,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fbump-workspaces","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fbump-workspaces/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fbump-workspaces/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/denoland%2Fbump-workspaces/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/denoland","download_url":"https://codeload.github.com/denoland/bump-workspaces/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237221176,"owners_count":19274447,"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":["conventional-commits","deno","monorepo","workspaces"],"created_at":"2024-08-02T18:00:40.477Z","updated_at":"2025-10-19T21:32:15.772Z","avatar_url":"https://github.com/denoland.png","language":"TypeScript","funding_links":[],"categories":["Tools"],"sub_categories":[],"readme":"# @deno/bump-workspaces\n\n\u003e A tool for upgrading Deno workspace packages using conventional commits\n\n[![ci](https://github.com/denoland/bump-workspaces/actions/workflows/ci.yml/badge.svg)](https://github.com/denoland/bump-workspaces/actions/workflows/ci.yml)\n[![codecov](https://codecov.io/gh/denoland/bump-workspaces/graph/badge.svg?token=KUT5Q1PJE6)](https://codecov.io/gh/denoland/bump-workspaces)\n\nThis tool detects necessary version upgrades for workspaces packages using\n[Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) and\ncreates a PR.\n\n# Try it\n\nRun this command with `--dry-run` flag in your Deno workspace-enabled project\nand see what this command does:\n\n```sh\ndeno run -A jsr:@deno/bump-workspaces@0.1.22/cli --dry-run\n```\n\n# How it works\n\nThe below steps describe what this command does:\n\n- Read `deno.json` at the current directory. Read \"workspaces\". Read `deno.json`\n  of each workspace package.\n- Collect the git commit messages between the latest tag and the current branch.\n- Calculate the necessary updates for each package. (See the below table for\n  what version upgrades are performed for each conventional commit tag.)\n- Create and print the release note.\n- Stop here if `--dry-run` specified, and continue if not.\n- Save necessary updates to each `deno.json`.\n- Create a new branch `release-YYYY-MM-DD`\n- Make git commit the version changes using `GIT_USER_NAME` and `GIT_USER_EMAIL`\n  env vars.\n- Create a github pull request using `GITHUB_TOKEN` and `GITHUB_REPOSITORY` env\n  vars.\n- That's all.\n\nNote: Don't worry if your commits don't completely follow conventional commits.\nYou can still manually update the PR generated by this tool. The PR body\nincludes the information about which commits are handled by this tool and which\nare not.\n\n# CI set up\n\nSet up the GitHub Actions yaml like the below, and trigger the workflow\nmanually:\n\n```yaml\nname: version_bump\n\non: workflow_dispatch\n\njobs:\n  build:\n    name: version bump\n    runs-on: ubuntu-latest\n    timeout-minutes: 15\n\n    steps:\n      - name: Clone repository\n        uses: actions/checkout@v4\n\n      - name: Set up Deno\n        uses: denoland/setup-deno@v1\n\n      - name: Run workspaces version bump\n        run: |\n          git fetch --unshallow origin\n          deno run -A jsr:@deno/bump-workspaces@0.1.22/cli\n        env:\n          GITHUB_TOKEN: ${{ secrets.BOT_TOKEN }}\n```\n\nExample pull request: https://github.com/kt3k/deno_std/pull/34\n\n## Commit titles\n\nThis tool uses the commit titles as the input for detecting which modules and\nversions to update. The commit titles need to follow the following format:\n\n```\n\u003ctag\u003e(\u003cscopes,...\u003e): \u003ccommit message\u003e\n```\n\nSome examples are:\n\n```\nfix(foo): fix a bug\nfix(baz,qux): fix a bug\nfeat(bar): add a new feature\nchore(foo): clean up\nchore(bar): clean up\nBREAKING(quux): some breaking change\n```\n\nThis example results in the following version updates:\n\n| module | version |\n| ------ | ------- |\n| foo    | patch   |\n| bar    | minor   |\n| baz    | patch   |\n| qux    | patch   |\n| quux   | major   |\n\nThe tool automatically detects following commit tags:\n\n- BREAKING\n- feat\n- fix\n- perf\n- docs\n- deprecation\n- refactor\n- test\n- style\n- chore\n\nIf a module has `BREAKING` commits, then `major` version will be updated. If a\nmodule has `feat` commits, `minor` version will be updated. Otherwise `patch`\nversion will be updated.\n\n| tag         | version |\n| ----------- | ------- |\n| BREAKING    | major   |\n| feat        | minor   |\n| fix         | patch   |\n| perf        | patch   |\n| docs        | patch   |\n| deprecation | patch   |\n| refactor    | patch   |\n| test        | patch   |\n| style       | patch   |\n| chore       | patch   |\n\n## Scope required tags\n\nThe following tags require scope specified because they don't make sense without\nscopes. If these tags specified without scopes, they are raised as diagnostics\nin README.\n\n- BREAKING\n- feat\n- fix\n- perf\n- deprecation\n\n## Wildcard scope\n\nYou can use `*` for the scope. That commit affects all the packages in the\nworkspace. For example:\n\n```\nrefactor(*): clean up\n```\n\nThe above commit causes `patch` upgrade to the all packages.\n\n## Unstable updates\n\nYou can mark the change only affects the unstable part of the package by using\n`scope/unstable` or `unstable/scope`.\n\n```\nfeat(crypto/unstable): a new unstable feature\nBREAKING(crypto/unstable): breaking change to unstable feature\n```\n\nIf this notation is used, the effect of the commit becomes `patch` no matter\nwhat commit type is used.\n\n# License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenoland%2Fbump-workspaces","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdenoland%2Fbump-workspaces","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdenoland%2Fbump-workspaces/lists"}