Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement an approach to working in support modules in epics-containers #8

Open
gilesknap opened this issue Jul 30, 2024 · 1 comment

Comments

@gilesknap
Copy link
Member

In future we need to support a clean workflow for modifying support modules withing the context of a generic IOC that depends upon them.

We have a proposal for:

ibek dev support SUPPORT-MODULE-FOLDER

this would mv the support module into a folder that is a peer to the ioc-xxxx repo folder and symlink the /epics/support/SUPPORT-MODULE to that - plus make it writable. This means that your support module changes are in the host filesystem and will not be lost on container rebuild.

This issue proposes that we as well as making the symlink, also update the devcontainer.json file to mount this folder into epics/support/SUPPORT-MODULE. This means that:

  • rebuilding the container will not loose the connection to the host
  • committing the ioc-xxx repo while working on a support module will cause CI to fail and you won't get confusing results where CI and local are using different support module versions.

Actions:-

  • change ibek clone to set all source code to read only so that users do not mistakenly change support modules inside the container
  • implement ibek dev support to:-
    • move the support module to a host folder
    • symlink /epics/support/SUPPORT-MODULE to the host folder
    • update devcontainer to mount the host holder over /epics/support/SUPPORT-MODULE so that a container rebuild replaces the symlink with a host mount.
  • consider implementing an ibek function to undo the ibek dev support change
  • this would require you have released the support module changes
  • would update the Dockerfile with the new version of the support module.
  • remove the mount from devcontainer.json
  • clone the new support module version into the container so that you can verify the released version will work

This is from a conversation with @coretl today.

@gilesknap
Copy link
Member Author

This seems a little complicated. Can this be simplified?

Just working inside the container is very easy and this would work for in cluster testing and development too.

We just need to be able to ensure people don't loose their work.

For further review

@gilesknap gilesknap changed the title Future changes for ioc-template and ibek - updating the devcontainer JSON Implement an approach to working in support modules in epics-containers Nov 20, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant