Jedi News/Updates (Please Subscribe)
davidhalter opened this issue · 17 comments
To make it easier for people to stay in touch what's changing in jedi, I made this thread. I'm not going to post here often and there will comments are blocked. This thread is about summarizing things that you can comment on in separate issues.
Feel free to subscribe and unsubscribe as you want. There should be a button on the right side where you can turn notifications on and off.
cc'd a few people that might be interested:
@blueyed @dbrgn @tkf @mfussenegger @Alexey-T @sadovnychyi @scribu @jorgenschaefer @takluyver @Valloric @vheon @micbou @asmeurer @Shougo @zchee @maralla @proofit404 @syohex @immerrr @srusskih @DamnWidget @lawrenceakka @brennv @abe33 @patrys @wolph @isamert @Kozea @DonJayamanne @brettcannon @MikhailArkhipov @Carreau
So let's start:
I'd like you to comment on how Virtualenvs and different Python versions should be handled. I'm very interested in feedback on the API. Please let me know if there are things that could be improved. Otherwise you will be stuck with a bad API that you might not want ;-)
#1053
This will be released as part of Jedi 0.12.0 in a few weeks. So hurry up and comment!
The release notes will look like this for 0.12.0:
- Remove Python 2.6 support
- Virtualenv/Environment support
- Cannot crash with segfaults anymore
- Cleaned up import logic
- Understand async/await and autocomplete it (including async generators)
- Better namespace completions
Just released:
Jedi 0.12.0 (2018-04-15)
- Virtualenv/Environment support
- F-String Completion/Goto Support
- Cannot crash with segfaults anymore
- Cleaned up import logic
- Understand async/await and autocomplete it (including async generators)
- Better namespace completions
- Passing tests for Windows (including CI for Windows)
- Remove Python 2.6 support
Jedi 0.13.0 (2018-10-02)
- A small release. Some bug fixes.
- Remove Python 3.3 support. Python 3.3 support has been dropped by the Python
foundation. - Default environments are now using the same Python version as the Python
process. In 0.12.x, we used to load the latest Python version on the system. - Added
include_builtins
as a parameter to usages. goto_assignments
has a newfollow_builtin_imports
parameter that
changes the previous behavior slightly.
Jedi 0.13.2 (2018-12-15)
- Fixed a bug that led to Jedi spawning a lot of subprocesses.
This issue was pretty bad. Please upgrade!
Released parso 0.3.2
. This is not a Jedi upgrade.
This parso upgrade should not change anything - just bugfixes. With the help of a fuzzer I found 20+ bugs in the diff parser and 3 bugs in the tokenizer (plus a few other fixes). It should therefore be way more stable, just upgrade the dependency from 0.3.1
to 0.3.2
.
Released parso 0.3.3. This is not a Jedi upgrade, but a small follow up (one relevant bugfix for Jedi). Please upgrade, especially if you are using 0.3.2.
Parso 0.3.3 (2018-02-06)
- Fix async errors in the diff parser
- A fix in iter_errors
- This is a very small bugfix release
Jedi 0.13.3 (2019-02-24)
- Fixed an issue with embedded Python, see davidhalter/jedi-vim#870
Upgrade is recommended mostly if you are using Jedi with embedded Python (this means e.g. embedded inside VIM). This bug also affected only Windows/Mac and not Linux/BSD.
BTW: Upgrading parso to latest is also recommended.
Jedi 0.14.0 (2019-06-20)
- Added
goto_*(prefer_stubs=True)
as well asgoto_*(prefer_stubs=True)
- Stubs are used now for type inference
- Typeshed is used for better type inference
- Reworked Definition.full_name, should have more correct return values
You can also follow me on twitter to get these kinds of news: https://twitter.com/jedidjah_ch/ (I don't spam).
Jedi 0.14.1 (2019-07-13)
- CallSignature.index should now be working a lot better
- A couple of smaller bugfixes
Parso 0.5.1 (2019-07-13)
- Fix: Some unicode identifiers were not correctly tokenized
- Fix: Line continuations in f-strings are now working
Jedi 0.15.0 (2019-08-11)
- Added file path completions, there's a new Completion.type
path
,
now. Example:'/ho
->'/home/
*args
/**kwargs
resolving. If possible Jedi replaces the parameters
with the actual alternatives.- Better support for enums/dataclasses
- When using Interpreter, properties are now executed, since a lot of people
have complained about this. Discussion in #1299, #1347.
New APIs:
Definition.get_signatures() -> List[Signature]
. Signatures are similar to
CallSignature
.Definition.params
is therefore deprecated.Signature.to_string()
to format call signatures.Signature.params -> List[ParamDefinition]
, ParamDefinition has the
following additional attributesinfer_default()
,infer_annotation()
,
to_string()
, andkind
.Definition.execute() -> List[Definition]
, makes it possible to infer
return values of functions.
0.15.2 (2019-12-20)
Upgrade needs a parso upgrade.
- Call signatures are now detected a lot better
- Add fuzzy completions with
Script(...).completions(fuzzy=True)
- Files bigger than one MB (about 20kLOC) get cropped to avoid getting
stuck completely. - Many small Bugfixes
- A big refactoring around contexts/values
0.16.0 (2020-01-26)
- Added
Script.get_context
to get information where you currently are. - Completions/type inference of Pytest fixtures.
- Tensorflow, Numpy and Pandas completions should now be about 4-10x faster
after the first time they are used. - Dict key completions are working now. e.g.
d = {1000: 3}; d[10
will
expand to1000
. - Completion for "proxies" works now. These are classes that have a
__getattr__(self, name)
method that does areturn getattr(x, name)
.
after loading them initially. - Goto on a function/attribute in a class now goes to the definition in its
super class. - Big Script API Changes:
- The line and column parameters of
jedi.Script
are now deprecated completions
deprecated, usecomplete
insteadgoto_assignments
deprecated, usegoto
insteadgoto_definitions
deprecated, useinfer
insteadcall_signatures
deprecated, useget_signatures
insteadusages
deprecated, useget_references
insteadjedi.names
deprecated, usejedi.Script(...).get_names()
- The line and column parameters of
BaseDefinition.goto_assignments
renamed toBaseDefinition.goto
- Add follow_imports to
Definition.goto
. Now its signature matches
Script.goto
. - Python 2 support deprecated. For this release it is best effort. Python 2
has reached the end of its life and now it's just about a smooth transition.
Bugs for Python 2 will not be fixed anymore and a third of the tests are
already skipped. - Removed
settings.no_completion_duplicates
. It wasn't tested and nobody
was probably using it anyway. - Removed
settings.use_filesystem_cache
and
settings.additional_dynamic_modules
, they have no usage anymore. Pretty
much nobody was probably using them.
Released parso 0.7.0. This is not a Jedi upgrade.
This should be backwards compatible with the last few Jedi versions, so please just upgrade. The upgrade helps a lot with some situations where after working with some code completions would stop. This was completely not reproducible (or it was very hard to reproduce), so people never really reported it.
I fixed a lot of annoying bugs in the diff parser. The fuzzer finally and for the first time did not find issues anymore even after running it for more than 24 hours (500k tests).
0.17.0 (2020-04-14)
- Added
Project
support. This allows a user to specify which folders Jedi
should work with. - Added support for Refactoring. The following refactorings have been
implemented:Script.rename
,Script.inline
,
Script.extract_variable
andScript.extract_function
. - Added
Script.get_syntax_errors
to display syntax errors in the current
script. - Added code search capabilities both for individual files and projects. The
new functions areProject.search
,Project.complete_search
,
Script.search
andScript.complete_search
. - Added
Script.help
to make it easier to display a help window to people.
Now returns pydoc information as well for Python keywords/operators. This
means that on the class keyword it will now return the docstring of Python's
builtin functionhelp('class')
. - The API documentation is now way more readable and complete. Check it out
under https://jedi.readthedocs.io. A lot of it has been rewritten. - Removed Python 3.4 support
- Many bugfixes
This is likely going to be the last minor version that supports Python 2 and
Python3.5. Bugfixes will be provided in 0.17.1+. The next minor/major version
will probably be Jedi 1.0.0.
0.17.1 (2020-06-20)
- Django
Model
meta class support - Django Manager support (completion on Managers/QuerySets)
- Added Django Stubs to Jedi, thanks to all contributors of the
Django Stubs <https://github.com/typeddjango/django-stubs>
_ project - Added
SyntaxError.get_message
- Python 3.9 support
- Bugfixes (mostly towards Generics)
0.17.2 (2020-07-17)
- Added an option to pass environment variables to
Environment
Project(...).path
exists now- Support for Python 3.9
- A few bugfixes
This will be the last release that supports Python 2 and Python 3.5.
0.18.0
will be Python 3.6+.
I am switching to a mailing list instead of this issue.
Please write an empty email to jedi-announce+subscribe@googlegroups.com
to subscribe. Alternatively you can of course also join here: https://groups.google.com/g/jedi-announce.
I might post the next few updates here as well, but the mailing list will be where the releases will be announced in the future.