--- title: "How to flush the Software repository" author: "Bioconductor Maintainer" date: "`r format(Sys.time(), '%B %d, %Y')`" vignette: > %\VignetteEngine{knitr::rmarkdown} %\VignetteIndexEntry{Flushing the software repository} %\VignetteEncoding{UTF-8} output: BiocStyle::html_document: number_sections: yes toc: true --- ```{css, echo=FALSE} .infobox { padding: 1em 1em 1em 1em; margin-bottom: 10px; border: 2px solid #008000; border-radius: 10px; background: #c7dbe4 5px center/3em no-repeat; color: #8B0000; } .center { text-align: center; } ``` # Flushing the Software Repository To remove stale software packages, we flush the software repository. This might be necessary when a build machine has transition from devel to release to try to remove odd version-numbered packages. It's important to reserve enough time and carefully check the results of the report so that it doesn't negatively impact users. The following are instructions to flush the software repository for the 3.14 builds as an example. ## Check the Day's Report Verify that the software report for the day looks good and that you have at least an hour before the next build. Look for packages, such as `GenomicFeatures`, that are dependencies for many packages and ensure that they are not failing. If they are failing, you should wait until they are passing before attempting to flush the software repository. # Comment Out Software Propagation in the Crontab As `biocpush`, comment out the crontab entry for bioc. This will prevent master from resyncing with staging on the build machine you're working on. ## Make a Backup Create a backup of the software packages in case a package that is a dependency for several packages, such as `GenomicFeatures`, that was passing later fails in the new build report after removing all packages. ::: {.infobox data-latex=""} As `biocpush` ::: ```sh cd ~biocpush/PACKAGES/3.14/ cp -r bioc bioc.backup ``` ## Remove All Packages Remove all packages from `~biocpush/PACKAGES/3.14/bioc` for source, windows, and mac binaries. Everything except for the `Archives` directories should be gone and the `PACKAGES` files should be replaced with blank files. ::: {.infobox data-latex=""} As `biocpush` ::: ```sh cd ~biocpush/PACKAGES/3.14/src/contrib rm -r PACKAGES* *.gz touch PACKAGES cd ~biocpush/PACKAGES/3.14/macosx/contrib/4.1 rm -r PACKAGES* *.tgz touch PACKAGES cd ~biocpush/PACKAGES/3.14/windows/contrib/4.1 rm -r PACKAGES* *.zip touch PACKAGES ``` ## Rerun the `postrun.sh` As `biocbuild` rerun `postrun.sh` so that we get a new report. Check that the new report has green leds and that important packages, such as `GenomicFeatures`, pass so that we don't have a lot of failures. If the report is not good, replace `bioc` with `bioc.backup` and rerun the `postrun.sh`. ## Manually Run `updateReposPkgs-bioc.sh` If the report is good, manually run `updateReposPkgs-bioc.sh` as `biocpush`. ## Uncomment Software Propagation in the Crontab When everything is finished, uncomment the bioc propagation line in the crontab.