diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 10eca12e9b..d25bdc13ba 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,7 +34,7 @@ make bootstrap `make bootstrap` activates Flox as needed, installs the pinned Python and Node.js toolchains, synchronizes Python dependencies, installs pnpm workspace -dependencies, and builds Studio assets. Run `flox activate` afterward when you +dependencies, and builds Studio assets. Run `flox -q activate` afterward when you want to use `uv`, `node`, or `pnpm` directly. Flox supplies Node.js and Corepack installs the repository-pinned pnpm into the environment cache. Interactive activation installs the repository's pre-commit hook when needed; leave the @@ -66,7 +66,7 @@ For complete Studio setup instructions, see the [Getting Started section in the 1. **Flox**: Activate the repository environment, which provides the pinned Node.js and pnpm versions: ```bash -flox activate +flox -q activate ``` #### Initialize the Repository @@ -134,7 +134,7 @@ Then start the platform from the repository root: ```bash # From an activated Flox environment -flox activate +flox -q activate nemo services run # Or run everything with quickstart config (builds OPA policy first) @@ -150,7 +150,7 @@ NMP_CONFIG_FILE_PATH=packages/nmp_platform/config/local.yaml \ Visit `http://localhost:8080/studio/` to access the Studio UI. -After the first interactive `flox activate`, pre-commit is installed +After the first interactive `flox -q activate`, pre-commit is installed automatically. System-toolchain contributors can install it explicitly with `uv run pre-commit install`. diff --git a/Makefile b/Makefile index 3d263f30f5..5874837ccf 100644 --- a/Makefile +++ b/Makefile @@ -25,7 +25,7 @@ NODE_VERSION := 22.23.2 PNPM_VERSION := 10.34.5 BOOTSTRAP_CREATE_VENV ?= 1 BOOTSTRAP_EXPECTED_VIRTUAL_ENV := $(CURDIR)/.venv -BOOTSTRAP_ACTIVATION_REMINDER = if [ "$(TOOLCHAIN)" = "flox" ] && [ "$${FLOX_ENV_PROJECT:-}" != "$(CURDIR)" ]; then echo ""; echo "Next steps:"; echo " flox activate"; echo " nemo --help"; elif [ "$(TOOLCHAIN)" = "system" ] && [ "$${VIRTUAL_ENV:-}" != "$(BOOTSTRAP_EXPECTED_VIRTUAL_ENV)" ]; then echo ""; echo "Next steps:"; echo " source .venv/bin/activate"; echo " nemo --help"; fi +BOOTSTRAP_ACTIVATION_REMINDER = if [ "$(TOOLCHAIN)" = "flox" ] && [ "$${FLOX_ENV_PROJECT:-}" != "$(CURDIR)" ]; then echo ""; echo "Next steps:"; echo " flox -q activate"; echo " nemo --help"; elif [ "$(TOOLCHAIN)" = "system" ] && [ "$${VIRTUAL_ENV:-}" != "$(BOOTSTRAP_EXPECTED_VIRTUAL_ENV)" ]; then echo ""; echo "Next steps:"; echo " source .venv/bin/activate"; echo " nemo --help"; fi # Display platform info $(info local system architecture: $(PLATFORM)/$(ARCH)) @@ -223,11 +223,12 @@ bootstrap-python: verify-python-version verify-compiler ## Bootstrap Python depe TOOLCHAIN ?= flox FLOX ?= flox +FLOX_QUIET ?= $(FLOX) -q ifeq ($(TOOLCHAIN),flox) ifeq ($(FLOX_ENV_PROJECT),$(CURDIR)) FLOX_EXEC := else -FLOX_EXEC := $(FLOX) activate --dir "$(CURDIR)" -- +FLOX_EXEC := $(FLOX_QUIET) activate --dir "$(CURDIR)" -- endif else ifeq ($(TOOLCHAIN),system) FLOX_EXEC := @@ -236,7 +237,8 @@ $(error TOOLCHAIN must be either flox or system) endif UV := $(FLOX_EXEC) uv ifeq ($(TOOLCHAIN),flox) -PNPM := $(FLOX_EXEC) bash -c 'corepack "pnpm@$(PNPM_VERSION)" "$$@"' -- +FLOX_NODE_EXEC := $(FLOX_QUIET) activate --dir "$(CURDIR)/tools/nodejs" -- +PNPM := $(FLOX_NODE_EXEC) pnpm else PNPM := $(FLOX_EXEC) pnpm endif diff --git a/README.md b/README.md index b2eebf0b68..178e11716a 100644 --- a/README.md +++ b/README.md @@ -35,12 +35,12 @@ cd nemo-platform # Install Flox first: https://flox.dev/docs/install-flox/install make bootstrap -flox activate +flox -q activate nemo setup ``` -`make bootstrap` uses the Flox-pinned uv, Node.js, and pnpm toolchain; it does not require a prior `flox activate`. Activate Flox after bootstrap to continue development in the managed environment. Without Flox, install the versions printed by `make toolchain-versions` and a C compiler, then run `make TOOLCHAIN=system bootstrap` followed by `source .venv/bin/activate`. See [SETUP.md](SETUP.md#toolchain-uv-nodejs-pnpm). +`make bootstrap` uses the Flox-pinned uv, Node.js, and pnpm toolchain; it does not require a prior `flox -q activate`. Activate Flox after bootstrap to continue development in the managed environment. Without Flox, install the versions printed by `make toolchain-versions` and a C compiler, then run `make TOOLCHAIN=system bootstrap` followed by `source .venv/bin/activate`. See [SETUP.md](SETUP.md#toolchain-uv-nodejs-pnpm). `nemo setup` starts local services, registers your LLM provider, discovers available models, selects default and fast agent models, installs agent skills, and deploys a sample agent (see more below). diff --git a/SETUP.md b/SETUP.md index 3c1e6d7a5d..3bb02e8b3a 100644 --- a/SETUP.md +++ b/SETUP.md @@ -94,7 +94,7 @@ Before running `make bootstrap`, install Flox from the [Flox installation guide] ```bash make bootstrap # installs Python deps, Studio assets, and plugins (including demo calculator agent) -flox activate # enter the managed development environment +flox -q activate # enter the managed development environment nemo setup # interactive: prompts for provider, picks default/fast models, optionally deploys calculator-agent ``` @@ -130,7 +130,7 @@ make: *** [test-unit] Error 127 That covers the `make` targets only. To run `uv` or `pnpm` directly, activate Flox first: ```bash -flox activate +flox -q activate ``` Without Flox, install the versions printed by `make toolchain-versions` and a C compiler, then run `make TOOLCHAIN=system bootstrap`. Docker is required when starting local services, but not for dependency bootstrap. diff --git a/docs/get-started/setup.mdx b/docs/get-started/setup.mdx index f47e018a9b..07b6522d4e 100644 --- a/docs/get-started/setup.mdx +++ b/docs/get-started/setup.mdx @@ -49,7 +49,7 @@ Install [Flox](https://flox.dev/docs/install-flox/install) before running `make git clone https://github.com/NVIDIA-NeMo/nemo-platform.git cd nemo-platform make bootstrap -flox activate +flox -q activate ``` The `make bootstrap` target creates the Python environment, syncs Python dependencies, builds Studio assets, and installs local plugins. Activate Flox afterward to continue development with the managed toolchain. diff --git a/web/AGENTS.md b/web/AGENTS.md index b3f14b1a53..9881d8e8b2 100644 --- a/web/AGENTS.md +++ b/web/AGENTS.md @@ -34,7 +34,7 @@ The `kaizen-ui` skill is not committed — it is synced from the `@nvidia/founda - Use **pnpm** exclusively — never npm or yarn - Run frontend commands from `web/`, not from repo root -- Node.js and pnpm come from the root Flox environment. Run `flox activate` for interactive work; Corepack provides the repository-pinned pnpm. +- Node.js and pnpm come from the root Flox environment. Run `flox -q activate` for interactive work; Corepack provides the repository-pinned pnpm. - Install dependencies: `pnpm add ` - Run scripts: `pnpm ` diff --git a/web/README.md b/web/README.md index cf17bf2bb0..ebbbc97e0e 100644 --- a/web/README.md +++ b/web/README.md @@ -7,7 +7,7 @@ NeMo Studio is a UI built on the NeMo Platform, which is aimed at improving agen 1. For first setup, install Flox from the repository root and run `make bootstrap-studio`; it provides the pinned Node.js and pnpm versions without requiring global installation. For interactive web work, activate Flox: ```bash - flox activate # from the repository root + flox -q activate # from the repository root ``` Or install the Node.js and pnpm versions printed by `make toolchain-versions`, then use `TOOLCHAIN=system make bootstrap-studio` from the repository root.