dnsimple 4.6.0 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. checksums.yaml +4 -4
  2. data/.dependabot/config.yml +9 -0
  3. data/.rubocop.yml +2 -0
  4. data/.rubocop_dnsimple.yml +64 -40
  5. data/.travis.yml +1 -3
  6. data/CHANGELOG.md +34 -26
  7. data/CONTRIBUTING.md +37 -0
  8. data/Gemfile +4 -1
  9. data/LICENSE.txt +1 -1
  10. data/README.md +8 -5
  11. data/dnsimple.gemspec +3 -3
  12. data/lib/dnsimple.rb +2 -0
  13. data/lib/dnsimple/client.rb +12 -10
  14. data/lib/dnsimple/client/accounts.rb +2 -0
  15. data/lib/dnsimple/client/certificates.rb +2 -0
  16. data/lib/dnsimple/client/clients.rb +2 -0
  17. data/lib/dnsimple/client/contacts.rb +2 -0
  18. data/lib/dnsimple/client/domains.rb +2 -0
  19. data/lib/dnsimple/client/domains_collaborators.rb +2 -0
  20. data/lib/dnsimple/client/domains_delegation_signer_records.rb +2 -0
  21. data/lib/dnsimple/client/domains_dnssec.rb +2 -0
  22. data/lib/dnsimple/client/domains_email_forwards.rb +2 -0
  23. data/lib/dnsimple/client/domains_pushes.rb +2 -0
  24. data/lib/dnsimple/client/identity.rb +2 -0
  25. data/lib/dnsimple/client/oauth.rb +2 -0
  26. data/lib/dnsimple/client/registrar.rb +46 -0
  27. data/lib/dnsimple/client/registrar_auto_renewal.rb +2 -0
  28. data/lib/dnsimple/client/registrar_delegation.rb +2 -0
  29. data/lib/dnsimple/client/registrar_whois_privacy.rb +2 -0
  30. data/lib/dnsimple/client/services.rb +2 -0
  31. data/lib/dnsimple/client/services_domains.rb +2 -0
  32. data/lib/dnsimple/client/templates.rb +2 -0
  33. data/lib/dnsimple/client/templates_domains.rb +2 -0
  34. data/lib/dnsimple/client/templates_records.rb +2 -0
  35. data/lib/dnsimple/client/tlds.rb +2 -0
  36. data/lib/dnsimple/client/vanity_name_servers.rb +12 -10
  37. data/lib/dnsimple/client/webhooks.rb +2 -0
  38. data/lib/dnsimple/client/zones.rb +2 -0
  39. data/lib/dnsimple/client/zones_distributions.rb +2 -0
  40. data/lib/dnsimple/client/zones_records.rb +2 -0
  41. data/lib/dnsimple/default.rb +11 -9
  42. data/lib/dnsimple/error.rb +2 -0
  43. data/lib/dnsimple/extra.rb +2 -0
  44. data/lib/dnsimple/options.rb +2 -0
  45. data/lib/dnsimple/response.rb +6 -4
  46. data/lib/dnsimple/struct.rb +2 -0
  47. data/lib/dnsimple/struct/account.rb +2 -0
  48. data/lib/dnsimple/struct/certificate.rb +2 -0
  49. data/lib/dnsimple/struct/certificate_bundle.rb +5 -0
  50. data/lib/dnsimple/struct/certificate_purchase.rb +2 -0
  51. data/lib/dnsimple/struct/certificate_renewal.rb +2 -0
  52. data/lib/dnsimple/struct/collaborator.rb +2 -0
  53. data/lib/dnsimple/struct/contact.rb +2 -0
  54. data/lib/dnsimple/struct/delegation_signer_record.rb +2 -0
  55. data/lib/dnsimple/struct/dnssec.rb +2 -0
  56. data/lib/dnsimple/struct/domain.rb +2 -0
  57. data/lib/dnsimple/struct/domain_check.rb +2 -0
  58. data/lib/dnsimple/struct/domain_premium_price.rb +2 -0
  59. data/lib/dnsimple/struct/domain_push.rb +2 -0
  60. data/lib/dnsimple/struct/domain_registration.rb +2 -0
  61. data/lib/dnsimple/struct/domain_renewal.rb +2 -0
  62. data/lib/dnsimple/struct/domain_transfer.rb +5 -0
  63. data/lib/dnsimple/struct/email_forward.rb +2 -0
  64. data/lib/dnsimple/struct/extended_attribute.rb +2 -0
  65. data/lib/dnsimple/struct/oauth_token.rb +2 -0
  66. data/lib/dnsimple/struct/service.rb +2 -0
  67. data/lib/dnsimple/struct/template.rb +2 -0
  68. data/lib/dnsimple/struct/template_record.rb +2 -0
  69. data/lib/dnsimple/struct/tld.rb +2 -0
  70. data/lib/dnsimple/struct/user.rb +2 -0
  71. data/lib/dnsimple/struct/vanity_name_server.rb +2 -0
  72. data/lib/dnsimple/struct/webhook.rb +2 -0
  73. data/lib/dnsimple/struct/whoami.rb +2 -0
  74. data/lib/dnsimple/struct/whois_privacy.rb +2 -0
  75. data/lib/dnsimple/struct/whois_privacy_renewal.rb +2 -0
  76. data/lib/dnsimple/struct/zone.rb +2 -0
  77. data/lib/dnsimple/struct/zone_distribution.rb +2 -0
  78. data/lib/dnsimple/struct/zone_file.rb +2 -0
  79. data/lib/dnsimple/struct/zone_record.rb +2 -0
  80. data/lib/dnsimple/version.rb +3 -1
  81. data/spec/dnsimple/client/accounts_spec.rb +2 -0
  82. data/spec/dnsimple/client/certificates_spec.rb +2 -0
  83. data/spec/dnsimple/client/client_service_spec.rb +2 -0
  84. data/spec/dnsimple/client/contacts_spec.rb +2 -0
  85. data/spec/dnsimple/client/domains_collaborators_spec.rb +2 -0
  86. data/spec/dnsimple/client/domains_delegation_signer_records_spec.rb +2 -0
  87. data/spec/dnsimple/client/domains_dnssec_spec.rb +2 -0
  88. data/spec/dnsimple/client/domains_email_forwards_spec.rb +2 -0
  89. data/spec/dnsimple/client/domains_pushes_spec.rb +2 -0
  90. data/spec/dnsimple/client/domains_spec.rb +2 -0
  91. data/spec/dnsimple/client/identity_spec.rb +2 -0
  92. data/spec/dnsimple/client/oauth_spec.rb +2 -0
  93. data/spec/dnsimple/client/registrar_auto_renewal_spec.rb +2 -0
  94. data/spec/dnsimple/client/registrar_delegation_spec.rb +2 -0
  95. data/spec/dnsimple/client/registrar_spec.rb +69 -0
  96. data/spec/dnsimple/client/registrar_whois_privacy_spec.rb +2 -0
  97. data/spec/dnsimple/client/services_domains_spec.rb +2 -0
  98. data/spec/dnsimple/client/services_spec.rb +2 -0
  99. data/spec/dnsimple/client/templates_domains_spec.rb +2 -0
  100. data/spec/dnsimple/client/templates_records_spec.rb +2 -0
  101. data/spec/dnsimple/client/templates_spec.rb +2 -0
  102. data/spec/dnsimple/client/tlds_spec.rb +2 -0
  103. data/spec/dnsimple/client/vanity_name_servers_spec.rb +2 -0
  104. data/spec/dnsimple/client/webhooks_spec.rb +2 -0
  105. data/spec/dnsimple/client/zones_distributions_spec.rb +2 -0
  106. data/spec/dnsimple/client/zones_records_spec.rb +2 -0
  107. data/spec/dnsimple/client/zones_spec.rb +2 -0
  108. data/spec/dnsimple/client_spec.rb +3 -1
  109. data/spec/dnsimple/extra_spec.rb +2 -0
  110. data/spec/dnsimple/options/base_spec.rb +2 -0
  111. data/spec/dnsimple/options/list_options_spec.rb +2 -0
  112. data/spec/fixtures.http/cancelDomainTransfer/success.http +30 -0
  113. data/spec/fixtures.http/getDomainTransfer/success.http +30 -0
  114. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-duplicated-order.http +1 -1
  115. data/spec/fixtures.http/renewWhoisPrivacy/whois-privacy-not-found.http +1 -1
  116. data/spec/spec_helper.rb +3 -1
  117. data/spec/support/helpers.rb +2 -0
  118. data/spec/support/webmock.rb +2 -0
  119. metadata +11 -13
  120. data/.ruby-gemset +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ccd26ac738f667185d2005071eb215045dcce8bdcaaf48ba5b1b31f9187bdcf
