-
Notifications
You must be signed in to change notification settings - Fork 100
Release Process
This guide describes how to create a new fpm release.
Important, always use a branch in your fork for the release preparation steps.
- Make sure to enable GitHub actions on your fork (visit the actions tab, required only once)
- Bump the version in
fpm.toml
and in the CLI output insrc/fpm_command_line.f90
- Create a new test release in your fork, the release tag is always prefixed, i.e. version
0.4.0
is tagged asv0.4.0
. - Wait for the workflow to publish the release artifacts to your test release tag
- Open a PR against the main repository:
- include a link to your test release tag
- add the release notes, usual sections are Changed, New Features, Fixed and link with the respective PRs
- wait for feedback and test the binaries from the test release tag
- Merge the PR and create the actual release tag in the main repository
The release at GitHub will automatically be announced to everybody watching the repository for releases.
After creating the release there is still work to be done.
Additionally to GitHub's release notification the release should be announced at the Fortran-lang discourse and via the @fortranlang Twitter account.
Add a new post with the release notes to the fpm documentation, by creating a new post in the news directory. The front matter of the post is formatted as
---
author: ...
date: YYYY-MM-DD
category: release
...
# Fpm version <version> released
The post is translatable like everything in the fpm documentation, make sure to ping the translators.
We package fpm on conda-forge.
To update the conda package fork the fpm-feedstock.
Updating the recipe (recipe/meta.yaml
) can be done in the GitHub web interface or by cloning the repository, make sure to create a branch in your fork for this purpose.
The following steps should be sufficient for updating
- Download the source tarball from the release tag
- Get its SHA256 checksum
- Update the version number and the checksum in the recipe and reset the build number to 0 if necessary.
- Rerender the feedstock (only if you are working locally)
- Create a new PR against the main feedstock
- Request the bot to rerender (only if you haven't rerendered locally)
- Wait for the maintainers to approve and merge
You can also wait for the regro-autotick-bot to perform this steps, but this introduces some latency (only hours not days).
To rerender locally use
mamba create -n build conda-build conda-smithy conda-forge-pinning -c conda-forge
conda activate build
conda smithy rerender
If you don't have mamba, you can also use conda for the command, but it is better to simply install mamba first.
We package fpm for Windows with the MSYS2 toolchain.
To update the MSYS2 package fork the MINGW-packages repository.
Updating the package file (mingw-w64-fpm/PKGBUILD
) can be done in the GitHub web interface or by cloning the repository, make sure to create a branch in your fork for this purpose.
The following steps should be sufficient for updating
- Download the source tarball from the release tag
- Get its SHA256 checksum
- Update the version number and the checksum in the recipe and reset the
pkgrel
number to 1 if necessary - Create a new PR against the main repository
- Wait for the maintainers to approve and merge
The MSYS2 maintainer will sign the package and upload it to the package mirror, this can take several hours.
We package fpm with spack.
To update the spack package fork the spack repository.
The package file can be found in var/spack/repos/builtin/packages/fpm/package.py
.
- Download the source tarball from the release tag
- Get its SHA256 checksum
- Add the new version the package file
- Create a new PR against the main repositories
develop
branch - Wait for the maintainers to approve and merge