Move contributing guidelines into their own file.
This commit is contained in:
parent
18ed0590ff
commit
0d69412db6
3 changed files with 74 additions and 59 deletions
66
CONTRIBUTING.md
Normal file
66
CONTRIBUTING.md
Normal file
|
@ -0,0 +1,66 @@
|
|||
# Contributing
|
||||
|
||||
Leiningen is the most active open-source Clojure project. We welcome
|
||||
potential contributors and do our best to try to make it easy to help
|
||||
out. Contributors who have had a single patch accepted may request
|
||||
commit rights as well as a free [sticker](http://twitpic.com/2e33r1).
|
||||
|
||||
Discussion occurs both in the
|
||||
[#leiningen channel on Freenode](irc://chat.freenode.net#leiningen)
|
||||
and on the [mailing list](http://librelist.com/browser/leiningen/). To
|
||||
join the mailing list, simply email `leiningen@librelist.org`; your
|
||||
first message to that address will subscribe you without being posted.
|
||||
|
||||
Please report issues on the
|
||||
[GitHub issue tracker](https://github.com/technomancy/leiningen/issues)
|
||||
or the mailing list. Personal email addresses are inappropriate for
|
||||
bug reports. Simpler issues appropriate for first-time contributors
|
||||
looking to help out are tagged "newbie".
|
||||
|
||||
Patches are preferred as patches from `git format-patch` on the
|
||||
mailing list or as GitHub pull requests. Please use topic branches
|
||||
when sending pull requests rather than committing directly to master
|
||||
in order to minimize unnecessary merge commit clutter.
|
||||
|
||||
Leiningen is [mirrored at Gitorious](https://gitorious.org/leiningen/leiningen)
|
||||
and [tested on Travis](http://travis-ci.org/technomancy/leiningen).
|
||||
|
||||
## Codebase
|
||||
|
||||
The definitions of the various tasks reside in `src/leiningen` in the
|
||||
top-level project. The underlying mechanisms for things like
|
||||
`project.clj` parsing, classpath calculation, and subprocess launching
|
||||
are implemented inside the `leiningen-core` subproject.
|
||||
|
||||
See the
|
||||
[readme for the leiningen-core library](https://github.com/technomancy/leiningen/blob/master/leiningen-core/README.md)
|
||||
and `doc/PLUGINS.md` for more details on how Leiningen's codebase is
|
||||
structured.
|
||||
|
||||
While there is a test suite, it's not terribly thorough, so don't put
|
||||
too much trust in it. Patches which add test coverage for the
|
||||
functionality they change are especially welcome.
|
||||
|
||||
## Bootstrapping
|
||||
|
||||
You don't need to "build" Leiningen per se, but when you're using a
|
||||
checkout you will need to get its dependencies in place.
|
||||
|
||||
Use Leiningen 1.x to run `lein1 install` in the `leiningen-core`
|
||||
directory. If you don't have 1.x installed, simply check out the `1.x`
|
||||
branch and copy `bin/lein` to `lein1` somewhere on your `$PATH`, then
|
||||
switch your branch back. Alternately you can run `mvn
|
||||
dependency:copy-dependencies` in the same directory followed by `cp -r
|
||||
target/dependency lib`.
|
||||
|
||||
Once you've done that, symlink `bin/lein` to somewhere on your
|
||||
`$PATH`. Usually you'll want to rename your existing installation to
|
||||
keep them from interfering.
|
||||
|
||||
When the dependencies change you may have to do `rm .lein-classpath`
|
||||
in the project root, though in most cases this can be done automatically.
|
||||
|
||||
Using `bin/lein` alone from the master branch without a full checkout
|
||||
is not supported. If you want to just grab a shell script to work
|
||||
with, use the `preview` branch.
|
||||
|
59
README.md
59
README.md
|
@ -78,6 +78,7 @@ The `project.clj` file in the project root should look like this:
|
|||
```clj
|
||||
(defproject myproject "0.5.0-SNAPSHOT"
|
||||
:description "A project for doing things."
|
||||
:license "Eclipse Public License 1.0"
|
||||
:url "http://github.com/technomancy/myproject"
|
||||
:dependencies [[org.clojure/clojure "1.4.0"]]
|
||||
:plugins [[lein-ring "0.4.5"]])
|
||||
|
@ -92,7 +93,6 @@ configuration options.
|
|||
The `project.clj` file can be customized further with the use of
|
||||
[profiles](https://github.com/technomancy/leiningen/blob/master/doc/PROFILES.md).
|
||||
|
||||
|
||||
## Documentation
|
||||
|
||||
Leiningen documentation is organized as a number of guides:
|
||||
|
@ -104,7 +104,7 @@ Leiningen documentation is organized as a number of guides:
|
|||
* [Sample project.clj](https://github.com/technomancy/leiningen/blob/preview/sample.project.clj)
|
||||
* [Writing Plugins](https://github.com/technomancy/leiningen/blob/master/doc/PLUGINS.md)
|
||||
* [FAQ](https://github.com/technomancy/leiningen/blob/master/doc/FAQ.md)
|
||||
|
||||
* [Contributing](https://github.com/technomancy/leiningen/blob/master/CONTRIBUTING.md)
|
||||
|
||||
## Plugins
|
||||
|
||||
|
@ -121,62 +121,9 @@ for details on how to add to your `:user` profile. The
|
|||
[plugin guide](https://github.com/technomancy/leiningen/blob/preview/doc/PLUGINS.md)
|
||||
explains how to write plugins.
|
||||
|
||||
## Contributing
|
||||
|
||||
Please report issues on the
|
||||
[GitHub issue tracker](https://github.com/technomancy/leiningen/issues)
|
||||
or the [mailing list](http://librelist.com/browser/leiningen/). To
|
||||
join the mailing list, email `leiningen@librelist.org`; your first
|
||||
message to that address will subscribe you without being posted.
|
||||
Personal email addresses are not appropriate for bug reports. See the
|
||||
[readme for the leiningen-core library](https://github.com/technomancy/leiningen/blob/master/leiningen-core/README.md)
|
||||
and `doc/PLUGINS.md` for more details on how Leiningen's codebase is
|
||||
structured. Design discussions also occur in the
|
||||
[#leiningen channel on Freenode](irc://chat.freenode.net#leiningen).
|
||||
|
||||
Patches are preferred as GitHub pull requests, though patches from
|
||||
`git format-patch` are also welcome on the mailing list. Please use
|
||||
topic branches when sending pull requests rather than committing
|
||||
directly to master in order to minimize unnecessary merge commit
|
||||
clutter.
|
||||
|
||||
Contributors who have had a single patch accepted may request commit
|
||||
rights on the mailing list or in IRC. Please use your judgment
|
||||
regarding potentially-destabilizing work and branches. Other
|
||||
contributors will usually be glad to review topic branches before
|
||||
merging if you ask on IRC or the mailing list.
|
||||
|
||||
Contributors are also welcome to request a free
|
||||
[Leiningen sticker](http://twitpic.com/2e33r1) by asking on the
|
||||
mailing list and mailing a self-addressed, stamped envelope.
|
||||
|
||||
Leiningen is [mirrored at Gitorious](https://gitorious.org/leiningen/leiningen)
|
||||
and [tested on Travis](http://travis-ci.org/#!/technomancy/leiningen).
|
||||
|
||||
## Building
|
||||
|
||||
You don't need to "build" Leiningen per se, but when you're using a
|
||||
checkout you will need to get its dependencies in place.
|
||||
|
||||
For the master branch, use Leiningen 1 to run `lein install` in the
|
||||
`leiningen-core` subproject directory. Alternately you can run `mvn
|
||||
dependency:copy-dependencies` in the same directory followed by `cp
|
||||
-r target/dependency lib`.
|
||||
|
||||
Once you've done that, symlink `bin/lein` to somewhere on your
|
||||
`$PATH`. Usually you'll want to rename your existing installation to
|
||||
keep them from interfering.
|
||||
|
||||
When the dependencies change you will also have to do `rm
|
||||
.lein-classpath` in the project root.
|
||||
|
||||
Using `bin/lein` alone from the master branch without a full checkout
|
||||
is not supported. If you want to just grab a shell script to work
|
||||
with, use the preview branch.
|
||||
|
||||
## License
|
||||
|
||||
Source Copyright © 2009-2012 Phil Hagelberg, Alex Osborne, Dan Larkin, and
|
||||
Source Copyright © 2009-2013 Phil Hagelberg, Alex Osborne, Dan Larkin, and
|
||||
[contributors](https://github.com/technomancy/leiningen/contributors).
|
||||
Distributed under the Eclipse Public License, the same as Clojure
|
||||
uses. See the file COPYING.
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
Leiningen tasks are simply functions named $TASK in a leiningen.$TASK
|
||||
namespace. So writing a Leiningen plugin is just a matter of creating
|
||||
a project that contains such a function.
|
||||
a project that contains such a function, but much of this
|
||||
documentation applies equally to the tasks that ship with Leiningen
|
||||
itself.
|
||||
|
||||
Using the plugin is a matter of declaring it in the `:plugins` entry
|
||||
of the project map. If a plugin is a matter of user convenience rather
|
||||
|
@ -38,8 +40,8 @@ containing the path to the `src` directory of your plugin.
|
|||
The first argument to your task function should be the current
|
||||
project. It will be a map which is based on the `project.clj` file,
|
||||
but it also has `:name`, `:group`, `:version`, and `:root` keys added
|
||||
in, among other things. To see what project maps look like, try using
|
||||
the `lein-pprint` plugin; you can invoke the `pprint` task to examine
|
||||
in, among other things. Try using the `lein-pprint` plugin to see what
|
||||
project maps look like; you can invoke the `pprint` task to examine
|
||||
any project.
|
||||
|
||||
If you want your task to take parameters from the command-line
|
||||
|
|
Loading…
Reference in a new issue