4
- data.tar.gz: a8474bcd18275b39465931d06230fd07434a839a39dbfeead1e130289929f7a6
3
+ metadata.gz: ab6c994d5800e178144ce47b8be27dfb7b7e9414457b133fda7ad76eebac7236
4
+ data.tar.gz: '08f39ba56093182666f5bf838c9cc5e2c3337971de7691c2e34670bbdba6f91d'
5
5
  SHA512:
6
- metadata.gz: bb079ccceb1587b61ce3d0660a9963dad812d01da3634d0581dc80095fb2157fc86a191d711590bfb8d85c48c9c47e47a6a30b7e6e14c107b50195894e552c67
7
- data.tar.gz: e7a5735a36b36dca5dee66104d90c0bbdb83afa878a9e5423bcac5b46b965a5324e16ad6380cb9f8a51ee91d3df8baa3bff47633c750b9ce529d0a9ed62c0e78
6
+ metadata.gz: a77416c5e9a16f301f0819bed9e15e7555ab85a1461fa35a7b761f803a68c362a44da42cffa50cd29ae720cbec6d7be045c45cda2438cbfb71131cf7ea3ba858
7
+ data.tar.gz: 7180a39ea3751190263096a7ac0bf845b04f5518cc768a2debc4f4d054c6a0310f1aef82aebfd13f8d23761b93d56ff01b16bf9df24f1c0265a73741970cb820
@@ -0,0 +1,9 @@
1
+ version: 1
2
+ update_configs:
3
+ - package_manager: "ruby:bundler"
4
+ directory: "/"
5
+ update_schedule: "daily"
6
+ default_labels:
7
+ - "task"
8
+ - "dependencies"
9
+ - "backlog-dependencies"
@@ -2,6 +2,8 @@ inherit_from:
2
2
  - .rubocop_todo.yml
