Skip to content
This repository
Newer
Older
100644 424 lines (311 sloc) 17.612 kb
2f3d20a3 » yrashk
2011-01-26 Added README.md
1 Agner
2 =====
3
be9362fc » jlouis
2011-01-27 Add more description to the README file.
4 Agner is a rebar-friendly Erlang package index inspired by Clojars and
5 Homebrew.
6
7 Essentially, Agner is an index of Erlang packages with some extra
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
8 capabilities such as versioning, downloads, installation and so on.
be9362fc » jlouis
2011-01-27 Add more description to the README file.
9
10 Agner is a shorthand for *A Giant Nebula of Erlang Repositories*. It
163e7a15 » yrashk
2011-01-27 Removed quotes around Agner Krarup's name (README.md)
11 also pays homage to the Danish statistician Agner Krarup Erlang.
be9362fc » jlouis
2011-01-27 Add more description to the README file.
12
bc359e1b » yrashk
2011-02-15 Dropped "Configuration" part from Installation section name in README
13 Installation
14 ------------
b9512503 » yrashk
2011-01-28 Added installation instructions
15
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
16 It is just a matter of a simple oneliner to get Agner installed:
68fc5509 » yrashk
2011-02-02 Documentation on 'oneliner' installation
17
62ba9959 » yrashk
2011-06-08 Updated installation instructions
18 curl https://raw.github.com/agner/agner/master/scripts/oneliner | sh
68fc5509 » yrashk
2011-02-02 Documentation on 'oneliner' installation
19
20 If you want to install latest release instead of HEAD, use this one:
21
62ba9959 » yrashk
2011-06-08 Updated installation instructions
22 curl https://raw.github.com/agner/agner/aster/scripts/oneliner.release | sh
68fc5509 » yrashk
2011-02-02 Documentation on 'oneliner' installation
23
be9362fc » jlouis
2011-01-27 Add more description to the README file.
24 Motivation
25 ----------
26
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
27 By now, there is a large set of Erlang tools and libraries available,
28 all of them highly useful. The problem, however, is to provide an index
be9362fc » jlouis
2011-01-27 Add more description to the README file.
29 of these packages, so other people
30
31 * Know of their existence
32 * Can easily use a package in their own projects
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
33 * Can search for a particular package
be9362fc » jlouis
2011-01-27 Add more description to the README file.
34
35 Agner aims to provide such an index, by focusing on a number of
36 points:
37
38 * The index is loose in the sense that anyone can overlay the index
39 and add their own packages to the repository
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
40 * The tool is as simple as possible, utilizing git as a backend (for the time
41 being) to maintain the indices
be9362fc » jlouis
2011-01-27 Add more description to the README file.
42 * Recognize the ideas of simplicity Joe Armstrong had in mind on
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
43 the erlang-questions@ mailing list on the
44 [22th of July 2010](http://www.erlang.org/cgi-bin/ezmlm-cgi?4:mss:52415:201007:npnohnblfemjooohecnk)
be9362fc » jlouis
2011-01-27 Add more description to the README file.
45
46 Use
47 ===
48
49 This section introduces the terminology of Agner:
50
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
51 * **index/indices:** Where Agner finds its index of available of
52 available packages. Usually this is a github user with one or more
53 Agner-packages among the users git repositories. You can enable
54 multiple indices at the same time if you want.
be9362fc » jlouis
2011-01-27 Add more description to the README file.
55 * **package:** A separate library or program indentified by the
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
56 index. It is an `.agner` repository underneath the index github
57 user, so one example would be `agner/gproc.agner` specifying a
58 package for the `gproc` library undernath the `agner`-user. A
59 package may be overridden by an index; a very important feature that
60 allows installing packages not hosted in a central index.
61 * **project:** A software project, program or library, containing
62 the actual source code for the program or library. In the running example,
be9362fc » jlouis
2011-01-27 Add more description to the README file.
63 this is `esl/gproc` on github.
64 * **release:** A release of a package signifying a point in time
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
65 where the package was deemed to be in a certain (stable) state. Is usually
be9362fc » jlouis
2011-01-27 Add more description to the README file.
66 used when a new version of the software is released to the
67 general public so you can refer to package X version Y
68 * **flavour:** A moving target of a package with some specified
69 behaviour. It is used for tracking the development of a package
70 over time. Common flavours include the *@master* flavour, used to
71 track the development branch of a package and the *@release*
72 flavour, used to track the latest release of the package.
73
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
74 Command invocation
75 ------------------
76
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
77 agner help [COMMAND]
78
79 Print a command overview on the command line. If the optional
80 COMMAND is given, show help for the given command.
81
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
82 ### Listing, searching:
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
83
84 agner list [-d/--descriptions] [-p/--properties PROPERTY1[,PROPERTY2]...]
cb4746d4 » yrashk
2011-01-28 Added 'agner list --search'/'agner search' functionality
85 [-s/--search SEARCH_TERM]
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
86
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
87 Will list all Agner packages. It is used for quick overviews of the
88 packages that are available in the enabled indices for installation or
89 use in a program. This command, like most commands, accepts command
90 line flags:
91
92 * `-d` or `--descriptions`: With this option enabled, Agner will also
93 print out the descriptions of the packages, for easy grepping to find
94 relevant packages. It accepts the following flags:
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
95
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
96 * `-p` or `--properties`: A comma, separated list of properties to be
97 included in the listing (when present).
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
98
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
99 * `-s` or `--search`: The packages name, description and keyword are
903a8f96 » ndim
2011-02-06 Wrap env vars with underscores in backticks
100 searched, matched against `SEARCH_TERM`. Only matching items are shown.
e1ec98c8 » yrashk
2011-01-28 Added -p option to 'list' command so that arbitrary properties can be…
101
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
102 Since searching for packages is so common, a convenience command has
103 been defined:
cb4746d4 » yrashk
2011-01-28 Added 'agner list --search'/'agner search' functionality
104
105 agner search SEARCH_TERM [-d/--description] [-p/--properties PROPERTY1,PROPERTY2]
106
107 This is an alias for `agner list -s`
108
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
109 ### Printing package specifications (spec's)
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
110
111 agner spec PACKAGE [-v/--version VERSION] [-b/--browser]
61cb23f7 » yrashk
2011-01-28 Added 'spec --property' option
112 [-h/--homepage] [-p/--property PROPERTY]
d87929fd » yrashk
2011-01-28 Added -s/--spec-file option to fetch, spec & install commands (allows…
113 [-s/--spec-file SPECFILE]
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
114
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
115 Will print a specification of a given package on stdout. The specification is the information Agner uses to determine the location of the package as well as the relevant meta-data for the package. Flags:
116
117 * `-v` or `--version`: If this version constraint option is given,
118 Agner will print out the specification for that given VERSION (for
119 example `agner spec gproc -v @release`). The version can be either a *release* or a *flavour*. By default, the `@master` flavour is chosen.
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
120
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
121 * `-b` or `--browser`: Open a browser with the specification file in
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
122 its respective `.agner` repository at github.
123
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
124 * `-h` or `--homepage`: Open a browser with the package's homepage.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
125
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
126 * `-p` or `--property`: Agner will only render a particular PROPERTY value
61cb23f7 » yrashk
2011-01-28 Added 'spec --property' option
127 instead of a full specification (example: `agner spec -p rebar_compatible yaws`).
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
128
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
129 * `-s` or `--spec-file`: A flag primarily intended for package
130 maintainers. This way they can specify their local `agner.config`
131 files to test their package.
61cb23f7 » yrashk
2011-01-28 Added 'spec --property' option
132
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
133 ### Fetching, building and installing
d87929fd » yrashk
2011-01-28 Added -s/--spec-file option to fetch, spec & install commands (allows…
134
2df68bb2 » yrashk
2011-01-28 Minor styling update in README.md
135 agner fetch PACKAGE [DESTDIR] [-v/--version VERSION] [-b/--build]
048b3e20 » yrashk
2011-01-28 Added support for install_command and 'fetch --install/-i' option, al…
136 [-a/--add-path] [-i/--install]
b929dfa8 » yrashk
2011-01-30 Added support for AGNER_PACKAGE_REPO variable
137 [-s/--spec-file SPECFILE] [--package-path PACKAGEPATH]
6bc57e44 » yrashk
2011-02-06 Use ports to build & install packages
138 [-q/--quiet]
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
139
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
140 Fetch a given PACKAGE to either the current directory or,
141 optionally, to the DESTDIR directory. Flags:
142
143 * `-v` or `--version`: The version constraint is as is the case for
144 `agner spec`. You can choose to constrain a fetch to a given
145 VERSION, either a *relase* or a *flavour*.
146
147 * `-b` or `--build`: Agner will try to build fetched package. Only
148 rebar-compatible packages or packages with `build_command` can be
149 built. If you also specify `-a` (or `--add-path`) Agner will add path
150 to a newly built package to your `$HOME/.erlang`
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
151
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
152 * `-i` or `--install`: If the package has the `install_command`
153 property defined, Agner will also install this package. Please note
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
154 that in most cases you should also specify `-b` (or `--build`) in order for
048b3e20 » yrashk
2011-01-28 Added support for install_command and 'fetch --install/-i' option, al…
155 installation to make sense.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
156
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
157 * `-s` or `--spec-file`: A flag primarily intended for package
158 maintainers. This way they can specify their local `agner.config`
159 files to test their package. Can be used in conjunction with
160 `--package-path` to point to a checkout copy of an `.agner` repo (will
161 be used to set `$AGNER_PACKAGE_REPO` variable for shell commands,
162 defaults to `.`)
048b3e20 » yrashk
2011-01-28 Added support for install_command and 'fetch --install/-i' option, al…
163
6bc57e44 » yrashk
2011-02-06 Use ports to build & install packages
164 * `-q` or `--quiet`: A flag that will suppress output of `build_command` & `install_command`
165 (if present)
166
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
167 For convenience, the following shortcuts are defined:
d87929fd » yrashk
2011-01-28 Added -s/--spec-file option to fetch, spec & install commands (allows…
168
bf18c792 » yrashk
2011-05-11 Add option --no-fetch to build and install commands
169 agner build PACKAGE [DESTDIR] [-v/--version VERSION] [-s/--spec-file SPECFILE] [-a/--add-path] [-i/--install] [--no-fetch]
a2e653ee » yrashk
2011-01-28 Added agner build command (an alias to agner fetch --build)
170
171 Alias for `agner fetch --build PACKAGE`.
172
bf18c792 » yrashk
2011-05-11 Add option --no-fetch to build and install commands
173 agner install PACKAGE [-v/--version VERSION] [-s/--spec-file SPECFILE] [--no-fetch]
048b3e20 » yrashk
2011-01-28 Added support for install_command and 'fetch --install/-i' option, al…
174
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
175 Alias for `agner fetch --build --install PACKAGE
176 /tmp/<uniq_filename>`. A typical example would be `agner install
177 rebar` or `agner install rebar -v @agner` to get `rebar` binary in
ff955cc8 » yrashk
2011-02-05 Merge branch 'readme-cleanup' of https://github.com/jlouis/agner into…
178 your `PATH`. It is assumed that `install_command` property will make use
179 of `AGNER_INSTALL_PREFIX` OS environment variable.
048b3e20 » yrashk
2011-01-28 Added support for install_command and 'fetch --install/-i' option, al…
180
bf18c792 » yrashk
2011-05-11 Add option --no-fetch to build and install commands
181 `--no-fetch` option could be useful when you don't want to update already
182 fetched repository, but just build or install it.
183
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
184 ### Uninstalling
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
185
dd5550e6 » yrashk
2011-01-28 Added 'uninstall' command
186 agner uninstall PACKAGE [-v/--version VERSION] [-s/--spec-file SPECFILE]
187
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
188 Uninstall given package (and a particular VERSION of it, if specified
189 - see `agner spec`). Will use local SPECFILE if the `-s` (or `--spec-file`)
190 option is passed.
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
191
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
192 ### Query
dd5550e6 » yrashk
2011-01-28 Added 'uninstall' command
193
8b100076 » yrashk
2011-02-01 Added --no-releases and --no-flavours options for 'spec versions'
194 agner versions PACKAGE [--no-flavours] [--no-releases]
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
195
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
196 List the versions of the given PACKAGE. Specifying `--no-flavours`
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
197 will omit flavour versions; and specifying `--no-releases` will omit
198 release versions respectively.
199
8d04acd6 » yrashk
2011-01-28 Renamed 'installed' command to 'prefix'
200 agner prefix PACKAGE [-v/--version VERSION]
201
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
202 Prints prefix where PACKAGE is installed. If package is not installed,
203 prints nothing.
8d04acd6 » yrashk
2011-01-28 Renamed 'installed' command to 'prefix'
204
76777425 » yrashk
2011-01-28 Added documentation for 'config' command
205 agner config [VARIABLE]
206
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
207 Shows main environmental variables. If VARIABLE is omitted, then lists
208 `key=value` for each variable. If not omitted, prints just its
209 value. Currently supported variables are: `prefix` and `bin`.
76777425 » yrashk
2011-01-28 Added documentation for 'config' command
210
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
211 ### Packaging
92348e52 » jlouis
2011-02-01 Clean up and canonicalize the command invocation section.
212
1563446f » yrashk
2011-02-01 Added 'agner create' command to simply process of creating new .agner…
213 agner create PACKAGE [--github-account ACCOUNT]
214
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
215 Contributor's tool that clones `.agner` repo template and sets its
216 origin to ACCOUNT (by default, equals `agner`, so if you don't have a
217 permission to create repos in `agner`, set --github-account to your
218 personal or organization account.
1563446f » yrashk
2011-02-01 Added 'agner create' command to simply process of creating new .agner…
219
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
220 agner verify [SPECFILE]
1bb458cc » yrashk
2011-01-27 Added 'verify' command line command
221
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
222 Verify SPECFILE as a specification file for correctness; intended to
223 be used to package maintainers to simplify their workflow. If SPECFILE
224 is not given, it defaults to `agner.config`. Currently checks whether
225 1) specification is a valid file that can be parsed, 2) the URL can be
226 fetched. In the future it will also offer a deeper analysis of
227 specification correctness.
1bb458cc » yrashk
2011-01-27 Added 'verify' command line command
228
e74c3fa4 » jlouis
2011-01-27 Re-order the sections in the README.md file.
229 Packaging
230 =========
be9362fc » jlouis
2011-01-27 Add more description to the README file.
231
232 Package organization
233 --------------------
234
235 When Agner is invoked, it will scan its *indices* for package
236 lists. The default index is "agner", which is located at
237 [https://github.com/agner/](https://github.com/agner/). The index is
238 scanned by looking for *Agner repositories* which are normal (github)
239 repositories suffixed with `.agner`. An example is the repository
240 [https://github.com/agner/getopt.agner](https://github.com/agner/getopt.agner)
241 which contains the package details of the `getopt` package.
242
243 It is important to nail down that there are three balls in the air:
244
245 * The index user, who has a list of
246 * `.agner` repositories, which points to
247 * Erlang software projects
248
249 By making a split between the repository containing the project and
250 the repository containing the package, we make it easy to identify
251 `.agner` repositories, and we enable a simple way to make the project
252 live in another source control system, for instance Mercurial (hg). It
253 is also way easier to keep the (small) `.agner` repositories in an
254 index and in the long run, it provisions for local caching.
255
256 Further indices can be added to Agner through the environment (TODO:
257 flesh out how that is done). Indices are searched
258 in the order of specification, allowing for overriding of a given
259 index. This allows you to create local indices or special indices for
260 your own use, or try something out on top of other indices.
261
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
262 The multiple indices approach solves authorization questions "the git
263 way": you put trust in the indices you add to Agner, so if you don't
264 trust an index, you can simply refrain from adding it. The main
265 "agner" index is intended to be the official source, but we recognize
266 that individuals might have reasons to overlay another index on
267 top. By having a loose index-construction, we hope to alleviate some
268 of the problems with access rights.
2f3d20a3 » yrashk
2011-01-26 Added README.md
269
93546e5a » yrashk
2011-01-26 A little bit more information in the README.md
270 Package names
271 -------------
272
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
273 Packages are named in one of two ways. Either as the a direct name,
274 <code>mochiweb</code>, or as a form with a prefix of the package
275 index, <code>account/package</code>. For example
be9362fc » jlouis
2011-01-27 Add more description to the README file.
276 <code>yrashk/misultin</code>). We use package names to identify a
277 given package in Agner - but versions of the package is naturally not
278 part of its name. This allows for packages to exist in multiple
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
279 versions at the same time.
93546e5a » yrashk
2011-01-26 A little bit more information in the README.md
280
281 Versions
282 --------
283
284 Agner has two kinds of versions:
285
be9362fc » jlouis
2011-01-27 Add more description to the README file.
286 * Release versions, normally something like <code>1.2.0</code>,
287 represented using tags in `.agner` repos.
288 * Flavour versions, normally something like <code>@release</code>,
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
289 represented using branches in `.agner` repos. Note the prefix of "@"
290 which is present on flavours only.
be9362fc » jlouis
2011-01-27 Add more description to the README file.
291
292 The intention is that a *release* version marks a given point in time
293 where a given version of the code base was released to the general
294 public. When Erlang/OTP is released as OTP-R14B01 for instance, it
295 signifies a *release* in Agner-terminology. On the other hand, a
296 *flavour* signifies a moving target. Continuing the OTP-R14B01
297 example from before, it would be natural to have a *@dev* flavour
298 which tracks the Erlang/OTP branch called `dev`. The other important
299 flavour is *@release* which will track the latest release.
300
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
301 Also, the command line utility and Agner-enabled rebar will recognize
5a470929 » yrashk
2011-01-28 Markdown syntax update in README.md
302 `atleast:VERSION` format (for example, `atleast:1.5.0`) and will use
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
303 the latest version after VERSION (so, if some package already has a
5a470929 » yrashk
2011-01-28 Markdown syntax update in README.md
304 version of `1.6`, `atleast:1.5.0` will select `1.6`. This is mostly
305 for scenarios when `@release` flavour is absent or broken.
44c0d1ea » yrashk
2011-01-28 Added atleast:VERSION syntax to README.md
306
be9362fc » jlouis
2011-01-27 Add more description to the README file.
307 ### How to create relases and flavours
308
309 As hinted, a release version is a *tag* in a `.agner` repository. So
310 to create a release, you alter the `.agner` repository to match your
311 liking and then you tag it (with a standard `git tag` command
312 invocation). Agner will now pick up the change.
313
314 Likewise, for a flavour version, you *branch* the `.agner` repository
315 and alter the branch so it does what your flavour intended to
316 do. Flavours can be made for anything you would like to track over
317 time. By default, the advice is to create two flavours, *@master* and
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
318 *@release*. These tracks, respectively, the current development of a
be9362fc » jlouis
2011-01-27 Add more description to the README file.
319 project and the latest stable release of that project.
320
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
321 Keeping everything up-to-date is outsourced to git and you can use
be9362fc » jlouis
2011-01-27 Add more description to the README file.
322 usual git-commands to manipulate the `.agner` repository.
323
324 ### The contents of an .agner package
325
326 The `.agner` package repository contains a file of Erlang-terms, called
327 `agner.config`. This file looks like this:
328
329 {name, "etorrent"}.
330 {authors, ["Jesper Louis Andersen <jesper.louis.andersen@gmail.com>"]}.
331 {description, "Etorrent is a bittorrent client implementation in Erlang focusing on fault-tolerance"}.
332 {homepage, "http://github.com/jlouis/etorrent"}.
333 {rebar_compatible, true}.
334 {license, "BSD2", "COPYING"}.
335 {erlang_versions, [otp_r14b, otp_r14b01, otp_r13b04]}.
336 {url, {git, "https://github.com/jlouis/etorrent.git", {branch, "master"}}}.
337
338 Or in a more generic way:
339
340 {name, ProjectName}.
341 {authors, [Author]}.
342 {description, ProjectDescription}.
343 {homepage, ProjectHomepage}.
344 {rebar_compatible, IsRebarCompatible}.
b2cf7aa5 » yrashk
2011-01-27 Minor update on optionality of LicenseFile in the spec (README.md)
345 {license, LicenseType [, LicenseFile]}.
be9362fc » jlouis
2011-01-27 Add more description to the README file.
346 {erlang_versions, [OTPAtom]}.
347 {url, UrlSpec}.
348
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
349 The meaning of the individual fields are as in the following:
350
be9362fc » jlouis
2011-01-27 Add more description to the README file.
351 * `ProjectName :: string()` - is the project name. This is usually
352 named the same as the `.agner` package to minimize confusion.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
353
be9362fc » jlouis
2011-01-27 Add more description to the README file.
354 * `[Author] :: [string()]` - Can really be any string, but it is
355 usually the names of the project authors in a list including their
356 email-addresses for easy contact.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
357
be9362fc » jlouis
2011-01-27 Add more description to the README file.
358 * `ProjectDescription :: string()` - A description of the
359 project. Used for searching through projects.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
360
be9362fc » jlouis
2011-01-27 Add more description to the README file.
361 * `ProjectHomepage :: string()` - The URL of the homepage of the
362 project.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
363
be9362fc » jlouis
2011-01-27 Add more description to the README file.
364 * `IsRebarCompatible :: boolean()` - Set to `true` if this project
2569b0ad » yrashk
2011-01-27 Minor update on rebar_compatible in README.md
365 uses `rebar` or is compilable by rebar even if it wasn't originally designed for that.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
366
be9362fc » jlouis
2011-01-27 Add more description to the README file.
367 * `LicenseType :: string(), LicenseFile :: string()` - Two
368 strings. The first one specifies the general license type of the
369 project and the second string explains where the license is to be
370 found from the top level directory (usually file-names like
b2cf7aa5 » yrashk
2011-01-27 Minor update on optionality of LicenseFile in the spec (README.md)
371 `COPYING` or `LICENSE` are used for this). Please note that `LicenseFile` is optional.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
372
be9362fc » jlouis
2011-01-27 Add more description to the README file.
373 * `[OTPAtom] :: [otp_rXXb | otp_rXXbYY]` - A list of what OTP versions
374 the project can be used with. the `XX` is a major release number in
375 Erlang/OTP (12,13,14,...) and `YY` is a minor release number (01,
376 02, ...).
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
377
be9362fc » jlouis
2011-01-27 Add more description to the README file.
378 * `UrlSpec :: {git, URL, GitSpec}` - Specifies where to fetch the
8c1d1cbf » yrashk
2011-01-27 Minor update for 'git' URL format in README.md
379 project. `GitSpec` has type `sha1() | {tag, string()} | {branch, string()}`
380 and points to either string-based sha1 representation, a git *tag* or a *git* branch
be9362fc » jlouis
2011-01-27 Add more description to the README file.
381 respectively. Notice that you can't specify more than one target in
382 this file. To handle multiple versions, you use *releases* and
383 *flavours* by altering the `.agner` repository wherein this
384 configuration file lies.
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
385
1341a02b » yrashk
2011-01-27 Added mentioning of {hg, URL, Rev} URL format in README.md
386 * `UrlSpec :: {hg, URL, HgRev}` - Specifies where to fetch the
387 project. `HgSpec` has type `string()` and points to either string-based revision representation
93546e5a » yrashk
2011-01-26 A little bit more information in the README.md
388
b4b19653 » yrashk
2011-01-27 Fixed broken link in README.md
389 The very latest specification typespecs are available in [agner_spec.hrl](agner/tree/master/include/agner_spec.hrl)
1cfe46df » yrashk
2011-01-27 Reference agner_spec.hrl in README.md
390
260c8512 » yrashk
2011-01-28 Added another note about 'agner verify' in README.md
391 It is **highly recommended** that `.agner` repo maintainers use `agner verify` command before
392 committing and pushing their updated specifications.
393
394
2f3d20a3 » yrashk
2011-01-26 Added README.md
395 Rebar
396 -----
397
b7ac88a5 » yrashk
2011-02-24 Don't mention rebar included with agner as a viable option -- it can …
398 Agner-compatible rebar can be installed by `agner install rebar -v @agner`. We hope to get rebar integration in the upstream with time.
2f3d20a3 » yrashk
2011-01-26 Added README.md
399
93dcd31b » yrashk
2011-02-24 Updated README file
400 Using it with rebar is fairly simple, it makes use of rebar's plugin system.
401 Just include our plugin in your rebar.config and reference default `deps` directory:
2f3d20a3 » yrashk
2011-01-26 Added README.md
402
93dcd31b » yrashk
2011-02-24 Updated README file
403 {rebar_plugins, [agner_rebar_plugin]}.
404 {lib_dirs, ["deps"]}.
2f3d20a3 » yrashk
2011-01-26 Added README.md
405
93dcd31b » yrashk
2011-02-24 Updated README file
406 then, in your .app or .app.src file, add something like this as one of your `application keys`:
407
408 ...
409 {agner, [
410 {requires, ["typespecs","getopt","gproc","plists","gen_fsm2","jsx","rebar"]}
411 ]}
412 ...
413
414 An example can be found in [agner itself](https://github.com/agner/agner/blob/master/src/agner.app.src)
415
416 Also, you can also specify your own indices in rebar.config
2f3d20a3 » yrashk
2011-01-26 Added README.md
417
a26465d6 » yrashk
2011-01-26 Markup update in README.md
418 {agner_indices, [{github, "yourgithubusername"},{github,"agner"}].
2f3d20a3 » yrashk
2011-01-26 Added README.md
419
ca3ad6d4 » yrashk
2011-01-26 Added Contributing article link to README.md
420 Contributing
421 ------------
422
9ab1a80d » jlouis
2011-02-06 Go through the README.md file and clean up.
423 If you want to contrinute to Agner, please read the document at
424 [CONTRIBUTING](agner/tree/master/CONTRIBUTING.md).
425
426
427
428
429
430
Something went wrong with that request. Please try again.