Skip to content

Commit

Permalink
Merge pull request #11 from fhdsl/cansavvy/adding-material
Browse files Browse the repository at this point in the history
Polishing!
  • Loading branch information
cansavvy authored Aug 1, 2024
2 parents c98e449 + e0d9728 commit b3683d5
Show file tree
Hide file tree
Showing 10 changed files with 122 additions and 79 deletions.
44 changes: 26 additions & 18 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Candace Savonen 2021
# Updated Jan 2023
# Updated May 2024

name: Pull Request

Expand Down Expand Up @@ -39,11 +39,12 @@ jobs:
branch_name='preview-${{ github.event.pull_request.number }}'
echo branch doesnt exist
git checkout -b $branch_name || echo branch exists
git push --set-upstream origin $branch_name || echo echo branch exists remotely
git push --set-upstream origin $branch_name || echo branch exists remotely
shell: bash


outputs:
toggle_website: "${{ env.RENDER_WEBSITE }}"
toggle_spell_check: "${{ env.SPELL_CHECK }}"
toggle_style_code: "${{ env.STYLE_CODE }}"
toggle_url_check: "${{ env.URL_CHECKER }}"
Expand Down Expand Up @@ -101,13 +102,13 @@ jobs:
fetch-depth: 0

- name: Run styler
run: Rscript -e "styler::style_file(list.files(pattern = 'Rmd$', recursive = TRUE, full.names = TRUE));warnings()"
run: Rscript -e "styler::style_file(list.files(pattern = '(R|q)md$', recursive = FALSE, full.names = TRUE));warnings()"

- name: Commit styled files
run: |
git config --system --add safe.directory "$GITHUB_WORKSPACE"
git add \*.Rmd
git commit -m 'Style Rmds' || echo "No changes to commit"
git add \*md
git commit -m 'Style *mds' || echo "No changes to commit"
git push origin || echo "No changes to commit"
############################# Render Preview ###################################
Expand Down Expand Up @@ -142,23 +143,32 @@ jobs:
# Run bookdown rendering
- name: Run bookdown render
id: bookdown
if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all')"

# Run TOC-less version
# Rendered content for Leanpub and Coursera is very similar.
# This job creates a shared scaffold for both.
- name: Run TOC-less version of render
id: tocless
run: Rscript -e "ottrpal::render_without_toc()"
# Run quarto rendering
- name: Render quarto version
id: quarto
if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
run: Rscript -e "quarto::quarto_render('.')"

