Commit graph

470 commits

Author SHA1 Message Date
Phil Hagelberg
10edee1d6f Fix bug where normalize-repos wasn't honoring mapization of entries. 2012-08-30 09:59:03 -07:00
Phil Hagelberg
8c68621ce8 Only apply workaround to Windows bug when not trampolining.
Fixes #674.
2012-08-30 09:14:38 -07:00
Hugo Duncan
0457aabdb2 Allow override of gpg executable using LEIN_GPG
On some platforms, eg. Mac, it may be more desirable to use an executable other
than 'gpg' for signing and encryption, and it may not be possible to symlink to
'gpg'. This allows the gpg executable used in lein to be specified via LEIN_GPG.

You can use ~/.lein/leinrc or ~/.leinrc to set LEIN_GPG by adding
'export LEIN_GPG=your-gpg' to either of those files.
2012-08-30 09:36:09 -04:00
Phil Hagelberg
a2d2b92d01 Don't insert :deploy-repositories/:plugin-repositories keys without vals.
This implementation is awful awful awful; must revisit.
2012-08-29 19:50:53 -07:00
Ryan Fowler
c3bd307da4 Propogates the file.encoding system property to subprocesses
On a coworker's Mac, the default file encoding was apparently
MacRoman. The -Dfile.encoding=UTF-8 that's in the lein shell script
wasn't being propogated to subprocesses which caused rage and the
replacement character.
2012-08-29 17:40:40 -05:00
Phil Hagelberg
e9e11309aa Don't suppress stack traces unless it was an explicit exit thrown. 2012-08-29 09:42:14 -07:00
Phil Hagelberg
b5ea5a0f09 Normalize format of :deploy-repositories and :plugin-repositories too.
Fixes #752.
2012-08-28 09:15:21 -07:00
Phil Hagelberg
f633c90164 Back to 2.0.0-SNAPSHOT. Next release will be RC1, for reals. 2012-08-25 18:41:32 -07:00
Phil Hagelberg
3b1924e538 Release 2.0.0-preview10. 2012-08-25 16:49:21 -07:00
Phil Hagelberg
3de5208a8e Load plugins based on default project so :repositories are available.
Fixes #747.
2012-08-25 16:44:46 -07:00
Phil Hagelberg
3106e21459 Fix warn-user-repos for new :repositories format. 2012-08-25 16:39:25 -07:00
Phil Hagelberg
e29418dc58 Bump back to 2.0.0-SNAPSHOT. 2012-08-24 17:26:00 -07:00
Phil Hagelberg
88f00af830 Release 2.0.0-preview9. 2012-08-24 17:02:17 -07:00
Marshall T. Vandegrift
da5e9721d7 Include :dev profile before :provided, giving :dev priority. 2012-08-24 07:46:13 -04:00
Phil Hagelberg
b4cc744efd Merge remote branch 'llasram/provided-profile' 2012-08-23 14:49:32 -07:00
Phil Hagelberg
037cc96941 Perform de-duplication on :repositories. 2012-08-23 14:35:25 -07:00
Phil Hagelberg
b5a193d331 Switch :repositories to vector format to preserve ordering.
See http://librelist.com/browser/leiningen/2012/8/17/ordering-issues-with-repositories/
for motivation.
2012-08-23 14:34:58 -07:00
Justin Balthrop
72969e7e55 forgot to switch plugin-vars calls to pass keywords 2012-08-23 13:31:30 -07:00
Justin Balthrop
ff5524bdf1 support disabling autoload of plugin hooks and middleware 2012-08-23 13:29:37 -07:00
Justin Balthrop
99a7bfcea0 Fix #742, explicit middleware load error
Don't call set-profiles from leiningen.core.project/read because it
calls load-middleware, and we want to wait to do that for the first time
in init-project. To solve this, I added init-profiles which is called by
both read and set-profiles.

Also clean up init-project and move code duplicated in set-profiles into
activate-middleware. We now always load hooks and certificates when
activating middleware, and load-certificates is actually called twice in
the course of init-project. To make sure load-certificates is
idempotent, we memoized leiningen.core.ssl/register-scheme.
2012-08-23 12:43:14 -07:00
Justin Balthrop
d7488b2bf9 add breaking test for #742 2012-08-23 12:39:44 -07:00
Marshall T. Vandegrift
f416ad9481 Implement Maven "provided" scope with :provided profile. 2012-08-23 14:33:42 -04:00
Justin Balthrop
cc7d759c10 use (get project key) to be consistent 2012-08-23 11:31:00 -07:00
Phil Hagelberg
d4acd839fd Stop using project metadata for storing trampoline forms. 2012-08-23 10:56:59 -07:00
Justin Balthrop
aff5243920 unify :hooks and :middleware format in project.clj
Both now expect a full var, though hooks will fall back to activate in
the provided namespace for compatibility.

