An open API service indexing awesome lists of open source software.

https://github.com/dncrews/date-tag

Create git tags that are date based and versioned for that date. e.g. v2022-01-01.1
https://github.com/dncrews/date-tag

git npm-package tagging

Last synced: about 1 year ago
JSON representation

Create git tags that are date based and versioned for that date. e.g. v2022-01-01.1

Awesome Lists containing this project

README

          

# date-tag

[WTFPL](http://www.wtfpl.net/")

The goal of this package is to create (and push) git tags that are date based. This is sometimes used to push applications that aren't "versioned" in the semver sense, but have date-based deployments.

**Note: these tags are annotated tags. See the "Creating Tags" section of the [Tagging docs.](https://git-scm.com/book/en/v2/Git-Basics-Tagging)**

## Tag Format

The git tag that is created will come in the format of:
`--

.`

- Prefix
- Denotes whether it was a full release or a release candidate
- YYYY
- 4-digit calendar year
- MM
- 2-digit calendar month
- DD
- 2-digit calendar day
- Version
- Denotes which deployment this is for today.
- `.1` would be the first deployment with that prefix
- `.10` would be the tenth.

### Examples

| Example | Command | Prefix | YYYY | MM | DD | Version |
| --: | -- | -- | -- | -- | -- | -- |
| rc-v2022-01-06.15 | `date-tag rc` | `rc-v` | `2022` | `01` | `06` | `15` |
| v2022-10-20.2 | `date-tag prod` | `v` | `2022` | `10` | `20` | `2` |

## Usage

### Without installation
The easiest way to use this package is simply to use `npx` to call it. You do not need to install it first.
```bash
$ npx date-tag
```

### With installation

First install it in your project with either:

```bash
npm install -D date-tag
```
```bash
yarn install -D date-tag
```

You can then use the same npx command
```bash
npx date-tag
```

Or you can add it to your package.json
```json
{
"scripts": {
"release": "yarn run date-tag"
}
}
```
and then you can use
```bash
yarn release
```

### Options
There is only one option with multiple possible values:
| Option | Purpose | Variations |
| ----: | ---- |---- |
| `rc` | Publishes a tag with the prefix `rc-v`
e.g. `rc-v2022-01-01.1` | `date-tag rc`
`date-tag beta`
`date-tag demo` |
| `prod` | Publishes a tag with the prefix `v`
e.g. `v2022-01-01.1` | `date-tag prod`
`date-tag full`
`date-tag release` |
| `push` | Shows you the tags for today and allows you to choose one to push to Github. (See Note below). | `date-tag push` |

### Note on `push`

The reason the command `push` exists when `git push --tags` also exists is that I was personally frustrated when I had OTHER tags that shouldn't be pushed. For example, if I tagged a release yesterday that was never deployed, I don't want to push that one. The equivalent git command to push only the one tag would be:

```bash
git push origin "refs/tags/v2022-01-01.1"
```