Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 60 lines (48 sloc) 2.723 kB
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
1 # Hacking Leiningen
2
d900c66 @technomancy Documentation updates. Mention JAVA_CMD, contribution guidelines.
authored
3 Leiningen is very small. The latest release is only around a couple
4 thousand lines of Clojure; you could probably read through the whole
5 project in an hour.
e9a7f03 @technomancy Documentation updates for 1.3.0.
authored
6
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
7 When you launch Leiningen, it must start an instance of Clojure to
f01cb7a @sumbach minor documentation typo fixes
sumbach authored
8 load itself. But this instance must not affect the project that you're
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
9 building. It may use a different version of Clojure from Leiningen,
10 and the project should be in a fresh JVM. Leiningen uses ant's
11 <tt>java</tt> task to fork off a separate process for this
12 purpose. The <tt>leiningen.compile</tt> namespace implements this;
13 specifically the <tt>eval-in-project</tt> function. Any code that must
14 execute within the context of the project (AOT compilation, test runs)
15 needs to go through this function.
16
e85e390 @technomancy Doco updates.
authored
17 The exception to this rule is the case of Leiningen plugins; they run
18 in the same process and classloader as Leiningen. Setting the
19 <tt>:eval-in-leiningen</tt> key to true in project.clj will make this
20 happen in test runs and repl sessions.
21
22 TODO: what goes where? a tour through the launching of a task
89f2a77 @technomancy Documentation updates in preparation for 1.4 release.
authored
23
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
24 Leiningen is extensible; you can define new tasks in plugins. Add your
25 plugin as a dev-dependency of your project, and you'll be able to call
b3fe397 @technomancy Switching all Github URLs to https.
authored
26 <tt>lein $YOUR_COMMAND</tt>. See the [plugins guide](https://github.com/technomancy/leiningen/blob/master/PLUGINS.md) for details.
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
27
28 The [mailing list](http://groups.google.com/group/leiningen) and the
29 leiningen or clojure channels on Freenode are the best places to
30 bring up questions or suggestions. If you're planning on adding a
31 feature or fixing a nontrivial bug, please discuss it first to avoid
32 duplicating effort. If you haven't discussed it on the mailing list,
33 please include in your pull request details of what problem your patch
f01cb7a @sumbach minor documentation typo fixes
sumbach authored
34 intends to solve as well as the approach you took.
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
35
36 Contributions are preferred as either Github pull requests or using
37 "git format-patch" and the mailing list as is requested [for
38 contributing to Clojure itself](http://clojure.org/patches). Please
39 use standard indentation with no tabs, trailing whitespace, or lines
40 longer than 80 columns. See [this post on submitting good
41 patches](http://technomancy.us/135) for some tips. If you've got some
42 time on your hands, reading this [style
43 guide](http://mumble.net/~campbell/scheme/style.txt) wouldn't hurt
44 either.
45
b3fe397 @technomancy Switching all Github URLs to https.
authored
46 See the [complete list of known issues](https://github.com/technomancy/leiningen/issues).
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
47
48 TODO: integrate with plugin guide
49
50 # Release Checklist
51
c52f044 @technomancy Documentation updates preparing for 1.3.1.
authored
52 * update NEWS, bin/lein, bin/lein.bat, project.clj, pom
5b76514 @technomancy Bump version to 1.4.0-SNAPSHOT.
authored
53 * rm -rf lib, generate uberjar, upload
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
54 * test self-install
5b76514 @technomancy Bump version to 1.4.0-SNAPSHOT.
authored
55 * git tag
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
56 * push, push tags, update stable branch
57 * announce on mailing list
7f5b862 @technomancy Ready for 1.4.0-SNAPSHOT.
authored
58 * bump version numbers (bin/lein, bin/lein.bat, project.clj)
56c6cb4 @technomancy Add initial hacking guide; still needs lots of work.
authored
59 * regenerate pom.xml
Something went wrong with that request. Please try again.