Skip to content

Conversation

@IanButterworth
Copy link
Member

WIP, seems to work. Avoids the need for notarizing the stdlib.

Developed with Claude. I haven't reviewed the code closely yet.

% ./target/release/juliaup remove release && ./target/release/juliaup add release
    Deleting symlink julia-release.
      Tidyup Removed Julia 1.12.1+0.aarch64.apple.darwin14
      Remove Julia channel 'release' successfully removed.
    Checking for new Julia versions
  Installing Julia 1.12.1+0.aarch64.apple.darwin14
         Add Installed Julia channel 'release'
% ./target/release/julia +release -e "@time using Pkg"                           
  0.328271 seconds (517.75 k allocations: 34.026 MiB)

I had a previous attempt here #998

And some discussion here
JuliaLang/julia#54366
#1010

@DilumAluthge
Copy link
Member

Might be worth sticking a link to this comment as a code comment somewhere here, otherwise people (like me) might forget why the setup-julia issue doesn't apply here.


#[cfg(target_os = "macos")]
fn try_download_dmg_with_fallback(url: &url::Url, target_path: &Path) -> Result<(String, bool)> {
let dmg_url = if url.as_str().ends_with(".tar.gz") {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should really handle that in the construction of the version db, right? I.e. where there is a dmg file available, the UrlPath path in the version DB should just point to that.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I thought about that but would that be backwards compatible? The db needs to serve before and after we add dmg support

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The version db file itself is versioned, so when we update the schema (which this would essentially be a case of) we would publish it as version db 2 file, so any old client would just stay on the old version file. Would actually be good to test such a version db schema change with a relatively simply case like this one.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I spent some time trying to figure out the database update approach and don't think I understand how to add the v2 database and keep updating the v1 database.

I think implementing that is a bit outside of my wheelhouse...

Do you think we could proceed with this approach for now, with a TODO to update the database version format appropriately?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think my original thinking for DB versions was that we stop updating v1 database once we start to publish v2 databases. The general idea for Juliaup is that the binaries need to be kept up-to-date.

I would prefer that we try to do this with a DB update, I'm happy to help with that.

One thing I don't fully understand yet: do we need this stuff for only the PR type channels, or for everything?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh, and I can help with the DB update!

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks.

It's needed for all official releases. I'm not sure which of the nightlies or PRs have dmgs

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@davidanthoff to try and help this move along I've given the database format changes a go. What do you think?

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

Successfully merging this pull request may close these issues.

3 participants