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:
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