# GSoC idea modification suggestion re: version constraints

**URL:** <https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201>\
**Category:** Uncategorized\
**Created:** [April 11, 2022, 2:47am UTC](https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201 "2022-04-11T02:47:17Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![h-vetinari](https://avatars.discourse-cdn.com/v4/letter/h/ebca7d/32.png) [@h-vetinari](https://fortran-lang.discourse.group/u/h-vetinari)\
**Post date:** [April 11, 2022, 2:47am UTC](https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201/1 "2022-04-11T02:47:17Z")

</div>

Hey all

I just saw the [idea list](https://github.com/fortran-lang/fortran-lang.org/wiki/GSoC-2022-Project-ideas) for GSoC 2022, and “Version constraint resolution” for fpm stood out to me particularly, because I’m quite involved in the conda ecosystem\*\*.

In particular, the version resolution is often considered one of the weakest points of `conda` - the community-driven alternative [`mamba`](https://github.com/mamba-org/mamba) (based also on `libsolv`) improves the resolution speed, but the resolution _errors_ are still not considered amazing.

As such, I wanted to bring attention to what is (to my knowledge) currently considered best-in-class, namely [`pubgrub`](https://github.com/pubgrub-rs/pubgrub) (see also [announcement](https://nex3.medium.com/pubgrub-2fb6470504f) blog post); `mamba` is also [considering](https://github.com/mamba-org/mamba/issues/1111#issuecomment-895282630) to improve along those lines.

I could have edited the wiki directly, but seeing that I’m a complete outsider, I felt that a thread here was more appropriate. CC @everythingfunctional @awvwgk

PS. I think the discourse link should be added to the community [page](https://fortran-lang.org/community/) on [fortran-lang.org](http://fortran-lang.org).

\*\* Note that there is a (symbiotic) split between the Anaconda(-the-company)-run `conda` and its associated package channels, and the purely open-source side of things with [conda-forge](https://conda-forge.org/) providing many more packages than Anaconda (and in many cases being treated as the “upstream” to the Anaconda main channels), and `mamba` as an community-driven (and compatible) equivalent to `conda`.

---

<div class="post-metadata">

**Author:** ![awvwgk](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/awvwgk/32/154_2.png) [@awvwgk](https://fortran-lang.discourse.group/u/awvwgk)\
**Post date:** [April 11, 2022, 8:20am UTC](https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201/2 "2022-04-11T08:20:46Z")

</div>

I have seen a presentation on pubgrub at the PackagingCon ([Building a flexible dependency solver in Rust :: PackagingCon :: pretalx](https://pretalx.com/packagingcon-2021/talk/MXVTEA/)), looked really promising. There is also a recording:

[![](https://global.discourse-cdn.com/free1/uploads/fortran_lang/original/2X/6/6a19ffb176b7bf2f86e5bc993b602d604c0db788.jpeg "Building a flexible dependency solver in Rust - Matthieu Pizenberg & Jacob Finkelman | PackagingCon") ](https://www.youtube.com/watch?v=XyJpYFnl18U)

Creating Fortran bindings to pubgrub, which can be used in fpm would indeed be a useful project. Probably requires some Fortran/C and C/Rust interop knowledge to make it work reliably, but definitely something I would be interested in.

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [April 11, 2022, 1:22pm UTC](https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201/3 "2022-04-11T13:22:34Z")

</div>

Hi @h-vetinari , I’d definitely be interested in working with you on the project. There’s a bit of preliminary work that I think needs to be done, which would make this a (IMHO) full-time size project. Namely that fpm currently doesn’t really have _any_ version information about a package (or at least doesn’t treat it as such). It could make some educated guesses based on some conventions.

At any rate, I look forward to seeing a proposal from you, and would be happy to provide suggestions and guidance.

---

<div class="post-metadata">

**Author:** ![h-vetinari](https://avatars.discourse-cdn.com/v4/letter/h/ebca7d/32.png) [@h-vetinari](https://fortran-lang.discourse.group/u/h-vetinari)\
**Post date:** [April 11, 2022, 11:06pm UTC](https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201/4 "2022-04-11T23:06:45Z")

</div>

> [@everythingfunctional](#):
>
> Hi @h-vetinari , I’d definitely be interested in working with you on the project.

I think there’s been a bit of a misunderstanding 😅

I’m not proposing to do this GSoC project myself, I just wanted to enrich the references that are being used for this project idea. 🙃

---

<div class="post-metadata">

**Author:** ![everythingfunctional](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/everythingfunctional/32/176_2.png) [@everythingfunctional](https://fortran-lang.discourse.group/u/everythingfunctional)\
**Post date:** [April 11, 2022, 11:14pm UTC](https://fortran-lang.discourse.group/t/gsoc-idea-modification-suggestion-re-version-constraints/3201/5 "2022-04-11T23:14:11Z")

</div>

I see. My mistake. Thanks for the input anyway.
