robotcode 2.3.0__tar.gz → 2.4.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,6 +2,114 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [conventional commits](https://www.conventionalcommits.org/) for commit guidelines.
4
4
 
5
+ ## [2.4.0](https://github.com/robotcodedev/robotcode/compare/v2.3.1..v2.4.0) - 2026-03-17
6
+
7
+ ### Bug Fixes
8
+
9
+ - **dependencies:** Update click version to 8.2.0 in requirements files ([6e1220e](https://github.com/robotcodedev/robotcode/commit/6e1220e0542dc12a37dcb6c489d1653238ffbe8e))
10
+ - **vscode:** Fix invalid glob pattern in selectConfigurationProfiles ([58b5a8f](https://github.com/robotcodedev/robotcode/commit/58b5a8f1d1b8a2363a08b7872e20519316a44025))
11
+
12
+ Remove extra closing brace in the file extension glob pattern that
13
+ caused workspace folder detection to fail when selecting configuration
14
+ profiles.
15
+
16
+
17
+
18
+ ### Features
19
+
20
+ - **plugin:** Add fast exit option to Application.exit method ([acfa7e9](https://github.com/robotcodedev/robotcode/commit/acfa7e9a2d6b138f487183e19b8700d2e88db313))
21
+
22
+
23
+ ### Performance
24
+
25
+ - **diagnostics:** Skip full AST model parsing when no robotcode: markers present ([7b3999e](https://github.com/robotcodedev/robotcode/commit/7b3999e203209c67613f27fecacc943ac981d824))
26
+ - **robot:** Cache LibraryDoc for robot and resource files on disk ([9b89623](https://github.com/robotcodedev/robotcode/commit/9b896236c2590571fd5cb4cd95fbb156d0929cb1))
27
+
28
+ Resource and robot files are now cached on disk between sessions.
29
+ On subsequent opens, imports, keywords, and variables from these
30
+ files are loaded from cache instead of being re-parsed, resulting
31
+ in faster startup and quicker response times when navigating
32
+ projects with many resource files.
33
+
34
+ The cache is automatically invalidated when a file is modified
35
+ on disk. Files that are currently open in the editor always use
36
+ the live content and bypass the disk cache.
37
+
38
+ - **robot:** Remove unnecessary token list caching from document cache ([5f8591d](https://github.com/robotcodedev/robotcode/commit/5f8591d9a079261769d4a2c718c53124c22d510b))
39
+
40
+ Token lists were cached separately in document._cache, but only used
41
+ as intermediate input for AST model building. No external caller ever
42
+ accessed the cached token lists directly.
43
+
44
+ Move token generation into model builder methods so tokens are only
45
+ produced on cache miss. On cache hit, neither tokenization nor model
46
+ building occurs.
47
+
48
+ - Eliminates up to 6 cached token lists per document in Language Server
49
+ - No behavior change for CLI (tokens were already uncached for version=None)
50
+ - Remove ~80 lines of redundant caching infrastructure
51
+
52
+ - **robot:** Use file_id tuples instead of os.path.samefile for path comparison ([3f3bd84](https://github.com/robotcodedev/robotcode/commit/3f3bd8430a5c745bae6d0274ab4001acbe73044e))
53
+
54
+ Replace repeated os.path.samefile() calls (2x stat per call) in namespace
55
+ import loops with pre-computed (st_dev, st_ino) tuple comparisons.
56
+
57
+ - Add FileId type, file_id() and same_file_id() to core utils
58
+ - Add lazy source_id property to LibraryDoc (excluded from pickle)
59
+ - Pre-compute source_id on Namespace init
60
+ - Compute file_id once per find_resource result instead of per-iteration
61
+
62
+
63
+
64
+ ### Refactor
65
+
66
+ - **imports_manager:** Cleanup and fix correctness issues ([25ef49c](https://github.com/robotcodedev/robotcode/commit/25ef49c3ea0fec68f4f36a702e8f20a3c32c5537))
67
+ - **robot:** Remove unnecessary finalizers and dispose chain ([eaa7e14](https://github.com/robotcodedev/robotcode/commit/eaa7e14e2672cbf8da49a2eb58205384bd34c9cf))
68
+
69
+ Remove redundant _release_watchers_finalizer from _ImportEntry — file
70
+ watcher cleanup is already handled explicitly by _remove_file_watcher()
71
+ during invalidation and by server_shutdown() at LS shutdown.
72
+
73
+ Remove the _dispose_finalizer/dispose() chain through ImportsManager,
74
+ DocumentsCacheHelper, RobotFrameworkLanguageProvider, CodeAnalyzer, and
75
+ CLI. With the per-entry finalizers gone, these only cleared dicts that
76
+ Python already cleans up at process exit.
77
+
78
+ Fix broken finalizer in Workspace.add_file_watchers() where the closure
79
+ captured the entry object, preventing it from ever being garbage
80
+ collected.
81
+
82
+ Set atexit=False on sentinel finalizers so they only fire during normal
83
+ GC (needed for LS live cleanup), not at interpreter shutdown.
84
+
85
+ - **robot:** Replace __del__ with weakref.finalize in imports_manager ([e0e8d81](https://github.com/robotcodedev/robotcode/commit/e0e8d81219d1da8682839ab804cbc94408cf7d3f))
86
+
87
+ Replace fragile `__del__` methods with `weakref.finalize` in both
88
+ `_ImportEntry` and `ImportsManager` for reliable cleanup:
89
+
90
+ - _ImportEntry: register finalizer in __init__ with file_watchers list
91
+ and file_watcher_manager as strong refs (no self access needed);
92
+ change _remove_file_watcher to use .clear() instead of = []
93
+ - ImportsManager: register finalizer lazily in executor property when
94
+ ProcessPoolExecutor is created; add static _shutdown_executor callback
95
+
96
+ weakref.finalize is guaranteed to run even with circular references
97
+ and does not prevent garbage collection of reference cycles.
98
+
99
+
100
+
101
+ ### Testing
102
+
103
+ - Add library folder to test project ([45c410f](https://github.com/robotcodedev/robotcode/commit/45c410f452393068afbff24b68f28ef6cd0936d0))
104
+
105
+
106
+ ## [2.3.1](https://github.com/robotcodedev/robotcode/compare/v2.3.0..v2.3.1) - 2026-03-12
107
+
108
+ ### Bug Fixes
109
+
110
+ - **langserver:** Update version check for Robocop in formatting and diagnostics parts ([45655f4](https://github.com/robotcodedev/robotcode/commit/45655f4c62a634b76f4e57bf284b366b2e79ce35))
111
+
112
+
5
113
  ## [2.3.0](https://github.com/robotcodedev/robotcode/compare/v2.2.0..v2.3.0) - 2026-03-12
6
114
 
7
115
  ### Documentation
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: robotcode
3
- Version: 2.3.0
3
+ Version: 2.4.0
4
4
  Summary: Command line interface for RobotCode
5
5
  Project-URL: Homepage, https://robotcode.io
6
6
  Project-URL: Donate, https://opencollective.com/robotcode
@@ -48,23 +48,23 @@ Requires-Dist: robotcode-repl-server; extra == 'all'
48
48
  Requires-Dist: robotcode-runner; extra == 'all'
49
49
  Requires-Dist: robotframework-robocop>=6.0.0; extra == 'all'
50
50
  Provides-Extra: analyze
51
- Requires-Dist: robotcode-analyze==2.3.0; extra == 'analyze'
51
+ Requires-Dist: robotcode-analyze==2.4.0; extra == 'analyze'
52
52
  Provides-Extra: colored
53
53
  Requires-Dist: rich; extra == 'colored'
54
54
  Provides-Extra: debugger
55
- Requires-Dist: robotcode-debugger==2.3.0; extra == 'debugger'
55
+ Requires-Dist: robotcode-debugger==2.4.0; extra == 'debugger'
56
56
  Provides-Extra: languageserver
57
- Requires-Dist: robotcode-language-server==2.3.0; extra == 'languageserver'
57
+ Requires-Dist: robotcode-language-server==2.4.0; extra == 'languageserver'
58
58
  Provides-Extra: lint
59
59
  Requires-Dist: robotframework-robocop>=2.0.0; extra == 'lint'
60
60
  Provides-Extra: repl
61
- Requires-Dist: robotcode-repl==2.3.0; extra == 'repl'
61
+ Requires-Dist: robotcode-repl==2.4.0; extra == 'repl'
62
62
  Provides-Extra: replserver
63
- Requires-Dist: robotcode-repl-server==2.3.0; extra == 'replserver'
63
+ Requires-Dist: robotcode-repl-server==2.4.0; extra == 'replserver'
64
64
  Provides-Extra: rest
65
65
  Requires-Dist: docutils; extra == 'rest'
66
66
  Provides-Extra: runner
67
- Requires-Dist: robotcode-runner==2.3.0; extra == 'runner'
67
+ Requires-Dist: robotcode-runner==2.4.0; extra == 'runner'
68
68
  Provides-Extra: yaml
69
69
  Requires-Dist: pyyaml>=5.4; extra == 'yaml'
70
70
  Description-Content-Type: text/markdown
@@ -52,15 +52,15 @@ dependencies = ["robotcode-core", "robotcode-plugin", "robotcode-robot"]
52
52
  dynamic = ["version"]
53
53
 
54
54
  [project.optional-dependencies]
55
- debugger = ["robotcode-debugger==2.3.0"]
56
- languageserver = ["robotcode-language-server==2.3.0"]
57
- runner = ["robotcode-runner==2.3.0"]
58
- analyze = ["robotcode-analyze==2.3.0"]
55
+ debugger = ["robotcode-debugger==2.4.0"]
56
+ languageserver = ["robotcode-language-server==2.4.0"]
57
+ runner = ["robotcode-runner==2.4.0"]
58
+ analyze = ["robotcode-analyze==2.4.0"]
59
59
  yaml = ["PyYAML>=5.4"]
60
60
  lint = ["robotframework-robocop>=2.0.0"]
61
61
  rest = ["docutils"]
62
- repl = ["robotcode-repl==2.3.0"]
63
- replserver = ["robotcode-repl-server==2.3.0"]
62
+ repl = ["robotcode-repl==2.4.0"]
63
+ replserver = ["robotcode-repl-server==2.4.0"]
64
64
  colored = ["rich"]
65
65
  all = [
66
66
  "robotcode-debugger",
@@ -0,0 +1 @@
1
+ __version__ = "2.4.0"
@@ -1 +0,0 @@
1
- __version__ = "2.3.0"
File without changes
File without changes
File without changes
File without changes