Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 4 additions & 0 deletions doc/Glossary.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
4 changes: 4 additions & 0 deletions doc/overview/First-Time-Build.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
16 changes: 13 additions & 3 deletions doc/scripting/uv.md
Original file line number Diff line number Diff line change
@@ -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.

Expand All @@ -10,7 +11,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

Expand All @@ -30,4 +39,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.
- python wheels need to be available for everything we use - the NDXes do not have compilers ie. Visual Studio installed.

1 change: 1 addition & 0 deletions doc/spelling_wordlist.txt
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,7 @@ url
userdef
usr
utils
uv
uzhex
vala
validator
Expand Down