-
Notifications
You must be signed in to change notification settings - Fork 425
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
--skip-existing flag not working on linux, version 1.21.3 #1086
Comments
Interesting. We test that functionality explicitly here: https://github.com/conda/conda-build/blob/1.21.x/tests/test_build_recipes.py#L276-L286 Any info you can provide on why that test isn't catching misbehavior you're seeing would be great. If possible, could you try to run that unit test from the conda-build source? To be clear, the S3 bucket works OK on OS X, but not Linux? Or is the S3 bucket only used on one of the platforms? |
Ah. I did a bit more careful digging. It seems like its also not working on OS X, I just had a local copy cached when I tested that. My guess it has something to do with the S3 channel not being searched correctly when using the --skip-existing flag. As mentioned, packages are resolving correctly in the s3 channel when doing a 'conda search package_name' however. So overall what ive seen:
In the test case you pointed it out, it appears to only test against scenario 1, so that is at least consistent. |
OK, need more info. The code in conda-build that does this is: https://github.com/conda/conda-build/blob/master/conda_build/main_build.py#L246-L251 these build the index with conda's code here: nothing looks obviously wrong to me here. I think we need to look at your S3 channel, and make sure that conda is recognizing it properly. I know you said that search works - that's a good start. What's the output of
The keys of index are package names. Some of them may have prefixes like local::packagename. The bug here (if it isn't in your S3 channel) is probably in a prefix that conda-build does not handle correctly. Please search through these keys for your package name. Something like this might work:
In the meantime, I will add a test that uploads a package to an anaconda.org channel, and uses skip-existing after deleting that built package locally. |
Thanks for looking into this.
Here are the keys in the index for an example package 'pika' (when I also have it built locally):
|
Thanks. Yes, it does look like the s3://... prefix is not going to work with the code as is. I need to think about how to generalize this, but will do so soon. |
This will be fixed in conda-build 1.21.5, to be released probably tomorrow. |
1.21.5 has been tagged, and should be available as a conda install soon. Please let me know if you have further trouble. Closing this issue for now. |
Thanks this is working now |
Excellent, thanks for the feedback, and thanks for raising this issue. |
Hi there, thank you for your contribution! This issue has been automatically locked because it has not had recent activity after being closed. Please open a new issue if needed. Thanks! |
I am only seeing this issue on Linux (not OS X) and it just appeared when upgrading to conda build version 1.21 (1.21.3 specifically). Additionally, I am using a S3 bucket as my channel. 'conda search package_name' correctly locates the package, but if I issue a 'conda build --skip-existing path/to/recipe' it always rebuilds. The recipe version is the same as the existing version.
I will work on trying to get a more concrete example using a public package.
The text was updated successfully, but these errors were encountered: