Skip to content

Releases: odoo/odoo-pycharm

1.3.1 - Beta

07 Apr 11:45

Choose a tag to compare

1.3.1 - Beta Pre-release
Pre-release

Fix

  • Fixed a deadlock that could occur during startup.

1.3.0 - Beta

07 Apr 11:02

Choose a tag to compare

1.3.0 - Beta Pre-release
Pre-release

This update is refactoring the way "Goto" features are working, as well as adding the new Go to References feature.

Server

  • Change gotoDefinition to pass through imports until the true definition of the symbol
  • Add GoToDeclaration that goes to the first declaration or assignation found for a symbol
  • Add GoToReferences that will search for all usage of a symbol. Available in python, xml, csv and __manifest__.py files.
  • Implement all these gotos features in CSV files.
  • Load and validate asset nodes in XML files.
  • Validation of language codes used in XML files.
  • Add a new option in configuration files: "additional_languages", allowing you to add languages that would not be added in data files.
  • Server will not close anymore if multiple workspace folders has the same name. However, it will still be impossible to reference one of them in a configuration.
  • Handle lambda expressions.
  • Add evaluation for request and request.env in controllers.
  • Validation of assets values in __manifest__.py
  • Improve the self evaluation to be able to propagate it to class children or overrides.
  • Add the list of folders to the documentation when hovering a symbol representing a python namespace
  • CLI mode is now loading configurations like the normal process is doing, making the profiles available in this mode.
  • Add a new argument to the command line: selected_config allowing you to manually select a profile when running in CLI mode.
  • Various performances update (HashMap without hashing function for integer keys, better filesystem access on windows)
  • Upgrade Rust to 1.94, Ruff to 0.15.0

1.2.1

02 Apr 15:34

Choose a tag to compare

We are addressing some errors in 1.2.0 before releasing the 1.3.0 in the next days

Server

  • Remove OLS05038 (empty function data in XML files), which is a valid use case.
  • New warning if 'odoo/addons' is missing.
  • Add completion of inverse_name if keyword is missing in the relational field.

Fixes

  • Fix crash on unexpected arguments in reading kwarg of self.env.ref function.
  • When autocompleting function calls, OdooLS will now follow return values hidden behind multiple references.
  • Fix annotation evaluation on functions that was dropped after being processed
  • Fix 'with' statement type evaluation
  • Fix the anti-duplication algorithm to prevent loading some symbols.
  • Fix first argument evalution on static methods and classmethods.
  • Fix evaluation of inverse_name if keyword is missing in the relational field declaration.
  • Remove some useless logs.

1.2.0

09 Feb 13:51

Choose a tag to compare

This update pushes the pre-release version 1.1 to the stable branch. There is nothing new if you already uses the pre-release version

This update improves the QoL on various IDEs and brings some new features:

  • Workspace Symbol Lookup allows you to search for any class/function/model/xml_id in the whole project (ctrl-t on vscode). All xml_id are prefixed
    by xmlid. and model names are quoted.

workspace symbol lookup image

  • Import statements now have autocompletion, hover and gotodefinition features.
  • We now have a better support for WSL paths!

VsCode

  • Better display about the server status.

PyCharm

  • Improve the lifecycle of OdooLS. Server will be always running but idle, and starts only if a configuration is detected. It implies
    that we removed the 'start server' button as it is not useful anymore. It should end up in a more clear and usable interface.
  • Fix the "Disabled" profile behavior that was preventing any further profile change.
  • Starting from 2025.3, PyCharm will be able to display the loading status of the server.
  • Attach additional stubs (with lxml) to the build.
  • Add configuration wiki link on the settings page.
  • Update deprecated API calls to isAarch64 methods.

