Skip to content

Commit 85c9a9c

Browse files
committed
Minor formatting/clarifications
1 parent a9ad610 commit 85c9a9c

File tree

1 file changed

+27
-16
lines changed

1 file changed

+27
-16
lines changed

doc/processes/dev_processes/Dependency-Updates.md

Lines changed: 27 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
@@ -177,7 +188,7 @@ Our CS-Studio GUI dependencies are located on a share on shadow, a read only ver
177188

178189
CS-Studio requires a version of jdk11 to build that it gets from `C:\Program Files\AdoptOpenJDK` or `C:\Program Files\Eclipse Adoptium`.
179190
- 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.
191+
- 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.
181192

182193
To update the CS-Studio components that the GUI uses:
183194
- `git clone --recursive https://github.com/ISISComputingGroup/isis_css_top.git`
@@ -187,7 +198,7 @@ To update the CS-Studio components that the GUI uses:
187198
- 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/`
188199
- Reload the target platform and rebuild the gui.
189200
- 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
201+
- 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
191202

192203
### Archive engines / alarm servers
193204

0 commit comments

Comments
 (0)