Skip to content

Latest commit

 

History

History
539 lines (354 loc) · 10.8 KB

CHANGELOG.md

File metadata and controls

539 lines (354 loc) · 10.8 KB

Changelog

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[1.7.4] - 2024-07-16

Updated

  • Updated gem development dependencies
  • Updated rubocop/codeclimate configs
  • Updated gem version

[1.7.3] - 2024-06-27

Updated

  • Updated gem runtime/development dependencies
  • Updated gem version

[1.7.2] - 2024-05-13

Updated

  • Updated gem runtime/development dependencies
  • Updated gem version

[1.7.1] - 2024-04-21

Updated

  • Updated gem development dependencies
  • Updated gem version

[1.7.0] - 2024-04-18

Added

  • Added ability to interact with DNS message question/answer context. Thanks @mroach for feature suggestion and PR

Updated

  • Updated gem documentation
  • Updated gem version

[1.6.2] - 2024-01-31

Added

  • Added and tested Ruby 3.3.x support

Updated

  • Updated gemspecs
  • Updated gem version

[1.6.1] - 2024-01-07

Updated

  • Updated gemspecs
  • Updated gem version
  • Updated gem documentation

[1.6.0] - 2024-01-05

Added

  • Added ability to mock SRV records. Thanks @Siphonay for feature suggestion

Updated

  • Updated gem version
  • Updated gem documentation

[1.5.18] - 2024-01-03

Updated

  • Updated gemspec

[1.5.17] - 2024-01-01

Updated

  • Updated gemspecs
  • Updated gem version
  • Updated license

[1.5.16] - 2023-10-05

Updated

  • Updated gemspecs
  • Updated gem version

[1.5.15] - 2023-01-11

Added

  • Added and tested Ruby 3.2.x support
  • Added changeloglint

Updated

  • Updated CircleCI config
  • Updated lefthook/codeclimate/simplecov/pry configs
  • Updated gem deploy flow (tagging new release on master merge commit)
  • Updated gem version, license

[1.5.14] - 2022-12-11

Added

Fixed

  • Fixed typos in project's codebase
  • Fixed new project's linter issues

Updated

  • Updated CircleCI config
  • Updated lefthook linters aggregator config
  • Updated releasing script, gemspecs
  • Updated gem version

[1.5.13] - 2022-12-01

Updated

  • Updated releasing script, gemspecs, linter configs
  • Updated gem version

[1.5.7 - 1.5.12] - 2022-11-30

Fixed

  • Fixed releasing script (publisher git details)

[1.5.6] - 2022-11-30

Added

  • Added new bunch of project linters
  • Added auto deploy to RubyGems
  • Added auto creating release notes on GitHub

Updated

  • Updated gemspecs
  • Updated codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem version

Removed

  • Removed overcommit dependency

[1.5.5] - 2022-10-04

Updated

  • Updated gemspecs
  • Updated codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem version

[1.5.4] - 2022-07-31

Updated

  • Updated gemspecs
  • Updated rubocop/codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem version

[1.5.3] - 2022-05-18

Updated

  • Updated gemspecs
  • Updated codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem version

[1.5.2] - 2022-03-10

Added

  • Development environment guide

Updated

  • Updated gemspecs
  • Updated codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem version

[1.5.1] - 2022-01-23

Updated

  • Updated native Ruby test environment from 2.5 to 3.1
  • Updated codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem docs, version

[1.5.0] - 2021-12-29

Added

  • Added Ruby 3.1.x compatibility

Updated

  • Updated rubocop/codeclimate/circleci configs
  • Updated gem development dependencies
  • Updated gem docs, version

[1.4.4] - 2021-11-11

Updated

  • Updated gem development dependencies
  • Updated gem version

[1.4.3] - 2021-10-07

Updated

  • Updated gem development dependencies
  • Updated gem version

[1.4.2] - 2021-09-04

Updated

  • Updated gem development dependencies
  • Updated gem version

[1.4.1] - 2021-08-16

Updated

  • Updated gem development dependencies
  • Updated gem version

Changed

  • faker to ffaker development dependency

[1.4.0] - 2021-07-13

Added

  • Added ability to use internationalized host names. All host names in UTF-8 will be represented as Punycode
  • Added simpleidn as runtime dependency
  • Added DnsMock::Representer::Punycode, tests
records = {
  'mañana.com' => {
    mx: %w[másletras.mañana.com]
  }
}

DnsMock.start_server(port: 5300, records: records)
dig @localhost -p 5300 MX xn--maana-pta.com
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 MX xn--maana-pta.com
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4612
;; flags: rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;xn--maana-pta.com. IN MX

;; ANSWER SECTION:
xn--maana-pta.com. 1 IN MX 10 xn--msletras-8ya.xn--maana-pta.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Tue Jul 13 15:38:47 EEST 2021
;; MSG SIZE  rcvd: 79

Changed

  • Refactored DnsMock::Representer::RdnsLookup, tests
  • Updated DnsMock::Record::Factory::Base
  • Updated DnsMock::Server::RecordsDictionaryBuilder, tests
  • Updated DnsMock::Record::Factory::Cname, tests
  • Updated DnsMock::Record::Factory::Mx, tests
  • Updated DnsMock::Record::Factory::Ns, tests
  • Updated DnsMock::Record::Factory::Ptr, tests
  • Updated DnsMock::Record::Factory::Soa, tests
  • Updated DnsMock::ContextGeneratorHelper, tests
  • Updated reek config
  • Updated gem documentation, version

[1.3.1] - 2021-07-07

Changed

  • Updated gem development dependencies
  • Updated rubocop/codeclimate config
  • Updated gem documentation, version

[1.3.0] - 2021-06-14

Added

Removed

  • Removed DnsMock::Server::RandomAvailablePort, tests

Changed

  • Updated DnsMock::Server class
  • Updated tests helpers/tests
  • Updated gem development dependencies

Fixed

  • Test coverage issues

[1.2.4] - 2021-05-25

Changed

  • Updated gem development dependencies
  • Updated circleci config

[1.2.3] - 2021-05-11

Changed

  • Updated gem development dependencies
  • Updated circleci config

[1.2.2] - 2021-05-06

Changed

  • Updated gem development dependencies
  • Updated rubocop/codeclimate config
  • Updated circleci config

[1.2.1] - 2021-03-23

Changed

  • Updated gem development dependencies
  • Updated rubocop/codeclimate config
  • Updated gem documentation
  • Updated tests

[1.2.0] - 2021-02-04

Added

  • Ability to specify custom priority of MX record if it needed

Now is possible to define null or backup MX records. Please note, if you haven't specified a priority of MX record, it will be assigned automatically. MX records builder is assigning priority with step 10 from first item of defined MX records array.

records = {
  'example.com' => {
    mx: %w[.:0 mx1.domain.com:10 mx2.domain.com:10 mx3.domain.com] # .:0 - null MX record
  }
}

DnsMock.start_server(records: records)
dig @localhost -p 5300 MX example.com
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 MX example.com

;; ANSWER SECTION:
example.com. 1 IN MX 0 .
example.com. 1 IN MX 10 mx1.domain.com.
example.com. 1 IN MX 10 mx2.domain.com.
example.com. 1 IN MX 40 mx3.domain.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Wed Feb 03 20:19:51 EET 2021
;; MSG SIZE  rcvd: 102

[1.1.0] - 2021-02-01

Added

  • RSpec native support. DnsMock helper help you to simplify integration with RSpec
# spec/support/config/dns_mock.rb
require 'dns_mock/test_framework/rspec'

RSpec.configure do |config|
  config.include DnsMock::TestFramework::RSpec::Helper
end

# your awesome first_a_record_spec.rb
RSpec.describe FirstARecord do
  subject(:service) do
    described_class.call(
      hostname,
      dns_gateway_host: 'localhost',
      dns_gateway_port: dns_mock_server.port
    )
  end

  let(:hostname) { 'example.com' }
  let(:first_a_record) { '1.2.3.4' }
  let(:records) { { hostname => { a: [first_a_record] } } }

  before { dns_mock_server.assign_mocks(records) }

  it { is_expected.to eq(first_a_record) }
end

[1.0.0] - 2021-01-29

Added

  • Configurable strategy for record not found case

By default it won't raise an exception when DNS record not found in mocked records dictionary:

DnsMock.start_server(port: 5300)
dig @localhost -p 5300 A example.com
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 A example.com
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38632
;; flags: rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;example.com. IN A

;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Fri Jan 29 08:21:30 EET 2021
;; MSG SIZE  rcvd: 40

If you want raise an exception when record not found, just start DnsMock with exception_if_not_found: true option:

DnsMock.start_server(exception_if_not_found: true)

Changed

  • Updated DnsMock.start_server
  • Updated DnsMock::Server
  • Updated DnsMock::Response::Message
  • Updated DnsMock::Response::Answer
  • Updated gem version, readme

[0.2.1] - 2021-01-27

Fixed

  • RDNS lookup representation for IP address in PTR record feature.

[0.2.0] - 2021-01-26

Added

  • PTR record support. Ability to mock PTR records

Please note, you can define host address without RDNS lookup prefix (.in-addr.arpa). DnsMock will do it for you.

records = {
  '1.2.3.4' => {
    ptr: %w[domain_1.com domain_2.com]
  }
}

DnsMock.start_server(records: records)
dig @localhost -p 5300 -x 1.2.3.4
; <<>> DiG 9.10.6 <<>> @localhost -p 5300 -x 1.1.1.1
; (2 servers found)

;; ANSWER SECTION:
4.3.2.1.in-addr.arpa. 1 IN PTR domain_1.com.
4.3.2.1.in-addr.arpa. 1 IN PTR domain_2.com.

;; Query time: 0 msec
;; SERVER: 127.0.0.1#5300(127.0.0.1)
;; WHEN: Mon Jan 25 19:58:39 EET 2021
;; MSG SIZE  rcvd: 98

[0.1.0] - 2021-01-19

Added

  • First release of DnsMock. Thanks @le0pard for idea & support 🚀