esa / pagmo2

A C++ platform to perform parallel computations of optimisation tasks (global and local) via the asynchronous generalized island model.
https://esa.github.io/pagmo2/
GNU General Public License v3.0
838 stars 162 forks source link

Pagmo Installation Package #272

Open acxz opened 5 years ago

acxz commented 5 years ago

Are there plans to create Linux packages, such as a Ubuntu PPA or an ArchLinux package, for this project? Some projects i.e. DART have pagmo as an optional dependency, but it is hardly used since the installation procedure for pagmo is sort of roundabout compared to a simple sudo apt install pagmo.

darioizzo commented 5 years ago

We are maintaining the conda and pip packages. No plans to add packages for specific distros. We welcome anyone who wants to create/maintain them though.

I know there was an arch linux package for 1.1.7 https://aur.archlinux.org/packages/pagmo/ but it was never maintained.

Also homebrew has something: https://formulae.brew.sh/formula/pagmo which appears much more up to date.

bluescarni commented 5 years ago

@acxz of course we'd love to have pagmo available on as many distributions as possible, but as usual it's a question of manpower. We are already stretched out thin maintaining the conda/pip packages, which at least cover multiple distributions and operating systems.

I am not familiar with how Ubuntu is managed... Do you have any suggestion about whom we should poke to get pagmo packaged in Ubuntu? Are PPAs officially blessed or can anyone create one? Any good online resource about how to create Ubuntu packages?

If the process can be semi-automated, and if it does not break too often, we could give it a try.

acxz commented 5 years ago

Hey! Sorry for responding late, I wanted to make sure if i wanted to help out on this or not.

Ideally, the best thing would be to create a Debian package, this allows all Debian derivatives like Ubuntu, Kali Linux, etc. to have the package in their repos. However, it does take time for a request like that to be accepted since Debian focuses on stability and is kinda slow with new requests. The next best thing would be to create your own PPA for Ubuntu since Ubuntu is so widely used, it would probably be fine for 70% of the userbase. You also have control on how often you can update the package on the PPA making it an ideal choice for faster release cycles.

For other distributions/OSs I would recommend letting the community maintain them if you can't spare more people, but honestly as long as there is developer support for a Ubuntu PPA that should make many users happy, instead of compiling by source.

I know just recently a FreeBSD port of this project was created and is being maintained. Link

I am personally interested in the Archlinux package and will try to update it and keep it maintained.

What I would recommend from your team is to create a debian package repo for pagmo and keep it updated with your releases. After that, having a PPA for Ubuntu users to easily install the package would be great. And once that method works well and is tested, submit a Debian Package request (it might take a long time to be accepted, maybe even until the next Debian release, but it is still nice to submit the request as early as possible).

Here are a couple of sites I found that will help in creating a Debian Package and creating a subsequent PPA. These came up in a quick google search. For actual examples, maybe you can take a look at the dartsim project. Here is a repo that specifically deals with packaging.

Also it would be great if you guys can include a section for installing pagmo on various OSs on your installation page and add instructions (community maintainers can create PRs for updating the instructions). Such as the following:

Ubuntu -> Instructions ArchLinux (experimental) -> Instructions macOS -> Instructions Source Install -> Instructions etc.

bluescarni commented 5 years ago

Thanks for the pointers.

I agree that targetting debian should have the highest priority, but I'd rather go for a PPA due to the current fast pace of development of the project. I'll have a look at the guides you posted.

We know the install docs are a bit stale, we have plans to overhaul them (along with the tutorials and user guides - the API docs at least are in good health).

acxz commented 5 years ago

Sounds good!

Do you have any plans on changing the installation page? I couldn't find source code for the website, so I will just put my concerns here for now. While there might be not Ubuntu packages yet, there are up-to-date packages (release version 2.10) available for other OSs like FreeBSD, ArchLinux, and macOS. I think it would be great if we can at least add instructions for those packages to the website.

acxz commented 5 years ago

Found the website (didn't realize it was the same as the docs mb). I went ahead and edited the installation page on the website to include ArchLinux and FreeBSD. Here is the relevant PR: #279

acxz commented 5 years ago

I think this issue should remain open until a Ubuntu PPA package is created/maintained.

jschueller commented 2 years ago

we have some debian & rpm packages available in the openturns repo: https://build.opensuse.org/package/show/science:openturns/pagmo

acxz commented 2 years ago

Ah let's go, OBS coming in clutch. Thanks for this @jschueller I think we can close this issue with a PR that adds these methods of install on the following page: https://github.com/esa/pagmo2/blob/master/doc/sphinx/install.rst

Would you be interested in making an associated PR say adding a section for

Debian, Ubuntu, and Fedora?

jschueller commented 2 years ago

no, you can follow openturns installation instructions though.

bluescarni commented 2 years ago

@jschueller I am not familiar with OBS - is this like a repository of unofficial RPM/DEB packages? Unfortunately I am not familiar with Fedora/Ubuntu/SUSE either, so I am afraid I am not the right person to write the docs blurb (unless it's enough to point folks to the OBS website, in which case I can make a quick PR).

Thanks a lot for adding pagmo2 to OBS, and also thanks for all the other PRs you submitted in the past few months.

jschueller commented 2 years ago

see the openturns doc paragraphs for debian & rpm: https://openturns.github.io/openturns/latest/install.html#debian-ubuntu https://openturns.github.io/openturns/latest/install.html#rpm-based-distributions then instead of openturns, you can install pagmo-devel (rpm) or libpagmo-dev (debian)

bluescarni commented 2 years ago

@jschueller cheers, I'll adapt the text from those pages.

jschueller commented 2 years ago

it landed in debian also https://packages.debian.org/unstable/libs/libpagmo8