2012-01-13 12:48 -0500 djerius (f602e5fbe464 [tip]) * lib/App/Env.pm, t/capture.pl, t/capture.t: qexec incorrectly always acted as if it were called in scalar context 2012-01-13 12:47 -0500 djerius (9d0004f64672) * Makefile.PL, lib/App/Env.pm: remove workaround for bug in old version of Capture::Tiny; require fixed version of that module 2010-06-09 10:39 -0400 djerius (05d4cd7fdc00) * .hgtags: Added tag 0.24 for changeset c72537afe533 2010-06-07 17:19 -0400 djerius (c72537afe533 [0.24]) * ChangeLog: update log release 2010-06-07 17:19 -0400 djerius (deba6d724737) * t/temp.t: fix test count 2010-06-07 17:15 -0400 djerius (538d00154e1b) * ChangeLog, Changes, lib/App/Env.pm: update logs and version for release 2010-06-07 17:14 -0400 djerius (45c4eaef5b19) * lib/App/Env.pm, t/temp.t: pass SysFatal option to Temp environments 2010-06-07 16:50 -0400 djerius (802e917b22d2) * .hgtags: Added tag 0.23 for changeset 9820e61945d2 2010-06-07 16:49 -0400 djerius (9820e61945d2 [0.23]) * ChangeLog, Changes, lib/App/Env.pm: update logs and version for release 2010-06-07 16:46 -0400 djerius (d76b3b83b0d3) * t/capture.t: fix test count 2010-06-07 16:44 -0400 djerius (42c81cc36fcb) * t/capture.pl, t/capture.t: new file. * Makefile.PL, lib/App/Env.pm, t/capture.pl, t/capture.t: upgrade capture() to return both stdout and stderr 2010-06-03 16:51 -0400 djerius (581e614d0034) * .hgtags: Added tag 0.22 for changeset b612c276fbe3 2010-06-03 16:00 -0400 djerius (b612c276fbe3 [0.22]) * ChangeLog, Changes, lib/App/Env.pm: update logs and version for release 2010-06-03 14:17 -0400 djerius (e892fa436be1) * t/appid.t: new file. * t/appid.t: test for CacheId = AppId 2010-06-03 14:07 -0400 djerius (fdb362c4a883) * t/cache_sig.t: new file. * lib/App/Env.pm, t/cache_sig.t: fix bug in signature code; never worked! 2010-06-03 12:46 -0400 djerius (df10a07b912c) * t/badmodule.t, t/cache.t, t/env.t: cleanup extraneous trailing whitespace 2010-06-03 12:44 -0400 djerius (04161d54281d) * lib/App/Env.pm: if CacheID => AppID, environment signature ignores AppOpts. * cache id creation is now centralized in an App::Env::_app method. * if CacheID is equal to the string AppID, the signature is generated just from the full module name (as it was in olden times). 2010-06-03 12:41 -0400 djerius (192a3a94287f) * lib/App/Env.pm: code cleanup: use accessors isntead of direct access; rename them for consistency. 2010-06-02 17:39 -0400 djerius (50a747222877) * lib/App/Env.pm: code clean up: use accessor for _app object 2010-06-02 16:27 -0400 djerius (056c1f7b985a) * lib/App/Env.pm: fix pod error 2010-06-02 13:31 -0400 djerius (c97b682e0a99) * .hgtags: Added tag 0.21 for changeset 2c4337cc45f8 2010-06-02 13:30 -0400 djerius (2c4337cc45f8 [0.21]) * ChangeLog, Changes, lib/App/Env.pm: update logs and version for release 2010-06-02 10:54 -0400 djerius (8f393076b284) * lib/App/Env.pm, t/clone.t: remove missed vestige of Object::ID. rename object_id to lobject_id to not collide with possibly working future version of Object::ID. 2010-06-02 10:27 -0400 djerius (d37484ebb771) * Makefile.PL, lib/App/Env.pm, t/clone.t: replace Object::ID with homegrown variant Object::ID uses Hash::FieldHash, which tries for backwards compatibility with older Perls. Unfortunately it triggers a stringification of the App::Env object (which has stringification overloaded), which causes problems. Instead, a kludgy replacement has been written. 2010-06-01 13:07 -0400 djerius (75844f138bf0) * .hgtags: Added tag 0.20 for changeset 01c4718241d1 2010-06-01 13:07 -0400 djerius (01c4718241d1 [0.20]) * ChangeLog, Changes, lib/App/Env.pm: update version & logs for release 2010-05-28 12:10 -0400 djerius (571553dcf7c5) * t/system.t: make test more Windows friendly, expand test suite 2010-05-28 11:43 -0400 djerius (31ca577be894) * lib/App/Env.pm: use IPC::System::Simple to emulate qx{} to avoid Windows problems 2010-05-28 11:15 -0400 djerius (57642f58c32b) * lib/App/Env.pm: don't import from UNIVERSAL; that is deprecated behavior 2010-05-28 11:09 -0400 djerius (a9e1faab2050) * t/appexec.pl: new file. * t/appexec.pl, t/appexec.t: try to get test to work under Windows 2010-05-28 10:51 -0400 djerius (71530433920b) * lib/App/Env.pm: add note about how cache id is generated 2010-05-28 10:50 -0400 djerius (009852f9bfaf) * lib/App/Env.pm: scan for digest algorithm didn't actually try different algorithms 2010-05-27 18:24 -0400 djerius (d80cb2584b7d) * lib/App/Env.pm: pretty up example section 2010-05-27 18:23 -0400 djerius (440ba8bd3849) * lib/App/Env.pm: provide example of localizing changes to an environment using the Temp option 2010-05-27 17:44 -0400 djerius (ec25269847ea) * t/temp.t: new file. * lib/App/Env.pm, t/temp.t: add "Temp" object support 2010-05-27 17:25 -0400 djerius (c809245031f8) * lib/App/Env.pm: clarify which objects may uncache an environment 2010-05-27 17:25 -0400 djerius (78ed58cfd4e5) * t/clone.t: new file. * lib/App/Env.pm, t/clone.t: added clone() method, docs, and tests 2010-05-27 17:24 -0400 djerius (84c6ef57e3dc) * t/retrieve.t: fix duplicate variable definition warning 2010-05-27 17:09 -0400 djerius (bce78efc732c) * t/retrieve.t: new file. * t/retrieve.t: add test for retrieve class function 2010-05-27 16:57 -0400 djerius (ee34a2f2c366) * lib/App/Env.pm: added retrieve class function, updated docs to reflect how cacheid and environment signature works. 2010-05-27 16:55 -0400 djerius (b6ea8039498c) * lib/App/Env.pm: fix ambiguous (and wrong) method names 2010-05-27 16:53 -0400 djerius (09e2bc125c7c) * lib/App/Env.pm: fix typo. 2010-05-26 17:59 -0400 djerius (e34abf326c69) * lib/App/Env.pm: no longer using references to track objects; remove unneeded code & dependency 2010-05-26 16:51 -0400 djerius (c5f512a14880) * Makefile.PL, lib/App/Env.pm: use Object::ID to track parent object for cached _app objects When an App::Env object is cached, it's really the underlying _app object that is cached. The cached object keeps track of its "parent" App::Env object to ensure that only that object can uncache it. Previously refaddr was used to identify the parent object; this may not stay constant. Now Object::ID is used. 2010-05-26 12:06 -0400 djerius (ebe057b14652) * lib/App/Env.pm: The contents of AppOpts are now included in the cacheid. 2010-05-25 18:00 -0400 djerius (51815b4cf4e6) * lib/App/Env.pm: update docs for new public cacheid method 2010-05-25 17:53 -0400 djerius (3b21bafaf4c3) * lib/App/Env.pm: simplify code to generated cacheid as the fancy stuff was never used 2010-05-25 17:51 -0400 djerius (c3f92be9f3d3) * lib/App/Env.pm: use method rather than poke directly into hash to get value. 2010-05-25 14:16 -0400 djerius (d922fbb9a9b1) * lib/App/Env.pm: remove unused variable 2010-05-25 13:53 -0400 djerius (306de8720ae6) * lib/App/Env.pm: add some visual blocking into code 2010-05-25 13:50 -0400 djerius (19054e4b29d6) * lib/App/Env.pm: remove spurious end of line whitespace 2010-05-25 13:49 -0400 djerius (e3b683f53f1b) * lib/App/Env.pm: remove hideous symbolic reference in alias code; can() returns a reference to the subroutine 2008-10-27 14:20 -0400 djerius (e6f62a9fa019) * .hgtags: Added tag 0.15 for changeset 9258870b5d3c 2008-10-27 14:20 -0400 djerius (9258870b5d3c [0.15]) * ChangeLog, Changes, bin/appexec, lib/App/Env.pm: update logs and version for release 2008-10-27 14:15 -0400 djerius (eb063fbbcce5) * lib/App/Env.pm: use more conservative approach to escaping shell magic characters. Rather than escaping known "bad" characters, escape all characters that are not known to be good. This should fix the problem of missing some characters, at the expense of a few extra escapes. Also, removed the logic which escaped white space in strings by quoting the string to simplify things. Now they're escaped via the standard backslash mechanism. 2008-07-11 21:19 -0400 djerius (97a5898b84fd) * .hgtags: Added tag 0.14 for changeset d280f4910272 2008-07-11 21:19 -0400 djerius (d280f4910272 [0.14]) * ChangeLog, Changes, bin/appexec, lib/App/Env.pm: update logs and version for release 2008-07-11 21:16 -0400 djerius (70f7fa764662) * lib/App/Env.pm: add more escaped shell magic characters 2008-07-11 17:21 -0400 djerius (b6be5fd98cdf) * .hgtags: Added tag 0.13 for changeset df6f823ff77e 2008-07-11 16:01 -0400 djerius (df6f823ff77e [0.13]) * ChangeLog, Changes, bin/appexec, lib/App/Env.pm: update logs and version for release 2008-07-11 15:58 -0400 djerius (416230cc9bdd) * bin/appexec: append a semi-colon to appexec's dumpenv output so that a shell eval will actually work 2008-07-11 15:50 -0400 djerius (a58cb17a068f) * .hgtags: Added tag 0.12 for changeset 7c1c804f6cda 2008-07-11 13:32 -0400 djerius (7c1c804f6cda [0.12]) * ChangeLog, Changes, bin/appexec, lib/App/Env.pm: update logs and version for release 2008-07-11 13:27 -0400 djerius (3bf768a1de9b) * bin/appexec: add (t)csh dumpenv output, make its argument mandatory (to reduce confusion). minor code cleanup 2008-06-16 12:36 -0400 djerius (3e7c34e9a81d) * .hgtags: Added tag 0.11 for changeset 7b894daef420 2008-06-16 12:30 -0400 djerius (7b894daef420 [0.11]) * ChangeLog, Changes, lib/App/Env.pm: update logs and version for release 2008-06-16 12:29 -0400 djerius (9405ca8c69ab) * .hgtags: Added tag 0.10 for changeset d42ecd1ead89 2008-06-16 12:25 -0400 djerius (5d7911b71671) * t/setenv.t: new file. * lib/App/Env.pm, t/setenv.t: add setenv() method to change the environment 2008-06-16 12:07 -0400 djerius (ff94dd76f646) * lib/App/Env.pm: try harder not to auto-vivify environment variables 2008-06-15 23:30 -0400 djerius (d42ecd1ead89 [0.10]) * ChangeLog, Changes, lib/App/Env.pm: update logs and version for release 2008-06-15 23:09 -0400 djerius (6cd0ec6d6198) * t/00-load.t: new file. * t/00-load.t: add boilerplate initial load test 2008-06-15 23:08 -0400 djerius (514bbc511898) * t/perlcritic.t: new file. * lib/App/Env.pm, lib/App/Env/Example.pm, t/perlcritic.t: added perlcritic tests. cleaned up source to pass tests 2008-06-15 22:55 -0400 djerius (a8241e191266) * t/pod.t: new file. * t/pod.t: add pod test 2008-06-15 22:55 -0400 djerius (a218d2ed3e9e) * t/pod-coverage.t: new file. * lib/App/Env.pm, t/pod-coverage.t: add pod-coverage test, clean up errors 2008-06-15 22:53 -0400 djerius (02795a607c6d) * t/default.t: new file. * lib/App/Env.pm, t/default.t: add facility to change option defaults: new config function Default option values may now be set using the new config function or by passing a single hashref argument when importing the package with use. 2008-06-15 22:49 -0400 djerius (8f6610976844) * t/fatal.t: new file. * Makefile.PL, lib/App/Env.pm, t/fatal.t: Added SysFatal option; causes system/qexec/capture methods to die on error. if SysFatal is set for an environment, IPC::System::Simple is used to invoke the system, qexec and capture (a new alias for qexec). 2008-03-22 22:54 -0400 djerius (cf62d82334af) * .hgtags: Added tag 0.09 for changeset ba4bee9fccf7 2008-03-22 22:54 -0400 djerius (ba4bee9fccf7 [0.09]) * ChangeLog: really update for release 2008-03-22 22:54 -0400 djerius (0f277be771bb) * .hgtags: Removed tag 0.09 2008-03-22 22:51 -0400 djerius (127392a96f69) * .hgtags: Added tag 0.09 for changeset d5aed4eacb97 2008-03-22 22:50 -0400 djerius (d5aed4eacb97) * Changes, bin/appexec, lib/App/Env.pm: update for release 2008-03-22 22:44 -0400 djerius (c95c70b57384) * lib/App/Env.pm, t/alias.t: lowercase aliasing failed if Site was not set. 2008-03-22 22:09 -0400 djerius (3983fbc2fa75) * .hgtags: Added tag 0.08 for changeset cca292f76ae2 2008-03-22 22:09 -0400 djerius (cca292f76ae2 [0.08]) * ChangeLog, Changes, bin/appexec, lib/App/Env.pm: update for release 2008-03-22 22:03 -0400 djerius (5be33197bec5) * README, lib/App/Env.pm, t/alias.t: application module search is no longer sensitive to the case of the application name - removed confusing references to package instead of application in docs - updated copyright date 2008-03-22 18:14 -0400 djerius (37e17fd4fe62) * .hgtags: Added tag 0.07 for changeset bdfd9f1ef7e4 2008-03-22 18:14 -0400 djerius (bdfd9f1ef7e4 [0.07]) * t/envstr.t: update TERMCAP test; not all platforms have it! 2008-03-22 18:08 -0400 djerius (ef3b0e4d7b98) * ChangeLog, Changes: update for release 2008-03-22 18:07 -0400 djerius (6981a6673e36) * t/envstr.t: improved TERMCAP testing 2008-03-22 18:02 -0400 djerius (2257fa1aa1fa) * lib/App/Env.pm, t/envstr.t: explicit request required for str() to output TERMCAP, to simplify Excludes 2008-03-22 17:21 -0400 djerius (456572d64437) * ChangeLog, Changes, bin/appexec, lib/App/Env.pm: update for release 2008-03-22 17:18 -0400 djerius (91e9e88e4e2d) * lib/App/Env.pm, t/env.t, t/envstr.t: merged env()/str() Include behavior into list of vars; str now takes variable names, normalized return behavior of env() in list/scalar context. env() & str() variable name, Include & Exclude behavior was too complex. the Include option was partially duplicating the list of names at the front of the argument list. The Include option was removed and the list of variable names was upgraded to a list of match specifications. str() now has the same argument signature as env(). The return from env() in different contexts was too inflexible (and maybe a bit inconsistent). It is now deterministic and documented (and perhaps too flexible). 2008-03-22 13:17 -0400 djerius (b84150d5cf3e) * t/App/Env/Site1/App3.pm, t/App/Env/Site1/App4.pm: new file. * t/App/Env/Site1/App3.pm, t/App/Env/Site1/App4.pm: forgot to add alias test env modules 2008-03-22 13:03 -0400 djerius (0f05405c3b60) * lib/App/Env.pm, lib/App/Env/Example.pm, t/alias.t: allow aliases to preset AppOpts 2008-03-22 11:57 -0400 djerius (518b4be49ba5) * t/appexec.t: fix compilation warning 2008-03-22 11:50 -0400 djerius (ac4dd95232a8) * Makefile.PL: add more dependencies, cleanups, use Module::Install to check Perl version 2008-03-22 11:50 -0400 djerius (e9d63554448f) * t/appexec.t: new file. * t/appexec.t: new appexec test; also tests alias 2008-03-22 11:48 -0400 djerius (968e8b1f61ea) * bin/appexec: appexec could not handle commands with an absolute path 2008-03-22 11:25 -0400 djerius (c67242602649) * Makefile.PL: require Perl > 5.8.0; won't work on earlier versions 2008-03-22 10:24 -0400 djerius (0d69fd7379d0) * Makefile.PL: update module list 2008-03-22 08:29 -0400 djerius (5d8f5a2a90b4) * t/alias.t: new file. * t/alias.t: test aliasing functionality 2008-03-22 08:28 -0400 djerius (b69ece6df73e) * lib/App/Env.pm: make site search follow specs. introduce aliases a rather too big patch: - site hiearchy traversals weren't quite right, especially for uncaching - added "alias" option, which allows a module to masquerade as another. - use Module::Find to distinguish between non-existant app modules and app modules with compile time errors. - various bits of code cleanup 2008-03-22 08:12 -0400 djerius (84041e9437a6) * t/envstr.t: limit envstr so shell isn't overflowed on some CPAN test systems 2008-03-22 08:09 -0400 djerius (9850395e9445) * lib/App/Env.pm, t/App/Env/Site1/App1.pm, t/env.t: add Include functionality to env & envstr to include particular variables 2008-03-22 08:01 -0400 djerius (03ee877b4a63) * t/cache.t: ensure envs for correct site are uncached 2008-03-22 07:11 -0400 djerius (39c9e071c203) * lib/App/Env/Example.pm: introduce the concept of Pristine environments 2008-03-21 22:56 -0400 djerius (d6fa755a3300) * t/env.t, t/envstr.t: syntax bug in test resulted in test failure, but test was expected to fail. 2008-02-03 14:15 -0500 djerius (b5853610733a) * .hgtags: Added tag 0.06 for changeset 890de36e3052 2008-02-03 14:13 -0500 djerius (890de36e3052 [0.06]) * ChangeLog, Changes: update for release 2008-02-03 14:10 -0500 djerius (63d9df4e0bbe) * Makefile.PL: fix up dependencies 2008-02-03 14:10 -0500 djerius (5ffd8de4e518) * lib/App/Env.pm, lib/App/Env/Example.pm, t/cache.t: fix multi-app environments multi-app environments had a number of fundamental problems. * the method for merging individual application's environments was extremely simplistic and could result in parts of an app's environment being reset. * application environments were not necessarily based on the current environment and when applied could reset the user's environment. This problem was found for environments created by shell scripts where the user's profile or .cshrc was sourced as part of the shell invocation, in many cases resulting in a reset of the environment to its inital state at login. To avoid these problems, a new restriction was placed upon the application specific modules. They must create their environments based upon the current one, merging their changes into it. When creating a merged environment, the application modules are successively invoked on a copy of the current environment and the final environment is used. Previously the modules' environments were "merged" in a rather inflexible manner, resulting in overwriting changes. This also means that 1) cached application environments can't be used during a merger and 2) application environments can't be cached during the course of a merger. 2008-02-03 13:52 -0500 djerius (97935eccd72e) * t/App/Env/App1.pm, t/App/Env/App2.pm, t/App/Env/Site1/App1.pm, t/App/Env/Site1/App2.pm, t/App/Env/Site2/App1.pm: added debug statements 2008-01-17 15:59 -0500 djerius (255e3012e783) * .hgtags: Added tag 0.05 for changeset e312af21854f 2008-01-17 15:54 -0500 djerius (e312af21854f [0.05]) * bin/appexec: fixed incorrect Getopt::Long configuration 2008-01-17 15:53 -0500 djerius (c45370921fbc) * .hgtags: Removed tag 0.05 2008-01-17 15:21 -0500 djerius (14f8a6a44461) * .hgtags: Added tag 0.05 for changeset 4c9ce9315ca8 2008-01-17 15:21 -0500 djerius (4c9ce9315ca8) * ChangeLog, Changes, README, lib/App/Env.pm: udpate for release 2008-01-17 15:14 -0500 djerius (649b4e3e59e6) * bin/appexec: new file. * bin/appexec, lib/App/Env.pm: added appexec 2008-01-17 15:13 -0500 djerius (f10f36d537d0) * MANIFEST.SKIP: new file. * MANIFEST: deleted file. * MANIFEST, MANIFEST.SKIP, Makefile.PL: administrative cleanup; use Module::Install 2008-01-17 14:16 -0500 djerius (8ab803f914ed) * lib/App/Env.pm: improve documentation 2008-01-17 14:09 -0500 djerius (6a62010f989c) * lib/App/Env/Example.pm: fix typo 2007-09-20 21:04 -0400 djerius (9d0a1aa99422) * .hgtags: Added tag 0.04 for changeset 60316599e900 2007-09-20 21:04 -0400 djerius (60316599e900 [0.04]) * ChangeLog, Changes, lib/App/Env.pm: update for release 2007-08-17 17:01 -0400 djerius (06e0a82a4657) * lib/App/Env.pm, lib/App/Env/Example.pm, t/App/Env/Site1/App1.pm: The AppOpts hash is now passed as the sole parameter to the envs function. Clean up mess from previous work where the app env module's envs() function took a more complicated input parameter. Now just gets the AppOpts hash directly. 2007-08-17 14:39 -0400 djerius (d28d330df856) * MANIFEST: remove META.yml; seems to mess up make dist 2007-08-17 14:37 -0400 djerius (3f4fb7f7eab7) * .hgtags: Added tag 0.03 for changeset d36b41d3f2f0 2007-08-17 14:37 -0400 djerius (d36b41d3f2f0 [0.03]) * ChangeLog, Changes, lib/App/Env.pm: update for release 2007-08-17 12:26 -0400 djerius (7a3552e41221) * Makefile.PL, lib/App/Env.pm: don't use Module::Load::Conditional. clean up envs invocation. Originally Module::Load::Conditional was used to determine whether a module existed separately from whether there was an error during its compilation (Module::Load doesn't distinguish this case). However Module::Load::Conditional's dependency chain is larger than I'd like. Instead, Module::Load was emulated using eval "require $module". Same results, perhaps less efficient because it requires a run time compilation. calling the envs function in the application environment module is no longer done with eval (once I figured out how to get the symbolic reference to work). 2007-08-17 12:20 -0400 djerius (d3d9720ca944) * t/badmodule.t: new file. * t/badmodule.t: add test for non-existent module 2007-08-16 17:11 -0400 djerius (d9b5f649ec19) * .hgtags: Added tag 0.02 for changeset 1dc9ba777697 2007-08-16 17:11 -0400 djerius (1dc9ba777697 [0.02]) * ChangeLog, Changes, MANIFEST, lib/App/Env.pm: update for release 2007-08-16 17:04 -0400 djerius (45d4f9205efd) * lib/App/Env.pm: older perl's don't have weak references; code around that 2007-08-16 16:08 -0400 djerius (4f63370307b0) * .hgtags: new file. * .hgtags: Added tag 0.01 for changeset f113452d5ba2 2007-08-16 16:08 -0400 djerius (f113452d5ba2 [0.01]) * ChangeLog, Changes, LICENSE, MANIFEST, Makefile.PL, README, lib/App/Env.pm, lib/App/Env/Example.pm, t/App-Env.t, t/App/Env/App1.pm, t/App/Env/App2.pm, t/App/Env/Site.pm, t/App/Env/Site1/App1.pm, t/App/Env/Site1/App2.pm, t/App/Env/Site2/App1.pm, t/cache.t, t/env.t, t/envstr.t, t/site1.t, t/site2.t, t/site3.t, t/system.t, t/use1.t, t/use2.t, t/use3.t: new file. * ChangeLog, Changes, LICENSE, MANIFEST, Makefile.PL, README, lib/App/Env.pm, lib/App/Env/Example.pm, t/App-Env.t, t/App/Env/App1.pm, t/App/Env/App2.pm, t/App/Env/Site.pm, t/App/Env/Site1/App1.pm, t/App/Env/Site1/App2.pm, t/App/Env/Site2/App1.pm, t/cache.t, t/env.t, t/envstr.t, t/site1.t, t/site2.t, t/site3.t, t/system.t, t/use1.t, t/use2.t, t/use3.t: initial version