harris-chris / Jot.jl

Streamlines the creation and management of AWS Lambda functions written in Julia
MIT License
41 stars 6 forks source link

Julia environment management #43

Open evanfields opened 1 year ago

evanfields commented 1 year ago

Say one has a package CoolPackage which contains a function to be wrapped up and package compiled via Jot. Is the intention to:

  1. Add Jot to the CoolPackage environment and run Jot with CoolPackage activated?
  2. Add Jot to the default Julia environment, activate CoolPackage, and because of environment stacking Jot will still be usable?
  3. Create a new environment that contains both Jot and CoolPackage as dependencies and run Jot from there?

Thanks!

(PS - I really appreciate Jot, I was not super looking forward to simultaneously figuring out Docker, Windows Subsystem for Linux, ECR, Lambda container interfaces, etc. for the first time; Jot really seems to simplify greatly.)

harris-chris commented 1 year ago

Hello - 3 is the approach that's currently being used - a new environment is created specifically for the docker image, which includes both Jot and CoolPackage. This process is (architecturally speaking) a bit clumsy at the moment and is next on my list of things to refactor, if you have any strong views on 1 vs 2 vs 3 I'd be happy to hear them.

On Fri, Mar 31, 2023 at 9:23 AM Evan Fields @.***> wrote:

Say one has a package CoolPackage which contains a function to be wrapped up and package compiled via Jot. Is the intention to:

  1. Add Jot to the CoolPackage environment and run Jot with CoolPackage activated?
  2. Add Jot to the default Julia environment, activate CoolPackage, and because of environment stacking Jot will still be usable?
  3. Create a new environment that contains both Jot and CoolPackage as dependencies and run Jot from there?

Thanks!

(PS - I really appreciate Jot, I was not super looking forward to simultaneously figuring out Docker, Windows Subsystem for Linux, ECR, Lambda container interfaces, etc. for the first time; Jot really seems to simplify greatly.)

— Reply to this email directly, view it on GitHub https://github.com/harris-chris/Jot.jl/issues/43, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALDMVSGH7OG3Z6MPDMS3F4TW6YPWHANCNFSM6AAAAAAWN7FNPI . You are receiving this because you are subscribed to this thread.Message ID: @.***>

evanfields commented 1 year ago

I guess option 3 isn't so bad in most cases. To confirm, that'd just be like this?

;cd path/to/jot/env
]activate .
]dev path/to/CoolPackage
]add https://github.com/harris-chris/Jot.jl#main
...do stuff with Jot...

If that's all there is to it, pretty smooth, but would be great if the docs clarified this intended workflow. I suppose a problem could arise if Jot's dependencies conflicted with CoolPackage's?

harris-chris commented 1 year ago

Yes, that's exactly it. I'm intending to change it so that it uses dev to add the local jot package, rather than pulling it from main branch on github.

The question about dependencies is a good one, I'll add a test case for that to see what happens. And yes I agree, some more documentation would be good.

On Fri, Mar 31, 2023 at 11:37 AM Evan Fields @.***> wrote:

I guess option 3 isn't so bad in most cases. To confirm, that'd just be like this?

;cd path/to/jot/env ]activate . ]dev path/to/CoolPackage ]add https://github.com/harris-chris/Jot.jl#main ...do stuff with Jot...

If that's all there is to it, pretty smooth, but would be great if the docs clarified this intended workflow. I suppose a problem could arise if Jot's dependencies conflicted with CoolPackage's?

— Reply to this email directly, view it on GitHub https://github.com/harris-chris/Jot.jl/issues/43#issuecomment-1491211522, or unsubscribe https://github.com/notifications/unsubscribe-auth/ALDMVSFWNLHAOGFTE23U2ILW6Y7QNANCNFSM6AAAAAAWN7FNPI . You are receiving this because you commented.Message ID: <harris-chris/Jot .@.***>