Project: Supporting registry in fpm
Add features to fpm to support the usage of a package registry. This will include specifying a registry other than the official one (to support using a local or custom registry), specifying that dependencies should be fetched from the registry instead of a git repository or a local folder, and some mechanism for resolving versions of dependencies to be used.
T1: Local registry for fpm
1 month (M1)
To improve the efficiency of using the registry, it will be desirable for fpm to keep a local cache of any dependencies fetched.
T2: Version constraint resolution
2 months (M2-M3)
Initially, only a minimal constraint resolution mechanism will be implemented within fpm. It is estimated that a simple version will take 1 month to implement. Additional compatibility checking will be implemented as time allows, with 1 month initially allotted.
T3: Feature and variant support
2 months (M4-M5)
As packages are used on more systems and with more complexity, it will be desirable to allow packages to have “optional” features which can be included or not, or with different implementations. A mechanism will be designed to allow a package to specify that it has such features, and allow packages that use it to indicate which optional features should be used. Approximately 2 months are allotted to developing this feature.
T4: Integrate system dependencies
1 month (M6)
Many packages will likely aim to provide interfaces to system libraries. It will be desirable for fpm to be able to fetch and link to such system libraries as needed to facilitate easy use of such packages. It is estimated that 1 month will be needed to implement this capability.
Deliverables
- D1: fpm supporting a local registry.
- Period: M2.
- Mean of verification: version of fpm keeping a local cache of any dependencies fetched available on GitHub.
- D2: fpm with some constraint resolution.
- Period: M4.
- Mean of verification: version of fpm available on GitHub.
- D3: fpm supporting features and variants.
- Period: M5.
- Mean of verification: version of fpm available on GitHub.
- D4: fpm supporting the integration of system dependencies.
- Period: M6.
- Mean of verification: version of fpm available on GitHub.
Compensation
The project is compensated at €60/hour over a period of 6 months up to 40 hours/week. Part time (less that 40 hours/week) is available in mutual agreement with the project administrators.
Requirements:
- Knowledge in Fortran
Please contact the project administrators, Sebastian @awvwgk and Ondrej @certik, for further information or to submit applications. For applications please include previous contributions to relevant Fortran-lang projects.
For more details on the STF project checkout Sovereign Tech Fund Project.