Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

docs: update instructions #2297

Merged
merged 26 commits into from
Sep 22, 2023
Merged
Show file tree
Hide file tree
Changes from 15 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 100 additions & 0 deletions docs/docs/dev_docs/getting_started/updating.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
---
title: Updating
---

There are 4 components whose versions need to be kept compatible:
1. Aztec Sandbox,
2. Aztec CLI,
3. Noir compiler `nargo`,
4. Noir framework for Aztec contracts `aztec.nr`.
benesjan marked this conversation as resolved.
Show resolved Hide resolved

## Updating Aztec Sandbox
To update the sandbox to the latest version, simply run the curl command we used for installation again:
```shell
/bin/bash -c "$(curl -fsSL 'https://sandbox.aztec.network')"
```

It will download and start the latest version of sandbox.

If you would like to use a fixed version of the sandbox, you can export the `SANDBOX_VERSION` environmental variable.
If you are unsure what version to use go to [aztec-packages repository](https://github.com/AztecProtocol/aztec-packages/releases) and choose the `aztec-packages` release based on the changelog.

Then set the `SANDBOX_VERSION` environmental variable to the version you want to use. E.g.:
```shell
export SANDBOX_VERSION=0.7.7
benesjan marked this conversation as resolved.
Show resolved Hide resolved
```

Now when you run the curl command it will use the version you specified.
To verify that it's the case check the console output of the curl command.
You should see the following line:
```
Aztec Sandbox 0.7.7 is now ready for use!
```

Alternatively you can open a new terminal and use aztec-cli to get the version.

#include_code node-info yarn-project/end-to-end/src/cli_docs_sandbox.test.ts bash
benesjan marked this conversation as resolved.
Show resolved Hide resolved

The sandbox version should be the same as the one we chose by setting the `SANDBOX_VERSION` environmental variable.

## Updating Aztec CLI
If the latest version was used when updating the sandbox then we can simply run the following command to update the CLI:
```shell
npm install -g @aztec/cli
```

If a specific version was set for the sandbox then we need to install the CLI with the same version:
```shell
npm install -g @aztec/cli@REPLACE_WITH_SANDBOX_VERSION
benesjan marked this conversation as resolved.
Show resolved Hide resolved
```

E.g.:
```shell
npm install -g @aztec/[email protected]
```

## Updating Noir compiler
Now we need to update the Noir compiler `nargo` to the version compatible with the sandbox.
Use `aztec-cli` to get it:
#include_code node-info yarn-project/end-to-end/src/cli_docs_sandbox.test.ts bash

Then we install the `Compatible Nargo Version` with (replace `COMPATIBLE_NARGO_VERSION` with the version from the previous command):
```shell
noirup -v COMPATIBLE_NARGO_VERSION
benesjan marked this conversation as resolved.
Show resolved Hide resolved
```

## Updating Noir framework
Finally we need to update the Noir framework for Aztec contracts.
We need to install a version compatible with our `nargo` version.
benesjan marked this conversation as resolved.
Show resolved Hide resolved

To update the framework we will update a tag of the `aztec.nr` dependency in the `Nargo.toml` file to the `SANDBOX_VERSION` from above.
Find all the dependencies pointing to the directory within `aztec.nr` framework and update the corresponding tag:

```toml
[dependencies]
aztec = { git="https://github.com/AztecProtocol/aztec-packages", tag="aztec-packages-v<REPLACE_WITH_NEW_SANDBOX_VERSION>", directory="yarn-project/aztec-nr/aztec" }
value_note = { git="https://github.com/AztecProtocol/aztec-packages", tag="aztec-packages-v<REPLACE_WITH_NEW_SANDBOX_VERSION>", directory="yarn-project/aztec-nr/value-note" }
```

To provide you with a concrete example we will update from version `0.7.5`:
```toml
[dependencies]
aztec = { git="https://github.com/AztecProtocol/aztec-packages", tag="aztec-packages-v0.7.5", directory="yarn-project/aztec-nr/aztec" }
value_note = { git="https://github.com/AztecProtocol/aztec-packages", tag="aztec-packages-v0.7.5", directory="yarn-project/aztec-nr/value-note" }
```

to `0.7.7`:

```toml
[dependencies]
aztec = { git="https://github.com/AztecProtocol/aztec-packages", tag="aztec-packages-v0.7.7", directory="yarn-project/aztec-nr/aztec" }
value_note = { git="https://github.com/AztecProtocol/aztec-packages", tag="aztec-packages-v0.7.7", directory="yarn-project/aztec-nr/value-note" }
```
benesjan marked this conversation as resolved.
Show resolved Hide resolved

Go to the project directory and try compiling it with `aztec-cli`` to verify that the update was successful:
```shell
cd /your/project/root
aztec-cli compile ./
```

If the dependencies fail to resolve ensure that the tag matches a tag in the [aztec-packages repository](https://github.com/AztecProtocol/aztec-packages/tags).
1 change: 1 addition & 0 deletions docs/sidebars.js
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ const sidebars = {
"dev_docs/getting_started/sandbox",
"dev_docs/getting_started/noir_contracts",
"dev_docs/getting_started/token_contract_tutorial",
"dev_docs/getting_started/updating",
],
},

Expand Down
16 changes: 15 additions & 1 deletion yarn-project/end-to-end/src/cli_docs_sandbox.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,24 @@ describe('CLI docs sandbox', () => {
}, 60_000);

const waitForSandboxWithCli = async () => {
const docs = `
// docs:start:node-info
% aztec-cli get-node-info
Node Info:

Sandbox Version: 0.7.7
Compatible Nargo Version: 0.11.1-aztec.0
Chain Id: 31337
Protocol Version: 1
Rollup Address: 0x0dcd1bf9a1b36ce34237eeafef220932846bcd82
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Shouldn't we assert that the returned text from the command matches this? It's a bit annoying since we need to load the versions from the release-please-manifest and the noir-version jsons. Or we can just parse it manually, and use an expect.anything() for those values.

// docs:end:node-info
`;

const command = docs.split('\n')[2].split('aztec-cli ')[1];
while (true) {
resetCli();
try {
await run('get-node-info');
await run(command);
break;
} catch (err) {
await sleep(1000);
Expand Down