[INSTRM-2162] Fix false dirty tag after pfsinstall Created: 01/Feb/24  Updated: 03/Feb/24

Status: Open
Project: Instrument control development
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Task Priority: Normal
Reporter: arnaud.lefur Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: EngRun
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Relates
relates to INSTRM-2161 Publicize actor version issues Open

 Description   

Some products when get installed, get wrongly assigned dirty tag.

  • When some binaries get built
  • ics_actorkeys
    If we are to throw warnings, this needs to be fixed first.


 Comments   
Comment by cloomis [ 01/Feb/24 ]

Historically, most MHS products had a setup.py}}file, which is then what {{pfsinstall/eupsinstall used. Some products now have SConstruct files, which eupsinstall will always use in preference to setup.py if it is available. For all those products, installed versions do not have a .git directory, and will never see -dirty. For those, we are fine.

A few products have neither setup.py nor SConstruct file, in which case eupsinstall will cp -r the entire directory in. Those products will always show -dirty, because eupsinstall then updates the .table file with the frozen eups versions. For the products in this group which are simply pure-python we can just add SConstruct/setup.py files. Umm, ics_actorkeys is one example.

The harder products are the ones which do not have setup.py files because they require fancier builds (oh, cython, vendor libraries/binaries, kernel modules) and I was too weak to face the work of packaging them "right". Umm, ics_mcsActor, ics_rtdADIO, ics_xcu_fpga, hxhal are the obvious ones. But those are it, I think.

Comment by cloomis [ 01/Feb/24 ]

And I'll clarify the ticket description a bit....

pfsinstall will only install from a git tag, and except for the optional trailing letter for unchanged revisions on top of updated dependencies, the installed eups version will always be the git tag.

The actors version command tries to generate both git describe and eups list version for each setup product. If the git version is available, that is the one which is preferred (has more information, including -dirty and the number of revisions since the last tag). Otherwise the eups version is used. For PFS that is usually the git version as described above. For LSST it is now some crazy pair of SHAs and the real version is in a less accessible eups tag.

Generated at Sat Feb 10 16:43:37 JST 2024 using Jira 8.3.4#803005-sha1:1f96e09b3c60279a408a2ae47be3c745f571388b.