Jedi: Release 0.10.0

Created on 3 Jul 2016  路  22Comments  路  Source: davidhalter/jedi

Let me tell you that I'm sorry that there's not going to be Jedi 1.0.0 for now, but I don't feel like Jedi is ready to leave the beta, it might take another 1-2 years (if not more).

I'm planning a new release. The current proposal is on the master branch.

Please test and report. Currently there's quite a few bugs open that I'm planning to tackle in the next few weeks.

release-discussion

Most helpful comment

I have now fixed all tests. This is a huge step into the right direction. It was quite an extreme task. I have rewritten like 50% of the type inference internals. However this means that Jedi is now way more hackable and the code base just makes a lot more sense. No more parser hacks, less state in general and a caching model that is more understandable (also a 30% performance increase, which is quite a lot).

All in all this makes Jedi a lot better in the longterm. It also prepares for a potential separate PyPI package of the Jedi parser, which would help a lot of people that want a good Python parser.

There's still issues with the diff parser that I have to figure out. I'm not sure if it's easy to find all the cases. If you want to help, just play with it and deliver a case where exceptions occur. It's pretty buggy at the moment.

PS: This is a pre-Christmas gift for myself and I would never have thought that I would finish it this early :)

All 22 comments

Thanks @davidhalter I'll try to release IPython 5.0 for SciPy, and then we can start thinking about breaking things for IPython 6.0 and refactor our completion to use Jedi.

I'll see if we can sprint on that !

@davidhalter , thanks for the great work.
Would it be possible to let us know what is being planned or changed in version 0.10.0?
I too would like to help with the testing.

You can read the CHANGELOG file. It's pretty much all in there. Most changes are behind the scenes.

I wanted to release this week, but I have realized that the fast parser still causes troubles. I'm currently trying to replace it.

If I don't make much progress, I'll just release in a month without it.

Sorry for the big delay. I have been quite busy in general. However I have managed to rewrite the complete "fast" parser. It's now a "diff" parser. It works in a different way but has about the same performance. There are still issues with it, but it's improving and has the chance to be 100% stable (where the old one would just always run into some bugs).

It was a lot of work.

I thought this would finally solve the parser issues (which it did). But now there are some fundamental struggles with names_dicts (just remove them). This means that I will again be working on this. I'm really sorry for still no release yet, but I'd rather release something with confidence. Now it would be guaranteed buggy.

Are you ok with this? If not please let me know. I'm not totally against releasing, it's just that I don't think it's the smartest thing right now.

I am happy to wait, awesome library and appreciate the work.

I have now fixed all tests. This is a huge step into the right direction. It was quite an extreme task. I have rewritten like 50% of the type inference internals. However this means that Jedi is now way more hackable and the code base just makes a lot more sense. No more parser hacks, less state in general and a caching model that is more understandable (also a 30% performance increase, which is quite a lot).

All in all this makes Jedi a lot better in the longterm. It also prepares for a potential separate PyPI package of the Jedi parser, which would help a lot of people that want a good Python parser.

There's still issues with the diff parser that I have to figure out. I'm not sure if it's easy to find all the cases. If you want to help, just play with it and deliver a case where exceptions occur. It's pretty buggy at the moment.

PS: This is a pre-Christmas gift for myself and I would never have thought that I would finish it this early :)

I'm now in a place where I'm only bug fixing and not adding more features. There might be a few very small things. But overall it looks very good. I have also added all of Python 3.6's new features and written tests for them. Some of them (like the async stuff) is not really completable, but at least Jedi doesn't raise errors anymore when you use await.

The diff parser still has quite a few issues though :-/

I have pushed to the master branch. Please test! Let me know if you find any major bugs. Otherwise I'm going to release in a few days.

FINALLY :)

Thanks a lot ! I'm waiting on review on Jedi integration with IPython, but that should also be one of the Major feature of IPython 6 !

Huge kudos.
Also I don't know if you are registered on https://codecuriosity.org if not I would consider doing it, as jedi is 2400 stars, and seing the work your doing on it, you should quickly get enough points to get a free githu tshirt or hoodie. Thats a small free compensation from working on open source.

Thanks mate! I've registered on code curiosity and I've got already 5k points. lol.

Congratulations on the release, and thank you again for all you do David!

Appreciate that!

BTW, are the two files on purpose ? Especially the py2 only seem weird.

jedi-0.10.0-py2-none-any.whl (md5)
jedi-0.10.0-py2.py3-none-any.whl (md5)

Also I'm going to guess downstream might want a tgz :-)

@Carreau I made a mistake with packaging and had to remove the tgz. I think if nobody asks for it I'll just leave it that way for now. Otherwise I have to do a new release (0.10.1).

@Carreau I made a mistake with packaging and had to remove the tgz. I think if nobody asks for it I'll just leave it that way for now. Otherwise I have to do a new release (0.10.1).

Yeah, I heard about the mistakes shortly after. No problem, I think the wheels are enough :-)

Yeah, I heard about the mistakes shortly after. No problem, I think the wheels are enough :-)

Well, actually I was going to update the conda-forge feedstock but it requires a tar.gz.

We'll probably need it once we release IPython 6.0, so no hurry.

Hello, could you upload an tarball? Arch Linux packaging relies on it
https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/python-jedi#n14

Hmm True. I will do that soon. But there's no chance that you'll get a 0.10.0 release. It will be 0.10.1, even if nothing changes.

Thinking at loud :
Is there any reason for the autogenerated github .tar.gz to be bad ?

@Carreau I agree. I would actually like those tags better in any case (they should be clean).

Was this page helpful?
0 / 5 - 0 ratings