-
-
Notifications
You must be signed in to change notification settings - Fork 275
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
Custom conda-forge distribution #90
Comments
@danielfrg I while back I used conda constructor to build a Miniconda like installer from home-build package that is self-hosting (the installer can be used to build itself). The recipes, scripts and such are in the acpd/acpd repository. Currently it only builds on a linux-64 platform but I have modification which seem to work on OS X that I will push after a bit more testing. |
Nice! Does this Mac support live in a branch somewhere? |
I'd be interested to move this recipes over to conda-forge if the organization is open to having it packaging Python, etc that is already in the default conda channel. There are a bunch of open issues and PR on this topic that I could link but itstead I'll add an item to tomorrows conference call, #89. |
Only on my machine, I will push it up to the main repo later today. |
I would be in favor of it. I know @pelson seems to be pretty interested. Though he has just been pretty busy keeping conda-forge running smoothly and automating things. @ocefpaf seems to be embracing the build the world philosophy. 😄
Please do. ...or I guess you already did. 😄 |
Cool, I'd be curious to play with this. |
@jjhelmus That is great work. I think that the core packages recipes and a custom distribution would be a great addition to conda-forge and let people get started easier with the conda-forge packages. In the future and maybe with some hosting conda-forge could also host a custom conda channel independent from anaconda.org. All the machinery is already in |
You're meaning another website with channels? Maybe, but I'm less clear what we are gaining from this. We benefit by having a close working relationship with Continuum. |
@danielfrg Thanks. I like the idea of having a second source for hosting conda packages, Continuum does a great job with Anaconda.org but having a second option is never a bad idea. I really want to get a windows miniconda clone working and conda constructor can create Windows installers. The blockage for me is getting Python 3.5 to compile on Windows. I now have a Windows machine just for building conda packages so hopefully I (or someone smarter than me!) can figure this one out. |
It has languished (through other priorities on conda-forge) but I already have a PR for python: conda-forge/staged-recipes#84 If you want to take that forwards 👍 |
The osx_build branch of the acpd repository has recipes for Python, etc that work on OS X, although these seems to be an issue with conda/conda-env that I need to look into. I still need to figure out the best manner to script the build on OS X before merging. I'll likely rebase that branch to condense some of the commits before merging. I'll be submitting a Python 3.5 PR to conda-forge later today. I think starting fresh is a better option than trying to work off conda-forge/staged-recipes#84 |
More food for thought on the hosting packages elsewhere ( http://wesmckinney.com/blog/the-problem-with-conda-forge-right-now/ ). One thing to consider along this line might be using something like Bintray as a secondary package host. Still not sure that this is the biggest or most pressing problem facing our community at present, but I suppose it is worth considering down the road. |
Completely agreed. It doesn't keep me awake at night like some of the other issues we need to deal with 💤 😉 . |
We have created a repo for working on the installer. There are a number of issues that we would love feedback and help working on over there. They include such things as simply naming the installer, versioning, packages to include, CI adjustments, and making releases. If you have time and interest, please take a look. cc @conda-forge/core |
On Fri, Apr 22, 2016 at 5:56 AM, Phil Elson ***@***.***> wrote:
Still not sure that this is the biggest or most pressing problem facing
our community at present
I can't say it's that pressing either, but, from Wes's Blog:
"""
Solving the community-governed binary packaging problem completely requires
the non-trivial task of creating an open source conda build artifact server
"""
I helped teach a workshop on conda a while back, and did get questions
about this: What happens if Anaconda.org goes away? or becomes a paid
service? or ????
conda itself is open source, but it would be really nice if there could be
an open source package repo.
How no-trivial is it? Is the "channel" API documented? is it complex?
It seems like it could be as "simple" as a request to get all the package
names hosted (or all that match a given requested name) then conda itself
determines which one it wants, and requests it.
Maybe there is a lot more logic on server side though -- anyone know?
It doesn't keep me awake at night like some of the other issues we need to
deal with [image: 💤] [image: 😉] .
But it may well be a show stopper for a number of folks for adoption of
conda....
…-CHB
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
Chris.Barker@noaa.gov
|
Have you seen issue ( conda-forge/conda-smithy#569 ), @ChrisBarker-NOAA? |
Hi all, recently put some work into making a |
Amazing @jakirkham! |
Just fyi - miniforge is the subject of a post on the anaconda mailing list (https://groups.google.com/a/continuum.io/d/msg/anaconda/nxcQ41YlYBA/DeAFD4mXAAAJ). I'm not entirely sure if it was suppose to be sent to the general community -- seems like something that could have been brought up directly with initial questions about the intended use of the project. |
Sorry, that was supposed to be an internal post. Yes, we are concerned about the intended use of the project. As I mentioned in that comment, I do definitely see positive use for a "miniconda++" that bootstraps conda-forge more quickly. I also see positive use for a pure miniconda clone - having conda-forge be able to bootstrap itself. Unfortunately, that positive use of the latter may detract from Anaconda's funding metrics. If possible, I would strongly encourage creation of the former: a bootstrap, dev tool, not a user-facing tool. |
Hi Mike, thanks for the feedback. In the interest of complete honesty, I had read the original post too. Have to say though, the response comes as bit of a surprise to me. Maybe it shouldn't have? I guess after the idea of having an installer has been discussed on Given there seems to be a grave misunderstanding, let me be totally clear. The intention of this installer is to be given to conda-forge for use on CIs. The main goal has always been CI speedup and reduced load on Anaconda for common assets (e.g. In addition to speeding up CIs, would note there is a fairly large amount of technical debt that has accumulated in conda-forge because we don't use our own installer (e.g. Ideally the installer would actually include more packages (e.g. As more of a general note, we are all very appreciative of the work that Anaconda Inc. does. It is a great asset to the scientific community. The installer's intent was only to speed up conda-forge's CIs and cutdown on redundant load to Anaconda Inc's servers, which seems like the least we can do. In this way would hope that it would be an asset for the community (Anaconda included). Am truly sorry for any misunderstandings its publication has caused. |
Thanks John. I'm very happy to hear about the intent, and I'm sorry I inferred too much from the recipe and its current lack of other packages. I don't know what the cost/benefit is of conda-forge using our download hosting vs. providing their own. I'll research that, and we should do whatever the best thing is mutually. I'm not sure how much github would welcome being a content provider for these installers, anyway, but that's up to them. We have wanted to provide a "deviconda" type installer for some time now. Perhaps we can work together on that - either by moving the noarch progress forward with constructor, or your idea to have conda convert be able to convert noarch packages to arch-specific packages, for constructor to then consume. Again, sorry, and thanks for clarifying. |
I (we at conda-forge) have no interest in detracting from Anaconda's funding metrics. Personally, I'd like to see conda-forge have the ability to stand on its own feet (should Anaconda disappear for some reason), but I'd hate for that to be at the cost of Anaconda disappearing (or even losing business). In these situations it is always worth reviewing what the metrics are, and whether they are measuring the right thing. Taking the worst case scenario from an Anaconda perspective, if conda-forge were to create a "miniforge" then I see no reason we couldn't feed the numbers back into the metric (since conda-forge would be shipping conda, a product of Anaconda Inc.). I'm just saying, let's figure out what we want from a conda-forge perspective, and make sure we have sensible conversations with the appropriate folks at Anaconda Inc. to make these goals happen without impacting downstream metrics/funding. Great work on producing miniforge @jakirkham. @msarahan, should conda-forge choose the most extreme option of producing a general purpose open conda installer (i.e. an open version of miniconda) who would be the best person to speak to to ensure that we can provide the appropriate data to avoid causing a metrics issue for Anaconda Inc.? |
Thanks @pelson. The best person to talk to is either me or @kalefranz or both. Kale leads our CDN efforts, so he's often one of the best people to talk with about collecting or aggregating metrics. Either of us could then forward you on to the internal team that crunches those numbers, which is in flux right now. |
OK. Let's make sure conda-forge doesn't organically produce a miniforge that is general purpose (user facing) without doing our due diligence with @kalefranz to see if we can try to get the numbers into Anaconda's metrics. I'm more than happy (to be but don't need) to be involved @jakirkham if you think miniforge is on the verge of being ready for prime time. However, if we want to just focus on improving our build times for now (using a "minibuildforge"), then we can delay that conversation a little (though we would still be impacting the number of downloads of Miniconda fairly substantially). Work for all? 👍 / 👎 |
Works for me. We should also try to contact github or whomever will be
hosting the installers to make sure that they're OK absorbing the bandwidth
demands, and also how we might be able to obtain metrics from them. Kale
can help us understand what our current usage is.
…On Thu, Jan 11, 2018 at 9:11 AM, Phil Elson ***@***.***> wrote:
OK. Let's make sure conda-forge doesn't organically produce a miniforge
that is general purpose (user facing) without doing our due diligence with
@kalefranz <https://github.com/kalefranz> to see if we can try to get the
numbers into Anaconda's metrics. I'm more than happy (to be but don't need)
to be involved @jakirkham <https://github.com/jakirkham> if you think
miniforge is on the verge of being ready for prime time. However, if we
want to just focus on improving our build times for now (using a
"minibuildforge"), then we can delay that conversation a little (though we
would still be impacting the number of downloads of Miniconda fairly
substantially).
Work for all? 👍 / 👎
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#90 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AACV-X-ynrSFNifmdweBGZSMjzLu16UEks5tJiSOgaJpZM4IHcDX>
.
|
Definitely need to engage with GitHub - as I recall, there is a bandwidth
limit on GitHub. We don't want to fall short just as things are ramping up.
We can also be fairly smart with caching using a service such as cloudflare
(as we do already for conda-forge.org).
…On 11 January 2018 at 15:22, Mike Sarahan ***@***.***> wrote:
Works for me. We should also try to contact github or whomever will be
hosting the installers to make sure that they're OK absorbing the bandwidth
demands, and also how we might be able to obtain metrics from them. Kale
can help us understand what our current usage is.
On Thu, Jan 11, 2018 at 9:11 AM, Phil Elson ***@***.***>
wrote:
> OK. Let's make sure conda-forge doesn't organically produce a miniforge
> that is general purpose (user facing) without doing our due diligence
with
> @kalefranz <https://github.com/kalefranz> to see if we can try to get
the
> numbers into Anaconda's metrics. I'm more than happy (to be but don't
need)
> to be involved @jakirkham <https://github.com/jakirkham> if you think
> miniforge is on the verge of being ready for prime time. However, if we
> want to just focus on improving our build times for now (using a
> "minibuildforge"), then we can delay that conversation a little (though
we
> would still be impacting the number of downloads of Miniconda fairly
> substantially).
>
> Work for all? 👍 / 👎
>
> —
> You are receiving this because you were mentioned.
> Reply to this email directly, view it on GitHub
> <https://github.com/conda-forge/conda-forge.github.io/
issues/90#issuecomment-356962833>,
> or mute the thread
> <https://github.com/notifications/unsubscribe-auth/AACV-X-
ynrSFNifmdweBGZSMjzLu16UEks5tJiSOgaJpZM4IHcDX>
> .
>
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#90 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAxepwvJYUeK8yLcqnBdOvnzQrRpSjZ-ks5tJidLgaJpZM4IHcDX>
.
|
Interesting. If you guys want to talk about miniforge being some sort of conda-forge installer hypothetically, I'm not against it. Just this was not my initial intent as already explained above. Would add that I don't plan on being a sole maintainer of any such installer. So this would require community engagement to be viable. Would be happy to move the code into a community org to facilitate this. As far as getting download count, GitHub provides an API for releases, which includes the download count. Note that this is a public API that can be used even without having any permissions on the repo or needing a GitHub token. Regarding GitHub being a provider of releases, GitHub's limitations are simply release size, which we are well within. That document explicitly states there is no bandwidth limit nor a total size limit over all releases. It wouldn't hurt to verify this as well, but it would only make sense to do once we have numbers to share with them. Maybe you were thinking of GitHub Pages, which does have a bandwidth limit. Though there would be no harm in us caching binaries with Cloudflare or periodically cleaning up old installers, these don't appear to be requirements. AFAIC the installer is ready for business. Wouldn't have mentioned it here if I didn't think so. 😉 While there is certainly room for improvement on the installer, there is nothing blocking its usage on my end. In fact we include tests in CI that run the installer and try a few basic Would really appreciate your engagement in these discussions Phil (if you are willing). 😄 |
Regarding a general-purpose miniforge, I think that it is becoming a requirement for binary compatibility purpose. At the moment, if As a package author, I would use a pure conda-forge environment should there be one available. |
Moving some discussion from #22 to a separate issue.
With the new conda constructor its really easy to make a custom conda distribution (for all the platforms: OS X, Linux and Windows) with custom packages from a conda channel. I just tested it with a file like this:
At the moment you still need http://repo.continuum.io/pkgs/free/ in the channels list to have python and conda but you can see the idea, if these packages are on the conda-forge channel it would be possible to create a distribution with only community created packages.
It would also be possible to make that custom distribution point to the conda-forge channel by default. Not as straight forward but possible, see conda/constructor#16. With this is possible to keep people updated faster as the channel is updated.
The text was updated successfully, but these errors were encountered: