Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vdustr/gsvt
Tag semantically with one command.
https://github.com/vdustr/gsvt
cli git node semantic semver version
Last synced: 3 months ago
JSON representation
Tag semantically with one command.
- Host: GitHub
- URL: https://github.com/vdustr/gsvt
- Owner: VdustR
- License: mit
- Created: 2022-09-24T06:37:29.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-08-03T04:27:41.000Z (over 1 year ago)
- Last Synced: 2024-10-09T10:49:20.429Z (3 months ago)
- Topics: cli, git, node, semantic, semver, version
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/gsvt
- Size: 38.1 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# gsvt
> Create git semver tags with additional major and minor tags easily
![gsvt](https://vdustr.dev/asset-2022/09-24-gsvt/gsvt-cover.png)
## Example
Let's say the latest tag is `v2.1.1`:
| Command | Result |
| ------------ | ---------------------- |
| `gsvt` | `v2.1.2`, `v2.1`, `v2` |
| `gsvt major` | `v3.0.0`, `v3.0`, `v3` |
| `gsvt minor` | `v2.2.0`, `v2.2`, `v2` |
| `gsvt patch` | `v2.1.2`, `v2.1`, `v2` |
| `gsvt 1.2.3` | `v1.2.3`, `v1.2`, `v1` |If there is no tag matching the pattern `v*.*.*`, the next patch will be `v0.0.1`.
## Why?
Unlike [`npm`](https://www.npmjs.com/), some registry services like [GitHub Actions](https://github.com/features/actions) didn't resolve the version with semantically versioned tags by default. For example, we can install the latest `1.x.x` package with `npm install package@1` but we can't do the same thing with `actions/my-action@v1`. We have to specify the exact version like `actions/[email protected]`.
> We recommend creating releases using semantically versioned tags – for example, `v1.1.3` – and keeping major (`v1`) and minor (`v1.1`) tags current to the latest appropriate commit. For more information, see "[About custom actions](https://docs.github.com/en/actions/creating-actions/about-custom-actions#using-release-management-for-actions)" and "[About semantic versioning](https://docs.npmjs.com/about-semantic-versioning). -- [Releasing and maintaining actions - GitHub Docs]()
The way to let the user use the action semantically is creating tags with the major version like `v1` and the minor version like `v1.1`, but it's not easy to create these tags manually, so I created this tool to resolve this with one command simply.
## Install
```sh
npm install -g gsvt
```Or use `npx gsvt` directly without installing.
## Usage
`gsvt` detect the git tags with `v*.*.*` automatically, and create the next patch
semver tag.```sh
gsvt
```You can increase the version with `major` or `minor`:
```sh
gsvt major
gsvt minor
gsvt patch
````gsvt patch` is equal to `gsvt`.
You can also specify the version manually:
```sh
gsvt
gsvt v0.1.0
```And you can push the commit with tags:
```sh
git push origin main --tags -f
```## License
[MIT](https://github.com/VdustR/gsvt/blob/main/LICENSE)
Copyright (c) 2022-preset ViPro (京京)