[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Stow-devel] Stow 2.0.x release requirements
From: |
Adam Spiers |
Subject: |
Re: [Stow-devel] Stow 2.0.x release requirements |
Date: |
Sun, 20 Nov 2011 11:29:28 +0000 |
Hi again all,
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.
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 :-)
Latest code is available here:
https://github.com/aspiers/stow/
Final items remaining on my TODO:
- Fix the below issue with 'make install'
- Add my support for ignore list files. I might send a separate
mail to this list about the design.
- (Maybe) port my conflict resolution code over.
and also adding Module::Build support so that we can easily make CPAN
releases. 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 :-/
Cheers,
Adam
- Re: [Stow-devel] Stow 2.0.x release requirements, Adam Spiers, 2011/11/15
- Re: [Stow-devel] Stow 2.0.x release requirements, Adam Spiers, 2011/11/15
- Re: [Stow-devel] Stow 2.0.x release requirements, Kahlil Hodgson, 2011/11/16
- Re: [Stow-devel] Stow 2.0.x release requirements, Adam Spiers, 2011/11/16
- Re: [Stow-devel] Stow 2.0.x release requirements, Adam Spiers, 2011/11/16
- Re: [Stow-devel] Stow 2.0.x release requirements,
Adam Spiers <=
- Re: [Stow-devel] Stow 2.0.x release requirements, Kahlil Hodgson, 2011/11/22
- Re: [Stow-devel] Stow 2.0.x release requirements, Adam Spiers, 2011/11/23
- Re: [Stow-devel] Stow 2.0.x release requirements, Alexei Znamensky, 2011/11/23
- Re: [Stow-devel] Stow 2.0.x release requirements, Karl Berry, 2011/11/23