Revison History for App::Fetchware
1.016 2016-10-07 00:22:33-04:00 America/New_York
* BREAKING CHANGE: fetchware now manually changes its umask to 0022. This is
to prevent too lenient umasks from causing fetchware's test suite to fail
due to security checks failing.
* These security checks are important, because without them other users
in your group could modify your Fetchwarefiles or fetchware packages,
and change the Fetchwarefile in malicious ways.
* This should fix some CPAN Tester FAILs.
- Fixed t/bin-fetchware-clean.t's use of cwd() instead of a tempdir(). This
should fix some CPAN Tester FAILs.
1.015 2016-09-30 19:45:58-04:00 America/New_York
- Fixed many of fetchware author tests that were holding up development.
- Including many fixes for fetchware when fetchware is run as root.
* Behavior change! Now when fetchware fails due to error and returns nonzero
it will not clean up its tempdir so that you can more easily troubleshoot
a failed run of fetchware by examining its tempdir.
* Previously, when fetchware failed it deleted everything out from under
you with no way to keep it. This may cause some build up of annoying
fetchware directories in your temp dir (just fetchware clean them),
but thats better then not being able to troubleshoot failures when
they do happen, and you care about them.
* A --keep-temp command line option was added that uses File::Temp's
global, $File::Temp::KEEP_ALL, to turn off deleting any temporary
files and directores that had CLEANUP or UNLINK turned on.
* Fetchware's CTRL-C signal handler still cleans up after fetchware,
because when you type CTRL-C you typically just want the program dead
and gone without a directory you still have to cleanup.
- Fixed github#5 in commit a3abee63 by making the regex more generic, but
still good enough to test what it needs to test.
- During testing all tests that add packages to your fetchware database
instead add them to a temporary database that is deleted during testing.
This avoids any problems of weird "testing" packages remaining in your
fetchware database due to a botched test or two.
- Fixed a bug that caused Fetchwarefiles with no_install turned on to avoid
installing your program, but they would still eroneously create and add a
fetchware package to your fetchware database, which cause any upgrade-all
runs to actually install this fetchware package. Now, no_install means no
install.
- Fixed all annoying "Use of uninitialized value" warnings in test suite,
and am commited to not let any more back in. I love taking advantage of
undef, but these warnings stink. Don't get too excited as some warnings
were left, because they happen mostly when exceptions get thrown or
directly because of how things are tested in the test suite. Furthermore,
I took my training wheels off, and finally ditched use diagnostics in each
test file. I don't need it anymore, and it makes CPAN Tester reports extra
annoying.
1.014 2014-09-12 20:55:16-04:00 America/New_York
- Fixed more CPAN Tester FAIL reports.
- Added File::HomeDir version 0.93+ as a dependency, because that's the
first production release that supported the my_dist_data() method that
Fetchware uses to store non-root fetchware database path.
- Switched to pretty much always using a tempdir for the fetchware
database path instead of the real fetchware database path. This should
fix some upgrade CPAN Tester FAILs.
- Gave up trying to test using Test::Expect if its installed. That's
still in the code, but now skip_all_unless_relase_testing() is in
front of it, so pretty much just me is the only who is ever going to
test any of the Test::Expect stuff, which is probably a good thing,
since its test reliability seems iffy.
1.013 2014-09-06 22:01:01-04:00 America/New_York
- Fixed dozens of CPAN Tester FAIL reports. These reports FAILed mostly
beause they were run under a smoker, which is a different environment, then
I test Fetchware under.
- Fixed the upgrade tests actually using the users own fetchware package
path. Now a temp file is used instead.
- Switch use of $^X to $Config{perlpath}, which solves some bugs in some
smoker configurations.
- Fixed a hilarious bug due to localizations. I used a direct string
comparison where $! was in the string, and I guess under different
locales you can get languages other than english to come from using $!
in a string.
1.012 2014-09-05 21:23:55-04:00 America/New_York
- Fixed botched use of $ENV{AUTOMATED_TESTING} to skip the interactive new
command tests.
- Fixed last of my use of smartmatch since its sadly been marked
experimental.
1.011 2014-09-05 00:59:30-04:00 America/New_York
- Added support for the new command to the Fetchware API, so Fetchware
extensions can now easily implement the new command to also help their
users easily make Fetchwarefiles.
- Also added check_syntax() to the Fetchware API providing Fetchware-level
Fetchwarefile syntax checking. No parsing of Perl is done as that's best
left to perl itself.
- The upgrade() subroutine was also added to the Fetchware API allowing
Fetchware extensions to easily change Fetchware's definition of when your
Fetchware package should be upgraded.
- Added support for these new API subroutines to Fetchware's example
Fetchware extension App::FetchwareX::HTMLPageSync.
- Added perl 5.10.1 as an "official" dependency. Each Perl file always had a
"use 5.010001;" line, but it was never declared in dist.ini.
- Many minor doc fixes and tweaks, and the Fetchware extension documentation
was updated to cover the new API subroutines new(), new_install(),
check_syntax(), and upgrade().
1.010 2013-12-14 04:10:18 America/New_York
- Fixed github#4 by added a more reliable checksum parser that should be
generic enough to parse anything simple and reasonable.
- Fixed a bug related to github#4 that caused ftp timestamp parsing to fail
if file listing had symbolic links in it.
- Also fixed the "uninitialized variables" bug again. The previous fix was
horrible. It took a few tries to figure it out, and almost resulted in
breaking fetchware's command line interface again, but my command line
tests saved me from that nightmare. Tests rule!
1.009 2013-12-11 22:41:13 America/New_York
- Fixed github#2-3 for good by introducing tests for both run() and actually
running the program with arguments to check its command line arguments.
Now, if I break the user interface, and fetchware becomes useless, I'll
actually know from just its own tests.
- Created a new testing helper subroutine, fork_ok(). All it does is fork,
execute the specified coderef, and pass or fail based on the forked
proces's exit status. Used in the test suite testing mentioned above.
- Fixed a typo that caused fetchware's -h, --help, and -? command line
options to not work at all. Until this release fetchware was calling the
help() subroutine, which no longer exists. It was renamed cmd_help() a
long time ago. This is now fixed, and tested for.
- Fixed an annoying bug that caused App-Fetchware-$VERSION.fpkg to be left
in user's fetchware package directory. Fetchware's test suite creates a
few test packages, and copies them to the user's fetchware database
directory. These packages are then deleted, because they are only used for
testing, so they do not need to be left there with the user wondering
where they came from.
- And a number of small bug fixes and typos as well.
1.008 2013-11-30 04:46:59 America/New_York
- Fixed github#1 by fixing mistakenly commented out code that was poorly
half refactored.
- Fixed github#2 and 3 by fixing botched removal of given/when in
bin/fetchware's run() subroutine.
- Fixed 2 miscellaneous bugs while fixing github#1-3.
- Fixed a bizarre HEREDOC parsing bug, caused by perl not parsing the
HEREDOC properly. Vim's syntax highlighting were also confused.
Perhaps the bug was my code? Probably was. Not bothering p5p with it.
- Fixed bug leaving test-dists in user's fetchware package database.
These really should be deleted, because test-dist and friends made by
Util's make_test_dist() subroutine do *not* actually install anything
or touch your computer at all. They just contain fake build and
install commands that just print to your screen to support testing
building and installing software without actually building or
installing stuff.
1.007 2013-11-25 23:53:58 America/New_York
- Fixed a bunch of CPAN Testers FAILs. Including:
- Weird t/bin-fetchware-upgrade.t test-dist fail bug.
- Added SKIP block unless -t to t/bin-fetchware-new.t testing.
- Fixed sort block returning undef bug, and added extra tests too.
1.006 2013-11-25 02:59:52 America/New_York
- Fixed Test::Expect CPAN Testers FAILs by switching from use to requires.
1.005 2013-11-24 01:19:18 America/New_York
- Another attempt at fixing the indexing being messed up. Turns out my
dist.init is missing a [PkgVersion] directive. I use Pod::Weaver, so I
probably removed it when I removed [PodVersion], but I should not have,
because it is still needed.
1.004 2013-11-23 02:19:58 America/New_York
- Attempt to fix bin/fetchware not properly being indexed again :)
bin/fetchware was missing a shebang line. This has been fixed. Perhaps
this is the snag preventing bin/fetchware from being indexed properly.
1.003 2013-11-23 01:42:54 America/New_York
- Fix in 1.002 failed to fix bin/fetchware indexing. Going to try giving
package fetchware; a blank line around itself maybe that will do the
trick.
1.002 2013-11-23 01:23:55 America/New_York
- Fixed bin/fetchware not being properly indexed by PAUSE due to using both
# PODNAME and a package fetchware; in the same file.
1.001 2013-11-23 00:31:02 America/New_York
- Fixed numerous simple test failures reported automatically from CPAN
Testers.
- See: http://www.cpantesters.org/distro/A/App-Fetchware.html for listing
of failed test reports. All of them failed :) Be sure to select the
reports for version 1.00, which corresponds to the version of fetchware
that was tested.
- Replaced given/when with regular ifs due to 5.18 deprecation of given/when.
- RIP given/when and smartmatch and ~~. With any luck you'll be
reincarnated soon.
1.000 2013-11-20 00:29:13 America/New_York
- Initial release!