Welcome to mirror list, hosted at ThFree Co, Russian Federation.

RELEASING.md « kubeclient « gems « vendor - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: c8a9a121eda79325f0062a95105749e0534eb502 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Releasing Kubeclient

## Versioning
Kubeclient release versioning follows [SemVer](https://semver.org/).
At some point in time it is decided to release version x.y.z.

```bash
RELEASE_BRANCH="master"
```

## 0. (once) Install gem-release, needed for several commands here:

```bash
gem install gem-release
```

## 1. PR(s) for changelog & bump

Edit `CHANGELOG.md` as necessary.  Even if all included changes remembered to update it, you should replace "Unreleased" section header with appropriate "x.y.z — 20yy-mm-dd" header.

Bump `lib/kubeclient/version.rb` manually, or by using:
```bash
RELEASE_VERSION=x.y.z

git checkout -b "release-$RELEASE_VERSION" $RELEASE_BRANCH
# Won't work with uncommitted changes, you have to commit the changelog first.
gem bump --version $RELEASE_VERSION
git show # View version bump change.
```

Open a PR with target branch $RELEASE_BRANCH and get it reviewed & merged (if open for long, remember to update date in CHANGELOG to actual day of release).

## 2. (once) Grabbing an authentication token for rubygems.org api
```bash
RUBYGEMS_USERNAME=bob
curl -u $RUBYGEMS_USERNAME https://rubygems.org/api/v1/api_key.yaml > ~/.gem/credentials; chmod 0600 ~/.gem/credentials

cat ~/.gem/credentials
# Should look like this:
:rubygems_api_key: ****
```

## 3. Actual release

Make sure we're locally after the bump PR *merge commit*:
```bash
git checkout $RELEASE_BRANCH
git status # Make sure there are no local changes
git pull --ff-only https://github.com/abonas/kubeclient $RELEASE_BRANCH
git log -n1
```

Last sanity check:
```bash
bundle install
bundle exec rake test rubocop
```

Create and push the tag:
```bash
gem tag --no-push
git push --tags --dry-run https://github.com/abonas/kubeclient  # Check for unexpected tags
git push --tags https://github.com/abonas/kubeclient
```

Release onto rubygems.org:
```bash
gem release
```