# EPEL-8 RELENG STEPS
The following is a reverse engineering of what is needed to set up and
run a new EPEL release. It goes from steps that we find and did to
make EPEL-8 in Fedora staging. We will review these notes to see what
is needed to redo and later to be done in production
High Level Steps
================
0. Create the Package keys for EPEL-8
1. Create the epel8-base tag
2. Add to epel8-base the external repos pointing to
http://kojipkgs.fedoraproject.org/repo/rhel/rhel8/koji/latest/$arch/RHEL-8-001/merged_repo/repodata/
3. Add epel8-build buildroot tag to epel8-base.
We are doing this because we are replicating how epel6 and epel7
were set up previously
4. Create an epel8 tag to hold the build rpms
5. Create a build target which use the epel8-build as buildroot and
epel8 as the dist tag
6. regenerate the repos
7. Create the groups for koji
a. stg-koji list-groups epel7-build
b. stg-koji add-group epel8-build $group
c. stg-koji add-group-pkg epel8-build $group $pkg [$pkg ...]
6. Create a dist-git tag for epel-8 and epel-modules-8
```
$ sigul new-key --key-admin mohanboddu --name-real "Fedora EPEL" --name-comment 8 --name-email epel@fedoraproject.org epel-8
$ stg-koji add-tag epel8-base
$ stg-koji add-external-repo -t epel8-base -p 20 rhel8-base http://infrastructure.fedoraproject.org/repo/rhel/rhel8/koji/latest/$arch/RHEL-8-001/
$ stg-koji add-tag epel8-build --arches 'aarch64 ppc64le s390x x86_64' --parent epel8-base
$ stg-koji add-tag epel8
$ stg-koji add-target epel8 epel8-build epel8
$ stg-koji add-tag-inheritance epel8-build epel8 --priority 2
$ stg-koji regen-repo epel8-build
$ stg-koji list-groups epel7-build
$ stg-koji add-group epel8-build <>
$ stg-koji add-group-pkg epel8-build <> <>
$ stg-koji add-pkg --owner=releng epel8 epel-release epel-rpm-macros
## Edit the epel-release and epel-rpm-macros and make el8 src.rpm
$ fedpkg-stage build --target epel8 --srpm epel-release-8-1.src.rpm
$ fedpkg-stage build --target epel8 --srpm epel-rpm-macros-8-1.src.rpm
$ fedpkg-stage build --target epel8 --srpm fedpkg-minimal-1.1.0-10.el8.rpm
$ stg-koji add-group-pkg epel8-build build epel-release epel-rpm-macros fedpkg-minimal
$ stg-koji regen-repo epel8-build
git checkout -b epel-release.git
$ stg-koji add-tag epel8-testing-candidate --parent epel8
$ stg-koji add-tag epel8-testing --parent epel8
$ stg-koji add-tag epel8-testing-pending --parent epel8-testing
$ stg-koji add-tag epel8-signing-pending --parent epel8-testing-pending
$ stg-koji add-tag epel8-pending --parent epel8
$ stg-koji add-tag epel8-override --parent epel8
$ stg-koji remove-tag-inheritance epel8-build epel8
$ stg-koji add-tag-inheritance epel8-build epel8-override --priority 2
$ stg-koji add-tag epel8-staging --parent epel8-build --arches 'aarch64 ppc64le s390x x86_64'
$ stg-koji add-target epel8-staging epel8-staging
$ stg-koji add-tag epel8-bootstrap --parent epel8-build --arches 'aarch64 ppc64le s390x x86_64'
$ stg-koji edit-target epel8 --dest-tag epel8-testing-candidate
$ stg-koji add-target epel8-candidate epel8-build epel8-testing-candidate
Now register with pdc an epel8 branch for packages. We can follow
https://docs.pagure.org/releng/sop_mass_branching.html
This will set up
<mboddu> https://pdc.stg.fedoraproject.org/rest_api/v1/product-versions/epel-8/
<mboddu> https://pdc.stg.fedoraproject.org/rest_api/v1/releases/epel-8/
"$sudo python scripts/pdc/create-product-release.py fedora <pdc-stg-token> epel 8 "
"$sudo python scripts/pdc/create-product-release.py fedora <pdc-stg-token> epel 8"
```
# Notes
```
#!/usr/bin/sh
if [ $# -lt 1 ]
then
echo "At least one package name should be provided"
else
TMPDIR=`mktemp -d /tmp/epel8.XXXXXX`
pushd "$TMPDIR"
for pkg in "$@"
do
fedpkg clone "$pkg"
pushd "$pkg"
fedpkg request-branch epel8
fedpkg request-branch epel8-playground
popd
done
rm -rfv "$TMPDIR"
fi
```
```
$ stg-koji edit-tag --rename epel8-playground-build epel8-staging
$ stg-koji remove-tag-inheritance epel8-playground-build epel8-build
$ stg-koji add-tag-inheritance epel8-playground-build epel8-base
$ stg-koji add-tag epel8-playground --parent epel8
$ stg-koji edit-target epel8-staging --rename epel8-playground-candidate --build-tag epel8-playground-build --dest-tag epel8-playground
```