-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ZH-348 - Add Reviewer's Checklist #27
Merged
Changes from all commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
0610a77
ZH-348 - Update requirements
M-casado ceca5a7
ZH-348 - Update test SOP
M-casado ad36c6b
ZH-348 - Add screenshot for checklists
M-casado f385c46
ZH-348 - Add first draft of checklists
M-casado 64dfd3d
ZH-348 - Second draft of checklist
M-casado a1a299f
ZH-348 - Add image
M-casado dd022e7
ZH-348 - Update CHANGELOG
M-casado 08ee0af
ZH-348 - Address https://github.com/GenomicDataInfrastructure/standar…
M-casado 2a92101
ZH-348 - Address https://github.com/GenomicDataInfrastructure/standar…
M-casado 6543145
Review from Gabi
M-casado f26ce38
ZH-348 - Address https://github.com/GenomicDataInfrastructure/standar…
M-casado File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# SOP Review Checklist | ||
|
||
This checklist serves as a guide for **SOP reviewers, approvers, and authorizers**. It outlines the steps and key points to ensure that the SOPs are complete, clear, and compliant with the GDI framework. All reviewers should ensure each point is met before moving on to the next step. Approvers and authorizers have additional responsibilities as noted below. | ||
|
||
## General SOP Review Checklist | ||
|
||
### 1. **Document Structure & Formatting** | ||
- [ ] **Compliance with SOP template**: Ensure that the SOP complies with the latest SOP template (see [``GDI-SOP_sop-template.md``](./GDI-SOP_sop-template.md)). Annotations in the template (between ``<>``) contain useful information and formatting rules, including: | ||
- **Required Sections**: Ensure the SOP includes the required sections (e.g., ``Index`` or ``Procedures``). | ||
- **Linting Process**: Check that key values (e.g., the SOP title, the SOP number...) make sense and comply with the expected format. | ||
- [ ] **Document Consistency**: Check for consistent formatting, structure, and numbering throughout the SOP. | ||
- [ ] **Metadata**: Verify that metadata in all tables (e.g., versioning, dates, authors...) is included and accurate. | ||
|
||
#### Linting Script | ||
To ease the document linting process, the script ``sop_linter.py`` was created. This script **checks multiple parts of the format of an SOP**, and retrieves any given errors. | ||
|
||
You can **manually execute** the script to ensure a file (i.e., the SOP document) passes the linting checks as follows: | ||
```` | ||
cd standard-operating-procedures | ||
pip install --upgrade --no-deps -r requirements.txt | ||
python3 scripts/sop_linter.py tests/GDI-SOP0000_sop-template_for_linting.md -v 1 | ||
```` | ||
|
||
Replace the test SOP (``tests/GDI-SOP0000_sop-template_for_linting.md``) with the file path of the SOP you are reviewing. | ||
|
||
If there are no linting errors, the output will look like the following: | ||
```` | ||
{ | ||
"tests/GDI-SOP0000_sop-template_for_linting.md": { | ||
"errors": [], | ||
"warnings": [] | ||
} | ||
} | ||
```` | ||
|
||
For your convenience, the script is automatically executed (via [``lint_sops.yml``](../.github/workflows/lint_sops.yml) workflow) whenever a [Pull Request](https://github.com/GenomicDataInfrastructure/standard-operating-procedures/pulls) (PR) containing SOPs is created. Therefore, if you are reviewing a PR, you can **easily see if the SOPs comply with the expected format** by ensuring that the **latest commit has the green check mark** (✔️) next to it. | ||
|
||
![Valid: workflow check in Pull Request](images/GDI-SOP_review-checklist-workflows.png) | ||
|
||
If, on the contrary, the latest commit has a red cross (❌), some of the checks did not pass and it requires further inspection. | ||
|
||
### 2. **Content Completeness** | ||
- [ ] **Purpose and Scope**: Ensure the SOP clearly states its purpose and scope, with no ambiguity about the intended outcomes. | ||
- [ ] **Roles and Responsibilities**: Confirm that the roles are clearly defined and all stakeholders (OC, SDPC, authors, reviewers, etc.) are properly referenced. | ||
- [ ] **Procedures**: Review all procedures for clarity and completeness. Procedures should include step-by-step instructions that are easy to follow. | ||
- [ ] **References**: Ensure any external references, tools, or resources are correctly cited and linked if applicable. Make sure that all hyperlinks work as expected. | ||
|
||
### 3. **Clarity & Usability** | ||
M-casado marked this conversation as resolved.
Show resolved
Hide resolved
|
||
- [ ] **Language**: Verify the SOP is written in clear, simple language, avoiding jargon where possible. | ||
- [ ] **Consistency**: Ensure terms and abbreviations are used consistently throughout the document, as defined in the glossary, and also across the related SOPs, where appropriate. | ||
- [ ] **Glossary**: Check that the glossary includes all acronyms that are being used throughout the document. | ||
- [ ] **Examples/Diagrams**: Check for the presence of any necessary examples, diagrams, or clarifying notes to aid understanding. | ||
|
||
### 4. **Operational Feasibility** | ||
- [ ] **Applicability**: Evaluate whether the content of SOP is relevant to the intended operational environment and aligned with GDI objectives. | ||
- [ ] **Scalability**: Depending on the type of SOP, ie "European-level" or "Node-specific", review how the SOP is applicable to all GDI nodes, or specifies any node-specific requirements, respectively. | ||
- [ ] **Feasibility**: Ensure that the procedures are feasible for the assigned roles and aligned with the technological capabilities of the nodes. | ||
|
||
### 5. **Cross-Referencing and SOP Compliance** | ||
- [ ] **Referencing Existing SOPs**: Check that the SOP does not significantly overlap or conflict with other existing SOPs, and ensure that references to any related SOPs are included. See the full [list of released SOPs](../sops/README.md). | ||
- [ ] **Compliance with SOP Development SOP**: Verify that the SOP has followed the procedure outlined in the [``GDI-SOP0007_SOP-template-creation.md``](../sops/european-level/GDI-SOP0007_SOP-template-creation.md), including review stages and deadlines. | ||
|
||
## Reporting and Escalation | ||
- [ ] **Document your feedback** in the appropriate review platform: either the Google Document or Pull Request, depending on the SOP development phase. | ||
- [ ] **Escalate comments to both the authors and the OC/SDPC member** in charge of this SOP development. These stakeholders are listed in the SOP's "Roles and Responsibilities" section. There are numerous ways to reach out to these roles, depending on the platform of review: ideally either Google Doc comments or GitHub Pull Request reviews; and secondarily through emails or directly GDI's slack workspace. | ||
|
||
## Additional Checklist for Approvers | ||
|
||
- [ ] **Impact Assessment**: Evaluate the potential impact of the SOP on operations, and confirm that it enhances standardization and efficiency across nodes. | ||
- [ ] **Node Representation**: Confirm that the SOP has been reviewed by relevant representatives from GDI nodes, and their input has been incorporated. | ||
- [ ] **Feedback Integration**: Ensure that all feedback from reviewers has been appropriately addressed in the final draft. | ||
|
||
## Additional Checklist for Authorizers | ||
|
||
- [ ] **Formal Authorization**: Confirm that the SOP is ready for final release, and provide authorization (or veto) for its inclusion in the GitHub repository. This veto period is defined in the SOP ``SOP Template creation``(../sops/european-level/GDI-SOP0007_SOP-template-creation.md) as **4 weeks** after the authorization request. If no comment is received before the veto can be exercised, the **SOP will automatically be considered authorized**. | ||
|
||
## Tools & References | ||
|
||
- **GitHub Repository**: [GDI SOP Repository](https://github.com/GenomicDataInfrastructure/standard-operating-procedures) (Check linting status, review, and approve PRs) | ||
- [**SOP Template creation SOP**](../sops/european-level/GDI-SOP0007_SOP-template-creation.md) | ||
- **ZenHub Board**: [T4.3 GDI SOPs](https://app.zenhub.com/workspaces/t43-gdi-sops-667c1c5532726a00b93d51e4/board) |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,4 @@ | ||
beautifulsoup4==4.12.3 | ||
markdown==3.6 | ||
packaging==24 | ||
pandas==2.2 | ||
beautifulsoup4>=4.12.3 | ||
markdown>=3.6 | ||
packaging>=24 | ||
pandas>=2.0,<2.2 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe under this section you should include all the parts of the SOP template where the "text is required". If that’s the case, both the "Document History" and the "Glossary" sections in the SOP template should be fully completed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do you mean whole sections that are required? I added that but in the 1st section:
Also had these rules automated in the section
Linting Script
. Would you add also the list of "This section, this section, and this section, are required"?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ideally we would have all these things automated, so that the rules of "what is required" live inside the scripts I made to automate it, and that way no human has to go and check every bit that is required.