diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml
index 96cc207e8f5421..a626f68365b535 100644
--- a/.github/workflows/deploy.yml
+++ b/.github/workflows/deploy.yml
@@ -51,11 +51,12 @@ jobs:
${{ runner.os }}-gems-
- name: Install dependencies
run: |
- sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config # for node
+ sudo apt-get install -y build-essential libxi-dev libglu1-mesa-dev libglew-dev pkg-config graphviz # for node
gem install bundler
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- npm install
+ rm -f package.json package-lock.json yarn.lock
+ npm install markdown-yaml-metadata-parser lunr
bundle pristine ffi
# END Dependencies
@@ -68,7 +69,6 @@ jobs:
make annotate ACTIVATE_ENV=pwd
curl -L https://docs.google.com/spreadsheets/d/1NfZhi5Jav7kl9zFCkeb7rIC2F8xW1isruv1TeO4WpNI/export\?format\=tsv | ruby bin/prepare_feedback.rb
curl -L https://hexylena.github.io/toolshed-version-database/tool-meta.json > metadata/tool-meta.json
- npm install
make rebuild-search-index ACTIVATE_ENV=pwd
cat metadata/swagger.yaml | python bin/yaml2json.py > api/swagger.json
rdoc bin _plugins/ --output gtn_rdoc
diff --git a/.github/workflows/monthly-release-backfill.yml b/.github/workflows/monthly-release-backfill.yml
index b8171611e85e6f..af77c5010ca076 100644
--- a/.github/workflows/monthly-release-backfill.yml
+++ b/.github/workflows/monthly-release-backfill.yml
@@ -47,7 +47,8 @@ jobs:
pip install pyyaml
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- npm install
+ rm -f package.json package-lock.json yarn.lock
+ npm install markdown-yaml-metadata-parser lunr
bundle pristine ffi
# END Dependencies
@@ -68,7 +69,6 @@ jobs:
sed -i s"|^github_repository_branch: .*|github_repository_branch: '${SOURCE_TAG}'|g" _config.yml
sed -i s"|^title: .*|title: 'GTN Archive ${SOURCE_TAG}'|g" _config.yml
curl -L https://hexylena.github.io/toolshed-version-database/tool-meta.json > metadata/tool-meta.json
- npm install
make rebuild-search-index ACTIVATE_ENV=pwd
cat metadata/swagger.yaml | python bin/yaml2json.py > api/swagger.json
JEKYLL_ENV=production bundle exec jekyll build --strict_front_matter -d _site/training-material
diff --git a/.github/workflows/monthly-release.yml b/.github/workflows/monthly-release.yml
index 8af9d9e70c7280..95fec41a22a680 100644
--- a/.github/workflows/monthly-release.yml
+++ b/.github/workflows/monthly-release.yml
@@ -54,7 +54,8 @@ jobs:
pip install pyyaml
bundle config path vendor/bundle
bundle install --jobs 4 --retry 3
- npm install
+ rm -f package.json package-lock.json yarn.lock
+ npm install markdown-yaml-metadata-parser lunr
bundle pristine ffi
# END Dependencies
@@ -70,7 +71,6 @@ jobs:
sed -i s"|^github_repository_branch: .*|github_repository_branch: '${SOURCE_TAG}'|g" _config.yml
sed -i s"|^title: .*|title: 'GTN Archive ${SOURCE_TAG}'|g" _config.yml
curl -L https://hexylena.github.io/toolshed-version-database/tool-meta.json > metadata/tool-meta.json
- npm install
make rebuild-search-index ACTIVATE_ENV=pwd
cat metadata/swagger.yaml | ruby bin/yaml2json.rb > api/swagger.json
JEKYLL_ENV=production bundle exec jekyll build --strict_front_matter -d _site/training-material
diff --git a/.github/workflows/social.yml b/.github/workflows/social.yml
new file mode 100644
index 00000000000000..0c371766d3c83f
--- /dev/null
+++ b/.github/workflows/social.yml
@@ -0,0 +1,74 @@
+name: "[Social] Autogenerate missing social media cards"
+
+on:
+ schedule:
+ # * is a special character in YAML so you have to quote this string
+ # We'll run this daily at noon.
+ - cron: '0 12 * * *'
+ workflow_dispatch:
+ inputs:
+ all_old:
+ type: string
+ description: If you want to re-generate ALL images set to a non-empty value
+
+jobs:
+ runner-job:
+ if: github.repository_owner == 'galaxyproject'
+ runs-on: ubuntu-latest
+ steps:
+ # Shallow should be fine for video
+ - uses: actions/checkout@v4
+ with:
+ fetch-depth: 500
+
+ # BEGIN Dependencies
+ - uses: actions/setup-python@v5
+ with:
+ python-version: '3.11'
+ architecture: 'x64'
+ - name: Install dependencies
+ run: |
+ sudo apt-get install -y imagemagick
+ mkdir -p ~/.fonts/
+ wget https://galaxy-training.s3.amazonaws.com/social/recursive.ttf -O ~/.fonts/recursive.ttf
+ fc-cache -rv
+ # END Dependencies
+
+
+ # We get the previous build ID to know how many videos were changed since
+ # then.
+ #
+ # We *could* fetch the diff in the past N days but if a build fails for
+ # any reason, we'd lose those changes permanently and things would never
+ # get built.
+ #
+ # So instead we just track the last successfully built timestamp
+ - name: Previous build ID
+ id: build_id
+ run: |
+ echo "timestamp=$(curl https://galaxy-training.s3.amazonaws.com/social/timestamp.txt -f 2>/dev/null || echo none)" >> $GITHUB_ENV
+
+ # Support regenerating all
+ if [[ "${{ github.event.inputs.selected_tag }}" != "" ]]; then
+ echo "timestamp=0" >> $GITHUB_ENV
+ fi
+
+ # The actual compilation process deposits everything in the ./social/ folder.
+ # And requires fetching metadata from the live website (api/social-meta.json)
+ - name: Build Social Media Cards
+ run: |
+ mkdir -p social/
+ python bin/social-cards.py $PREVIOUS_TIMESTAMP
+ env:
+ PREVIOUS_TIMESTAMP: ${{ env.timestamp }}
+
+ # Deploy step, scary.
+ - uses: jakejarvis/s3-sync-action@v0.5.1
+ with:
+ args: --acl public-read --follow-symlinks
+ env:
+ AWS_S3_BUCKET: galaxy-training
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ SOURCE_DIR: './social/'
+ DEST_DIR: 'social/'
diff --git a/.github/workflows/video.yml b/.github/workflows/video.yml
index 30aa5d693d5b73..0ec03340f8a73a 100644
--- a/.github/workflows/video.yml
+++ b/.github/workflows/video.yml
@@ -10,7 +10,7 @@ on:
jobs:
runner-job:
if: github.repository_owner == 'galaxyproject'
- runs-on: ubuntu-latest
+ runs-on: ubuntu-22.04
services:
# Label used to access the service container
mozillatts:
diff --git a/CONTRIBUTORS.yaml b/CONTRIBUTORS.yaml
index 30306995dc0382..3edfdf18851df1 100644
--- a/CONTRIBUTORS.yaml
+++ b/CONTRIBUTORS.yaml
@@ -705,7 +705,7 @@ angiolini:
joined: 2024-05
elixir_node: uk
orcid: 0000-0002-0814-8830
-
+
emmaleith:
name: Emma Leith
email: leith023@umn.edu
@@ -840,7 +840,7 @@ GabrielaLopez:
orcid: 0000-0002-0814-8830
joined: 2023-01
elixir_node: uk
-
+
gallardoalba:
name: Cristóbal Gallardo
joined: 2020-11
@@ -950,6 +950,13 @@ hexylena:
lat: 51.91
lon: 4.46
+hfraser:
+ name: Heather Fraser
+ joined: 2024-09
+ email: heather.fraser@open.ac.uk
+ elixir_node: uk
+ github: false
+
hmenager:
name: Hervé Ménager
joined: 2017-09
@@ -998,7 +1005,7 @@ hujambo-dunia:
igcbioinformatics:
name: IGC Bioinformatics Unit
joined: 2018-12
-
+
igormakunin:
name: Igor Makunin
joined: 2024-09
@@ -1361,7 +1368,7 @@ LonsBio:
loraine-gueguen:
name: Loraine Guéguen
joined: 2017-09
-
+
lybCNU:
name: Yongbin Li
joined: 2024-08
@@ -1551,7 +1558,7 @@ Melkeb:
melpetera:
name: Mélanie Petera
joined: 2019-06
-
+
meltemktn:
name: Meltem Kutnu
joined: 2024-09
@@ -1562,6 +1569,12 @@ mgramm1:
orcid: 0000-0002-4217-5277
joined: 2021-03
+mhintze:
+ name: Mark Hintze
+ email: mark.hintze@open.ac.uk
+ joined: 2024-09
+ github: false
+
miaomiaozhou88:
name: Miaomiao Zhou
email: m.zhou1@avans.nl
@@ -1674,7 +1687,7 @@ nakucher:
name: Natalie Kucher
email: nkucher3@jhu.edu
joined: 2023-06
-
+
natalie-wa:
name: Natalie Whitaker-Allen
email: nwhitak5@jh.edu
@@ -1884,7 +1897,7 @@ paulzierep:
pavanvidem:
name: Pavankumar Videm
- orcid: 0000-0002-5192-126X
+ orcid: 0000-0002-5192-126X
joined: 2017-09
affiliations:
- uni-freiburg
@@ -2150,7 +2163,7 @@ shwdey:
name: Shweta Pandey
email: shwphd@gmail.com
joined: 2024-06
-
+
simonbray:
name: Simon Bray
joined: 2019-05
@@ -2344,7 +2357,7 @@ timonschlegel:
name: Timon Schlegel
orcid: 0009-0001-3228-105X
joined: 2024-05
-
+
timothygriffin:
name: Timothy J. Griffin
email: tgriffin@umn.edu
@@ -2399,7 +2412,7 @@ tsenapathi:
trungN:
name: Nguyen Vo Minh Trung
- joined: 2024-09
+ joined: 2024-09
TKlingstrom:
name: Tomas Klingström
diff --git a/_layouts/base.html b/_layouts/base.html
index c1c245d072c7e5..293930649ee22f 100644
--- a/_layouts/base.html
+++ b/_layouts/base.html
@@ -46,7 +46,13 @@
{%- elsif page.tags contains "gat" %}{% assign coverimage = "assets/images/gat.png" %}
{%- else %}{% assign coverimage = "assets/images/GTNLogo1000.png" %}{% endif %}
{% assign og_image = page.og_image | default: page['cover-image'] | default: topic.og_image | default: coverimage | default: "assets/images/GTNLogo1000.png" %}
+ {%- if page.layout == "tutorial_hands_on" or page.layout == "tutorial_slides" or page.layout == "event" or page.layout == "workflow" or page.layout == "faq" or page.layout == "introduction_slides" or page.layout == "learning-pathway" -%}
+
+ {% elsif page.layout == "topic" or page.layout == "recordings" %}
+
+ {%- else -%}
+ {%- endif -%}
{%- if page.layout == "tutorial_hands_on" -%}