Revision history for Carmel v0.9.1 2022-05-20 14:55:34 PDT [IMPROVEMENTS] - Added a file-based lock during install/update run to avoid corrupted artifacts (#41, #79) - Improved error message for running under -T (#76) 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--/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 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