Also, use the following convention for plugin auto hooks and middleware:
- Assuming your plugin is called lein-config
- Put hooks you want auto-loaded in lein-config.plugin/hooks
- Put middleware you want auto-applied in lein-config.plugin/middleware
2012-08-22 13:17:27 -07:00
Phil Hagelberg
1ef883a408 set-profiles it is. and it's a high-level operation. 2012-08-22 12:08:02 -07:00
Phil Hagelberg
2348b6b619 Fix with-profile task to work from the base project rather than being additive. 2012-08-22 12:04:17 -07:00
Phil Hagelberg
f6e5959e7c Fix with-profiles to work outside project dir. 2012-08-22 11:59:51 -07:00
Phil Hagelberg
8e15d2ded5 Document profile merge logic a bit. 2012-08-22 11:41:04 -07:00
Phil Hagelberg
00ee950ef9 Load hooks inside reset-profiles. Fixes #740. 2012-08-22 11:40:51 -07:00
Phil Hagelberg
4a6953c881 Rename with-profiles to reset-profiles.
with-profiles is too close to the task name, especially considering
the with-profile task is aliased to with-profiles.
2012-08-22 11:31:25 -07:00
Phil Hagelberg
19ed0ea0b6 Fix out-of-project repls. 2012-08-22 10:42:57 -07:00
Phil Hagelberg
a04be9b655 Don't store prep blocker on project metadata. 2012-08-22 10:02:55 -07:00
Phil Hagelberg
cc16a95a59 Collapse load-hooks into one doseq. 2012-08-22 10:01:57 -07:00
Phil Hagelberg
9b22d6cdd7 The newnew plugin lives in default-profiles, not the default project. 2012-08-22 09:32:16 -07:00
Justin Balthrop
6cf023e101 rename reset-profiles to with-profiles 2012-08-21 18:46:09 -07:00
Justin Balthrop
badeefc6db fix unmerge-profiles to work with composite profiles
Previously, you could not unmerge composite profiles. So, if the
currently active profiles were [:default], which is a composite of
[:dev :user :base], then (unmerge-profiles project :dev) would do
nothing. To fix this, we have to keep track of both :included-profiles
and :excluded-profiles.

I also combined apply-profiles and reset-profiles into a single function
called reset-profiles with an optional excluded-profiles argument and
renamed apply-profiles-raw to apply-profiles.
2012-08-21 18:20:49 -07:00
Phil Hagelberg
a28cd82bd0 Don't try to merge profiles without an active project.
We should simply use the user profile directly rather than trying to
merge it in.
2012-08-21 15:32:22 -07:00
Phil Hagelberg
47cc271249 Prefer vary-meta to with-meta. Rename combine-profiles to apply-profiles-raw. 2012-08-21 14:53:54 -07:00
Phil Hagelberg
3e5f3c77be Rename resolve-symbol -> require-resolve. 2012-08-21 14:51:29 -07:00
Phil Hagelberg
a4b7ded2aa Trim long lines in leiningen-core. 2012-08-21 14:49:39 -07:00
Phil Hagelberg
cb134380a2 Merge pull request #737 from jeremyheiler/master
:plugin-repositories for #717
2012-08-18 13:38:28 -07:00
Justin Balthrop
314f27ef81 Support ext dependencies in eval-in :classloader
Any dependency marked with :ext true will be loaded by the ext class loader.
Libraries with native dependencies (e.g. tokyocabinet) need to be loaded by
the ext classloader, because native libraries can only be loaded once per
JVM. Also, most SQL libraries (e.g. postgresql) need to be in the ext class
loader because java.sql.DriverManager holds onto the class.
2012-08-18 09:01:12 -07:00
Justin Balthrop
d5a9e18e7b Better error messages for eval-in :classloader
Print the exception and	stacktrace inside eval-in :classloader
and throw an ex-info just like eval-in :subprocess.
2012-08-18 09:00:06 -07:00
Justin Balthrop
ce4e1c9f74 Make :eval-in :classloader work with native deps
Use 0.6.6 classlojure's alter-java-library-path! to set java.library.path
at runtime.

