Commit graph

443 commits

Author SHA1 Message Date
Phil Hagelberg
720a61ae65 Fix some typos in eval.clj tests.
[ci skip]
2012-10-20 15:02:34 -07:00
Phil Hagelberg
329b4b7fa6 Un-deprecate :auth profile since full-disk encryption is a good use case for it. 2012-10-10 10:04:30 -07:00
Justin Balthrop
0e02ad7164 switch with-profile to last-wins
This patch switches with-profile so that the last profile specified
wins. This is more in line with the way clojure.core/merge works.

For more info, see:
http://librelist.com/browser/leiningen/2012/9/12/changing-with-profile-from-first-wins-to-last-wins/#ff32b118546fa95d0960f2247e190c18
2012-10-08 18:27:40 -07:00
Justin Balthrop
9f37f53c5e move dependency and repository merging into meta-merge
This is accomplished with the :reduce metadata, which specifies the
reduce function to use when merging. This allows us to merge
dependencies and repositories deeply like other structures. Note that
dependencies are transformed into a map before they are merged and then
transformed back into a vector.

Also change the way that collections are merged. They used to be merged
by taking the right collection and prepending it to the left collection.
This behavior was needed for :*-paths in defproject, but it is not an
obvious default. Now, the default is to append the right collection, but
the :prepend metadata can be used to tell meta-merge to prepend instead.
By default, :source-paths, :resource-paths and :test-paths have :prepend
set to true.
2012-10-08 18:27:40 -07:00
Justin Balthrop
5893c1406a keep track of :active-profiles when merging
This is a list of all named profiles that have been merged in, after
following composite profile. This is different from :included-profiles
which is the list of profiles before composite profiles have been
expanded.
2012-10-08 18:27:40 -07:00
Justin Balthrop
5b76a2eb6a add leiningen.core.project/make
Move some defproject logic out of the macro into project/make.
2012-10-08 16:45:35 -07:00
Justin Balthrop
11037d7ddb rename profile-key-merge to meta-merge 2012-10-08 16:10:38 -07:00
Justin Balthrop
d24e36a63b move hooke-injection closer to where it is used 2012-10-08 15:46:51 -07:00
Chas Emerick
b06a04593a re-add support for :creds :gpg, add warning for anyone using e.g. :username :gpg to get all creds for a repo (gh-768) 2012-10-05 06:14:13 -04:00
Chas Emerick
268d723796 Add support for:
* namespaced keywords to control lookup of credentials in env vars
* using a vector to define a number of credential sources to be checked in series

(gh-768)
2012-10-05 06:09:54 -04:00
Phil Hagelberg
856207caf0 Load plugins in set-profiles. Fixes #772. 2012-10-04 16:24:36 -07:00
Phil Hagelberg
ff0e95baf0 Debug output in apply-task. 2012-10-04 09:36:21 -07:00
Justin Balthrop
123b929ec7 Fix environment passing to project JVM.
Runtime#exec takes an array of strings of the form "key=val", but we
were previously passing an array of interspersed keys and vals.
2012-09-27 13:46:35 -07:00
Justin Balthrop
c369447c8b support :os and :arch options in project map
Use :arch option to provide -d32 or -d64 option to project JVM.
2012-09-27 13:44:11 -07:00
Justin Balthrop
b7b61e9655 always extract native deps from snapshot jars
- fixes #796
- also add token param to when-stale, because otherwise multiple callers
  of with-stale can contaminate each other's results
2012-09-27 13:23:34 -07:00
Justin Balthrop
48bea66ea0 use -classpath instead of -cp so that jdb can be used for :java-cmd 2012-09-27 11:22:03 -07:00
Michael S. Klishin
dc9fd48376 Make LEIN_OFFLINE take precedence over what's in project.clj
Per discussion with @technomancy
2012-09-19 03:16:18 +04:00
Michael S. Klishin
387e624838 If LEIN_OFFLINE env var is set, assume offline mode by default. References #678. 2012-09-18 13:00:29 +04:00
Justin Balthrop
d702a234f5 fix truncated doc string for set-profiles 2012-09-10 12:15:47 -07:00
Phil Hagelberg
edfa52753e Wait no, that Postel's law invocation doesn't make sense. 2012-09-10 08:20:22 -07:00
Phil Hagelberg
5d37b41fbe Postel's law, I guess? 2012-09-06 10:26:04 -07:00
Nelson Morris
d254dae544 Reduce output for dependency resolution
Showing every failed repo lookup is bad for users.
They see the failure and get confused.

Hook up a custom listener that has the following behavior:

1. success -> print out artifact name, size, and repository name
2. failure -> ignore unless it is the last repo, then print out failure
   message with artifact name.

Fixes #610.
2012-09-05 14:59:53 -05:00
deduktion
e9386b7362 Update leiningen-core/src/leiningen/core/project.clj
use concat instead of merge to merge values, :plugin-repositories and :repositories are lists again 

with merge you will end up with a value for :repositories like [[repo {:url url}] ([pluginrepo {:url url}])]
instead of [[repo {:url url}] [pluginrepo {:url url}]]
2012-09-04 19:58:03 +03:00
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