Update documentation of dependency setup#1900
Conversation
…the Dockerfile and added a note on how to downgrade if necessary
8b81c3a to
b915c44
Compare
|
Can we drop the Fedora/Ubuntu instructions? Realistically everyone is using the Nix/direnv approach, and the other stuff isn't guaranteed to work (or bitrot over time). |
|
The current stack configuration doesn't enable the Nix integration for me automatically on Debian (though it does for @flokli on NixOS for some reason, and I haven't looked into why). Per the stack docs, we should add The direnv configuration only pulls in stack itself, and non-Haskell build dependencies like GMP and cryptobox are only pulled in through stack's Nix integration, which meant that the build failed for me due to missing dependencies without locally amending the stack config to turn that on. I agree about the platform-specific dependency setup docs being at risk of bitrotting if nobody's regularly testing them, in which case getting rid of them is probably not a bad idea. I'm not sure whether we want to manage non-Haskell dependencies through Nix+direnv or stack+Nix, but I think that's a separate discussion. |
Hm, I think a potentially partially-out-of-date list of packages to install for some operating systems is still useful. We don't add new system-level dependencies to our services often (rather like once per year or so). At the moment the nix setup really only installs cryptobox, all the other compile-time and run-time dependencies are mentioned nowhere else and in this readme. Taking for instance brig, it has these runtime dependencies: The compile-time dependencies for alpine are in https://github.com/wireapp/wire-server/blob/develop/build/alpine/Dockerfile.prebuilder and the run-time dependencies are in https://github.com/wireapp/wire-server/blob/develop/build/alpine/Dockerfile.deps - but that only covers alpine. Any new person starting to develop on wire-server will likely not run alpine, the nix dependencies don't cover even half of what's needed; so what's the harm of keeping a list of packages around for a few more OSes? If we're afraid this can bitrot, we could add them to a script file and add a docker image that installs those then tries to run Am I the only one who thinks this is useful? Alternatively the nix setup could be changed in such a way to actually cover all dependencies; and that same setup is used for the docker images we build and ship in the end. But that's not there yet, so I'd wait before we remove some docs that are helpful to some new people starting to work on this git repository. |
jschaul
left a comment
There was a problem hiding this comment.
I think overall this changeset is an improvement over the status quo, so feel free to merge this (even if it can be improved further)
|
|
||
| ### Nix + Direnv | ||
|
|
||
| Using Stack's [Nix integration](https://docs.haskellstack.org/en/stable/nix_integration/), Stack will take care of installing any system |
There was a problem hiding this comment.
Maybe a note should be added that this needs to be enabled manually by passing the --nix flag to stack or set a config in stack.yaml locally. Maybe someone for whom the nix+stack setup works out of the box could add a sentence or two here.
Co-authored-by: jschaul <jschaul@users.noreply.github.com>
9c293ab to
fb8374f
Compare
fb8374f to
0041d6e
Compare
| Due to nginx not supporting DNS names for its list of upstream servers (unless you pay extra), the nginz-disco container is a simple bash script to do DNS lookups and write the resulting IPs to a file. Nginz reloads on changes to this file. | ||
|
|
||
| This is useful as a sidecar container to nginz in kubernetes. See also [wire-server-deploy/nginz](https://github.com/wireapp/wire-server-deploy/charts/nginz/) | ||
| This is useful as a sidecar container to nginz in kubernetes. See also [wire-server-deploy/nginz](https://github.com/wireapp/wire-server-deploy/charts/nginz/) <!-- todo: this link is broken > |
There was a problem hiding this comment.
this chart has been merged into wire-server, so the reference should be ./charts/nginz/
Checklist
make git-add-cassandra-schemato update the cassandra schema documentation.changelog.d.