Logo ognion
Perl Toolchain Summit 2017

May 11-14, 2017 in Lyon

Logo ognion
 

Perl Toolchain Summit 2017

May 11-14, 2017
in Lyon, France

Logo PTS  

May 11-14, 2017
in Lyon, France

PTS 2017 Projects

Add projects below that you're thinking of working on. If you see someone else's project that you'd like to help on, add your name, but email them as well please.

Discussions

perl without dot-in-@INC

Dot has left @INC in perl 5.26, with wide-ranging repercussions for the toolchain. In particular, how do we deal with PERL_USE_UNSAFE_INC in the future. And what can we do to make CPAN more compliant with a world without dot in @INC?

PTS: how the summit should be run

I'd like the way the PTS runs to be a bit more transparent. If others are interested I'd like to run through how I've been running (certain parts of) PTS for the last 2 years, and get input on what works well and what could be improved, so we can document "how we think PTS should work", for whoever runs it in subsequent years.

  • NEILB

PAUSE

PAUSE: remove old module-list UI

We got rid of all module-list permissions (the 'm' in 06perms.txt), but the UI still has the bits for module-list perms. We should get rid of this, to reduce confusion for end-users.

  • NEILB

PAUSE Permissions conflicts

Try and resolve the last few case-sensitive permissions conflicts, and work with ANDK to get my proposed change merged, so they can't happen in the future.

  • NEILB

monitor for PAUSE mirroring failure

We've had a few times recently where the CPAN master has stopped mirroring PAUSE. Eventually someone notices and the NOC are nudged. Andreas and I have outlined a way to monitor this, so we can alert much sooner. I'd like to implement our idea.

  • NEILB

Perl6's Qt Profiler

Rakudo's default Angular profiler's performance and memory footprint make it unsuitable for any serious development. A Qt profiler frontend (written in C++) is a partial replacement, though its missing features compared to its web-based counterpart. Needs to be updated to the new profiling data format and the SQL storage.

A sub-idea: port it to Perl 6 and see if it turns out to be more performant than the JS one? :)

  • TADZIK

Static CPAN installation

Our current installation mechanism is very flexible (in a Turing complete way), but most of the time that isn't necessary. It could be useful if this dependency on shelling out to Makefile.PL/Build.PL could be eliminated where possible.

  • LEONT
  • HAARG
  • ETHER
  • ATOOMIC
  • NINE

Distribution metadata

Module::Metadata modernization

There are several conflicting pull requests that are still in progress of being applied to Module::Metadata, to pull out its version parsing into its own package, using a Safe compartment, and improving the large corpus of tests. Additionally, we would like to explore shipping the version parsing component in its own distribution and also potentially calling it from ExtUtils::MakeMaker so we can eliminate EUMM's own (slightly different) version of parse_version().

  • ETHER

Look at cycles caused by recommends/suggests prereqs

CPAN clients don't try and install recommends prereqs by default, because this has historically resulted in dependency cycles. I'd like to find all such cases, and think about whether there's a way the default behaviour for recommends could be changed, possibly discussing with ANDK (for CPAN) and MIYAGAWA (for cpanm).

NEILB

CPAN::Mini in git

Not sure if I'll be working on this but it's my fall back.

While researching Makefile.PL related failures due to dotless @INC, we developed a proof of concept that I think could be generally useful if maintained. It potentially could replace or enhance http://grep.cpan.me but be more stable in that it'd be available on github.

The big advantage is I could in a shorter amount of time walk all of the directories and test a certain thing like running Makefile.PL and seeing if it failed or not.

The proof of concept can be found here: https://github.com/toddr/minicpan_grep

  • TODDR
  • ATOOMIC

cpan2rpm tools

Not sure if I'll be working on this but it's my fall back project.

We are currently building RPMs using some internal tools, that might also be used by the perl community. The goal is to clean and provide a these tools via a CPAN distro.

* ATOOMIC
* NINE

Dist::Build

This is an extensible Build.PL implementation intended as a replacement for Module::Build.

  • LEONT

App::ModuleBuildTiny

This the minimalist authoring counterpart to Module::Build::Tiny. It's slowly gaining features and becoming a more complete authoring tool.

CPAN::Changes

Rewritten changelog parser better reflects the reality of CPAN. Nearly complete.

  • HAARG

MetaCPAN

Github Project - Kanban for PTS

Syntax Highlighter

Replace the syntax highlighter with a hopefully faster, more robust, and more maintained library.

  • HAARG

API v0 Shim

A shim layer to handle cpanm requests to the v0 API. Could be expanded to handle other v0 clients if needed. Should allow us to drop the v0 indexes/servers without breaking common clients.

  • HAARG
  • RANGUARD (Leo Lapworth) - deployment

SCO redirector

Improved search.mcpan.org redirection, supporting many additional URLs not handled by the current naive URL rewriting.

  • HAARG
  • RANGUARD (Leo Lapworth) - deployment

