EPEL/Tasks/NextTestingStableMove

= Summary ==

Move testing/ packages to proper repos

Completion Level
standing

Target Date
EPEL4: around the 15th each month EPEL5: around the 1th each month

Next steps

 * we should give maintainers a heads up some days before the move so they can say "no, please don't move foo due to bug bar"


 * bodhi (which we can use once we use koji) should make this a lot easier in the long term

= Details =


 * The plan is to do a push to from testing to stable every four weeks; around the 15th each month is the goal for EPEL4, around the 1th each month the goal for EPEL5; in fact we most of the time actually realize the move on the Monday following those dates, to make sure that contributors and users have a chance to prepare for the move on working and weekend days

How to actually do the move

 * Create the file /etc/yum.repos.d/epel.repo with the following contents:

[centos5] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5/os/$basearch/ name=centos5 enabled=0

[centos5-source] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/5/os/SRPMS/ name=centos5-source enabled=0

[epel5] baseurl=http://download.fedora.redhat.com/pub/epel/5/$basearch/ name=epel5 enabled=0

[epel5-source] baseurl=http://download.fedora.redhat.com/pub/epel/5/SRPMS/ name=epel5-source enabled=0

[epel5-testing] baseurl=http://download.fedora.redhat.com/pub/epel/testing/5/$basearch/ name=epel5-testing enabled=0

[epel5-testing-source] baseurl=http://download.fedora.redhat.com/pub/epel/testing/5/SRPMS/ name=epel5-testing enabled=0

[centos4] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/4/os/$basearch/ name=centos4 enabled=0

[centos4-source] baseurl=http://ftp-stud.fht-esslingen.de/pub/Mirrors/centos/4/os/SRPMS/ name=centos4-source enabled=0

[epel4] baseurl=http://download.fedora.redhat.com/pub/epel/4/$basearch/ name=epel4 enabled=0

[epel4-source] baseurl=http://download.fedora.redhat.com/pub/epel/4/$basearch/ name=epel4-source enabled=0

[epel4-testing] baseurl=http://download.fedora.redhat.com/pub/epel/testing/4/$basearch/ name=epel4-testing enabled=0

[epel4-testing-source] baseurl=http://download.fedora.redhat.com/pub/epel/testing/4/SRPMS/ name=epel4-testing-source enabled=0


 * export something like

export EPELVER=5


 * run repoclosure:

setarch i686 repoclosure -n -r centos${EPELVER} -r epel${EPELVER} -r epel${EPELVER}-testing > brokendeps-${EPELVER}

Hint: if you use a x86_64 machine remove /etc/rpm/platform


 * Add a "exclude=" line to the epel?-testing section and add entries for every package that has a broken dep behind it (FIXME: add entry for packages that hit the repo not that long ago as well?)


 * run repoclosure again and add the packages with missing deps to the exclude line until all deps from epel?-testing are satisfied


 * run

setarch i686 repoquery -qa --qf '%{SOURCERPM}' --repoid=epel${EPELVER}-testing | sort | uniq > tobemoved-srpms-${EPELVER} setarch i686 repoquery -qa --qf '%{SOURCERPM}' --repoid=epel${EPELVER}-testing | sort | uniq > tobemoved-srpms-rpms-${EPELVER} setarch i686 repoquery -qa --repoid=epel${EPELVER}-testing | sort > tobemoved-rpms-${EPELVER}


 * sanity check:


 * s/exclude=/includepkgs=/ in the epel?-testing section


 * run

setarch i686 repoquery -qa --qf '%{SOURCERPM}' --repoid=epel${EPELVER}-testing | sort | uniq > all-srpms-broken-${EPELVER} grep --file all-srpms-broken-${EPELVER} tobemoved-srpms-rpms-${EPELVER}

grep shouldn't find anything. If it does check add a exclude for those packages as well and start again


 * comment out the includepkgs= in the repo file


 * run

echo $(repoquery -qa --qf '%{NAME}' --archlist=src --repoid=epel${EPELVER}-testing-source $(cat tobemoved-srpms-${EPELVER} | sed 's|.src.rpm||' ) | sort ) > tobemoved-packages-${EPELVER}

You can pass this list to the  command later when you're actually doing the next push


 * mail the list, wait a few days, do the push