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
    - 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

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

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

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
      - See: 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!