dnsimple 4.6.0 → 5.0.0

Sign up to get free protection for your applications and to get access to all the features.
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: