Skip to content

Releases: odoo/odoo-ls

0.10.0 - Beta

08 Aug 11:25

Choose a tag to compare

0.10.0 - Beta Pre-release
Pre-release

0.10.0 - 2025/08/08 - Better configuration and XML features

Following your feedbacks, we are adding some new features and ways to configure your odools.toml files. If you still think that some changes would be interesting, do not hesitate to contact us !
Alongside these changes, we added some features to XML files, like gotodefinition, hover, and new diagnostics. Everything we want is not there yet, but it's coming soon!
We focused a lot too on improving the exactness of various diagnostics, so you should see less errors in your project!

VsCode

  • Add wiki link to configuration view.
  • Update Disabled profile: "Disabled" now shuts down the server
  • New setting to provide a generic odools.toml that would be applied to ALL profiles, and that can be at a specific location

Server

  • Add diagnostics filters in configuration files. It allows you to choose diagnostics you want to hide and their severity level
  • Add new config url parameter to give a common config file for all your profiles
  • Rewrite diagnostics modules, to allow filtering and changes of the level.
  • Fix new convention for OLS codes
  • Improve the server restart behaviour
  • Parse and use delegate=True to detect _inherits models
  • Improve build tools
  • Fix imports with asname value
  • gotodefinition on ref to xml_ids
  • New hook to global field on IrRule
  • New hooks for werkzeug _monkeypatches
  • Disable call argument checks for properties function for now.
  • Detect and mark function with @classproperty or @lazy_classproperty as such
  • Fix all the arguments validation process

XML

  • menuitem: check that parent is valid
  • menuitem: chack validity of action attribute
  • menuitem: validate groups attribute
  • record: validate model
  • record: check that all mandatory fields has been provided
  • record, fields, menuitem: hover and gotodefinition to xml_ids and models
  • field: basic validation and for specific models (ir.ui.view)
  • Support for @language in XML Fields

Fixes

  • Fixed version comparator that was not equaling "18.0" and "18.0.0". It had various side effects on some specific version features.
  • Fix crash on delayed thread that occur if odoo is made invalid in the delay
  • Fix creation of custom entrypoints on hovering some xml/csv files
  • Fix crash on reloading functions created by hooks (only in orm files)
  • Various things that would be too hard to explain here. You really read all the changelog?

0.8.1 - Beta

09 Jul 11:44

Choose a tag to compare

0.8.1 - Beta Pre-release
Pre-release

0.8.1 - 2025/09/07 - Quick fix

Fix

  • Fix an issue that prevent OdooLS to correctly detect Odoo Models on some version.

0.8.0 - Beta

08 Jul 14:40

Choose a tag to compare

0.8.0 - Beta Pre-release
Pre-release

0.8.0 - 2025/04/07 - Configuration files and XML Support (part 1)

This update introduces two new big changes in OdooLS.

First, we updated the way OdooLS is configured for a more porwerful, flexible, and IDE-independant way. Unfortunately, it implies that all your existing configurations are lost with this update. We are sorry for that, but we hope you will love way more the new system when you'll have adopted it ! Do not hesitate to give us your feedback, questions or anything you want to say about it on our github. As it is quite different, you can get lost at the first time. Do not hesitate to read our wiki about configuration files.

Secondly, the update introduces all the basic parsing for XML files. This part 1 only includes XML loading, parsing and validation against Odoo RNG file. There is features about XML files here (no hover, gotodefinition, etc...) as it will be released in part 2. This update focus on including XML and CSV files in the server cache and ensure that everything is running fine now that we have different file extensions and language. As always, we would be really happy if you can send us any error or issue you encounter with these new features.

Let's go with this update more in detail now!

Server

  • New configuration system. Configurations are not stored in settings.json anymore, but in configuration files on disk.
  • OdooLS can now detect Odoo and run even without any configuration file.
  • When loading a manifest, search and load data files (csv/xml). If not found, raise a diagnostic.
  • When loading an XML file, display diagnostic on syntax errors
  • Validate XML files against RelaxNG file. This validation is not using the file actively but is hardcoded in the server. We did this as
    there is no real implementation of RelaxNG in Rust and that we included a lot of hooks and additional checks on the validation based on the python code of Odoo too (more will come in part 2).
  • New structure to support dynamic member variable declaration, like in
class cl:
    pass
cl.new_variable = 5

This is actually mainly used for new Odoo changes on master, and is not dynamically supported in custom code.

  • Support for invalid AST. Now an invalid AST should not prevent the server from providing features as definition, hover, etc...
  • Allow hooks to applied on some version of odoo only. Fix most of the issues related to hooks for branches > 18.1 of Odoo.
  • Various small optimization updates.

VsCode

  • Update the interface to not show configurations but give a way to change active profile.
  • Provide Semantic token for CSV file. If you don't have the RainbowCsv extension installed, OdooLS will colorize your csv files for you.

Fixs

  • Fix import of multi-level elements, as in import a.b.c
  • Allow name completion in some nested expressions.
  • Autocompletion is now better localized, and can not suggest variables declared later in a bloc.
  • Fix various borrow errors.

0.6.3 - Beta

23 May 08:55

Choose a tag to compare

0.6.3 - Beta Pre-release
Pre-release

0.6.3 - 2025/23/05 - Bugfixs

Fixs

  • Log instead of crash if a file is not in cache anymore as it can happen in some normal situations where chache is invalidated
  • Fix various borrow errors on 'go to definition' feature
  • Fix various crashes when hovering some part of the code
  • Provide PDB alongside exe on windows to get better tracebacks.

0.6.2 - Beta

28 Apr 11:11

Choose a tag to compare

0.6.2 - Beta Pre-release
Pre-release

0.6.2 - 2025/28/04 - Bugfixs

Fixs

  • Fix crash on empty odoo path
  • Fix crash while autocomplete on an empty file
  • Fix crash on autocompletion in some wase where the needed files are not built already
  • Fix crash on module search that could return namespaces instead of modules
  • Fix diagnostics range in manifest depends
  • Add missing error code in error_code.md
  • Fix crash on lazy loading invalid __all__ variable
  • Clean some logs

0.6.1 - Beta

24 Apr 12:27

Choose a tag to compare

0.6.1 - Beta Pre-release
Pre-release

0.6.1 - 2025/24/04 - File cache option and bugfixs

Key features

  • New option that will move file cache from RAM to disk (reduce memory usage by ~30%, but will increase disk access). It is off by
    default to not stress your disk, but you can activate it in your settings if you are on a computer with limited RAM amount.
  • This patch focus on bugs you reported from the 0.6.0. Thank you for sending us your crash report, it helps us building a stable tool !

Server

  • New file cache option to move file cache from RAM to disk. Off by default

Fixs

  • Fix an issue that was removing all diagnostics on settings change for no reason
  • Fix a crash on evaluation refresh
  • Fix transformation of path from addon entry to main entry
  • Fix creation of entryPoint for namespace symbols
  • Fix an issue that prevented the server to mark files as closed, creating a crash on reopening.
  • Fix parsing of __manifest__.py and __init__.py in custom entry point. It fixes crash when opening files outside of the config
  • Fix crash on parsing empty __manifest__.py file
  • Fix reloading of custom entry point
  • Fix path comparison. "account_account" will not be considered below "account" because it shares the same start. Now path components are properly used
    for the comparison.

0.6.0 - Beta

15 Apr 15:32

Choose a tag to compare

0.6.0 - Beta Pre-release
Pre-release

0.6.0 - 2025/15/04 - Entrypoints and NOQA Update