ES connection pooling

So rollouts do not cause network blips, Server starter config might also be useful

  • RANGUARD (Leo Lapworth)

Improving search results

We have a framework for testing changes now, work on actually doing changes

  • RANGUARD (Leo Lapworth)

CPAN Testers

Client issues

Fix outstanding bugs in the queue, specially those preventing tests from being sent or not giving out accurate and complete information on the results.

  • GARU

Common::Client

Integrate CPAN::Reporter with CPAN::Testers::Common::Client so both cpan and cpanm benefit from a common codebase (and remove tons of duplicate code).

  • GARU

Metabase

Send other Metabase facts and get them to be properly parsed and manipulated by the CPAN Testers' servers. This will (hopefully) allow for much more granular query and analysis of test reports.

  • GARU

Test::Smoke

Look at the sync-from-git code.

  • abeltje
  • tux

Perl 6

Perl 6 and CPAN

Chat about getting Perl 6 authors to use CPAN (PAUSE already supports Perl6 modules), I'd be interested in talking with anyone who can help on this. I already run https://github.com/perl6modules but this should not be a long term solution.

  • RANGUARD (Leo Lapworth)
  • UGEXE
  • NINE

Declarative build system

Half a year ago, Nine has started collecting thoughts on a declarative build system for Perl 6 modules to replace Build.pm. The goal is to avoid touring complete build steps as much as possible which seems to align very well with "Static CPAN installation".

  • NINE
  • UGEXE

CPAN River

River data generator

I've been generating the river data as a side effect of the mess of scripts I use to run the pull request challenge, build the adoption list, and some other stuff.

I'm working on a stand-alone generator for this data, and hoping to also have it generator lists like "dists that have changed bucket", etc. I was hoping to have it complete before PTS, but work and other Perl-related yak shaving probably means I'll work on it there.

NEILB

Inspection / code review of Try::Tiny

As an experiment, I'd like to try running an inspection of Try::Tiny. I picked this module because (a) it's the furthest upriver non-core module, and (b) the code is just about a manageable size for an inspection.

Depending on the number of people interested, I thought we might run at least two separate tracks: one for the code itself, and one for the documentation.

I was thinking this might be appropriate to run one evening, after people have eaten, but am open to suggestions. Add your name below if you're interested in participating.

NEILB

YAML

All kinds of YAML related stuff

  • INGY
  • TINITA

version 42 saved on 03/05/17 07:03 by Nick Logan (‎ugexe‎)

Home | Recent changes | History

PTS 2017 Projects

Add projects below that you're thinking of working on. If you see someone else's project that you'd like to help on, add your name, but email them as well please.

Discussions

perl without dot-in-@INC

Dot has left @INC in perl 5.26, with wide-ranging repercussions for the toolchain. In particular, how do we deal with PERL_USE_UNSAFE_INC in the future. And what can we do to make CPAN more compliant with a world without dot in @INC?

PTS: how the summit should be run

I'd like the way the PTS runs to be a bit more transparent. If others are interested I'd like to run through how I've been running (certain parts of) PTS for the last 2 years, and get input on what works well and what could be improved, so we can document "how we think PTS should work", for whoever runs it in subsequent years.

  • NEILB

PAUSE

PAUSE: remove old module-list UI

We got rid of all module-list permissions (the 'm' in 06perms.txt), but the UI still has the bits for module-list perms. We should get rid of this, to reduce confusion for end-users.

  • NEILB

PAUSE Permissions conflicts

Try and resolve the last few case-sensitive permissions conflicts, and work with ANDK to get my proposed change merged, so they can't happen in the future.

  • NEILB

monitor for PAUSE mirroring failure

We've had a few times recently where the CPAN master has stopped mirroring PAUSE. Eventually someone notices and the NOC are nudged. Andreas and I have outlined a way to monitor this, so we can alert much sooner. I'd like to implement our idea.

  • NEILB

Perl6's Qt Profiler

Rakudo's default Angular profiler's performance and memory footprint make it unsuitable for any serious development. A Qt profiler frontend (written in C++) is a partial replacement, though its missing features compared to its web-based counterpart. Needs to be updated to the new profiling data format and the SQL storage.

A sub-idea: port it to Perl 6 and see if it turns out to be more performant than the JS one? :)

  • TADZIK

Static CPAN installation

Our current installation mechanism is very flexible (in a Turing complete way), but most of the time that isn't necessary. It could be useful if this dependency on shelling out to Makefile.PL/Build.PL could be eliminated where possible.

  • LEONT
  • HAARG
  • ETHER
  • ATOOMIC
  • NINE

Distribution metadata

Module::Metadata modernization

