Closed pont-us closed 3 years ago
It would be good to implement Issue #43 before fixing this one, in order to decrease the AppVeyor build time -- CI config modifications usually require at least a few debugging cycles, so a quicker CI build will save time when fixing the present issue.
Another idea would be to come back to the use of maintenance and master branches. Changes that are incompatible with the last released xcube version would go into the master branch, others would go into both branches. The master branch could then hold a modified environment.yml permanently, until xcube is eventually released.
This procedure could/should also be extended to the xcube plugins.
I think we discussed using a maintenance/master release model at some point recently and concluded that it would be a good idea, but only once xcube development has slowed down and stabilized somewhat. If/when we do go ahead with that, it would certainly help with the version skew problems between xcube and plugins in CI builds. But for now, I think the slightly hacky solution described above should be enough.
Co-ordinated releases between xcube and xcube-cds (and other plugins) are complicated by the versioning: xcube-cds 0.x typically depends on xcube 0.x, but specifying xcube >= 0.x in the environment.yml breaks the build until the xcube 0.x conda-forge package becomes available -- meaning that xcube 0.x has to be both released and conda-packaged before xcube-cds 0.x can be tested.
The xcube-cds AppVeyor config already goes part of the way to resolving this problem: it actually installs xcube from the head of the master branch. However, before doing this, it also installs its own environment -- which includes the latest (and possibly as yet non-existent) xcube version -- then removes the conda-installed xcube. It would make more sense to do the following:
This ensures that all xcube-cds's transitive dependencies through xcube are satisfied but avoids trying to install xcube itself through conda.