Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
2036 commits
Select commit Hold shift + click to select a range
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
0f8646c
Support configuring console logger with Rebot (#5674) (#5677)
oboehmer May 25, 2026
42ffb17
cleanup
pekkaklarck May 13, 2026
0df07fd
Minor fix to `split_args_from_name_or_path`
pekkaklarck May 13, 2026
271cc80
Docs: Result files -> Execution artifects
pekkaklarck May 25, 2026
3c64992
Document custom console loggers for robot and rebot in User Guide (#5…
oboehmer May 26, 2026
95d9c60
Windows test fix
pekkaklarck May 26, 2026
c9474c3
Cleanup and formatting
pekkaklarck Jun 9, 2026
2e4319d
Fix handling invalid deferred annotations.
pekkaklarck Jun 9, 2026
9e438cd
Typing fixes/tuning
pekkaklarck Jun 17, 2026
c5e0f57
Add generic utility for validating literal values
pekkaklarck Jun 17, 2026
a5b5092
Refactor console loggers
pekkaklarck Jun 17, 2026
da8c40f
Expose built-in console loggers
pekkaklarck Jun 17, 2026
0e90680
regen
pekkaklarck Jun 17, 2026
6e361a0
Document that console loggers should treat passed objects as read-onl…
oboehmer Jun 22, 2026
d1fce4c
refactor
pekkaklarck Jun 26, 2026
6840438
Liboc: Enhance linking
pekkaklarck Jun 30, 2026
164c196
refactor
pekkaklarck Jun 30, 2026
af725f1
Linkify URLs automatically when using Markdown
pekkaklarck Jun 30, 2026
236cf51
Libdoc: Quote keyword/section/type name in links
pekkaklarck Jun 30, 2026
3933a49
Add markdown to unit test requirements
pekkaklarck Jul 1, 2026
016d991
Add doctring, reorganize code
pekkaklarck Jul 1, 2026
7909206
Libdoc: Limit section headers included in toc
pekkaklarck Jul 1, 2026
e51fb1f
Documentation: Overall Markdown syntax documentation
pekkaklarck Jul 1, 2026
19b615c
Bump actions/checkout from 6 to 7 (#5687)
dependabot[bot] Jul 3, 2026
fd8076d
Bump actions/setup-python from 6.2.0 to 6.3.0 (#5689)
dependabot[bot] Jul 3, 2026
befc4bb
feat: Google style docstring parsing (#5684)
aaltat Jul 3, 2026
facd85a
Enhance argument documentation parsing
pekkaklarck Jul 4, 2026
9aa5966
Libdoc: Fix handling `lineno=null` in JSON spec files
pekkaklarck Jul 4, 2026
2271bf0
regen
pekkaklarck Jul 4, 2026
54930c6
Libdoc: Fix handling source
pekkaklarck Jul 4, 2026
4ed0c2a
Better data sanitization in test
pekkaklarck Jul 4, 2026
93370c2
Regenerate data files and fix affected tests
pekkaklarck Jul 4, 2026
7cdf0fb
Enhance Libdoc documentation related to Markdown and otherwise
pekkaklarck Jul 4, 2026
0ded7a3
Libdoc: TOC enhancements
pekkaklarck Jul 4, 2026
264d913
chore: VSCode needs __init__.py files (#5698)
aaltat Jul 5, 2026
d61628a
feat: docstring parsing data to libdoc
aaltat Jul 4, 2026
4db9c75
chore: recreated json specs for atest
aaltat Jul 5, 2026
b24efb2
Test all kinds of arguments with spec files
pekkaklarck Jul 5, 2026
0e12e7c
Fix handling arg markers in Libdoc.
pekkaklarck Jul 5, 2026
dea6700
refactor tests
pekkaklarck Jul 5, 2026
e2cfc6c
Add Markdown to valid doc formats in Libdoc schemas
pekkaklarck Jul 5, 2026
5ffbe8a
Libdoc: Enhance docstring parsing tests.
pekkaklarck Jul 5, 2026
f5bd00a
Fix type_name crashing on objects without __class__ (#5699) (#5700)
kranthi9558 Jul 7, 2026
768a9c1
Fine-tune docstring parsing (#5604)
pekkaklarck Jul 8, 2026
a49ee26
Apply automatic code formatting also to UG
pekkaklarck Jul 8, 2026
2301a73
Libdoc: Document arg and return documentation syntax
pekkaklarck Jul 8, 2026
e469ef1
Libdoc: Show argument and return docs in HTML (#5701, #5604)
aaltat Jul 9, 2026
ca77c5b
Libdoc: No not require empty line between Args and Returns
pekkaklarck Jul 9, 2026
77c9eef
libdoc: add link to importing section to UI
aaltat Jul 9, 2026
612ff75
libdoc: parse raises documentation
aaltat Jul 9, 2026
26b40fd
libdoc enhance tags view
aaltat Jul 9, 2026
bebdc16
regen libdoc template
aaltat Jul 9, 2026
bdb07df
Do not force ArgumentSpec.docs to dict
aaltat Jul 9, 2026
eb75f4c
Generate User Guide's Libdoc examples
pekkaklarck Jul 10, 2026
dcdb222
Libdoc: Document 'Raises:' support
pekkaklarck Jul 10, 2026
18ce0c1
Libdoc: Add explicit None return type information to spec files
pekkaklarck Jul 10, 2026
e00d6e8
Libdoc: Fix parsing docstring info with dynamic library `__init__`
pekkaklarck Jul 10, 2026
7575d75
libdoc: Importing section hower fix
Jul 10, 2026
df22e3d
libdoc: html template to wrap long words in tables
Jul 10, 2026
e75db71
libdoc: support None and when to show returnDoc
Jul 10, 2026
51aaf82
libdoc: test data update for html
Jul 10, 2026
6691a01
libdoc: template supports missing returnType
aaltat Jul 11, 2026
919132a
libdoc: regenerate libdoc.html
aaltat Jul 11, 2026
c41f72e
Refactor
pekkaklarck Jul 10, 2026
b2acf41
Enhance parsing keyword tags from documentation
pekkaklarck Jul 14, 2026
f37c0d3
cleanup
pekkaklarck Jul 14, 2026
90fa7f6
Refactor parsing information from keyword documentation.
pekkaklarck Jul 14, 2026
6bdcc5d
Documentation enhancements
pekkaklarck Jul 15, 2026
64d7285
Handle `isinstance()` raising `AttributeError`
pekkaklarck Jul 15, 2026
1b65c5f
Document deprecated translations in User Guide automatically
pekkaklarck Jul 16, 2026
d70992f
Change "Unités de test" to "Cas de test" in French translation
pekkaklarck Jul 16, 2026
d883986
Release notes for 7.5b1
pekkaklarck Jul 17, 2026
a75aecf
Updated version to 7.5b1
pekkaklarck Jul 17, 2026
20a5e37
Back to dev version
pekkaklarck Jul 17, 2026
88058af
Release notes tuning
pekkaklarck Jul 17, 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@v7

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.3.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.3.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@v7

- name: Setup python for starting the tests
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.3.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.3.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@v7

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.3.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@v7

- name: Setup python ${{ matrix.python-version }}
uses: actions/setup-python@v3.1.2
uses: actions/setup-python@v6.3.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@v7

- 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