Argonne National Laboratory

Experimental Physics and
Industrial Control System

2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017 Index 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
<== Date ==> <== Thread ==>

Subject: EPICS Base module split / bundle build (EPICS 7 prep) ready to test
From: Ralph Lange <ralph.lange@gmx.de>
To: EPICS Core Talk <core-talk@aps.anl.gov>
Date: Thu, 3 Aug 2017 15:37:03 +0200
Dear colleagues,

After three iterations, the reorganized EPICS Base sources are in good shape and ready to be tested by a broader audience.
(For motivation and more details of this reorganization, please refer to the minutes of the Core Developers Workshops in March and June.)

Overview:
  • EPICS Base (3.16) has been split into four modules:
    • core - startup, build system and tools, bundle build directory
    • libcom - EPICS utility and OS abstraction layer library
    • ca - Channel Access client library
    • database - EPICS database, records, device support, rsrv server and IOC shell.
  • Only the core module (containing the build system) is special, the others are regular EPICS TOP structures.
  • The four modules can be built separately (dependencies via RELEASE files) or as a bundle (using git submodules).
  • Inside each module, tests have been pulled up into a TOP level test directory, next to src, for a better separation of sources and test code.
  • The four modules are held as different branches of the same git repository; their default branches are <module>/master.
  • That git repository contains the full history, i.e. it is the existing EPICS Base repository.
    (To speed up cloning and save disk space in a bundle setup, you can point the origin of the three submodules to the parent bundle module.)
  • Version numbering of the modules is individual; an EPICS release is a tested bundle of the modules at a specific set of versions.
The test candidate repository is available on my GitHub account.
Cloning and building of the complete bundle:
git clone --recursive https://github.com/ralphlange/epics-base.git -b core/master bundle
cd bundle
make
The resulting installation (in the bundle directory) is mostly equivalent to an existing (pre-split) EPICS Base installation.
To build the core module stand-alone, clone it without cloning the submodules (i.e. without --recursive).

In the next step, the EPICS V4 modules (which are also regular EPICS TOP structures) will be added, as git submodules from another repository.

To-Do-List / Known Issues:
  • The error registration service in libcom needs an API to allow other modules to register their error messages.
  • The environment setting script generated in the database module needs a way for other modules to add their settings.
Please check, test and comment.
After this iteration, I would like to push the result upstream and make these the default branches of EPICS Base development towards EPICS 7.

Cheers,
~Ralph


Replies:
Re: EPICS Base module split / bundle build (EPICS 7 prep) ready to test Johnson, Andrew N.
Re: EPICS Base module split / bundle build (EPICS 7 prep) ready to test Hartman, Steven M.

Navigate by Date:
Prev: RE: areaDetector developers meeting @ ITER Mark Rivers
Next: Re: EPICS Base module split / bundle build (EPICS 7 prep) ready to test Johnson, Andrew N.
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
Navigate by Thread:
Prev: Jenkins build is back to normal : epics-base-3.15-mac-test #141 APS Jenkins
Next: Re: EPICS Base module split / bundle build (EPICS 7 prep) ready to test Johnson, Andrew N.
Index: 2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  <2017
ANJ, 03 Aug 2017 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·