-
-
Notifications
You must be signed in to change notification settings - Fork 425
change from using a build script to auto installing kernels and providing a jupyter path update function #1215
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
base: master
Are you sure you want to change the base?
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #1215 +/- ##
==========================================
- Coverage 72.36% 70.53% -1.83%
==========================================
Files 18 20 +2
Lines 1317 1446 +129
==========================================
+ Hits 953 1020 +67
- Misses 364 426 +62 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
JamesWrigley
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
(This still won't fix external |
|
Just FYI, while doing this I was not aware of the juliaup issue being referenced (and this PR was not meant to address that) but from the comment I can sort of imagine what the problem is. Pkg Apps have the same problem in that we store the absolute path to the Julia executable that installed the path. When juliaup does GC that exe, it's sad times. My plan to help with the Pkg App problem is by using JuliaLang/juliaup#1315 in combination with a Pkg App specific env variable to override the executable that launch the app to be just |
|
Changed to using Preferences and did some updates based on review and own reading of code. I think the |
README.md
Outdated
| - Prompt you to install Jupyter if you don't already have it (hit enter to install via [Conda.jl](https://github.com/Luthaf/Conda.jl), which creates a minimal Python+Jupyter distribution private to Julia) | ||
| - Automatically install the Julia kernel for your current Julia version | ||
|
|
||
| If you already have Jupyter installed and prefer to use it, you can launch it from the terminal with `jupyter notebook` instead. The Julia kernel will be automatically installed the first time you run `IJulia.notebook()` or `IJulia.jupyterlab()`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be better to just tell people to run installkernel() if they want to use an externally installed Jupyter front-end of some kind.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Fixed in ab9137c.
|
@KristofferC, do you think you'll have time to finish this in the next week or two? No worries if not, I'm happy to take over if you like. |
|
(bump) |
1 similar comment
|
(bump) |
|
@KristofferC I'll finish this off next week if that's alright with you, feel free to comment if you'd like to do it. |
712684d to
8aa1269
Compare
8aa1269 to
0b40091
Compare
…ding a jupyter path update function The Pkg build functionality is not good. It gets run whenever a package is *downloaded* (which is a weird thing to trigger on where packages are considered immutable and multiple environments share the same package downloads), it requires the package to recompile when build options are changed etc. This instead auto installs the kernel if needed and also provides a separate function to update the jupyter path. It also moves to using Scratch.jl system over using `DEPOT_PATH[1]/prefs` (but reads the old file as a fallback) It also changes some things that had to be done at build time (like setting the debug mode) to now just be a runtime thing
0b40091 to
9eb22e3
Compare
The Pkg build functionality was made for a different era in Julia package management. It gets run whenever a package is downloaded (which is a weird thing to trigger on where packages are considered immutable and multiple environments share the same package downloads), it requires the package to recompile when build options are changed etc. There are now better options based on e.g. scratch spaces.
Instead of using
Pkg.buildto install the default kernel, this instead auto installs it if needed.It provides a separate function to update the jupyter path because tying kernel installation and updating of jupyter path together felt wrong.
It moves to using the Preference system over using
DEPOT_PATH[1]/prefs(but reads the old file as a fallback)It changes some things that previously had to be done at build time (like setting the debug mode) to now just be a runtime thing.
Using IJulia from scratch (by using an empty depot and clearing out all kernels) looks like: