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...

Thursday, July 25, 2013

PyDev 2.8.0 released

I guess that the major feature added in PyDev 2.8.0 is that the type inference engine will now work with docstrings to find out about the types.

The page: http://pydev.org/manual_adv_type_hints.html has more details about that (note that the syntax is very broad, so, I'm waiting on reports if there are use-cases I did not cover properly). Also note that PyDev still can't provide code-completion when unpacking types -- such as a list(str) -- if you want that, please vote on https://sw-brainwy.rhcloud.com/tracker/PyDev/147 (as it's a request that's considerably hard to do, I'll probably only do it if there are many people interested).

The second is that the interactive console supports running with Qt and Gtk event loops (which was a patch by Edward Catmur). This allows users to interactively create a UI in those frameworks while actually seeing and manipulating the window.

-- Update: 2.8.1 has been released to remove the Gtk event loop because was not working properly.

Wx is still not supported properly because I wasn't able to make it work without redirect=False on the app, and if redirect=True it won't put the output in the interactive console (if there's someone knowledgeable with time to check it, org.python.pydev/pysrc/pydevconsole.py: WxMainLoop is the place to look at).

The last thing is that debugging should be working again on Google App Engine (which was broken after the latest updates on the dev_appserver.py) -- it was really a bummer not having the debugger there.

Besides that, there are many other niceties added in this release. See http://pydev.org for more details.

Now, unrelated to release features: I think that a nice side-effect of the plead to support for PyDev is that more people are contributing code to PyDev too (besides allowing me to spend more time to develop it myself), so, this release had much more pull requests merged than usual -- great times to be developing PyDev :)

Another nice thing is that for this release I was finally able to enable voting properly on the tracker and allow supporters to fund PyDev again (and get votes in the tracker or space in the homepage as a reward), so, for those that haven't been able to contribute before, https://sw-brainwy.rhcloud.com can be accessed to provide funds to keep it going so that it can remain viable on the long term... (as short term it's viable thanks to the previous Indiegogo crowdfunding).




Tuesday, May 28, 2013

PyDev 2.7.5 released

Just issued a new release. It's mostly a bugfix release, but there are some critical fixes there...

The major ones are:

  • A deadlock was fixed.
  • The icons are now properly in the outline (they moved places in the last release but the build file wasn't changed properly to include them).
  • When browsing the modules related to the interpreter in the PyDev Package Explorer, those were not properly opened.

And there are a couple of improvements released too (such as having the pyunit view output font use the console font, auto-formatting can be enabled just for files in the workspace, etc.).

Tuesday, May 14, 2013

PyDev crowdfunding finished

Ok, the PyDev crowdfunding has just finished -- and it reached its basic goal :).

The funding was divided in a series of perks, 610 people contributed and the final distribution for them (monetary-wise) was:


  • Altruist: 1.5% (Thank you)
  • Early adopter: 17.95% (LiClipse regular license -- no access to betas)
  • Believer: 11.92% (LiClipse regular license -- access to tracker and betas)
  • PyDev Knight: 23.48% (Get a vote in the PyDev tracker and contribute only to PyDev itself)
  • Oracle: 22.61% (LiClipse perpetual license)
  • Bronze Sponsor: 2.86% (10 regular licenses)
  • Silver Sponsor: 19.68% (10 perpetual licenses)


I must say that the funding changed quite a bit. Initially there was no PyDev Knight perk (which is a perk targeted only towards PyDev, whereas the others are targeted at PyDev and LiClipse). So, this was the result of listening to feedback and adjusting the campaign (also, initially I didn't put enough details on PyDev and added to much emphasis on LiClipse -- which is something adjusted during the campaign).


There is also one thing I failed to check properly before : Paypal fees are not the same everywhere. Here in Brazil it's 7.4% + 0.3US$ (whereas in US it's 2.9%+0.3US$). So, in the end, 12%  went to Paypal/Indiegogo, whereas I was planning something around 8% (and there are still taxes to pay, but this is something to be expected anyways, so, in the end the net result for me will be something as 73% -- but just because I have a company setup for that, had I done it as a person it'd be around 63% here in Brazil -- I just hope the government does use it's share properly -- grin).

I still think it was worth as a way for a one time funding as everything is already setup and to know if there's interest before starting it -- which I think is the main point of a crowdfunding campaign: discover if something is viable before delving into it (not that failing on a crowdfunding is always a sure sign that something won't work, but in this specific case, with a product that is already mature, and with an existing community, I think it's how I'd see it).

Also, during that process I've set up a new tracker at https://sw-brainwy.rhcloud.com for both PyDev and LiClipse. It's a tracker I had done for fun some time ago (and yes, I know it's one of the seven sins of a programmer), but as I'd have to customize any solution for what I want, I think it's nice. The idea is that anyone will be able to create tickets and comment on those, but for voting which tickets will be done next you'll have to become a PyDev Knight (I still haven't sent the access for existing PyDev Knights to vote, but I'll do it during the upcoming month -- as you can see, I still have some things to set up).

A note on the tracker: it's hosted on RedHat's OpenShift, and it's called Brainwy because that's the company I created to keep PyDev going :)

Mainly it's a Javascript-based tracker where it's easy to see the whole picture and move things around. If you're curious, you can use an offline version at https://sw-brainwy.rhcloud.com/demo/, because as a user in the PyDev/LiClipse trackers you won't really be able to move things around, just add ticket, comment on existing ones and vote (once you have a vote) -- you can use it as much as you want, but note that I don't plan on adding support to it or actually distributing it differently -- I've already enough supporting PyDev and LiClipse :)

All in all, it was definitely a good outcome and it was nice having so much support from so many people!

Thank you everyone!

Fabio