diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index dc44201ca5b23e..b3745db8ee9e28 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,9 +1,13 @@ -!!! DELETE THIS BEFORE SUBMITTING!!! It's just a checklist to help you :) +TODO: Describe your changes here.. -1. Give your pull request a **good title** - - e.g. "Fix typo in ansible-galaxy tutorial" or "Add new transcriptomics tutorial covering a new sequencing technology" -2. Describe your changes in detail, list anything you still need some help with or things that are still TODO -3. Check that your images are allowed to be re-hosted by the GTN! -4. Not ready for review yet? Make it a **Draft** pull request + 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 8dd3e8d89b4dfa..10ab150f87ef43 100644 --- a/CONTRIBUTORS.yaml +++ b/CONTRIBUTORS.yaml @@ -709,7 +709,7 @@ angiolini: joined: 2024-05 elixir_node: uk orcid: 0000-0002-0814-8830 - + emmaleith: name: Emma Leith email: leith023@umn.edu @@ -844,7 +844,7 @@ GabrielaLopez: orcid: 0000-0002-0814-8830 joined: 2023-01 elixir_node: uk - + gallardoalba: name: Cristóbal Gallardo joined: 2020-11 @@ -914,6 +914,7 @@ hechth: joined: 2020-01 email: helge.hecht@recetox.muni.cz orcid: 0000-0001-6744-996X + elixir_node: cz heylf: name: Florian Heyl @@ -953,6 +954,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 @@ -1001,7 +1009,7 @@ hujambo-dunia: igcbioinformatics: name: IGC Bioinformatics Unit joined: 2018-12 - + igormakunin: name: Igor Makunin joined: 2024-09 @@ -1364,7 +1372,7 @@ LonsBio: loraine-gueguen: name: Loraine Guéguen joined: 2017-09 - + lybCNU: name: Yongbin Li joined: 2024-08 @@ -1554,7 +1562,7 @@ Melkeb: melpetera: name: Mélanie Petera joined: 2019-06 - + meltemktn: name: Meltem Kutnu joined: 2024-09 @@ -1565,6 +1573,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 @@ -1677,7 +1691,7 @@ nakucher: name: Natalie Kucher email: nkucher3@jhu.edu joined: 2023-06 - + natalie-wa: name: Natalie Whitaker-Allen email: nwhitak5@jh.edu @@ -1830,6 +1844,19 @@ RareSeas: name: Adelaide Rhodes joined: 2021-05 +paige-kulzer: + name: Paige Kulzer + joined: 2024-10 + email: pkulzer@charlotte.edu + linkedin: paige-kulzer-210b97274 + contact_for_training: true + bio: + "My current role involves bioinformatics, data management, and training for a genome browser called the Integrated Genome Browser (IGB)." + location: + country: US + lat: 35.227 + lon: -80.843 + PatCapon39: name: Patrick Capon joined: 2024-02 @@ -1874,7 +1901,7 @@ paulzierep: pavanvidem: name: Pavankumar Videm - orcid: 0000-0002-5192-126X + orcid: 0000-0002-5192-126X joined: 2017-09 affiliations: - uni-freiburg @@ -2140,7 +2167,7 @@ shwdey: name: Shweta Pandey email: shwphd@gmail.com joined: 2024-06 - + simonbray: name: Simon Bray joined: 2019-05 @@ -2183,6 +2210,11 @@ slugger70: "Have I told you about my watch?" +SNG888: + name: Sandra Ng + email: s.ng@qmul.ac.uk + joined: 2023-07 + Sofokli5: name: Sofoklis Keisaris email: sofoskeisaris@gmail.com @@ -2263,6 +2295,12 @@ tb143: name: Tim Beck joined: 2023-09 +tbrown91: + name: Tom Brown + email: brown@izw-berlin.de + orcid: 0000-0001-8293-4816 + joined: 2024-08 + tcollins2011: name: Tyler Collins joined: 2024-09 @@ -2293,6 +2331,16 @@ themudo: name: Gonçalo Themudo joined: 2021-10 +ThibaudGlinez: + name: Glinez Thibaud + email: thibaud.glinez@mnhn.fr + orcid: 0009-0006-8655-7505 + joined: 2024-02 + elixir_node: fr + affiliations: + - pndb + - elixir-europe + thobalose: name: Thoba Lose joined: 2019-11 @@ -2313,7 +2361,7 @@ timonschlegel: name: Timon Schlegel orcid: 0009-0001-3228-105X joined: 2024-05 - + timothygriffin: name: Timothy J. Griffin email: tgriffin@umn.edu @@ -2368,7 +2416,7 @@ tsenapathi: trungN: name: Nguyen Vo Minh Trung - joined: 2024-09 + joined: 2024-09 TKlingstrom: name: Tomas Klingström @@ -2423,6 +2471,8 @@ wee-snufkin: name: Julia Jakiela email: juliajot36@gmail.com joined: 2022-06 + elixir_node: uk + orcid: 0009-0001-2017-8805 willdurand: name: William Durand @@ -2452,6 +2502,12 @@ wm75: - uni-freiburg - elixir-europe +wverastegui: + name: Wudmir Rojas + email: wudmir.rojas@recetox.muni.cz + joined: 2024-10 + elixir_node: cz + xiliu: name: Xi Liu github: false @@ -2505,6 +2561,11 @@ yvesvdb: affiliations: - ifb +zargham-ahmad: + name: Zargham Ahmad + email: zargham.ahmad@recetox.muni.cz + joined: 2024-10 + elixir_node: cz SNG888: name: Sandra Ng diff --git a/_includes/tutorial_list.html b/_includes/tutorial_list.html index 5d869ba99575ee..a49f8713d4e49c 100644 --- a/_includes/tutorial_list.html +++ b/_includes/tutorial_list.html @@ -44,7 +44,12 @@ {% endif %} {% if material.layout == 'custom' %} - {{material.title | markdownify }} + + {{material.title | markdownify }} + + {{material.description | markdownify }} {% else %} 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" -%}