-
Notifications
You must be signed in to change notification settings - Fork 12
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
Sync testdata folder to THREDDS testdata/raven #185
Comments
Related: Ouranosinc/xclim#525 |
I am trying to wrap my head around what's the real root problem here. Basically we do not want tests to use relative path to the For optimization, we can detect if the relative path exist (dev full checkout mode), use that one and keep the http path as fallback only (tutorial mode). I rather our Thredds server do not become a single point of failure for running tests. |
One idea is to have a github |
Maybe Raven spawn its own Thredds server, like Emu does https://github.com/bird-house/emu/blob/56def2684fc28fee09089382de192075f065f3f2/docker-compose.yml#L12-L23 ? Again I don't want all the tests to suddenly fail on Travis-CI and all local dev workstation just because Thredds is down for maintenance. And let's say there is a new or updated dataset that is not yet synced to Thredds, how can a dev continue his work? So my point is yes we'll still need to sync all the data to Thredds for tutorials but day-to-day dev workflow should not rely on Thredds. Which test(s) need a DAP link right now? Some data is already manually on Thredds? |
Can Intake provide what we need "abstract the backend storage (local file, http link, dap link)"? |
I'm wary to make the development environment more complex than it is, but I think you raise valid issues. Intake: possibly. There could be a field |
Analysis: Conclusion |
@huard Houston, we have a problem. Looking at raven/docs/source/notebooks/example_data.py Lines 31 to 33 in 58e8978
There are many other file types than I see 2 possible solutions to avoid having to clone the entire Raven repo for tutorial notebooks: 1 - sync only the 2 - add a fallback to direct http raw file on github (ex: https://github.com/Ouranosinc/raven/raw/master/tests/testdata/gr4j_cemaneige/evap.nc). This route will imply hardcoding each and every testdata file since the glob trick on local filesystem do not work anymore and also means no deletion or modifying existing testdata, else old revisions of the notebooks would break. The upside to this option is each I would favor option 1 unless you have a 3rd option to suggestion or you prefer option 2 and can live with the limitations. |
Suggestion:
|
Already done.
Just to be sure, this is a fallback only when the full checkout is not there. On dev workstation and Travis-CI, the full checkout will be there so I'd rather not force external dependencies when everything is available locally. I don't want dev unable to run tests and Travis-CI fail just because our Thredds is on maintenance mode. Where would you want this |
Yes, as part of Raven. I think this matches the philosophy of keeping the notebooks in sync with the code. The |
Perfect, as long as we are ready to release and deploy Raven often. The notebooks are set to auto-deploy every hour. If it requires a new Raven for new testdata, it will break.
I didn't mean new testdata not used. I meant new testdata needed by notebook but not yet available on the currently deployed Raven (not up-to-date yet Raven). Not a problem if we release Raven often for deployment. |
So we can run tests entirely on the platform.
The text was updated successfully, but these errors were encountered: