Skip to content

Commit 3054122

Browse files
authored
Merge branch 'master' into patch-default-literal
2 parents 24034d5 + 7742f14 commit 3054122

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+4783
-544
lines changed

.dockerignore

+6
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,13 @@ src
9191
## Project process results
9292
workflows
9393
**/*.tif
94+
95+
## build/release
96+
archive
97+
*.zip
98+
*.tar.gz
9499
**/*.zip
100+
**/*.tag.gz
95101

96102
## Project local configurations
97103
!config/*.example

.github/workflows/tests.yml

+17-12
Original file line numberDiff line numberDiff line change
@@ -46,17 +46,17 @@ jobs:
4646
strategy:
4747
matrix:
4848
os: [ubuntu-latest]
49-
python-version: ["3.8", "3.9", "3.10", "3.11"]
49+
python-version: ["3.10", "3.11", "3.12"]
5050
allow-failure: [false]
5151
test-case: [test-unit-only, test-func-only]
5252
include:
5353
# experimental python
5454
- os: ubuntu-latest
55-
python-version: "3.12"
55+
python-version: "3.13"
5656
allow-failure: true
5757
test-case: test-unit-only
5858
- os: ubuntu-latest
59-
python-version: "3.12"
59+
python-version: "3.13"
6060
allow-failure: true
6161
test-case: test-func-only
6262
# linter tests
@@ -131,15 +131,20 @@ jobs:
131131
- name: Run Tests
132132
run: make stop ${{ matrix.test-case }}
133133

134-
# disable due to confusing and unhelpful messages created by codecov
135-
# (see )https://github.com/codecov/feedback/issues/304#issuecomment-2492675117)
136-
# - name: Upload test results to Codecov
137-
# if: ${{ !cancelled() && success() && matrix.test-case == 'test-coverage-only' }}
138-
# uses: codecov/test-results-action@v1
139-
# with:
140-
# files: reports/coverage-junit.xml,!./cache
141-
# flags: ${{ matrix.python-version }}
142-
# token: ${{ secrets.CODECOV_TOKEN }}
134+
# manually invoke reporting in case of test failure to still generate them
135+
# otherwise, they would have been generated automatically following the successful coverage run
136+
- name: Handle Failed Coverage Report
137+
if: ${{ failure() && matrix.test-case == 'test-coverage-only' }}
138+
run: make coverage-reports
139+
# flaky test analysis, which includes failed tests if applicable
140+
- name: Upload test results to Codecov
141+
if: ${{ !cancelled() && matrix.test-case == 'test-coverage-only' }}
142+
uses: codecov/test-results-action@v1
143+
with:
144+
files: reports/coverage-junit.xml,!./cache
145+
flags: ${{ matrix.python-version }}
146+
token: ${{ secrets.CODECOV_TOKEN }}
147+
# coverage test analysis
143148
- name: Upload coverage report
144149
uses: codecov/codecov-action@v2
145150
if: ${{ success() && matrix.test-case == 'test-coverage-only' }}

.github/workflows/zenodo.yml

+77
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: Zenodo Release
2+
3+
on: [push]
4+
5+
jobs:
6+
deploy:
7+
if: ${{ success() && contains(github.ref, 'refs/tags') }}
8+
runs-on: ubuntu-latest
9+
env:
10+
REPORTS_DIR: ${{ github.workspace }}/reports
11+
CHANGES_HTML: ${{ github.workspace }}/reports/CHANGES_${{ github.ref_name }}.html
12+
13+
steps:
14+
- uses: actions/checkout@v3
15+
with:
16+
fetch-depth: "0"
17+
- name: Generate Archive
18+
# We don't use releases, but tags. Therefore, we have to make the zip ourselves.
19+
# env:
20+
# tarball: ${{ github.event.release.tarball_url }}
21+
# zipball: ${{ github.event.release.zipball_url }}
22+
23+
# Add the suffix to the name of the file so type is recognized when
24+
# downloading from Zenodo .tar.gz for tarball and .zip for zipball.
25+
# Archiving the zipball will cause Zenodo to show a preview of the contents while using tarball will not.
26+
run: |
27+
make generate-archive
28+
name=$(basename *.zip)
29+
echo "ZENODO_ARCHIVE=${name}" >> $GITHUB_ENV
30+
31+
# if changelogs fail to generate, silently ignore
32+
# prefer a partially generated release than none at all
33+
- name: Generate Changelog
34+
id: zenodo_metadata
35+
run: |
36+
make generate-changes-html VERSION=${{ github.ref_name }} || true
37+
cat ${{ env.CHANGES_HTML }}
38+
39+
- name: Run Zenodo Publish
40+
id: deploy_zenodo
41+
uses: fmigneault/zenodo-release@main
42+
with:
43+
token: ${{ secrets.ZENODO_TOKEN }}
44+
version: ${{ github.ref_name }}
45+
zenodo_json: .zenodo.json
46+
html_url: ${{ github.server_url }}/${{ github.repository }}/tree/${{ github.ref_name }} # GitHub tag link
47+
archive: ${{ env.ZENODO_ARCHIVE }}
48+
description_file: ${{ env.CHANGES_HTML }}
49+
50+
# DOI for all versions. Leaving this blank (the default) will create
51+
# a new DOI on every release. Use a DOI that represents all versions will
52+
# create a new version for this existing DOI.
53+
# Newer versions have their own DOIs, but they're also linked to this DOI
54+
# as a different version. When using this, use the DOI for all versions.
55+
doi: '10.5281/zenodo.14210717'
56+
57+
- name: View Outputs
58+
env:
59+
doi: ${{ steps.deploy_zenodo.outputs.doi }}
60+
conceptdoi: ${{ steps.deploy_zenodo.outputs.conceptdoi }}
61+
conceptbadge: ${{ steps.deploy_zenodo.outputs.conceptbadge }}
62+
badge: ${{ steps.deploy_zenodo.outputs.badge }}
63+
bucket: ${{ steps.deploy_zenodo.outputs.bucket }}
64+
latest: ${{ steps.deploy_zenodo.outputs.latest }}
65+
latest_html: ${{ steps.deploy_zenodo.outputs.latest_html }}
66+
record: ${{ steps.deploy_zenodo.outputs.record }}
67+
record_html: ${{ steps.deploy_zenodo.outputs.record_html }}
68+
run: |
69+
echo "doi ${doi}"
70+
echo "conceptdoi ${conceptdoi}"
71+
echo "conceptbadge ${conceptbadge}"
72+
echo "badge ${badge}"
73+
echo "bucket ${bucket}"
74+
echo "latest ${latest}"
75+
echo "latest html ${latest_html}"
76+
echo "record ${record}"
77+
echo "record html ${record_html}"

.gitignore

+7-1
Original file line numberDiff line numberDiff line change
@@ -93,8 +93,14 @@ response.varfile
9393

9494
## project process results
9595
*.tif
96-
*.zip
9796
./workflow[s]
9897

98+
## build/release
99+
archive
100+
*.zip
101+
*.tar.gz
102+
**/*.zip
103+
**/*.tag.gz
104+
99105
## old project sources
100106
[Bb]in

.pylintrc

+1
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ disable=C0111,missing-docstring,
9797
R0901,too-many-ancestors,
9898
R0902,too-many-instance-attributes,
9999
R0904,too-many-public-methods,
100+
R0911,too-many-return-statements,
100101
R0912,too-many-branches,
101102
R0913,too-many-arguments,
102103
R0914,too-many-locals,

.zenodo.json

+138
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
{
2+
"upload_type": "software",
3+
"title": "crim-ca/weaver:6.2.0",
4+
"description": "Weaver: Workflow Execution Management Service (EMS); Application, Deployment and Execution Service (ADES); OGC API - Processes; WPS; CWL Application Package",
5+
"version": "6.2.0",
6+
"creators": [
7+
{
8+
"name": "Charette-Migneault, Francis",
9+
"orcid": "0000-0003-4862-3349",
10+
"affiliation": "Computer Research Institute of Montréal"
11+
}
12+
],
13+
"contributors": [
14+
{
15+
"name": "Computer Research Institute of Montréal",
16+
"type": "HostingInstitution"
17+
},
18+
{
19+
"name": "Charette-Migneault, Francis",
20+
"orcid": "0000-0003-4862-3349",
21+
"affiliation": "Computer Research Institute of Montréal",
22+
"type": "ProjectLeader"
23+
},
24+
{
25+
"name": "Byrns, David",
26+
"affiliation": "Computer Research Institute of Montréal",
27+
"type": "ProjectMember"
28+
},
29+
{
30+
"name": "Caron, David",
31+
"affiliation": "Computer Research Institute of Montréal",
32+
"type": "ProjectMember"
33+
},
34+
{
35+
"name": "Pelletier, Francis",
36+
"affiliation": "Computer Research Institute of Montréal",
37+
"type": "ProjectMember"
38+
},
39+
{
40+
"name": "Gagnon-Grenier, Félix",
41+
"affiliation": "Computer Research Institute of Montréal",
42+
"type": "ProjectMember"
43+
},
44+
{
45+
"name": "Azeli, Nazim",
46+
"affiliation": "Computer Research Institute of Montréal",
47+
"type": "ProjectMember"
48+
},
49+
{
50+
"name": "Perron, Louis-David",
51+
"affiliation": "Computer Research Institute of Montréal",
52+
"type": "ProjectMember"
53+
},
54+
{
55+
"name": "Cummings, Charles-William",
56+
"affiliation": "Computer Research Institute of Montréal",
57+
"type": "ProjectMember"
58+
},
59+
{
60+
"name": "Trapsida, Nadir",
61+
"affiliation": "Computer Research Institute of Montréal",
62+
"type": "ProjectMember"
63+
},
64+
{
65+
"name": "Lacoursière, Éric",
66+
"affiliation": "Computer Research Institute of Montréal",
67+
"type": "ProjectMember"
68+
},
69+
{
70+
"name": "Schwartz, Misha",
71+
"affiliation": "University of Toronto",
72+
"type": "ProjectMember"
73+
}
74+
],
75+
"communities": [
76+
{
77+
"identifier": "crim"
78+
},
79+
{
80+
"identifier": "birdhouse"
81+
}
82+
],
83+
"related_identifiers": [
84+
{
85+
"identifier": "10.5281/zenodo.14210717",
86+
"relation": "isPartOf",
87+
"scheme": "doi"
88+
},
89+
{
90+
"identifier": "https://github.com/crim-ca/weaver",
91+
"scheme": "url",
92+
"relation": "isMetadataFor",
93+
"resource_type": "software"
94+
},
95+
{
96+
"identifier": "https://osf.io/d3esv/",
97+
"scheme": "url",
98+
"relation": "isVariantFormOf",
99+
"resource_type": "other"
100+
},
101+
{
102+
"identifier": "https://pavics-weaver.readthedocs.io/",
103+
"scheme": "url",
104+
"relation": "isDocumentedBy",
105+
"resource_type": "other"
106+
}
107+
],
108+
"custom": {
109+
"code:codeRepository": "https://github.com/crim-ca/weaver",
110+
"code:programmingLanguage": [
111+
{
112+
"id": "python",
113+
"title": {"en": "Python"}
114+
}
115+
],
116+
"code:developmentStatus": [
117+
{
118+
"id": "active",
119+
"title": {"en": "Active"}
120+
}
121+
]
122+
},
123+
"language": "eng",
124+
"keywords": [
125+
"OGC",
126+
"OGC API - Processes",
127+
"CWL",
128+
"Common Workflow Language",
129+
"WPS",
130+
"Web Processing Service",
131+
"Workflow",
132+
"Remote Execution",
133+
"Web API",
134+
"bird-house"
135+
],
136+
"access_right": "open",
137+
"license": "Apache-2.0"
138+
}

0 commit comments

Comments
 (0)