Re: Stow 2.0.x release requirements
Kahlil Hodgson <[email protected]> Wed, 23 Nov 2011 11:02:18 +1100
| Newsgroups | gmane.comp.gnu.stow.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi Adam, On 20/11/11 22:29, Adam Spiers wrote: > Good news! I've finished split the core code off into two new > modules: Stow.pm and Stow/Util.pm. I'm quite pleased that the process > of separating the frontend from the backend seems to have resulted in > some nice clean code - hope you agree when you see it. > > Stow.pm provides a nice object-oriented interface, e.g. > > my $stow = new Stow(%$options); > > $stow->plan_unstow(@pkgs_to_unstow); > $stow->plan_stow (@pkgs_to_stow); > > my @conflicts = $stow->get_conflicts; > $stow->process_tasks() unless @conflicts; > > This enabled a *huge* reduction in the number of global variables. > All the options and state (@Tasks, @Conflicts etc.) are now stored > inside a Stow object instance. This made for cleaner tests - > reset_state() is now obsolete, since to reset state you simply > instantiate a new Stow object. Very Nice :-) > After modifying the whole test suite to this new interface, I was able > to introduce 'use strict' and 'use warnings' to all the tests, and > 'make test' now passes 100% again :-) Excellent! > Latest code is available here: > > https://github.com/aspiers/stow/ Hope to get a chance to check it out soon. A little busy with work ATM. > and also adding Module::Build support so that we can easily make CPAN > releases. There be dragons. The older MakeMaker stuff may be easier. > I'm hoping that this will co-exist peacefully with the > autotools-based build system, although I'm currently puzzling over how > to cope with installation of the modules. Module::Build expects them > to be under lib/, but if I put this in Makefile.am: > > pmdir = $(libdir)/perl5 > nobase_pm_DATA = lib/Stow.pm lib/Stow/Util.pm > > then autotools installs them to lib/perl5/lib/Stow* which is not > right :-/ Getting the original autotools stuff to work really did my head in. Had to read a lot of documentation just to do something very simple. I believe I may have forgotten almost everything I once new about the autotools framework now :-( Good Luck! Kal