The cliffs notes version:
* Resurrect the 'unison' (unversioned) package name.
* Run `fedpkg request-branch 2.13 --sl="rawhide:2020-06-01"`
* Run `fedpkg request-branch 2.17 --sl="rawhide:2020-06-01"`
* Switch to the 2.13 branch
* Copy the unison213 spec in there as unison.spec and drop the pieces that change the paths to include "213".
* Push the 2.13 branch to dist-git
* `fedpkg clone modules/unison` (this will have been created as part of request-branch above unless you pass --no-auto-module)
* Switch to the 2.13 branch (also auto-created)
* Create the modulemd file. This can be done easily with 'fedmod' (currently in updates-testing).
- `fedmod fetch-metadata` (takes a couple minutes the first time)
- `fedmod rpm2module unison213 > unison.yaml` (Filename must match the dist-git module name plus .yaml, similar to how RPMs have to match the specfile name)
- Fix the places where the generated file includes "213" (this step is unique to your situation; others reading this will not need to do this)
- Add `ref: 2.13` under "buildorder" in the YAML so it knows which branch to pull from.
- If you don't want to build the module on F28, change build and runtime requires from
platform: [ ]
(You could also use `platform: [f29]`, but this wouldn't automatically pick up F30 when F29 branches).
* Push this branch to dist-git and run `fedpkg module-build`
* Submit the module to Bodhi for F28 if desired. F29/Rawhide will appear automatically in the modular repos at the next Rawhide compose.
* Repeat for the 2.27 branch
Optional (recommended) step: submit a PR to https://pagure.io/releng/fedora-module-defaults
to have one of the streams made "default" so that `dnf install unison` will Just Work without having to know about modules. Other streams can be installed with `dnf install @unison:2.13