Skip to content

Commit 2cbf1c6

Browse files
authored
Merge pull request #124 from ISISComputingGroup/Ticket8788
Minor formatting/clarifications
2 parents a718c08 + 2bda127 commit 2cbf1c6

File tree

2 files changed

+31
-16
lines changed

2 files changed

+31
-16
lines changed

doc/processes/dev_processes/Dependency-Updates.md

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
# Dependency Updates
22

3-
After a release all of the dependencies of the system should be considered for update. This will ensure that we do not get too far out of date and any upgrade will, hopefully, be small and not require much effort. In general we do not want to be on the bleeding edge but at the last stable release (i.e. prefer LTS versions when they are available). The list of dependency will get shipped with the release notes and should be kept up-to-date with any notes. This page documents the process of updating.
3+
After a release, the dependencies of the system should be considered for update. This will ensure that we do not get too far out of date and any upgrade will, hopefully, be small and not require much effort. In general we do not want to be on the bleeding edge but at the last stable release (i.e. prefer LTS versions when they are available). The list of dependencies will be shipped with the release notes and should be kept up-to-date with any notes. This page documents the process of updating.
44

5-
**Any dependencies which should not be updated should be listed with a reason [here](/processes/dev_processes/Unupdated-dependencies)**
5+
:::{note}
6+
Any dependencies which should not be updated should be listed with a reason [here](/processes/dev_processes/Unupdated-dependencies).
67

7-
**When updating dependencies add the new dependencies to the upcoming release notes**
8+
When updating dependencies add the new dependencies to the upcoming release notes.
9+
:::
810

911
## WebDashboard
1012

