Skip to content

Commit

Permalink
Merge master
Browse files Browse the repository at this point in the history
  • Loading branch information
Nazim-crim committed Feb 19, 2025
2 parents 0bc4822 + 760c115 commit a2e8eee
Show file tree
Hide file tree
Showing 95 changed files with 7,230 additions and 1,080 deletions.
7 changes: 7 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@ reports

## PyCharm
*.idea
*.run

## Intellij
*.iml
Expand Down Expand Up @@ -90,7 +91,13 @@ src
## Project process results
workflows
**/*.tif

## build/release
archive
*.zip
*.tar.gz
**/*.zip
**/*.tag.gz

## Project local configurations
!config/*.example
Expand Down
21 changes: 18 additions & 3 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -46,17 +46,17 @@ jobs:
strategy:
matrix:
os: [ubuntu-latest]
python-version: ["3.8", "3.9", "3.10", "3.11"]
python-version: ["3.10", "3.11", "3.12"]
allow-failure: [false]
test-case: [test-unit-only, test-func-only]
include:
# experimental python
- os: ubuntu-latest
python-version: "3.12"
python-version: "3.13"
allow-failure: true
test-case: test-unit-only
- os: ubuntu-latest
python-version: "3.12"
python-version: "3.13"
allow-failure: true
test-case: test-func-only
# linter tests
Expand Down Expand Up @@ -130,6 +130,21 @@ jobs:
env | sort
- name: Run Tests
run: make stop ${{ matrix.test-case }}

# manually invoke reporting in case of test failure to still generate them
# otherwise, they would have been generated automatically following the successful coverage run
- name: Handle Failed Coverage Report
if: ${{ failure() && matrix.test-case == 'test-coverage-only' }}
run: make coverage-reports
# flaky test analysis, which includes failed tests if applicable
- name: Upload test results to Codecov
if: ${{ !cancelled() && matrix.test-case == 'test-coverage-only' }}
uses: codecov/test-results-action@v1
with:
files: reports/coverage-junit.xml,!./cache
flags: ${{ matrix.python-version }}
token: ${{ secrets.CODECOV_TOKEN }}
# coverage test analysis
- name: Upload coverage report
uses: codecov/codecov-action@v2
if: ${{ success() && matrix.test-case == 'test-coverage-only' }}
Expand Down
77 changes: 77 additions & 0 deletions .github/workflows/zenodo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
name: Zenodo Release

on: [push]

jobs:
deploy:
if: ${{ success() && contains(github.ref, 'refs/tags') }}
runs-on: ubuntu-latest
env:
REPORTS_DIR: ${{ github.workspace }}/reports
CHANGES_HTML: ${{ github.workspace }}/reports/CHANGES_${{ github.ref_name }}.html

steps:
- uses: actions/checkout@v3
with:
fetch-depth: "0"
- name: Generate Archive
# We don't use releases, but tags. Therefore, we have to make the zip ourselves.
# env:
# tarball: ${{ github.event.release.tarball_url }}
# zipball: ${{ github.event.release.zipball_url }}

# Add the suffix to the name of the file so type is recognized when
# downloading from Zenodo .tar.gz for tarball and .zip for zipball.
# Archiving the zipball will cause Zenodo to show a preview of the contents while using tarball will not.
run: |
make generate-archive
name=$(basename *.zip)
echo "ZENODO_ARCHIVE=${name}" >> $GITHUB_ENV
# if changelogs fail to generate, silently ignore
# prefer a partially generated release than none at all
- name: Generate Changelog
id: zenodo_metadata
run: |
make generate-changes-html VERSION=${{ github.ref_name }} || true
cat ${{ env.CHANGES_HTML }}
- name: Run Zenodo Publish
id: deploy_zenodo
uses: fmigneault/zenodo-release@main
with:
token: ${{ secrets.ZENODO_TOKEN }}
version: ${{ github.ref_name }}
zenodo_json: .zenodo.json
html_url: ${{ github.server_url }}/${{ github.repository }}/tree/${{ github.ref_name }} # GitHub tag link
archive: ${{ env.ZENODO_ARCHIVE }}
description_file: ${{ env.CHANGES_HTML }}

# DOI for all versions. Leaving this blank (the default) will create
# a new DOI on every release. Use a DOI that represents all versions will
# create a new version for this existing DOI.
# Newer versions have their own DOIs, but they're also linked to this DOI
# as a different version. When using this, use the DOI for all versions.
doi: '10.5281/zenodo.14210717'

- name: View Outputs
env:
doi: ${{ steps.deploy_zenodo.outputs.doi }}
conceptdoi: ${{ steps.deploy_zenodo.outputs.conceptdoi }}
conceptbadge: ${{ steps.deploy_zenodo.outputs.conceptbadge }}
badge: ${{ steps.deploy_zenodo.outputs.badge }}
bucket: ${{ steps.deploy_zenodo.outputs.bucket }}
latest: ${{ steps.deploy_zenodo.outputs.latest }}
latest_html: ${{ steps.deploy_zenodo.outputs.latest_html }}
record: ${{ steps.deploy_zenodo.outputs.record }}
record_html: ${{ steps.deploy_zenodo.outputs.record_html }}
run: |
echo "doi ${doi}"
echo "conceptdoi ${conceptdoi}"
echo "conceptbadge ${conceptbadge}"
echo "badge ${badge}"
echo "bucket ${bucket}"
echo "latest ${latest}"
echo "latest html ${latest_html}"
echo "record ${record}"
echo "record html ${record_html}"
9 changes: 8 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ testdata.json

## PyCharm
*.idea
*.run

## Intellij
*.iml
Expand Down Expand Up @@ -92,8 +93,14 @@ response.varfile

## project process results
*.tif
*.zip
./workflow[s]

## build/release
archive
*.zip
*.tar.gz
**/*.zip
**/*.tag.gz

## old project sources
[Bb]in
1 change: 1 addition & 0 deletions .pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ disable=C0111,missing-docstring,
R0901,too-many-ancestors,
R0902,too-many-instance-attributes,
R0904,too-many-public-methods,
R0911,too-many-return-statements,
R0912,too-many-branches,
R0913,too-many-arguments,
R0914,too-many-locals,
Expand Down
138 changes: 138 additions & 0 deletions .zenodo.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,138 @@
{
"upload_type": "software",
"title": "crim-ca/weaver:6.3.0",
"description": "Weaver: Workflow Execution Management Service (EMS); Application, Deployment and Execution Service (ADES); OGC API - Processes; WPS; CWL Application Package",
"version": "6.3.0",
"creators": [
{
"name": "Charette-Migneault, Francis",
"orcid": "0000-0003-4862-3349",
"affiliation": "Computer Research Institute of Montréal"
}
],
"contributors": [
{
"name": "Computer Research Institute of Montréal",
"type": "HostingInstitution"
},
{
"name": "Charette-Migneault, Francis",
"orcid": "0000-0003-4862-3349",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectLeader"
},
{
"name": "Byrns, David",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Caron, David",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Pelletier, Francis",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Gagnon-Grenier, Félix",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Azeli, Nazim",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Perron, Louis-David",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Cummings, Charles-William",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Trapsida, Nadir",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Lacoursière, Éric",
"affiliation": "Computer Research Institute of Montréal",
"type": "ProjectMember"
},
{
"name": "Schwartz, Misha",
"affiliation": "University of Toronto",
"type": "ProjectMember"
}
],
"communities": [
{
"identifier": "crim"
},
{
"identifier": "birdhouse"
}
],
"related_identifiers": [
{
"identifier": "10.5281/zenodo.14210717",
"relation": "isPartOf",
"scheme": "doi"
},
{
"identifier": "https://github.com/crim-ca/weaver",
"scheme": "url",
"relation": "isMetadataFor",
"resource_type": "software"
},
{
"identifier": "https://osf.io/d3esv/",
"scheme": "url",
"relation": "isVariantFormOf",
"resource_type": "other"
},
{
"identifier": "https://pavics-weaver.readthedocs.io/",
"scheme": "url",
"relation": "isDocumentedBy",
"resource_type": "other"
}
],
"custom": {
"code:codeRepository": "https://github.com/crim-ca/weaver",
"code:programmingLanguage": [
{
"id": "python",
"title": {"en": "Python"}
}
],
"code:developmentStatus": [
{
"id": "active",
"title": {"en": "Active"}
}
]
},
"language": "eng",
"keywords": [
"OGC",
"OGC API - Processes",
"CWL",
"Common Workflow Language",
"WPS",
"Web Processing Service",
"Workflow",
"Remote Execution",
"Web API",
"bird-house"
],
"access_right": "open",
"license": "Apache-2.0"
}
Loading

0 comments on commit a2e8eee

Please sign in to comment.