Key features

  • OdooLS is now able to run on any python file, even if this python file is not part of your odoo setup. It will then run
    like a classical LSP and provide you hover, autocompletion, gotodefinition, etc... but without any odoo knowledge.
  • As the core structure should now be in its nearly final form and because of the previous point, OdooLS now has a base test suite to ensure we are keeping every feature stable patch after patch ! These will grow in the future.
  • Support for #noqa directive, on file, classes, function or line, with or without error codes
  • OdooLS can now handle Walrus operator ⊹╰(⌣ʟ⌣)╯⊹
  • OdooLS now has improved inferencer engine and can parse way more expressions and statements
  • Various cache and algorithm improvements speed up the server by ~30%, but these ~30% are lost with new features and required parsing...
  • OdooLs is now 50% faster on Windows due to disk access improvements. It is nearly not impacting Linux and Macos distribution however.
  • Memory usage has been improved by ~6%
  • In the end, building time is 10% slower due to new features
  • Handle {workspaceFolder:directory} variable in path configurations.

Server

  • Introduce EntryPoints. OdooLS will now provide features for a file depending on its entrypoint: It can be the main entryPoints (usually the odoo project, with odoo/main.py), or a single-file entrypoint, the current file. Depending on this context, the server
    can act diffently and then work on any python file, even out of the odoo structure. Temporary files are not yet handled however, we
    still rely on the disk path to identify a file (will change in next updates)
  • Improve Evaluations by handling following Expressions and Statements:
    • Number literals: Float and Complex
    • If blocks
    • unary operators
    • constants (ellipsis and None)
    • basic FString
    • typing.Self
  • Make results unique in model name hover
  • Add a cache to import resolver, speeding up the process.
  • Add traceback to error info in crash report
  • Use Yarn instead of String to store small names of symbols to speed up and improve memory usage
  • Add hover and gotodef feature to decorators (@api.depends,...), to related fields, comodel_name and model strings before arguments.
  • Update Ruff Parser to 0.11.4
  • Improve reactivity of server on typing in 'adaptive' mode
  • Support for NOQA
  • Odoo step has been merged with Arch Eval step, resulting in a process in 3 steps instead of 4.

Server Fixs

  • A module is now automatically (re)imported if reloaded or created if it is in addons path.
  • Fix dependency graph on inheritance and imports.
  • Fix TestCursor hook behaviour to show right Cursor class in tests directories
  • Fix BorrowError on FileManager clear method
  • Hover and GotoDefinition features are now working in .pyi files
  • Evaluation should correctly take into account all base classes of an object/model
  • Fix this changelog filename to be able to publish on VsCodium
  • Fix infinite loop on variable evaluation

Vscode Fixs

  • Prevent throwing an error notification when the client is stopping
  • Improve reactivity of the server if an interruption is coming during processing or shutdown event

New diagnostics / odoo helpers

  • Check that the manifest doesn't contain the same key twice
  • In a compute function, check that you don't assign another variable that the one you are computing
  • Check that comodel_name on related fields is valid
  • Check that related field is the same type
  • New errors to express the invalid dot notation in strings used for related, domains...

0.4.1 - Beta

12 Feb 13:51

Choose a tag to compare

0.4.1 - Beta Pre-release
Pre-release

0.4.1 - 2025/12/02

Small patch that address crashes we got from your reports

Vscode Fixs

  • validate paths on config view opening

Server

  • Server will now answer to DocumentSymbol requests and give you a tree os symbols that you can find in a file.
  • Add validation and diagnostics on some missing Python statements (match, ...)
  • Better error message if missing typeshed

Server Fixs

  • crash fix: Handle new odoo structure available on master
  • crash fix: Do not evaluate documents that are not saved on disk and has an invalid path (will be improved later)
  • crash fix: Do not assume that base class is always valid, and silently ignore an invalid base class
  • crash fix: Do not evaluate architecture of a file if the hash of file has changed since the first building
  • crash fix: url encode paths to handle spaces or invalid characters in uris
  • crash fix: add a guard against empty contexts while getting symbol
  • crash fix: Fix crash on cyclic references involving only functions (temp fix before a proper implementation)
  • Fix multiple inference instance evaluation
  • add context information to be able to resolve ": Self" return value for functions
  • Test if odoo package is found or not and log it if not
  • Fix hook that transform Cursor into TestCursor in tests directories

0.4.0

06 Feb 11:01

Choose a tag to compare

0.4.0 Pre-release
Pre-release

0.4.0 - 2025/05/02

0.4.0 is the first Rust version of the tool that is coming to Beta. It means that if you didn't update to alpha version manually, this changelog is new for you since the 0.2.4 version (last published Python version of the tool, not maintained anymore)
Some configuration migrations could fail while upgrading from the Python version. We apologize in advance if you have to set up them again !

VsCode

  • Add a commmand to restart the server manually
  • Updated welcome page to reflect new changes
  • Remove deprecated views
  • Remove "afterDelay" option, in favor of "adaptive" option. Threads are way more reactives than before and "adaptive" should
    be enough in all cases.
  • handle installation of python extension while Odoo is running

VsCode Fix

  • Fix the extension hanging while the server starts

Server

  • improve odoo detection to handle nightly builds of Odoo.
  • Return Class location on definition request of model name (strings)
  • Server will auto reset if too many changes occur in the workspace (git checkout detection purpose)
  • improve the rebuild queue, by putting functions in it with a module dependency, instead of the whole file. It lowers the needed
    computation on each change.
  • onSave settings will not trigger a rebuild anymore if ast in the file is invalid
  • Improve range of link given by GoToDefinition on packages
  • precompute model dependencies to improve performances
  • Add various odoo api method signatures (with_context...)
  • Add search domains diagnostics
  • Add search domains autocompletion
  • Add search domains GotoDefinition
  • Various hover display improvements: syntax, values and infered types on functions
  • Implement _inherits logic
  • Improve internal context usage to correctly reflect what contains the current parsing
  • Remove usage of the custom route Odoo/getPythonPath, and now using lsp default configuration
  • Improve message managements to make threads more reactive, and so the extension
  • use start of expr range to avoid some out of scope issues in autocompletion
  • Server do not restart anymore but reset on python path update

Server fixs

  • fix crash on importation of compiled files
  • Remove autocompletion items that are not in module dependencies

0.2.8 - alpha

18 Dec 16:09

Choose a tag to compare

0.2.8 - alpha Pre-release
Pre-release

0.2.8 - 2024/18/12

VsCode

  • addon paths in configurations can now contains variables: ${workspaceFolder} and ${userHome} are available.
  • search for valid addon path in parent folders too.
  • New popup windows that will suggest you to disable your actual python language server for your workspace if any is active (only for Python extension).
  • Fix hanging if popup window stay opened.
  • Fix infinite reload issue

Server

  • Improve autocompletion to take base classes and comodels.
  • Add inheritance information in hover for models.
  • Adapt the architecture to store function arguments.
  • Parse and evaluate function calls according to the function signature. Actually limited to domains and args counts.
  • New domain validation: validate structure, operators and fields. Composed fields are not validated for now.
  • Autocompletion that contains "." or that complete a string with a "." will not duplicate elements anymore.
  • Improve function return type syntax in Hover feature.
  • Implement super() evaluation.
  • Handle @ overload and @ classmethod decorator

Server Fixs

  • Autocompletion will not raise an exception if the request is done outside of odoo.
  • Gotodefinition will skip evaluation that lead to the same place
  • Fix range on GotoDefinition for symbol that has multiple evaluation.
  • Prevent parsing docstrings as markdown codeblocks
  • Make read thread able to create delayed tasks.
  • correctly skip arch step for syntaxically incorrect files.
  • Avoid range evaluations on files.
  • Allow not imported files to be reloaded
  • Remove duplicates in autocompletion results due to diamond inheritance
  • Change classes structure to keep inheritance order (HashSet to Vector)
  • Incorrect "Base class not found" diagnostic

New diagnostics / odoo helpers

  • New signature for "browse" on BaseModel.
  • New hook for Odoo registry.
  • Add "magic" fields to models (id, create_date, etc...)