libddwaf 1.3.0.0.0 → 1.5.1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e8b78667a6dfc507d91c8336a177dd479ac79cb70bb4f1080d5ae6387205616f
4
- data.tar.gz: f587ef6e280ccb7d82acc6075e1db5c45760edf724b2c19323872f5061ef8807
3
+ metadata.gz: 99c7eacaabd1402caa1dfe588cde91cb3b8999bfaf0ee4a9edf2fb640ce3497a
4
+ data.tar.gz: 75c8f2ce68fabb48b931ce3fcaad2b9b6c1309d35585e7940e3e94f87e80c805
5
5
  SHA512:
6
- metadata.gz: 6294b519d6c4c0b79fabca6eae2d1495c312df079a5a54e6f30496715b722bd586fc281df70d04a0149c178984eb25ed563f98f7eedab207fc188d2ca88de889
7
- data.tar.gz: f8b10e577377dfe4ad813c991aca6dbe4eacf1abe518f002ee52194bd9749605f8968fad5d88a5f6c8305a081681580f187b640257b51c103ede8e7ce49b7ada
6
+ metadata.gz: c49aaccb9d5ab4b8e9ab386233db336b2235649b2b03a430ad9623970313ad659f4b9e3e92ef93792d23550c48a28c0e0c53f99459372d9f7a22f4409e0c75a3
7
+ data.tar.gz: 607212389e499b3a79aeb12c88de8220184d668247e0508b1816adbfb2e3d2f1e06de875f25d0ef6e403cd127657240c75a052ad29ecddd63a419bc9d81225df
@@ -0,0 +1,33 @@
1
+ name: Lint
2
+ on:
3
+ - push
4
+
5
+ jobs:
6
+ style-check:
7
+ name: Style check
8
+ runs-on: ubuntu-20.04
9
+ container:
10
+ image: ruby:3.1
11
+ steps:
12
+ - name: Checkout
13
+ uses: actions/checkout@v2
14
+ - name: Bundle
15
+ run: |
16
+ bundle install
17
+ - name: Run Rubocop
18
+ run: |
19
+ bundle exec rubocop -D
20
+ type-check:
21
+ name: Type check
22
+ runs-on: ubuntu-20.04
23
+ container:
24
+ image: ruby:3.1
25
+ steps:
26
+ - name: Checkout
27
+ uses: actions/checkout@v2
28
+ - name: Bundle
29
+ run: |
30
+ bundle install
31
+ - name: Run Steep
32
+ run: |
33
+ bundle exec steep check
@@ -22,7 +22,7 @@ jobs:
22
22
  - name: Bundle
23
23
  run: |
24
24
  bundle install
25
- - name: Build package
25
+ - name: Build gem
26
26
  run: |
27
27
  bundle exec rake build
28
28
  - name: Upload gem
@@ -37,16 +37,24 @@ jobs:
37
37
  include:
38
38
  - os: ubuntu-20.04
39
39
  cpu: x86_64
40
- platform: x86_64-linux
40
+ platform: x86_64-linux:llvm
41
+ artifact: x86_64-linux-llvm
41
42
  - os: ubuntu-20.04
42
43
  cpu: aarch64
43
- platform: aarch64-linux
44
- - os: macos-10.15
44
+ platform: aarch64-linux:llvm
45
+ artifact: aarch64-linux-llvm
46
+ - os: ubuntu-20.04
47
+ cpu: universal
48
+ platform: java
49
+ artifact: java
50
+ - os: macos-12
45
51
  cpu: x86_64
46
52
  platform: x86_64-darwin
47
- - os: macos-10.15
53
+ artifact: x86_64-darwin
54
+ - os: macos-12
48
55
  cpu: arm64
49
56
  platform: arm64-darwin
57
+ artifact: arm64-darwin
50
58
  name: Build package (${{ matrix.platform }})
51
59
  runs-on: ${{ matrix.os }}
52
60
  steps:
@@ -58,19 +66,13 @@ jobs:
58
66
  - name: Bundle
59
67
  run: |
60
68
  bundle install