1113
- [Update `tomcat` on external webserver](https://github.com/isiscomputinggroup/pvws-config?tab=readme-ov-file#updating). This is an external-facing process so **must** be kept up-to-date with latest security bug fixes.
1214
- Update java JDK on external webserver. This is used to run tomcat, which is an external-facing process, so **must** be kept up-to-date with latest security bug fixes.
13-
- Update [javascript dependencies](https://github.com/ISISComputingGroup/WebDashboard/blob/main/package.json)
15+
- Update [javascript dependencies](https://github.com/ISISComputingGroup/WebDashboard/blob/main/package.json). This is done automatically by dependabot, so this step is to ensure that no outstanding dependabot pull requests are unmerged, and to check any dependencies which dependabot is not configured to upgrade.
1416

1517
## GUI
1618

@@ -29,7 +31,9 @@ General update process:
2931
- Some repositories are updated "in-place". Do upgrade these, simply delete and then re-add them to the target platform, when they are re-added they will pick up the latest versions.
3032
- For maven dependencies referenced in target platform, look up latest version on maven central then update the version number in target platform to correspond. If the version numbers are hardcoded in `feature.xml` or `MANIFEST.MF` for individual plugins, update it there too.
3133

32-
**Note: when updating the eclipse framework itself, you will need to download the same eclipse IDE with the same version number or else some jars may not be found. You also need to update `client.tycho.parent` - see below for details. Make sure you update the [gui build wiki page](/client/compiling/Building-the-GUI) to ensure new starters get the correct version.**
34+
:::{note}
35+
When updating the eclipse framework itself, you will need to download the same eclipse IDE with the same version number or else some jars may not be found. You also need to update `client.tycho.parent` - see below for details. Make sure you update the [gui build wiki page](/client/compiling/Building-the-GUI) to ensure new starters get the correct version.
36+
:::
3337

3438
### Parent POM
3539

@@ -41,8 +45,8 @@ The GUI builds copy a JRE from `\\isis\inst$\Kits$\CompGroup\ICP\ibex_client_jdk
4145

4246
### Pydev
4347

44-
- git clone --recurse-submodules the latest version of [our fork](https://github.com/ISISComputingGroup/Pydev) and create a new dependency update branch off of master.
45-
- git clone --recurse-submodules the latest version of [the upstream](https://github.com/fabioz/Pydev) on to a vendor branch and merge this branch into the dependency update branch.
48+
- `git clone --recurse-submodules` the latest version of [our fork](https://github.com/ISISComputingGroup/Pydev) and create a new dependency update branch off of master.
49+
- `git clone --recurse-submodules` the latest version of [the upstream](https://github.com/fabioz/Pydev) on to a vendor branch and merge this branch into the dependency update branch.
4650
- Run `mvn install` in the dependency update branch base directory.
4751
- After a successful build, create a PR to merge the changes into master, and upload the updated repo to `\\shadow.isis.cclrc.ac.uk\ICP_P2W$`, this latest version should be named 'Pydev'.
4852
- Remove and re-add the Pydev target platform dependency in the GUI
@@ -51,7 +55,7 @@ The GUI builds copy a JRE from `\\isis\inst$\Kits$\CompGroup\ICP\ibex_client_jdk
5155

5256
### Uktena python distribution
5357

54-
- Check on Python.org for newer versions of python itself
58+
- Check on https://python.org for newer versions of python itself
5559
- If a newer version is available, download the "windows installer".
5660
- Select custom install, install python to a location of your choice (not `c:\instrument\apps\python3`).
5761
- During the python installation process, **ensure that you tick the box asking whether you want to install TCL/TK support** in optional features. This is needed for independent matplotlib plots in standalone genie_python windows.
@@ -65,13 +69,20 @@ We depend on a variety of python packages that we publish ourselves, either via
6569

6670
These may need to be updated to allow new python versions. For packages published on PyPI, a new pypi release will need to be made.
6771

72+
These packages are _libraries_, so they can support multiple python versions. Many of these packages aim to run CI on
73+
3 recent python releases, following recommendations from [SPEC 0](https://scientific-python.org/specs/spec-0000/). Therefore,
74+
the dependency update is to ensure that these libraries work on the new python version we are targeting, and to drop support
75+
for python releases more than 3 years old.
76+
6877
These packages include:
69-
- `genie`
70-
- `ibex_bluesky_core`
71-
- `lewis`
72-
- `pcaspy`
73-
- `CaChannel`
74-
- `epicscorelibs_pcas`
78+
- [`genie`](https://github.com/isiscomputinggroup/genie)
79+
- [`ibex_bluesky_core`](https://github.com/isiscomputinggroup/ibex_bluesky_core)
80+
- [`lewis`](https://github.com/isiscomputinggroup/lewis)
81+
- [`pcaspy`](https://github.com/isiscomputinggroup/pcaspy)
82+
- [`CaChannel`](https://github.com/isiscomputinggroup/cachannel)
83+
- [`epicscorelibs_pcas`](https://github.com/isiscomputinggroup/epicscorelibs_pcas)
84+
- [`epicscorelibs`](https://github.com/isiscomputinggroup/epicscorelibs)
85+
- This is currently built manually, generating explicit wheels uploaded to [github releases](https://github.com/ISISComputingGroup/epicscorelibs/releases).
7586

7687
{#dep_update_venvs}
7788
#### Virtual environments for our packages
@@ -85,6 +96,8 @@ The new mechanism uses `uv pip compile pyproject.toml -o requirements-frozen.txt
8596

8697
It also uses a `.python-version` file to say which version of python should be used at runtime, which `uv` respects.
8798

99+
Also search for `UV_PYTHON` environment variables and update those packages to use a recent python version.
100+
88101
### External packages
89102

90103
Check on PyPi for any package updates, then edit `requirements.txt` to install new versions where needed. Note that since we decided [all python projects should use virtual environments](/system_components/python/Python-dependencies) there will be a `pyproject.toml` or legacy `requirements.txt` file for all Python projects using the new import mechanism, ensure these are also updated.
@@ -177,7 +190,7 @@ Our CS-Studio GUI dependencies are located on a share on shadow, a read only ver
177190

178191
CS-Studio requires a version of jdk11 to build that it gets from `C:\Program Files\AdoptOpenJDK` or `C:\Program Files\Eclipse Adoptium`.
179192
- Install the latest jdk11, and ensure `isis_css_top\build.bat` points at the correct jdk location.
180-
- You will need JavaFX binaries. These can be patched onto the AdoptOpenJDK/Eclipse Temurin installation. Download the Windows SDK from \\isis\inst$\Kits$\CompGroup\ICP\Java_utils\openjfx-19_windows-x64_bin-sdk\javafx-sdk-19 (originally from [gluon](https://gluonhq.com/products/javafx/)) and copy the bin, lib, and legal directories over the corresponding directories in the jdk. Note that the JavaFX version does not necessarily need to match your java installation, as long as the versions are compatible. For example we can use JavaFX 19 on a Java 11 installation. Please check that the license is still appropriate before you install.
193+
- You will need JavaFX binaries. These can be patched onto the AdoptOpenJDK/Eclipse Temurin installation. Download the Windows SDK from `\\isis\inst$\Kits$\CompGroup\ICP\Java_utils\openjfx-19_windows-x64_bin-sdk\javafx-sdk-19` (originally from [gluon](https://gluonhq.com/products/javafx/)) and copy the `bin`, `lib`, and `legal` directories over the corresponding directories in the JDK. The JavaFX version does not necessarily need to match your java installation, as long as the versions are compatible. For example, we can use JavaFX 19 on a Java 11 installation. Please check that the license is still appropriate before you install.
181194

182195
To update the CS-Studio components that the GUI uses:
183196
- `git clone --recursive https://github.com/ISISComputingGroup/isis_css_top.git`
@@ -187,7 +200,7 @@ To update the CS-Studio components that the GUI uses:
187200
- Updated the gui target platform to point at the new folder, i.e. `http://shadow.nd.rl.ac.uk/ICP_P2/css_gui_dependencies_<year_month_day>/p2repo/`
188201
- Reload the target platform and rebuild the gui.
189202
- Test that your changes work correctly!
190-
- if you cannot write to the `ICP_P2W$` share on shadow, your fed id account will need adding to the `icp` local group on shadow itself. This just requires somebody to run the `vigr` command on shadow and then possibly `service smb restart` too
203+
- If you cannot write to the `ICP_P2W$` share on shadow, your fed id account will need adding to the `icp` local group on shadow itself. This just requires somebody to run the `vigr` command on shadow and then possibly `service smb restart` too
191204

192205
### Archive engines / alarm servers
193206

doc/spelling_wordlist.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -193,6 +193,7 @@ deadbands
193193
deadman
194194
deenergise
195195
dehex
196+
dependabot
196197
deprioritise
197198
dereferenced
198199
deserialise
@@ -889,6 +890,7 @@ uncomment
889890
uncommented
890891
underivable
891892
unintuitive
893+
unmerged
892894
uno
893895
unpadded
894896
unpark

0 commit comments

Comments
 (0)