-
Notifications
You must be signed in to change notification settings - Fork 1.4k
Julia definition is out of date #1114
Comments
@eitsupi - This is a community definition so I'll loop in the definition owner. @davidanthoff - Your thoughts on this? |
@davidanthoff @ThomasHagebols Do you have any future plans for the julia definition? |
@fonsp Any thoughts? |
@eitsupi @davidanthoff @ThomasHagebols @fonsp - At this point I suspect we may want to remove this definition from the repository since given we haven't had a response in a few months now. I worry about the impression it leaves current state even though it is marked as community. |
The containers are all up-to-date. If we fall behind from time to time, it is extremly simple to add another version, see julia-vscode/julia-devcontainer#10 for an example. PRs are always welcome! I don't think there is a need to change anything. |
As I wrote at the beginning of this issue, I think that repository should be deprecated and the definition completely rewritten to allow users to easily do local builds. If we switch from pre-built images to local builds, we will no longer have to worry about update delays, and users can choose any version of Julia (even development versions can be choosed, as requested in this issue julia-vscode/julia-devcontainer#8 ). There is also the problem that the build system of that repository only builds amd64 and does not support arm64. |
I would suggest we wait with any change until https://github.com/julialang/juliaup is finished and the official way to install Julia. I expect that to be the case in a few weeks (months at most). That will change a lot of things about Julia deployment, and will open up a range of new options for this scenario here as well. There are also some major benefits of the current structure, in particular for novice users: there is almost no complexity involved, the surface level stuff that they interact with looks extremly simple (essentially just the super simple So, to be honest, I'm not too keen to change the current setup, I think it essentially works well. I can see that it would be nice to have more control for more advanced users, but maybe one way would be to just add another configuration template for those users, say |
I think you should take seriously the fact that no contributor has shown up in over six months and you, the owner of the definition, have taken no action. Pre-built images should be eliminated, especially if you care about beginners. (It's much easier for them to edit the Dockerfile in their hands than to send a PR) |
I don't follow at all. Literally one needs to add one number to one line in one file to add a new version, that is it. Everything else is fully automated. If someone doesn't know how to do it, open an issue or ping me. I am thinking about solutions how we can automate even that (as we have a number of places where we need to make that kind of one-line edit when a new Julia version is released, so I might just write a script for that and then that should be handled).
I disagree, I think the current solution is much easier for beginners than a template that drops a large and complicated Dockerfile into their workspace. I think one of the really good things about the current system is that it works really well for folks that don't even know what docker is. I'm not sure what the right way to resolve this is. From the Julia extension for VS Code team's point of view I would prefer if we just kept things the way they are, but I guess at the end of the day it is MS' call? |
I have been waiting for 3 months and unfortunately it seems that all I can do is close this issue. |
I released a Dev Container Feature to install Julia, |
@eitsupi Given no response here, should we remove the Julia definition from this repository in favor of yours? |
I don't think anything should be changed. The images over at https://github.com/julia-vscode/julia-devcontainer are up-to-date and work. I am the person creating Juliaup, which will become the default Julia installer soon (TM). Once that is officially rolled out, I will update the solution over at https://github.com/julia-vscode/julia-devcontainer to use that. But at the moment folks should not be pushed towards Juliaup for something official as it is still in a prerelease mode. |
@Chuxel Of course I can provide a new Julia template like below, but if @davidanthoff sticks with the current one, all I can do is provide a Feature to install Julia. {
"image": "mcr.microsoft.com/devcontainers/base:debian",
"features": {
"ghcr.io/eitsupi/devcontainer-features/julia:0": {
"version": "latest"
}
}
}
I think the situation is different now than it was a year ago. What is the reason for sticking with what is here and now outdated? |
Given that the definition of Julia has become outdated again, it seems necessary to reopen this. |
@eitsupi I just added 1.8.4. It was released during the holidays, so that means there can be a bit of a delay sometimes. One thing you could do that would be super helpful is to just open a PR against https://github.com/julia-vscode/julia-devcontainer/blob/master/.github/workflows/docker-publish.yml#L48 and add the version there, that is really all that is needed. And as I wrote above, as soon as we have Juliaup more officially I'll do something more automatic. |
@davidanthoff Thanks. But I am not talking only about the version of Julia that I am describing as outdated. If someone were to overhaul julia-vscode/julia-devcontainer, it would require a lot of effort and I don't have the bandwidth. |
@eitsupi Alright, I finally caught up with the recent (well, not so recent) devcontainer changes, at least I know now what a feature is :) I think you are right, it seems we should deprecate the container things we have maintained over at the VS Code extension org and move to a feature instead. I did just add a non-interactive option to the Juliaup installer, I think that was probably the missing piece to make that usable inside a feature, right? I'm going to test it for a few days before I roll it out to everyone. What do you think about the following plan:
|
Actually, I'm realizing that the Julia feature right now is in a repo that has quite a number of other features as well. So, I guess my proposal then would be that we only move the Julia feature out of that repo and into a new one in the julialang org. |
@davidanthoff Thanks for your reply!
Yes, I forget which issue, but I gave up using Juliaup (or juliainstaller) when I tried it a few months ago because the process of installing it required interactivity. install_juliaup # a function to install juliaup
su "${USERNAME}" -c "juliaup add ${JULIA_VERSION}" I assume something like the following code that installs R via rig (R Installation Manager).
I completely agree with your suggestion.
Since the Dev Container CLI has testing abilities, it would make sense to refactor after the juliaup has matured.
And, just as we would create a repository for Dev Container Features, we must create a repository for Dev Container Templates and migrate to the new templates using Dev Container Features. In summary, for the new format, we need a repository based on https://github.com/devcontainers/feature-starter and a repository based on https://github.com/devcontainers/template-starter. |
@eitsupi cool, this is all very helpful. I started with https://github.com/JuliaLang/devcontainer-features, do you want to take a look at that? Does that look good to you? The tests are nonsense, maybe you could migrate the ones you have over to there? At the moment I can't publish things because I'm waiting for a Julialang admin to allow public packages. Does it make sense that we test the feature stuff first and the move to templates? |
@davidanthoff Awsome! I am wondering if we can specify which version to install via juliaup at the first time. installs the latest 1.6.X "features": {
"ghcr.io/eitsupi/devcontainer-features/julia:0": {
"version": "1.6"
}
} installs the latest 1.X.Y "features": {
"ghcr.io/eitsupi/devcontainer-features/julia:0": {
"version": "1"
}
} install the lates X.Y.Z "features": {
"ghcr.io/eitsupi/devcontainer-features/julia:0": {
"version": "latest"
}
} A non-stable version can also be specified. "features": {
"ghcr.io/eitsupi/devcontainer-features/julia:0": {
"version": "1.9.0-alpha1",
"allowNonStableVersion": true
}
}
Definitely. |
Yes, the On one level the name |
That's great. I think It would be a good idea to document which versions are valid and to create test cases to verify that they work. |
@davidanthoff I don't think this Feature is working yet, as evidenced by my additional tests. (JuliaLang/devcontainer-features#3) |
Will be closed by devcontainers/devcontainers.github.io#278, thanks! |
Uh oh!
There was an error while loading. Please reload this page.
The Julia container definitions added in #450 use pre-built images (
ghcr.io/julia-vscode/julia-devcontainer
), but they have not been updated for almost half a year.Therefore, the latest version of Julia is 1.6.3, but Julia on containers created using Julia's container definition is still version 1.6.1.
As mentioned in this comment #154 (comment), updating Docker images requires a lot of effort, so I think it is worthwhile to stop using pre-built images and switch to a method where users build locally, similar to many other community container definitions.
Although there is a disadvantage that local builds take more time, I feel that there is also an advantage of being able to switch base images easily.
The text was updated successfully, but these errors were encountered: