Created
June 13, 2021 17:31
-
-
Save JonathanLorimer/17b91e8480d58b5fb50fb13a3985d891 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Cabal Reference Summaries | |
- Old Cabal User Guide | |
- Section 1 | |
- `cabal init` & `cabal run` | |
- Adding dependencies to a cabal file | |
- Relationship of `Main.hs` to `cabal run` | |
- Section 2 | |
- `cabal install` command | |
- Local | |
- Hackage | |
- Tarballs | |
- Difference between `library` `executable` `tests` | |
- What is a `.cabal` file | |
- What is a `Setup.hs` file | |
- Section 3 | |
- Configuration for `cabal-install` & `cabal update` command | |
- Section 4 | |
- Setting up a cabal project manually | |
- Setting up a cabal project with `cabal init --interactive` | |
- Explanation of `libraries` vs `executables` | |
- Exposed modules for libraries | |
- Main module for executables | |
- Other modules | |
- Build depends | |
- Constraint bounds | |
- Common stanza | |
- Building a package with `configure` `build` and `install` | |
- Philosophical discussion of the point of packages | |
- Discussion of naming and versioning | |
- Cabal vs ghc vs OS package | |
- Section 5 | |
- V2 commands | |
- cabal.project files | |
- Profiling | |
- External vs Local packages | |
- Where do the build products end up? | |
- What gets cached? | |
- Section 6 | |
- Cabal command reference (not relevant for a user guide) | |
- Section 7 | |
- Creating a package (greater detail) | |
- Package properties | |
- Reference for .cabal stanzas | |
- Notable tests and benchmarks (which should have a user guide component) | |
- Foreign libraries | |
- Build information | |
- Deeper dive into version bounds | |
- Common stanzas | |
- Custom setup | |
- Accessing data files | |
- Section 8 | |
- cabal.project reference (should include cabal.project in user guide, but make it less reference-y) | |
- Section 9 | |
- Setup.hs reference | |
- Section 10 / 11 | |
- Field syntax reference | |
- Report bug reference | |
- Section 12 | |
- Nix interop | |
- Kowainik Tutorial | |
- Discussion of overloaded term `cabal` | |
- `cabal-install` | |
- `.cabal` files | |
- `Cabal` library | |
- How to install `cabal-install` | |
- `cabal init` and `summoner` for getting started | |
- Cabal project structure | |
- Building a project | |
- Adding a dependency | |
- Cabal repl | |
- Adding an executable | |
- Haskell School | |
- Clarifying the term cabal | |
- Clarifying the terms `module` `library` `package` `executable` `project` | |
- Installing and updating cabal | |
- Creating a new project | |
- Briefly mentions setup.hs | |
- Covers .cabal file | |
- Building and running executables | |
- Adding dependencies to the `myproject.cabal` file | |
- Shows version bounds errors (this is a good idea) | |
- Having a project with a lib and executable | |
- Module visibility (exposed vs other modules) | |
- Multiple ghc versions using cabal.project | |
- Historical Notes | |
- Cabal Hell | |
- Cabal Sandbox | |
- Command Prefixes |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment