Skip to content

Commit beaba5b

Browse files
Merge branch 'main' into dependabot/docker/python-3.13-slim
2 parents 2b735dc + d671063 commit beaba5b

30 files changed

+878
-79
lines changed

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020

2121
<!-- Go over all the following points, and put an `x` in all the boxes that apply. -->
2222

23-
- [ ] I am familiar with the [contributing guidelines](../docs/CONTRIBUTING.md)
23+
- [ ] I am familiar with the [contributing guidelines](https://github.com/nhs-england-tools/playwright-python-blueprint/blob/main/CONTRIBUTING.md)
2424
- [ ] I have followed the code style of the project
25-
- [ ] I have added tests to cover my changes
25+
- [ ] I have added tests to cover my changes (where appropriate)
2626
- [ ] I have updated the documentation accordingly
2727
- [ ] This PR is a result of pair or mob programming
2828

.vscode/extensions.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,20 @@
22
"recommendations": [
33
"alefragnani.bookmarks",
44
"davidanson.vscode-markdownlint",
5-
"dbaeumer.vscode-eslint",
65
"donjayamanne.githistory",
76
"eamodio.gitlens",
87
"editorconfig.editorconfig",
9-
"esbenp.prettier-vscode",
108
"github.codespaces",
119
"github.github-vscode-theme",
1210
"github.remotehub",
1311
"github.vscode-github-actions",
1412
"github.vscode-pull-request-github",
1513
"hediet.vscode-drawio",
14+
"howardzuo.vscode-favorites",
1615
"johnpapa.vscode-peacock",
1716
"mhutchie.git-graph",
1817
"ms-azuretools.vscode-docker",
18+
"ms-python.python",
1919
"ms-vscode-remote.remote-containers",
2020
"ms-vscode-remote.remote-wsl",
2121
"ms-vscode.hexeditor",

.vscode/settings.json

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,28 @@
33
"MD013": false,
44
"MD024": { "siblings_only": true },
55
"MD033": false
6-
}
6+
},
7+
"cSpell.words": [
8+
"addopts",
9+
"codegen",
10+
"customisable",
11+
"customised",
12+
"initialise",
13+
"Licence",
14+
"organisation",
15+
"pytest",
16+
"pytestmark",
17+
"pythonpath",
18+
"recognise",
19+
"retcode",
20+
"ruleset",
21+
"utilise",
22+
"utilised",
23+
"Utilising"
24+
],
25+
"python.testing.pytestArgs": [
26+
"."
27+
],
28+
"python.testing.unittestEnabled": false,
29+
"python.testing.pytestEnabled": true
730
}

CONTRIBUTING.md

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,40 @@
1-
# Contributing to this project
1+
# Contributing To This Project
22

3-
This page will be populated in the near future to outline the contribution process.
3+
With this project, we actively encourage anyone who may have any ideas or code that could make this repository better to contribute
4+
in any way they can.
5+
6+
## How To Contribute
7+
8+
If you have an idea about something new that could be added, then please raise a
9+
[Feature Request via the Issues tab](https://github.com/nhs-england-tools/playwright-python-blueprint/issues/new/choose) for this
10+
repository. Even if you don't feel you have the technical ability to implement the request, please raise an issue regardless as
11+
the maintainers of this project will frequently review any requests and attempt to implement if deemed suitable for this blueprint.
12+
13+
If you have some code you think could be implemented, please raise a Feature Request and
14+
[create a fork of this repository](https://github.com/nhs-england-tools/playwright-python-blueprint/fork) to experiment and ensure
15+
that the change you want to push back works as intended.
16+
17+
## Contribution Requirements
18+
19+
For any contributions to this project, the following requirements need to be met:
20+
21+
- You must be a member of the [NHS England Tools](https://github.com/nhs-england-tools) organisation on GitHub.
22+
- [Any commits must be signed](https://docs.github.com/en/authentication/managing-commit-signature-verification/signing-commits), so they show as verified once they reach GitHub. This checking serves as part of our CI/CD process, so unsigned commits will prevent a pull request from being merged.
23+
- For any utility methods that are added to this framework in the `utils` directory, the following applies:
24+
- Unit tests for the utility should be added to the `tests_utils` directory and need to be tagged with the `utils` mark.
25+
- Documentation for these classes and how to use any methods should also be added to the `docs/utilities-guide` directory.
26+
- Each method that is intended to be used as part of a class should have a correctly formatted docstring, to allow for developers using Intellisense within their IDE to understand what the code is intended to do.
27+
- All CI/CD checks will need to pass before any code is merged to the `main` branch - this includes ensuring appropriate formatting of code and documentation, security checks and that all unit and example tests pass.
28+
29+
## Things We Want
30+
31+
What we are particularly interested in is:
32+
33+
- Any utility classes that can uniformly applied to any project. This may be something that's been created for your own project and by doing some minor abstraction any other teams working in a similar way could adopt this functionality.
34+
- Any development code that supports executing this project in a CI/CD fashion. This primarily covers any changes that support development principles outlined in the [Software Engineering Quality Framework](https://github.com/NHSDigital/software-engineering-quality-framework), and could include logic around how the test code is containerized.
35+
- Any changes that allow for test reporting in a consistent, reliable, maintainable and interesting format for varying stakeholders. This includes logic that expands on from the reporting we generate, such as example scripts for how to generate dashboards using the data we generate.
36+
37+
Examples:
38+
39+
- Say you've created a utility for generating test patients within your application. Any elements of this code that could be universally applied and other teams are likely to use (e.g. NHS number, patient name) we would want in this blueprint. If there's something business specific to your project that exists as part of this code (e.g. a unique reference number that only applies to your service), then we would advise removing that logic from any code before raising a pull request here.
40+
- If you do end up adding a utility class in this format in a more generic way to this project, you can subsequently [inherit the utility class](https://docs.python.org/3/tutorial/classes.html#inheritance) to include your additional business-specific requirements within your own version of the class.

Makefile

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -5,32 +5,4 @@ include scripts/init.mk
55

66
# ==============================================================================
77

8-
# Example CI/CD targets are: dependencies, build, publish, deploy, clean, etc.
9-
10-
dependencies: # Install dependencies needed to build and test the project @Pipeline
11-
# TODO: Implement installation of your project dependencies
12-
13-
build: # Build the project artefact @Pipeline
14-
# TODO: Implement the artefact build step
15-
16-
publish: # Publish the project artefact @Pipeline
17-
# TODO: Implement the artefact publishing step
18-
19-
deploy: # Deploy the project artefact to the target environment @Pipeline
20-
# TODO: Implement the artefact deployment step
21-
22-
clean:: # Clean-up project resources (main) @Operations
23-
# TODO: Implement project resources clean-up step
24-
25-
config:: # Configure development environment (main) @Configuration
26-
# TODO: Use only 'make' targets that are specific to this project, e.g. you may not need to install Node.js
27-
make _install-dependencies
28-
29-
# ==============================================================================
30-
31-
${VERBOSE}.SILENT: \
32-
build \
33-
clean \
34-
config \
35-
dependencies \
36-
deploy \
8+
# NOTE: This project currently only uses this Makefile as part of CI/CD checks.

README.md

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ NOTE: This project is currently under initial development so isn't finalised, bu
1717
- [Configuration](#configuration)
1818
- [Getting Started](#getting-started)
1919
- [Utilities](#utilities)
20+
- [Contributing](#contributing)
2021
- [Contacts](#contacts)
2122
- [Licence](#licence)
2223

@@ -34,6 +35,8 @@ To utilise the blueprint code, you will need to have the following installed:
3435

3536
- [Python](https://www.python.org/downloads/) 3.12 or greater
3637

38+
> NOTE: There are currently known issues with Python 3.13 and Playwright, so if you encounter issues running this project whilst using Python 3.13 it is recommended to downgrade to Python 3.12 in the interim.
39+
3740
Whilst not required to get started, you may also want to [configure a Python virtual environment for your project](https://docs.python.org/3/library/venv.html) before proceeding with
3841
the configuration. If you are using an IDE such as Visual Studio Code or PyCharm, you will normally be prompted to do this automatically.
3942

@@ -54,6 +57,9 @@ so you can see the browser execution):
5457
pytest --tracing on --headed
5558
```
5659

60+
Alternatively if you are using Visual Studio Code as your IDE, we have pre-configured this project to work with the
61+
[Testing functionality](https://code.visualstudio.com/docs/editor/testing) so the example tests should be discovered automatically.
62+
5763
## Getting Started
5864

5965
> NOTE: This section is currently under development and requires further work, so links to pages within this repository may not be very useful at this stage.
@@ -74,16 +80,22 @@ This blueprint also provides the following utility classes, that can be used to
7480
|Utility|Description|
7581
|-------|-----------|
7682
|[Axe](./docs/utility-guides/Axe.md)|Accessibility scanning using axe-core.|
77-
|NHSNumberTools|Basic tools for working with NHS numbers.|
83+
|[Date Time Utility](./docs/utility-guides/DateTimeUtility.md)|Basic functionality for managing date/times.|
84+
|[NHSNumberTools](./docs/utility-guides/NHSNumberTools.md)|Basic tools for working with NHS numbers.|
85+
|[User Tools](./docs/utility-guides/UserTools.md)|Basic user management tool.|
86+
87+
## Contributing
88+
89+
Further guidance on contributing to this project can be found in our [contribution](./CONTRIBUTING.md) page.
7890

7991
## Contacts
8092

81-
If you have any queries regarding this blueprint, please contact [[email protected]](mailto:dave.harding1@nhs.net).
93+
If you have any ideas or require support for this project, please [raise an issue via this repository](https://github.com/nhs-england-tools/playwright-python-blueprint/issues/new/choose) using the appropriate template.
8294

83-
## Licence
95+
If you have any general queries regarding this blueprint, please contact [[email protected]](mailto:[email protected]).
8496

85-
> The [LICENCE.md](./LICENCE.md) file will need to be updated with the correct year and owner
97+
## Licence
8698

87-
Unless stated otherwise, the codebase is released under the MIT License. This covers both the codebase and any sample code in the documentation.
99+
Unless stated otherwise, the codebase is released under the [MIT License](LICENCE.md). This covers both the codebase and any sample code in the documentation.
88100

89101
Any HTML or Markdown documentation is [© Crown Copyright](https://www.nationalarchives.gov.uk/information-management/re-using-public-sector-information/uk-government-licensing-framework/crown-copyright/) and available under the terms of the [Open Government Licence v3.0](https://www.nationalarchives.gov.uk/doc/open-government-licence/version/3/).

0 commit comments

Comments
 (0)