Skip to content

Commit 7c825de

Browse files
committed
feat!: drop Python 3.8 and 3.9 support, require Python 3.10+
BREAKING CHANGE: Python 3.8 and 3.9 are no longer supported. Minimum required version is now Python 3.10.
1 parent 5356267 commit 7c825de

File tree

14 files changed

+55
-54
lines changed

14 files changed

+55
-54
lines changed

.github/copilot-instructions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ RobotCode is a comprehensive Robot Framework toolkit that provides IDE extension
4141
## Tech Stack
4242

4343
### Core Technologies
44-
- **Language Server:** Python 3.8-3.13 with asyncio
44+
- **Language Server:** Python 3.10-3.14 with asyncio
4545
- **Protocol:** Language Server Protocol (LSP) + Debug Adapter Protocol (DAP)
4646
- **Parser:** Robot Framework native parser for full compatibility
4747
- **Build System:** Hatch for package management and testing
@@ -57,7 +57,7 @@ RobotCode is a comprehensive Robot Framework toolkit that provides IDE extension
5757
- **Build:** Gradle with kotlin-gradle-plugin
5858

5959
### Testing Matrix
60-
- **Python Versions:** 3.8, 3.9, 3.10, 3.11, 3.12, 3.13
60+
- **Python Versions:** 3.10, 3.11, 3.12, 3.13, 3.14
6161
- **Robot Framework:** 5.0, 6.0, 6.1, 7.0, 7.1, 7.2, 7.3
6262
- **Test Framework:** pytest with regtest2 for snapshot testing
6363

.github/instructions/python-development.instructions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ hatch run lint:fix # Auto-fix style issues
4646
- **ask your tools** wich python interpreter to use for the project/workspace
4747

4848
### Matrix Testing
49-
- **COMPREHENSIVE** testing across Python 3.8-3.13
49+
- **COMPREHENSIVE** testing across Python 3.10-3.14
5050
- **MATRIX** testing with Robot Framework 5.0-7.3
5151
- **INTEGRATION** tests in tests/robotcode/ with real scenarios
5252
- **SNAPSHOT** testing with pytest regtest2

README.md

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -63,30 +63,20 @@ With RobotCode, you can focus on building and testing your automation workflows
6363
- Visual Studio Code 1.99.0 or newer
6464
- PyCharm 2025.1 or newer or IntelliJ IDEA 2025.1 or newer
6565

66-
### Deprecated Python and Robot Framework Versions
67-
68-
**⚠️ DEPRECATION WARNING:**
69-
Support for Python 3.8, 3.9, and Robot Framework 4.1 is deprecated and will be removed in a future release. To ensure compatibility and benefit from ongoing improvements, please upgrade to Python 3.10 or later and Robot Framework 5.0 or later.
66+
### Python and Robot Framework Version Requirements
7067

7168
**Python Version Requirements:**
72-
Although Robot Framework still supports Python 3.8 and 3.9, RobotCode requires Python 3.10 or newer due to its use of more modern libraries and features. Many key tools in the ecosystem—such as robocop and the Browser library—have already dropped support for Python 3.8, which is no longer maintained. Python 3.9 will reach end-of-life on October 5, 2025.
73-
74-
**Robot Framework Version Requirements:**
75-
Robot Framework 4.1 is outdated. Given the regular release cadence of Robot Framework—typically two major versions per year—maintaining support for older versions introduces significant overhead. That effort is better spent on supporting current and upcoming features.
76-
77-
**Compatibility and Limitations:**
78-
RobotCode currently remains compatible with Python 3.8+ and Robot Framework 4.1+, but with important limitations:
79-
• New features may not be available for older versions.
80-
• Development and testing efforts are focused on newer versions.
81-
82-
**Why Python 3.10:**
83-
After Python 3.9 reaches end-of-life, RobotCode will start using Python 3.10+ features that are not backward-compatible. Python 3.10 introduces several important improvements, including:
69+
RobotCode requires Python 3.10 or newer. Python 3.8 and 3.9 are no longer supported as they have reached or are approaching end-of-life status. Python 3.10 provides several important improvements that enable cleaner, more efficient code:
8470
• Structural pattern matching
8571
• More informative error messages
8672
• Simplified type hints using the | operator
8773
• Performance enhancements
8874

89-
These capabilities enable cleaner, more efficient code and improved developer experience.
75+
**Robot Framework Version Requirements:**
76+
RobotCode supports Robot Framework 5.0 or later. Older versions like Robot Framework 4.1 are no longer supported due to their outdated nature and the regular release cadence of Robot Framework.
77+
78+
**Why These Requirements:**
79+
Many key tools in the Robot Framework ecosystem—such as robocop and the Browser library—have already moved to similar requirements. This alignment ensures compatibility and allows RobotCode to leverage modern Python features for improved performance and developer experience.
9080

9181
**Recommendation:**
9282
To get the most out of RobotCode, we recommend using:

packages/analyze/pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-analyze"
77
description = 'RobotCode analyze plugin for Robot Framework'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = {text = "Apache-2.0"}
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",

packages/core/pyproject.toml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-core"
77
description = 'Some core classes for RobotCode'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = {text = "Apache-2.0"}
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",
@@ -54,7 +55,7 @@ detached = true
5455
python = "38"
5556

5657
[tool.mypy]
57-
python_version = "3.8"
58+
python_version = "3.10"
5859
strict = true
5960
warn_redundant_casts = true
6061
warn_unused_ignores = true

packages/debugger/pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-debugger"
77
description = 'RobotCode Debugger for Robot Framework'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = {text = "Apache-2.0"}
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",

packages/jsonrpc2/pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-jsonrpc2"
77
description = 'JSONRPC Server for RobotCode'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = {text = "Apache-2.0"}
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",

packages/language_server/pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-language-server"
77
description = 'RobotCode Language Server for Robot Framework'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = {text = "Apache-2.0"}
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",

packages/modifiers/pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-modifiers"
77
description = 'Some Robot Framework Modifiers for RobotCode'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = {text = "Apache-2.0"}
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",

packages/plugin/pyproject.toml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,18 @@ build-backend = "hatchling.build"
66
name = "robotcode-plugin"
77
description = 'Some classes for RobotCode plugin management'
88
readme = { "file" = "README.md", "content-type" = "text/markdown" }
9-
requires-python = ">=3.8"
9+
requires-python = ">=3.10"
1010
license = { text = "Apache-2.0" }
1111
keywords = []
1212
authors = [{ name = "Daniel Biehl", email = "dbiehl@live.de" }]
1313
classifiers = [
1414
"Development Status :: 5 - Production/Stable",
1515
"Programming Language :: Python",
16-
"Programming Language :: Python :: 3.8",
17-
"Programming Language :: Python :: 3.9",
1816
"Programming Language :: Python :: 3.10",
1917
"Programming Language :: Python :: 3.11",
18+
"Programming Language :: Python :: 3.12",
19+
"Programming Language :: Python :: 3.13",
20+
"Programming Language :: Python :: 3.14",
2021
"Programming Language :: Python :: Implementation :: CPython",
2122
"Programming Language :: Python :: Implementation :: PyPy",
2223
"Operating System :: OS Independent",

0 commit comments

Comments
 (0)