EPICS Core Developer Workshop

Earlier                                                                                Later

Dates

March 14-16, 2017

Location

Argonne Building 435, Room C010

Attendees

Draft Agenda

Times below are in US Central Daylight-savings Time-zone (CDT:-0500).

Tuesday March 14

09:00        Andrew Johnson        Convene, welcome, network configuration etc.

09:30                Weekly video conference (Google Hangout) with full group

10:30        Break

11:00        AJ + RL        Status of Base-3.14 and Base-3.15 branches

11:30        MD + AJ        Status of Base-3.16 branches; Base-3.16.1 release

12:30        Lunch (Building 213 Cafeteria or 401 Grill)

13:30                Git conversion planning; future use of Launchpad vs. Github

15:00        Break

15:30        Heinz Junkes        Port of Base to RTEMS 4.12

17:00        Close

Wednesday March 15

09:00        AJ + BD        Requirements for EPICS 7

09:40                Source code repository restructuring

10:30        Break

11:00                Build system changes

12:30        Lunch (Building 213 Cafeteria or 401 Grill)

13:30                Sub-module ownership responsibilities

14:00                Future of EPICS V4 Java modules

15:00        Break

15:30        MD        Status of PVAccess Gateway & Access Security

17:00        Close

Thursday March 16

09:00        Bob Dalesio        New EPICS website

10:00                Base-3.16.1 and EPICS 7 release timetables

10:30        Break

11:00                Training courses

12:30        Lunch (Building 213 Cafeteria or 401 Grill)

13:30                Additional discussions

        Close

Minutes

Tuesday March 14

Merging Procedure for EPICS 7

Prerequisites for Merging V4 (from AJ’s Nov 2015 slides)

V7 Actions

Status of Base branches

Renaming of branches: After 3.16.1 release the 3.14 branch will be called “Maintenance”, 3.15 becomes “Stable”, 3.16 “Current” and 7 “Developer”.

Branches:

Other Actions

Wednesday March 15

Status of Base branches (cont’d)

Git conversion planning; future use of Launchpad vs. Github

Git repo on LP, remove/disable the mirror on github. Merge proposals seem to work OK with the LP bug-tracker, haven’t worked out quite yet about auto-linking bug fixes to merge proposals, it works OK if you type the bug# into the merge proposal.

MD: Don’t like moving repo’s from github to LP.

AJ: Submodules problem (LP doesn’t link to submodules in its tree view).

RL: Smartgit takes care of most of the complications of git, especially for power users.

Conversion: MD creates a recipe/script for converting a branch from LP/bzr to LP/Git, and will run this for all branches owned by epics-core.

Make a list of the places that will need updating. Announce to core-talk. Prepare updated docs/web-pages, release checklist. Update Launchpad series. Prepare Jenkins job updates. …

Port of Base to RTEMS 4.12

Further discussion about structuring replacement RTEMS implementations. Conclusion was that target configurations could set OS_SRC_DIRS in their CONFIG.Common.<t_a> files (AJ Later: no, external modules already use src/os/RTEMS dirs for source code).

Source code repository restructuring

Split base into:

Each of these will become a stand-alone module (Core will be special).

From V4 C++ implementations, we will add:

PCAS and gdd are moved into a module of their own, which is a regular support module and not an integral part of base anymore.

Some utility code should be moved from pvData into libCom (smart pointer wrapper etc).

Build system changes

Problem with allowing submodules to also be stand-alone, with their own configure directory and configure files. Individual modules must have configure directories so they can build when separated, but when INSTALL_LOCATION is set the files in here must not be installed for any of the sub-modules other than Core itself.

The uber-top must install its own configure directory in that case, but keep all the submodules from installing their configure own directories.

Walk-through of RTEMS QEMU Testing

MD: Scrolled through changes needed to add this support to allow Travis-CI to run RTEMS-pc386 tests on qemu.

Thursday March 16

Sub-module ownership responsibilities

RL: Little time to spend on Base internals, detailed code review. Might help to do reviews on a hangout instead of just online.

AJ: Might be able to interest a new hire in doing some code reviews, TBD.

Agreed: No specific ownership of V4 modules in base, neither AJ nor RL have much knowledge of the V4 internals, MD may have to take more responsibility for these parts for now.

Status of PVAccess Gateway & Access Security

MD: pvaSrv does handle basic Access Security, but doesn’t currently handle changes to the state. QSRV doesn’t have any implementation of this. pvaSrv assumes there is only one provider, doesn’t provide a way for the provider to access the credentials. Protocol looks like it should have all the necessary parts, but hasn’t been tested and there are missing APIs for credential changes. SASL library may provide a good starting place for an implementation. Work is needed on this with nobody identified to do it at this point (some of this may be MS).

MD: pva2pva – no changes since last May, working prototype with no Access Security (may have read-only flag).

Future of EPICS V4 Java modules

If there is a contract, MS would be appropriate for doing some of this work.

MD: Kunal had difficulties working with and understanding the existing implementation. Work needed to make things easier to use, most are implementation changes (internal, no effect on visible APIs except possibly adding stuff).

Know users of the Java implementation: CS-Studio, Archive Appliance, AreaDetector ImageJ plugin (in development), SLAC (Greg White, via Matlab, plus other code).

HJ: Not sure that the Archive Appliance is using the pvAccess protocol as it should be doing. It works, but Murali makes changes that I don’t understand.

Base-3.16.1 and EPICS 7 release timetables

MD: Better answer on my schedule in a week or two. All 3 branches that I thought were ready all need changes.

RL: Decide on a target date to merge everything for 3.16?

MD: In 2 weeks we can set the schedule for the Base-3.16.1 release.

RL: Git conversion?

MD: Ongoing, in parallel.

RL: How to split up and reorganize the current Base repo for the EPICS 7 work?

MD: 2 choices, separate history or just make 4 clones and remove the unused parts in each.

AJ: One module (Core) should have the full history, others should only keep their own history.

RL: Volunteer to make each new sub-module build as separate stand-alone.

AJ: Volunteer for build system changes for INSTALL_LOCATION stuff.

RL: Have a structure that builds everything by the June meeting (at FRIB). Can’t remove the compatibility building against older/external Base versions from the V4 modules yet, but could drop building against Base-3.14.

AJ: That’s an important consideration when moving utility stuff from pvData into libCom.

Discussion about Code Reviewing

MD: How to handle when neither RL or AJ have time to review branch merges.

Decision to use the regular Core group Telecons to review code merges, aiming to avoid discouraging those willing to contribute by ignoring their code and get reviews done.

End of formal meeting