Skip to content

Commit 59514d8

Browse files
authored
Merge branch 'DIRACGrid:main' into feat/rss-data-models
2 parents bf5abcb + 6ee1331 commit 59514d8

7 files changed

Lines changed: 145 additions & 18 deletions

File tree

.github/workflows/deployment.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ jobs:
9393
# https://docs.pypi.org/trusted-publishers/
9494
- name: Publish package on PyPI
9595
if: steps.check-tag.outputs.create-release == 'true'
96-
uses: pypa/gh-action-pypi-publish@release/v1
96+
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # release/v1
9797

9898
docker:
9999
needs: deploy-pypi

.github/workflows/draft-on-changes-requested.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ jobs:
2626

2727
draft:
2828
needs: get-pr
29-
uses: DIRACGrid/.github/.github/workflows/draft-on-changes-requested.yml@main
29+
uses: DIRACGrid/.github/.github/workflows/draft-on-changes-requested.yml@eab297d50d33cf7eabf0b388ac57d1f91e36d14c # main
3030
with:
3131
pr_number: ${{ fromJSON(needs.get-pr.outputs.pr_number) }}
3232
secrets:

.github/workflows/main.yml

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ jobs:
7373
- name: Run pytest
7474
run: pixi run pytest-${{ matrix.package }} --cov-report=xml:coverage.xml --junitxml=report.xml
7575
- name: Upload coverage report
76-
uses: codecov/codecov-action@v5.5.2
76+
uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3
7777

7878
pytest-integration:
7979
runs-on: ubuntu-latest
@@ -159,23 +159,12 @@ jobs:
159159
demo_args+=("--exit-when-done")
160160
demo_args+=("--ci-values" "../diracx-charts/demo/ci_values.yaml")
161161
162-
declare -a demo_source_dirs=("$PWD")
163-
164162
# Download helm/kubectl/kind first
165163
../diracx-charts/run_demo.sh --only-download-deps
166164
167165
if [ ${{ matrix.extension }} == 'gubbins' ]; then
168166
demo_args+=("--set-value" "diracx.developer.autoReload=false")
169167
170-
# We have to copy the code to another directory
171-
# and make it a git repository by itself because otherwise the
172-
# root in the pyproject do not make sense once mounted
173-
# in the containers.
174-
cp -r ./extensions/gubbins /tmp/
175-
sed -i 's@../..@.@g' /tmp/gubbins/pyproject.toml
176-
sed -i 's@../../@@g' /tmp/gubbins/gubbins-*/pyproject.toml
177-
git init /tmp/gubbins/
178-
179168
# Copy gubbins-charts to a temporary location and build dependencies
180169
cp -r ./extensions/gubbins-charts /tmp/
181170
../diracx-charts/.demo/helm dependency build /tmp/gubbins-charts
@@ -189,7 +178,6 @@ jobs:
189178
demo_args+=("--load-docker-image" "ghcr.io/gubbins/services:dev")
190179
demo_args+=("--load-docker-image" "ghcr.io/gubbins/client:dev")
191180
demo_args+=("--prune-loaded-images")
192-
demo_source_dirs+=("/tmp/gubbins/")
193181
elif [ ${{ matrix.extension }} != 'diracx' ]; then
194182
echo "Unknown extension: ${{ matrix.extension }}"
195183
exit 1
@@ -203,7 +191,7 @@ jobs:
203191
204192
# Run the demo with the provided arguments
205193
set -x
206-
../diracx-charts/run_demo.sh "${demo_args[@]}" "${demo_source_dirs[@]}"
194+
../diracx-charts/run_demo.sh "${demo_args[@]}"
207195
- name: Debugging information
208196
if: always()
209197
run: .github/scripts/collect-k8s-debug-info.sh "$PWD/../diracx-charts/.demo" "${{ matrix.extension == 'gubbins' && 'gubbins' || 'diracx' }}"
@@ -214,7 +202,7 @@ jobs:
214202
run: |
215203
pixi run -e ${{ matrix.extension == 'diracx' && 'default' || 'default-gubbins' }} python -m diracx.testing coverage collect-demo --demo-dir=../diracx-charts/.demo
216204
- name: Upload coverage report
217-
uses: codecov/codecov-action@v5.5.2
205+
uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3
218206
with:
219207
files: ./coverage-pytest.xml,./coverage-demo.xml
220208

docs/dev/how-to/contribute.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,3 +45,22 @@
4545

