Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove use of MASTER_RELEASE #8565

Open
47 tasks
FreddieAkeroyd opened this issue Nov 2, 2024 · 0 comments
Open
47 tasks

Remove use of MASTER_RELEASE #8565

FreddieAkeroyd opened this issue Nov 2, 2024 · 0 comments
Labels

Comments

@FreddieAkeroyd
Copy link
Member

FreddieAkeroyd commented Nov 2, 2024

MASTER_RELEASE lists all out epics modules and is a single file that can be used in any IOC. While it was convenient way to build an IOC in the past, using it has a few downsides and it is better to be explicit about which modules you really use:

  • slower builds: the build system does a cross-check during build for consistent versions. For example our IOC may include the calc module in its RELEASE file and also include asyn, which too includes calc in its RELEASE. These must point to the same calc version. If you use MASTER_RELEASE then then there is a lot of cross checking to do of modules that you don't actually use
  • potential ioc startup failures: every bin directory for the modules listed in MASTER_RELEASE gets added to the PATH environment of the IOC, depending on how long the local path on a computer is you may exceed the PATH length and get an ioc start failure. I saw this recently when i made procserv start on demand in ioc startup: make individual iocs bats more flexible and start procServ on demand from procServControl #8558 - as i was spawning procServ from an IOC, the initial PATH was a little longer and the startup then failed with a corrupted PATH. I have mostly worked around this by excluding some of the initial environment.

We should aim to patch the most used IOCs first. If we miss one and it causes an issue, we can manually remove unused items from dllPath.bat on the instrument to fix, hence we should concentrate first on iocs below used on many instruments.

acceptance criteria

notes

MASTER_RELEASE is only now used in ioc/master and running git grep MASTER_RELEASE there shows iocs remaining

  • AG3631A
  • AG53220A
  • CONTROLSVCS
  • CRYVALVE
  • CYBAMAN
  • DELFTARDUSTEP
  • DELFTBPMAG
  • DELFTDCMAG
  • DELFTSHEAR
  • ECLAB
  • EGXCOLIM
  • FERMCHOP
  • FINS
  • FZJDDFCH
  • HAMEG8123
  • HIFIMAG
  • HLG
  • HVCAEN
  • IEG
  • INHIBITR
  • INSTRON
  • JULABO
  • KEPCO
  • KHLY2400
  • LINKAM95
  • LKSH218
  • LKSH336
  • LKSH460
  • MK2CHOPR
  • MK3CHOPR
  • MUONTPAR
  • NANODAC
  • NEOCERA
  • PDR2000
  • SAMPOS
  • SCHNDR
  • SCIMAG3D
  • SDTEST
  • SKFCHOPPER
  • SKFMB350
  • SPINFLIPPER306015
  • SPRLG
  • TDK_LAMBDA_GENESYS
  • TEST
  • TPG26x
  • TPG36x
  • TTIEX355P
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Backlog
Development

No branches or pull requests

1 participant