61
- - name: Fetch binary library
62
- run: |
63
- bundle exec rake fetch[${{ matrix.platform }}]
64
- - name: Extract binary library
65
- run: |
66
- bundle exec rake extract[${{ matrix.platform }}]
67
- - name: Build package
69
+ - name: Build binary gem
68
70
  run: |
69
71
  bundle exec rake binary[${{ matrix.platform }}]
70
72
  - name: Upload gem
71
73
  uses: actions/upload-artifact@v2
72
74
  with:
73
- name: libddwaf-${{ matrix.platform }}-${{ github.run_id }}-${{ github.sha }}
75
+ name: libddwaf-${{ matrix.artifact }}-${{ github.run_id }}-${{ github.sha }}
74
76
  path: pkg
75
77
  test-ruby:
76
78
  needs: package-ruby
@@ -121,28 +123,39 @@ jobs:
121
123
  - os: ubuntu-20.04
122
124
  cpu: x86_64
123
125
  platform: x86_64-linux
126
+ artifact: x86_64-linux-llvm
124
127
  image: ruby:2.6
125
128
  qemu: amd64
126
129
  libc: gnu
127
130
  - os: ubuntu-20.04
128
131
  cpu: aarch64
129
132
  platform: aarch64-linux
133
+ artifact: aarch64-linux-llvm
130
134
  image: ruby:2.6
131
135
  qemu: aarch64
132
136
  libc: gnu
133
137
  - os: ubuntu-20.04
134
138
  cpu: x86_64
135
139
  platform: x86_64-linux
140
+ artifact: x86_64-linux-llvm
136
141
  image: ruby:2.6-alpine
137
142
  qemu: amd64
138
143
  libc: musl
139
144
  - os: ubuntu-20.04
140
145
  cpu: aarch64
141
146
  platform: aarch64-linux
147
+ artifact: aarch64-linux-llvm
142
148
  image: ruby:2.6-alpine
143
149
  qemu: aarch64
144
150
  libc: musl
145
- name: Test package (${{ matrix.platform }}-${{ matrix.libc }})
151
+ - os: ubuntu-20.04
152
+ cpu: x86_64
153
+ platform: java
154
+ artifact: java
155
+ image: jruby:9.3.0.0
156
+ qemu: amd64
157
+ libc: gnu
158
+ name: Test package (${{ matrix.platform }}, ${{ matrix.libc }}, ${{ matrix.cpu }})
146
159
  runs-on: ${{ matrix.os }}
147
160
  steps:
148
161
  - name: Enable ${{ matrix.qemu }} platform
@@ -160,7 +173,7 @@ jobs:
160
173
  echo "::set-output name=id::$(cat container_id)"
161
174
  - uses: actions/download-artifact@v2
162
175
  with:
163
- name: libddwaf-${{ matrix.platform }}-${{ github.run_id }}-${{ github.sha }}
176
+ name: libddwaf-${{ matrix.artifact }}-${{ github.run_id }}-${{ github.sha }}
164
177
  path: pkg
165
178
  - name: List artifact files
166
179
  run: find .
