Hi,
dh-make-elpa is heavily based on dh-make-perl (thanks to all who
were/are involved into whis nice tool). Both share the same
object-oriented structure and some code. Recently, dh-make-elpa was
untied from dh-make-perl, so now the former doesn't depend on the
latter. But this was done by copying some code from dh-make-perl without
changes. The better option would be to move duplicate code to a library.
Fully duplicate code is in DhMake{ELPA,Perl}::Command::Packaging. That
is, duplicates are the following methods: main_file, debian_file,
get_user, get_email, get_name, get_developer, fill_maintainer, get_wnpp,
create_rules, write_source_format, backup_file, _file_r, and _file_w.
Currently, these methods are fully identical between dh-make-elpa and
dh-make-perl.
It would be nice to identify those methods which may be useful for
various (possible) implementations of dh-make-<something> and are
unlikely to change significantly in the future. Those methods could be
moved to, say, DhMake::Packaging.
Probably, it may be beneficial to design a core functionality for
DhMake::Config too, and then refactor both dh-make-elpa and dh-make-perl
to use it and base on it. But it requires more work, and I guess should
be done rather gradually. Therefore, it is may be a goal for some
(probably, distant) future.
I would like to implement changes for both dh-make{elpa,perl}, but first
we should discuss what should be done and in which way. So, CCing Debian
Perl Group mailing list, but I think that it's better to keep the
discussion in one place, that is, in this bug report.
Cheers!
Lev