Package: dh-elpa
Version: 2.1.9
Severity: wishlist

I have modified and adapted the integration tests from dh-make-elpa to
work in dh-elpa. The tests work in a similar fashion as dh-make-elpa: in
a template repo that provides a minimal-ish set of files required for
dh_elpa command, run the command, and compare the output with an
expected repository, and check whether there are any diff. I hope this
provides a way to easily verify changes to the dh_elpa (and dh-elpa.el)
utility, especially debian/*.substvars to check whether the generated
"misc:Depends" and "elpa:Depends" are expected.

During implementation, I found some limitation of how the "dh_elpa"
command works and used some workarounds to make it work.

* The "dh_elpa" perl script uses global path that assumes a installed
  dh-elpa is available. However, the build time test needs to run from
  the source tree. As a result I extended the dh_elpa script to allow
  referencing files from the source tree (as well as other tweaks) to
  make it work during build time. The changes are guarded by a
  "--test-source-root" parameter.

* For multiple file packages, dh_elpa will create a tarball which cannot
  be compared with "diff" directly (which bremner had warned me before).
  For the time being, I just skip the tarball files as the unpacked
  directory is also available in the generated templates so their
  contents are still part of the comparisons.

I hope the diff tests can give more confidence when modifying dh_elpa,
especially for testing ideas like in Bug#1138884.

The changes are in an "integration-test" branch[1], and the diff against
master branch can be seen here[2]. An overview of how the tests work can
be found at the README.org[3].

Reviews and suggestions welcome!

[1] 
https://salsa.debian.org/emacsen-team/dh-elpa/-/tree/integration-test?ref_type=heads
[2] 
https://salsa.debian.org/emacsen-team/dh-elpa/-/compare/master...integration-test?from_project_id=18920
[3] 
https://salsa.debian.org/emacsen-team/dh-elpa/-/blob/integration-test/t/README.org?ref_type=heads

-- System Information:
Debian Release: forky/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (200, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 7.0.10+deb14-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=C.UTF-8, LC_CTYPE=C.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages dh-elpa depends on:
ii  debhelper               13.32
ii  emacs                   1:30.2+1-3
ii  emacs-gtk [emacs]       1:30.2+1-3
ii  libarray-utils-perl     0.5-3
ii  libconfig-tiny-perl     2.30-1
ii  libdebian-source-perl   0.133
ii  libdpkg-perl            1.23.7
ii  libfile-find-rule-perl  0.35-1
ii  libtext-glob-perl       0.11-3
ii  perl                    5.40.1-8

dh-elpa recommends no packages.

dh-elpa suggests no packages.

-- no debconf information

-- 
Regards,
Xiyue Deng

Attachment: signature.asc
Description: PGP signature

Reply via email to