EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

EPICS Codeathon 2023

Diamond Light Source in Oxfordshire, England will host the 2023 EPICS Codeathon from Tuesday March 7th to Friday March 10th, to work on items from various EPICS To Do lists. Diamond will provide a comfortable environment with wireless networking, light refreshments and space for up to 40 people to work on EPICS 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 possibly the Java/CS-Studio Developers Group, taking place at Diamond starting on Monday, March 6th, the day before the Codeathon begins. Those discussions will not normally be appropriate for non-members, so Codeathon-only attendees should plan to arrive to start working on the Tuesday.

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.

Previous EPICS Codeathons have attracted between 8 and 35 attendees from different labs/sites, and have resulted in many useful advances for EPICS Base and related software. Projects do not have to contribute directly to the EPICS Base code as long as they are related to and shared with the EPICS in some way, so work on documentation, device support, client applications (e.g. CS-Studio) and similar is all appropriate.

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 40 people. It's not necessary to attend all 4 days, but if there is a rush preference may be given to those who can. 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?

Registration is now closed. It was required to gain access to the Diamond site. If you have questions about logistics (travel, accommodation etc.) that are not answered here or there please email them to Diamond's events account [email protected]. For questions about projects or EPICS development you are welcome to email Andrew Johnson.

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 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 be helping with transport from that hotel to the lab and back each day, using public busses to reduce the meeting's carbon footprint.

Other questions?

If you have any other questions about what to expect or about the local area we have created a GitHub Discussion Page for the event, you're welcome to post there on any related topic.

Timetable

Day AM PM
Monday EPICS Core Developers Group meeting
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 are developing lists of development projects that we would like to see implemented and bugs that could be fixed, of varying levels of complexity. This wiki page describes some projects, and has pointers to other lists. These mostly involve EPICS Base, but may include other shared EPICS projects. You can also bring or suggest additional projects (please describe your ideas here before the event), and will pick the project(s) you work on after discussions at the event to avoid possible 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 ask attendees to review other people's projects as code reviews are another good source of learning about EPICS.

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 GitHub, to allow you to push your code changes to a public Git repository for review. 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 BS1363 socket that takes a plug 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.


Mentors

The following core developers are currently expected to attend:

  1. Andrew Johnson (APS/Argonne)
  2. Simon Rose (ESS)
  3. Timo Korhonen (ESS)
  4. Heinz Junkes (FHI)
  5. Ralph Lange (ITER)
  6. Michael Davidsaver (Osprey DCS)

Last updated: 2023-02-02

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