The Lyon Compromise on Perl version formats

I fixed some tests in Module::Release because I supported v-strings and dev versions at the same time. Even though I don't use v-strings, the module would recognize v1.2.3_1. Andreas caught this because he does this amazing work to test CPAN breakage. John Peacock noted that version changed due to the "Lyon Compromise" from the 2014 Perl QA Hackathon. I know about the various concensuses (Olso Consensus, Berlin Consensus, Lancaster Consensus), but got no google juice on the Compromise.

In short, the Lyon Compromise is a bit more strict on version formats to trim off some tricky edge cases. John pointed me at a gist from David Golden which mentions Lyon but not Compromise.

So, I'm saying Lyon Compromise for Perl QA quite a bit. And Perl. Because keywords about version formats from the Lyon Compromise. If that's what you're looking for, I hope you find it.

Introducing CPANParty

Not long time ago I asked a community about possible service to run integration tests for existed cpan modules , not having too much feedback I decided to run such a service to make my suggestion visible and available to try for other users.

So, meet CPANParty - an alternative integration tests for cpan modules. Right now service is hosted on swatpm site, but in the future I will probably move it to dedicated domain.

Only a few randomly chosen cpan modules was picked up and tested. Eventually I will add more.

So, questions, ideas, issues?

Please comment here or to https://github.com/melezhik/cpanparty

Thanks in advance

Alexey Melezhik

PS CPANParty reports page below

cpanparty reports

Hiring in Sydney Australia

