{"id":19624015,"url":"https://github.com/bioconductor/bioconductor_salt","last_synced_at":"2025-10-14T10:40:05.913Z","repository":{"id":37793587,"uuid":"420119160","full_name":"Bioconductor/bioconductor_salt","owner":"Bioconductor","description":"Salt to configure Linux and Mac (x86_64, arm64) for the BBS","archived":false,"fork":false,"pushed_at":"2025-09-12T16:20:28.000Z","size":277,"stargazers_count":1,"open_issues_count":26,"forks_count":3,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-14T10:40:02.430Z","etag":null,"topics":["bioconductor","saltstack","vagrant"],"latest_commit_sha":null,"homepage":"","language":"SaltStack","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Bioconductor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2021-10-22T13:57:30.000Z","updated_at":"2025-09-12T16:20:32.000Z","dependencies_parsed_at":"2024-08-07T02:28:45.867Z","dependency_job_id":"a05d8660-4c96-4c13-aa74-f74dcdab4b9d","html_url":"https://github.com/Bioconductor/bioconductor_salt","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Bioconductor/bioconductor_salt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_salt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_salt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_salt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_salt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Bioconductor","download_url":"https://codeload.github.com/Bioconductor/bioconductor_salt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Bioconductor%2Fbioconductor_salt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279018785,"owners_count":26086452,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bioconductor","saltstack","vagrant"],"created_at":"2024-11-11T11:36:32.266Z","updated_at":"2025-10-14T10:40:05.894Z","avatar_url":"https://github.com/Bioconductor.png","language":"SaltStack","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Salt to Configure a Linux or Mac for the BBS\n\nThis repository contains the SaltStack formulas to configure an Ubuntu or a\nMacOS machine for the [Bioconductor Build System](https://github.com/Bioconductor/BBS).\n\nIt also builds [BBS-like\ncontainers](https://github.com/Bioconductor/bioconductor_salt/pkgs/container/bioconductor_salt).\n\n### Simulating the BBS Ubuntu environment in a container\n\nWe are building and publishing containers under the name `ghcr.io/bioconductor/bioconductor_salt`,\nwhich can be used to mimic a BBS-like linux environment, in hopes of easing reproducibility and interactive debugging\nof the BBS environment for package developers.\n\nWe currently offer containers for both `release` and `devel` Bioconductor versions with Ubuntu `noble` (`24.04`).\nContainer tags with various version pinnings can be used to acquire a particular environment, following the schema\n`[ubuntu_version]-bioc-[bioc_version]-r-[r_version]` eg `noble-bioc-3.22-r-4.5.0` or `24.04-bioc-3.22-r-4.5.0, where\neach level is optional. For example, one could use tag `noble-bioc-3.22` or `24.04-bioc-3.22` to get the latest 3.22,\nregardless of R version, or even simply `noble`/`24.04` to get the latest release container.\n`devel-` will prefix all devel container tags, followed by the same schema described above.\n\nAll containers will use the R command if no command is specified. Below are some examples for running the container.\n```\n# Interactive R session\ndocker run -it ghcr.io/bioconductor/bioconductor_salt:noble\n# is equivalent to\ndocker run -it ghcr.io/bioconductor/bioconductor_salt:noble R\n\n# Bash shell\ndocker run -it ghcr.io/bioconductor/bioconductor_salt:noble bash\n\n# Rscript\ndocker run -it ghcr.io/bioconductor/bioconductor_salt:noble \"Rscript --version\"\n```\n\nWe are also experimentally building BBS-like containers based on Nvidia\ncontainers, which can be run as\n\n```\ndocker run --gpus all -it ghcr.io/bioconductor/bioconductor_salt:devel-nvidia-noble R\n```\n\n#### Note for containers with an Nvidia base\n\nThis software contains source code provided by NVIDIA Corporation.\n\nThese containers are subject to\nhttps://developer.download.nvidia.com/licenses/NVIDIA_Deep_Learning_Container_License.pdf.\n\n\n### Configuring for Ubuntu 24.04\n\n1. On the build machine, install the Salt minion and clone this repository:\n    ```\n    sudo apt install salt-minion\n    ```\nNote: If the minion is running as a daemon, you'll want to stop it as it will\npoll for the master periodically.\n\n2. Copy `saltstack/minion.d/minion.conf` to `/etc/salt/minion`.\n\n3. Copy the files in `/saltstack` to `/srv`.\n\n4. Copy ssh keys to `/srv/salt/common/files`.\n\n5. Comment add or remove any dependencies not needed for your system in\n`/opt/salt/top.sls`.\n\n6. Run salt, with debug or testing (`test=True`) if desired:\n\n    ```\n    sudo salt-call --local state.highstate -l debug\n    ```\n\n7. Configure the `BBS` configuration files.\n\n8. Uncomment the desired builds in the crontab as `biocbuild`.\n\n### Configuring a Mac\n\n1. On the build machine, install Saltstack by downloading the file corresponding\nto your OS at\nhttps://docs.saltproject.io/salt/install-guide/en/latest/topics/install-by-operating-system/macos.html.\n\nFor example\n\n    ```\n    curl -LO https://repo.saltproject.io/salt/py3/macos/latest/salt-3007.0-py3-x86_64.pkg\n    sudo installer -verbose -pkg salt-3007.0-py3-x86_64.pkg -target /\n    ```\n\nLog out and log back in then check if `salt-call` is available with `which salt-call`.\n\n2. Copy `saltstack/minion.d/mac.minion.conf` to `/etc/salt/minion`.\n\n3. Copy `saltstack` to `/opt`.\n\n4. Copy ssh keys to `/opt/saltstack/salt/common/files`.\n\n5. Comment add or remove any dependencies not needed for your system\nin `/opt/saltstack/salt/top.sls`.\n\n6. If creating user `biocbuild`, set the password in an environment\nvariable:\n\n    export BIOCBUILD_PASSWORD=myNewPass1\n\n7. Run salt, with debug or testing (`test=True`) if desired:\n\n    ```\n    sudo salt-call --local state.highstate -l debug\n    ```\n\n8. Configure the BBS configuration files.\n\n9. Uncomment the desired builds in the crontab as `biocbuild`.\n\n## Updating R\n\nNote: If macFuse is needed and it will be installed on the machine for the\nfirst time, you may need to enable kernel support for third party extensions.\nSee https://github.com/macfuse/macfuse/wiki/Getting-Started.\n\nYou may also run individual states, such as to update R. After configuring the\n`custom` file for your machine, run the `rlang` states for your machine.\n\nReplace the url for `r_download` with the new version of R in\n`saltstack/pillar/custom/init.sls`:\n\n    {% set branch = 'dev' %} {# Use 'release' or 'devel' #}\n    {% set version = '3.15' %}\n    {% set environment = 'dev' %} {# Use 'dev' or 'prod' #}\n    {% set r_download = 'https://stat.ethz.ch/R/daily/R-devel_2021-11-16.tar.gz' %}\n    {% set r_version = 'R-4.1.2' %}\n    {% set cycle = 'patch' %} {# Use 'devel' for Spring to Fall, 'patch' for Fall to Spring #}\n\nUpdate any related variables, such as `r_version`. To perform the update, run\n\n    sudo salt-call --local state.apply rlang.linux\n\n## Standalone Machine with BBS dependencies\n\nIf `machine_type` equals `standalone` in `pillar/custom/init.sls`, the machine\nwill be configured with the dependencies needed for the build system but without\nthe set up necessary to perform the official builds. A standalone build might\nbe sufficient for testing `R CMD INSTALL` `build` or `check`. It will also\nreduce the time necessary for configuration.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbioconductor%2Fbioconductor_salt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbioconductor%2Fbioconductor_salt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbioconductor%2Fbioconductor_salt/lists"}