You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: doc/processes/dev_processes/Dependency-Updates.md
+27-16Lines changed: 27 additions & 16 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,18 @@
1
1
# Dependency Updates
2
2
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.
4
4
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).
6
7
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
+
:::
8
10
9
11
## WebDashboard
10
12
11
13
-[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.
12
14
- 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.
- 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.
14
16
15
17
## GUI
16
18
@@ -29,7 +31,9 @@ General update process:
29
31
- 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.
30
32
- 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.
31
33
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
+
:::
33
37
34
38
### Parent POM
35
39
@@ -41,8 +45,8 @@ The GUI builds copy a JRE from `\\isis\inst$\Kits$\CompGroup\ICP\ibex_client_jdk
41
45
42
46
### Pydev
43
47
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.
46
50
- Run `mvn install` in the dependency update branch base directory.
47
51
- 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'.
48
52
- 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
51
55
52
56
### Uktena python distribution
53
57
54
-
- Check on Python.org for newer versions of python itself
58
+
- Check on https://python.org for newer versions of python itself
55
59
- If a newer version is available, download the "windows installer".
56
60
- Select custom install, install python to a location of your choice (not `c:\instrument\apps\python3`).
57
61
- 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
65
69
66
70
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.
67
71
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
- This is currently built manually, generating explicit wheels uploaded to [github releases](https://github.com/ISISComputingGroup/epicscorelibs/releases).
75
86
76
87
{#dep_update_venvs}
77
88
#### 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
177
188
178
189
CS-Studio requires a version of jdk11 to build that it gets from `C:\Program Files\AdoptOpenJDK` or `C:\Program Files\Eclipse Adoptium`.
179
190
- 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.
181
192
182
193
To update the CS-Studio components that the GUI uses:
@@ -187,7 +198,7 @@ To update the CS-Studio components that the GUI uses:
187
198
- 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/`
188
199
- Reload the target platform and rebuild the gui.
189
200
- 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
0 commit comments