@@ -172,17 +185,17 @@ jobs:
172
185
  run: docker exec -w "${PWD}" ${{ steps.container.outputs.id }} gem install --verbose pkg/*.gem
173
186
  - name: Run smoke test
174
187
  run: |
175
- docker exec -w "${PWD}" ${{ steps.container.outputs.id }} ruby -r 'libddwaf' -e 'v = Datadog::AppSec::WAF::LibDDWAF::Version.new; Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version(v); p [v[:major], v[:minor], v[:patch]]'
188
+ docker exec -w "${PWD}" ${{ steps.container.outputs.id }} ruby -r 'libddwaf' -e 'p Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version'
176
189
  test-darwin:
177
190
  needs: package-binary
178
191
  strategy:
179
192
  fail-fast: false
180
193
  matrix:
181
194
  include:
182
- - os: macos-10.15
195
+ - os: macos-12
183
196
  cpu: x86_64
184
197
  platform: x86_64-darwin
185
- # - os: macos-11.0
198
+ # - os: macos-12
186
199
  # cpu: arm64
187
200
  # platform: arm64-darwin
188
201
  name: Test package (${{ matrix.platform }})
@@ -199,4 +212,4 @@ jobs:
199
212
  run: gem install --verbose pkg/*.gem
200
213
  - name: Run smoke test
201
214
  run: |
202
- ruby -r 'libddwaf' -e 'v = Datadog::AppSec::WAF::LibDDWAF::Version.new; Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version(v); p [v[:major], v[:minor], v[:patch]]'
215
+ ruby -r 'libddwaf' -e 'p Datadog::AppSec::WAF::LibDDWAF.ddwaf_get_version'
@@ -137,21 +137,21 @@ jobs:
137
137
  # TODO: jruby images have no sudo so apt-get can't get a lock
138
138
  # - os: ubuntu-20.04
139
139
  # cpu: x86_64
140
- # platform: x86_64-linux
141
- # image: jruby:9.3
140
+ # platform: x86_64-linux-gnu
141
+ # image: jruby:9.3.0.0
142
142
  # qemu: amd64
143
143
  # libc: gnu
144
144
  # - os: ubuntu-20.04
145
145
  # cpu: x86_64
146
- # platform: x86_64-linux
147
- # image: jruby:9.2
146
+ # platform: x86_64-linux-gnu
147
+ # image: jruby:9.2.8.0
148
148
  # qemu: amd64
149
149
  # libc: gnu
150
150
  # - os: ubuntu-20.04
151
151
  # cpu: x86_64
152
- # platform: x86_64-linux
153
- # image: jruby:9.1
154
- # qemu: amd64
152
+ # platform: aarch64-linux-gnu
153
+ # image: jruby:9.3.4.0
154
+ # qemu: arm64
155
155
  # libc: gnu
156
156
  name: Test (${{ matrix.image }}, ${{ matrix.cpu }})
157
157
  runs-on: ${{ matrix.os }}
@@ -196,13 +196,10 @@ jobs:
196
196
  fail-fast: false
197
197
  matrix:
198
198
  include:
199
- - os: macos-10.15
200
- cpu: x86_64
201
- platform: x86_64-darwin
202
- - os: macos-11.0
199
+ - os: macos-12
203
200
  cpu: x86_64
204
201
  platform: x86_64-darwin
205
- # - os: macos-11.0
202
+ # - os: macos-12
206
203
  # cpu: arm64
207
204
  # platform: arm64-darwin
208
205
  name: Test (${{ matrix.os }} ${{ matrix.cpu }})
data/CHANGELOG.md ADDED
@@ -0,0 +1,79 @@
1
+ # 2023-02-01 v1.5.1.0.1
2
+
3
+ - Fix incorrect size in input string limit
4
+ - Fix object freeing on `update_rule_data` and `toggle_rules`
5
+
6
+ # 2022-10-04 v1.5.1.0.0
7
+
8
+ - Update to libddwaf 1.5.1
9
+ - Add live rule data update API
10
+ - Add live rule toggle API
11
+ - Add libddwaf boolean type support
12
+ - Add Ruby to libddwaf object conversion limits
13
+ - Add Ruby to libddwaf object converter optional coercion of scalars to string
14
+ - Add static type checking via RBS+Steep
15
+ - Change version to return a string
16
+ - Change free function to be passed as config instead of context init argument
17
+ - Change result to include action list
18
+ - Change return code from action to status
19
+ - Change handle and context freeing model from GC-based to explicit
20
+ - Fix double-free upon finalization of retained C objects
21
+ - Fix context crash by retaining necessary C objects
22
+
23
+ # 2022-05-20 v1.3.0.2.0
24
+
25
+ - Fix multibyte string handling
26
+ - Support JRuby
27
+
28
+ # 2022-04-29 v1.3.0.1.0
29
+
30
+ Promotion of v1.3.0.1.0.beta1 to stable
31
+
32
+ # 2022-04-25 v1.3.0.1.0.beta1
33
+
34
+ - Add obfuscator configuration
35
+ - Add nested object limit configuration
36
+ - Add report ruleset information
37
+
38
+ # 2022-04-29 v1.3.0.0.0
39
+
40
+ - Promote v1.3.0.0.0.beta1 to stable
41
+
42
+ # 2022-04-20 v1.3.0.0.0.beta1
43
+
44
+ - Update to libddwaf 1.3.0
45
+
46
+ # 2022-03-18 v1.2.1.0.0.beta1
47
+
48
+ - Update to libddwaf 1.2.1
49
+ - Fix incorrect types for a few binding functions
50
+
51
+ # 2022-03-04 v1.0.14.2.1.beta1
52
+
53
+ - Fix incorrect return code
54
+ - Fix passing nil in libddwaf object containers
55
+
56
+ # 2022-02-07 v1.0.14.2.0.beta1
57
+
58
+ - Change Datadog::Security to Datadog::AppSec
59
+
60
+ # 2022-02-01 v1.0.14.1.0.beta2
61
+
62
+ - Add support for Ruby 3.1
63
+
64
+ # 2021-12-14 v1.0.14.1.0.beta1
65
+
66
+ - Fix sequential runs on a single context by retaining C input data objects
67
+
68
+ # 2021-11-24 v1.0.14.0.0.beta1
69
+
70
+ - Update to libddwaf 1.0.14
71
+
72
+ # 2021-11-24 v1.0.13.0.0.beta1
73
+
74
+ - Add ruby platform fallback for unsupported platforms
75
+ - Update to libddwaf 1.0.13
76
+
77
+ # 2021-10-13 v1.0.12.0.0.beta1
78
+
79
+ - Initial release
data/README.md CHANGED
@@ -4,3 +4,121 @@
4
4
 
5
5
  For the libddwaf implementation, see this repository:
6
6
  - [``libddwaf``: libddwaf](https://github.com/DataDog/libddwaf.git)
7
+
8
+
9
+
10
+ ## Rake tasks
11
+
12
+ ### Outline
13
+
14
+ A typical workflow is as follows:
15
+
16
+ ```
17
+ rake fetch # fetch prebuilt libddwaf binaries tarball in vendor/libddwaf
18
+ rake extract # extract downloaded tarball in vendor/libddwaf
19
+ rake spec # run rspec
20
+ rake binary # build the gem
21
+ ```
22
+
23
+ Note that each depends on the previous one, but `fetch` and `extract` are lazy, which proves useful to produce manual builds.
24
+
25
+ ### Platform selection
26
+
27
+ By default the above will automatically use the local Ruby platform.
28
+
29
+ Since libddwaf binary builds are available upstream, it's possible to build gems for any platform on any other platform. To that end `fetch`, `extract`, and `binary` can take an argument to specify the Ruby platform for which these operations should apply:
30
+
31
+ ```
32
+ rake fetch[x86_64-linux-musl]
33
+ rake extract[x86_64-linux-musl]
34
+ rake binary[x86_64-linux-musl]
35
+ ```
36
+
37
+ Of course you can't force the platform for `rspec` since that requires running code; see the Docker section below for ways to achieve that.
38
+
39
+ Note that zsh gives special meaning to brackets, therefore you may need to quote the argument:
40
+
41
+ ```
42
+ rake 'fetch[x86_64-linux-musl]'
43
+ ```
44
+
45
+ Available platforms are:
46
+
47
+ ```
48
+ x86_64-linux-musl # Alpine build: targets musl-based Linux
49
+ x86_64-linux-gnu # Debian build: targets glibc-based Linux
50
+ x86_64-linux # Portable build: targets multiple linux libc
51
+ x86_64-darwin # Darwin build: targets macOS
52
+ aarch64-linux-musl # Same as above, for ARMv8
53
+ aarch64-linux-gnu # Same as above, for ARMv8
54
+ aarch64-linux # Same as above, for ARMv8
55
+ arm64-darwin # Same as above, for Apple Silicon
56
+ java # JRuby build, universal
57
+ ```
58
+
59
+ Note: since it is not (yet) possible to package gems for the `java` Ruby platform any other way than `java`, it has to package all the native architectures.
60
+
61
+ In addition, options can be specified for the portable build:
62
+
63
+ ```
64
+ rake binary[x86_64-linux:gnu+musl] # Combined build: combine musl and glibc builds, selecting one at runtime
65
+ rake binary[x86_64-linux:llvm] # Hybrid build: linked to llvm static libs and built against a musl sysroot
66
+ ```
67
+
68
+ See upstream libddwaf for details about the [hybrid portable build](https://github.com/DataDog/libddwaf/blob/master/docker/libddwaf/README.md).
69
+
70
+ ## Testing with Docker
71
+
72
+ Unless using Docker for Mac, remember to enable foreign CPU emulation via QEMU:
73
+
74
+ ```
75
+ # aarch64 on x86_64 hardware
76
+ docker run --privileged --rm tonistiigi/binfmt --install arm64
77
+ # x86_64 on aarch64 hardware
78
+ docker run --privileged --rm tonistiigi/binfmt --install amd64
79
+ ```
80
+
81
+ Then you can substitute e.g `--platform linux/x86_64` with `--platform linux/aarch64` below.
82
+
83
+ ### GNU (Debian)
84
+
85
+ ```
86
+ # this is too old for aarch64
87
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.1 sh -c 'rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
88
+ # these are fine for aarch64
89
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.2 sh -c 'rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
90
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.3 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
91
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.4 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
92
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.5 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
93
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.6 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
94
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.7 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
95
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.0 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
96
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.1 sh -c 'rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
97
+ ```
98
+
99
+ ### musl (Alpine)
100
+
101
+ ```
102
+ # these are too old for aarch64
103
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.1-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
104
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.2-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler -v "~> 1.17" && bundle install && bundle exec rake spec'
105
+ # these are fine for aarch64
106
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.3-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
107
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.4-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
108
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.5-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
109
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.6-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
110
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:2.7-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
111
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.0-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
112
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.1-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
113
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" ruby:3.1-alpine sh -c 'apk update && apk add build-base git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
114
+ ```
115
+
116
+ ### JRuby
117
+
118
+ ```
119
+ # these are too old for aarch64
120
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" jruby:9.2.8.0 sh -c 'apt-get update && apt-get install -y build-essential git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
121
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" jruby:9.3.0.0 sh -c 'apt-get update && apt-get install -y build-essential git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
122
+ # this is fine for aarch64
123
+ docker run --rm -it --platform linux/x86_64 -v "${PWD}":"${PWD}" -w "${PWD}" jruby:9.3.4.0 sh -c 'apt-get update && apt-get install -y build-essential git && rm -fv Gemfile.lock && gem install bundler:2.2.22 && bundle install && bundle exec rake spec'
124
+ ```
data/Steepfile ADDED
@@ -0,0 +1,22 @@
1
+ # D = Steep::Diagnostic
2
+
3
+ target :lib do
4
+ signature "sig"
5
+
6
+ check "lib"
7
+ library "rubygems"
8
+ library "logger"
9
+ library "monitor" # needed by logger
10
+ library "json"
11
+
12
+ repo_path "vendor/rbs"
13
+ library "ffi"
14
+ library "jruby"
15
+ library "gem"
16
+
17
+ # # configure_code_diagnostics(D::Ruby.strict) # `strict` diagnostics setting
18
+ # # configure_code_diagnostics(D::Ruby.lenient) # `lenient` diagnostics setting
19
+ # # configure_code_diagnostics do |hash| # You can setup everything yourself
20
+ # # hash[D::Ruby::NoMethod] = :information
21
+ # # end
22
+ end
@@ -2,8 +2,8 @@ module Datadog
2
2
  module AppSec
3
3
  module WAF
4
4
  module VERSION
5
- BASE_STRING = '1.3.0'
6
- STRING = "#{BASE_STRING}.0.0"
5
+ BASE_STRING = '1.5.1'
6
+ STRING = "#{BASE_STRING}.0.1"
7
7
  MINIMUM_RUBY_VERSION = '2.1'
8
8
  end
9
9
  end