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

tracker: forcing rebuild of wheels #316

Closed
5 tasks done
shubhbapna opened this issue Aug 12, 2024 · 4 comments
Closed
5 tasks done

tracker: forcing rebuild of wheels #316

shubhbapna opened this issue Aug 12, 2024 · 4 comments
Assignees
Labels
enhancement New feature or request tracker

Comments

@shubhbapna
Copy link
Collaborator

shubhbapna commented Aug 12, 2024

When running build-sequence with the -–skip-existing flag we need a way to force builds of wheels whose version numbers haven't changed. We might need to do this for various reasons: changes in sdist, env variables, plugins, container image changes etc. The idea is to introduce a changelog per package per version that will bump the build tag when publishing to a pypi index.

TODO:

Good to haves:

  • A linter that scans plugin and env file to notify the user of any changes so that they can update the changelog
@shubhbapna
Copy link
Collaborator Author

shubhbapna commented Aug 22, 2024

@dhellmann there might also be another potential issue:

Say bootstrap has resolved A, B and C and say there was only a version bump for B. Also B is a direct dependency of C. If we run build-sequence with --skip-existing then only B would be built. Shouldn't in this case C also be built? We aren't currently doing this right? Do we have to worry about this?

@dhellmann
Copy link
Member

@dhellmann there might also be another potential issue:

Say bootstrap has resolved A, B and C and say there was only a version bump for B. Also B is a direct dependency of C. If we run build-sequence with --skip-existing then only B would be built. Shouldn't in this case C also be built? We aren't currently doing this right? Do we have to worry about this?

Yes, that's a good point. We don't want an update to some low-level package to trigger a complete rebuild, but we also want to ensure we have a way to force that rebuild when it's needed.

If we know that changing B means we have to build C, we could add a changelog entry to C with something like "updated B to version X" to cause that, right?

@shubhbapna
Copy link
Collaborator Author

Yes, that's a good point. We don't want an update to some low-level package to trigger a complete rebuild, but we also want to ensure we have a way to force that rebuild when it's needed.
If we know that changing B means we have to build C, we could add a changelog entry to C with something like "updated B to version X" to cause that, right?

Summarizing our discussion:

It is difficult to identify whether a version bump is significant enough to cause a rebuild of any package that depends on it. So we will leave it to the user to update the changelog. There might be times where we need a to trigger a build of every package (eg: maybe when setuptools get upgraded to some version with a lot of changes). In this case we need a way for the user to tell fromager to rebuild everything with a new build tag. Adding a global changelog will be helpful for this

@shubhbapna
Copy link
Collaborator Author

I think we got everything that we needed, marking it closed

@shubhbapna shubhbapna mentioned this issue Aug 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request tracker
Projects
None yet
Development

No branches or pull requests

2 participants