Skip to content

Commit 4911317

Browse files
authored
Update README.md
1 parent b2073bd commit 4911317

File tree

1 file changed

+30
-23
lines changed

1 file changed

+30
-23
lines changed

README.md

+30-23
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,23 @@ operating systems (and architectures).
66

77
It requires [`nix` to be installed](https://nixos.org/download.html).
88

9-
Once you have `nix` installed you can check that everything is working correctly:
9+
Once you have `nix` installed, you can check that everything is working correctly:
1010
* Make sure to add `experimental-features = nix-command flakes` and `accept-flake-config = true` lines to `$XDG_CONFIG_HOME/nix/nix.conf` file ;
1111
* Make sure your `$USER` is trusted `nix show-config | grep trusted-users`, otherwise add it to `/etc/nix/nix.conf` and restart `nix-daemon` ;
1212
* Make sure the `nix-daemon` is running using `systemctl status nix-daemon` (if your OS is `systemd`-based).
1313

14-
Once you have `nix`, (linux, macOS, windows WSL) you can use
15-
14+
Once you have `nix`, (Linux, macOS, windows WSL) you can use:
1615
```bash
1716
nix develop github:input-output-hk/devx#ghc96 --no-write-lock-file --refresh
1817
```
1918

20-
to obtain a haskell evelopment shell for GHC 8.10.7 including `cabal-install`,
21-
as well as `hls` and `hlint`. If you are on macOS on an apple silicon chip (M1, M2, ...),
19+
Then, to obtain a haskell development shell for GHC 8.10.7 including `cabal-install`,
20+
as well as `hls` and `hlint`. If you are on macOS on an Apple Silicon chip (M1, M2, ...),
2221
and want to switch between Intel (x86_64) and Apple Silicon (aarch64), you can do
2322
this by simply passing the corresponding `--system` argument:
24-
2523
```bash
2624
nix develop github:input-output-hk/devx#ghc810 --no-write-lock-file --refresh --system x86_64-darwin
27-
```
28-
or
29-
```bash
25+
# ... or:
3026
nix develop github:input-output-hk/devx#ghc810 --no-write-lock-file --refresh --system aarch64-darwin
3127
```
3228

@@ -64,44 +60,55 @@ To make this developer shell available in VSCode DevContainer or GitHub CodeSpac
6460
```
6561
This configuration will work immediately in GitHub CodeSpace! For local VSCode DevContainer, you need Docker and the [VSCode extension](https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-containers). For guidance on this, you can follow the [Microsoft tutorial](https://code.visualstudio.com/docs/devcontainers/tutorial).
6662

67-
It's also advise to enable GitHub CodeSpace prebuilds in your repository settings, follow the instructions provided in the [GitHub documentation](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/configuring-prebuilds). This will significantly enhance your development experience by reducing the setup time when opening a new CodeSpace.
63+
It's also advised to enable GitHub CodeSpace prebuilds in your repository settings, follow the instructions provided in the [GitHub documentation](https://docs.github.com/en/codespaces/prebuilding-your-codespaces/configuring-prebuilds). This will significantly enhance your development experience by reducing the setup time when opening a new CodeSpace.
6864

69-
List of images available: `ghc810-iog`, `ghc96-iog`, `ghc810-js-iog`, `ghc96-js-iog`, `ghc810-windows-iog`, `ghc96-windows-iog`
65+
List of images available: `ghc810-iog`, `ghc96-iog`, `ghc810-js-iog`, `ghc96-js-iog`, `ghc810-windows-iog`, `ghc96-windows-iog`.
7066

71-
## Compilers and Flavours
67+
## Compilers and Flavors
7268

7369
There are multiple compilers available, and usually the latest for each series
7470
from 8.10 to 9.6 (a slight delay between the official release announcement and
7571
the compiler showing up in the devx shell is expected due to integration work
76-
necessary). The current available ones are: `ghc810`, `ghc90`, `ghc92`,`ghc94`, and
72+
necessary). The current available ones are: `ghc810`, `ghc90`, `ghc92`, `ghc94`, and
7773
`ghc96` (these are the same ones as in [haskell.nix](https://github.com/input-output-hk/haskell.nix) and may contain patches for defects in the official releases).
7874

79-
### Flavours
80-
There are various flavours available as suffixes to the compiler names (e.g. `#ghc810-minimal-iog`).
75+
### Flavors
76+
77+
There are various flavors available as suffixes to the compiler names (e.g. `#ghc810-minimal-iog`).
8178

82-
| Flavour | Description | Example | Included |
79+
| Flavor | Description | Example | Included |
8380
| - | - | - | - |
8481
| empty | General Haskell Dev | `#ghc810` | `ghc`, `cabal-install`, `hls`, `hlint` |
8582
| `-iog` | IOG Haskell Dev | `#ghc810` | adds `sodium-vrf`, `blst`, `secp256k1`, `R`, `postgresql` |
8683
| `-minimal` | Only GHC, and Cabal | `#ghc810-minimal` | drops `hls`, `hlint` |
87-
| `-static` | Building static binaries | `#ghc810-static` | static haskell cross compiler |
88-
| `-js` | JavaScript Cross Compiler | `#ghc810-js` | javascript haskell cross compiler |
89-
| `-windows` | Windows Cross Compiler | `#ghc810-windows` | windows haskell cross compiler |
84+
| `-static` | Building static binaries | `#ghc810-static` | Static Haskell Cross-Compiler |
85+
| `-js` | JavaScript Cross-Compiler | `#ghc810-js` | JavaScript Haskell Cross-Compiler |
86+
| `-windows` | Windows Cross-Compiler | `#ghc810-windows` | Windows Haskell Cross-Compiler |
9087

91-
these can then be comined following this schema:
88+
These can then be combined following this schema:
9289
```
9390
#ghc<ver>[-js|-windows|-static][-minimal][-iog]
9491
```
95-
For example
92+
For example:
9693
```bash
9794
nix develop github:input-output-hk/devx#ghc810-windows-minimal-iog --no-write-lock-file --refresh
9895
```
99-
would provide a development shell with a windows cross compiler as well as cabal, and the IOG specific libraries, but no Haskell Language Server (hls), and no HLint.
96+
... would provide a development shell with a windows cross-compiler as well as cabal, and the IOG specific libraries, but no Haskell Language Server (`hls`), and no HLint.
10097

101-
A full list of all available `devShells` can be see with:
98+
A full list of all available `devShells` can be seen with:
10299
```bash
103100
nix flake show github:input-output-hk/devx
104101
```
105102

103+
## To Go Further
104+
105+
### Customizing with `haskell.nix`
106+
107+
The `devx` shell utilizes `haskell.nix` for a consistent development environment across platforms. Direct use of `haskell.nix` allows for greater customization by adapting Nix expressions to specific project needs, `haskell.nix` turn a Cabal or Stack projects into a Nix expression. For more details, see the [`haskell.nix` documentation](https://input-output-hk.github.io/haskell.nix/).
108+
109+
### Automating with IOG GitHub Actions
110+
111+
The `devx` GitHub Action, alongside other IOG-provided actions, supports automated workflows for Haskell projects. More information can be found in the [IOG GitHub Actions repository](https://github.com/input-output-hk/actions).
112+
106113
> [!NOTE]
107114
> For commercial support, please don't hesitate to reach out at [email protected]

0 commit comments

Comments
 (0)