Try this awesome trick to make your language toolchain better

Get the lead developers together in a hotel for four days. Remove all distractions. Feed them. Stand back and watch bugs get fixed, problems get solved, and new ideas implemented.

Earlier this month 38 Perl toolchain developers assembled in Lyon for the Perl Toolchain Summit, the event previously known as the QA Hackathon. This is an annual gathering where we pull together the lead developers of the core systems and tools in the CPAN ecosystem. We aim to provide an environment where for four days they can work on the tools we all rely on, with the right people around them.

This blog post is a summary of the summit. We can't cover everything, but our goal is to give you a flavour of the work that went on, and hopefully get across why the attendees typically rate this as their favourite event to attend. You can read more of the individual accomplishments on the results page of the event wiki.

No proposal for European Perl Conference 2018 yet

We did not get a single letter of intent to host the European Perl Conference in 2018 yet. So either all your monger groups try to stress out the YEF venue committee, or nobody actually wants to host the conference next year.

I do hope for the first option. But I fear that in fact nobody wants to gain endless glory by organising our yearly conference.

So here's again the Call for Venue for the Perl Conference in Europe 2018 (formerly know as YAPC::Europe). And please do consider submitting a proposal, or it might be a very sad summer in 2018...

Perl Toolchain Summit 2017 and PAUSE on Mojolicious in progress

At the last two Perl QA Hackathons, I worked on porting PAUSE on Plack, to drop old mod_perl and Apache dependencies and make it easier to set up PAUSE on your local environment. It was successful, but more could be done to fix various (visual/security/usability) issues on PAUSE UI. So, at the rebranded Perl Toolchain Summit of this year, I went a step (or a few steps) further and started to port PAUSE on Mojolicious, hoping to separate views from controllers and make it clearer for us which code belongs to which feature(s) and how.

graphql-perl - Pegex findings

I'm porting the reference implementation of GraphQL for JavaScript to Perl, sponsored by Perl Careers. Part of that is obviously to lex/parse GraphQL queries. I decided to try this with Pegex.

Key findings:

graphql-perl - a GraphQL reference implementation in Perl

I have recently started porting the reference implementation of GraphQL for JavaScript to Perl, sponsored by Perl Careers. My key considerations:

  • Use as "modern" Perl as possible: one of the Mo* family, plus type-checking
  • Follow the JS implementation where it makes sense, but be open to more Perlish ways where that's easier/better

You can see the GitHub repo at https://github.com/graphql-perl/graphql-perl, and the MetaCPAN page for the distro at https://metacpan.org/release/GraphQL.

Initial findings:

  • it will be useful to have a possibility in module-starter to generate a GitHub-aware filebase, including meta info pointing at your GH repo, and .travis.yml and .gitignore and MANIFEST.SKIP
  • a workable "modern" type system looks achievable with Moo, Type::Tiny, Function::Parameters, and Return::Type. It would probably be useful to enhance module-starter with boilerplate for these too.
  • Pegex looks promising as a means of lexing and parsing GraphQL. If this is successful enough, it may even be possible to use the grammar beyond Perl, in line with Ingy's "Acmeist" philosophy.
  • Tests will just be straightforward Test::More for the present time. A future possibility also advancing the above would be to use TestML for tests.
  • For the GraphQL internal type system, it may or may not be possible to use Type::Tiny for that too!

The Perl Conference 2017 (formerly known as YAPC::NA) is rapidly approaching, and we believe it will be great.

The Perl Conference, 2017 will be held this year in Washington DC, at the US Patent and Trademark Office, from June 18 through June 23rd.
This is the conference that many of us have affectionately known as YAPC::NA::17.

If you haven't registered yet, please do so as soon as possible.
We want to make sure we're providing the best possible experience for our participants, and to that end, accurate registration counts are helpful, plus there is still time to get the early-bird rate.

The conference website is: [http://www.perlconference.us/tpc-2017-dc/](http://www.perlconference.us/tpc-2017-dc/)

We have talks scheduled from many of the best speakers known to the Perl community;
Damian Conway, Sawyer X, Randal Schwartz, Mark Jason Dominus, Ricardo Signes, and so many other strong speakers that I feel silly having mentioned the few that I did.

For those seeking additional enlightenment there are tutorials and master classes offered (by additional registration) on topics such as:

Mojolicious::Plugin::INIConfig 0.6 is released. State become stable, and support config_override optioon

Mojolicious-Plugin-INIConfig 0.6 is released. State become stable, and support config_override option

Mojolicious::Plugin::INIConfig

I've forgot to remove EXPERIMENTAL status from now. Mojolicious::Plugin::INIConfig become stable.

And I support the same feature as Mojolicious::Plugin::Config config_override.

Enjoy!

Amusewiki 2.022

Hello Perl community,

This is a short announcement about the availability of amusewiki version 2.022. Since the previous announcement on blogs.perl.org, amusewiki has seen a bunch of bug fixes and improvements, both in the backend and in the UI.

The full changelog can be found at https://amusewiki.org/library/amw-version-20. The code can be download from github.

Notably, the fetching of remote git archives has been made asynchronous, so it will not block other jobs when fetching large amounts of updates.

Now it's possible to define custom formats for PDF and EPUB.

As always, unofficial debian packages are available at the same time a new release is rolled out and it's still the preferred and recommended way to install amusewiki. See http://packages.amusewiki.org/

If you want to try out amusewiki without installing anything, you're welcome to try out the sandbox at http://sandbox.amusewiki.org

My Perl Toolchain Summit

perl-toolchain-summit.jpg (Source: Flickr)

This past May was my second attendance at the Perl Toolchain Summit, and I hope I aptly justified my presence this time around.

I had a long list of topics to work on, but as usual, I gravitated towards a few focused ones and discussions I found valuable.

Not your great-great-great-great-great-grandmother's Perl

As I mentioned in my previous post, I'll be giving a free public lecture
this week in Olso. It will be my "400 Years of Perl 6" talk, and will be
held at Kulturhuset, Youngs gate 6, Oslo at 6pm on Wednesday 24 May.

I hope to see you there.

Damian

Perl 5 Porters Mailing List Summary: May 17th-22nd

Hey everyone,

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

Enjoy!

Perl Toolchain Summit 2017

For the second year, I have had the great privilege of attending the Perl Toolchain Summit (PTS, formerly called the QA Hackathon QAH). This year it was held in Lyon, France, and three cheers for the organizers; it was an amazing event!

Last year I unexpectedly became involved in the Meta::CPAN project, even to the point of hosting the first (annual?) Meta::Hack a few months ago. This year, I continued to work with them, however, the need was greater in the CPAN Testers realm and so there I went.

The (YAML and Perl Toolchain) Summits

Perl Toolchain Summit Lyon, France, May 11-14 2017

This year I was invited to the Perl Toolchain Summit in Lyon, formerly known as the Perl QA Hackathon. I had organized this event two years ago in Berlin.

Having been "only" an organizer before, this time I could actually code. It was a pleasure to work with over 35 people doing a lot of work for the Perl 5 and 6 infrastructure and related topics.

One of them was Ingy döt Net, who I enjoy working with on Perl and other Open Source projects regularly remotely. Since we both love the commandline, I could learn a lot from Ingy over the last two years.

At the summit we were working on existing and new YAML modules. This is Ingy's report of what we did. Spoiler: We killed YAML.pm and reinvented it.

YAML Summit Berlin, Germany, May 5-8 2017

In this post I would like to talk about the 2017 YAML Summit that took place just one week before the Toolchain Summit.

Twin Peaks (YAML Walk with Me)

I've just returned from a 2 week (and 2 Summit!) trip to Europe, specifically Berlin and Lyon. A couple months ago I was invited to attend the Perl Toolchain Summit 2017 in Lyon. Whenever I go to the EU I like to drop by Berlin to visit some friends.

One of my friends is Tina Müller, who works with me throughout the year on various open source things. We met 2 years ago at the Perl toolchain event in Berlin, that Tina helped organize. For the past 4 moths we've been concentrating on all of YAML as a lanuguage.

Specifically we've been making:

  • The canonical YAML Test Suite for all YAML projects
  • A multi-language YAML Editor for seeing how a given YAML text works in several language implementations at once
  • The YAML Testing Matrix website for seeing how all the YAMLs work at a glance

I decided that we should have the first ever YAML Summit in Berlin along with our fabulous collaborator (and NimYAML author) from Stuttgart, Felix Krause.

How I Spent my Perl Toolchain Summit 2017

This was my 5th year of being invited to participate in the Perl Tool Chain Summit (formerly Perl QA Hackathon). It was a real pleasure to be invited to a rebranded version of the same helpful event.

For the second year in a row, MetaCPAN was well represented at the event. This is important because it really does allow us to get much more work done. Getting everyone in the same room allows us to make decisions quickly and often deploy new ideas on the same day they've been discussed. Just like last year, we got a lot accomplished this year. I'm only going to touch on the work which I was directly involved with.


Read the full article.

Perl Toolchain Summit 2017

I had the honour of being invited to the Perl Toolchain Summit 2017, held in Lyon. It was amazing to meet so many of my Perl heroes, and to work with them on Perl toolchain code for a concentrated few days.

The atmosphere, food, and company were all superb, and the opportunity to brainstorm, collaborate, and agree on things to work on in the future unmissable.

I was able to produce these bits of code:

2017 Perl Toolchain Summit

This year I had one goal for CPAN Testers: Replace the current Metabase API with a new API that did not write to Amazon SimpleDB. The current high-availability database that raw incoming test reports are written is Amazon SimpleDB behind an API called Metabase. Metabase is a highly-flexible data storage API designed to work with massive, unstructured data sets and still allow for sane organization and storage of data. Unfortunately, Amazon SimpleDB is as it says on the tin: Simple. Worse, it's expensive: Like most Amazon services, it charges for usage, so there's a huge incentive for CPAN Testers to use it as little as possible (which made some of the code quite obtuse).

PTS 2017 - perl.org / metacpan / grep / cpancover / depreciations

This was the second year I got invited to Perl Toolchain Summit 2017 (PTS) - I think I got even more done than last year.

Having so many people all working on similar projects really does lead to an exponential amount of productivity, both across projects and between Perl 5 and Perl 6.

I could write essays on what I was involved in, but a brief summary:

Thursday

  • Launched new design for perl.org (babs did all the work)
  • Discussed and setup env for grep.metacpan.org with toddr and atoomic
  • Got Pete to start updating metacpan's vm
  • Helped Haarg test and deploy a shim so `cpanminus` clients now use the v1 metacpan api (even though they hit the old v0 API), done using Fastly user agent detection and a new site just for this back compat that haarg has written.
  • Discussion on metacpan v0 depreciation with haarg
  • Start of discussion on improving search

Friday

Not your grandmother's Perl

I will be back in Oslo next week, and we still have a few spaces available in the
public class I'm teaching there next Tuesday. They'll be taking enrolments right up until 12 noon on Monday, so if you're in the area, there's still time to sign up and discover all the amazing new features and the many significant improvements that have been added to Perl in the past few years.

We'll also be organizing a public talk one evening, which I'll post about separately once the details are settled. Or you can keep an eye on Oslo.pm's Meetup page.

Se deg der, du vikinger av Perl!

Damian

Perl Toolchain Summit 2017 - Day 4

I didn't get as much done on the final day of the Perl Toolchain Summit because I needed to get home for work on Monday. But I did manage to enlist others in helping me, which is even better.

Devel::Cover has always had a problem in that top level statements (those not in a sub) in modules cannot be covered. This is because perl throws away the optree as soon as it has executed. My knowledge of the internals has never been good enough to even work out a sensible plan for how to solve this, but fortunately Aaron Crane is a good deal cleverer than me and thinks he might be able to develop a solution. It may need perl to have extra hooks, or it might involve deep magic, or both, but at least the end of the tunnel is not pitch black any more. Thanks Aaron!

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl and offering the modern features you’ve come to expect in blog platforms, the site is hosted by Dave Cross and Aaron Crane, with a design donated by Six Apart, Ltd.