davidhalter/jedi

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 new follow_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)

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 as goto_*(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 attributes infer_default(), infer_annotation(),
    to_string(), and kind.
  • 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 to 1000.
  • Completion for "proxies" works now. These are classes that have a
    __getattr__(self, name) method that does a return 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, use complete instead
    • goto_assignments deprecated, use goto instead
    • goto_definitions deprecated, use infer instead
    • call_signatures deprecated, use get_signatures instead
    • usages deprecated, use get_references instead
    • jedi.names deprecated, use jedi.Script(...).get_names()
  • BaseDefinition.goto_assignments renamed to BaseDefinition.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 and Script.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 are Project.search, Project.complete_search,
    Script.search and Script.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 function help('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.