Thursday, December 12, 2013

PyDev 3.1.0 released

PyDev 3.1.0 is now already available for download.

The debugger got a lot of attention in this release:

One of my favorite features is the code reloading. This means that when you change a file in the PyDev editor and there's a debug session going on, PyDev will automatically reload that module.

There are some caveats on doing that:

1. It'll try to reload the objects code in place (without changing references), but the code you're currently using in a frame in the current stack cannot be changed, so, you'll have to get out of the function and then back to see the changes (the set next line feature in the debugger which allows you to set the next line to be executed in the current scope can be very helpful for that).

2. Not everything can be cleanly reloaded (see: https://github.com/fabioz/Pydev/blob/development/plugins/org.python.pydev/pysrc/pydevd_reload.py for the limitations on xreload).

Still, it's very nice that you can now do the reload and it does work well on many situations ;)

Another nice thing is that it's now possible to inspect which are the referrers of a given variable by right-clicking it on the variables or expressions view and selecting 'get referrers'.

One last thing I'd like to mention is that Stackless Python is now supported in the debugger, which will show the tasklets as if they were threads in the stack view.

Besides the debugger, the rename refactoring also got some love, so, it's now possible to rename a module/package having all references updated as well. Also, the find references (Ctrl+Shift+G) had some bugfixes and should be more reliable now.

There are still a number of other nice things, so, check the release details on http://pydev.org for more information.

p.s.: Note that PyDev requires Eclipse 3.8 onwards and Java 7 (for older versions, keep using PyDev 2.x)

p.s.2: LiClipse (http://brainwy.github.io/liclipse/) is recommended for users that want a PyDev standalone with a hassle free install where things should 'just work' (also, by licensing LiClipse you directly support the development of PyDev).

Thursday, November 07, 2013

PyDev 3.0!

PyDev 3.0 has just been released.

This is the first version which breaks compatibility with older Eclipse and Java versions, so, in order to run it requires Eclipse 3.7 onwards and Java 7 (for older versions, keep using PyDev 2.x) -- check LiClipse (http://brainwy.github.io/liclipse/), if you want a hassle free install where things should 'just work'.

This release has 2 main improvements: usability improvements related to configuring an interpreter and several enhancements in the interactive console.

On the interpreter configuration side, there were several improvements, but I believe the major change is that when the files related to the interpreter are changed in the filesystem (i.e.: when pip-installing a library for instance), PyDev will automatically get that the interpreter configuration needs to be updated (previously a manual step was required in order to add that path to the PyDev interpreter configuration). This was the most voted issue on the tracker and I believe one of the sources of greater frustration for PyDev users -- and it's finally solved! (which for me is the cherry in this release and warrants the newly-acquired 3.0 status!)

As for the interactive console, it has many noteworthy enhancements (and more enhancements are expected in the upcoming versions):

1. The interactive console can now execute in debug mode. By enabling this feature in the preferences, it's possible to place breakpoints in code, execute some code in the interactive console and stop at that breakpoint (which is really nice).

2. User Module Deleter (UMD): By enabling UMD in the preferences (i.e.: using runfile instead of execfile to run a python module), dependencies imported when executing some code are reimported (so, changes in files are automatically gotten without requiring manual reload() calls).

3. IPython 1.0 is now supported. Also, %edit will open the file in the PyDev editor and %gui customizes the gui event loop integration (i.e.: %gui wx to enable wxPython backend).

More details on the interactive console can be seen at: http://pydev.org/manual_adv_interactive_console.html

Other features have also been added, including better handling of numpy arrays in the debugger, right-clicking a variable in the debugger > pretty print to pretty-print it, persistent history in the interactive console -- besides some important fixes.

The last thing is that LiClipse (http://brainwy.github.io/liclipse/) has also been released with the latest changes in PyDev 3.0 and now also supports Mako Templates and Dart (besides the languages it already supported, such as Django Templates, Javascript, HTML, C/C++, etc.)

Thursday, October 03, 2013

First LiClipse public release

The crowdfunding at the start of this year (http://igg.me/at/liclipse) had 2 targets, one was keeping the PyDev development going (which is going strong), and the other was creating a base to complement PyDev when dealing with other languages and providing some enhancements in the form of another plugin (LiClipse) which I thought were crucial to keep the Eclipse ecosystem healthy (and in return PyDev too).

Well, today I've just made the first LiClipse public release (it was in a closed Alpha so far). For me it's now the easiest way to get started on PyDev (as LiClipse bundles PyDev and has native standalone installers for Windows/Mac OS/Linux), besides providing support for common languages which often go with Python development (such as HTML, JavaScript, CoffeScript, Django Templates, RST, etc.), improved theming support and multi-edition (which may seem a minor thing, but it does make a number of workflows much more straightforward to me, so, I can hardly think about developing without it anymore).

More details on: http://liclipse.blogspot.com.br/2013/10/first-liclipse-public-release.html and its homepage: http://brainwy.github.io/liclipse/

Enjoy!

Thursday, September 05, 2013

PyDev 2.8.2 released. Plans for PyDev 3.

The latest PyDev release is out. Thank you to all supporters (https://sw-brainwy.rhcloud.com/supporters/PyDev/) which make it possible for me to keep working on PyDev!

Now, before giving more details on the release, let me outline the plans for PyDev 3:

Based on the feedback from my previous post, the plan will be moving forward with PyDev 3 to support only the latest Eclipse and Java versions (i.e.: Eclipse 3.8 and Eclipse 4.3 onwards and Java 7) . So, this release may mark the last release that supports older versions of Eclipse/Java. It's possible that there are more bugfix-only releases for the PyDev 2.x series, but only if some critical bug is found.

In practice: a development_pydev2 branch was created to provide for fixes that may be needed on PyDev 2, which is now in bugfix mode and the current development branch will now target PyDev 3.

Now related to the latest 2.8.2 release, lots of things came in, so, I'll try to keep the list short on what I think is nicest :)

  • Improved docstring support for sphinx/epydoc, so, you can have a different color to mark the related markup and code-completion can be requested to show sphinx markup on docstrings (as it already did for epydoc).
  • It's possible to use PEP-8 style imports (which is now the default on organize imports) and it's also possible to configure organize imports to remove unused imports -- personally, I think that's a bit dangerous, but it can be really handy sometimes :)
  • The project configuration got much nicer. As an example, it's possible to right click some folder to mark/unark it a source folder (i.e.: add/remove it from the PYTHONPATH).

There are many other changes too (see: http://pydev.org/ for details).

Wednesday, August 07, 2013

PyDev: poll about minimum Java/Eclipse versions to support

Ok, one issue that has been brought up a few times in the last month was the reasons for supporting older versions of Java and Eclipse in PyDev...

Java 7 has been around for a while already (and Java 6 EOL was about a year ago), so, I'm considering making newer versions of PyDev compatible with Java 7 and dropping support for older versions. If there are use cases where people that can't upgrade, I'd like to know about those.

Also, the latest PyDev can support up to Eclipse 3.2 (although some features might not be available if they were introduced on later versions of Eclipse, the reason for this was that Aptana Studio 2 was built on that version, but it's also no longer active, so, this may be a bad reason at this time) -- note that right now the codebase needs to be compiled with the latest Eclipse version, but in runtime it can support older versions of Eclipse.

So, I'm considering supporting only Eclipse 3.8 and 4.3, but I'd also like feedback to check if there are scenarios where this can be a problem...