There are several conflicting pull requests that are still in progress of being applied to Module::Metadata, to pull out its version parsing into its own package, using a Safe compartment, and improving the large corpus of tests. Additionally, we would like to explore shipping the version parsing component in its own distribution and also potentially calling it from ExtUtils::MakeMaker so we can eliminate EUMM's own (slightly different) version of parse_version().

  • ETHER

Look at cycles caused by recommends/suggests prereqs

CPAN clients don't try and install recommends prereqs by default, because this has historically resulted in dependency cycles. I'd like to find all such cases, and think about whether there's a way the default behaviour for recommends could be changed, possibly discussing with ANDK (for CPAN) and MIYAGAWA (for cpanm).

NEILB

CPAN::Mini in git

Not sure if I'll be working on this but it's my fall back.

While researching Makefile.PL related failures due to dotless @INC, we developed a proof of concept that I think could be generally useful if maintained. It potentially could replace or enhance http://grep.cpan.me but be more stable in that it'd be available on github.

The big advantage is I could in a shorter amount of time walk all of the directories and test a certain thing like running Makefile.PL and seeing if it failed or not.

The proof of concept can be found here: https://github.com/toddr/minicpan_grep

  • TODDR
  • ATOOMIC

cpan2rpm tools

Not sure if I'll be working on this but it's my fall back project.

We are currently building RPMs using some internal tools, that might also be used by the perl community. The goal is to clean and provide a these tools via a CPAN distro.

* ATOOMIC
* NINE

Dist::Build

This is an extensible Build.PL implementation intended as a replacement for Module::Build.

  • LEONT

App::ModuleBuildTiny

This the minimalist authoring counterpart to Module::Build::Tiny. It's slowly gaining features and becoming a more complete authoring tool.

CPAN::Changes

Rewritten changelog parser better reflects the reality of CPAN. Nearly complete.

  • HAARG

MetaCPAN

Github Project - Kanban for PTS

Syntax Highlighter

Replace the syntax highlighter with a hopefully faster, more robust, and more maintained library.

  • HAARG

API v0 Shim

A shim layer to handle cpanm requests to the v0 API. Could be expanded to handle other v0 clients if needed. Should allow us to drop the v0 indexes/servers without breaking common clients.

  • HAARG
  • RANGUARD (Leo Lapworth) - deployment

SCO redirector

Improved search.mcpan.org redirection, supporting many additional URLs not handled by the current naive URL rewriting.

  • HAARG
  • RANGUARD (Leo Lapworth) - deployment

ES connection pooling

So rollouts do not cause network blips, Server starter config might also be useful

  • RANGUARD (Leo Lapworth)

Improving search results

We have a framework for testing changes now, work on actually doing changes

  • RANGUARD (Leo Lapworth)

CPAN Testers

Client issues

Fix outstanding bugs in the queue, specially those preventing tests from being sent or not giving out accurate and complete information on the results.

  • GARU

Common::Client

Integrate CPAN::Reporter with CPAN::Testers::Common::Client so both cpan and cpanm benefit from a common codebase (and remove tons of duplicate code).

  • GARU

Metabase

Send other Metabase facts and get them to be properly parsed and manipulated by the CPAN Testers' servers. This will (hopefully) allow for much more granular query and analysis of test reports.

  • GARU

Test::Smoke

Look at the sync-from-git code.

  • abeltje
  • tux

Perl 6

Perl 6 and CPAN

Chat about getting Perl 6 authors to use CPAN (PAUSE already supports Perl6 modules), I'd be interested in talking with anyone who can help on this. I already run https://github.com/perl6modules but this should not be a long term solution.

  • RANGUARD (Leo Lapworth)
  • UGEXE
  • NINE

Declarative build system

Half a year ago, Nine has started collecting thoughts on a declarative build system for Perl 6 modules to replace Build.pm. The goal is to avoid touring complete build steps as much as possible which seems to align very well with "Static CPAN installation".

  • NINE
  • UGEXE

CPAN River

River data generator

I've been generating the river data as a side effect of the mess of scripts I use to run the pull request challenge, build the adoption list, and some other stuff.

I'm working on a stand-alone generator for this data, and hoping to also have it generator lists like "dists that have changed bucket", etc. I was hoping to have it complete before PTS, but work and other Perl-related yak shaving probably means I'll work on it there.

NEILB

Inspection / code review of Try::Tiny

As an experiment, I'd like to try running an inspection of Try::Tiny. I picked this module because (a) it's the furthest upriver non-core module, and (b) the code is just about a manageable size for an inspection.

Depending on the number of people interested, I thought we might run at least two separate tracks: one for the code itself, and one for the documentation.

I was thinking this might be appropriate to run one evening, after people have eaten, but am open to suggestions. Add your name below if you're interested in participating.

NEILB

YAML

All kinds of YAML related stuff

  • INGY
  • TINITA

version 42 saved on 03/05/17 07:03 by Nick Logan (‎ugexe‎)

Home | Recent changes | History