Skip to content

Epics tools and services codeathon project ideas

Kay Kasemir edited this page Apr 27, 2022 · 4 revisions

Codeathon project ideas

Collection of projected ideas for codeathon sessions.

Issues

Complete open Issue tickets on github

Online Help

The online help mechanism is currently based on some key ideas:

  • Help should fundamentally be implemented in a markdown format (read-the-docs/sphinx, comparably simple to learn, is also readable as plain ASCII text)
  • Help for application XXX should be located close to the source code (app/XXX/doc/ folder, easy to update as application is extended)
  • Should be built into the product and available from "Help" menu
  • Still want to allow including HTML content from other sources (javadoc)

This is all achieved by tweaking the sphinx conf.py, https://github.com/ControlSystemStudio/phoebus/blob/4cd48cc3e93ddaef82827fd546cbdeff842cba3a/docs/source/conf.py#L248, so that it searches all the app/*/doc folders for markup files or pre-generated html content. It's described on https://github.com/ControlSystemStudio/phoebus/blob/master/docs/README.md, but has some downsides:

Potential topics:

Phoebus Release

Difficultly: medium/easy

Release Phoebus binaries to maven central repositories.

  • This should enable the Phoebus core modules like data types, the new pva client library, etc... to be easily used by other projects
  • Building a site specific product would no longer require building the main Phoebus repo, all the required module and apps could be pulled from the publicly available maven central repo.

Upgrade epics services and tools to elastic8

Difficulty: medium/low

  • Update all Epics middle layer services ( and the few clients which directly query the elastic backend) to uses elastic 8.
  • Describe how to copy data from existing elastic 7 installation to new elastic 8 server.

ChannelFinder/Directory service integration into ca and pva

Difficulty: medium

Update channelaccess and pvAccess clients to first query the name service/directory service for the IOC information of pv's before resorting to a name resolution broadcast.

New recsync (recceiver implementation)

Difficulty: medium

Rewrite the recceiver.

Protobuf dependency upgrade

Difficulty: medium/easy

The Epics Archiver client library protobuff dependency needs to be upgraded.

Databrowser Disconnect visualization

Difficulty: medium/easy

Complete minor changes to the DLS project on visualizing disconnect events in the databrowser. Port the changes from the eclipse CS-Studio to Phoebus

Java17 (18?)

Difficulty: medium/easy

Build and test Phoebus with Java17(18?) and openjfx 17(18?)

Explore GraalVM

Difficulty: medium/easy

Package Phoebus within a GraalVM

UI testing

Difficulty: medium/easy

Expand the UI tests for Phoebus applications. Writing UI tests which run headlessly has been difficult, however expanding UI testing can be useful for developers.