Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • It allows for ECS engineers to more easily work together, using the standardized workflow described above.
    • Proper use of version control provides a path for engineers to work simultaneously on a single project and sensibly merge their work.
  • Code is no longer just developed in isolation with a solo engineer's effort. There is a shared understanding of what is going on and why.
  • Being open to the public, it enables easy collaboration with our partner laboratories and other interested parties in the XFEL/synchrotron communities.
  • Continuous Integration - each of our repositories has a set of tests that ensure the code remains in the intended working state.
    • These tests are automatically run on every commit pushed to GitHub. It's like having an additional set of eyes on your code all the time, or an automatic reviewer of sorts.
  • We can automatically published documentation in an easily-accessible location on the web.
  • We can share tooling among all our projects.
  • We catch more issues and bugs earlier in the development process than we would otherwise.
  • We reduce maintenance efforts by a combination of all of the above.

...

  • Bring all of our EPICS modules and IOCs on GitHub
  • Ensure consistency between our local AFS-based repositories and those on GitHub
  • Work on continuous integration tools for:
    • Automatic linting of EPICS IOC process databases
    • Automatic EPICS IOC and module building
  • Take into account the social aspects of the change. We need to set expectations and ensure that both the submitter and reviewer are on the same page.
    • PR submitters need to respect the reviewers' time by providing enough context about the goals of changes and promptly responding to questions.
    • Code reviews can feel personal at times to the submitter, even if the reviewer is merely commenting on code.
    • A glance often isn't enough - reviewers need to give their due diligence to ensuring the changes are as described and without side-effects.
  • Roll out these policies with an individual project's scale and scope in mind.
    • Larger, more widely-used projects should go through the complete review process to ensure stability.
    • Smaller, more developmental projects should adopt a more lax policy in order to promote rapid development.
  • Ensure that these changes do not hamper development.


There are a number of standards to be defined and technical decisions to be made during our campaign. We are only just beginning with this, and any input would be appreciated.

...