Skip to content

Commit a64617f

Browse files
authored
Small script to update the version in gemspecs on release (#4)
Add a small script to update the version in gemspecs on release so that the release instructions don't have to involved manually opening up a file. The release on this one is complicated enough between the multiple gems that it should probably get a full script, but that'll be its own rabbit hole in testing. This should hold us over.
1 parent 06c9bea commit a64617f

File tree

2 files changed

+23
-8
lines changed

2 files changed

+23
-8
lines changed

docs/development.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,23 @@ $ bundle exec rspec spec
4242
$ open coverage/index.html
4343
```
4444

45-
## Publish a new gem
45+
## Publish gems
4646

4747
```shell
4848
git checkout master && git pull --rebase
49-
VERSION=v0.0.x
49+
export VERSION=v0.0.x
5050

51-
# update version in riverqueue.gemspec!!
51+
ruby scripts/update_gemspec_version.rb riverqueue.gemspec > riverqueue.gemspec
5252
gem build riverqueue.gemspec
53-
gem push riverqueue-$VERSION.gem
53+
gem push riverqueue-${"${VERSION}"/v/}.gem
5454

55-
# update version in drivers/riverqueue-activerecord.gemspec!!
55+
ruby scripts/update_gemspec_version.rb drivers/riverqueue-activerecord.gemspec > drivers/riverqueue-activerecord.gemspec
5656
pushd drivers/riverqueue-activerecord && gem build riverqueue-activerecord.gemspec && popd
57-
pushd drivers/riverqueue-activerecord && gem push riverqueue-activerecord-$VERSION.gem && popd
57+
pushd drivers/riverqueue-activerecord && gem push riverqueue-activerecord-${"${VERSION}"/v/}.gem && popd
5858

59-
# update version in drivers/riverqueue-sequel.gemspec!!
59+
ruby scripts/update_gemspec_version.rb drivers/riverqueue-sequel.gemspec > drivers/riverqueue-sequel.gemspec
6060
pushd drivers/riverqueue-sequel && gem build riverqueue-sequel.gemspec && popd
61-
pushd drivers/riverqueue-sequel && gem push riverqueue-sequel-$VERSION.gem && popd
61+
pushd drivers/riverqueue-sequel && gem push riverqueue-sequel-${"${VERSION}"/v/}.gem && popd
6262

6363
git tag $VERSION
6464
git push --tags

scripts/update_gemspec_version.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#
2+
# Updates the version in a gemspec file since doing it from the shell is a total
3+
# pain.
4+
#
5+
6+
file = ARGV[0] || abort("failure: need one argument, which is a gemspec filename")
7+
version = ENV["VERSION"] || abort("failure: need VERSION")
8+
9+
file_data = File.read(file)
10+
11+
updated_file_data = file_data.gsub(%r{^(\W+)s\.version = "0.2.0"$}, %(\\1s.version = "#{version}"))
12+
13+
abort("failure: nothing changed in file") if file_data == updated_file_data
14+
15+
puts updated_file_data

0 commit comments

Comments
 (0)