Server

  • Support for workspace Symbol requests.
  • Core structure to support $/cancelRequest notification and use it for Workspace Symbol Request. These notifications indicates that a job can be cancelled because no more useful.
  • Import statements now have autocompletion, hover feature and gotodefinition.
  • Server now supports WSL paths, including file://// or file://wsl.localhost
  • Server now use workDoneProgress to report loading status to client. Client that supports this feature will now display the loading progression at startup.
  • Server will now send more information about its status: it can indicate if it is waiting for a git lock to be freed.
  • Autocompletion and validation for inverse_name keyword argument.
  • Crash reports will now include the latest LSP messages to help the debugging and give us a better overview of what happened before the crash
  • It is now possible to autocomplete slices ( self.env[") even without closing the brackets.
  • Diagnostic filters in configuration files can now accept variables like ${userHome} or ${workspaceFolder}
  • You can now hover and gotodefinition for module names in __manifest__.py files, and in hover you could alse see full list of the module's dependencies.

manifest hover module image

  • filtered and filtered_domain now has a proper return value.
  • Remove diagnostics of ImportError in the except block of a try..except ImportError statement.
  • Doing a gotodefinition on a display_name will now redirect you to the compute method.
  • Update Ruff dependencies to 0.14.3.
  • Support for encoding UTF-8, UTF-16 and UTF-32.
  • Support for "untitled" files for VsCode.
  • Add tests for diagnostics
  • Various fixes
  • Fix and support for CachedModel introduced in 19.1
  • Use a deterministic job queue to avoid random errors caused by different order of symbols
    • For that we replace the current HashSet with a FIFO one, so symbols are processed in the queue order

Fixes

  • Doing a gotodefinition on a value (like a string "a string") will not lead to the value definition (class str)
  • Doing a cyclic dependency between 'modules depends' will not crash anymore but generate the diagnostic OLS04012.
  • Fix the path to additional stubs and so fix the usage of the lxml stubs.
  • If odoo_path is ending with .something but is pointing to a valid directory, the server should not consider something as a file extension, but as a part of the folder name.
  • Fix some internal hooks to work with user defined Fields, instead of only the Odoo ones.
  • Configuration option "diag_missing_imports" is now really taken into account when generating diagnostics about imports.
  • Fix dependencies on comodel and relation fields diagnostics.
  • Fix missing ImportError diagnostic on import statement without a 'from' or 'as' part.
  • Various small fixes and typos
  • Fix crash when a file is importing a .pyd with the same name (avoid self referencing)
  • Fix OLS01002 not emitted on valued variables
  • FIX OLS01004 that should not be emitted on classmethod
  • FIX OLS01007 and OLS01010 on evaluation of function calls when keyword-only arguments are used.
  • XML Syntax error is now OLS05000
  • Fix range for diagnostic OLS05009
  • Fix OLS01009 that could be emitted on valid cases.
  • Fix detection of search and inverse keyword on fields declaration
  • Fix detection of inverse_name on One2Many if the keyword was missing
  • Fix deprecation warning OLS03301 that was not emitted
  • Fix crash on data not being string in __manifest__.py
  • Fix validation of __manifest__.py files even if the folder does not contain any __init__.py
  • Functions will not expose their internal function in an autocompletion anymore
  • Fix wiki link for configuration on welcome page
  • Avoid having empty paths for addons or additional stubs in cli mode
  • Avoid adding model dependencies in orm files to avoid rebuilding base files
  • Avoid loading Models defined inside functions, e.g. tests.
  • Avoid attempting to rebuild __iter__ on external files, as their file infos are deleted
  • Fix fetching symbols in inheritance tree by early stopping when one is found
  • Fix failure to detect models when CachedModel is missing
  • Fix crash on SQL datafiles
  • Fix crash on missing python command
  • Fix crash on model classes outside a module
  • Load modules in the same order Odoo load them
  • Ignore invalid Named expression on incomplete AST
  • Handle models subscripts like self.search([])[:5]
  • Add missing Self evaluation to search method on BaseModel
  • Methods __init_subclass__ and __class_getitem__ are now automatically detected as classmethods
  • Allow M2OReference on inverse_name
  • Fix index calculation in the arguments of functions
  • Fix crash on empty config received from client
  • Improve borrowing to avoid some borrow errors
  • next_ref will now rebuild descriptor on-the-fly if needed
  • Fix follow_ref sometimes dropping evaluations incorrectly
  • Remove wrong stop_on_type in features
  • Check all relational fields during domain validation
  • Correctly identify non-registry model classes
  • Update typeshed
  • Improve the env.__getitem__ to handle multiple evaluation
  • Improve the follow_ref method to handle typing.Self evaluations

1.1.3 - Beta

02 Feb 10:49

Choose a tag to compare

1.1.3 - Beta Pre-release
Pre-release

Fixes

  • Fix failure to detect models when CachedModel is missing
  • Fix crash on SQL datafiles
  • Fix crash on missing python command
  • Fix crash on model classes outside a module
  • Load modules in the same order Odoo load them
  • Ignore invalid Named expression on incomplete AST
  • Handle models subscripts like self.search([])[:5]
  • Add missing Self evaluation to search method on BaseModel
  • Methods __init_subclass__ and __class_getitem__ are now automatically detected as classmethods
  • Allow M2OReference on inverse_name
  • Fix index calculation in the arguments of functions
  • Fix crash on empty config received from client
  • Improve borrowing to avoid some borrow errors
  • next_ref will now rebuild descriptor on-the-fly if needed
  • Fix follow_ref sometimes dropping evaluations incorrectly
  • Remove wrong stop_on_type in features
  • Check all relational fields during domain validation
  • Correctly identify non-registry model classes
  • Update typeshed
  • Improve the env.__getitem__ to handle multiple evaluation
  • Improve the follow_ref method to handle typing.Self evaluations

1.1.2 - Beta

10 Dec 11:39

Choose a tag to compare

1.1.2 - Beta Pre-release
Pre-release

Server

  • Various fixes
  • Fix and support for CachedModel introduced in 19.1
  • Use a deterministic job queue to avoid random errors caused by different order of symbols
    • For that we replace the current HashSet with a FIFO one, so symbols are processed in the queue order

Fixes

  • Fix wiki link for configuration on welcome page
  • Avoid having empty paths for addons or additional stubs in cli mode
  • Avoid adding model dependencies in orm files to avoid rebuilding base files
  • Avoid loading Models defined inside functions, e.g. tests.
  • Avoid attempting to rebuild __iter__ on external files, as their file infos are deleted
  • Fix fetching symbols in inheritance tree by early stopping when one is found

1.1.1 - Beta

24 Nov 13:39

Choose a tag to compare

1.1.1 - Beta Pre-release
Pre-release

Server

  • Support for encoding UTF-8, UTF-16 and UTF-32.
  • Support for "untitled" files for VsCode.
  • Add tests for diagnostics

Fixs

  • Fix crash when a file is importing a .pyd with the same name (avoid self referencing)
  • Fix OLS01002 not emitted on valued variables
  • FIX OLS01004 that should not be emitted on classmethod
  • FIX OLS01007 and OLS01010 on evaluation of function calls when keyword-only arguments are used.
  • XML Syntax error is now OLS05000
  • Fix range for diagnostic OLS05009
  • Fix OLS01009 that could be emitted on valid cases.
  • Fix detection of search and inverse keyword on fields declaration
  • Fix detection of inverse_name on One2Many if the keyword was missing
  • Fix deprecation warning OLS03301 that was not emitted
  • Fix crash on data not being string in __manifest__.py
  • Fix validation of __manifest__.py files even if the folder does not contain any __init__.py
  • Functions will not expose their internal function in an autocompletion anymore

1.1.0 - Beta

06 Nov 13:05

Choose a tag to compare

1.1.0 - Beta Pre-release
Pre-release

This Beta update improves the QoL on various IDEs and brings some new features:

  • Workspace Symbol Lookup allows you to search for any class/function/model/xml_id in the whole project (ctrl-t on vscode). All xml_id are prefixed
    by xmlid. and model names are quoted.

workspace symbol lookup image

  • Import statements now have autocompletion, hover and gotodefinition features.
  • We now have a better support for WSL paths!

VsCode

  • Better display about the server status.

PyCharm

  • Improve the lifecycle of OdooLS. Server will be always running but idle, and starts only if a configuration is detected. It implies
    that we removed the 'start server' button as it is not useful anymore. It should end up in a more clear and usable interface.
  • Fix the "Disabled" profile behavior that was preventing any further profile change.
  • Starting from 2025.3, PyCharm will be able to display the loading status of the server.
  • Attach additional stubs (with lxml) to the build.
  • Add configuration wiki link on the settings page.
  • Update deprecated API calls to isAarch64 methods.

Server

  • Support for workspace Symbol requests.
  • Core structure to support $/cancelRequest notification and use it for Workspace Symbol Request. These notifications indicates that a job can be cancelled because no more useful.
  • Import statements now have autocompletion, hover feature and gotodefinition.
  • Server now supports WSL paths, including file://// or file://wsl.localhost
  • Server now use workDoneProgress to report loading status to client. Client that supports this feature will now display the loading progression at startup.
  • Server will now send more information about its status: it can indicate if it is waiting for a git lock to be freed.
  • Autocompletion and validation for inverse_name keyword argument.
  • Crash reports will now include the latest LSP messages to help the debugging and give us a better overview of what happened before the crash
  • It is now possible to autocomplete slices ( self.env[") even without closing the brackets.
  • Diagnostic filters in configuration files can now accept variables like ${userHome} or ${workspaceFolder}
  • You can now hover and gotodefinition for module names in __manifest__.py files, and in hover you could alse see full list of the module's dependencies.

manifest hover module image

  • filtered and filtered_domain now has a proper return value.
  • Remove diagnostics of ImportError in the except block of a try..except ImportError statement.
  • Doing a gotodefinition on a display_name will now redirect you to the compute method.
  • Update Ruff dependencies to 0.14.3.

Fixes

  • Doing a gotodefinition on a value (like a string "a string") will not lead to the value definition (class str)
  • Doing a cyclic dependency between 'modules depends' will not crash anymore but generate the diagnostic OLS04012.
  • Fix the path to additional stubs and so fix the usage of the lxml stubs.
  • If odoo_path is ending with .something but is pointing to a valid directory, the server should not consider something as a file extension, but as a part of the folder name.
  • Fix some internal hooks to work with user defined Fields, instead of only the Odoo ones.
  • Configuration option "diag_missing_imports" is now really taken into account when generating diagnostics about imports.
  • Fix dependencies on comodel and relation fields diagnostics.
  • Fix missing ImportError diagnostic on import statement without a 'from' or 'as' part.
  • Various small fixes and typos

1.0.4

31 Oct 13:36

Choose a tag to compare

Zed

  • Fix the update script to use ".tar.gz" compression instead of ".zip" on linux and darwin computers.

Fixes

  • crash fix: Borrow error on some "on-the-fly" builds.
  • Fix the rust version used to compile the server to 1.91 and put this requirement in cargo.toml

1.0.3

23 Oct 08:59

Choose a tag to compare

We rewrote the thread pool of OdooLS to get rid most of the last known crashes, as they are nearly all linked to out-of-sync issues and the way the thread pool was greedily delaying important tasks.
It should result in a different feeling when using OdooLS, but it should be way more accurate and stable than before, and consistent.
It was not possible to test this new core in all possible situations, so do not hesitate to give any feedback on differences you can see with this new version.
Thank you very much to everyone for your crash reports, they were really helpful (and yes, we read all of them!)
New features will come soon in the pre-release channel, stay tuned!

Fixes

  • New delayed thread and message flow in threads. Symbol creation (ARCH and ARCH-EVAL steps) are now always created on the fly, while validation of files are delayed to inactivity period. It results in more accurate and always in-sync results to requests.