Revision history for Carmel

v0.9.0  2022-05-14 15:59:45 PDT
    [NEW FEATURES]
        - Added carmel reinstall to rebuild build artifacts for all the dependencies (#59, #68)
        - Added carmel info as an alias for show
        - Added carmel look to open a new shell inside the build artifact directory, like cpanm --look
        - Added carmel run, like carmel exec but uses system() instead of exec() (#20)
    [BUG FIXES]
        - Ignore core modules that are not dual life e.g. strict.pm (#69)
    [IMPROVEMENTS]
        - carmel update won't downgrade if you have a higher version than what's on CPAN (#66)
        - carmel update progress bar will show the actual number of dists, rather than percentage
        - Uses https mirror (https://cpan.metacpan.org/) by default (#42)
        - Remove existing artifacts before importing, for clean install (#70)
        - carmel inject now works without cpanfile, outside a project directory (#73)
        - Documentation updates

v0.1.56  2022-05-11 12:40:21 PDT
        - carmel install without the snapshot will install the latest versions (#53)

v0.1.55  2022-05-11 00:20:03 PDT
        - carmel update now updates core modules specified in cpanfile (#48)
        - Fix a bug where carmel update fails with division by zero when there's no dist in snapshot

v0.1.54  2022-05-10 21:54:59 PDT
        - Add a simple progress bar to carmel update (#56)

v0.1.53  2022-05-10 02:16:50 PDT
        - Added new command carmel diff to nicely format cpanfile.snapshot diff (#54)

v0.1.52  2022-05-09 12:51:21 PDT
        - Fix a bug where carmel update fails when custom mirror is specified in cpanfile (#52)

v0.1.51  2022-05-09 09:59:21 PDT
        - Unified carmel update/pin and deprecated the pin command.
        - carmel update now runs much faster if you already have the build artifacts for the new version.
        - Improved the error message when carmel update conflicts with what's in cpanfile
        - Work around a corner case where carmel update fails with bad NAME in MYMETA e.g. LWP (#51)

v0.1.50  2022-05-09 00:23:17 PDT
        - Fixed a bug where core modules in the snapshot can be ignored in the fist carmel install (#47)
        - Carmel now automatically upgrades core modules specified in the snapshot if the version is
          lower than what's in core, and cpanfile doesn't have any specific requirement. (#49)
        - Speed up carmel install when all the required versions are in the artifacts

v0.1.49  2022-05-08 11:47:37 PDT
        - Speed up the artifacts search and snapshot generation with lazy-loading and JSON backend

v0.1.48  2022-05-08 02:44:56 PDT
        - Huge performance improvements for carmel update to avoid installation when there's no updates (#44)

v0.1.47  2022-05-07 22:12:42 PDT
        - Fix carmel package to not fetch from CPAN when cache is empty
        - Internal refactoring of the code base

v0.1.46  2022-05-07 14:10:39 PDT
        - New command: carmel pin to pin a module version in the snapshot without pinning it in cpanfile (#39)
        - Improve error message when a conflict is found
        - Fix a bug where a distribution can appear multiple times when downgrading a distribution (#38)
        - Make artifacts search always strict after install is done
        - Improved documentation

v0.1.45  2022-05-07 01:36:08 PDT
        - Cleanup perl5 temporary library path to avoid missing artifacts when previous
          installation was cancelled
        - Add sort to stablize carmel env/export command outputs

v0.1.44  2022-05-06 20:39:25 PDT
        - Fix a bug where Module::Build::Tiny is not installed on the first run (#34)

v0.1.43  2022-05-06 19:17:34 PDT
        - Dropped support for perl 5.12
        - Removed the experimental, undocumented binstubs command
        - Fixed so carmel command exits with non-zero upon failures
        - Fixed `carmel show Module` to work with sub-modules in a distribution

v0.1.42  2022-05-06 17:02:09 PDT
        - Documentation updates

v0.1.41  2022-05-06 14:35:01 PDT
        - Add support for carmel update Module

v0.1.40  2022-05-06 01:51:17 PDT
        - Remove the unnecessary pinning of versions restored from the snapshot (#33)

v0.1.39  2022-02-12 21:20:22 PST
        - updated docs

v0.1.38  2019-01-10 13:38:17 PST
        - Include configure/runtime dependencies for artifacts to include in cpanfile.snapshot

v0.1.37  2018-04-25 02:43:30 PDT
        - Update Menlo dependency

v0.1.36  2018-04-20 14:54:38 CEST
        - Fix the usage of Menlo::CLI::Compat to follow the change in Menlo

v0.1.35  2018-02-10 01:14:53 PST
        - Fix Carmel::Preload failing to load a module when cpanfile contains specific version
          requirements #31

v0.1.34  2016-09-25 15:24:53 PDT
        - Use cpan.metacpan.org as a default fast/backpan mirror
        - Fix SiteINC to run nested carmel exec #28

v0.1.33  2016-05-25 22:39:03 PDT
        - Same as v0.1.32

v0.1.32  2016-05-24 10:37:10 PDT
        - Allow falling back to backpan when restoring from snapshot

v0.1.31  2016-05-24 01:37:11 PDT
        - Experimental support for mirror in cpanfile
        - Support restoring exact snapshot versions via mirror-index for Menlo

v0.1.30  2016-05-23 13:32:48 PDT
        - Store configure/build requirements in snapshot as well for a compatibility with Carton

v0.1.29  2016-05-22 13:02:57 PDT
        - Fixes various corner cases to preserve snapshot versions
        - Added a workaround with optimistic snapshot upgrade in case submodules have
          non-changing versions across distribution updates
        - Make sure build cache (~/.carmel/perl-<ver>-<arch>/perl5) is blown away
        - Implemented experimental carmel update command

v0.1.28  2016-05-21 22:51:49 PDT
        - Fix bugs locating modules with undef versions in snapshot

v0.1.27  2016-05-21 22:31:27 PDT
        - Support loading versions from cpanfile.snapshot

v0.1.26  2016-05-05 10:52:46 PDT
        - Add PERL_FILE_TEMP_CLEANUP environment variable to keep build files (#21)
        - Support HOMEPATH in addition to HOME (#25)
        - Experimental support for saving cpanfile.snapshot

v0.1.25  2015-09-02 08:15:07 CEST
        - Make this a non-dev release

v0.1.24  2015-09-02 08:04:13 CEST
        - Remove snapshot support for now
        - Rename carmel install <module> to carmel inject
        - Locate cpanfile in upper directory a la Carton
        
v0.1.23  2015-08-13 14:02:08 PDT
        - Use the new dev version of Menlo CLI instead of cpanm

v0.1.22  2015-04-27 10:04:19 PDT
        - Added experimental carmel binstubs command
        - The minimum perl version requirement is now 5.12 because of the INC ordering
        - Stop installing "Guard" INC since runtime Module::CoreList is a bad idea. Instead,
          replace site_perl INC entry with a dumbed down version that only allows loading
          Carmel::Preload and its dependencies. This is like lib::core::only.

v0.1.21  2015-04-25 11:25:53 PDT
        - Fixed a bug where carmel exec fails to install the guard hook when there's no PERL5LIB
        - Added more helpful error message when you try to load Carmel::Preload outside carmel exec

v0.1.20  2015-04-25 10:21:01 PDT
        - Added Carmel::Setup to configure Carmel within a perl script
        - Removed Carmel::Runtime->require_all in favor of new Carmel::Preload
        - Documentation
        - Refactored Carmel::Runtime and split them into Runner/Setup/Preload

v0.1.19  2015-04-25 06:22:59 PDT
        - Display which dependencies are being installed in `carmel install`
        - Added an experimental `carton package` command

v0.1.18  2015-04-24 14:23:25 PDT
        - Silence ExtUtils::Install output in carmel rollout

v0.1.17  2015-04-24 12:52:07 PDT
        - add back inc entries so that some XS modules can load its objects
        - carmel exec unknowncommand will give you the error message
        - `carmel exec` after `carmel rollout` will use the modules from ./local

v0.1.16  2015-04-23 16:54:27 PDT
        - Better error message when there's a conflicting version requirement in cpanfile and
          META prereqs in dependencies
        - Change the output of carmel env slightly

v0.1.15  2015-04-23 11:02:35 PDT
        - Fix a bug in artifact search where a package with same versions do not return newer
          dists correctly. Also simplified the logic behind that search.
        - Allow utilities like prove to add INC correctly via its `-l` options in carmel exec

v0.1.14  2015-04-22 21:21:23 PDT
        - Fix a bug failing to load artifact when exact version is specified in cpanfile
        - Use -Mlib=... to load the bootstrap module

v0.1.13  2015-04-22 19:25:53 PDT
        - Implemented experimental carmel rollout command to install artifacts into ./local

v0.1.12  2015-04-22 16:42:10 PDT
        - Implemented Carmel::Runtime->require_all
        - Save and restore cpanfile prereqs in Runtime

v0.1.11  2015-04-22 12:03:03 PDT
        - Big performance optimization in carmel exec, about 20 times less overhead
        - Do not use PERL5LIB env var anymore, rather use PERL5OPT and bootstrap .pm file
        - Fix a bug where -h/-v is swallowed in carton exec
        - -v will make cpanm installation a bit verbose too

v0.1.10  2015-04-21 15:04:06 PDT
        - Fixed a bug in 0.1.9 on sorting versions
        - use fatscript version of cpanm so that 'cpanm' in $PATH won't be used ala Carton (#7)

v0.1.9  2015-04-21 14:24:36 PDT
        - added -h and -v|--verbose for debugging
        - Internal refactoring and (de-)optimizations on artifact loading

v0.1.8  2015-04-20 21:40:06 PDT
        - Change the default base to ~/.carmel/5.20.2-{arch} rather than ~/.perl-carmel/5.020002-{arch}

v0.1.7  2015-04-20 14:44:20 CEST
        - Fix dependencies count display when 'perl' is in cpanfile
        - Fix the ordering of %ENV in exec when PATH/PERL5LIB is already set (#4)

v0.1.6  2015-04-20 01:55:23 CEST
        - up dependency on Carton
        - Fixed an issue with exact v-strings in requirements

v0.1.5  2015-04-19 16:07:40 CEST
        - `carmel install` now only installs missing requirements
        - internal refactorings
        - add `carmel show` command
        - add help and version subcommand
        - requires newer cpanm that supports better cpanfile requirement support

v0.1.4  2015-04-18 19:52:12 CEST
        - Fixed an issue with Devel::Carmel where Module::Runtime requires the module
        - Pass requirements as a dumped cpanfile to cpanm for more accurate requirements
        - Merge carton .snapshot if it's there
        - Display all required modules after carmel install
        - Set -q option in internal invocation of cpanm, just like Carton
        - When finding artifacts, honor the requirements built out of cpanfile and snapshot

v0.1.3  2015-04-18 12:12:49 CEST
        - Better display in carmel install to show already built modules
        - Big performance optimization in carton list/tree/exec
        - require newer cpanminus (marcus++)
        - skip Carton's cpanfile.snapshot support for now (marcus++)

v0.1.2  2015-04-17 23:25:24 CEST
        - fix possible infinite loop in many commands
        - implement tree command

v0.1.1  2015-04-17 22:45:55 CEST
        - include archname in build artifacts directory
        - remove unused modules

v0.1.0  2015-04-17 19:59:52 CEST
        - Initial release