(From the Sydney.PM email list, Facebook page and #australian on irc.perl.org)

Disclaimer: I am not involved with the above at all. I cant answer questions or provide additional information either.

A Travis pull request for Proc::ProcessTable

My pull request challenge assignment for the month of February was Proc::ProcessTable a Perl module to interface with the Unix process table. As you can see from looking at the README.md file via Github this project recently has been moved to Github with the intention of light maintenance with focus on critical fixes made by the community. I was running out of time and I didn't have a linux system to use or test this module so I decided to do something simple like integrating Travis CI.

All it takes to enable Travis CI in a Github repo is a .travis.yml file in the root directory of the project and a Github account to allow Travis access to the Github repositories for Travis builds.

Here's a sample of the Travis file and the Travis Builds from my pull request.


As you can see from the examples Proc::ProcessTable is now tested on 8 different versions of Threaded Perl running on Ubuntu Linux. Now I can mark my February assignment as done. YAY!!!! \o/

For more information on Travis setups read the Travis Perl Docs and for further information on how to enable testing on Threaded versions of Perl please review Travis-Perl-Helpers README documentation.

Announce: Rakudo Perl 6 compiler, Release #96 (2016.02)

On behalf of the Rakudo development team, I'm very happy to announce the February 2016 release of Rakudo Perl 6 #96. Rakudo is an implementation of Perl 6 on the Moar Virtual Machine

This release implements the 6.c version of the Perl 6 specifications. It includes bugfixes and optimizations on top of the 2015.12 release of Rakudo, but no new features.

Upcoming releases in 2016 will include new functionality that is not part of the 6.c specification, available with a lexically scoped pragma. Our goal is to insure that anything that is tested as part of the 6.c specification will continue to work unchanged. There may be incremental spec releases this year as well.

The tarball for this release is available from http://rakudo.org/downloads/rakudo/.

Please note: This announcement is not for the Rakudo Star distribution[^1] --- it's announcing a new release of the compiler only. For the latest Rakudo Star release, see http://rakudo.org/downloads/star/.

Tabletop.Events Built On Perl

For the past year I’ve been working on putting a new business together that is built on top of Perl and AngularJS. The new business is called Tabletop.Events. It is a convention management platform for the hobby board game industry. 

image

It’s features include:

  • Badge sales and printing
  • User event submissions
  • Event ticket sales
  • Registration desk management
  • Blog and email newsletter to attendees
  • Desktop and mobile friendly interfaces
  • A full web service API

It’s built on Wing, which is the same core toolkit we used to build The Game Crafter. On the back-end, Wing is pure Perl making use of Dancer, DBIx::Class, Moose, and a whole host of other Perl technologies. On the front-end Wing is all AngularJS, which allows us to rapidly build out a robust UI that automatically ties itself to the Perl backend.

If you want to learn more about the technologies used to make Tabletop.Events, come hang out with us at the next MadMongers meeting.

...but which one is easier to learn?

learning-perl-vs-python.jpg

3Party - cpan modules third party testing

Last time I have been deeply involved into test automation development. So some projects was born like swat, outthentic and finally sparrowhub.

After some mediation on the future of my projects I am still committed to the idea of sharing such a tests with the rest of perl/cpan community.

An issues arise on my way though:

  • people used to stick to convenient unit tests kept under their cpan distributions and are half-heartedly for third party tests alternative which of course is respected by me.

  • (IMHO) integration tests are hard to write and maintain, this is probably why people prefer to write unit tests, and as swat is kind of integration test tool, it could be "neglected" for the reason above. I believe still that integration tests are essential part of development.

Taking into account all of this I am introducing an idea of third party tests service - 3Party ( working name, just can't invent something better right now ) with the following features:

Part 3 of Perl 6: Regular Expressions to Grammars

Part 3 of the Regular Expressions to Grammars tutorial is now up at http://theperlfisher.blogspot.nl/2016/02/from-regular-expressions-to-grammars-pt_20.html - This covers parsing of a short JavaScript blurb into a form that the compiler we're going to write next time can understand.

Hello World

Hello, World!

Introducing Git::Version::Compare

As explained last week, I took all the Git version comparison code out of Git::Repository, and moved it into a new module: Git::Version::Compare.

Perl Maven guest-posts

At the beginning of the year I've sent out a call for authors. It took us a while, but I am happy to report that there are already 3 guest-post from 3 different authors.

  • Marpa for building parsers - a first look by Peter Jaquiery aka GrandFather on PerlMonks
  • How to install Perl modules on FreeBSD by Steve Dickinson
  • Benchmark: Refactoring MD5 calculation in Rex by Ferenc Erki, one of the core developers of Rex

I don't link directly to the articles as they are only available to Perl Maven Pro subscribers, but you can find them in the archive together with other 700+ articles.

Later, after a few month, these article will be made available to the general public free of charge.

If you would like to contribute to this growing body of knowledge about Perl while earning some money, then please get in touch with me via e-mail.

If you'd like to support the effort by giving money then subscribe to the Perl Maven Pro. The more subscribers there are, the more articles and authors I can pay for.

GitPrep 1.12 released - Catch up latest GitHub design

I released GitPrep 1.12. You can install portable GitHub system into Unix / Linux easily. It is second major release.

Because you can install GitPrep into your own server, you can create users and repositories without limit. You can use GitPrep freely because GitPrep is free software. You can also install GitPrep into shared rental server.

GitPrep (Document and Repository)

Features added in 1.12 are:

  • Catch up latest GitHub design


Enjoy!

Example

You can try GitPrep example.

GitPrep Example

Download

Download

Document

GitPrep Document and Repositry

Am I reinventing a wheel?

The thing that hath been, it is that which shall be; and that which is done is that which shall be done: and there is no new thing under the sun. Is there any thing whereof it may be said, See, this is new? it hath been already of old time, which was before us. (Ecclesiastes 1:9,10)

Outthentic is a tool for rapid plugin developments. When I say "plugin" I mean a little utility to solve a specific task.

Having a risk to reinvent the wheel, from time to time I still start to create some useful stuff, at least useful from my point of view ...

Disk usage monitoring

This little plugin does what is stated at the header:

  • checks disk space in partition by partition basis
  • alerts in case of shortage
  • a threshold parameter could be set and equal 80 default, which means before 80 percentage of disk usage we are ok.

Sparrow

It's CPAN Day 2016-0.5!

It's halfway to CPAN Day 2016, so I'm going to be celebrating it as a mini-CPAN Day and using it as an opportunity to get some small releases out that otherwise might not justify a release on their own, like updating the distribution tooling or making documentation tweaks.

Come join me in celebrating CPAN Day 2016-0.5!

Perl 5 Porters Mailing List Summary: February 8th-14th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past week. Enjoy!

Perl 5 Optimizing Compiler, Part 18: RPerl v1.6 Released, Happy Valentine's Day!

Greetings Fellow Perlites,

For St. Valentine's Day, we have released RPerl v1.6, with support for a number of new features:

- Two Dimensional Arrays
- Logical Ops
- Uncompile Mode
- Mandelbrot app via MathPerl

As always, the latest official release may be found on CPAN:

https://metacpan.org/release/RPerl

Thanks to our first grant from The Perl Foundation, we have released the first partial draft of the new book Learning RPerl, available on either CPAN or directly on the RPerl website:

http://rperl.org/learning_rperl.html

NOW A CALL TO ACTION!

Please take a moment to click the following link and leave a comment, this counts as your vote for RPerl to receive the next round of funding from The Perl Foundation:

http://news.perlfoundation.org/2016/02/grant-proposal-rperl-user-docu-1.html

The deadline is only 2 days from now, Weds Feb 17, thanks so much for your support!

Perling,
~ Will the Chill

Playing games with outthentic dsl

Playing games with outthentic dsl

Outthentic - is language to parse unstructured text. It was grown as supporter for web application test tool named swat. Web application is where text often comes in unstructured and unordered way, even though there is json and xml, there are a lot of applications when it is not the case.

Then a generic test tool named outthentic was created as solution for any text parsing/testing tasks. This tool is based on outthentic dsl as well.

Creation a new consumers of outthentic language is way too easy, with API exposed and explained at outthentic documentation.

What I try to do in this short post is to highlight some randomly picked features to let readers to have a sense what is outthentic way to analyze and verify text output, which of course could be used wide in daily testing tasks.

If ( after reading this post ) you feel like to know more - an official outthentic documentation is here and ( less formal ) - here

Ranges

Apropos proto: Perl6.c multi thoughts

Multi routines are pretty neat, but seem incomplete to me. Some background- one can compute factorials this way:
multi fac(0) { 1 }
multi fac(Int $n where 1..Inf) { $n * fac( $n-1 ) }
say fac(4); # 24

Now what if we want to pass our recursive-multi-sub "fac" as a callback?

given &fac -> $some_fun { say "some_fun(4)=",$some_fun(4) }

Now... what about defining an anonymous multi-sub?

Test your Git wrapper against 500 versions of Git

Ever since I wrote Git::Repository, I've paid attention to supporting as many Git versions as possible.

This is possible because it is a really thin wrapper around Git, that expects only a few sub-commands to exist. Therefore the burden of making sure the Git they're using supports all the features they need is put on the user (the various version comparison methods are meant help working that out).

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.