Skip to content
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

Pkg3: Separated Test Environments #13

Open
ChrisRackauckas opened this issue Nov 5, 2016 · 6 comments
Open

Pkg3: Separated Test Environments #13

ChrisRackauckas opened this issue Nov 5, 2016 · 6 comments
Labels

Comments

@ChrisRackauckas
Copy link
Member

Will one be able to set a separate environment for testing? I don't think that the current REQUIRE setup is sufficient for the current organization-by-organizations setup. Sometimes there are large changes that are happening in tandem, and it would be helpful to have a designated way to say "this package needs to be on master for tests".

One case where this shows up is in organizations where there's a change to a main package which cases changes in all dependents. Another case where this shows up is where you create features which are dependent on a large change in some other package, like getting your package ready for DataFrames' nullable-array interface and wanting the proper CI. Currently this is done with little hacks around it (calling an extra script to checkout packages only when the test is run on CI), but I think making it standard and explicit would be beneficial for both developers and those who are reviewing packages (@tkelman).

@tkelman
Copy link

tkelman commented Nov 5, 2016

I think this is better handled by staged tags. Nothing should depend on "master," that's a moving target and bad for reproducibility. If you depend on an unreleased sha, then you're not testing against what your users will be installing once it gets released. So this is inherently a temporary thing, and would be better handled by directing the test version of the package to use a test registry to get its dependency version info. Then if the changes from the test registry make it through as is to the release registry, you're testing the same thing users will get.

@ChrisRackauckas
Copy link
Member Author

Nothing should depend on "master," that's a moving target and bad for reproducibility.

Yes, for tagged versions I agree. But that's irrelevant. But I was wondering if it can be standardized how/where branches are chosen for testing. When checking someone's master or dev branch, this stuff can be hidden: it's some script called in the .yml, or sprinkled into the master for the tests. It's up to the developer to pull this all out / comment it out when changes in downstream packages occur and when you eventually want to tag. But it also means that this information is scattered around the repositories if you're trying to find out how to get some development branch working. If it was just in the test/REQUIRE file how everything is being tested, it would be clear (and it would be clear that everything needs to be testing on releases for any tag).

@tkelman
Copy link

tkelman commented Nov 5, 2016

There should probably be a test-only manifest file, or a test-only section of the main manifest file. test/REQUIRE should be made more capable the same way as REQUIRE

@tkelman tkelman added the Pkg3 label Nov 6, 2016
@StefanKarpinski
Copy link
Sponsor Member

There could be test/{Config,Manifest}.toml files corresponding to the current test/REQUIRE.

@tkelman
Copy link

tkelman commented Nov 7, 2016

if we're using a richer format here, then no need for it to be a separate file really. there would be some advantage to recording test dependency info in the registry for a package as well, so all that information is available without having to download every version of every package to get it

@StefanKarpinski
Copy link
Sponsor Member

True, it can simply be a separate section. There's space for various kinds of targets but I'm unclear on the design there. @wildart had some thoughts on it so perhaps he can chime in here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants