Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
2738fbf
Merge pull request #1463 from zonemaster/master
matsduf Jun 27, 2025
4f45827
Minor typos and french translation modifications
benoitam Jul 23, 2025
49c1b7c
Update share/fr.po
benoitam Jul 24, 2025
ae77861
Apply suggestions from code review
benoitam Jul 24, 2025
e1809e0
Update share/fr.po
tgreenx Jul 24, 2025
60de471
t/Test-basic02.t: fix typo in zone name
marc-vanderwal Jul 28, 2025
c7a56e5
Merge pull request #1465 from marc-vanderwal/bugfix/test-basic02
marc-vanderwal Jul 28, 2025
357466e
Fix and enable unit test in Test-consistency06.t
marc-vanderwal Jul 28, 2025
000c617
Compute correct cache key for memoization
marc-vanderwal Aug 13, 2025
6a17ca6
Merge pull request #1468 from marc-vanderwal/bugfix/rerecord-test-con…
marc-vanderwal Oct 8, 2025
7bff7c8
Merge pull request #1470 from marc-vanderwal/bugfix/memoization
marc-vanderwal Oct 8, 2025
4916486
Implement a DSL for unit tests
marc-vanderwal Jul 28, 2025
6a1efa8
Report failure locations accurately
marc-vanderwal Jul 30, 2025
8661cb1
Improve handling of todo tests
marc-vanderwal Jul 31, 2025
254d595
Implement testing of message arguments
marc-vanderwal Jul 30, 2025
e2c96dc
Refactor: run scenarios in definition order
marc-vanderwal Aug 5, 2025
33ae3db
Refactor: selecting and disabling subtests
marc-vanderwal Aug 5, 2025
721b579
Refactor: allow multiple root_hints
marc-vanderwal Aug 5, 2025
c81dd13
Refactor: run expect/forbid in definition order
marc-vanderwal Aug 6, 2025
7241c36
Add clear_cache keyword to the testing DSL
marc-vanderwal Oct 15, 2025
1854e25
Port t/Test-address03.t to DSL
marc-vanderwal Jul 28, 2025
345c17b
Port t/Test-basic01.t to DSL
marc-vanderwal Jul 28, 2025
88f2a9e
Port t/Test-basic02.t to DSL
marc-vanderwal Jul 28, 2025
97e4984
Port t/Test-connectivity04{,-A}.t to DSL
marc-vanderwal Jul 28, 2025
2d181a4
Port t/Test-consistency05.t to DSL
marc-vanderwal Jul 28, 2025
1afe3a0
Port t/Test-consistency06.t to DSL
marc-vanderwal Oct 15, 2025
22c65a5
Port t/Test-delegation01.t to DSL
marc-vanderwal Jul 29, 2025
fafed35
Tidied the PO file, no translation changes
matsduf Oct 20, 2025
e6e404a
Minor tidying of PO file, no translation update
matsduf Oct 20, 2025
0c0ddee
Merge pull request #1464 from benoitam/update-translation
tgreenx Oct 27, 2025
2caef2f
Merge pull request #1467 from marc-vanderwal/feature/unit-test-dsl
marc-vanderwal Oct 28, 2025
df79b3f
Update DNSSEC05 implementation
tgreenx Oct 28, 2025
a83f683
New MethodV2: Get-Parent-NS-Names-and-IPs
marc-vanderwal Aug 13, 2025
e24a21e
Rerecord test data after updating MethodV2
marc-vanderwal Oct 29, 2025
e5011ce
Merge pull request #1475 from marc-vanderwal/feature/get-parent-ns-na…
tgreenx Nov 4, 2025
6ac9a9e
Ignore resolver.defaults.{igntc,recurse,usevc}
mattias-p Oct 9, 2025
687cbc7
Update Zone11 implementation
tgreenx Nov 4, 2025
0e1adfa
Merge pull request #1472 from mattias-p/ignore-properties
mattias-p Nov 13, 2025
7dd4d09
Merge pull request #1477 from tgreenx/update-zone11
tgreenx Nov 14, 2025
d2d2bbf
Update Address01 implementation and unit tests
tgreenx May 14, 2025
5381101
Merge pull request #1473 from tgreenx/update-dnssec05
tgreenx Nov 14, 2025
95f832f
Update DNSSEC01 implementation
tgreenx Oct 28, 2025
cbf9b78
Merge pull request #1453 from tgreenx/update-address01
tgreenx Nov 14, 2025
138c878
Merge pull request #1474 from tgreenx/update-dnssec01
tgreenx Nov 14, 2025
bb61d5b
Update DNSSEC07 implementation
tgreenx Oct 30, 2025
254e4e4
Merge pull request #1476 from tgreenx/update-dnssec07
tgreenx Nov 14, 2025
3fbfead
Preparation for release v2025.2
matsduf Dec 5, 2025
b0c78cb
Apply suggestions from review
matsduf Dec 8, 2025
086aeb3
Increased version and moved release date
matsduf Dec 8, 2025
3bc0eec
Update DNSSEC05 message IDs
tgreenx Dec 9, 2025
2d51eef
Merge pull request #1480 from tgreenx/update-dnssec05-msg
tgreenx Dec 9, 2025
fa0e2d7
Update DNSSEC07 message IDs
tgreenx Dec 9, 2025
bfcee6a
Merge pull request #1481 from tgreenx/update-dnssec07-msg
tgreenx Dec 9, 2025
f9fbdad
Update French translation
tgreenx Dec 9, 2025
ac99990
Apply suggestions from code review
tgreenx Dec 10, 2025
6848ace
Merge pull request #1482 from tgreenx/update-translation-fr
tgreenx Dec 11, 2025
4086bf8
Update Changes
matsduf Dec 16, 2025
3687023
Update Changes
matsduf Dec 16, 2025
258b6d2
Merge pull request #1479 from matsduf/preparation-release-v2025.2
matsduf Dec 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 18 additions & 0 deletions Changes
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
Release history for Zonemaster component Zonemaster-Engine


