EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: AreaDetector repository inconsistent
From: Benjamin Franksen <[email protected]>
To: "J. Lewis Muir" <[email protected]>, EPICS Techtalk <[email protected]>
Date: Wed, 7 Feb 2018 17:46:27 +0100
On 02/06/2018 03:28 AM, J. Lewis Muir wrote:
> On 02/05, Mark Rivers wrote:
>> Hi Lewis,
>>
>>> Right, and with the way the synApps modules are currently developed,
>>> I agree with you.  However, I would bet that the reason synApps does
>>> not get updated regularly is that it's a lot of work to do it.  Part
>>> of the reason it's a lot of work is all the breaking change.  If
>>> all the modules in synApps adhered to semantic versioning and did
>>> not introduce breaking changes left and right, making a new synApps
>>> release would be significantly easier.
>>
>> I really disagree the synApps has lots of breaking changes.  I will
>> make the following assertion:
>>
>> If you use the latest tagged version of every synApps module
>> (including asyn, seq, ipac, areaDetector) it virtually always works.
>> That is essentially how I have been running our beamlines for a
>> decade.
>>
>> In my opinion a new version of synApps should simply be a script:  It
>> does a git clone and git checkout of the last tagged version of every
>> module as of that date. If that's what it did it could be updated
>> frequently.  And users would have a git repository that they could
>> trivially update by going into calc, for example, and grab the latest
>> bug fix by checking out master, or a specific release by checking out
>> R3-7.  It does not make sense to me to be using tar files.
>>
>> Can you give me an example where using the latest tagged release of
>> each synApps module would have led to problems?
> 
> Hi, Mark.
> 
> No, unfortunately I can't...at least not without spending a fair amount
> of time upgrading everything and trying things out right now.  My
> experience has been that there are usually problems such as compile
> failures, module DB files renamed, substitution macro names changed
> or the values they expect changed, ADL files renamed, IOC function
> signatures changed, etc.  I may not have encountered all of those at
> once, but I think I usually ran into things like that whenever I would
> do an upgrade en masse.  This is up to a few years ago, anyway.  But
> since it's been a while since I last did an upgrade, and since your
> experience has been so different from mine, I feel less confident about
> my experience and about the state of things now; I'm inclined to not
> continue trying to make my case.  I defer to your experience on this.

For us, thanks to sumo [1], rebuilding EPICS modules together with all
dependencies (those that are in use in your application) is mostly
automatic, greatly relieving the pain of upgrading single modules even
if they are deep down in the dependency tree (like e.g. asyn or even
EPICS base itself).

The tool is certainly not perfect but it works pretty well in practice.
The idea is to maintain a database (implemented as a single json file,
under version control) of modules and their versions and dependencies
and information about how to get the sources. In the application you
maintain a file named (by convention) configure/MODULES (also in json
syntax) that specifies module names and versions. Sumo (re-)creates your
configure/RELEASE by searching for a consistent set of builds that
satisfies your spec or, if such a set is not found, let's you create new
builds as necessary. Each module gets built in a separate new directory,
even if the module's version is the same; the only exception is if the
module version *and* the version of all its dependencies are identical,
in which case an existing build is shared. Thuis new builds never
invalidate any existing builds of any other module or application.

When I upgrade a module I merely need to make a new entry in the
database, edit the corresponding line in the configure/MODULES of my
application, and use the command line tool to automatically create new
builds (if neccessary) and the corresponding new configure/RELEASE.

[1] http://epics-sumo.sourceforge.net/

Cheers
Ben
-- 
"Make it so they have to reboot after every typo." ― Scott Adams

Attachment: signature.asc
Description: OpenPGP digital signature


Replies:
Re: AreaDetector repository inconsistent J. Lewis Muir
References:
AreaDetector repository inconsistent Jörn Dreyer
Re: AreaDetector repository inconsistent Ralph Lange
Re: AreaDetector repository inconsistent Jörn Dreyer
Re: AreaDetector repository inconsistent J. Lewis Muir
RE: AreaDetector repository inconsistent Mark Rivers
Re: AreaDetector repository inconsistent J. Lewis Muir
RE: AreaDetector repository inconsistent Mark Rivers
Re: AreaDetector repository inconsistent J. Lewis Muir
RE: AreaDetector repository inconsistent Mark Rivers
Re: AreaDetector repository inconsistent J. Lewis Muir

Navigate by Date:
Prev: Re: procServ under systemd service Michael Davidsaver
Next: Re: AreaDetector repository inconsistent Mooney, Tim M.
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: AreaDetector repository inconsistent J. Lewis Muir
Next: Re: AreaDetector repository inconsistent J. Lewis Muir
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 08 Feb 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·