-
-
Notifications
You must be signed in to change notification settings - Fork 25
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
CFEP-05: conda-forge policy for providing testing/dev/rc builds on anaconda.org/conda-forge #3
Conversation
This is great, @ericdill. And I'd say you got to it very quickly. Regarding the point about tooling for how to guide packagers towards how to get on a testing label, I think we can do some kind of detection of extra version information. For instance, the VersionOrder class in conda (https://github.com/conda/conda/blob/master/conda/version.py#L20) splits things up, and if there's extra text, you end up with a tuple for a given split rather than just the number. I have used something like this recently to filter conda build's annoying "you should update!" messages: https://github.com/conda/conda-build/blob/a3f7e20e84555884aaa414b81188933f176cb4a0/conda_build/build.py#L495-L503 I think we could use something like that in conda-forge tools somehow to disallow packages with version tags containing strings, and to help set people on the right course of a "testing" package. |
@msarahan Oh, wow, that's a great solution! Should we consider making the default be uploading to the testing channel unless the |
Minor note: The testing term in the name confused me a bit as there is a need for testing packages that are built from a stable release, but with new features or in some different way. Maybe we could tweak the title to be more explicit in noting these are pre-releases. Unless of course I'm mistaken and this is trying to resolve both issues. In which case, I would say they are two different things that we should deal with in separate CFEPs. Already have given the testing point a fair bit of thought and am planning to submit a CFEP on that. See this hackpad. Would certainly appreciate your thoughts on it. |
Good idea. I'll update it
Nope. You're correct. I had not even thought of the testing case. Someone on the call had used the term "testing" and so I am just propagating it here, but this CFEP is really about pre-releases.
Awesome! I'll have a look as time permits |
Yup. I definitely recognize that those need to get sorted first. I gave that a read and used the formatting and guidelines from that to inform what sort of general structure/formatting/content cfep02 should have. I'm definitely putting cfep02 forward with the full understanding that it could need to be totally revamped depending on how #1 goes. |
Thanks @ericdill. Was more mentioning the latter point so as to avoid having you wasting cycles on things YTBD. As far as the content goes, it seems like that can develop contemporaneously AFAIAC. |
I do not think we should do this. Not all packages follow a particular versioning scheme and I think |
I'd like to see us auto-expire test/dev/rc labelled packages. Straw-man:
|
To be completely clear, I'd like to rule "debug" python builds out of scope from this CFEP. |
I like the idea of auto-expiring the test/dev/rc labeled packages. Any suggestions as to how this would work? Where do we store the upload times? |
(It's on my todo list for this week to circle back to CFEP02) |
@pelson Where do we track when the package was actually uploaded? I can get the repodata.json for a given label with the following url template: import requests
info = requests.get('https://conda.anaconda.org/conda-forge/label/rc/linux-64/repodata.json').json()
info['packages']['matplotlib-2.0.0b1-np111py34_2.tar.bz2'] produces
Anaconda server is clearly tracking this information somewhere since it shows the upload time for all packages that have been uploaded. Do we know if there is a programmatic way to access this information? |
See https://conda-forge.hackpad.com/Staged-Releases-DZNKZdgiMbF for more discussion and thoughts regarding testing packages. Also this comment: #3 (comment)
Having let this sit for far too long, I am in complete agreement with you @jjhelmus . It seems like it would be a tremendous amount of work to have some sort of mechanism in place to do any sort of reasonable version-scheme validation of the package you're trying to upload and also compare it to the versions that already exist on whatever label you're trying to stick onto your conda package. And after all that work, I do not forsee tangible benefits to such a system that one or two iterations with the package maintainers would not solve. |
@conda-forge/core could you all give this another read through as time permits? Sorry to let this sit idle for many moons. Also cc @tacaswell as you expressed interest in ironing out pre-releases |
I am not sure of the value of I am also not sure how I feel about the aging out policy, if dev versions are dropped re-thinking that might make sense as well. |
So PR ( #6 ) ended up being called CFEP-02, which we missed. Could we renumber this somehow? It looks like 05 should be ok. |
Also sorry if I overlooked this, but did we discuss having dev packages that require other dev packages? How would we like to handle those? |
What is the status on this? Does this need just a decision, or further discussion? A pandas rc release is coming up, so it would be great to be able to use conda-forge to build the release candidate packages. |
It needs some tidying as noted above to fix the conflicts. I guess there is still some discussion on the aging of dev releases. Maybe that could be saved for a CFEP on our retention policy, which we already need anyways. |
@ericdill since you opened this PR you can't approve it via the review. Are you on board with this? |
This is just a ping that the vote ends tomorrow. As a person in the community, I'm happy that this proposal is under consideration. |
This vote passes! |
|
||
<table> | ||
<tr><td> Title </td><td> Providing pre-release builds on the conda-forge anaconda channel </td> | ||
<tr><td> Status </td><td> Proposed </td></tr> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
<tr><td> Status </td><td> Proposed </td></tr> | |
<tr><td> Status </td><td> Accepted </td></tr> |
@ericdill if you could please merge my change to mark this as accepted I'll merge this. |
Let's fix in repo |
In #3 (comment), @CJ-Wright indicated that the CFEP would be updated to the naming convention |
Sorry my fault, I'll fix that in a follow up pr |
The original CFEP 5 had the labels as rc_package and dev_package. During the discussionof CFEP 5 (conda-forge#3), a discussion and survey ensued about whether the prerelease indicators should be before the package name or after (see conda-forge#3 (comment)). The results were that the prerelease indicators should be after, but the text of the CFEP was never updated. This commit updates the CFEP.
The original CFEP 5 had the labels as rc_package and dev_package. During the discussionof CFEP 5 (conda-forge#3), a discussion and survey ensued about whether the prerelease indicators should be before the package name or after: conda-forge#3 (comment) The results were that the prerelease indicators should be after, but the text of the CFEP was never updated. This commit updates the CFEP.
I opened #21 to update the CFEP 5 text. I'm not sure exactly the right procedure for doing this, so please let me know if something is amiss. |
Thoughts @conda-forge/core ?