Skip to content

Commit

Permalink
Merge pull request #1330 from zonemaster/develop
Browse files Browse the repository at this point in the history
Merge develop into master (Engine)
  • Loading branch information
matsduf authored Mar 18, 2024
2 parents 9b8888c + 9a5471d commit 17688f7
Show file tree
Hide file tree
Showing 105 changed files with 6,385 additions and 5,068 deletions.
31 changes: 23 additions & 8 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,11 +20,11 @@ jobs:
- develop
#- latest
perl:
- '5.32'
- '5.36'
- '5.30'
- '5.26'
- '5.16'
runner:
- ubuntu-20.04
- ubuntu-22.04

runs-on: ${{ matrix.runner }}

Expand Down Expand Up @@ -56,24 +56,39 @@ jobs:
- name: Install Zonemaster::LDNS (latest)
if: ${{ matrix.compatibility == 'latest' }}
run: |
cpanm --notest Module::Install Zonemaster::LDNS
cpanm --sudo --notest Module::Install Zonemaster::LDNS
- name: Install Zonemaster::LDNS (develop)
if: ${{ matrix.compatibility == 'develop' }}
run: |
cpanm --notest Devel::CheckLib Module::Install Module::Install::XSUtil
cpanm --sudo --notest Devel::CheckLib Module::Install Module::Install::XSUtil
git clone --branch=develop --depth=1 https://github.com/zonemaster/zonemaster-ldns.git
perl Makefile.PL # Generate MYMETA.yml to appease cpanm .
( cd zonemaster-ldns ; cpanm --notest . )
( cd zonemaster-ldns ; cpanm --sudo --notest . )
rm -rf zonemaster-ldns
# Installing Zonemaster::Engine requires root privileges, because of a
# bug in Mail::SPF preventing normal installation with cpanm as
# non-root user (see link below [1]).
#
# The alternative, if one still wishes to install Zonemaster::Engine
# as non-root user, is to install Mail::SPF first with a command like:
#
# % cpanm --notest \
# --install-args="--install_path sbin=$HOME/.local/sbin" \
# Mail::SPF
#
# For the sake of consistency, other Perl packages installed from CPAN
# are also installed as root.
#
# [1]: https://rt.cpan.org/Public/Bug/Display.html?id=34768
- name: Install remaining dependencies
run: |
cpanm --verbose --notest --installdeps .
cpanm --sudo --verbose --notest --installdeps .
- name: Install Zonemaster::Engine
run: |
cpanm --verbose --notest .
cpanm --sudo --verbose --notest .
- name: Show content of log files
if: ${{ failure() }}
Expand Down
30 changes: 30 additions & 0 deletions Changes
Original file line number Diff line number Diff line change
@@ -1,6 +1,36 @@
Release history for Zonemaster component Zonemaster-Engine


v5.0.0 2024-03-18 (public release version)

[Release information]
- Translations have not been fully updated in this release. They will
be updated in an upcoming fix release.

[Breaking change]
- Removes deprecated features (#1309)

[Features]
- Adds global cache based on Redis (experimental) (#1201, #1327)
- Adds implementation of test case Zone11 (SPF test) (#1287)
- Removes implementation of Basic00 (#1308)

[Fixes]
- Updates implementation of test case Syntax06 (#1245)
- Refactors code (#1256, #1294, #1293, #1296, #1297, #1302)
- Improves documentation in Test modules (#1277)
- Updates implementation of test case Delegation01 (#1290)
- Fixes message tag log level for test case Zone08 (#1295)
- Updates unit tests for test cases Consistency05 and Consistency06
(#1303)
- Updates implementation of test case DNSSEC03 (#1304)
- Updates implementation of test case Nameserver15 (#1306)
- Documents and updates method '_emit_log()' in all Test modules #1310)
- Corrects ASN lookup sources (#1311)
- Adds Mail::SPF in 2nd stage in Dockerfile (#1317)
- Updates translations (#1324)


v4.7.3 2023-09-08 (public fix version)

[Fixes]
Expand Down
2 changes: 2 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ RUN apk add --no-cache \
perl-list-moreutils \
perl-locale-msgfmt \
perl-lwp-protocol-https \
perl-mail-spf \
perl-module-install \
perl-moose \
perl-pod-coverage \
Expand Down Expand Up @@ -57,6 +58,7 @@ RUN apk add --no-cache \
perl-io-socket-inet6 \
perl-list-moreutils \
perl-locale-msgfmt \
perl-mail-spf \
perl-mailtools \
perl-module-install \
perl-moose \
Expand Down
41 changes: 13 additions & 28 deletions MANIFEST
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
Changes
CONTRIBUTING.md
docs/Implementing_Tests.pod
docs/logentry_args.md
docs/Translation.pod
docs/Translation-translators.md
inc/Module/Install.pm
Expand All @@ -24,9 +23,10 @@ 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/Nameserver/Cache/LocalCache.pm
lib/Zonemaster/Engine/Nameserver/Cache/RedisCache.pm
lib/Zonemaster/Engine/Normalization.pm
lib/Zonemaster/Engine/Normalization/Error.pm
lib/Zonemaster/Engine/Net/IP.pm
lib/Zonemaster/Engine/NSArray.pm
lib/Zonemaster/Engine/Overview.pod
lib/Zonemaster/Engine/Packet.pm
Expand Down Expand Up @@ -83,9 +83,9 @@ t/old-bugs.data
t/old-bugs.t
t/pod-coverage.t
t/pod.t
t/policy.json
t/profile.json
t/profiles.t
t/profiles/policy.json
t/profiles/profile.json
t/profiles/Test-address-all.json
t/profiles/Test-all.json
t/profiles/Test-all-levels.json
Expand All @@ -99,8 +99,6 @@ 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-consistency05-only.json
t/profiles/Test-consistency06-only.json
t/profiles/Test-consistency-all.json
t/profiles/Test-delegation-all.json
t/profiles/Test-dnssec01-only.json
Expand Down Expand Up @@ -159,32 +157,14 @@ t/Test-connectivity04.data
t/Test-connectivity04.t
t/Test-consistency.data
t/Test-consistency.t
t/Test-consistency05-A.data
t/Test-consistency05-A.t
t/Test-consistency05-E.data
t/Test-consistency05-E.t
t/Test-consistency05.data
t/Test-consistency05.t
t/Test-consistency05-F.data
t/Test-consistency05-F.t
t/Test-consistency05-G.data
t/Test-consistency05-G.t
t/Test-consistency05-H.data
t/Test-consistency05-H.t
t/Test-consistency05-I.data
t/Test-consistency05-I.t
t/Test-consistency05-J.data
t/Test-consistency05-J.t
t/Test-consistency05-K.data
t/Test-consistency05-K.t
t/Test-consistency05-L.data
t/Test-consistency05-L.t
t/Test-consistency06-A.data
t/Test-consistency06-A.t
t/Test-consistency06.data
t/Test-consistency06.t
t/Test-consistency06-B.data
t/Test-consistency06-B.t
t/Test-consistency06-C.data
t/Test-consistency06-C.t
t/Test-consistency06-D.data
t/Test-consistency06-D.t
t/Test-delegation.data
t/Test-delegation.t
t/Test-delegation01-A.data
Expand Down Expand Up @@ -231,6 +211,8 @@ t/Test-dnssec-more.data
t/Test-dnssec-more.t
t/Test-dnssec.data
t/Test-dnssec.t
t/Test-dnssec03.data
t/Test-dnssec03.t
t/Test-dnssec05-A.data
t/Test-dnssec05-A.t
t/Test-dnssec05-B.data
Expand Down Expand Up @@ -289,6 +271,7 @@ t/Test-syntax06-K.data
t/Test-syntax06-K.t
t/Test-syntax06-L.data
t/Test-syntax06-L.t
t/TestUtil.pm
t/Test-zone.data
t/Test-zone.t
t/Test-zone01-A.t
Expand All @@ -299,6 +282,8 @@ t/Test-zone09-1.data
t/Test-zone09-1.t
t/Test-zone09.data
t/Test-zone09.t
t/Test-zone11.data
t/Test-zone11.t
t/translator.t
t/undelegated.data
t/undelegated.t
Expand Down
5 changes: 3 additions & 2 deletions Makefile.PL
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ requires 'File::Slurp' => 0;
requires 'IO::Socket::INET6' => 2.69;
requires 'List::MoreUtils' => 0;
requires 'Locale::TextDomain' => 1.20;
requires 'Log::Any' => 0,
requires 'Log::Any' => 0;
requires 'Mail::SPF' => 0;
requires 'Module::Find' => 0.10;
requires 'Moose' => 2.0401;
requires 'MooseX::Singleton' => 0.30;
Expand All @@ -34,7 +35,7 @@ requires 'Net::IP::XS' => 0.21;
requires 'Readonly' => 0;
requires 'Text::CSV' => 0;
requires 'YAML::XS' => 0;
requires 'Zonemaster::LDNS' => 3.002000; # For v3.2.0
requires 'Zonemaster::LDNS' => 4.000000; # For v4.0.0

test_requires 'Locale::PO' => 0;
test_requires 'Pod::Coverage' => 0;
Expand Down
18 changes: 7 additions & 11 deletions docs/Implementing_Tests.pod
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ to the framework.

=item Make as few assumptions as possible.

When the entry method in a test module is called, it can rely on only a handful of things about the testing process so far:
When the entry method in a test module is called, it can only rely on a handful of things about the testing process so far:

=over

Expand All @@ -35,8 +35,8 @@ The zone object it's given has nameservers.

=item Favor code clarity over performance.

Strive to make the test code as easily understood as possible. Ideally, it should be possible for a person with only a basic understanding of Perl to
read the code and verify that it correctly implements the corresponding test specification.
Strive to make the test code as easily understandable as possible. Ideally, it should be possible for a person with only a basic understanding of Perl to
read the code and verify that it correctly implements the corresponding Test Case specifications.

=back

Expand All @@ -58,18 +58,14 @@ message, but otherwise not used.
=item C<metadata()>

This method should return a reference to a hash. The keys of this hash should be the names of the individual test methods in the module, and the
values for each key should be a reference to an array listing all the possible messages that test method can emit.
values for each key should be a reference to an array listing all the possible messages that test methods can emit.

=back

=head2 Test-running method(s)

The framework expects to be able to run all tests in a module by calling a class method C<all()> with a L<Zonemaster::Engine::Zone> object as the argument.
The return value from this method is expected to be a list of L<Zonemaster::Engine::Logger::Entry> objects describing the results of the tests run. The
example test module has one possible implementation of this.

In the case where one test module wants to use a test in another, the top-level L<Zonemaster::Engine> module has a method C<test_method()> to request that.
This method will call the other test, if it is available and the current policy allows its execution. It's up to the caller to know what arguments
the other test needs, and what it returns.
The framework expects to be able to run all tests in a module by calling a class method L<all()|Zonemaster::Engine::Test/all()> with a
L<Zonemaster::Engine::Zone> object as the argument.
The return value from this method is expected to be a list of L<Zonemaster::Engine::Logger::Entry> objects describing the results of the tests run.

=cut
8 changes: 2 additions & 6 deletions docs/Translation.pod
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ executed from that directory.

=head2 For translators

Instructions for translators can be found in
L<https://github.com/zonemaster/zonemaster/blob/develop/docs/internal-documentation/maintenance/Instructions-for-translators.md>
Instructions for translators can be found at
L<https://github.com/zonemaster/zonemaster/blob/develop/docs/internal/maintenance/Instructions-for-translators.md>

=head2 For developers of Zonemaster test modules

Expand Down Expand Up @@ -45,10 +45,6 @@ The format strings themselves, the comments and the line numbers of the __x
calls are used by the gettext tooling when updating the PO files with new
message ids and old message strings.

Every time you add, remove or modify a tag or its message id, re-run
C<make update-po> as descibed in the next section.
Make sure the message tag comments are properly added and up to date.

=head2 For Zonemaster package maintainers

In order to make a new translation usable, it must be compiled to C<mo> format
Expand Down
Loading

0 comments on commit 17688f7

Please sign in to comment.