zcaudate-me / lein-repack

moved -> 'lucid.distribute'
65 stars 5 forks source link

Non-source files in source directory produce unwanted branches #9

Closed RyanMcG closed 9 years ago

RyanMcG commented 9 years ago

Running lein repack manifest results in the following. Note the branch keyed with ".context.clj".

{:root
 {:files [],
  :dependencies
  [[org.clojure/clojure "1.6.0"]
   [mvxcvi/puget "0.6.4"]
   [mvxcvi/whidbey "0.4.1"]
   [fixturex/fixturex.context "0.2.1"]
   [fixturex/fixturex.core "0.2.1"]
   [fixturex/fixturex.higher "0.2.1"]
   [fixturex/fixturex..context.clj "0.2.1"]],
  :version "0.2.1",
  :group "fixturex",
  :name "fixturex"},
 :branches
 {".context.clj"
  {:coordinate [fixturex/fixturex..context.clj "0.2.1"],
   :files ["src/fixturex/.context.clj.swp"],
   :dependencies [[org.clojure/clojure "1.6.0"]],
   :version "0.2.1",
   :name "fixturex/fixturex..context.clj",
   :group "fixturex"},
  "higher"
  {:coordinate [fixturex/fixturex.higher "0.2.1"],
   :files ["src/fixturex/higher.clj"],
   :dependencies [[org.clojure/clojure "1.6.0"]],
   :version "0.2.1",
   :name "fixturex/fixturex.higher",
   :group "fixturex"},
  "core"
  {:coordinate [fixturex/fixturex.core "0.2.1"],
   :files ["src/fixturex/core.clj"],
   :dependencies [[org.clojure/clojure "1.6.0"]],
   :version "0.2.1",
   :name "fixturex/fixturex.core",
   :group "fixturex"},
  "context"
  {:coordinate [fixturex/fixturex.context "0.2.1"],
   :files ["src/fixturex/context.clj"],
   :dependencies
   [[org.clojure/clojure "1.6.0"] [fixturex/fixturex.higher "0.2.1"]],
   :version "0.2.1",
   :name "fixturex/fixturex.context",
   :group "fixturex"}}}

I propose we whitelist files by extension with some reasonable defaults which may be overridden by the user. This way we would avoid editor files from vim and emacs.

zcaudate commented 9 years ago

that'll be great =)

Can you include the `fixturex' project in to lein-repack so we can run some test cases on it?

On Mon, Dec 29, 2014 at 5:40 AM, Ryan McGowan notifications@github.com wrote:

Running lein repack manifest results in the following. Note the branch keyed with ".context.clj".

{:root {:files [], :dependencies [[org.clojure/clojure "1.6.0"] [mvxcvi/puget "0.6.4"] [mvxcvi/whidbey "0.4.1"] [fixturex/fixturex.context "0.2.1"] [fixturex/fixturex.core "0.2.1"] [fixturex/fixturex.higher "0.2.1"] [fixturex/fixturex..context.clj "0.2.1"]], :version "0.2.1", :group "fixturex", :name "fixturex"}, :branches {".context.clj" {:coordinate [fixturex/fixturex..context.clj "0.2.1"], :files ["src/fixturex/.context.clj.swp"], :dependencies [[org.clojure/clojure "1.6.0"]], :version "0.2.1", :name "fixturex/fixturex..context.clj", :group "fixturex"}, "higher" {:coordinate [fixturex/fixturex.higher "0.2.1"], :files ["src/fixturex/higher.clj"], :dependencies [[org.clojure/clojure "1.6.0"]], :version "0.2.1", :name "fixturex/fixturex.higher", :group "fixturex"}, "core" {:coordinate [fixturex/fixturex.core "0.2.1"], :files ["src/fixturex/core.clj"], :dependencies [[org.clojure/clojure "1.6.0"]], :version "0.2.1", :name "fixturex/fixturex.core", :group "fixturex"}, "context" {:coordinate [fixturex/fixturex.context "0.2.1"], :files ["src/fixturex/context.clj"], :dependencies [[org.clojure/clojure "1.6.0"] [fixturex/fixturex.higher "0.2.1"]], :version "0.2.1", :name "fixturex/fixturex.context", :group "fixturex"}}}

I propose we whitelist files by extension with some reasonable defaults which may be overridden by the user. This way we would avoid editor files from vim and emacs.

— Reply to this email directly or view it on GitHub https://github.com/zcaudate/lein-repack/issues/9.

RyanMcG commented 9 years ago

@zcaudate do you mean as a test dependency? We could probably come up with a more minimal example project OR just use dummy code so it is more testable... I suppose just including it might be easier though.

zcaudate commented 9 years ago

I have a project in

https://github.com/zcaudate/lein-repack/tree/master/example/repack.advance

that I do some tests against..

so any thing that may I have missed can go into another example project

On Mon, Dec 29, 2014 at 11:11 AM, Ryan McGowan notifications@github.com wrote:

@zcaudate https://github.com/zcaudate do you mean as a test dependency? We could probably come up with a more minimal example project OR just use dummy code so it is more testable... I suppose just including it might be easier though.

— Reply to this email directly or view it on GitHub https://github.com/zcaudate/lein-repack/issues/9#issuecomment-68229549.

zcaudate commented 9 years ago

The example project will also help with sorting out the other issues previously mentioned

On Mon, Dec 29, 2014 at 6:55 PM, Chris Zheng z@caudate.me wrote:

I have a project in

https://github.com/zcaudate/lein-repack/tree/master/example/repack.advance

that I do some tests against..

so any thing that may I have missed can go into another example project

On Mon, Dec 29, 2014 at 11:11 AM, Ryan McGowan notifications@github.com wrote:

@zcaudate https://github.com/zcaudate do you mean as a test dependency? We could probably come up with a more minimal example project OR just use dummy code so it is more testable... I suppose just including it might be easier though.

— Reply to this email directly or view it on GitHub https://github.com/zcaudate/lein-repack/issues/9#issuecomment-68229549.

zcaudate commented 9 years ago

I'm going to be cheeky and say that you shouldn't be putting non-source files in your source directory in the first place. I'll close this issue for now but will probably be looking at a similar issue for https://github.com/zcaudate/lein-repack/issues/14

RyanMcG commented 9 years ago

Ha. Vim creates files that end in swp and swo by default. I think emacs might create files that end in ~. Perhaps other editors produce similar crap.

zcaudate commented 9 years ago

Hmmm... That is a problem :)

I'm thinking the best way would be to specify what files to ignore in the config.

On 11 Feb 2015, at 11:04, Ryan McGowan notifications@github.com wrote:

Ha. Vim creates files that end in swp and swo by default. I think emacs might create files that end in ~. Perhaps other editors produce similar crap.

— Reply to this email directly or view it on GitHub.

RyanMcG commented 9 years ago

If I am reading this correctly, leiningen ignores hidden files when creating jars.

https://github.com/technomancy/leiningen/blob/6b8e74eaeeeb91cb3bb6467a14b5ec827b771dfb/leiningen-core/src/leiningen/core/project.clj#L213

This seems like a sensible default. Why not just use jar exclusions from project.clj?

zcaudate commented 9 years ago

Yep. That's a great idea.

On 15 Feb 2015, at 12:13, Ryan McGowan notifications@github.com wrote:

If I am reading this correctly, leiningen ignores hidden files when creating jars.

https://github.com/technomancy/leiningen/blob/6b8e74eaeeeb91cb3bb6467a14b5ec827b771dfb/leiningen-core/src/leiningen/core/project.clj#L213

This seems like a sensible default. Why not just use jar exclusions from project.clj?

— Reply to this email directly or view it on GitHub.

zcaudate commented 9 years ago

Okay, this feature has been added in 0.2.10. You can leave it as default or specify :jar-exclusion for each entry in the :repack configuration.