4646
- **Trivial Changes:** For minor changes like fixing typos, feel free to skip the issue creation step and go straight to making a PR.
4747
- **Stay Up-to-Date:** Make sure your branch is up-to-date with the latest changes in the main branch before submitting your PR. Use `git rebase` if necessary.
48+
49+
### 6. CI Automation
50+
51+
DIRACGrid repositories use shared CI workflows (defined in [`DIRACGrid/.github`](https://github.com/DIRACGrid/.github)) to streamline the review process.
52+
53+
#### Automatic draft conversion on changes requested
54+
55+
When a reviewer requests changes on your PR, it is **automatically converted to a draft**. This makes it clear that the PR is back in the contributor's hands and not ready for another review round.
56+
57+
Once you've addressed the feedback:
58+
59+
1. Push your updates to the branch.
60+
2. Mark the PR as **Ready for review** again using the GitHub UI.
61+
62+
The reviewer will be re-notified and can continue the review.
63+
64+
#### PR review reminders
65+
66+
A daily digest of open (non-draft) PRs is posted to Mattermost on weekday mornings. The digest includes the PR title, author, assigned reviewer, age, and review status for all repositories in the DIRACGrid organisation. This ensures that open PRs don't get forgotten.

docs/dev/reference/issue-triage.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Issue Triage and Project Management
2+
3+
This page describes how issues are tracked and triaged across DIRACGrid repositories using GitHub Projects.
4+
5+
## Issue workflow
6+
7+
Issues follow a structured process from idea to completion:
8+
9+
```mermaid
10+
stateDiagram-v2
11+
[*] --> Idea
12+
13+
Idea --> IssueCreated : Anyone creates GitHub issue
14+
15+
IssueCreated --> NeedsTriage : Auto-added to Project
16+
17+
NeedsTriage --> NeedsDesign : Complex/risky, needs architect input
18+
NeedsTriage --> Triaged : Valid issue, needs refinement
19+
20+
NeedsDesign --> Triaged : Architect provides design doc/ADR
21+
22+
Triaged --> Backlog : Clear scope + acceptance criteria + estimate
23+
24+
Backlog --> InSprint : Selected during sprint planning
25+
26+
InSprint --> InProgress : Contributor starts work
27+
28+
InProgress --> InReview : PR opened
29+
30+
InReview --> InProgress : Changes requested in review
31+
InReview --> Done : PR approved and merged
32+
33+
Done --> [*]
34+
```
35+
36+
## Workflow states
37+
38+
Issues are tracked through **Project Status** fields, not labels.
39+
40+
### Needs Triage
41+
42+
New issues are automatically added to the Project with Status = "Needs triage". Maintainers review the issue to:
43+
44+
- Confirm it's valid and not a duplicate
45+
- Set appropriate fields (see [Project fields](#project-fields) below)
46+
- Determine if it needs design work or can go to the backlog
47+
48+
### Needs Design
49+
50+
Applied to complex or risky issues that require architectural input. An architect or senior developer will:
51+
52+
- Create a design document or Architecture Decision Record (ADR)
53+
- Outline the technical approach
54+
- Identify potential risks or trade-offs
55+
56+
Once design is complete, status moves to "Triaged".
57+
58+
### Triaged
59+
60+
The issue is valid and understood but needs refinement. During refinement/grooming:
61+
62+
- Add clear acceptance criteria
63+
- Add a story point estimate using the **Story Points** field
64+
- Clarify any open questions
65+
66+
Once refined, status moves to "Backlog".
67+
68+
### Backlog
69+
70+
The issue has clear scope, acceptance criteria, and a story point estimate. It is ready to be picked up in a sprint by anyone, as long as it is something that has been prioritised.
71+
72+
### In Sprint
73+
74+
The issue is assigned to a specific sprint using the **Sprint** field. It was selected during the sprint planning meeting and a developer may be assigned at this stage. Pick up issues based on your availability and avoid taking too many in parallel — it is better to finish one issue before starting another.
75+
76+
### In Progress
77+
78+
A developer has started work. Typically indicated by an open PR or assignment. The issue should be linked to the PR.
79+
80+
### In Review
81+
82+
A pull request has been opened and is awaiting code review. May loop back to "In Progress" if changes are requested.
83+
84+
### Done
85+
86+
The PR has been approved and merged. The issue is automatically closed if properly linked in the PR (e.g. `Closes #123`).
87+
88+
## Project fields
89+
90+
Each issue in the GitHub Project has the following fields:
91+
92+
| Field | Values |
93+
| ----------------- | -------------------------------------------------------------------------------------------- |
94+
| **Area** (epic) | See the [GitHub Project](https://github.com/orgs/DIRACGrid/projects/30) for the current list |
95+
| **Story Points** | Estimated effort |
96+
| **Sprint** | Sprint assignment |
97+
| **External Deps** | Whether the issue depends on something external to the project that we cannot influence |
98+
99+
## Creating issues
100+
101+
### Bug reports
102+
103+
When creating a bug report, include:
104+
105+
- A clear description of the bug
106+
- Confirmation that you've searched for duplicates
107+
- Steps to reproduce the issue
108+
- Expected vs. actual behaviour
109+
- Environment details (OS, version, etc.)
110+
- Log output if available
111+
112+
### Feature requests
113+
114+
When requesting a feature, provide:
115+
116+
- A user story (As a [user], I want [goal], so that [benefit])
117+
- Description of the proposed feature
118+
- Definition of Done -- what criteria must be met?
119+
- Related or blocking issues

extensions/gubbins/.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ jobs:
4343
- name: Run pytest
4444
run: pixi run pytest-${{ matrix.package }} --cov-report=xml:coverage.xml --junitxml=report.xml
4545
- name: Upload coverage report
46-
uses: codecov/codecov-action@v5.5.2
46+
uses: codecov/codecov-action@1af58845a975a7985b0beb0cbe6fbbb71a41dbad # v5.5.3
4747

4848
client-generation:
4949
runs-on: ubuntu-latest

mkdocs.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ nav:
186186
- Reference:
187187
- dev/reference/index.md
188188
- Coding conventions: dev/reference/coding-conventions.md
189+
- Issue triage: dev/reference/issue-triage.md
189190
- Writing tests: dev/reference/writing-tests.md
190191
- Test recipes: dev/reference/test-recipes.md
191192
- Pixi tasks: dev/reference/pixi-tasks.md

0 commit comments

Comments
 (0)