Padre 0.92, the release!
As previously alluded to, Padre 0.92 was nearing completion for distribution.
Well, this is the announcement to say that Padre, the Perl IDE has finally been cut loose to venture into the wild world.
With the run up to 1.0 the next series of Padre releases will be the end result of a lot of refactoring work, mostly done by the ever industrious Adam Kennedy; and more polish and shine to key areas, such as the amazing work done by Ahmad Zawawi with Wx::Scintilla and its incorporation into Padre.
The change list for this release is simply massive, at over 160 lines ( not all of them single line changes, granted ) this is without doubt one of the larger set of changes to go out in a release. Helped somewhat by the rather lengthy development cycle. Typically Padre releases were about 2-4 weeks, but with the significant changes to the internals going on, it was clear that time would be required to get things back into shape.
So lets take a look at some of the larger changes to Padre 0.92, on the road to 1.0:
Ahmad Zawawi gets top billing this announcement with the work done to bring us Wx::Scintilla.
- Wx::Scintilla is now stable and replaces Wx::STC in Padre (AZAWAWI)
Ahmad then went on to add in real time VCS or local document difference calculations to Padre:
- Added realtime VCS or local document difference calculation margin feature
- Added a differences popup window that can traverse differences in a document
and revert back changes (AZAWAWI)
- Added 'Next Difference' to edit menu (AZAWAWI)
- Added a generic version control panel that provides minimal project
subversion/git support with the ability to view normal/unversioned and ignored
Ahmad added in support for perl 6 and other additional languages with the assistance of Zeno Gantner:
- Add syntax checking comments pragmas. To disable Padre syntax check, please type '## no padre_syntax_check' and to enable again type '## use padre_syntax_check' in your source code (AZAWAWI) - Added lang_perl6_auto_detection which enables Padre to detect Perl 6 files in Perl 5 files. Please note that this is not an accurate method of detecting Perl 6 files (disabled by default). The previous behavior was to enable it when the Perl 6 plugin is enabled (AZAWAWI) - Added "Language Perl 6" tab to preferences (AZAWAWI) - Ruby and Python scripts can be now be executed (AZAWAWI) - Ruby, Python, Java, and C# are supported in the function list (AZAWAWI, ZENOG)
And if that wasn't enough, we now have a CPAN Explorer:
- Added CPAN explorer that reuses MetaCPAN.org API for searching for a module and uses App::cpanminus for package installation. It can list the most recent and favorite CPAN releases, view their POD documentation and if there is a SYNOPSIS section, one can insert it from within Padre. (AZAWAWI)
With a final effort to sort out some of the testing during the build and test before release tonight.
Adam Kennedy, ever our deepest explorer of dark code in Padre managed to wrangle the task manager again, breaking, grinding, sweating and returning to us a fixed and improved task API for Padre:
- New Task 3.0 which fixes bidirectional communication and thus enables services that run indefinitely in reserved threads (ADAMK)
With that we saw Style 2.0 land along with other GUI improvements:
- New Style 2.0 which simplifies implementations, adds style localisation and allows styling of the GUI (ADAMK) - Added fine-grained Wx locking mechanism so that high frequency asyncronous GUI code doesn't create high frequency asyncronous flickering. Padre flickers much less now on Win32 (ADAMK) - Added Replace in Files using matching logic to Find in Files (ADAMK) - Added plugin compatibility tracking to Padre::Search (ADAMK) - Wx doesn't seem to let us change the PaneBorder setting after pane creation, so leave it off and have an empty area rather than have a double-width border (ADAMK) - Wx constants are now Wx::FOO instead of Wx::wxFOO... and these ones are actually constants instead of strange AUTOLOAD weirdness (ADAMK)
This is a new one, and likely one of those changes you don't really notice:
- We now SetEndAtLastLine(0) on editor panels so you can scroll one page past the end of the document and type into relaxing clear space (ADAMK)
I guess when you're right down to the bottom of the code you really do notice small things like this!
More thread and task work:
- Added support for task parents and owners being notified when a task has started running in the background (ADAMK) - Task owners can now hijack status bar messages if they wish to (ADAMK) - The task manager can now run without the need for threads. However, every task will block the foreground and makes Padre unusable, so this feature is reserved for profiling Padre's performance (ADAMK) - The advanced setting threads_stacksize allows the tuning of the thread stack size. On Win32 the default is dropped to 4meg (ADAMK) - The advanced setting threads_maximum allows the tuning of the maximum number of background worker threads (ADAMK)
Improvements to the performance of the Directory/Project tree view:
- Directory tree search result rendering is now throttled to four updates per second. This prevents tree updates exhausting all resources and strangling user input, and seems to actually get the results onto screen faster because there's less lock/render passes (ADAMK)
The list goes on, but these are certainly most if not all of the notable and noticeable changes in Padre from Adam this release.
Kevin Dawson ( bowtie in IRC ) has been working steadily away at Patch:
- Add Patch to editor menu and removed Diff Tools (BOWTIE)
and assisting Ahmad with issues relating to panels on the right hand side of the IDE:
- Fix Outline focus and paint bugs that caused other right panels to misbehave when Outline is enabled (BOWTIE, AZAWAWI)
Kevin is also the author of a number of Cookbooks for Padre Plugins and quite a few other pages on the Padre wiki.
Ahmad committed a patch for the Solarized Light theme:
- Added 'Solarized Light' theme contributed by Anton Ukolov ('sugar' on irc) (AZAWAWI)
We also got the Solarized Dark theme, which is certainly my favourite theme in use at the moment, thanks Anton! This is far easier on the eyes than the glaring white background. You'll find the new themes under Tool/Preferences and the Appearance Tab ( first one ). Select the theme you want from the Editor Style Drop down.
Long time committers and usual lurkers, Sebastian Willing and Zeno Gantner also chipped in this release with a number of changes:
- Add out-of-the-box comment support for HTML, XML, LISP, Fortran, Forth, Pascal, VBScript, DOS batch files, ActionScript, Tcl, COBOL, Haskell (ZENOG) - MATLAB source file extension is .m, not .mat (ZENOG) - Tabs without filename now also backed up (SEWI) - "Filter through Perl" back into core (SEWI) - regex editor: insert m// operator when replace field is not visible (ZENOG) - regex editor: highlight matched text in blue instead of red, not avoid confusion with warnings (ZENOG) - improved messages in Menu/File.pm, Goto.pm and ActionLibrary.pm (ZENOG) - FindFast.pm: 'Case insensitive'->'Case sensitive' to match actual behavior of the checkbox (ZENOG) - Update German translation (ZENOG)
We saw Italian updated during the dev cycle and a late minute commit from crux ( irc sorry ) for Russian.
This is a long enough post as it stand now, I'm amazed if you got this far, but it wouldn't be fair not to try and capture just some of the work that has been going on with Padre since the last release nearly 3 months ago.
Padre is the culmination of a lot of work by a few dedicated people. It's clear we have a few stand out committers to Padre, but every bit counts, Kevin Dawson is doing great work with documenting on the wiki and prodding the key devs in interesting ways in irc.
Translations that make Padre usable for many in a global environment means that Padre is just that little more accessible to a wider audience.
The two new Solarized themes really are a joy to work with. I typically don't change the default settings, but I certainly reach for the preferences these days if I don't have Solarized Dark set.
I'm truly impressed with what has been achieved during the time I've been involved with Padre. I really did want to code and contribute in a more direct hands on way, but I find that with kids and a home life that doesn't seem to be getting any slower for now, that the ramp up time it takes to get back into Wx programming and Padre that I spend whatever time I have just learning everything again and never getting anything meaningful done.
So while I'm allowed to hold the job of Release Manager, it's still one way to stay connected to an awesome project.
Thanks to everyone who contributes to Padre, whether it's through installing it and reporting bugs either directly via trac or by dropping into irc.perl.org #padre, the translators and our alpha coders, the people who hang out in irc and can answer or assist others who drop in at all times of the global day and the people who just make coding in Perl that little more enjoyable.