3
3
  - .rubocop_dnsimple.yml
4
4
 
5
+ require: rubocop-performance
6
+
5
7
  AllCops:
6
8
  Exclude:
7
9
  - '*.gemspec'
@@ -19,6 +19,10 @@ Bundler/OrderedGems:
19
19
  Layout/AccessModifierIndentation:
20
20
  Enabled: false
21
21
 
22
+ # It causes weird aligments, especially for specs.
23
+ Layout/BlockEndNewline:
24
+ Enabled: false
25
+
22
26
  # Generally, the keyword style uses a lot of space. This is particularly true when
23
27
  # you use case/if statements, in combination with a long-name variable.
24
28
  #
@@ -33,7 +37,15 @@ Layout/EndAlignment:
33
37
  EnforcedStyleAlignWith: variable
34
38
 
35
39
  # [codesmell]
36
- Lint/HandleExceptions:
40
+ Layout/LineLength:
41
+ Enabled: false
42
+ Exclude:
43
+ - 'spec/**/*_spec.rb'
44
+ - 'test/**/*_test.rb'
45
+ Max: 100
46
+
47
+ # [codesmell]
48
+ Lint/SuppressedException:
37
49
  Enabled: false
38
50
 
39
51
  # [codesmell]
@@ -61,14 +73,6 @@ Metrics/ClassLength:
61
73
  - 'spec/**/*_spec.rb'
62
74
  - 'test/**/*_test.rb'
63
75
 
64
- # [codesmell]
65
- Metrics/LineLength:
66
- Enabled: false
67
- Exclude:
68
- - 'spec/**/*_spec.rb'
69
- - 'test/**/*_test.rb'
70
- Max: 100
71
-
72
76
  # [codesmell]
73
77
  Metrics/MethodLength:
74
78
  Enabled: false
@@ -105,17 +109,16 @@ Naming/MemoizedInstanceVariableName:
105
109
  Naming/PredicateName:
106
110
  Enabled: false
107
111
 
112
+ # The team agreed decided to use exception
113
+ Naming/RescuedExceptionsVariableName:
114
+ PreferredName: 'exception'
115
+
108
116
  # This cop triggers several false positives that make sense in our domain model.
109
117
  # For instance, ip is considered an uncommunicative parameter name:
110
118
  #
111
119
  # ipv4_to_arpa_name(ip)
112
120
  #
113
- Naming/UncommunicativeMethodParamName:
114
- Enabled: false
115
-
116
- # [codesmell]
117
- # I don't really get the point of this cop.
118
- Performance/RedundantMerge:
121
+ Naming/MethodParameterName:
119
122
  Enabled: false
120
123
 
121
124
  # This cop returns false positive violations (as of rubocop 0.57.0)
@@ -138,12 +141,6 @@ Style/BlockDelimiters:
138
141
  IgnoredMethods:
139
142
  - expect
140
143
 
141
- # I'm not sure we should enforce a style,
142
- # but if we do, context_dependent offers a good compromise on readability.
143
- Style/BracesAroundHashParameters:
144
- Enabled: false
145
- EnforcedStyle: context_dependent
146
-
147
144
  # Warn on empty else.
148
145
  Style/EmptyElse:
149
146
  EnforcedStyle: empty
@@ -164,20 +161,26 @@ Style/FormatString:
164
161
  Style/FormatStringToken:
165
162
  Enabled: false
166
163
 
167
- # We don't support frozen strings.
168
- # This is an experimental feature and we don't know if it will be shipped with
169
- # Ruby 3.0 or not.
170
- Style/FrozenStringLiteralComment:
171
- Enabled: false
172
-
173
164
  # Prefer the latest Hash syntax
174
165
  Style/HashSyntax:
175
166
  Exclude:
176
- # But Rakefiles generally have some definition like
167
+ # Rakefiles generally have definitions like
177
168
  # :default => :test
178
169
  # that looks nicer with the old rocket syntax.
179
170
  - 'Rakefile'
180
171
 
172
+ # Enforces usage of Hash#each_key and Hash#each_value (vs. Hash#keys.each and Hash#values.each).
173
+ Style/HashEachMethods:
174
+ Enabled: true
175
+
176
+ # Enforce the use of Hash#TransformKeys introduced in Ruby 2.5 to transform Hash keys.
177
+ Style/HashTransformKeys:
178
+ Enabled: true
179
+
180
+ # Enforce the use of Hash#TransformValues introduced in Ruby 2.5 to transform Hash values.
181
+ Style/HashTransformValues:
182
+ Enabled: true
183
+
181
184
  # We want to be able to decide when to use one-line if/unless modifiers.
182
185
  Style/IfUnlessModifier:
183
186
  Enabled: false
@@ -188,7 +191,7 @@ Style/IfInsideElse:
188
191
  Enabled: false
189
192
 
190
193
  # module_function doesn't respect the visibility of the methods,
191
- # and doesn't work well when the module contain both public/private methods.
194
+ # and doesn't work well when the module contains both public/private methods.
192
195
  Style/ModuleFunction:
193
196
  Enabled: false
194
197
 
@@ -343,18 +346,16 @@ Layout/EmptyLineBetweenDefs:
343
346
  Enabled: false
344
347
 
345
348
  # Multi-line differs from standard indentation, they are indented twice.
346
- Layout/FirstParameterIndentation:
349
+ Layout/FirstArgumentIndentation:
347
350
  IndentationWidth: 4
348
351
 
