-
Notifications
You must be signed in to change notification settings - Fork 143
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
use master branch of dependency packages in nightly test stage #805
Comments
Really interesting idea! When do you imagine running this? Only when people submit PRs to Images.jl itself? The obvious concern is that this may not catch dependency-PRs that merge and then quickly tag. I suppose the alternative is to run the Images tests on each PR for each dependency? At one point, JuliaInterpreter also ran Debugger's tests: JuliaDebug/JuliaInterpreter.jl@ee0cd22. My main worry is making the whole dev pipeline slower, but there is little doubt that it would be safer. |
Regardless of the slower dev pipeline, actually, these two approaches are quite different; my approach here is quite passive and defensive, while yours is active and aggressive. For example:
Afterall, I guess it's exactly the purpose of the nightly test? A daily cron job in I agree that it would be quite reasonable to adding |
Yes, that would catch a lot. But not infrequently, I merge something and tag it within a few minutes. Those are usually simple bugfixes, so may not be as dangerous as other types of changes that may have a longer latency. Perhaps the most useful time to run some additional tests would be when a new version is being registered. It would be cool if we could supply a custom test script to JuliaRegistries/General, that would launch additional tests on Travis (https://github.com/JuliaRegistries/General/issues/684). In the case where it's just a list of packages whose tests need running, the actual implementation would be fairly simple, I think, just an |
Shall I continue this issue? I think this issue doesn't conflict with https://github.com/JuliaRegistries/General/issues/684 and no additional tests are required. |
If we fix it in the registry, is this still needed? |
Although it might be infrequent, it does help catch errors before dependent packages(e.g., |
If I understand correctly, you're worried about a bug on the master branch of A that breaks a registered version of B. Fixing it in the registry will catch the error when A is registered, but you're hoping to catch it even earlier? Note that merely registering a new version of B will not incorporate the breakage in A, so I think this issue only affects people who have |
Yes, that's exactly my purpose For example, JuliaRegistries/General#642 is caught by JuliaImages/ImageCore.jl#78
That's why we set |
There is merit here. The particular bug you flagged has other solutions (e.g., fixing JuliaRegistries/Registrator.jl#122, which actually has a lot of overlap with the registry tests), but what you're proposing would catch a lot of issues. I guess the main thing to think about is whether there is a way to centralize more of this so one doesn't have to update a configuration manually in so many packages. I worry about things changing over time and having to manually make a bunch of fixes. Is there any chance some of this could go in |
One other concern: failures due to the time gap between bumping the EDIT: one approach would be to fix those bounds locally. It would require a dive into Pkg internals, though. In case it's not clear what I mean by "loosening" and why I think this could be a concern: the long-term hope for the General repository is that we use both lower & upper bounds on basically all dependencies. Specifying bounds as For this issue, it's only a concern if someone (1) merges a version-incompatible bump in a dependent package, and then (2) someone else submits a PR to a consumer of that package in the intervening time before the PR to the General registry merges. While I expect (1) to become increasingly infrequent as packages stabilize, (2) can sometimes be a gap of days, especially if some tests fail and we need to wait for authors to fix problems. |
Yes you're right, and I'm more than convinced now 😄Your solution is way better than mine. Close this issue and pending PRs now. |
It's a good idea to catch as many errors as possible before upstream dependency repos tag releases.
With a quite trivial script and appropriate Travis configuration, we can make this idea work, i.e., use master branch of dependency packages (
ImageCore
,ImageDistances
etc) in nightly test.How to:
SCRIPT_URL=https://gist.githubusercontent.com/johnnychen94/720900fd9e44395beaa0704770c91a36/raw/74f1a02f420a3ccd64b56cfc14111d170f559330/checkout_master.jl
(limitation: only repos that have valid
Project.toml
are supported by this simple script).travis.yml
(P.S. If there's a better(more concise) configuration, please tell me.)
travis configuration example
Demo:
https://travis-ci.org/johnnychen94/ImageNoise.jl/builds/530298110
The text was updated successfully, but these errors were encountered: