Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1961 commits
Select commit Hold shift + click to select a range
421993a
Enhance typing
pekkaklarck Nov 1, 2025
d76f27c
Refactor hadling Secret arguments
pekkaklarck Nov 2, 2025
c3d3ba8
Add typing to Process library
pekkaklarck Nov 2, 2025
d9fe972
libdoc: fix formatting of union types
yanne Nov 2, 2025
c6452fb
libdoc: regen template
yanne Nov 2, 2025
e3e581d
Add typing to Dialogs
pekkaklarck Nov 2, 2025
a002f68
Add typing to Screenshot library
pekkaklarck Nov 2, 2025
20c3077
Fix Libdoc tests
pekkaklarck Nov 2, 2025
5188f37
Refactor tests
pekkaklarck Nov 3, 2025
469f3a8
LOGLEVEL -> LogLevel
pekkaklarck Nov 3, 2025
9a20252
Make deprecation of `Run` and others more explicit
pekkaklarck Nov 3, 2025
eb7d773
Add typing to OperatingSystem.
pekkaklarck Nov 3, 2025
6631a15
libdoc: fix typeinfo rendering for good
yanne Nov 4, 2025
d2b827f
libdoc: regen template
yanne Nov 4, 2025
5cdc0c4
Bump actions/upload-artifact from 4 to 5 (#5525)
dependabot[bot] Nov 5, 2025
2642026
fix minor error in get_variable_value docstring (#5511)
oboehmer Nov 5, 2025
a182b59
Add note about union conversion order
pekkaklarck Nov 4, 2025
53e3c50
Enhance documentation of new `loglevel.LogLevel`
pekkaklarck Nov 4, 2025
5b2bc8b
Revert change to accept Iterables in Sequence/Set conversion
pekkaklarck Nov 6, 2025
97161e8
libdoc: write generator correctly
yanne Nov 7, 2025
f089c2a
Merge pull request #5514 from robotframework/dependabot/github_action…
yanne Nov 7, 2025
f8ce19b
Support not printing errors and warnings to console (#5462)
adombeck Nov 7, 2025
4823722
Formatting
pekkaklarck Nov 7, 2025
1cf26b6
Fix and refactor logging, especially writing to console
pekkaklarck Nov 7, 2025
cd0ef71
Add annotations to Collections (#5528)
robinmackaij Nov 8, 2025
0c99a1b
Refactor
pekkaklarck Nov 8, 2025
7ad3aaa
Refactor tests
pekkaklarck Nov 8, 2025
54d5326
Little cleanup to Collections typing
pekkaklarck Nov 8, 2025
0fef52c
A bit more cleanup to Collections typing
pekkaklarck Nov 8, 2025
c934ad9
Test fix after typing change
pekkaklarck Nov 8, 2025
ebea6d9
Release notes for 7.4b2
pekkaklarck Nov 8, 2025
81792fa
Enhance Secret docs
pekkaklarck Nov 8, 2025
9286a86
Updated version to 7.4b2
pekkaklarck Nov 8, 2025
fac12f2
Back to dev version
pekkaklarck Nov 8, 2025
b93822a
7.4b2 -> 7.4 beta 2
pekkaklarck Nov 8, 2025
1fe78a0
Robot -> Robin :)
pekkaklarck Nov 8, 2025
b206c89
libdoc: regen template
yanne Nov 10, 2025
dbc28e7
fix spaces between libdoc tags
yanne Nov 12, 2025
bc1e6b8
libdoc: regen template
yanne Nov 12, 2025
8fb9977
remove accidentally added file
yanne Nov 13, 2025
4ee0523
Convert empty string to `None`
pekkaklarck Nov 13, 2025
15f38bc
Refactor
pekkaklarck Nov 13, 2025
960a4d2
Container -> Collection
pekkaklarck Nov 13, 2025
8a7ad88
Fix Python version dependent test
pekkaklarck Nov 13, 2025
18abf1a
Clarify docs about deprecation
pekkaklarck Nov 15, 2025
54ad398
Fine-tune type docs
pekkaklarck Nov 15, 2025
b414700
Some more typing
pekkaklarck Nov 15, 2025
993c295
Minor fixes
pekkaklarck Nov 15, 2025
f9d6a52
Enhance `logger` typing.
pekkaklarck Nov 17, 2025
97dce52
Add typing to BuiltIn, cleanup and minor enhancements
pekkaklarck Nov 17, 2025
ea3c472
Avoid deprecated `NO VALUES` with `values` argument
pekkaklarck Nov 17, 2025
8aa0dab
Refactor
pekkaklarck Nov 18, 2025
b20e98d
Deprecate 'NO VALUES' with some BuiltIn and Collections keywords
pekkaklarck Nov 18, 2025
2328262
Fix test on Python 3.14
pekkaklarck Nov 18, 2025
ca6fe63
Deprecate using empty string as start index
pekkaklarck Nov 18, 2025
0a55194
Make normalization recursive in BuiltIn
pekkaklarck Nov 20, 2025
8ffacd2
Enhance bytes conversion to support `int` and `list[int]`
pekkaklarck Nov 21, 2025
dbaa27a
Enhance bytes support with BuiltIn and Collections
pekkaklarck Nov 21, 2025
6ba86bb
Mention that also bytes support `ignore_case` in RF 7.4
pekkaklarck Nov 21, 2025
9b995ab
Remove resource file with useless keyword
pekkaklarck Nov 21, 2025
cc8af56
Collections: Change mutating keywords to also return values
pekkaklarck Nov 21, 2025
9dd7786
Remove references to Python 3.
pekkaklarck Nov 26, 2025
92a9364
Fix using `Callable[[], Any]` in type hints.
pekkaklarck Nov 26, 2025
ec41551
Secret should fail on str and bool types (#5547)
aaltat Nov 26, 2025
24ef594
Bump actions/checkout from 5 to 6 (#5556)
dependabot[bot] Nov 26, 2025
d3f9c22
Bump actions/setup-python from 6.0.0 to 6.1.0 (#5560)
dependabot[bot] Nov 26, 2025
5474d2c
Add annotations to XML (#5542)
robinmackaij Nov 27, 2025
d5ee06e
Enhance ETSource typing
pekkaklarck Nov 27, 2025
af6666a
Enhance XML typing.
pekkaklarck Nov 27, 2025
c02d1c7
Remove documentation about Boolean arguments
pekkaklarck Nov 27, 2025
2e8b334
libdoc: html escape type names
yanne Nov 27, 2025
cfd5a6d
libdoc: regen template
yanne Nov 27, 2025
4d7d8e4
libdoc: remove type links from std return types
yanne Nov 28, 2025
d2fd0a9
libdoc: regen template
yanne Nov 28, 2025
71bd11b
Make tests faster by using shorter timeouts
pekkaklarck Nov 29, 2025
dfa5580
Run keyword teardown properly after timeout
pekkaklarck Nov 29, 2025
cab0881
Increase timeouts to hopefully fix tests on CI
pekkaklarck Nov 29, 2025
957be4f
Increase timeouts to hopefully fix tests on CI v2
pekkaklarck Nov 29, 2025
4c012a0
Adjust timeouts to hopefully fix tests on CI v3
pekkaklarck Nov 29, 2025
3555d5b
Convert bytes to `str` sanely in argument conversion
pekkaklarck Nov 30, 2025
fcb0f80
Add type hints to String library (#5554)
silentw0lf Dec 1, 2025
5c6f27d
Deprecate using empty string as an index
pekkaklarck Dec 1, 2025
80b1919
Support bytes with `Should (Not) Match`
pekkaklarck Dec 1, 2025
16479a7
Cleanup
pekkaklarck Dec 1, 2025
817ed87
Remove unnecessary conversion code.
pekkaklarck Dec 1, 2025
f60ac8f
First stab at ensuring bytes compatibility in String
pekkaklarck Dec 1, 2025
b7a5673
Test cleanup
pekkaklarck Dec 1, 2025
297889d
Finalize bytes support in String library
pekkaklarck Dec 1, 2025
d8a899c
String: Deprecate interpreting empty string as default value
pekkaklarck Dec 1, 2025
6545ffa
BuiltIn: Deprecate non-standard ways to get length
pekkaklarck Dec 2, 2025
6759c27
Pin rellu to < 2 until we start using MD instead of reST
pekkaklarck Dec 2, 2025
5f6ebbc
Release notes for 7.4rc1
pekkaklarck Dec 2, 2025
f3f970c
Minor fixes
pekkaklarck Dec 2, 2025
99a2c95
Updated version to 7.4rc1
pekkaklarck Dec 2, 2025
71964d7
Updated version to 7.4rc1, for real
pekkaklarck Dec 2, 2025
18bb1df
Back to dev version
pekkaklarck Dec 2, 2025
b0cfca4
Add target final release date
pekkaklarck Dec 2, 2025
02f357c
Handle `object` in union so that conversion to other types is attempted
pekkaklarck Dec 8, 2025
b146907
Cleanup
pekkaklarck Dec 9, 2025
d2df55a
Fix regression with console logging during library init
pekkaklarck Dec 9, 2025
b3f9e40
Add `KeywordName` and `KeywordArguments`
pekkaklarck Dec 9, 2025
24a71ab
Rewrite section about using full keyword names
pekkaklarck Dec 9, 2025
e32d91b
Release notes for 7.4rc2
pekkaklarck Dec 9, 2025
bf44878
Small doc fixes
pekkaklarck Dec 9, 2025
17c476d
Updated version to 7.4rc2
pekkaklarck Dec 9, 2025
a6e6d1d
Back to dev version
pekkaklarck Dec 9, 2025
fcdc81a
Fix `TestSuite.from_dict` if all tests pass and teardown fails
pekkaklarck Dec 11, 2025
5a9ce16
Make timeout tests faster and hopefully more stable
pekkaklarck Dec 11, 2025
8be4107
Adjust timeouts and sleep times in timeout tests
pekkaklarck Dec 11, 2025
db2f675
Reorganize code
pekkaklarck Dec 12, 2025
28b2e6a
Process: Add custom docs for Popen and ProcessResult
pekkaklarck Dec 12, 2025
355b906
BuiltIn: Add custom doc for Expression
pekkaklarck Dec 12, 2025
12a38b1
Release notes for 7.4
pekkaklarck Dec 12, 2025
06714ea
Updated version to 7.4
pekkaklarck Dec 12, 2025
9541fae
Trying to fix flakey timeout test
pekkaklarck Dec 12, 2025
f20df31
Avoid syntax deprecated by #5537 in example
pekkaklarck Dec 12, 2025
1ae8215
Fix link target
pekkaklarck Dec 12, 2025
3990bdb
Fix another link target
pekkaklarck Dec 12, 2025
b4e36d7
Back to dev version
pekkaklarck Dec 12, 2025
a2e4d45
Avoid incorrect deprecation warning with VAR
pekkaklarck Dec 17, 2025
3f61a60
Mention #5025 under backwards incompatible changes
pekkaklarck Dec 17, 2025
cb709da
Handle `typing_extensions.Literal` with Python < 3.10.1
pekkaklarck Dec 17, 2025
b35ff01
Fix `type_repr` if the class has `_name` attribute.
pekkaklarck Dec 17, 2025
5032979
Add NormalizedDict.fromkeys convenience method.
pekkaklarck Dec 18, 2025
6c6c2a6
Mention that problems caused by #5025 will be fixed in RF 7.4.1.
pekkaklarck Dec 18, 2025
1cfe12d
Fix link
pekkaklarck Dec 18, 2025
cccfeb5
Allow calling BuiltIn methods using named argument syntax
pekkaklarck Dec 23, 2025
0fa36aa
Bump actions/upload-artifact from 5 to 6 (#5576)
dependabot[bot] Dec 23, 2025
f6700d0
Fix unit test with Python 3.15.0a3 (#5586)
fedepell Dec 23, 2025
b01e351
Release notes for 7.4.1
pekkaklarck Dec 23, 2025
f58ea82
Updated version to 7.4.1
pekkaklarck Dec 23, 2025
131f22b
Back to dev version
pekkaklarck Dec 23, 2025
6247f60
Refactor
pekkaklarck Jan 12, 2026
b4d9f67
Enhance documentation of full name of user keywords
pekkaklarck Jan 13, 2026
fad672d
Enhance docs related to suite init files
pekkaklarck Jan 13, 2026
62ef89a
Avoid Python version specific code in tests
pekkaklarck Jan 13, 2026
6114f0e
Libdoc: Include type docs in resource file documentation
pekkaklarck Jan 13, 2026
327e799
Libdoc: Test user keyword w/ embedded and normal args
pekkaklarck Jan 14, 2026
89aed66
remove useless casts
pekkaklarck Jan 14, 2026
f8afedd
CRLF -> LF
pekkaklarck Jan 19, 2026
c196988
Libdoc: Refactor handling link targets
pekkaklarck Jan 19, 2026
b309baf
libdoc: fix introduction element id
yanne Jan 19, 2026
aef35c5
libdoc: regen template
yanne Jan 19, 2026
ffc8301
docs: added deprecation warning to --help & user guide (#5600)
MarvKler Jan 21, 2026
d36cf3f
Enhance notes about Testdoc deprecation.
pekkaklarck Jan 21, 2026
7a3e771
Document that Telnet's mandatory dependency w/ Python 3.13+
pekkaklarck Jan 26, 2026
432a2dd
Fix tests after doc changes
pekkaklarck Jan 26, 2026
e0fa9ad
libdoc: fix ordered list rendering
yanne Feb 4, 2026
b9a3363
libdoc: regen template
yanne Feb 4, 2026
f03e945
Cleanup
pekkaklarck Feb 8, 2026
faaf958
Bump the npm_and_yarn group across 1 directory with 2 updates
dependabot[bot] Feb 28, 2026
7dafb73
Better name for keyword used in test
pekkaklarck Mar 2, 2026
c745f0c
Fix accessing NormalizedDict with non-string keys
pekkaklarck Mar 2, 2026
cbdbc58
Explicit error if importing by path and module name contains dots
pekkaklarck Mar 2, 2026
0a2b0b6
Bump actions/upload-artifact from 6 to 7 (#5621)
dependabot[bot] Mar 2, 2026
3300db1
Merge pull request #5623 from robotframework/dependabot/npm_and_yarn/…
yanne Mar 3, 2026
050dd39
formatting
pekkaklarck Mar 3, 2026
9e9f889
Release notes for 7.4.2
pekkaklarck Mar 3, 2026
b30225f
Updated version to 7.4.2
pekkaklarck Mar 3, 2026
4874922
Back to dev version
pekkaklarck Mar 3, 2026
5582394
Let's start RF 7.5 development
pekkaklarck Mar 3, 2026
c81f7f7
Enhance Testdoc deprecation warning
pekkaklarck Mar 3, 2026
17503f0
Loundly deprecate built-in Testdoc
pekkaklarck Mar 3, 2026
d1b644e
Add Markdown support to Libdoc
pekkaklarck Mar 3, 2026
a0f211a
Add markdown to atest requirements
pekkaklarck Mar 3, 2026
35d4751
Enhance Libdoc's Markdown support.
pekkaklarck Mar 13, 2026
d24b07c
Remove unnecessary and outdated appendix
pekkaklarck Mar 17, 2026
6ca3aae
Reuse robot.api.deco.DocFormat
pekkaklarck Mar 17, 2026
b6f50b2
Fix precision issues with listener priority
pekkaklarck Mar 19, 2026
14a9a15
Docs: Demote hybrid library API
pekkaklarck Mar 24, 2026
82fcc57
Docs: Promote dynamic library API
pekkaklarck Mar 24, 2026
81eafa5
String: Fix error reporting in automatic bytes conversion
pekkaklarck Mar 25, 2026
9a72f6e
Bump picomatch in /src/web in the npm_and_yarn group across 1 directory
dependabot[bot] Mar 25, 2026
aacd07f
formatting
pekkaklarck Mar 27, 2026
021be25
Deprecate `robot.utils.read_rest_data`
pekkaklarck Mar 27, 2026
1121a9b
refactor
pekkaklarck Mar 27, 2026
c771e5d
npm: bump handlebars dependency to 4.7.9
fedepell Mar 29, 2026
c38d22e
libdoc: styles for admonitions
yanne Mar 31, 2026
35e8081
libdoc: adjust header top margins, they were too big
yanne Mar 31, 2026
53053dc
libdoc: fix list styles to be consistent with ul, ol
yanne Mar 31, 2026
5bba163
libdoc: add margin-bottom to table
yanne Mar 31, 2026
dff3bc3
libdoc: regen template
yanne Mar 31, 2026
76ae607
Merge pull request #5641 from fedepell/handlebars_4.7.9
yanne Mar 31, 2026
86aab65
Merge pull request #5638 from robotframework/dependabot/npm_and_yarn/…
yanne Mar 31, 2026
8980648
Cleanup
pekkaklarck Apr 1, 2026
764219f
Fix handling mutable IF conditions
pekkaklarck Apr 1, 2026
84c0559
atest: add admonition types to testdata
yanne Apr 3, 2026
462cec8
libdoc: finetune admonition styles, add danger type
yanne Apr 3, 2026
ce8f69b
libdoc: regen template
yanne Apr 3, 2026
2446b4e
libdoc: render admonition title in bold
yanne Apr 3, 2026
0a288fe
Update ControlStructures.rst (#5652)
am9417 Apr 13, 2026
6b8a710
Handle invalid `|` usage properly in TypeInfoParser (#5651)
sudheerr937-ai Apr 14, 2026
92c6559
Fine tuning related to #5650
pekkaklarck Apr 14, 2026
b7d6da4
Refactor variable finding
pekkaklarck Apr 16, 2026
8c68213
Enhance variable resolving performance
pekkaklarck Apr 17, 2026
d78e064
Enhance performance of reporting non-existing variables
pekkaklarck Apr 17, 2026
fee4213
Enhance API doc
pekkaklarck Apr 17, 2026
9120c45
Enhance error reporting
pekkaklarck Apr 17, 2026
091119e
Bump actions/setup-python from 6.1.0 to 6.2.0 (#5605)
dependabot[bot] Apr 20, 2026
1483f36
Refactor
pekkaklarck Apr 20, 2026
a8b4ed8
Refactor
pekkaklarck Apr 20, 2026
20c6d88
Any -> object
pekkaklarck Apr 21, 2026
3f280f6
Fix handling `str` sub types in argument conversion
pekkaklarck Apr 21, 2026
6f372ad
Enable embedding tests/tasks to Markdown files (#5633)
seto Apr 21, 2026
b0b09d0
Move Markdown parser to more logical place.
pekkaklarck Apr 21, 2026
25e77cc
Refactor MarkdownParser
pekkaklarck Apr 21, 2026
83bfa86
Refactor
pekkaklarck Apr 21, 2026
e551b1f
Formatting
pekkaklarck Apr 21, 2026
a0a4ec7
Refactor
pekkaklarck Apr 21, 2026
007bc0c
Enhance MarkdownParser unit tests
pekkaklarck Apr 21, 2026
02dde9a
Enhance tests
pekkaklarck Apr 22, 2026
61baa13
Small performance enhancements to `Tags`
pekkaklarck Apr 22, 2026
7635eb1
Avoid `XORY` tag patterns
pekkaklarck Apr 23, 2026
41b2e96
Refactor processing tag patterns
pekkaklarck Apr 23, 2026
64fa700
Space and case cleanup
pekkaklarck Apr 24, 2026
b90ed0e
Deprecate tag patterns like `XORY`.
pekkaklarck Apr 27, 2026
e688dec
Make TagPattern indexable
pekkaklarck Apr 27, 2026
397975a
Fix header formatting and link target
pekkaklarck Apr 27, 2026
c064b22
Deprecate `&` operator with tag patterns
pekkaklarck Apr 27, 2026
9822222
Fix Python < 3.11 compatibility
pekkaklarck Apr 27, 2026
bb9f25e
Fix `get_index_from_list` with negative start indices (#5654)
sudheerr937-ai Apr 27, 2026
ec614b7
Fix `Get Index From List` if negative start is out-of-bounds
pekkaklarck Apr 28, 2026
5cf8ab2
Collections: Documentation enhancements
pekkaklarck Apr 28, 2026
823d34d
Document Markdown support for tests (#5659)
seto Apr 28, 2026
950a63d
Minor enhancements to Markdown format docs.
pekkaklarck Apr 28, 2026
69eca0e
Enhance continue-on-failure docs
pekkaklarck Apr 29, 2026
8065f6c
Fix handing deferred annotations not available during runtime (#5665)
klaoude May 5, 2026
1710086
Make `TimeoutExceeded` not catchable as `Exception` (#5611)
JFoederer May 5, 2026
3839159
Minor formatting fix
pekkaklarck May 5, 2026
58d09bc
Enhance docs related to `TimeoutExceeded`.
pekkaklarck May 5, 2026
ca52a2e
Make it easier to create ListenerFacade
pekkaklarck May 5, 2026
d9fda43
Make constants explicitly `Final`
pekkaklarck May 5, 2026
a9f153a
Remove unnecessary quotes from variable annotations
pekkaklarck May 6, 2026
39ccb43
Reformat stringified unions in annotations
pekkaklarck May 6, 2026
bc9f6e0
Ignore annotation formatting commits
pekkaklarck May 6, 2026
e5fec92
Add typing to Language class attributes.
pekkaklarck May 6, 2026
60dae9e
Refactor
pekkaklarck May 6, 2026
5d901b1
Got `Language.name` from class name if it has no docstring
pekkaklarck May 6, 2026
ab3bd67
Deprecation support to `Languages`
pekkaklarck May 7, 2026
e29480a
Clarify docs about deprecating translations
pekkaklarck May 7, 2026
749b53e
Avoid initializing ConsoleOutput when creating LOGGER
pekkaklarck May 11, 2026
9372ebd
Wrap console loggers with `ListenerFacade` instead of interiting from…
oboehmer May 11, 2026
b00a83d
Rename
pekkaklarck May 12, 2026
98bddc7
Enhance result file tests
pekkaklarck May 12, 2026
e9b11f5
Add `result_file` listener v3 method.
pekkaklarck May 12, 2026
d1cb31c
Document `result_file` listener method in User Guide
pekkaklarck May 12, 2026
05a4d82
Use term "result files" when referring to all result files
pekkaklarck May 12, 2026
e6bcb5f
Fix Importer Path test on macOS (#5669)
oboehmer May 12, 2026
32bdfe7
Fix tests on Windows
pekkaklarck May 13, 2026
76d5d01
Add support for custom console loggers (#5672)
oboehmer May 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
# Code formatting.
d2cdcfa9863e405983ecafc47e2e7e5af9da68f4
# Remove unnecessary quotes from variable annotations.
a9f153afce8495f66cf0f52b430beeaf346f7b48
# Reformat stringified unions in annotations.
39ccb4364f5879a915f697f256f32e6919717eb0
72 changes: 10 additions & 62 deletions .github/workflows/acceptance_tests_cpython.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v*-maintenance
paths:
- '.github/workflows/**'
- 'src/**'
Expand All @@ -18,30 +19,26 @@ jobs:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.7', '3.8', '3.9', 'pypy3' ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11' ]
include:
- os: ubuntu-latest
set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
- os: windows-latest
set_codepage: chcp 850
- os: windows-latest
python-version: '3.9'
set_codepage: chcp 850
atest_args: --exclude require-lxml --exclude require-screenshot
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: 'pypy-3.11'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.2.0
with:
python-version: 3.6
python-version: '3.13'
architecture: 'x64'

- name: Get test starter Python at Windows
Expand All @@ -53,7 +50,7 @@ jobs:
if: runner.os != 'Windows'

- name: Setup python ${{ matrix.python-version }} for running the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.2.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand All @@ -66,22 +63,16 @@ jobs:
run: echo "BASE_PYTHON=$(which python)" >> $GITHUB_ENV
if: runner.os != 'Windows'

- name: Install Report handling tools to Windows
run: |
choco install curl -y --no-progress
choco install zip -y --no-progress
if: runner.os == 'Windows'

- name: Install Ubuntu PyPy dependencies
run: |
sudo apt-get update
sudo apt-get -y -q install libxslt-dev libxml2-dev
if: contains(matrix.python-version, 'pypy') && contains(matrix.os, 'ubuntu')

- name: Install screen and report handling tools, and other required libraries to Linux
- name: Install screen and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
sudo apt-get -y -q install xvfb scrot libxml2-dev libxslt1-dev
if: contains(matrix.os, 'ubuntu')

- name: Run acceptance tests
Expand All @@ -92,52 +83,9 @@ jobs:
${{ matrix.set_display }}
${{ env.ATEST_PYTHON }} atest/run.py --interpreter ${{ env.BASE_PYTHON }} --exclude no-ci ${{ matrix.atest_args }} atest/robot

- name: Delete output.xml (on Win)
run: |
Get-ChildItem atest/results -Include output.xml -Recurse | Remove-Item
if: always() && runner.os == 'Windows'

- name: Delete output.xml (on Unix-like)
run: |
find atest/results -type f -name 'output.xml' -exec rm {} +
if: always() && runner.os != 'Windows'

- name: Archive acceptances test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v7
with:
name: at-results-${{ matrix.python-version }}-${{ matrix.os }}
path: atest/results
if: always() && job.status == 'failure'

- name: Upload results on *nix
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" >> $GITHUB_ENV
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" >> $GITHUB_ENV
if: always() && job.status == 'failure' && runner.os != 'Windows'

- name: Upload results on Windows
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: always() && job.status == 'failure' && runner.os == 'Windows'

- uses: octokit/request-action@971ad48f9c40ed001c41c2671b1e6e8e8165d5af
name: Update status with Github Status API
id: update_status
with:
route: POST /repos/:repository/statuses/:sha
repository: ${{ github.repository }}
sha: ${{ github.sha }}
state: "${{env.JOB_STATUS}}"
target_url: "${{env.REPORT_URL}}"
description: "Link to test report."
context: at-results-${{ matrix.python-version }}-${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.STATUS_UPLOAD_TOKEN }}
if: always() && job.status == 'failure'
82 changes: 9 additions & 73 deletions .github/workflows/acceptance_tests_cpython_pr.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Acceptance tests (CPython + PyPy)
name: Acceptance tests (CPython)

on:
pull_request:
Expand All @@ -15,32 +15,23 @@ jobs:
fail-fast: true
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.9' ]
python-version: [ '3.8', '3.13' ]
include:
- os: ubuntu-latest
set_display: export DISPLAY=:99; Xvfb :99 -screen 0 1024x768x24 -ac -noreset & sleep 3
- os: windows-latest
set_codepage: chcp 850
- os: windows-latest
python-version: '3.9'
set_codepage: chcp 850
atest_args: --exclude require-lxml --exclude require-screenshot
exclude:
- os: windows-latest
python-version: 'pypy2'
- os: windows-latest
python-version: 'pypy3'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.2.0
with:
python-version: 3.6
python-version: '3.13'
architecture: 'x64'

- name: Get test starter Python at Windows
Expand All @@ -52,7 +43,7 @@ jobs:
if: runner.os != 'Windows'

- name: Setup python ${{ matrix.python-version }} for running the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.2.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand All @@ -65,22 +56,10 @@ jobs:
run: echo "BASE_PYTHON=$(which python)" >> $GITHUB_ENV
if: runner.os != 'Windows'

- name: Install Report handling tools to Windows
run: |
choco install curl -y --no-progress
choco install zip -y --no-progress
if: runner.os == 'Windows'

- name: Install Ubuntu PyPy dependencies
- name: Install screen and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install libxslt-dev libxml2-dev
if: contains(matrix.python-version, 'pypy') && contains(matrix.os, 'ubuntu')

- name: Install screen and report handling tools, and other required libraries to Linux
run: |
sudo apt-get update
sudo apt-get -y -q install xvfb scrot zip curl libxml2-dev libxslt1-dev
sudo apt-get -y -q install xvfb scrot libxml2-dev libxslt1-dev
if: contains(matrix.os, 'ubuntu')

- name: Run acceptance tests
Expand All @@ -91,52 +70,9 @@ jobs:
${{ matrix.set_display }}
${{ env.ATEST_PYTHON }} atest/run.py --interpreter ${{ env.BASE_PYTHON }} --exclude no-ci ${{ matrix.atest_args }} atest/robot

- name: Delete output.xml (on Win)
run: |
Get-ChildItem atest/results -Include output.xml -Recurse | Remove-Item
if: always() && runner.os == 'Windows'

- name: Delete output.xml (on Unix-like)
run: |
find atest/results -type f -name 'output.xml' -exec rm {} +
if: always() && runner.os != 'Windows'

- name: Archive acceptances test results
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v7
with:
name: at-results-${{ matrix.python-version }}-${{ matrix.os }}
path: atest/results
if: always() && job.status == 'failure'

- name: Upload results on *nix
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" >> $GITHUB_ENV
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" >> $GITHUB_ENV
if: always() && job.status == 'failure' && runner.os != 'Windows'

- name: Upload results on Windows
run: |
echo '<html><head><meta http-equiv = "refresh" content =" 0 ; url = /report.html"></head></html>' > atest/results/index.html
zip -r -j site.zip atest/results > no_output 2>&1
curl -s -H "Content-Type: application/zip" -H "Authorization: Bearer ${{ secrets.NETLIFY_TOKEN }}" --data-binary "@site.zip" https://api.netlify.com/api/v1/sites > response.json
echo "REPORT_URL=$(cat response.json|python -c "import sys, json; print('https://' + json.load(sys.stdin)['subdomain'] + '.netlify.com')")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
echo "JOB_STATUS=$(python -c "print('${{ job.status }}'.lower())")" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
if: always() && job.status == 'failure' && runner.os == 'Windows'

- uses: octokit/request-action@971ad48f9c40ed001c41c2671b1e6e8e8165d5af
name: Update status with Github Status API
id: update_status
with:
route: POST /repos/:repository/statuses/:sha
repository: ${{ github.repository }}
sha: ${{ github.sha }}
state: "${{env.JOB_STATUS}}"
target_url: "${{env.REPORT_URL}}"
description: "Link to test report."
context: at-results-${{ matrix.python-version }}-${{ matrix.os }}
env:
GITHUB_TOKEN: ${{ secrets.STATUS_UPLOAD_TOKEN }}
if: always() && job.status == 'failure'
24 changes: 7 additions & 17 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
branches:
- main
- master
- v*-maintenance
paths:
- '.github/workflows/**'
- 'src/**'
Expand All @@ -19,35 +20,24 @@ jobs:
fail-fast: false
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.7', '3.8', '3.9', 'pypy3' ]
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14', 'pypy-3.11' ]
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: 'pypy-3.11'

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.2.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'

- name: Run unit tests with coverage
- name: Run unit tests
run: |
python -m pip install coverage
python -m pip install -r utest/requirements.txt
python -m coverage run --branch utest/run.py -v

- name: Prepare HTML/XML coverage report
run: |
python -m coverage xml -i
if: always()

- uses: codecov/codecov-action@e3c560433a6cc60aec8812599b7844a7b4fa0d71
with:
name: ${{ matrix.python-version }}-${{ matrix.os }}
if: always()
python utest/run.py -v
9 changes: 3 additions & 6 deletions .github/workflows/unit_tests_pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,19 +15,16 @@ jobs:
fail-fast: true
matrix:
os: [ 'ubuntu-latest', 'windows-latest' ]
python-version: [ '3.6', '3.9' ]
exclude:
- os: windows-latest
python-version: 'pypy3'
python-version: [ '3.8', '3.13' ]

runs-on: ${{ matrix.os }}

name: Python ${{ matrix.python-version }} on ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v6

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.2.0
with:
python-version: ${{ matrix.python-version }}
architecture: 'x64'
Expand Down
10 changes: 0 additions & 10 deletions .github/workflows/upload_test_reports.yml

This file was deleted.

30 changes: 30 additions & 0 deletions .github/workflows/web_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
name: Web tests with jest

on:
push:
branches:
- main
- master
- v*-maintenance

paths:
- '.github/workflows/**'
- 'src/web**'
- '!**/*.rst'

jobs:
jest_tests:

runs-on: 'ubuntu-latest'

name: Jest tests for the web components
steps:
- uses: actions/checkout@v6

- name: Setup Node
uses: actions/setup-node@v6
with:
node-version: "16"
- name: Run tests
working-directory: ./src/web
run: npm install && npm run test
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,8 @@ __pycache__
.classpath
.settings
.jython_cache
.mypy_cache/
node_modules
.cache/
.parcel-cache/
.claude/
Loading