Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add CI for checking for broken links manually, weekly and in PRs #1633

Open
wants to merge 83 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
16a2593
Create check-published-links-weekly.yml
markcmiller86 Apr 18, 2023
d73e0d1
skip files in utils dirs
markcmiller86 Apr 18, 2023
90129d9
fix some links
markcmiller86 Apr 18, 2023
025bdbd
Update check-published-links-weekly.yml
markcmiller86 Apr 18, 2023
3ebc92e
fix link
markcmiller86 Apr 18, 2023
e895554
Merge branch 'mcm86-check-urls-weekly' of github.com:betterscientific…
markcmiller86 Apr 18, 2023
53412f0
fix use of link
markcmiller86 Apr 18, 2023
7d74c7c
fix link
markcmiller86 Apr 18, 2023
5581fb2
fix link
markcmiller86 Apr 18, 2023
7ef91f2
fix link
markcmiller86 Apr 18, 2023
d795dea
fix link;repl link
markcmiller86 Apr 18, 2023
3fb1404
fix links
markcmiller86 Apr 18, 2023
dfc7877
ignore preview.bssw.io
markcmiller86 Apr 18, 2023
94276f5
ignore docs dir for now
markcmiller86 Apr 18, 2023
f15f23e
ignore .github dir
markcmiller86 Apr 18, 2023
6dddd9b
ignore Events too
markcmiller86 Apr 18, 2023
a1f8133
rm bad link
markcmiller86 Apr 18, 2023
5339c58
fix links
markcmiller86 Apr 18, 2023
eabe97e
fix special case
markcmiller86 Apr 18, 2023
9794589
no run CI on fork
markcmiller86 Apr 19, 2023
1393495
rework as per requests
markcmiller86 Jan 23, 2024
985875e
fix yaml error
markcmiller86 Jan 23, 2024
f8bd433
re-arrange triggers
markcmiller86 Jan 23, 2024
aeafe2d
fix yaml syntax error
markcmiller86 Jan 23, 2024
e6b8b23
fix yaml syntax error
markcmiller86 Jan 23, 2024
5296721
update from testing
markcmiller86 Jan 26, 2024
06fe559
sync with main
markcmiller86 Jan 26, 2024
7b1d0aa
fix spelling error
markcmiller86 Jan 26, 2024
7c2350e
fix link to hdf5
markcmiller86 Jan 28, 2024
6adfe91
fix ideas classic link
markcmiller86 Jan 28, 2024
530a792
fix links
markcmiller86 Jan 28, 2024
5e0059c
fix links
markcmiller86 Jan 28, 2024
bd8c3a0
fix link
markcmiller86 Jan 28, 2024
1a2074f
fix links
markcmiller86 Jan 29, 2024
fc2cc5c
add description
markcmiller86 Jan 29, 2024
7d5b88a
final fixes
markcmiller86 Feb 1, 2024
77c78db
add check-urls
markcmiller86 Feb 1, 2024
e419e4b
test new checkere
markcmiller86 Feb 4, 2024
5ad2057
add no-check-certs
markcmiller86 Feb 4, 2024
cfa5b8d
fix links to pdfs in swe-cse-bof
markcmiller86 Feb 5, 2024
3373b55
ws change to trigger a commit
markcmiller86 Mar 25, 2024
42e39a9
try new link check util
markcmiller86 May 14, 2024
122ba08
apply linkchecker per md file
markcmiller86 May 15, 2024
c9f4aa3
fix logic error
markcmiller86 May 15, 2024
f34f557
adjust params in checker
markcmiller86 May 15, 2024
4d83878
adjust comma seps
markcmiller86 May 15, 2024
05e85dd
adjust comma seps
markcmiller86 May 15, 2024
a0f91c2
fix syntax for extension
markcmiller86 May 15, 2024
9bf7b9a
continue loop after failures
markcmiller86 May 15, 2024
137f3d0
WS change to trigger action
markcmiller86 Jun 26, 2024
d42614d
add artifact upload
markcmiller86 Jun 26, 2024
ab50688
get all logger parts
markcmiller86 Jun 27, 2024
ad297bd
reset logger parts
markcmiller86 Jun 27, 2024
2e673e3
fix missing closing "
markcmiller86 Jun 27, 2024
a7c8f34
fix cat operation
markcmiller86 Jun 27, 2024
5f8d4b7
fix sed filter
markcmiller86 Jun 27, 2024
f09fba1
reset logger parts
markcmiller86 Jun 27, 2024
2fe80db
fix logger parts
markcmiller86 Jun 27, 2024
2e7cab2
logger parts all
markcmiller86 Jun 27, 2024
975021a
use diff sep char
markcmiller86 Jun 27, 2024
8aa0130
test parse fix
markcmiller86 Jun 27, 2024
05e2037
test parse fix
markcmiller86 Jun 27, 2024
235745d
test parse fix
markcmiller86 Jun 27, 2024
02b5458
bracket links with <>
markcmiller86 Jun 28, 2024
2310eff
use rc file
markcmiller86 Jun 28, 2024
d1db746
add python script to check results
markcmiller86 Jun 28, 2024
52e9836
fix space in link
markcmiller86 Jun 29, 2024
ca247b7
set recursion depth
markcmiller86 Jun 29, 2024
99b2a9e
adjust config
markcmiller86 Jun 29, 2024
969905f
ignore gh usernames
markcmiller86 Jun 29, 2024
2bd4298
update checker logic
markcmiller86 Jun 29, 2024
f53a1e0
add presistent lists
markcmiller86 Jun 30, 2024
f024ad6
whole process
markcmiller86 Jul 1, 2024
7b0e42e
fix paths
markcmiller86 Jul 1, 2024
f840b17
upd bad_links only if !PR
markcmiller86 Jul 1, 2024
46f77a1
fix pr bad count logic
markcmiller86 Jul 1, 2024
64ed9e8
fix path
markcmiller86 Jul 1, 2024
9ecf296
adjust failure logic
markcmiller86 Jul 1, 2024
fbdb9bd
adjust PR artifact
markcmiller86 Jul 1, 2024
55beebc
fix syntax error
markcmiller86 Jul 1, 2024
6fbe1f6
fix remove dups
markcmiller86 Jul 1, 2024
ce73e77
fix stray + char
markcmiller86 Jul 1, 2024
c239c6a
fix ignore files feature
markcmiller86 Jul 1, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ Format:
- job: assign_to_board
- Assigns issues and PRs to either Content Development board or BSSw Internal board based on labels ("content: *" or "scope: site-internal")
* notify-external-contrib.yml (Notify external contributions)
- https://github.com/betterscientificsoftware/bssw.io/blob/0e1ba1664239ab6097e903f8bb94fef08576f103/.github/workflows/notify-external-contrib.yml#L6-L12
- <https://github.com/betterscientificsoftware/bssw.io/blob/0e1ba1664239ab6097e903f8bb94fef08576f103/.github/workflows/notify-external-contrib.yml#L6-L12>
- job: notify-external-contributions
- Label and send email to bssw-editorial-list for externally opened issues, prs and discussions

