Skip to content

Commit c6a9169

Browse files
committed
Merge remote-tracking branch 'origin/master' into jenkins
2 parents fd04d3c + 33a568a commit c6a9169

File tree

115 files changed

+749
-1579
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+749
-1579
lines changed

doc/Glossary.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ The journal parser is a program that runs as part of the end run processes. It l
177177

178178
## [LabVIEW](/system_components/LabVIEW)
179179

180-
**Laboratory Virtual Instrument Engineering Workbench**. A graphical programming language in which the device drivers for [SECI](#seci) are written.
180+
**Laboratory Virtual Instrument Engineering Workbench**. A graphical programming language in which the device drivers for [SECI](#seci) were written. A small number of drivers still use LabVIEW, despite SECI having been retired.
181181

182182
## [LeWIS](https://github.com/DMSC-Instrument-Data/lewis)
183183

@@ -189,7 +189,7 @@ A named abstraction for a variable setting, e.g. the macro is PORT, referenced a
189189

190190
## Mini-Inst
191191

192-
A term used to describe an instrument which uses components from both the [SECI](#seci) and [IBEX](#ibex) control systems. For example, an [IOC](#ioc) wrapped with a [VI](#vi) on a [SECI](#seci) instrument (using [CALab](#calab)).
192+
A term used to describe an instrument which runs a minimal set of IBEX services, as opposed to a full IBEX installation.
193193

194194
## [Momentum Slits](specific_iocs/motor_extensions/jaws/Barndoors-and-Momentum-Slits-on-MUON-Front-End)
195195

@@ -265,6 +265,10 @@ A graphical representation of an ISIS beamline, showing permanent components as
265265

266266
## User Values
267267

268+
## uv
269+
270+
See {ref}`uv`
271+
268272
## Vagrant
269273

270274
A tool for building and managing [virtual machine](#virtual-machine) environments. See [homepage](https://www.vagrantup.com) for more information.

doc/Overview.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ overview/Links-and-Resources
3434
## Documentation & Processes
3535

3636
- [How to edit this documentation](Editing-the-Wiki)
37-
- [How to demonstrate IBEX](processes/meetings_with_scientists/Demo-notes): Some notes on what to show someone when demonstrating IBEX for the first time
3837
- [Notes from Retrospectives](processes/Retrospective-Notes): Notes from Sprint Retrospective meetings are recorded here.
3938
- [Decision Log](processes/Decision-Log): A place to write down decisions made.
4039
- [Documentation](processes/dev_processes/Project-Documentation): Documentation of the project and processes _(including why we have 3 wikis)_

doc/Providing-Support.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,14 +132,14 @@ There are a number of tips for [trouble shooting](#all_troubleshooting_links) al
132132
1. I can't use this button to get to more details/why doesn't this bit of the OPI work
133133
- Check they are in manager mode
134134
1. I need to add this device to my system
135-
- Check {external+ibex_user_manual:doc}`the user manual <index>` for IBEX, for SECI, if you don't know already ask someone else
135+
- Check {external+ibex_user_manual:doc}`the user manual <index>`
136136
1. My motor won't move
137137
- Are both limits made?
138138
- Yes: Something has happened in the physical realm, refer it to EUSG via the MCR
139139
- No: Go to next consideration
140140
- Is any of the other information updating for that motor controller?
141141
- Yes: Go to next consideration
142-
- No: Under IBEX go to the engineering device screen, under SECI open the advanced motor functions and go to the console tab, do not send any characters but send a command, if the response is anything but `:` then the Galil is in a fault mode of some kind which will involve restarts etc.
142+
- No: Under IBEX go to the engineering device screen, do not send any characters but send a command, if the response is anything but `:` then the Galil is in a fault mode of some kind which will involve restarts etc.
143143
* If the Galil is unresponsive refer it to EUSG via the MCR
144144
- Looking at the specific motor:
145145
- Are you trying to move in the same direction as an active limit switch?

doc/Systems.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,13 @@
77
88
systems/*
99
```
10+
11+
## Looking up Dell service-tag numbers
12+
13+
You can check specifications of Dell machines by getting their service tag, using the following command in `powershell`:
14+
15+
```powershell
16+
get-ciminstance win32_bios | select SerialNumber
17+
```
18+
19+
This will return a short string which can be looked up on the [Dell support site](https://www.dell.com/support/home/en-uk).

doc/Tools.md

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,17 @@ The IOCs available can be listed using
3333
console -M localhost -x
3434
```
3535

36-
To look at an IOC remotely
36+
To look at an IOC remotely, use SSH:
3737

3838
```
39-
console -M [MACHINE_NAME] -l [USERNAME] [IOCNAME]
39+
ssh [USERNAME]@[MACHINE] "c:\instrument\apps\epics\config_env.bat && console -M localhost [IOCNAME]"
4040
```
41-
42-
where username is the local user on the instrument PC (e.g. `spudulike`).
41+
or
42+
```
43+
ssh [USERNAME]@[MACHINE] "c:\instrument\apps\epics\scripts\console -M localhost [IOCNAME]"
44+
```
45+
where `USERNAME` is the local user on the instrument PC (e.g. `spudulike`). As the second version does
46+
not run `config_env` it starts quicker but does not return to an epics term when you exit console
4347

4448
Key combos in the console:
4549

doc/client/testing/System-Testing-with-Squish.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,8 @@ you run a test).
5555

5656
## RDP to Server
5757

58-
It is possible to remote desktop to the squish server but when you disconnect you must use the "Disconnect from RDP"
59-
shortcut on the desktop. To do this you must be an Admin on the desktop.
58+
It is possible to remote desktop to the squish servers but when you disconnect you must use the "Disconnect from RDP"
59+
shortcut on the desktop. This will prompt for escalated privileges - enter your federal ID and password on the CLRC domain.
6060

6161
## Setup For Build Server
6262

@@ -184,12 +184,11 @@ the screenshots from the most recent build will be available.
184184
## License server
185185

186186
This was set up as per https://doc.qt.io/squish/setting-up-the-squish-floating-license-server.html on
187-
`control-svcs.isis.cclrc.ac.uk` in the directory `/usr/local/squish-licenceserver`. The service is automatically started
188-
at boot time via systemd, the file `squish-licenseserver.service` has the service details and is symbolically linked
189-
from the systemd `/etc/systemd/system` area. The log file is `/var/log/squish-licenseserver.log` and the service is
190-
running on the default port of 49345.
187+
`control-svcs.isis.cclrc.ac.uk` The executable runs from `/opt/squish-license-server/bin/licenseserver` and licence is stored in `/etc/squish-license-server/licenses` The service is automatically started
188+
at boot time via systemd. Data is logged to syslog and the service is
189+
running on the default port of 49345. To see the log you can use e.g. `journalctl -u squish-license-server.service --since today`
191190

192-
To restart the licence server process, use `sudo systemctl restart squish-licenseserver.service` on the licence server
191+
To restart the licence server process, use `sudo systemctl restart squish-license-server.service` on the licence server
193192
machine.
194193

195194
## Troubleshooting

doc/conf.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@
104104

105105
intersphinx_mapping = {
106106
"ibex_user_manual": ("https://isiscomputinggroup.github.io/ibex_user_manual/", None),
107-
"EPICS": ("https://docs.epics-controls.org/en/latest/", None),
107+
# docs.epics-controls.org sometimes gives us a 429 "too many requests" from GHA.
108+
# If it does, then fall back to local inventory. This local inventory should be
109+
# updated periodically.
110+
"EPICS": ("https://docs.epics-controls.org/en/latest/", (None, "epics-controls.inv")),
108111
}
109-

doc/deployment/Creating-a-release.md

Lines changed: 15 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -9,72 +9,47 @@
99
release/*
1010
```
1111

12-
## Understanding Java Licensing
13-
Make sure you [understand how Java is licensed](/processes/dev_processes/Understanding-Java-Licensing), so that we do not inadvertently make ISIS liable for licensing fees.
14-
15-
## Release tickets
16-
17-
Text for release ticket:
18-
19-
> As a developer I want an IBEX release so I can install it on the instrument machines for the start of machine physics on 26th.
20-
>
21-
> Acceptance Criteria:
22-
>
23-
> - [ ] [Pre Testing Steps](#creating_release_pre_testing_steps)
24-
> - [ ] [Testing steps](#creating_release_testing_steps)
25-
> - [ ] [Post Testing](#creating_release_post_testing_steps)
26-
> - [ ] [Create a ticket to update dependencies to latest versions and test](/processes/dev_processes/Dependency-Updates)
27-
> - [ ] [Create a ticket to give instrument demos](https://github.com/ISISComputingGroup/IBEX/wiki/Timetable-for-Instrument-Demos)
28-
> - [ ] Distribute release notes via email [Instrument scientist release email](#updating_instrument_new_release_email_template)
29-
3012
## Standard Release
3113

3214
Project is ready to be released not for a specific event, e.g. at the end of a sprint. Script Generator version number always differs to the client's.
3315

3416
{#creating_release_pre_testing_steps}
3517
### Pre Testing
3618

37-
1. Contact computing group to let us know of the upgrade. Find out anything that needs to be in the release that isn't and mark with `for release` label. (This does not prevent a release)
38-
1. Look at the released features in this branch [Upcoming Changes](https://github.com/ISISComputingGroup/IBEX/blob/master/release_notes/ReleaseNotes_Upcoming.md) and find the most significant level of change (i.e. is this cumulatively a major change, a minor change, or a patch?).
19+
1. Find out anything that needs to be in the release that isn't and mark with `for release` label. (This does not prevent a release)
20+
1. Ensure the version of `cs-studio` [referenced in the GUI's target platform](https://github.com/ISISComputingGroup/ibex_gui/blob/master/base/uk.ac.stfc.isis.ibex.targetplatform/targetplatform.target)
21+
is recent enough to include the most recent changes in the
22+
[`isis_css_top` repository](https://github.com/ISISComputingGroup/isis_css_top).
3923
1. Update the [upgrade script](https://github.com/ISISComputingGroup/EPICS-upgrade/blob/master/upgrade.py) to include the latest version (this is done on master). Steps to do this are in [Config Upgrader in section *creating a production upgrade script*](/tools/Config-Upgrader)
4024
1. After committing these changes to `master` on the `EPICS-upgrade` submodule, don't forget to push the new submodule version to `master` on the top `EPICS` branch. This is needed to make sure you changes appear on the release branch created in the next step.
4125
1. For packages which are published on `PyPI`, in particular `genie_python` and `ibex_bluesky_core`, create PyPI releases if needed.
4226
1. These packages are released by performing a `git tag x.y.z` on a checkout of `main`, where `x.y.z` is the new version you want to release. Push the tag using `git push origin tag x.y.z`. They will then build in github actions, and prompt to "approve" the release pipeline to PyPI.
4327
1. `genie` should be released with a version number matching the main IBEX version number. The release takes around 15 minutes in GHA.
4428
1. `ibex_bluesky_core` should generally have a minor/patch version incremented for now until we reach v1. The release takes a couple of minutes in GHA.
4529
1. **Ensure these releases were successful** by checking on [pypi](https://pypi.org/) for the new release number before proceeding.
46-
1. Start the Jenkins pipeline [Release Branches](https://epics-jenkins.isis.rl.ac.uk/job/Release_branches/).
47-
- Click on 'Build with Parameters'.
30+
1. Start the Github Actions pipeline [`create-release-branches`](https://github.com/ISISComputingGroup/ibex_utils/actions/workflows/create-release-branches.yml).
31+
- Click on 'Run workflow'
4832
- Set `VERSION` to the new release version (e.g. `X.x.m`).
49-
- Set `TAG` if you wish to branch off a commit other than the latest top level `HEAD`. If you do branch off an earlier commit, also set `REMOTE` to `false` as it now does not make sense to verify if you are on the latest submodule versions.
50-
- Check `REMOTE` if the `EPICS` submodules should be checked for later versions on their remote - the script will fail if there are submodule commits unpushed to top level. For a normal release you will be expecting all submodules to be on the latest version. If you want the currently pinned (not necessarily latest) versions, do not check REMOTE. If you should/expect to be using the latest versions of all dependent submodules, check REMOTE box to verify this. If there are unpushed submodules the `EPICS repo checks` Jenkins build will likely be in error already.
33+
- Set `TAG` if you wish to branch off a commit other than the latest top level `HEAD`. If you do branch off an earlier commit, also set `REMOTE` to `false` as it now does not make sense to verify if you are on the latest submodule versions.
5134
- The script will then (as selected):
5235
- Create the release branches (named `Release_X.x.m` except `Release_Script_Gen_X.x.m` for script generator) for:
5336
- `EPICS` and submodules.
5437
- `IBEX GUI`.
5538
- `Script Generator`.
5639
- `Uktena`.
57-
- `JSON_bourne`. (not none by default as it does not often change and is also not directly deployed to instruments)
5840
- Update or add version numbers:
5941
- In `ioc/master/INSTETC/INSTETC-IOC-01App/Db/svn-revision.db.tmpl` for `EPICS`.
6042
- In `/uk.ac.stfc.isis.ibex.e4.client/pom.xml` and `/uk.ac.stfc.isis.ibex.e4.client/META-INF/MANIFEST.mf` for `IBEX GUI`.
6143
- In `/uk.ac.stfc.isis.scriptgenerator.client/pom.xml` and `/uk.ac.stfc.isis.scriptgenerator.client/META-INF/MANIFEST.mf` for `Script Generator`.
6244
- Note: `genie_python` library version numbers are set automatically from the git tag, and no longer need manually updating.
6345
- Push these changes to remote release branch.
64-
- Start the Jenkins builds (click `Scan Repository` on the ones that are multibranch pipelines):
65-
- `EPICS_release`. (Build will be in `Kits$\CompGroup\ICP\Releases\X.x.m\EPICS`)
66-
- `EPICS_release32`. (Build will be in `Kits$\CompGroup\ICP\Releases\X.x.m\EPICS32`)
67-
- `uktena_release_pipeline`. (Build will be in `Kits$\CompGroup\ICP\Releases\X.x.m\genie_python_3`)
68-
- `ibex_gui_releases_pipeline`. (Build will be in `Kits$\CompGroup\ICP\Releases\X.x.m\Client`)
69-
- `scriptgenerator_release`. (Build will be in `Kits$\CompGroup\ICP\Releases\script_generator_release\X.x.m`)
70-
1. Move the `Upcoming Release Notes` page (copy & paste) into a new blank `Release Notes "X.x.m"` file: Check that all of the merged tickets have also had their [release notes merged](https://github.com/ISISComputingGroup/IBEX/pulls) then move the changes which have been merged into the new release from the [upcoming page](https://github.com/ISISComputingGroup/IBEX/blob/master/release_notes/ReleaseNotes_Upcoming.md) to a new release notes page for the version, and commit this change to the master branch. Check that the release notes are as understandable as possible.
46+
1. Start all of [these builds](https://epics-jenkins.isis.rl.ac.uk/view/Release/) in Jenkins.
47+
1. Copy the new version's release notes (copy & paste) into a new blank `Release Notes "X.x.m"` (where `X.x.m` is the upcoming version) file and clear the contents: Check that all of the merged tickets have also had their [release notes merged](https://github.com/ISISComputingGroup/IBEX/pulls). Check that the release notes are as understandable as possible.
7148
1. Create a released version entry in the [releases table](https://github.com/ISISComputingGroup/IBEX/blob/master/docs/all-releases.md) (including link to release notes) and commit to master.
72-
1. Update the "Latest Stable Release" link on the [IBEX wiki homepage](https://github.com/ISISComputingGroup/IBEX) to be the new `"Release X.x.m"` and commit to master.
73-
1. Remove all entries from `Upcoming Release Notes`, leaving a blank file with only the headers, e.g. "Instrument Specific Changes", etc. and commit to master.
49+
1. Update the "Latest Stable Release" and "Upcoming release" links on the [IBEX wiki homepage](https://github.com/ISISComputingGroup/IBEX) to be the new release and commit to master.
7450
1. If applicable, update the dependencies since the last release and add them to the bottom of the release notes. To find the python dependencies list, run a `pip freeze` on a cleanly released `uktena`. Note that you will need to specify the scripts directory to run pip commands. i.e. `C:\Instrument\Apps\Python3\Scripts\Pip.exe freeze`
75-
1. Update the {external+ibex_user_manual:doc}`user manual <index>` with any relevant changes
76-
1. copy the release to `control-svcs`, this is so we can set git remotes for hotfixes etc. as part of the deploy. So if release is number 1.2.3
77-
- `robocopy "Kits$\CompGroup\ICP\Releases\1.2.3\EPICS\.git" "\\control-svcs.nd.rl.ac.uk\git$\releases\1.2.3\EPICS.git" /mir /nfl /ndl`
51+
1. copy the release to the `git$` share on `control-svcs` (see Keeper for the username and password for this), this is so we can set git remotes for hotfixes etc. as part of the deploy. So if release is number 1.2.3
52+
- `robocopy "\\isis\inst$\Kits$\CompGroup\ICP\Releases\1.2.3\EPICS\.git" "\\control-svcs.nd.rl.ac.uk\git$\releases\1.2.3\EPICS.git" /mir /nfl /ndl`
7853
- edit `EPICS.git\config` on the control-svcs version (you can browse straight to the `\\control-svcs` share above)
7954
- change `bare = false` to `bare = true`
8055
- Add an extra section at end of file
@@ -89,7 +64,7 @@ Project is ready to be released not for a specific event, e.g. at the end of a s
8964
{#creating_release_testing_steps}
9065
### Testing
9166

92-
Using GitBash, update the `experiment controls public share` has the most recent version of `ibex_utils` from Git (i.e. do git pull) - this is so the most recent install script will be used for testing and install. In git bash you can do a `cd` with the windows path but just change `\` to `/` e.g. `cd //isis/somewhere`. When you do a git operation it may warn about directory ownership, just follow the command it suggests to add an exception and then git try again. You should:
67+
Update `\\isis\shares\ISIS_Experiment_Controls_Public\ibex_utils` - this is so the most recent install script will be used for testing and install. You should:
9368
* do a `git branch` and check it is on `master` and not e.g. a test or ticket branch
9469
* do a `git status` and check for any changes, if there are post on Teams
9570
* do a `git pull` so you are on the latest `master` branch with no local changes
@@ -103,7 +78,7 @@ These steps should only be done once all changes to a release have been made and
10378
which will become inconsistent if further changes are made to the release branch. Hence it is important to delete
10479
the relevant release branch after it has been tagged.
10580

106-
1. Create a release tag in the EPICS, ibex_gui, uktena and JSON_bourne repositories. For each repo
81+
1. Create a release tag in the EPICS, ibex_gui and uktena repositories. For each repo
10782
1. Go to `[REPO_URL]/releases`, e.g. `https://github.com/ISISComputingGroup/ibex_gui/releases`
10883
1. Click `Draft a new release`
10984
1. Enter the tag version in the format `vX.x.p` and target the release branch
@@ -115,12 +90,11 @@ the relevant release branch after it has been tagged.
11590
1. `git submodule foreach --recursive "git push origin tag Release_ibex_X.x.x && git push --delete origin Release_X.x.x || exit 0"` // Push tags and delete release branch
11691

11792
_Note: you may need to run `git config fsck.badEmail ignore` for the above step_
118-
1. Make sure any changes on the release branch are merged back onto master for EPICS, ibex_gui, genie_python, and JSON_bourne (except version numbering)
93+
1. Make sure any changes on the release branch are merged back onto master for EPICS, ibex_gui, and uktena (except version numbering)
11994
1. Consider which instruments need this release:
12095
* Breaking release: upgrade everyone
12196
* Big improvement: upgrade everyone if there is a big improvement that everyone will benefit from
12297
* Standard release: upgrade instruments that need updates, i.e. they need a newly released feature, and all those that are in the current release group, see [column in instruments table](https://github.com/ISISComputingGroup/IBEX/wiki#instrument-information). Note on the release ticket which instruments need to be released to using checkboxes (one for start and one for finish).
123-
1. Deploy a new JSON_bourne if required see [here](/webdashboard/Web-Dashboard)
12498
1. [Create repository for recording instrument changes post release](release/Release-based-repository) the deploy script automatically puts the instrument onto a branch of this repository
12599
## Partial Release
126100
For any release in which GUI version increments but server version does not, ensure the previous server version is added to the release folder via symbolic links or junctions, [see this ticket](https://github.com/ISISComputingGroup/IBEX/issues/7250).

0 commit comments

Comments
 (0)