-
Notifications
You must be signed in to change notification settings - Fork 253
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
Assert that build will fail if there is no configuration to build #179
Conversation
Hmmm, I'm quite neutral on adding this, but why not. I'm not sure
We are already printing warnings for that, though!
Why? That's sounds a bit unrelated. At any rate, |
d32151d
to
5c46338
Compare
You might need to EDIT: Nevermind, it's already there, apparently! |
Yes. You add this information but in stdout. ciuildwheel produces many lines of stdout. So if I do not know what I'm looking for I do not notice this line. I stop writing in python 2.7 some times ago an I forget about
Usage |
How is that different from stderr? It doesn't look different in the terminal, right? But it's true that error messages should go to
Yeah, sorry, I didn't see it was already at the top of the file to have compatibility between 2 and 3.
Yes, I agree, even though |
on linux you can pipie stdout and stderr to different files with From my experience all messages which which implies some action (now or future) should be written to stderr. Like warnings during C program compilation. The program may compile but author should fix it to be sure if everything is working ok. |
@YannickJadoul I think more about program termination. |
My reason for suggesting that was the followin: But that's just my intuition for keeping things clean and consistent. In the end, @joerick will have the last word on this, ofc. |
9d65112
to
5d6028d
Compare
Hmm, I'm not 100% sure that this should be an error. I'm guessing the reason for the PR is that setting CIBW_SKIP can be confusing, and it's easy to make a mistake in that config. But how does making this an error help with that? Also, there might be reasons a user would like no action. E.g., a user that wants to temporarily skip wheels on Windows, for example, might set Perhaps we could downgrade this to a warning instead? |
But in this case there is everything configured, whole pipeline pass and in some moment user ask why there is no wheel of some type. It is not good if user report you an error. Easiest option is to add next variable, but maybe. for |
@joerick, @Czaki, FWIW, I don't really mind either way. I can see this is a bit confusing from both perspectives. Either when At any rate, @joerick, even if you choose not to merge this, the commits where warnings are now written to the |
Perhaps we could fix the pain point another way - if there are identifiers in CIBW_BUILD that match nothing, we could raise an error as a misconfiguration? Would that help your use-case @Czaki ?
What do you mean by this @Czaki ?
Yes, I'd be open to this. |
Introduction of environment variable, or additional argument maybe easier than user guess.
looks ok. |
move debug information to stderr add tests which check if all information are correct
ae8937f
to
02b2fe4
Compare
Sorry, this wasn't really what I meant @Czaki ... This will raise an error on windows when run with Sorry for miscommunication! |
@YannickJadoul But this is the case which I think that job should fail. If you do not need windows wheel, then you do not need to run windows worker. |
@Czaki Not sure why you're tagging me; it's not me you need to convince. But I do think @joerick has a point. There might be shared configurations between Linux, Windows, and/or macOS, and |
move cibuildwheel_run output_dir default value to signature
@YannickJadoul I dotn know why I mistake you. |
I'm not sure I agree with that; that changes the meaning of |
@YannickJadoul but this is current implementation
So cibuildwheel build this which are matching CIBW_BUILD and do not match CIBW_SKIP. I do not expect case when upgrading of cibuildwheel can break configuration on all systems. But can expect case when it broke one of (manylinux1, macosx_10_6, maxosx_*_intel see. #194 (comment) ) and other case when cibuildwheel do not report error but wheel are not created. If someone try to debug some part of configuration, then can easy protect build from fail when it is intentional (eg. mark step as possible to fail without breaking whole pipeline). But when do simple maintaining then I think that would like to got back response when something stops working. |
That is exactly what I said:
And it feels weird to me if your PR does something that does not match this (by treating Also, changes of build identifiers is why we have a deprecation period, and give warnings before immediately breaking. |
This change to lost symmetry is this what I initially understand from @joerick request. I do not understand why to check it globally. Especially user can build wheel only on linux and macos and there will be some pattern on windows that match his configuration and he will got silent fail. |
@YannickJadoul I rethink and agree. I return to check per system and left to Your decision. From my point of view global chcek is useless. If You (especially @joerick) think that this check will create more problem than solve then it sholud be closed. The idea of this PR is to gave user information about problem as soon as possible. |
I've always thought of the environment that CIBW_ options form as a kind of settings file - options like CIBW_BUILD and CIBW_SKIP only really make sense to me if they're shared between platforms. That's my preferred way to configure cibuildwheel, and platforms like Azure Pipelines let you do that - have one environment that's shared. I believe Github actions will support the same. Maybe one day I'll get around to adding support to supply these options in What your PR does, which I think is good, is alert a user that they might be misconfiguring the tool. This is great, but as long as we're sure the config is an accident. I don't think an error is appropriate unless we're sure there's been a misconfiguration. Something like But no worries if you're not interested in implementing that! I might get around to it soon. |
but if someone set Maybe some verification should be done another way? Something like |
Closing because I don't agree with the design - apologies @Czaki ! |
Current revision of cibuildwheel gave no feedback if there is no configuration to build.
There changed platform selector for manylinux. There will be change of selector for macosx.
Currently you add code which will update
manulinux1
tomanylinux
but it is marked as deprecated so in some moment people managing ci environment should get error instead no wheels.I also change deprecation warning to be printed on
stderr
instead ofstdout
.