Skip to content

Commit

Permalink
book: switch to BiocBook format
Browse files Browse the repository at this point in the history
  • Loading branch information
js2264 committed Nov 3, 2023
1 parent f7ea53f commit 277c25a
Show file tree
Hide file tree
Showing 75 changed files with 864 additions and 1,193 deletions.
8 changes: 8 additions & 0 deletions .Rbuildignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
^inst/\.quarto$
^\.png$
^\.quarto$
^\.github$
^LICENSE\.md$
^NOTES\.md$
^README\.Rmd$
^Dockerfile$
17 changes: 17 additions & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
The Bioconductor community values

* an open approach to science that promotes the sharing of ideas, code, and expertise
* collaboration
* diversity and inclusivity
* a kind and welcoming environment
* community contributions

In line with these values, Bioconductor is dedicated to providing a welcoming, supportive, collegial, experience free of harassment, intimidation, and bullying regardless of:

* identity: gender, gender identity and expression, sexual orientation, disability, physical appearance, ethnicity, body size, race, age, religion, etc.
* intellectual position: approaches to data analysis, software preferences, coding style, scientific perspective, etc.
* stage of career

In order to uphold these values, members of the Bioconductor community are required to follow the Code of Conduct.The latest version of Bioconductor project Code of Conduct is available at http://bioconductor.org/about/code-of-conduct/. Please read the Code of Conduct before contributing to this project.

Thank you!
111 changes: 111 additions & 0 deletions .github/workflows/biocbook.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: biocbook

on:
push:
branches:
- devel
- RELEASE_**

jobs:
build-push:
runs-on: ubuntu-latest
name: build-book (${{ github.ref_name }})
permissions:
contents: write
packages: write

steps:

- name: 🧾 Checkout repository
uses: actions/checkout@v3

- name: ⏳ Collect Workflow Telemetry
uses: runforesight/workflow-telemetry-action@v1

- name: 🐳 Set up QEMU
uses: docker/setup-qemu-action@v2
- name: 🐳 Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: 📝 Get book info
id: info
env:
OWNER: ${{ github.repository_owner }}
run: |
Pkgname=$(grep -m1 -E '^Package: +' DESCRIPTION | sed -E 's/.*: +//')
echo Pkgname=${Pkgname} >> "${GITHUB_ENV}"
pkgname=${Pkgname,,}
echo pkgname=${pkgname} >> "${GITHUB_ENV}"
owner=${OWNER,,}
echo owner=${owner} >> "${GITHUB_ENV}"
echo pkgversion=$(grep -m1 -E '^Version: +' DESCRIPTION | sed -E 's/.*: +//') >> "${GITHUB_ENV}"
- name: 🔐 Log in to the Github Container registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ env.owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: 🏷 Get metadata for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ghcr.io/${{ env.owner }}/${{ env.pkgname }}
tags: |
${{ github.ref_name }}
${{ env.pkgversion }}
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'devel') }}
- name: 📦 Install, build and check package in local Docker image
id: docker
uses: docker/build-push-action@v4
with:
context: .
load: true
tags: ${{ steps.meta.outputs.tags }}
build-args: |
BIOC_VERSION=${{ github.ref_name }}
- name: 🚀 Push local Docker image to ghcr.io
uses: docker/build-push-action@v4
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
build-args: |
BIOC_VERSION=${{ github.ref_name }}
- name: 📚 Recover pkg artifacts generated during build in local Docker container (pkg bundle and book)
env:
IMG: ${{ steps.docker.outputs.ImageID }}
run: |
SHA=$(docker container create ${{ env.IMG }})
docker container cp ${SHA}:/${{ env.Pkgname }}_${{ env.pkgversion }}.tar.gz .
tar --extract --gzip --file ${{ env.Pkgname }}_${{ env.pkgversion }}.tar.gz
echo bundle_path=${{ env.Pkgname }}_${{ env.pkgversion }}.tar.gz >> "${GITHUB_ENV}"
echo book_path=${{ env.Pkgname }}/inst/doc/book/ >> "${GITHUB_ENV}"
- name: 🏷 Get gh-branch directory to deploy to
run: |
echo target_folder=$(echo ${{ github.ref_name }} | sed 's,RELEASE_,,' | tr '_' '.') >> "${GITHUB_ENV}"
- name: 🚀 Deploy book to Github Pages on versioned branch
uses: JamesIves/[email protected]
with:
folder: ${{ env.book_path }}/
target-folder: docs/${{ env.target_folder }}/
branch: gh-pages
clean: false

