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

resolvelib 0.6.0 and pip vendoring #69

Closed
uranusjr opened this issue Jan 15, 2021 · 4 comments
Closed

resolvelib 0.6.0 and pip vendoring #69

uranusjr opened this issue Jan 15, 2021 · 4 comments

Comments

@uranusjr
Copy link
Member

Not sure where best to post this. There are mainly three things I want to do:

All of these requirement changes to the provider interface, and I would like to do them in one bump from 0.5.x to 0.6. But I also want to introduce each of them to pip separately to keep the PRs clean and real users more easily to test. How would be best to approach this? Should I vendor resolvelib from Git commits, or create some versions (e.g. 0.6.0a1) for each breaking change?

@webknjaz
Copy link

webknjaz commented Jan 15, 2021

All of these requirement changes to the provider interface, and I would like to do them in one bump from 0.5.x to 0.6. But I also want to introduce each of them to pip separately to keep the PRs clean and real users more easily to test. How would be best to approach this?

Have you considered continuously testing against major downstream users? I like how PyCA implemented this for cryptography — they essentially allow projects using it to drop-in test scripts into a designated location in their repo that they then run in their CI: https://github.com/pyca/cryptography/tree/master/.github/downstream.d.

You could have one for pip — the test script would check out the pip repo, vendor the current resolvelib there, and run some of their related tests. Maybe not in PRs but on cron, if there's a need to save resources.

Should I vendor resolvelib from Git commits, or create some versions (e.g. 0.6.0a1) for each breaking change?

This also raises another question: is resolvelib planning to follow some sort of a known versioning scheme (like SemVer — yeah, I know that it requires 1.x.x so before that, does 0.x mean major)? Any guarantees? We're starting to use it in Ansible and so it'd be great to understand how to cap the dist requirement on our side to keep things smooth and avoid running into breaking changes unexpectedly (because we don't intend to vendor resolvelib atm).

@pfmoore
Copy link
Collaborator

pfmoore commented Jan 15, 2021

Should I vendor resolvelib from Git commits, or create some versions (e.g. 0.6.0a1) for each breaking change?

I'm not explicitly against vendoring from specific commits, but versions might be more understandable. Having said that, we might need a discussion on the pip tracker about the vendoring side. I'm not sure we want to release a pip version with a copy of resolvelib vendored from a git commit, and with my RM hat on, I'd like to maintain the principle that we can release from master at any time.

I sort of feel that wanting to have all 3 features in the bump from 0.5 to 0.6 is making more problems than it solves here. What's the justification? Why not just say 0.6 adds the first feature, 0.7 adds the second, and 0.8 adds the third? Versions are cheap, and it allows for a 0.6.1 bugfix if needed...

@pradyunsg
Copy link
Contributor

Imma say this is resolved now -- we're doing it one at a time, since that's what we'll have developer availability for.

If that changes, I think keeping changes separate is a good idea, to avoid making the pip-side changes too complex.

hswong3i added a commit to alvistack/ansible-ansible that referenced this issue Nov 9, 2021
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib >= 0.8.0` (which
released on 2021-10-08) should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue Nov 11, 2021
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib >= 0.8.0` (which
released on 2021-10-08) should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue Nov 11, 2021
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib >= 0.8.1` (which
0.8.0 released on 2021-10-08) should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
@webknjaz webknjaz mentioned this issue Nov 11, 2021
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue Nov 13, 2021
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.6.0,<1.0.0`
with corresponding `find_matches()` interface change should now be good
enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
@hswong3i
Copy link

hswong3i added a commit to alvistack/ansible-ansible that referenced this issue Nov 17, 2021
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue Nov 17, 2021
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 17, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 17, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 17, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 18, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 18, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 18, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 18, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
hswong3i added a commit to alvistack/ansible-ansible that referenced this issue May 18, 2022
Since 2021-09-27 `resolvelib` author comment with "issue resolved now"
(see sarugaku/resolvelib#69 (comment)).

Replace `resolvelib` version upper cap with `resolvelib>=0.8.1,<0.9.0`
with corresponding `find_matches()` and `get_preference()` interface
change should now be good enough.

Signed-off-by: Wong Hoi Sing Edison <hswong3i@pantarei-design.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants