-
Notifications
You must be signed in to change notification settings - Fork 90
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
Nightly #809
Nightly #809
Conversation
Quick update: on Windows this should be roughly functional now. I think we might also be very easily be able to support The implementation now works as follows: if one has a nightly channel installed, then whenever Juliaup would regularly check for a version db update, it will now also check whether any of the nightly channels if out-of-date by sending one HTTP HEADER request per installed nightly channel and then comparing |
Should also work on Linux/Mac now. If folks want to give it a spin, it is ready for that now. But be warned, if you have a config with a nightly channel, the released version of Juliaup will crash on that config file. So, if you want to test this, you have to use this version exclusively, or make sure you remove the nightly channels before you go back to the regular Juliaup version. There is still a lot of additional error checking/handling I need to add, plus tests. But the general structure is there now. |
One problem with this implementation is this: on Linux/Mac the HTTP request to check for new versions are entirely sequential. If someone has a lot of PR channels installed (that feature of course is not yet implemented), that could really slow those checks down... So this might make #746 more important. This could also be a good reason to adopt tokio for |
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.
Great to have this feature. I've not done a code review but do note that the new feature hasn't been added to the README. Updated just before I posted :)
I also think that:
- there should probably be a CHANGELOG.md in this repo
- that repo releases should at least have the github auto-generated list of closed PRs & issues
- Descriptive release names?
vX.Y.Z: Add nightly channel
etc.
These last issues are bigger than this PR, but would be good to do for this feature release
This is still very much WIP, but I think I have settled on a different config file format than the previous implementation. I'm not using the split design of
InstalledVersions
andInstalledChannels
, instead I'm only adding an entry toInstalledChannels
for the nightly channels. The reason is that the split design really only exists so that multiple channels can point to the same version without duplication, sayrelease
and1.10
etc. I think for nightly channels we can just skip that and keep things simpler. So a typically config with a nightly channel installed would look like this:I'm not yet sure whether it makes sense to record the
Url
, but it would in general open the door to other types of "direct download" versions than just nightly, for example PR builds etc*Etag
is theetag
from the HTTP response from the download. I haven't implemented it, but my plan is to use that to detect whether a new build for an existing channel is available. I originally wanted to uselast-modified
as suggested by @staticfloat, but for some reason (at least on Windows) I'm not getting that header from the http library when I download the file.last-modified
would be nicer because we could use that info in the UI... But just for detecting stalenessetag
should do for now.I'm putting these nightly builds into folders that have the channel name, not the version. I'm not sure, but I think if we were to add support for PR builds we might distinct builds with the same version? I think using the channel for the folder name should get around that.