Expand Down
161 changes: 161 additions & 0 deletions .github/workflows/check-urls.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
name: Check URLs

on:
workflow_dispatch:
schedule:
- cron: '17 5 * * 0' # 5:17 AM every Sunday
pull_request:
branches: [ main ]
env:
ignore_file_patterns: |
docs
images
utils
Events

jobs:
check-urls:
runs-on: ubuntu-latest

steps:

- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.9'

- name: Install dependencies
run: |
python -m pip --no-cache-dir --disable-pip-version-check install --upgrade pip
python -m pip --no-cache-dir --disable-pip-version-check install linkchecker

- name: Reformat environment variables
id: setup_vars
run: |
tmp=$(echo "${{ env.ignore_file_patterns }}" | tr '\n' ' ')
echo "ignore_file_patterns=$tmp" >> $GITHUB_OUTPUT

- name: Checkout Repo for PR branch
if: ${{ github.event_name == 'pull_request' }}
uses: actions/checkout@v4

- name: Checkout Repo for link check
if: ${{ github.event_name != 'pull_request' }}
uses: actions/checkout@v4
with:
ref: 'sched-link-checks'

- name: Sync main to link check branch
if: ${{ github.event_name != 'pull_request' }}
run: |
git config user.name 'github-actions'
git config user.email '[email protected]'
git fetch origin main
git merge origin/main --no-edit -X thiers
git push origin sched-link-checks

- name: Get Changed Files (for PRs)
if: ${{ github.event_name == 'pull_request' }}
id: changed-files
uses: tj-actions/changed-files@v42
with:
separator: ' '

