docs(tvix): update README to document usage inside tvix view

If the tvix view is cloned through josh, you don't use mg, but a
`shell.nix` is provided.

Also, add the `git clone` command, so people browsing tvix source code
in the browser know where to clone from.

Change-Id: I18483d6a52953f9f4eafd1533ea69afb0e329b04
Reviewed-on: https://cl.tvl.fyi/c/depot/+/8001
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
This commit is contained in:
Florian Klink 2023-02-01 14:38:43 +01:00 committed by flokli
parent dbabf728b7
commit 5ac33a227f

View file

@ -14,19 +14,27 @@ There's also some discussion around development on our
## Building the CLI ## Building the CLI
If you are in a full checkout of the TVL depot, you can simply run `mg build` The CLI can also be built with standard Rust tooling (i.e. `cargo build`),
in the `cli` directory (or `mg build //tvix/cli` from anywhere in the repo). as long as you are in a shell with the right dependencies.
The `mg` command is found in `/tools/magrathea`.
- If you cloned the full monorepo, it can be provided by `mg shell //
tvix:shell`.
- If you cloned the `tvix` workspace only
(`git clone https://code.tvl.fyi/depot.git:workspace=views/tvix.git`),
`nix-shell` provides it.
If you're in the TVL monorepo, you can also run `mg build //tvix/cli`
(or `mg build` from inside that folder) for a more incremental build.
Please follow the depot-wide instructions on how to get `mg` and use the depot
tooling.
### Compatibility
**Important note:** We only use and test Nix builds of our software **Important note:** We only use and test Nix builds of our software
against Nix 2.3. There are a variety of bugs and subtle problems in against Nix 2.3. There are a variety of bugs and subtle problems in
newer Nix versions which we do not have the bandwidth to address, newer Nix versions which we do not have the bandwidth to address,
builds in newer Nix versions may or may not work. builds in newer Nix versions may or may not work.
The CLI can also be built with standard Rust tooling (i.e. `cargo build`),
as long as you are in a shell with the right dependencies (provided by `mg
shell //tvix:shell`).
## Rust projects, crate2nix ## Rust projects, crate2nix
Some parts of Tvix are written in Rust. To simplify the dependency Some parts of Tvix are written in Rust. To simplify the dependency
@ -37,7 +45,7 @@ configuration.
When making changes to Cargo dependency configuration in any of the When making changes to Cargo dependency configuration in any of the
Rust projects under `//tvix`, be sure to run Rust projects under `//tvix`, be sure to run
`mg run //tvix:crate2nixGenerate --` in `//tvix` itself and commit the changes `mg run //tvix:crate2nixGenerate --` in `//tvix` itself and commit the changes
to the generated `Cargo.nix` file. to the generated `Cargo.nix` file. This only applies to the full TVL checkout.
## License structure ## License structure