- name: 💾 Upload package bundle artifact
uses: actions/upload-artifact@v3
with:
name: bundle
path: ${{ env.bundle_path }}

- name: 💾 Upload book artifact
uses: actions/upload-artifact@v3
with:
name: book
path: ${{ env.book_path }}
100 changes: 0 additions & 100 deletions .github/workflows/deploy-bookdown.yaml

This file was deleted.

53 changes: 53 additions & 0 deletions .github/workflows/rworkflows.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
## Adapted from neurogenomics/rworkflows: rworkflows::use_workflow()

name: rworkflows
'on':
push:
branches:
- devel
- RELEASE_**
pull_request:
branches:
- devel
- RELEASE_**

jobs:
rworkflows:
runs-on: ${{ matrix.config.os }}
name: ${{ matrix.config.os }} (${{ matrix.config.r }})
container: ${{ matrix.config.cont }}
strategy:
fail-fast: ${{ false }}
matrix:
config:
- os: ubuntu-latest
bioc: devel
r: auto
cont: ghcr.io/bioconductor/bioconductor:devel
rspm: https://packagemanager.rstudio.com/cran/__linux__/focal/release
# - os: macOS-latest
# bioc: release
# r: auto
# cont: ~
# rspm: ~
# - os: windows-latest
# bioc: release
# r: auto
# cont: ~
# rspm: ~
steps:
- uses: neurogenomics/rworkflows@master
with:
run_bioccheck: ${{ false }}
run_rcmdcheck: ${{ true }}
as_cran: ${{ false }}
run_vignettes: ${{ false }}
has_testthat: ${{ true }}
run_covr: ${{ false }}
run_pkgdown: ${{ false }}
has_runit: ${{ false }}
has_latex: ${{ false }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run_docker: ${{ false }}
runner_os: ${{ runner.os }}
cache_version: cache-v1
7 changes: 5 additions & 2 deletions DESCRIPTION
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ Depends:
fourDNData
Imports:
plyinteractions,
terra,
Rfast,
WGCNA,
diffHic,
strawr,
hicrep,
Expand All @@ -37,9 +40,9 @@ Imports:
rebook,
quarto,
sessioninfo
Suggests:
Remotes:
github::TaoYang-dev/hicrep,
github::tidyomics/plyinteractions
github::TaoYang-dev/hicrep
biocViews:
HiC,
DNA3DStructure
Expand Down
23 changes: 6 additions & 17 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,21 +1,10 @@
ARG BIOC_VERSION
ARG VERSION

# Pull the base image from bioconductor/bioconductor_docker
FROM bioconductor/bioconductor_docker:${BIOC_VERSION}
COPY . /opt/pkg

LABEL org.opencontainers.image.source=https://github.com/js2264/OHCA
LABEL org.opencontainers.image.documentation=https://js2264.github.io/OHCA
LABEL org.opencontainers.image.authors="OHCA authors"
LABEL org.opencontainers.image.description="Orchestrating Hi-C analysis with Bioconductor"
LABEL org.opencontainers.image.licenses=MIT
LABEL org.opencontainers.image.version ${VERSION}
# Install book package
RUN Rscript -e 'repos <- BiocManager::repositories() ; remotes::install_local(path = "/opt/pkg/", repos=repos, dependencies=TRUE, build_vignettes=FALSE, upgrade=TRUE) ; sessioninfo::session_info(installed.packages()[,"Package"], include_base = TRUE)'

# Install quarto
# Install OHCA package suite
# Install OHCA package itself
# Print info
# Cleanup files
WORKDIR /opt/OHCA
COPY . /opt/OHCA
RUN make
## Build/install using same approach than BBS
RUN R CMD INSTALL /opt/pkg
RUN quarto install tinytex && R CMD build --keep-empty-dirs --no-resave-data /opt/pkg
2 changes: 2 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
YEAR: 2023
COPYRIGHT HOLDER: Jacques Serizay
21 changes: 21 additions & 0 deletions LICENSE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# MIT License

Copyright (c) 2023 Jacques Serizay

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading

0 comments on commit 277c25a

Please sign in to comment.