- name: Generate lists of files to check and ignore
id: file_list
run: |
if [ "${{ github.event_name }}" = "pull_request" ]; then
echo "files=${{ steps.changed-files.outputs.all_changed_files }}" >> $GITHUB_OUTPUT
echo "ignore_file_patterns=" >> $GITHUB_OUTPUT
else
echo "files=" >> $GITHUB_OUTPUT
echo "ignore_file_patterns=${{ steps.setup_vars.outputs.ignore_file_patterns }}" >> $GITHUB_OUTPUT
fi

- name: Check URLs in selected files
run: |
for f in ${{ steps.file_list.outputs.files }}; do
if [ "${f##*.}" != "md" ]; then
continue
fi
for ef in ${{ steps.file_list.outputs.ignore_file_patterns }}; do
if [ "$ef" = "$f" ]; then
continue 2 # ignore this file
fi
fd=$(echo $f | cut -d'/' -f1)
if [ "$ef" = "$fd" ]; then
continue 2 # ignore this dir
fi
done
linkchecker -f utils/LinkChecker/.linkcheckerrc file://$(pwd)/$f >> linkchecker.out || true
cat linkchecker.out >> linkchecker-all.out
done

- name: Process log
run: |
python utils/LinkChecker/cklcresults.py ${{ github.event_name }}

- name: Upload artifact
if: ${{ github.event_name == 'pull_request' }}
uses: actions/upload-artifact@v4
with:
name: bad-links
path: bad_links.txt

- name: Update link logs
if: ${{ github.event_name != 'pull_request' }}
run: |
git commit -m 'Update link logs'
git push origin sched-link-checks

#
# Keep the recurring failures and definitely bad lists in repo on
# branch manage-broken-links
#
# Download those files before startin
#
# If a link "works" (200) remove it from "recurring failures" list
# If a link "does not work" (!= 200)
# - if it is already on recurring failures list
# - if it is too old, flag it as "definitely bad", else nothing
#
# - if it is not already on persistent failures list, add it to "new" and "persistent failures" list and date it

#
# Upload the recurring failures and definitely bad lists to somehwere
# Report success if definitely bad list is empty, otherwise failure
# generate email with links or actual data
#
# you have to use file:// on command-line to checker

# bare URLs in markdown are not actually links and will not be checked. Many
# markdown renderers and browsers will recognize these and handle them as links
# but that is by convention only. There is no markdown standard for how bare
# URLs in markdown are handled. The only standard is to enclose them in `<` and
# `>` chars.