Perhaps we should be setting all of these system properties back after
we are done, including this one?
2012-08-18 08:50:05 -07:00
Jeremy Heiler
c9a89f2ffd Allow for plugin specific repositories with :plugin-repositories. 2012-08-18 10:27:46 -04:00
Phil Hagelberg
29673a7a56 Latest lein-newnew version. Fixes #638. 2012-08-17 17:10:45 -07:00
Phil Hagelberg
a01f13935b Allow fix for recursive aliases to apply globally. 2012-08-17 13:46:34 -07:00
Phil Hagelberg
cbdf49168e Allow :eval-in to be a symbol instead of a keyword. 2012-08-17 13:11:00 -07:00
Phil Hagelberg
fc71f68372 Support setting HTTPS proxy properties. Fixes #706. 2012-08-17 10:13:18 -07:00
Phil Hagelberg
d76f796047 Support picking up :dependencies from profiles in trampoline task.
Fixes #695.
Fixes #732.
2012-08-16 13:47:19 -07:00
Phil Hagelberg
fc7e3c7cb9 Back to snapshot. 2012-08-16 13:17:59 -07:00
Phil Hagelberg
ff8ed7f6a8 Release 2.0.0-preview8. 2012-08-16 11:06:45 -07:00
Phil Hagelberg
d1ba7d7d10 Ensure we don't exit without at least a message. 2012-08-16 10:41:12 -07:00
Justin Balthrop
f263db162a Preserve metadata on project in merge/unmerge/reset-profiles
This fixes the bug that was causing 'lein repl' to hang.
2012-08-14 14:49:57 -07:00
Justin Balthrop
6358a9466d only nedd to print an error about explicit hooks that cannot be resolved 2012-08-14 11:58:08 -07:00
Justin Balthrop
2c8b4ce0cc add missing utils require 2012-08-13 12:06:10 -07:00
Justin Balthrop
e491e76811 report errors better in load-hooks
- report require and activation errors separately
- don't complain if plugin-hooks are missing

Conflicts:
	leiningen-core/src/leiningen/core/utils.clj
2012-08-13 12:01:14 -07:00
Justin Balthrop
c0efbd1e7c use resolve-symbol for hooks and middleware 2012-08-13 11:48:38 -07:00
Justin Balthrop
6f1b58368b combine-profile does not need to keep track of included-profile.
Now it is just a partial around profile-key-merge and can
disappear. I hope dsantiago doesn't get mad.
2012-08-13 11:48:30 -07:00
Justin Balthrop
1f59aa8f99 add resolve-symbol to utils and use it in resolve-task
Conflicts:
	leiningen-core/src/leiningen/core/utils.clj
2012-08-13 11:47:56 -07:00
Justin Balthrop
84c93a28b3 apply middleware whenever project profiles are modified
This can happen in merge-profiles, unmerge-profiles or in the newly
added reset-profiles. All three rebuild the project map from scratch
using `(:without-profiles (meta project))`. This prevents middleware
from being applied twice to the same project map.

We also have to call apply-middleware explicitly in init-project because
we want to load-plugins before applying middleware in this case only. An
alternative would be to load plugins every time project profiles are
modified. @technomancy, what do you think of that option?

Issue #401

Conflicts:
	leiningen-core/src/leiningen/core/main.clj
	src/leiningen/pom.clj