349
- # Array indentation should be considered like MultilineMethodCallIndentation indentation
350
- # and use 4 spaces instead of 2.
351
- Layout/IndentArray:
352
- IndentationWidth: 4
352
+ # Array indentation should be consistent with method/variable definition.
353
+ Layout/FirstArrayElementIndentation:
354
+ EnforcedStyle: consistent
353
355
 
354
- # Hash indentation should be considered like MultilineMethodCallIndentation indentation
355
- # and use 4 spaces instead of 2.
356
- Layout/IndentHash:
357
- IndentationWidth: 4
356
+ # Hash indentation should be consistent with method/variable definition.
357
+ Layout/FirstHashElementIndentation:
358
+ EnforcedStyle: consistent
358
359
 
359
360
  # Multi-line differs from standard indentation, they are indented twice.
360
361
  Layout/MultilineMethodCallIndentation:
@@ -370,9 +371,32 @@ Layout/MultilineOperationIndentation:
370
371
  #
371
372
  # %w( foo bar )
372
373
  #
373
- # looks better to me than
374
+ # looks better than:
374
375
  #
375
- # %w( foo bar )
376
+ # %w(foo bar)
376
377
  #
377
378
  Layout/SpaceInsidePercentLiteralDelimiters:
378
379
  Enabled: false
380
+
381
+
382
+ # New cops
383
+ # We'll remove them once they become defaults.
384
+ # See https://docs.rubocop.org/en/latest/versioning/
385
+
386
+ Layout/SpaceAroundMethodCallOperator:
387
+ Enabled: true
388
+
389
+ Lint/RaiseException:
390
+ Enabled: true
391
+
392
+ Lint/StructNewOverride:
393
+ Enabled: true
394
+
395
+ Style/ExponentialNotation:
396
+ Enabled: true
397
+
398
+ Layout/EmptyLinesAroundAttributeAccessor:
399
+ Enabled: true
400
+
401
+ Style/SlicingWithRange:
402
+ Enabled: true
@@ -1,12 +1,10 @@
1
1
  language: ruby
2
2
 
3
3
  rvm:
4
- - 2.1
5
- - 2.2
6
- - 2.3
7
4
  - 2.4
8
5
  - 2.5
9
6
  - 2.6
7
+ - 2.7
10
8
 
11
9
  env:
12
10
  - COVERALL=1
