aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
authoralexbiehl <alex.biehl@gmail.com>2017-08-21 20:05:42 +0200
committeralexbiehl <alex.biehl@gmail.com>2017-08-21 20:05:42 +0200
commit7a71af839bd71992a36d97650004c73bf11fa436 (patch)
treee64afbc9df5c97fde6ac6433e42f28df8a4acf49 /README.md
parentc8a01b83be52e45d3890db173ffe7b09ccd4f351 (diff)
parent740458ac4d2acf197f2ef8dc94a66f9b160b9c3c (diff)
Merge remote-tracking branch 'origin/master' into ghc-head
Diffstat (limited to 'README.md')
-rw-r--r--README.md66
1 files changed, 24 insertions, 42 deletions
diff --git a/README.md b/README.md
index 160ee995..3e356ecc 100644
--- a/README.md
+++ b/README.md
@@ -1,52 +1,21 @@
-# Haddock, a Haskell Documentation Tool
+# Haddock, a Haskell Documentation Tool [![Build Status](https://travis-ci.org/haskell/haddock.svg?branch=master)](https://travis-ci.org/haskell/haddock)
-#### About haddock
+## About haddock
-This is Haddock, a tool for automatically generating documentation
-from annotated Haskell source code. It is primary intended for
-documenting library interfaces, but it should be useful for any kind
-of Haskell code.
+See [Description on Hackage](https://hackage.haskell.org/package/haddock).
-Haddock lets you write documentation annotations next to the
-definitions of functions and types in the source code, in a syntax
-that is easy on the eye when writing the source code (no heavyweight
-mark-up). The documentation generated by Haddock is fully hyperlinked
-- click on a type name in a type signature to go straight to the
-definition, and documentation, for that type.
+## Source code documentation
-Haddock understands Haskell's module system, so you can structure your
-code however you like without worrying that internal structure will be
-exposed in the generated documentation. For example, it is common to
-implement a library in several modules, but define the external API by
-having a single module which re-exports parts of these implementation
-modules. Using Haddock, you can still write documentation annotations
-next to the actual definitions of the functions and types in the
-library, but the documentation annotations from the implementation
-will be propagated to the external API when the documentation is
-generated. Abstract types and classes are handled correctly. In
-fact, even without any documentation annotations, Haddock can generate
-useful documentation from your source code.
-
-
-#### Documentation formats
-
-Haddock can generate documentation in multiple formats; currently HTML
-is implemented, and there is partial support for generating LaTeX and
-Hoogle.
-
-
-#### Source code documentation
-
-Full documentation can be found in the doc/ subdirectory, in DocBook
+Full documentation can be found in the `doc/` subdirectory, in
+[reStructedText format](http://www.sphinx-doc.org/en/stable/rest.html)
format.
-
-#### Contributing
+## Contributing
Please create issues when you have any problems and pull requests if you have some code.
-##### Hacking
+## Hacking
To get started you'll need a latest GHC release installed.
@@ -59,7 +28,15 @@ Clone the repository:
and then proceed using your favourite build tool.
-###### Using Cabal sandboxes
+#### Using [`cabal new-build`](http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html)
+
+```bash
+cabal new-build -w ghc-8.2.1
+# build & run the test suite
+cabal new-test -w ghc-8.2.1
+```
+
+#### Using Cabal sandboxes
```bash
cabal sandbox init
@@ -75,7 +52,7 @@ export HADDOCK_PATH="dist/build/haddock/haddock"
cabal test
```
-###### Using Stack
+#### Using Stack
```bash
stack init
@@ -85,9 +62,14 @@ export HADDOCK_PATH="$HOME/.local/bin/haddock"
stack test
```
+### Git Branches
If you're a GHC developer and want to update Haddock to work with your
-changes, you should be working on `ghc-head` branch instead of master.
+changes, you should be working on `ghc-head` branch instead of `master`.
See instructions at
https://ghc.haskell.org/trac/ghc/wiki/WorkingConventions/Git/Submodules
for an example workflow.
+
+The `master` branch usually requires a GHC from the latest GHC stable
+branch. The required GHC version can be inferred from the version
+bounds on `ghc` in the respective `.cabal` files.