v8.1.0 2025-12-17 (part of Zonemaster v2025.2 release)

[Deprecation]
- Ignores and deprecates some profile properties. To be removed in
release v2026.1 (#1472)

[Features]
- Updates test case implementations for Zone11, DNSSEC07, DNSSEC01, DNSSEC05,
and Address01 (#1477, #1476, #1474, #1473, #1453)
- Implements new MethodV2 method to give more information
in relevant messages (#1475)

[Fixes]
- Fixes error in MethodsV2 (#1470)
- Updates French translation (#1464, #1482)


v8.0.0 2025-06-26 (part of Zonemaster v2025.1 release)

[Breaking changes]
Expand Down
126 changes: 60 additions & 66 deletions MANIFEST
Original file line number Diff line number Diff line change
Expand Up @@ -2,47 +2,47 @@ Changes
CONTRIBUTING.md
docs/Implementing_Tests.pod
docs/Translation.pod
inc/Module/Install.pm
inc/Module/Install/Base.pm
inc/Module/Install/Can.pm
inc/Module/Install/External.pm
inc/Module/Install/Fetch.pm
inc/Module/Install/Makefile.pm
inc/Module/Install/Metadata.pm
inc/Module/Install.pm
inc/Module/Install/Share.pm
inc/Module/Install/Win32.pm
inc/Module/Install/WriteAll.pm
KNOWN_ISSUES
lib/Zonemaster/Engine.pm
lib/Zonemaster/Engine/ASNLookup.pm
lib/Zonemaster/Engine/Constants.pm
lib/Zonemaster/Engine/DNSName.pm
lib/Zonemaster/Engine/Exception.pm
lib/Zonemaster/Engine/Logger.pm
lib/Zonemaster/Engine/Logger/Entry.pm
lib/Zonemaster/Engine/Nameserver.pm
lib/Zonemaster/Engine/Nameserver/Cache.pm
lib/Zonemaster/Engine/Logger.pm
lib/Zonemaster/Engine/Nameserver/Cache/LocalCache.pm
lib/Zonemaster/Engine/Nameserver/Cache.pm
lib/Zonemaster/Engine/Nameserver/Cache/RedisCache.pm
lib/Zonemaster/Engine/Normalization.pm
lib/Zonemaster/Engine/Nameserver.pm
lib/Zonemaster/Engine/Normalization/Error.pm
lib/Zonemaster/Engine/Normalization.pm
lib/Zonemaster/Engine/NSArray.pm
lib/Zonemaster/Engine/Overview.pod
lib/Zonemaster/Engine/Packet.pm
lib/Zonemaster/Engine.pm
lib/Zonemaster/Engine/Profile.pm
lib/Zonemaster/Engine/Recursor.pm
lib/Zonemaster/Engine/Test.pm
lib/Zonemaster/Engine/Test/Address.pm
lib/Zonemaster/Engine/Test/Basic.pm
lib/Zonemaster/Engine/Test/Connectivity.pm
lib/Zonemaster/Engine/Test/Consistency.pm
lib/Zonemaster/Engine/Test/Delegation.pm
lib/Zonemaster/Engine/Test/DNSSEC.pm
lib/Zonemaster/Engine/TestMethods.pm
lib/Zonemaster/Engine/TestMethodsV2.pm
lib/Zonemaster/Engine/Test/Nameserver.pm
lib/Zonemaster/Engine/Test.pm
lib/Zonemaster/Engine/Test/Syntax.pm
lib/Zonemaster/Engine/Test/Zone.pm
lib/Zonemaster/Engine/TestMethods.pm
lib/Zonemaster/Engine/TestMethodsV2.pm
lib/Zonemaster/Engine/Translator.pm
lib/Zonemaster/Engine/Util.pm
lib/Zonemaster/Engine/Validation.pm
Expand All @@ -66,9 +66,9 @@ share/locale/sv/LC_MESSAGES/Zonemaster-Engine.mo
share/Makefile
share/modules.txt
share/named.root
share/profile_additional_properties.json
share/profile.json
share/profile.yaml
share/profile_additional_properties.json
t/00-load.t
t/asn.data
t/asn.t
Expand All @@ -86,26 +86,24 @@ t/old-bugs.t
t/packet.t
t/pod-coverage.t
t/pod.t
t/profiles.t
t/profiles/policy.json
t/profiles/profile.json
t/profiles.t
t/profiles/Test-address-all.json
t/profiles/Test-all-levels.json
t/profiles/Test-all.json
t/profiles/Test-all-levels.json
t/profiles/Test-basic-all.json
t/profiles/Test-connectivity-all.json
t/profiles/Test-connectivity01-only.json
t/profiles/Test-connectivity02-only.json
t/profiles/Test-connectivity03-only.json
t/profiles/Test-connectivity04-only.json
t/profiles/Test-consistency-all.json
t/profiles/Test-connectivity-all.json
t/profiles/Test-consistency01-only.json
t/profiles/Test-consistency02-only.json
t/profiles/Test-consistency03-only.json
t/profiles/Test-consistency04-only.json
t/profiles/Test-consistency-all.json
t/profiles/Test-delegation-all.json
t/profiles/Test-dnssec-all.json
t/profiles/Test-dnssec-more-all.json
t/profiles/Test-dnssec01-only.json
t/profiles/Test-dnssec02-only.json
t/profiles/Test-dnssec03-only.json
Expand All @@ -122,7 +120,8 @@ t/profiles/Test-dnssec14-only.json
t/profiles/Test-dnssec15-only.json
t/profiles/Test-dnssec17-only.json
t/profiles/Test-dnssec18-only.json
t/profiles/Test-nameserver-all.json
t/profiles/Test-dnssec-all.json
t/profiles/Test-dnssec-more-all.json
t/profiles/Test-nameserver01-only.json
t/profiles/Test-nameserver02-only.json
t/profiles/Test-nameserver03-only.json
Expand All @@ -132,7 +131,7 @@ t/profiles/Test-nameserver06-only.json
t/profiles/Test-nameserver07-only.json
t/profiles/Test-nameserver08-only.json
t/profiles/Test-nameserver09-only.json
t/profiles/Test-syntax-all.json
t/profiles/Test-nameserver-all.json
t/profiles/Test-syntax01-only.json
t/profiles/Test-syntax02-only.json
t/profiles/Test-syntax03-only.json
Expand All @@ -141,75 +140,61 @@ t/profiles/Test-syntax05-only.json
t/profiles/Test-syntax06-only.json
t/profiles/Test-syntax07-only.json
t/profiles/Test-syntax08-only.json
t/profiles/Test-syntax-all.json
t/profiles/Test-zone-all.json
t/recursor.data
t/recursor.t
t/recursor-A.data
t/recursor-A.t
t/Test-address.data
t/Test-address.t
t/recursor.data
t/recursor.t
t/Test-address01.data
t/Test-address01.t
t/Test-address03.data
t/Test-address03.t
t/Test-basic.data
t/Test-basic.t
t/Test-address.data
t/Test-address.t
t/Test-basic01.data
t/Test-basic01.t
t/Test-basic02.data
t/Test-basic02.t
t/Test-connectivity.data
t/Test-connectivity.t
t/Test-basic.data
t/Test-basic.t
t/Test-connectivity03.data
t/Test-connectivity03.t
t/Test-connectivity04.data
t/Test-connectivity04.t
t/Test-connectivity04-A.data
t/Test-connectivity04-A.t
t/Test-consistency.data
t/Test-consistency.t
t/Test-connectivity.data
t/Test-connectivity.t
t/Test-consistency05.data
t/Test-consistency05.t
t/Test-consistency06.data
t/Test-consistency06.t
t/Test-delegation.data
t/Test-delegation.t
t/Test-consistency.data
t/Test-consistency.t
t/Test.data
t/Test-delegation01.data
t/Test-delegation01.t
t/Test-delegation02.data
t/Test-delegation02.t
t/Test-delegation03.data
t/Test-delegation03.t
t/Test-dnssec-more.data
t/Test-dnssec-more.t
t/Test-dnssec.data
t/Test-dnssec.t
t/Test-delegation.data
t/Test-delegation.t
t/Test-dnssec01.data
t/Test-dnssec01.t
t/Test-dnssec03.data
t/Test-dnssec03.t
t/Test-dnssec05-A.data
t/Test-dnssec05-A.t
t/Test-dnssec05-B.data
t/Test-dnssec05-B.t
t/Test-dnssec05-C.data
t/Test-dnssec05-C.t
t/Test-dnssec05-D.data
t/Test-dnssec05-D.t
t/Test-dnssec05-E.data
t/Test-dnssec05-E.t
t/Test-dnssec05-F.data
t/Test-dnssec05-F.t
t/Test-dnssec05-G.data
t/Test-dnssec05-G.t
t/Test-dnssec05-H.data
t/Test-dnssec05-H.t
t/Test-dnssec05-I.data
t/Test-dnssec05-I.t
t/Test-dnssec05-J.data
t/Test-dnssec05-J.t
t/Test-dnssec05.data
t/Test-dnssec05.t
t/Test-dnssec07.data
t/Test-dnssec07.t
t/Test-dnssec10.data
t/Test-dnssec10.t
t/Test-dnssec16.data
t/Test-dnssec16.t
t/Test-nameserver.data
t/Test-nameserver.t
t/Test-dnssec.data
t/Test-dnssec-more.data
t/Test-dnssec-more.t
t/Test-dnssec.t
t/Test-nameserver01-A.data
t/Test-nameserver01-A.t
t/Test-nameserver01-B.data
Expand All @@ -220,8 +205,8 @@ t/Test-nameserver01-D.data
t/Test-nameserver01-D.t
t/Test-nameserver15.data
t/Test-nameserver15.t
t/Test-syntax.data
t/Test-syntax.t
t/Test-nameserver.data
t/Test-nameserver.t
t/Test-syntax06-A.data
t/Test-syntax06-A.t
t/Test-syntax06-B.data
Expand All @@ -244,8 +229,12 @@ t/Test-syntax06-K.data
t/Test-syntax06-K.t
t/Test-syntax06-L.data
t/Test-syntax06-L.t
t/Test-zone.data
t/Test-zone.t
t/Test-syntax.data
t/Test-syntax.t
t/Test.t
t/TestUtil/DSL/Compiler.pm
t/TestUtil/DSL.pm
t/TestUtil.pm
t/Test-zone01-A.data
t/Test-zone01-A.t
t/Test-zone01-B.data
Expand All @@ -254,17 +243,22 @@ t/Test-zone09-1.data
t/Test-zone09-1.t
t/Test-zone09.data
t/Test-zone09.t
t/Test-zone11-1.data
t/Test-zone11-1.t
t/Test-zone11-2.data
t/Test-zone11-2.t
t/Test-zone11-3.data
t/Test-zone11-3.t
t/Test-zone11.data
t/Test-zone11.t
t/Test.data
t/Test.t
t/TestUtil.pm
t/Test-zone.data
t/Test-zone.t
t/translator.t
t/undelegated.data
t/undelegated.t
t/util.t
t/validation.t
t/zone.data
t/zone.t
t/zonemaster.data
t/zonemaster.t
t/zone.t
2 changes: 1 addition & 1 deletion Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ requires 'Net::IP::XS' => 0.21;
requires 'Readonly' => 0;
requires 'Text::CSV' => 0;
requires 'YAML::XS' => 0;
requires 'Zonemaster::LDNS' => 5.000000; # For v5.0.0
requires 'Zonemaster::LDNS' => 5.000001; # For v5.0.1

test_requires 'Locale::PO' => 0;
test_requires 'Pod::Coverage' => 0;
Expand Down
2 changes: 1 addition & 1 deletion lib/Zonemaster/Engine.pm
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package Zonemaster::Engine;
use v5.16.0;
use warnings;

use version; our $VERSION = version->declare("v8.0.0");
use version; our $VERSION = version->declare("v8.1.0");

BEGIN {
# Locale::TextDomain (<= 1.20) doesn't know about File::ShareDir so give a helping hand.
Expand Down
5 changes: 3 additions & 2 deletions lib/Zonemaster/Engine/Constants.pm
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,8 @@ Internal method that is used to extract IP blocks details from IANA files for a

Takes an integer (IP version).

Returns a list of hashes - the keys of which are C<ip> (L<Net::IP::XS> object), C<name> (string) and C<reference> (string).
Returns a list of hashes - the keys of which are C<ip> (L<Net::IP::XS> object), C<name> (string), C<reference> (string)
and C<globally_reachable> (string).

=back

Expand Down Expand Up @@ -279,7 +280,7 @@ sub _extract_iana_ip_blocks {
$address_data =~ s/[ ]+//smx;
foreach my $address_item ( split /,/smx, $address_data ) {
$address_item =~ s/(\A.+\/\d+).*\z/$1/smx;
push @list, { ip => Net::IP::XS->new( $address_item ), name => $fields->[1], reference => $fields->[2] };
push @list, { ip => Net::IP::XS->new( $address_item ), name => $fields->[1], reference => $fields->[2], globally_reachable => $fields->[8] };
}
}
close $data or croak "Cannot close '${data_location}' : ${OS_ERROR}";
Expand Down
30 changes: 15 additions & 15 deletions lib/Zonemaster/Engine/Nameserver.pm
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,6 @@ sub _build_dns {

$res->retry( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retry} ) );
$res->retrans( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retrans} ) );
$res->usevc( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.usevc} ) );
$res->igntc( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.igntc} ) );
$res->recurse( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.recurse} ) );
$res->debug( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.debug} ) );
$res->timeout( Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.timeout} ) );

Expand Down Expand Up @@ -225,10 +222,10 @@ sub query {
}
);

my $class = $href->{class} // 'IN';
my $dnssec = $href->{dnssec} // 0;
my $usevc = $href->{usevc} // $profile->get( q{resolver.defaults.usevc} );
my $recurse = $href->{recurse} // $profile->get( q{resolver.defaults.recurse} );
my $class = $href->{class} // 'IN';
my $dnssec = $href->{dnssec} // 0;
my $usevc = $href->{usevc} // 0;
my $recurse = $href->{recurse} // 0;

if ( exists $href->{edns_details} and exists $href->{edns_details}{do} ) {
$dnssec = $href->{edns_details}{do};
Expand Down Expand Up @@ -401,14 +398,17 @@ sub _query {
);

# Make sure we have a value for each flag
$flags{q{retry}} = $href->{q{retry}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retry} );
$flags{q{retrans}} = $href->{q{retrans}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retrans} );
$flags{q{dnssec}} = $href->{q{dnssec}} // 0;
$flags{q{usevc}} = $href->{q{usevc}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.usevc} );
$flags{q{igntc}} = $href->{q{igntc}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.igntc} );
$flags{q{fallback}} = $href->{q{fallback}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.fallback} );
$flags{q{recurse}} = $href->{q{recurse}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.recurse} );
$flags{q{timeout}} = $href->{q{timeout}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.timeout} );
$flags{q{retry}} = $href->{q{retry}} // Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retry} );
$flags{q{retrans}} = $href->{q{retrans}}
// Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.retrans} );
$flags{q{dnssec}} = $href->{q{dnssec}} // 0;
$flags{q{usevc}} = $href->{q{usevc}} // 0;
$flags{q{igntc}} = $href->{q{igntc}} // 0;
$flags{q{fallback}} = $href->{q{fallback}}
// Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.fallback} );
$flags{q{recurse}} = $href->{q{recurse}} // 0;
$flags{q{timeout}} = $href->{q{timeout}}
// Zonemaster::Engine::Profile->effective->get( q{resolver.defaults.timeout} );

if ( exists $href->{edns_details} ) {
$flags{q{dnssec}} = $href->{edns_details}{do} // $flags{q{dnssec}};
Expand Down
Loading
Loading