@@ -3,12 +3,20 @@
3
3
  This project uses [Semantic Versioning 2.0.0](http://semver.org/).
4
4
 
5
5
 
6
- ### 4.6.0
6
+ ## 5.0.0
7
+
8
+ - CHANGED: Minimum Ruby version is now 2.4
9
+ - CHANGED: User-agent format has been changed to prepend custom token before default token.
10
+ - NEW: Added `registrar.get_domain_transfer` to retrieve a domain transfer. (dnsimple/dnsimple-ruby#180)
11
+ - NEW: Added `registrar.cancel_domain_transfer` to cancel an in progress domain transfer. (dnsimple/dnsimple-ruby#180)
12
+ - NEW: Added `DomainTransfer#status_description` attribute to identify the failure reason of a transfer. (dnsimple/dnsimple-ruby#180).
13
+
14
+ ## 4.6.0
7
15
 
8
16
  - NEW: Added WHOIS privacy renewal (GH-171)
9
17
 
10
18
 
11
- ### 4.5.0
19
+ ## 4.5.0
12
20
 
13
21
  - NEW: Added zone distribution and zone record distribution (GH-160)
14
22
 
@@ -19,26 +27,26 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
19
27
  - REMOVED: Removed extra alias (GH-168). You should use `dnsimple.foo.list_foo` instead of `dnsimple.foo.list`. Same for create/update. The change ensures consistency across the various clients. We prefer fully qualified methods.
20
28
 
21
29
 
22
- #### 4.4.0
30
+ ## 4.4.0
23
31
 
24
32
  - NEW: Added Let's Encrypt certificate methods (GH-159)
25
33
 
26
34
  - REMOVED: Removed premium_price attribute from registrar order responses (GH-163). Please do not rely on that attribute, as it returned an incorrect value. The attribute is going to be removed, and the API now returns a null value.
27
35
 
28
36
 
29
- #### 4.3.0
37
+ ## 4.3.0
30
38
 
31
39
  - NEW: Added `certificates.all_certificates` (dnsimple/dnsimple-ruby#155)
32
40
 
33
41
  - CHANGED: Updated registrar URLs (dnsimple/dnsimple-ruby#153)
34
42
 
35
43
 
36
- #### 4.2.0
44
+ ## 4.2.0
37
45
 
38
46
  - NEW: Added DNSSEC support support (dnsimple/dnsimple-ruby#152)
39
47
 
40
48
 
41
- #### 4.1.0
49
+ ## 4.1.0
42
50
 
43
51
  - NEW: Added domain premium price support (dnsimple/dnsimple-ruby#143)
44
52
 
@@ -46,7 +54,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
46
54
  - CHANGED: Normalize unique string identifiers to SID (dnsimple/dnsimple-ruby#141)
47
55
 
48
56
 
49
- #### 4.0.0
57
+ ## 4.0.0
50
58
 
51
59
  - NEW: Added domain collaborators support (GH-137).
52
60
  - NEW: Added regions support for zone records (GH-135, GH-139).
@@ -63,7 +71,7 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
63
71
  - CHANGED: Renamed registrar `auth_info` into `auth_code` (GH-136).
64
72
 
65
73
 
66
- #### 3.1.0
74
+ ## 3.1.0
67
75
 
68
76
  - NEW: Added accounts support (GH-113).
69
77
  - NEW: Added sorting and filtering support (GH-112).
@@ -77,9 +85,9 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
77
85
  - REMOVED: Removed support for wildcard accounts (GH-107).
78
86
 
79
87
 
80
- #### 3.0.0
88
+ ## 3.0.0
81
89
 
82
- ##### stable
90
+ ### stable
83
91
 
84
92
  - FIXED: The client was using the wrong key to store the ContactsService which could cause conflicts with the DomainsService.
85
93
 
@@ -93,13 +101,13 @@ This project uses [Semantic Versioning 2.0.0](http://semver.org/).
93
101
 
94
102
  - CHANGED: Error detection is now smarter. If the error is deserializable and contains a message, the message is attached to the exception (GH-94, GH-95, GH-100).
95
103
 
96
- ##### beta2
104
+ ### beta2
97
105
 
98
106
  - FIXED: `state` and `redirect_uri` are not properly passed in the request to exchang the code for an access token (GH-89, GH-90).
99
107
 
100
108
  - FIXED: Request body is not properly serialized to JSON, and the "Content-Type" header was omissed (GH-91).
101
109
 
102
- ##### beta1
110
+ ### beta1
103
111
 
104
112
  - CHANGED: Minimum Ruby version >= 2
105
113
 
@@ -109,15 +117,15 @@ The client has been completely redesigned to support the [API v2](https://develo
109
117
 
110
118
  Internal changes were made to match conventions adopted in other clients, such as the Go one and the Elixir one.
111
119
 
112
- #### 2.1.1
120
+ ## 2.1.1
113
121
 
114
122
  - FIXED: Paths may mistakenly be generated use \ on windows.
115
123
 
116
- #### 2.1.0
124
+ ## 2.1.0
117
125
 
118
126
  - NEW: Add the ability to set headers and pass extra connection params in each API method (GH-64)
119
127
 
120
- #### 2.0.0
128
+ ## 2.0.0
121
129
 
122
130
  **2.0.0.alpha**
123
131
 
@@ -129,7 +137,7 @@ Internal changes were made to match conventions adopted in other clients, such a
129
137
 
130
138
  - CHANGED: Drop 1.8.7, 1.9.2 support. Required Ruby >= 1.9.3.
131
139
 
132
- - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [aetrion/dnsimple-ruby-cli](https://github.com/aetrion/dnsimple-ruby-cli)
140
+ - CHANGED: This package no longer provides a CLI. The CLI has been extracted to [dnsimple-ruby-cli](https://github.com/dnsimple/dnsimple-ruby-cli)
133
141
 
134
142
  - CHANGED: Renamed the Gem from "dnsimple-ruby" to "dnsimple" (GH-23).
135
143
 
@@ -141,23 +149,23 @@ Internal changes were made to match conventions adopted in other clients, such a
141
149
 
142
150
  - FIXED: Fixed a bug where API token environment variables were not properly detected (GH-59, GH-62). Thanks @oguzbilgic and @rupurt.
143
151
 
144
- #### Release 1.7.1
152
+ ## Release 1.7.1
145
153
 
146
154
  - FIXED: Updated Certificate to match the serialized attributes (GH-53).
147
155
 
148
- #### Release 1.7.0
156
+ ## Release 1.7.0
149
157
 
150
158
  - NEW: Add support for Domain-based authentication (GH-40, GH-46). Thanks @dwradcliffe and @samsonasu.
151
159
 
152
- #### Release 1.6.0
160
+ ## Release 1.6.0
153
161
 
154
162
  - NEW: Add support for 2FA (GH-44)
155
163
 
156
- #### Release 1.5.5
164
+ ## Release 1.5.5
157
165
 
158
166
  - NEW: Add notice about the CLI moving to a new location
159
167
 
160
- #### Release 1.5.4
168
+ ## Release 1.5.4
161
169
 
162
170
  - NEW: Added domain#expires_on attribute (GH-34). Thanks @alkema
163
171
 
@@ -167,23 +175,23 @@ Internal changes were made to match conventions adopted in other clients, such a
167
175
 
168
176
  - CHANGED: User.me now uses the correct patch for API v1.
169
177
 
170
- #### Release 1.5.3
178
+ ## Release 1.5.3
171
179
 
172
180
  - FIXED: In some cases the client crashed with NoMethodError VERSION (GH-35).
173
181
 
174
- #### Release 1.5.2
182
+ ## Release 1.5.2
175
183
 
176
184
  - NEW: Provide a meaningful user-agent.
177
185
 
178
- #### Release 1.5.1
186
+ ## Release 1.5.1
179
187
 
180
188
  - FIXED: Invalid base URI.
181
189
 
182
- #### Release 1.5.0
190
+ ## Release 1.5.0
183
191
 
184
192
  - CHANGED: Added support for versioned API (GH-33)
185
193
 
186
- #### Release 1.4.0
194
+ ## Release 1.4.0
187
195
 
188
196
  - CHANGED: Normalized exception handling. No more RuntimeError.
189
197
  In case of request error, the client raises RequestError, RecordExists or RecodNotFound
@@ -24,6 +24,43 @@ bundle
24
24
  [Run the test suite](#testing) to check everything works as expected.
25
25
 
26
26
 
27
+ ## Releasing
28
+
29
+ The following instructions uses `$VERSION` as a placeholder, where `$VERSION` is a `MAJOR.MINOR.BUGFIX` release such as `1.2.0`.
30
+
31
+ 1. Set the version in `version.rb`:
32
+
33
+ ```ruby
34
+ VERSION = "$VERSION"
35
+ ```
36
+
37
+ 1. Run the test suite and ensure all the tests pass.
38
+
39
+ 1. Finalize the `## master` section in `CHANGELOG.md` assigning the version.
40
+
41
+ 1. Commit and push the changes
42
+
43
+ ```shell
44
+ git commit -a -m "Release $VERSION"
45
+ git push origin master
46
+ ```
47
+
48
+ 1. Wait for CI to complete.
49
+
50
+ 1. Create a signed tag.
51
+
52
+ ```shell
53
+ git tag -a v$VERSION -s -m "Release $VERSION"
54
+ git push origin --tags
55
+ ```
56
+
57
+ 1. Release to RubyGems.
58
+
59
+ ```shell
60
+ gem push pkg/<filename>
61
+ ```
62
+
63
+
27
64
  ## Testing
28
65
 
29
66
  To run the test suite: