We have received the following grant application. Please leave feedback in the comments field by March 22nd, 2014.
Automated generation of DWIM Perl
DWIM Perl is a "batteries included" Perl distribution for Microsoft Windows and for Linux. On Windows it is based on Strawberry Perl, on Linux it is compiled from the source released by the Perl 5 Porters. Both versions include a few hundred additional modules from CPAN.
The grant will enable me to further work on it, and specifically to finish automating the release of new versions.
Benefits to the Perl Community
DWIM Perl can make it much easier and faster for beginners to get started using Perl. It is useful both for people who would like to program in Perl, and for people who "just" want to run existing scripts or applications.
DWIM Perl makes it much easier and faster to set up a server running a Perl-based application. For example on a $5/month VPS. This reduces the advantage other languages might have in the area of deployment.
DWIM Perl can be the foundation of a "Perl Cloud", where people can develop on either a Windows or Linux based machine, and then easily deploy to a cheap VPS that has the same version of Perl with the same set of CPAN modules.
The grant will allow me to cerate a tool for automated releases and semi-automated upgrade of the parts. This will allow me (or anyone else) to easily create a new, up-to-date release of DWIM Perl.
It will also make it easy to create similar "batteries included" Perl distributions for the needs of companies, or open source projects using Perl.
- A script that given a configuration file can build a DWIM Perl distribution for Linux and for Windows.
- Configuration files ready to build DWIM Perl for Linux using 5.18.2, and for Windows using Strawberry 22.214.171.124.
- A new release of DWIM Perl for Windows based on Strawberry Perl 126.96.36.199 using a scripted generation.
- A new version of DWIM Perl for Linux based on 5.18.2
- DWIM Perl for Linux based on 5.19.X.
- Bug reports or even patches to modules that don't install cleanly.
- All the source will be placed on GitHub.
The Windows version will be an installation process. The Linux version will be a tar.gz file to be unzipped.
In order to get started using Perl with any reasonable modernity, people need to find and install hundreds of CPAN modules. This is an additional obstacle to getting started with Perl. Not only can it take hours to install all the required modules, there is always a chance that the current version of some of the modules on CPAN do not install cleanly. Several important CPAN modules require additional, non-perl packages. Locating and installing them can be additional issue.
Having a Perl distribution with "batteries included" means that newbies can download, install, and run. A lot less friction in getting started with Perl.
Each DWIM Perl distribution will include
The Linux version will include Starman.
On Linux, there is already a relatively good script, located at https://github.com/dwimperl/dwimperl-5-18-linux, but there are several modules that require external dependencies, that are not included.
In the Windows version, Strawberry already includes these "problematic" modules so the main thing that is missing is the automation.
For both versions the handling of the stable CPAN snapshot is missing.
- Research how the CPAN snapshot should be handled: Options that should be checked are: Carton, Pinto
- Do a "market research" asking people for lists of prerequisites they have in their Perl-based applications. Both open source and closed-source applications. This will provide valuable input as to what needs to be included in DWIM Perl.
Create a new release of both versions using a simple script, and with one module in the CPAN snapshot.
The Linux script will be based on https://github.com/dwimperl/dwimperl-5-18-linux
Add tests that can be run post installation to verify the problematic modules work. (Mostly the ones that require external libraries.)
- Write script to update the sh-bang lines of the perl scripts after relocation. (This might be submitted to p5p as well.)
- Include DBD::mysql in Linux.
- Include DBD::Pg in Linux.
- Include POE in Linux.
- Include PAR::Packer in Linux.
- Include XML::Parser in Linux.
There will be several intermediate DWIM Perl releases, marking the finish of each inch-stone.
I can start immediately after the grant is accepted on March 31, 2014. I expect the project to be done within 2-3 months.
Assuming the evaluator has access to the right operating system (MS Windows or Linux) she will be able to run the build script and create a new version of DWIM Perl with minimal manual intervention.
I have created the DWIM Perl project in 2011, originally as a vehicle to distribute Padre, the Perl IDE on Windows. Later the Linux version was added in order make it easy to deploy Perl-based applications on Linux-based servers.
I have been using Perl since 1995 and teaching it since 2000. I am the original author of Padre, the Perl IDE. I am also the maintainer of a number of modules on CPAN https://metacpan.org/author/SZABGAB.