# GSoC intro -- fpm version constraint resolution

**URL:** https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272
**Category:** GSoC-2025
**Created:** [February 28, 2025, 8:19pm UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272 "2025-02-28T20:19:47Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![emmabastas](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/emmabastas/32/5736_2.png) [@emmabastas](https://fortran-lang.discourse.group/u/emmabastas)
#### Post date: [February 28, 2025, 8:19pm UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/1 "2025-02-28T20:19:47Z")

</div>

Heya friends, I’m interested in contributing to Fortran for GSoC 2025, specifically I’m interested in [version constraint resolution in fpm](https://github.com/fortran-lang/webpage/wiki/GSoC-2025-Project-ideas#version-constraint-resolution-fpm), but first a little about myself.

I’m a maths undergrad from Stockholm and I’m very interested in things relating to programming languages, their design and implementation, things like parsing, type inference (and type theory more broadly). At this point in my education I really like mathematics for it’s own sake, but initially I got into mathematics as a means to understand programming better; I wanted to understand certain language extensions to Haskell, or why the Rust borrow checker is the way it is, and noticed that not knowing the mathematical lingo was keeping me from doing so, so I pursued an undergrad :-))

I’ve contributed to [elm-format](https://github.com/avh4/elm-format) via GSoC once before in 2021, back when I was really into pure functional programming on the web. Other than that I do the occasional contribution, and work on some fun side-projects on my github and sourcehut.

I must admit, I’ve never programmed in Fortran up to this point, and I’m not really super interested in Fortran in itself, or the things people usually use Fortran for, so why am I writing here?!? Well, version constraint resolution seams really fun to me, and I would really like to learn how it is done, and all the troubles with transient dependencies, etc. I’ve had my fair share of dependency hell, error messages from `npm` that I didn’t understand, not to mention Haskells `cabal`… So with that experience (which unfortunately many new devs share with me) in mind it feels not only interesting, but also meaningful to contribute to a solid package-management story for Fortran.

So… That’s me. I would be interested in hearing what people think, especially the not-so-interested-in-fortran-itself-but-interested-in-tooling part. In the coming days I’ll try out some more Fortran, and hack a little on fpm, and then take it from there.

---

<div class="post-metadata">

### Author: ![milancurcic](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/milancurcic/32/2_2.png) [@milancurcic](https://fortran-lang.discourse.group/u/milancurcic)
#### Post date: [March 2, 2025, 5:52am UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/2 "2025-03-02T05:52:34Z")

</div>

Hi Emma, thanks for writing here! I just came to say that’s really impressive work on your SourceHut/GitHub.

---

<div class="post-metadata">

### Author: ![certik](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/certik/32/4_2.png) [@certik](https://fortran-lang.discourse.group/u/certik)
#### Post date: [March 2, 2025, 6:10am UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/3 "2025-03-02T06:10:26Z")

</div>

Awesome, @emmabastas please go ahead and submit a PR for the patch requirement.

---

<div class="post-metadata">

### Author: ![emmabastas](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/emmabastas/32/5736_2.png) [@emmabastas](https://fortran-lang.discourse.group/u/emmabastas)
#### Post date: [March 2, 2025, 2:32pm UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/4 "2025-03-02T14:32:40Z")

</div>

Thank you @milancurcic and @certik for the warm welcome. I’ve started working on this issue,

> <https://github.com/fortran-lang/fpm/issues/957#issuecomment-2692348919>
>
> \### Description
> 
> At present, if you invoke fpm on the same project multiple time…s in parallel, the compiler will trip over itself as it tries to compile the same files at the same time, \*\*and\*\* can leave the project in an inconsistent state such that subsequent invocations do not try to rebuild when they should. If possible, fpm should avoid trying to build a project multiple times in parallel.
> 
> \### Possible Solution
> 
> A quick and dirty solution would be to create a "lock file" on fpm startup and delete it on program shutdown. If the "lock file" is already present, just wait until it's removed. It's not flawless, but could be sufficient.
> 
> \### Additional Information
> 
> \_No response\_

but I’m holding of a little until I get some feedback, please let me know if I can just go ahead and work towards a pull request for that issue 🙂

---

<div class="post-metadata">

### Author: ![hkvzjal](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/hkvzjal/32/3055_2.png) [@hkvzjal](https://fortran-lang.discourse.group/u/hkvzjal)
#### Post date: [March 2, 2025, 2:55pm UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/5 "2025-03-02T14:55:06Z")

</div>

Hi @emmabastas welcome to the community and thanks for your interest in participating in this year’s GSoC!

If you might be interested, I would say this issue [Ability to pass any compiler flags directly to the compiler · Issue #1096 · fortran-lang/fpm · GitHub](https://github.com/fortran-lang/fpm/issues/1096) might have a higher priority in terms of impact (this evaluation is completely biased)… I would say: fpm having issues running in parallel might be tolerable, not being able of customazing the different compile options is really cumbersome for a package manager.

Also, I have a feeling that this issue might be a little bit closer to the project you are applying to.

---

<div class="post-metadata">

### Author: ![emmabastas](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/emmabastas/32/5736_2.png) [@emmabastas](https://fortran-lang.discourse.group/u/emmabastas)
#### Post date: [March 2, 2025, 4:39pm UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/6 "2025-03-02T16:39:57Z")

</div>

Thank you for the tip, I agree with you, and I think it’s pretty uncontroversial to say that the issue you linked has a bigger impact (and, as for many high-impact issues, it’s not as obvious what the right solution is). I’ll head over there and have a look.

---

<div class="post-metadata">

### Author: ![FedericoPerini](https://yyz2.discourse-cdn.com/free1/user_avatar/fortran-lang.discourse.group/federicoperini/32/1750_2.png) [@FedericoPerini](https://fortran-lang.discourse.group/u/FedericoPerini)
#### Post date: [March 3, 2025, 5:34pm UTC](https://fortran-lang.discourse.group/t/gsoc-intro-fpm-version-constraint-resolution/9272/7 "2025-03-03T17:34:20Z")

</div>

I join the other Fortran enthusiasts welcoming you to the forum @emmabastas!  
For the patch requirement, I believe you may want to consider a self-contained task i.e. choosing from any of the [open issues](https://github.com/fortran-lang/fpm/issues), there are quite a few that are relatively easy to address even if you are not familiar with fpm yet.

But of course I don’t want to stop you from aiming for the stars 🙂
