-
Notifications
You must be signed in to change notification settings - Fork 68
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
Do not ignore uncommitted changes in repo #53
Comments
The behavior is inherited from Meson. There are very good reasons for this behavior, but I understand it can also be annoying in certain scenarios. I am not opposed to changing this behavior, but I think we need some pretty good reasons for it. The main issue I am seeing is that your git tag will not include the changes. This results in explicitly different build when using the sdist or the git tag/tarball. Have you considered this? Overall, I think we should have an option to switch this behavior, but making it the default behavior is something I feel more conflicted about. |
Yes. This is always the case, also today. And it will be the case for every single redistributor. As I said above, it's very common (and necessary) to apply patches that are packaging system specific. Those clearly cannot be part of a git tag. |
I gave some above. Also, did you look at the
Are there any beyond reproducibility/safety? I think we are in a very different situation here than both
|
I am aware, but this is only a problem when building sdists, and distributors do not need to build sdists, only wheels. But regardless, I agree that we should provide an option for this, I am just unsure that it should be the default.
That seems like an issue. AFAICT from my experience packaging things, that is not common, and undesirable.
Yes, I have some thoughts on it, but I don't think they are particularly relevant here. I can get into them if you want.
My main issue, as I pointed above, is that the actual release will include uncommitted changes. I can implement this if you want though. |
Only if that's needed (or you are doing it wrong by accident of course), which it is sometimes. Here's an example if you are interested: scipy/scipy#10247.
Is this true? If it is, I agree it's less urgent/painful. However, |
That example is pretty unproblematic because we are talking about the LICENSE file. If there are changes that are needed for the release, why aren't them being included in the git tag/tarball?
If you pass no target to pypa/build, it will build the wheel via sdist, this is the default behavior. If you select the sdist and/or wheel targets manually, it will build them standalone, so We do this in pypa/build because it highlights issues with the sdists build not being usable. pip's story is different, the goal is to have thing work as much as possible, so this behavior is probably undesirable there. |
Fixes #53 Signed-off-by: Filipe Laíns <[email protected]>
For the license file, the tl;dr is:
Another, more important change is: for a release we vendor libraries (
Exactly. So it may be okay to leave the current default unchanged, but if
Related question: why don't you raise an error and abort the build if uncommitted changes are detected? That seems much better if you want to go for maximum safety. Silently ignoring changes is a recipe for lots of lost time and frustration. |
Never mind that last question, forgot that that is the default now. |
Discussed:
|
Fixes #53 Signed-off-by: Filipe Laíns <[email protected]>
Fixes #53 Signed-off-by: Filipe Laíns <[email protected]>
Fixes #53 Signed-off-by: Filipe Laíns <[email protected]>
Fixes #53 Signed-off-by: Filipe Laíns <[email protected]>
Fixes #53 Signed-off-by: Filipe Laíns <[email protected]>
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is an hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document an explain.
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is an hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document an explain. While at it, modernize the associated test.
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is a hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document and explain. While at it, modernize the associated test.
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is a hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document and explain. While at it, modernize the associated test.
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is a hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document and explain. While at it, modernize the associated test.
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is a hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document and explain. While at it, modernize the associated test.
Including uncommitted changes in the sdist was implemented in mesonbuild#58 after the discussion in mesonbuild#53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is a hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document and explain. While at it, modernize the associated test.
Including uncommitted changes in the sdist was implemented in #58 after the discussion in #53. However, the current behavior for which uncommitted changes to files under version control are included but not other files, is a hard to justify surprising half measure. After careful analysis, it has been determined that none of the use cases for this feature is still valid. Removing it makes the implementation easier, and the behavior less surprising and easier to document and explain. While at it, modernize the associated test.
meson-python
should pick up uncommitted changes to files that are under version control. xref scipy/scipy#16187 with a lot of details. The main reasons are:pip install .
(or similar) each time.Reproducible releases should be made through a CI job anyway, so "the current behavior is more reproducible" doesn't really apply. And I don't think there is any other reason to keep the current behavior?
The text was updated successfully, but these errors were encountered: