EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

EPICS Codeathon 2020

This event was very successful, about 34 people attended and lots of work was done — a spreadsheet shows the projects that were worked on. The majority of these projects were documentation-related, covering EPICS Base, Area Detector and the EPICS Controls website, but there were many bug fixes, code enhancements and build system developments as well.

Many thanks to the management and staff at Diamond for organizing the event, providing transport between the hotel and the lab, and for hosting the dinner on Wednesday evening.

Diamond Light Source in Oxfordshire, England hosted the 2020 EPICS Codeathon from Tuesday February 11th to Friday February 14th, to work on some of the items on the EPICS To Do list. Diamond will provide a comfortable environment with wireless networking, refreshments and space for up to 15 people to work on EPICS core development projects. Attendees will be responsible for their own travel and expenses, and must bring a laptop or notebook computer to work on with all necessary development software installed.

By taking developers out of their home environment they can be freed up from interruptions and local problems and allowed to concentrate on specific EPICS development tasks. A lab that is looking to both improve their EPICS expertise and to give something back to the collaboration might find this an appropriate way to do both at the same time.

Other Meetings

There will also be meetings of the EPICS Core Developers and the Java/CS Studio Developers Groups taking place at Diamond starting on Monday, February 10th, the day before the Codeathon begins. The Core group meeting will be on Monday only and its members will then attend the Codeathon, but the Java meeting will continue all week in a separate room. While the Core group won't turn people away and we are wanting to enlarge the group, those discussions would not be a good way to join, so Codeathon-only attendees should not plan to start before Tuesday. If your supervisor will allow you to spend time working on the EPICS Core code, please talk to the core developers at the Codeathon about joining us.

What Happens?

Coding Marathons, also called Code Sprints or Hackathons are popular in many open source projects as a way of making progress on certain development efforts, clearing up bug reports and introducing new developers to the project internals. They usually involve design discussions between developers, coding (individually or using techniques like Pair Programming), code testing and debugging, writing documentation, and coaching for developers who are new to the code-base.

The previous EPICS Codeathons have attracted between 8 and 15 attendees from several different labs/sites, and have resulted in many useful advances for EPICS. There will be several core developers present to help newcomers to get started and recommend solutions for any issues that arise.

Who’s invited?

This workshop is intended for experienced EPICS users who wish to contribute towards the future of EPICS, either by writing code or working on various documentation tasks. There will be several core developers in attendance to act as mentors, including members of the team responsible for developing and maintaining the new epics-controls website.

Our numbers will be limited by the space available to 15 people (not counting the Java developers group who will have a separate room). It's not necessary to attend all 4 days, but preference will be given to those who can. You don't even have to be a C or Java programmer as we will have some tasks that involve writing and updating the EPICS documentation, although most tasks will require some understanding of EPICS, C/C++ or Java coding and/or Linux scripting.

How to register?

The registration website is now closed. Questions about the registration process, transportation or other issues about the location should be sent to [email protected]. If you have questions about projects or EPICS development you are welcome to email Andrew Johnson with them.

Where will it be held?

Diamond is on the Harwell campus near Didcot. The Codeathon will take place in a conference room on site. Wireless networking will be available with high-speed access to the internet so you should be able to connect back to your home institution for email and any other services. Diamond prefer visitors to use an eduroam WiFi login if possible, so please ask your IT department whether they support it.

Where to stay?

We have a block of rooms reserved from Sunday night through Friday morning at The Bear Hotel in the center of Wantage at a rate of GBP 65 per night, payable on departure. The Codeathon registration form asks you if and for which days you want to stay there. Diamond will also be providing transport from the hotel to the lab and back each day.

Timetable — Codeathon and Core Developers only

Monday Meeting of the EPICS Core Developers Group
Tuesday Introductions, project selection Coding
Wednesday Coding Coding
Thursday Coding Coding
Friday Coding Wrap-up session

The Friday afternoon session will be short to allow participants time to travel as necessary. We could even have the wrap-up session before lunch if anyone has an early connection.

Work Projects

We will be developing a list of development projects that we would like to see implemented and bugs that could be fixed, of varying levels of complexity. These will mostly involve EPICS Base, but may include other shared projects. Some will require adding Doxygen annotations to the header files in Base using text from the Application Developers' Guide. Participants can also bring or suggest additional projects (feel free to discuss ideas on core-talk before the event), and will pick the project(s) they work on after discussions with the organizers to avoid duplication of effort.

The EPICS core developers who attend will be working on their own projects, but will also be available to provide advice and assitance to others as needed. We will also review and have to approve all changes and additions before they can be merged into official releases of EPICS Base.

How to Prepare

What can/should you do in advance in order to make life at the event itself easier for you and the other participants? Here are some suggestions, if you have other ideas that you think would help let me know and I'll add them here.

  • Make sure your laptop/notebook computer is prepared for the work that you are capable of doing. EPICS development is probably easiest on Linux or MacOS, but if you are a Windows power user or are already using EPICS on your Windows laptop that should be fine too. You should have all of the necessary compilers and other tools to build and run the software you're working on, and in most cases you will need a copy of the Git DVCS software installed.

    You can also sign up for a free account at either GitHub or Launchpad, to allow you to push your code changes to a public Git repository on one of those sites. Instructions for checking out a local copy of EPICS Base can be found on the EPICS 7.0 Release Series page.

    Don't forget to bring a mains adapter; UK power is 240V at 50Hz and comes from a socket with 3 rectangular pins.

  • Once it's been published, look through the list of suggested work projects and try to identify some that you might be interested in working on. You could examine the existing code to try and get a feel for what might need to be done. If you have additional project ideas of your own, it is worth posting a message to core-talk describing them in advance of the event.

    This type of preparation work isn't the same as starting early. It's more a matter of getting your brain ready to sit down and tackle some problems. Rather than spending half a day deciding what to do, you'll already have a bit of an idea about where you could do some work and what the bigger picture looks like in that area.


The following core developers are currently expected to attend:

  1. Andrew Johnson (Argonne/APS)
  2. Heinz Junkes (FHI)
  3. Martin Konrad (FRIB)
  4. Ralph Lange (ITER)
  5. Jeff Hill (LANL)
  6. Michael Davidsaver (Osprey DCS)

Last updated: 2020-02-24

ANJ, 25 Feb 2020 · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·