2012-08-13 11:46:09 -07:00
Justin Balthrop
ddc2ca0321 automatically load middleware and hooks from plugins
- this is a first pass at #401
- there are still some questions about the order of everything
- the current implementation may still break #599
2012-08-13 11:36:26 -07:00
Phil Hagelberg
0c594e72a6 Exception handling in main can be simplified now that we're using ex-info. 2012-08-10 11:15:30 -07:00
Phil Hagelberg
c6acc122f1 Improve error message when plugin isn't found. 2012-08-10 10:59:11 -07:00
Phil Hagelberg
e48486f7ee Merge pull request #725 from joegallo/task-typos
Task typos
2012-08-09 15:04:49 -07:00
Phil Hagelberg
0079868188 Better error message for malformed user profiles.clj. 2012-08-09 11:00:10 -07:00
Phil Hagelberg
0c22b5d893 News updates. 2012-08-08 21:05:27 -07:00
Chas Emerick
7489266e9f fix recursive merging of profiles that involve
^:replace and ^:displace meta on nested values
2012-08-08 17:23:31 -04:00
Joe Gallo
5e2ff4ebd3 Only the suggestions that have the same minimum distance. 2012-08-08 09:22:51 -04:00
Joe Gallo
363d1c61c2 Initial crack at suggestions. 2012-08-08 07:42:48 -04:00
Joe Gallo
37aa5ab37a Distance fn from amalloy. 2012-08-08 07:42:26 -04:00
Joe Gallo
49ea29af1a Whitespace. 2012-08-08 07:41:42 -04:00
Phil Hagelberg
6700322a8a Distinguish between false and nil when checking file existence. 2012-08-06 17:32:29 -07:00
Phil Hagelberg
09052b7deb Use when for side-effects, not return values.
Should really blog about this.
2012-08-06 16:09:43 -07:00
Phil Hagelberg
a4d87094ff Temporarily honor numeric exit codes and warn of deprecation. 2012-08-06 12:40:51 -07:00
Michael Klishin
f4cfb8bb5d Merge pull request #709 from oliyh/master
Issue #706 - adding non-proxy-hosts
2012-07-31 04:44:28 -07:00
Oliver Hine
06259b6948 merging http proxy changes 2012-07-31 11:58:35 +01:00
Oliver Hine
af9aeff3ef making http.nonProxyHosts more optional 2012-07-31 11:49:41 +01:00
Oliver Hine
e4e044cc0e propagating non-proxy-hosts to sub processes too 2012-07-30 15:19:51 +01:00
Michael Klishin
5f6db9db30 merging in pitherjo\'s change 2012-07-30 14:03:35 +01:00
oliyh
9604ce9732 Honouring http_no_proxy to complement http_proxy for apache httpcomponents client compatible libraries 2012-07-30 13:47:54 +01:00
Phil Hagelberg
8d3cd95c45 Give nicer messages instead of ex-info subprocess failed traces. 2012-07-27 16:44:49 -07:00
oliyh
ca1de526fe Honouring http_no_proxy to complement http_proxy for apache httpcomponents client compatible libraries 2012-07-27 15:05:26 -07:00
Phil Hagelberg
efdbf06bcb Clean up l.c.eval namespace. 2012-07-27 09:31:54 -07:00
Jon Pither
c89a497e62 using http_no_proxy instead of httpNoProxyHost 2012-07-27 10:34:07 +01:00
Jon Pither
732b7c4fbd using http_no_proxy instead of clunky httpNoProxyHost 2012-07-27 10:29:53 +01:00
Jon Pither
7910c2f59e passing non-proxy-hosts though to pomegranate if present as environmental arg 2012-07-26 14:36:06 +01:00
Phil Hagelberg
6ddc6b71a6 Bump ordered dependency. Fixes #697. 2012-07-24 17:32:30 -07:00
Alex Osborne
1bac2ef834 Update bundled clojars.org SSL certificate. Fix #692
The new certificate is trusted by Oracle JVMs by default but there
are still some users with JVMs that don't have any default root certs
at all.  The FreeBSD OpenJDK packages are apparently one such example.
2012-07-19 14:39:50 +10:00
Justin Balthrop
b41db4d03c use composite profiles for :default
You can now overide :default in your project.clj to change what profiles are
active when none are specified. As part of this change, default is no longer
used to for built-in settings; these are now stored in the :base profile.
This makes it possible to override :default while still including the :base
profile.
2012-07-18 17:37:19 -07:00
Justin Balthrop
c36274b52e separate combine-profile out into its own function for dsantiago 2012-07-18 17:37:19 -07:00
Justin Balthrop
cadfe5c92c add support for composite-profiles
if a profile value is a vector, then combine the values using
combine-profiles. this allows you to remove duplication by putting
shared configuration in "base" profiles.
2012-07-18 17:37:19 -07:00
Phil Hagelberg
41c85ead1b Unify exit code handling with ex-info. 2012-07-17 21:11:37 -07:00
Justin Balthrop
9f6f1cc78f read profiles from PROJECT_ROOT/profiles.clj
This is useful as a place to put profile information that you don't
want committed. e.g. deployment server lists, passwords, etc...
2012-07-17 19:14:21 -07:00
Bruce Adams
94729fac33 Add aliases for -help and -version
This is helps people coming from the Java world. "java" accepts -help
and -version, and neither --help nor --version. With this commit,
Leiningen accepts long names with either single or double dashes.
2012-07-12 08:35:29 -04:00
Bruce Adams
20c266a60d "aliases" need not be an atom, now it isn't 2012-07-12 08:31:31 -04:00
Bruce Adams
ff1476a50d Remove redundant "help" aliases 2012-07-12 07:51:45 -04:00
Phil Hagelberg
066b557e97 Merge remote-tracking branch 'Moocar/prep-tasks'
Conflicts:
	leiningen-core/src/leiningen/core/eval.clj
2012-07-11 17:12:14 -07:00
Bruce Adams
d233dc64fb Intercept "help" after task name, issue #629 2012-07-11 19:45:29 -04:00