Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Request for conda forge recipe #161

Closed
faysou opened this issue Jan 13, 2020 · 14 comments
Closed

Request for conda forge recipe #161

faysou opened this issue Jan 13, 2020 · 14 comments

Comments

@faysou
Copy link

faysou commented Jan 13, 2020

It would be practical if this library could be installed via conda using a conda-forge recipe.

This way it would make it easy for people using xeus-cling to use it.

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 14, 2020

Hi faysou,

thanks for the suggestion.

I don't have any experience with Conda. Would you be interested in creating a pull request, adding whatever is required?

@faysou
Copy link
Author

faysou commented Jan 14, 2020

Hi Dobiasd,

I don't have experience with conda forge as well, and I don't have a high level in c++, I'm just a casual user who uses c++ sometimes for prototypes.

There are some guidelines here regarding conda-forge.
https://conda-forge.org/#add_recipe

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 14, 2020

OK, thanks.

One question to help me better understand your motivation: Did you already get FunctionalPlus running with one of the other ways to install?

@faysou
Copy link
Author

faysou commented Jan 14, 2020

Yes I did. I can also get it working in xeus cling by including the path to it, as your library is header only. I just thought providing the library in conda forge would make it even easier for people, and contribute to more people using this library.

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 14, 2020

Thanks, understood.

Yes, supporting as many package managers as possible might be convenient for potential users. However, it also adds complexity for future releases and additional overhead for the maintainers of the library, e.g., me. 😉

If I remember correctly, we were supporting one additional package manager in the past, but later removed it, because of all the overhead (manual work for releases) involved. However, I currently can not remember its name. Maybe it even wasn't in FunctionalPlus but in frugally-deep.

Nevertheless, if the demand for conda is not very high, my default would be to not implement it. Do you know how common conda is for installing non-Python (especially C++) libraries?

I see nlohmann/json (also a header-only-C++ library) supports conda, but in its repo I can't find what they did to achieve this. Maybe it's all being done externally?

@faysou
Copy link
Author

faysou commented Jan 14, 2020

Xtensor uses conda for distribution, as well as other projects from quantstack.
https://github.com/xtensor-stack/xtensor-blas
https://quantstack.net

This allows an easy installation in xeus cling.

@faysou
Copy link
Author

faysou commented Jan 15, 2020

Here is an example of where the conda forge repos are.
https://github.com/conda-forge/xtensor-blas-feedstock

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 16, 2020

OK, it seems there is no C++ knowledge needed to create a conda recipe.

Also, one does not even need to adjust the actual library repository, everything is done externally, i.e., in conda-forge.

The two examples of C++-header-only libraries look very similar:

conda-forge/staged-recipes is "a place to submit conda recipes before they become fully fledged conda-forge feedstocks".

It also seems well documented.

I'll give it a try.

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 16, 2020

OK, done: conda-forge/staged-recipes#10609

hINv4Qn

But let's see what happens. 😉

@faysou
Copy link
Author

faysou commented Jan 16, 2020

Nice, good luck !

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 18, 2020

My PR was just merged. 🙂

I don't know how the process will continue from now, but I guess at some point

https://github.com/conda-forge/FunctionalPlus-feedstock

will be available and

conda config --add channels conda-forge
conda install FunctionalPlus

should work.

Right now this is not (yet) the case.

@faysou
Copy link
Author

faysou commented Jan 18, 2020

That's good. I think the use of xeus cling will increase over time, and potentially of your library too.

I like functional programming, I used to work a lot in Mathematica and I almost never wrote loops in it.

@pthom
Copy link
Contributor

pthom commented Jan 18, 2020

This is very good news! This reminds me that I had written an article about Cling and I had used FunctionalPlus in the demonstrations.
You can see the article here: REPL (Read-Eval-Print-Loop) in C++: hands-on session

(And you can jump directly to a xeus notebook that uses fplus here: https://mybinder.org/v2/gh/pthom/Cling_Repl_Demo/master?filepath=notebooks%2F2_Functional_REPL.ipynb )

@Dobiasd
Copy link
Owner

Dobiasd commented Jan 19, 2020

conda install FunctionalPlus is working. 🎉

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants