From 7566af3c5cac94a1d7a169c447212e8ce83ac137 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Thu, 24 Jul 2025 11:04:12 +0100 Subject: [PATCH 1/2] Add uv link to first time install guide --- doc/overview/First-Time-Build.md | 4 ++++ doc/scripting/uv.md | 13 +++++++++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/doc/overview/First-Time-Build.md b/doc/overview/First-Time-Build.md index 24358d174..7fd5bb551 100644 --- a/doc/overview/First-Time-Build.md +++ b/doc/overview/First-Time-Build.md @@ -61,6 +61,10 @@ To easily add `EPICSTerm.bat` to the start menu after copying EPICS, run `C:\Ins See [Building and installing the uktena python distribution](/system_components/python/Building-and-installing-uktena) +## uv + +See {ref}`installing_uv` + ## Ruff git hook and convenience scripts In order to use this please clone the reusable workflows repo into dev diff --git a/doc/scripting/uv.md b/doc/scripting/uv.md index aa19e19a7..e17866b05 100644 --- a/doc/scripting/uv.md +++ b/doc/scripting/uv.md @@ -10,7 +10,15 @@ We are currently considering whether we could use it to split up our python proc - `c:\Instrument\apps\uv\snakes` is the location of individually-versioned python interpreter executables. These are "bare" interpreters, that do not contain any dependencies such as `genie_python`. - `c:\Instrument\var\tmp\uvcache` is the location of `uv`'s pip download cache. This can safely be deleted and will be recreated as-needed. -## Details of `uv` setup +{#installing_uv} +## Installing `uv` +We have a script which is used in various places to install `uv`. This will install `uv` into `c:\Instrument\apps\uv\` and can be run on instruments, build machines and developer machines. + +To install `uv` run `\\isis\shares\ISIS_Experiment_Controls_Public\ibex_utils\installation_and_upgrade\install_or_update_uv.bat` + +For developer machines currently this can be used for things that aren't in `\Instrument\Apps\EPICS\` such as projects you have in `Instrument\dev\` or for manually running the items below. + +## Usage of `uv` in IBEX ### IBEX install scripts @@ -30,4 +38,5 @@ It can be used on Github actions CI, but isn't currently. In the future we may consider using `uv` to create and build virtual environments for each respective python process that runs on the NDX. This requires some decisions and subsequent work: - `uv.lock` files - should we keep them in source, or at least on the build server, then build virtual environments on the NDXes with those specific versions? -- python wheels need to be available for everything we use - the NDXes do not have compilers ie. Visual Studio installed. \ No newline at end of file +- python wheels need to be available for everything we use - the NDXes do not have compilers ie. Visual Studio installed. + From 294486178087d9b15344c82ab445d1680740c201 Mon Sep 17 00:00:00 2001 From: Jack Harper Date: Thu, 24 Jul 2025 11:32:28 +0100 Subject: [PATCH 2/2] add uv to wordlist, link to uv page in glossary --- doc/Glossary.md | 4 ++++ doc/scripting/uv.md | 3 ++- doc/spelling_wordlist.txt | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/Glossary.md b/doc/Glossary.md index b312a49d2..00158a1bd 100644 --- a/doc/Glossary.md +++ b/doc/Glossary.md @@ -265,6 +265,10 @@ A graphical representation of an ISIS beamline, showing permanent components as ## User Values +## uv + +See {ref}`uv` + ## Vagrant A tool for building and managing [virtual machine](#virtual-machine) environments. See [homepage](https://www.vagrantup.com) for more information. diff --git a/doc/scripting/uv.md b/doc/scripting/uv.md index e17866b05..96b2b9b39 100644 --- a/doc/scripting/uv.md +++ b/doc/scripting/uv.md @@ -1,6 +1,7 @@ +{#uv} # `uv` and python environments -`uv` is a Python package and project manager. See [`uv`'s docs](https://docs.astral.sh/uv/) for more information. +[`uv`](https://github.com/astral-sh/uv) is a Python package and project manager. See [`uv`'s docs](https://docs.astral.sh/uv/) for more information. We are currently considering whether we could use it to split up our python processes and use it for python version management on instrument machines. diff --git a/doc/spelling_wordlist.txt b/doc/spelling_wordlist.txt index b5610ffa4..1b94ce2b3 100644 --- a/doc/spelling_wordlist.txt +++ b/doc/spelling_wordlist.txt @@ -895,6 +895,7 @@ url userdef usr utils +uv uzhex vala validator