#
# Description:
#
# Triggers in one of three ways; 1) manually, 2) scheduled weekly Sunday's 5:17 AM
# or 3) pull request
#
# Stores ignore pattern cases in env. variables and then reformats those (because
# they have newlines) into a comma-separated single line string that can be digested
# as inputs to other actions.
#
# For PRs, uses changed-files action to get list of changed files and passes this
# to urlchecker via `include_files param. Also, ignore file patterns is set to
# empty string for PRs because we think URLs anywhere in PRs should be checked.
#
# For scheduled or manual triggers, uses fact that empty `include_files` param
# causes urlchecker to process *all* files that match in `file_type` param but do
# not match any `exclude_files` patterns. These file patterns for exclude work
# more or less like file globs. So, specifying the initial part of the string
# for a file (path) name is sufficient to ignore the file.
#
# We include Events in file patterns to ignore because of all content we host,
# we suspect Event URLs are the most likely to go stale rather quickly **and** because
# the URL validness is important only during the short window prior to the event.
# That said, we don't want to ignore Events in PRs and we do not as per above.
#
4 changes: 1 addition & 3 deletions Articles/Blog/2020-01-usrse.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,7 @@ fundamental part of their work.
In the United States and globally, over the past two to three years (except the UK, which seems to be
a few years ahead of the trend), the use of the term RSE has exploded. The RSE
role was formally recognized in 2019 by the European Commission in a report
“[Recognising the Importance of Software in Research - Research Software
Engineers (RSEs), a UK
Example](https://ec.europa.eu/info/sites/info/files/research_and_innovation/importance_of_software_in_research.pdf)”
“[Recognising the Importance of Software in Research - Research Software Engineers (RSEs), a UK Example](https://op.europa.eu/s/yA6b)”
and by UNESCO in the report “[Paris Call: Software Source Code as Heritage
for Sustainable
Development](https://en.unesco.org/foss/paris-call-software-source-code)”. As an
Expand Down
4 changes: 2 additions & 2 deletions Articles/Blog/2020-11-PSIP4HDF5.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ In April of 2020, the
[LLNL WSC](https://wci.llnl.gov/about-us/weapon-simulation-and-computing) Research Coordination Council
established a $150K contract with [The HDF Group](https://www.hdfgroup.org)
(THG), the organization responsible for developing and maintaining
[HDF5](https://portal.hdfgroup.org/display/HDF5/HDF5), to employ PSIP to effect some
[HDF5](https://docs.hdfgroup.org/hdf5/develop/index.html), to employ PSIP to effect some
software process improvement goals (IGs). Interested readers are welcome to read the
[full report](https://www.osti.gov/biblio/1698291-psip-hdf5pilot-project-final-report).

Expand Down Expand Up @@ -101,7 +101,7 @@ and create PTCs:
* **Improvement Goal #3 (IG3)**: Define and adopt a set of consistent coding standards ([PTC](https://bssw-psip.github.io/ptc-catalog/catalog/THGCodingStandards.html))

THG staff members then self-organized around the IG(s) they were passionate about drafting and refining
PTCs (see images below). Developing quality [PTCs](https://bssw-psip.github.io/practice-guides/how_to_create_ptc.html)
PTCs (see images below). Developing quality [PTCs](https://bssw-psip.github.io/practice-guides/pages/how_to_create_ptc.html)
is essential but also nontrivial.
It can require facilitation by an experienced but objective third party. The challenge is in ensuring
that each step has a good definition of "done" and also represents a value-added improvement in
Expand Down
2 changes: 1 addition & 1 deletion Articles/Blog/2021-09-CollegevilleReportDay1.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
- <img src='https://github.com/betterscientificsoftware/bssw.io/raw/main/images/Blog_2109_Collegeville1.png' />
<!-- will updated hero image -->

#### Contributed by: [Cody Balos](https://github.com/balos1), [Jed Brown](https://github.com/jedbrown), [Gerasimos Chourdakis](https://github.com/MakisH), [Ben Cowan](https://github.com/benc303), [Anshu Dubey](https://github.com/adubey64), [Vadim Dyadechko](https://github.com/vdayadechko), [Robert Jacob](https://github.com/rljacob), [Sarah Knepper](https://github.com/sknepper), [Jay Lofstead](https://github.com/gflofst), [Lois Curfman McInnes](https://github.com/curfman), [Reed Milewicz](https://github.com/rmmilewi), [Jacob Moxley](https://github.com/jmox0351), [Todd Munson](https://github.com/tmunson), [Sarah Osborn](https://github.com/osborn9), [Jim Pivarski](https://github.com/jpivarski), [Elaine Raybourn](https://github.com/elainraybourn), [Barry Smith](https://github.com/BarrySmith), [James Willenbring](https://github.com/jwillenbring), [Ulrike Meier Yang](https://github.com/ulrikeyang), [Sam Yates](https://github.com/halfflat), [Michael A. Heroux](https://github.com/maherou), and [Johanna Cohoon](https://github.com/jlcohoon)
#### Contributed by: [Cody Balos](https://github.com/balos1), [Jed Brown](https://github.com/jedbrown), [Gerasimos Chourdakis](https://github.com/MakisH), [Ben Cowan](https://github.com/benc303), [Anshu Dubey](https://github.com/adubey64), [Vadim Dyadechko](https://github.com/vdyadechko), [Robert Jacob](https://github.com/rljacob), [Sarah Knepper](https://github.com/sknepper), [Jay Lofstead](https://github.com/gflofst), [Lois Curfman McInnes](https://github.com/curfman), [Reed Milewicz](https://github.com/rmmilewi), [Jacob Moxley](https://github.com/jmox0351), [Todd Munson](https://github.com/tmunson), [Sarah Osborn](https://github.com/osborn9), [Jim Pivarski](https://github.com/jpivarski), [Elaine Raybourn](https://github.com/elaineraybourn), [Barry Smith](https://github.com/BarrySmith), [James Willenbring](https://github.com/jwillenbring), [Ulrike Meier Yang](https://github.com/ulrikeyang), [Sam Yates](https://github.com/halfflat), [Michael A. Heroux](https://github.com/maherou), and [Johanna Cohoon](https://github.com/jlcohoon)

#### Publication date: September 20, 2021

Expand Down
12 changes: 6 additions & 6 deletions Articles/Blog/2021-12-sc21-swe-cse-bof.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

- <img src='https://github.com/betterscientificsoftware/bssw.io/raw/main/images/Blog_2112_SC21.png' />

#### Contributed by: [David E. Bernholdt](https://github.com/bernhold), [Michael Bader](https://github.com/baderml), Michelle Barker, Ben Brown, [Anshu Dubey](https://github.com/adubey64), [Nasir Eisty](https://github.com/neistyS), [Sandra Gesing](https://github.com/sandragesing), [Patricia Grubel](https://github.com/pagrubel), [Rinku Gupta](https://github.com/rinkug), [Michael A. Heroux](https://github.com/maherou), [Saswata Hier-Majumder](https://github.com/sashgeophysics), [Axel Huebl](https://github.com/ax3l), [Mozhgan Kabiri Chimeh](https://github.com/mozhgan-kch), [Daniel S. Katz](https://github.com/danielskatz), [Tomislav Maric](https://github.com/tmaric), [Lois Curfman McInnes](https://github.com/curfman), Bill Miller, [Manish Parashar](https://github.com/parasharmanish), [Ulf D. Schiller](https://github.com/uschille), [Jean Sexton](https://github.com/jmsexton03), [Peter Vaillancourt](https://github.com/sk8forether), Marion Weinzierl, [Yo Yehudi](https://github.com/yochannah)
#### Contributed by: [David E. Bernholdt](https://github.com/bernhold), [Michael Bader](https://github.com/baderml), Michelle Barker, Ben Brown, [Anshu Dubey](https://github.com/adubey64), [Nasir Eisty](https://github.com/neisty), [Sandra Gesing](https://github.com/sandragesing), [Patricia Grubel](https://github.com/pagrubel), [Rinku Gupta](https://github.com/rinkug), [Michael A. Heroux](https://github.com/maherou), [Saswata Hier-Majumder](https://github.com/sashgeophysics), [Axel Huebl](https://github.com/ax3l), [Mozhgan Kabiri Chimeh](https://github.com/mozhgan-kch), [Daniel S. Katz](https://github.com/danielskatz), [Tomislav Maric](https://github.com/tmaric), [Lois Curfman McInnes](https://github.com/curfman), Bill Miller, [Manish Parashar](https://github.com/parasharmanish), [Ulf D. Schiller](https://github.com/uschille), [Jean Sexton](https://github.com/jmsexton03), [Peter Vaillancourt](https://github.com/sk8forether), Marion Weinzierl, [Yo Yehudi](https://github.com/yochannah)

#### Publication date: December 21, 2021

Expand All @@ -16,12 +16,12 @@ We’ve settled on a format for the BoF that includes 3-minute lightning talks,

We had six lightning talks this year, covering a wide range of topics with speakers from the US, UK, Germany, and Australia.

* [Ecosystems are the Future!](https://betterscientificsoftware.github.io/swe-cse-bof/2021-11-sc21-bof/01-brown-ecosystems.pdf) by Benjamin Brown (Office of Advanced Scientific Computing Research (ASCR), Office of Science, U.S. Dept. of Energy). Ben discussed the importance of ecosystems in his vision for the future of the ASCR high performance computing and networking user facilities ([ALCF](https://www.alcf.anl.gov/), [NERSC](https://www.nersc.gov/), [OLCF](https://www.olcf.ornl.gov/), and[ ESnet](https://www.es.net/)) and highlighted scientific software as one of the key ecosystems. He closed with the message “Software ecosystems are research infrastructure!”
* [Ecosystems are the Future!](https://betterscientificsoftware.github.io/swe-cse-bof/assets/2021-11-sc21-bof/01-brown-ecosystems.pdf) by Benjamin Brown (Office of Advanced Scientific Computing Research (ASCR), Office of Science, U.S. Dept. of Energy). Ben discussed the importance of ecosystems in his vision for the future of the ASCR high performance computing and networking user facilities ([ALCF](https://www.alcf.anl.gov/), [NERSC](https://www.nersc.gov/), [OLCF](https://www.olcf.ornl.gov/), and [ESnet](https://www.es.net/)) and highlighted scientific software as one of the key ecosystems. He closed with the message “Software ecosystems are research infrastructure!”
* [Open Source for Researchers](https://doi.org/10.5281/zenodo.5655022) by Yo Yehudi (Wellcome Trust). Yo encouraged us to up our game for our open source software projects, making them more open and more accessible to others. She touched on readme files, roadmaps, contributor guides, codes of conduct, a requested citation, contact information, and using an issue tracker and also suggested some resources to help folks get started contributing to open source software.
* [The Internat. CSE Master Program at TUM](https://betterscientificsoftware.github.io/swe-cse-bof/2021-11-sc21-bof/03-bader-masterprogram.pdf) by Michael Bader (Technical University of Munich, TUM). Michael described the International Master’s program in Computational Science and Engineering, which has been offered at TUM since 2001, currently serving approximately 50 students per year. The 4-semester program combines classes in computer science, numerical analysis, and scientific computing - with one of the key challenges being how to guide students from various backgrounds towards becoming experts in software development for supercomputing applications.
* [Senior Level RSE career paths (with an s)](https://betterscientificsoftware.github.io/swe-cse-bof/2021-11-sc21-bof/04-katz-seniorrse.pdf) by Daniel S. Katz (University of Illinois at Urbana-Champaign). Dan presented ideas to help define paths for career progression for research software engineers (RSEs), looking particularly at offering a richer set of opportunities at senior levels to allow RSEs to explore different roles, emphasizing different skills.
* [FAIR 4 Research Software (FAIR4RS)](https://betterscientificsoftware.github.io/swe-cse-bof/2021-11-sc21-bof/05-barker-fair4rs.pdf) by Michelle Barker (Research Software Alliance). Michelle presented the emerging idea of applying the FAIR principles (findability, accessibility, interoperability, reusability) to research software, noting “Software is not just another type of data.” The Research Data Alliance, FORCE11, and the Research Software Alliance are working together to develop the FAIR4RS principles and guidelines for implementing them.
* [Highlights from the IEEE CS Ad Hoc Committee on Open Science & Reproducibility](https://betterscientificsoftware.github.io/swe-cse-bof/2021-11-sc21-bof/06-parashar-openscience.pdf) by Manish Parashar (University of Utah). In 2019, the National Academies of Science, Engineering, and Medicine (NASEM) published a report on Reproducibility and Replicability in Science. Manish described work by the IEEE Computer Society, building upon the NASEM report, to develop an action plan to improve and recognize reproducibility in the society’s publications, conferences, and through its technical committees.
* [The Internat. CSE Master Program at TUM](https://betterscientificsoftware.github.io/swe-cse-bof/assets/2021-11-sc21-bof/03-bader-masterprogram.pdf) by Michael Bader (Technical University of Munich, TUM). Michael described the International Master’s program in Computational Science and Engineering, which has been offered at TUM since 2001, currently serving approximately 50 students per year. The 4-semester program combines classes in computer science, numerical analysis, and scientific computing - with one of the key challenges being how to guide students from various backgrounds towards becoming experts in software development for supercomputing applications.
* [Senior Level RSE career paths (with an s)](https://betterscientificsoftware.github.io/swe-cse-bof/assets/2021-11-sc21-bof/04-katz-seniorrse.pdf) by Daniel S. Katz (University of Illinois at Urbana-Champaign). Dan presented ideas to help define paths for career progression for research software engineers (RSEs), looking particularly at offering a richer set of opportunities at senior levels to allow RSEs to explore different roles, emphasizing different skills.
* [FAIR 4 Research Software (FAIR4RS)](https://betterscientificsoftware.github.io/swe-cse-bof/assets/2021-11-sc21-bof/05-barker-fair4rs.pdf) by Michelle Barker (Research Software Alliance). Michelle presented the emerging idea of applying the FAIR principles (findability, accessibility, interoperability, reusability) to research software, noting “Software is not just another type of data.” The Research Data Alliance, FORCE11, and the Research Software Alliance are working together to develop the FAIR4RS principles and guidelines for implementing them.
* [Highlights from the IEEE CS Ad Hoc Committee on Open Science & Reproducibility](https://betterscientificsoftware.github.io/swe-cse-bof/assets/2021-11-sc21-bof/06-parashar-openscience.pdf) by Manish Parashar (University of Utah). In 2019, the National Academies of Science, Engineering, and Medicine (NASEM) published a report on Reproducibility and Replicability in Science. Manish described work by the IEEE Computer Society, building upon the NASEM report, to develop an action plan to improve and recognize reproducibility in the society’s publications, conferences, and through its technical committees.

### Breakout discussions

Expand Down
Loading
Loading