# This checks on the steps before it and makes sure that they completed.
# If the renders didn't complete we don't want to commit the file changes
- name: Check on render steps
if: steps.bookdown.outcome != 'success' || steps.tocless.outcome != 'success'
- name: Check on Rmd render steps
if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: |
echo Bookdown status ${{steps.bookdown.outcome}}
echo Toc-less status ${{steps.tocless.outcome}}
exit 1
if [${{steps.bookdown.outcome}} != 'success']; then
exit 1
fi
- name: Check on quarto render steps
if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
run: |
echo Quarto status ${{steps.quarto.outcome}}
if [${{steps.quarto.outcome}} != 'success']; then
exit 1
fi
- name: Website preview for download
run: zip website-preview.zip docs/* -r
Expand All @@ -172,7 +182,7 @@ jobs:
echo "changes=$changes" >> $GITHUB_OUTPUT
git add . --force
git commit -m 'Render preview' || echo "No changes to commit"
git pull --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours
git pull --rebase --set-upstream origin $branch_name --allow-unrelated-histories --strategy-option=ours
git push --force || echo "No changes to commit"
shell: bash

Expand All @@ -189,12 +199,10 @@ jobs:
run: |
course_name=$(head -n 1 _bookdown.yml | cut -d'"' -f 2| tr " " "-")
bookdown_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/index.html")
tocless_link=$(echo "https://htmlpreview.github.io/?https://raw.githubusercontent.com/$GITHUB_REPOSITORY/preview-${{ github.event.pull_request.number }}/docs/no_toc/index.html")
docx_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/docs/$course_name.docx")
zip_link=$(echo "https://github.com/$GITHUB_REPOSITORY/raw/preview-${{ github.event.pull_request.number }}/website-preview.zip")
echo "zip_link=$zip_link" >> $GITHUB_OUTPUT
echo "bookdown_link=$bookdown_link" >> $GITHUB_OUTPUT
echo "tocless_link=$tocless_link" >> $GITHUB_OUTPUT
echo "docx_link=$docx_link" >> $GITHUB_OUTPUT
echo "time=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
echo "commit_id=$GITHUB_SHA" >> $GITHUB_OUTPUT
Expand Down
101 changes: 66 additions & 35 deletions .github/workflows/render-all.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

# Candace Savonen Apr 2021
# Candace Savonen 2021
# Updated May 2024

name: Render all output courses

Expand All @@ -8,7 +8,7 @@ on:
push:
branches: [ main, staging ]
paths:
- '**.Rmd'
- '**md$'
- assets/*
- quizzes/*

Expand All @@ -27,20 +27,19 @@ jobs:
with:
files: config_automation.yml # Pass a space-separated list of configuration files. Rightmost files take precedence.
outputs:
toggle_bookdown: "${{ env.RENDER_BOOKDOWN }}"
toggle_website: "${{ env.RENDER_WEBSITE }}"
toggle_coursera: "${{ env.RENDER_COURSERA }}"
toggle_leanpub: "${{ env.RENDER_LEANPUB }}"
make_book_txt: "${{ env.MAKE_BOOK_TXT }}"
rendering_docker_image: "${{ env.RENDERING_DOCKER_IMAGE }}"
toggle_quiz_check: "${{ env.CHECK_QUIZZES }}"

render-bookdown:
name: Render bookdown
render-course:
name: Render course preview
needs: yaml-check
runs-on: ubuntu-latest
container:
image: ${{needs.yaml-check.outputs.rendering_docker_image}}
if: ${{needs.yaml-check.outputs.toggle_bookdown == 'yes'}}

steps:
- name: checkout
Expand All @@ -57,38 +56,56 @@ jobs:
# We want a fresh run of the renders each time
- name: Delete old docs/*
run: rm -rf docs/*
run: |
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git pull --rebase --allow-unrelated-histories --strategy-option=ours
# Run bookdown rendering
# Run Rmd rendering
- name: Run bookdown render
id: bookdown
if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: |
rm -rf docs/*
Rscript -e "bookdown::render_book('index.Rmd', output_format = 'all');
file.copy(from = 'assets', to = 'docs/assets', overwrite = TRUE)"
- name: Render quarto version
id: quarto
if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
run: Rscript -e "quarto::quarto_render('.')"

# This checks on the steps before it and makes sure that they completed.
# If the renders didn't complete we don't want to commit the file changes
- name: Check on render step
if: steps.bookdown.outcome != 'success'
- name: Check on Rmd render steps
if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
run: |
echo Bookdown status ${{steps.bookdown.outcome}}
exit 1
if [${{steps.bookdown.outcome}} != 'success']; then
exit 1
fi
# Commit the rendered bookdown files
- name: Commit rendered bookdown files
- name: Check on quarto render steps
if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
run: |
echo Quarto status ${{steps.quarto.outcome}}
if [${{steps.quarto.outcome}} != 'success']; then
exit 1
fi
# Commit the rendered course files
- name: Commit rendered course files
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git add --force docs/*
git commit -m 'Render bookdown' || echo "No changes to commit"
git pull --allow-unrelated-histories --strategy-option=ours
git commit -m 'Render course' || echo "No changes to commit"
git status docs/*
git push -u origin main || echo "No changes to push"
render-tocless:
name: Render TOC-less version for Leanpub or Coursera
needs: [yaml-check]
needs: [yaml-check, render-course]
runs-on: ubuntu-latest
container:
image: ${{needs.yaml-check.outputs.rendering_docker_image}}
Expand All @@ -106,31 +123,40 @@ jobs:
git config --global --add safe.directory $GITHUB_WORKSPACE
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git pull --rebase --allow-unrelated-histories --strategy-option=ours
# Rendered content for Leanpub and Coursera is very similar.
# This job creates a shared scaffold for both.
- name: Run TOC-less version of render
id: tocless
- name: Run TOC-less version of render -- Rmd version
if: ${{needs.yaml-check.outputs.toggle_website == 'rmd' }}
id: tocless_rmd
run: Rscript -e "ottrpal::render_without_toc()"

- name: Run TOC-less version of render -- quarto version
id: tocless_quarto
if: ${{needs.yaml-check.outputs.toggle_website == 'quarto' }}
run: |
Rscript -e "quarto::quarto_render('.', metadata = list(sidebar = F, toc = F),
quarto_args = c('--output-dir', 'docs/no_toc/'))"
# Commit the TOC-less version files
- name: Commit tocless bookdown files
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git add --force docs/no_toc*
git commit -m 'Render toc-less' || echo "No changes to commit"
git pull --allow-unrelated-histories --strategy-option=ours
git status docs/no_toc*
git push -u origin main || echo "No changes to push"
render-leanpub:
name: Finish Leanpub prep
needs: [yaml-check, render-tocless]
runs-on: ubuntu-latest
container:
image: jhudsl/ottrpal:main
image: jhudsl/ottrpal
if: ${{needs.yaml-check.outputs.toggle_leanpub == 'yes'}}

steps:
Expand All @@ -145,6 +171,10 @@ jobs:
git config --global --add safe.directory $GITHUB_WORKSPACE
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git pull --rebase --allow-unrelated-histories --strategy-option=ours
ls docs/no_toc
# Create screenshots
- name: Run the screenshot creation
Expand All @@ -165,20 +195,19 @@ jobs:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
rm -rf manuscript/
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git add .
git commit -m 'Delete manuscript folder' || echo "No changes to commit"
git pull --allow-unrelated-histories --strategy-option=ours
git push -u origin main || echo "No changes to push"
- name: Run ottrpal::bookdown_to_embed_leanpub
if: needs.yaml-check.outputs.toggle_quiz_check == 'no'
run: |
echo needs.yaml-check.outputs.toggle_make_book_txt == 'yes'
echo needs.yaml-check.outputs.toggle_make_book_txt
Rscript -e "ottrpal::bookdown_to_embed_leanpub(
render = FALSE, \
chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'), \
make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt == 'yes'}}'), \
quiz_dir = NULL)"
- name: Run ottrpal::bookdown_to_embed_leanpub
Expand All @@ -187,7 +216,7 @@ jobs:
Rscript -e "ottrpal::bookdown_to_embed_leanpub(
render = FALSE, \
chapt_img_key = 'resources/chapt_screen_images/chapter_urls.tsv', \
make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt}}'))"
make_book_txt = as.logical('${{needs.yaml-check.outputs.make_book_txt == 'yes'}}'))"
# Commit the rendered Leanpub files
- name: Commit rendered Leanpub files
Expand All @@ -199,7 +228,8 @@ jobs:
git add --force resources/*
git add --force docs/*
git commit -m 'Render Leanpub' || echo "No changes to commit"
git pull --allow-unrelated-histories --strategy-option=ours
git status docs/*
git pull --rebase --allow-unrelated-histories --strategy-option=ours --autostash
git push --force --set-upstream origin main || echo "No changes to push"
render-coursera:
Expand All @@ -222,27 +252,28 @@ jobs:
git config --global --add safe.directory $GITHUB_WORKSPACE
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
git pull --rebase --allow-unrelated-histories --strategy-option=ours
# Run Coursera version
- name: Convert Leanpub quizzes to Coursera
if: needs.yaml-check.outputs.toggle_leanpub == 'yes' && needs.yaml-check.outputs.toggle_quiz_check == 'yes'
id: coursera
run: Rscript -e "ottrpal::convert_coursera_quizzes()"

# Commit the rendered bookdown files
# Commit the rendered files
# Only commit coursera quizzes if the directory is present
- name: Commit rendered Coursera files
env:
GH_PAT: ${{ secrets.GH_PAT }}
run: |
git remote set-url origin https://${GH_PAT}@github.com/${GITHUB_REPOSITORY}
git fetch origin
if [ -d 'coursera_quizzes' ]; then
git add --force coursera_quizzes/*
fi
git add --force manuscript/*
git add --force resources/*
git add --force docs/*
git commit -m 'Render Coursera quizzes' || echo "No changes to commit"
git pull --allow-unrelated-histories --strategy-option=ours
git status
git push -u origin main || echo "No changes to push"
4 changes: 1 addition & 3 deletions 03-why-nih-dms.Rmd
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
# Why NIH DMS Policy?

# Why this new DMS policy?

First we will discuss the motivations behind the new data management and sharing policy that will go into effect for (most) grant proposals submitted to the NIH after January 25, 2023.
Expand Down Expand Up @@ -43,7 +41,7 @@ A plan describing an approach to data management, preservation, and sharing of s

# How will this policy affect me?

> You can refer to the [NIH overview](https://sharing.nih.gov/data-management-and-sharing-policy/about-data-management-and-sharing-policy/research-covered-under-the-data-management-sharing-policy#after){target="_blank"} of which research will be covered by this new policy.
> You can refer to the [NIH overview](https://sharing.nih.gov/node/112){target="_blank"} of which research will be covered by this new policy.
```{r, echo=FALSE, fig.alt='We are on the second step of the pathway - personal considerations of the policy.', out.width = '80%', fig.align = 'center'}
ottrpal::include_slide("https://docs.google.com/presentation/d/1luFoDzF6aDJEebbL6iWoJ_s8s9nQnaWLL5jghbmWdak/edit#slide=id.g16b04bd80e5_4_12")
Expand Down
2 changes: 1 addition & 1 deletion 05-data-privacy.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ ottrpal::include_slide("https://docs.google.com/presentation/d/1SRokLaGAc2hiwJSN

<!-- GINA is critical to the well-being of research participants, however this does not nullify the benefits and necessity of data sharing. Indeed both things are true: genetic data is sensitive and its protection is imperative *but* for research to benefit society and reach cures data sharing is also critical. -->

<!-- So what does GINA mean in terms of data sharing? The principle of [least privilege](https://jhudatascience.org/Ethical_Data_Handling_for_Cancer_Research/data-security.html#the-principal-of-least-privilege) discussed in the previous security chapter still applies. -->
<!-- So what does GINA mean in terms of data sharing? The principle of [least privilege](https://hutchdatascience.org/Ethical_Data_Handling_for_Cancer_Research/data-security.html#the-principal-of-least-privilege) discussed in the previous security chapter still applies. -->

<!-- For many genetic data types a controlled access database is the appropriate solution to balance data sharing while maintaining the security of these data. One such database is dbGaP. dbGaP holds genetic dataset information but for individuals to gain access, they must apply and explain how their project and access will be of benefit. More details about how these applications for access are [described here](https://www.ncbi.nlm.nih.gov/projects/gap/cgi-bin/GetPdf.cgi?document_name=GeneralAAInstructions.pdf). -->

Expand Down
5 changes: 3 additions & 2 deletions 08-creating-guides.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -159,8 +159,9 @@ Here's some options for automated URL-checking:

### Set aside time to do maintenance

TODO: Write this!
In an academic setting it can be hard to find time for things that don't have urgent deadlines. But long term we know maintenance is best done little by little. In order to best maintain your work long term its best to set aside time on your calendar to actually do the maintenance. Otherwise it may never happen.

We encourage funding institutions to recognize that maintenance is the most frugal strategy. Whether it be for software or course or other products, maintenance should be prioritized for the long term benefit of the research community. More funding opportunities should be set aside for maintenance of current products as opposed to always creating new products that will also decay if not maintained.

## Exercise 1: Add a reminder for documentation updates to your task manager

Expand All @@ -172,7 +173,7 @@ TODO: Write this!

- If you use GitHub for your documentation, add a url checking GitHub action to your repository.
We used a url-checker GitHub action for developing this course!
You can see [ours here for an example](https://github.com/jhudsl/Documentation_and_Usability/blob/main/.github/workflows/url-checker.yml).
You can see [ours here for an example](https://github.com/jhudsl/ottr-reports).
- If you use something else for version control, look into URL checkers that you can easily implement into your development process.


Expand Down
Loading

0 comments on commit b3683d5

Please sign in to comment.