Logo ognion
Perl QA Hackathon 2014

March 13-16, 2014 in Lyon

Logo ognion
 

Perl QA Hackathon 2014

March 13-16, 2014
in Lyon, France

Logo PQAH  

March 13-16, 2014
in Lyon, France

Proposed Projects

Table of Contents

  • PAUSE
  • CPAN clients
  • Module metadata
  • Build & install systems
  • Module testing
  • Automated testing
  • Quality metrics and assessment
  • Benchmarking
  • Perl 5 Core
  • Perl 6 CPANish client and ecosystem

PAUSE

Implement Lancaster distribution name indexing rules

In Lancaster, we agreed that distribution uploads must match a module name within to be indexed (with a grandfather list). This work needs to be completed and tested

-- by Ricardo Signes (‎rjbs‎), David Golden (‎xdg‎)

PAUSE ID registration and release

In Lancaster, we agreed to automate registration and release unused names after a period of time. These need to be implemented

-- by ???

Automating CPAN directory cleanup

In Lancaster, we agreed to rules for automated directory cleanup. These need to be implemented

-- by ???

No longer publishing the module list

In Lancaster, we agreed to publish an empty module list as a stepping stone to shutting down registration. This needs to be implemented. (Patches may exist and merely need to be applied.)

-- by ???

Relationship between PAUSE permissions and indexing

Should PAUSE permissions and indexing be fully separate? For example, if the metadata for a dist specifies `no_index` on a module, should you still get permission for that module, thus preventing anyone else from uploading the same module name (with or without `no_index`)?

- by Neil Bowers (‎NEILB‎), Andreas König, David Golden (‎xdg‎)

Yearly email to PAUSE users

A periodic (probably yearly) email to PAUSE authors, to give them some kind of useful dashboard, and in the process check validity of their contact email address, recording this in the PAUSE db.

Discussed this briefly with ANDK at LPW 2013, hoping to hammer out a design and get at least a first cut working.

— by Neil Bowers (‎NEILB‎), Andreas König, Barbie

Use Module::Metadata for distribution analysis

If M::M can be fixed (see below), it could replace PAUSE's legacy analysis for greater consistency.

-- by Karen Etheridge (‎Ether‎), David Golden (‎xdg‎)

Identifying distributions that need help and possibly adoption

Working out the best way to get this information into MetaCPAN, and possibly looking at other factors that should be included.

— by Neil Bowers (‎NEILB‎), Olaf Alders (‎oalders‎), Barbie

BackPAN index

We still don't have an open-source BackPAN index and having one would help install older versions of modules.

-- by ???

CPAN clients

Patch CPAN.pm to use CPAN::Common::Index

Using CPAN::Common::Index would reduce memory usage and allow fast online module lookups (like cpanminus).

-- by David Golden (‎xdg‎)

Add backends to CPAN::Common::Index

CPAN::Common::Index has pluggable backends. Adding backends for other indexing web services would reduce dependence on Miyagawa's service.

-- by ???

Refactoring code from all CPAN clients into CPAN::Common::*

They do similar things in slightly different ways, but their major difference ought to be UI/features. If they can use a single set of low-level libraries for "unpack, build, test, install", that would be quite useful for reduced maint and would allow future innovation in CPAN clients.

-- by David Golden (‎xdg‎)

Module metadata

Module::Metadata

M::M has a number of flaws and potential security holes. It needs fixing.

-- by Karen Etheridge (‎Ether‎), David Golden (‎xdg‎)

Create one static VERSION finding module

Several tools scan .pm files for $VERSION assignments. We should get one good module to do that and then use it everywhere

-- by ???

CPAN::Meta::Merge

This is a smart merging engine for CPAN Meta fragments. This will require CPAN::Meta::Converter to be able to handle fragments first.
— by Leon Timmermans (‎leont‎), others?…

x_no_use and x_cpants META fields

See https://github.com/cpants/www-cpants/issues/39

— by Philippe Bruhat (‎BooK‎)

Harmonize meta validator and tester modules

Currently there are several modules/distributions that provide CPAN Meta
validation: CPAN::Meta::Validator (core), Test::CPAN::Meta(::(YAML|JSON))?
(barbie) that contain duplicated code. Identify where the code should live,
and have the remainder change to being wrappers. Fix common callers e.g.
Dist::Zilla. (see also
CPAN-Meta issue#44).
Also potentially: provide patches for outstanding tickets
(RT#87951,
[CPAN-Meta queue)

--- by Karen Etheridge (‎Ether‎), Barbie

$VERSION handling

Identify undesirable behaviour of version.pm, cpan clients and PAUSE, such as
comparisons involving dev releases, updating meta spec as needed.

Build & install systems

Module::Build replacement

Write various components of a planned Module::Build replacement, including

  • Finish Build::Graph, a dependency engine that doesn't suck
  • Finish ExtUtils::Builder, a general purpose compiling/linking framework
  • Write a plugin architecture that doesn't suck, this will probably require some kind of IOC.

— by Leon Timmermans (‎leont‎)

Installed module database / Packlists replacement

Start writing that .packlist replacement we discussed in Lancaster.

— by Leon Timmermans (‎leont‎), others?…

Finish the Build.PL specification

The Build.PL specification is moving forwards very slowly, we should finish it for real.
— by David Golden (‎xdg‎), Leon Timmermans (‎leont‎)

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.
— by Leon Timmermans (‎leont‎), miyagawa?

Module testing (not automated testing )

More Test::Class::Moose improvements

Test::Class::Moose is becoming more popular and is being used in production environments. My aim is to improve the "out of the box" parallel testing behavior, clean up some interface issues and make it easier to migrate from a Test::Class setup by providing optional Test and Tests tags, just like we find in Test::Class. Those can be used for plan management.

I also want to introduce a Test::Class backwards-compatibility role to further smooth the transition.

— by Curtis Poe (‎Ovid‎)

DBI::Test

Continue extending the prototype to explore the issues and find practical solutions.

— by Tim Bunce, H.Merijn Brand (‎Tux‎), others?…

Automated testing (not module testing )

CPAN Testers

Various projects including improving APIs, CT Admin site, CT Search, CT Statistics

— by Barbie

Automate Metabase deployment with configuration management

Doing this would allow easier testing of alternatives and upgrades without risking the current server

-- by David Golden (‎xdg‎)

Smolder

A few months ago, I needed something to smoke & collect test results. I remembered Smolder, and discovered it had gone unmaintained. I merged most of the patches people had proposed on Git Hub and CPAN RT. The major work left to do is to merge with mcartmell's branch, who ported Smolder to PSGI & DBIx::Class. Then we can start adding new features, maybe including a job scheduler.
— by Sébastien Aperghis-Tramoni (‎maddingue‎)

Maybe you could also adopt the Smolder distribution on CPAN. — Philippe Bruhat (‎BooK‎)

Test::Smoke

Continue the work on Test::Smoke, the backends, the database and the web-UI

-- by Abe Timmerman (‎abeltje‎), H.Merijn Brand (‎Tux‎), others?

Perl branch smoking improvements

https://github.com/tsee/cpan_perl_branch_smoke allows you to smoke multiple branches of Perl and compare results, but it could use some love. Some improvements:

  • Easier installation of prereqs
  • Easier setup of smoking config
  • Fix various bugs found while using
  • Documentation

-- by Matthew Horsfall (‎alh‎)

Quality metrics and assessment

CPANTS metrics

Add and improve some metrics, both for uploaded distributions, and for local projects that use
Test::Kwalitee,
Module::CPANTS::Analyse
and its friends.

— by Kenichi Ishigaki (‎charsbar‎), Karen Etheridge (‎Ether‎), Salve J. Nilsen (‎sjn‎), others?

Changes files: spec and parsing code

There are various aspects of the spec in CPAN::Changes::Spec and parsing in CPAN::Changes that people have expressed dissatisfaction with. Try and hammer out something that we can all live with.

— by Neil Bowers (‎NEILB‎), Olaf Alders (‎oalders‎), Graham Knop (haarg)?

Benchmarking

Perl::Formance resurrection

Better benchmarking with statistics

I want to bring confidence intervals formally to benchmarking. I have some ideas and may want to discuss them or prototype an API.

-- by David Golden (‎xdg‎)

Perl 5 Core

SV type preservation

Following a discussion that occurred on p5p, I think I have a way to implement a mechanism which, although it would not be as initially described, should still be extremely helpful for serializers. I'm not very familiar with p5 internals, but it can be an occasion for me to discover more. If someone is interested and want to steal the idea, I can describe it in more details on another page :)
— by Sébastien Aperghis-Tramoni (‎maddingue‎)

Improve HTTP::Tiny

Add IPv6 support via IO::Socket::IP; also review a pull request for persistent connection support

-- by David Golden (‎xdg‎)

Document 'require' semantics

Implement coderef/arrayref/object in @INC support for Acme::require::case and use its code (less case-sensitivity bits) as the basis of revising 'perlfunc'

-- by David Golden (‎xdg‎)

rpeep

  • Test coverage
    • Separate out tests for rpeep from B/t/optree_samples and B/t/optree_specials into a new file
    • Ensure all rpeep optimisations are covered (at least at a high level)
  • Separate out optimisations from fixups. This is working towards the perltodo goal of:
optional optimizer
Make the peephole optimizer optional. Currently it performs two tasks
as it walks the optree - genuine peephole optimisations, and necessary
fixups of ops. It would be good to find an efficient way to switch out
the optimisations whilst keeping the fixups.

-- by Matthew Horsfall (‎alh‎)

Deparse tests

There used to be a test.deparse makefile target. I've attempted to bring this back inside of t/TEST, but what would be better is an actual .t test that contains all of the logic (since it really doesn't belong in t/TEST). Figure out some way to do this sanely so that it can start being smoked. This will allow us to prevent deparse from getting worse, and we can slowly start trying to make it better.

-- by Matthew Horsfall (‎alh‎)

Module\:\:CoreList

Implement an `is_dual($module, $perl_version )` interface. Most likely
depends on getting everything properly homed into ext/, dist/, or cpan/ (see
perl RT#120080).

--- by Karen Etheridge (‎Ether‎)

Perl 6 CPANish client and ecosystem

Steal^WGet ideas from Perl 5 that are known to work, in order to make the Perl 6 package installation rock solid.
The way of installating a distribution is meant to put it into a repository rather than storing it flat on disk. There is a prototype for such a repository and its handling, but it needs strengthening befor it will be the standard.

--- by Tobias Leich (‎froggs‎)


version 31 saved on 18/02/14 15:50 by Tobias Leich (‎froggs‎)

Home | Tags | Recent changes | History

Proposed Projects

Table of Contents

  • PAUSE
  • CPAN clients
  • Module metadata
  • Build & install systems
  • Module testing
  • Automated testing
  • Quality metrics and assessment
  • Benchmarking
  • Perl 5 Core
  • Perl 6 CPANish client and ecosystem

PAUSE

Implement Lancaster distribution name indexing rules

In Lancaster, we agreed that distribution uploads must match a module name within to be indexed (with a grandfather list). This work needs to be completed and tested

-- by Ricardo Signes (‎rjbs‎), David Golden (‎xdg‎)

PAUSE ID registration and release

In Lancaster, we agreed to automate registration and release unused names after a period of time. These need to be implemented

-- by ???

Automating CPAN directory cleanup

In Lancaster, we agreed to rules for automated directory cleanup. These need to be implemented

-- by ???

No longer publishing the module list

In Lancaster, we agreed to publish an empty module list as a stepping stone to shutting down registration. This needs to be implemented. (Patches may exist and merely need to be applied.)

-- by ???

Relationship between PAUSE permissions and indexing

Should PAUSE permissions and indexing be fully separate? For example, if the metadata for a dist specifies `no_index` on a module, should you still get permission for that module, thus preventing anyone else from uploading the same module name (with or without `no_index`)?

- by Neil Bowers (‎NEILB‎), Andreas König, David Golden (‎xdg‎)

Yearly email to PAUSE users

A periodic (probably yearly) email to PAUSE authors, to give them some kind of useful dashboard, and in the process check validity of their contact email address, recording this in the PAUSE db.

Discussed this briefly with ANDK at LPW 2013, hoping to hammer out a design and get at least a first cut working.

— by Neil Bowers (‎NEILB‎), Andreas König, Barbie

Use Module::Metadata for distribution analysis

If M::M can be fixed (see below), it could replace PAUSE's legacy analysis for greater consistency.

-- by Karen Etheridge (‎Ether‎), David Golden (‎xdg‎)

Identifying distributions that need help and possibly adoption

Working out the best way to get this information into MetaCPAN, and possibly looking at other factors that should be included.

— by Neil Bowers (‎NEILB‎), Olaf Alders (‎oalders‎), Barbie

BackPAN index

We still don't have an open-source BackPAN index and having one would help install older versions of modules.

-- by ???

CPAN clients

Patch CPAN.pm to use CPAN::Common::Index

Using CPAN::Common::Index would reduce memory usage and allow fast online module lookups (like cpanminus).

-- by David Golden (‎xdg‎)

Add backends to CPAN::Common::Index

CPAN::Common::Index has pluggable backends. Adding backends for other indexing web services would reduce dependence on Miyagawa's service.

-- by ???

Refactoring code from all CPAN clients into CPAN::Common::*

They do similar things in slightly different ways, but their major difference ought to be UI/features. If they can use a single set of low-level libraries for "unpack, build, test, install", that would be quite useful for reduced maint and would allow future innovation in CPAN clients.

-- by David Golden (‎xdg‎)

Module metadata

Module::Metadata

M::M has a number of flaws and potential security holes. It needs fixing.

-- by Karen Etheridge (‎Ether‎), David Golden (‎xdg‎)

Create one static VERSION finding module

Several tools scan .pm files for $VERSION assignments. We should get one good module to do that and then use it everywhere

-- by ???

CPAN::Meta::Merge

This is a smart merging engine for CPAN Meta fragments. This will require CPAN::Meta::Converter to be able to handle fragments first.
— by Leon Timmermans (‎leont‎), others?…

x_no_use and x_cpants META fields

See https://github.com/cpants/www-cpants/issues/39

— by Philippe Bruhat (‎BooK‎)

Harmonize meta validator and tester modules

Currently there are several modules/distributions that provide CPAN Meta
validation: CPAN::Meta::Validator (core), Test::CPAN::Meta(::(YAML|JSON))?
(barbie) that contain duplicated code. Identify where the code should live,
and have the remainder change to being wrappers. Fix common callers e.g.
Dist::Zilla. (see also
CPAN-Meta issue#44).
Also potentially: provide patches for outstanding tickets
(RT#87951,
[CPAN-Meta queue)

--- by Karen Etheridge (‎Ether‎), Barbie

$VERSION handling

Identify undesirable behaviour of version.pm, cpan clients and PAUSE, such as
comparisons involving dev releases, updating meta spec as needed.

Build & install systems

Module::Build replacement

Write various components of a planned Module::Build replacement, including

  • Finish Build::Graph, a dependency engine that doesn't suck
  • Finish ExtUtils::Builder, a general purpose compiling/linking framework
  • Write a plugin architecture that doesn't suck, this will probably require some kind of IOC.

— by Leon Timmermans (‎leont‎)

Installed module database / Packlists replacement

Start writing that .packlist replacement we discussed in Lancaster.

— by Leon Timmermans (‎leont‎), others?…

Finish the Build.PL specification

The Build.PL specification is moving forwards very slowly, we should finish it for real.
— by David Golden (‎xdg‎), Leon Timmermans (‎leont‎)

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.
— by Leon Timmermans (‎leont‎), miyagawa?

Module testing (not automated testing )

More Test::Class::Moose improvements

Test::Class::Moose is becoming more popular and is being used in production environments. My aim is to improve the "out of the box" parallel testing behavior, clean up some interface issues and make it easier to migrate from a Test::Class setup by providing optional Test and Tests tags, just like we find in Test::Class. Those can be used for plan management.

I also want to introduce a Test::Class backwards-compatibility role to further smooth the transition.

— by Curtis Poe (‎Ovid‎)

DBI::Test

Continue extending the prototype to explore the issues and find practical solutions.

— by Tim Bunce, H.Merijn Brand (‎Tux‎), others?…

Automated testing (not module testing )

CPAN Testers

Various projects including improving APIs, CT Admin site, CT Search, CT Statistics

— by Barbie

Automate Metabase deployment with configuration management

Doing this would allow easier testing of alternatives and upgrades without risking the current server

-- by David Golden (‎xdg‎)

Smolder

A few months ago, I needed something to smoke & collect test results. I remembered Smolder, and discovered it had gone unmaintained. I merged most of the patches people had proposed on Git Hub and CPAN RT. The major work left to do is to merge with mcartmell's branch, who ported Smolder to PSGI & DBIx::Class. Then we can start adding new features, maybe including a job scheduler.
— by Sébastien Aperghis-Tramoni (‎maddingue‎)

Maybe you could also adopt the Smolder distribution on CPAN. — Philippe Bruhat (‎BooK‎)

Test::Smoke

Continue the work on Test::Smoke, the backends, the database and the web-UI

-- by Abe Timmerman (‎abeltje‎), H.Merijn Brand (‎Tux‎), others?

Perl branch smoking improvements

https://github.com/tsee/cpan_perl_branch_smoke allows you to smoke multiple branches of Perl and compare results, but it could use some love. Some improvements:

  • Easier installation of prereqs
  • Easier setup of smoking config
  • Fix various bugs found while using
  • Documentation

-- by Matthew Horsfall (‎alh‎)

Quality metrics and assessment

CPANTS metrics

Add and improve some metrics, both for uploaded distributions, and for local projects that use
Test::Kwalitee,
Module::CPANTS::Analyse
and its friends.

— by Kenichi Ishigaki (‎charsbar‎), Karen Etheridge (‎Ether‎), Salve J. Nilsen (‎sjn‎), others?

Changes files: spec and parsing code

There are various aspects of the spec in CPAN::Changes::Spec and parsing in CPAN::Changes that people have expressed dissatisfaction with. Try and hammer out something that we can all live with.

— by Neil Bowers (‎NEILB‎), Olaf Alders (‎oalders‎), Graham Knop (haarg)?

Benchmarking

Perl::Formance resurrection

Better benchmarking with statistics

I want to bring confidence intervals formally to benchmarking. I have some ideas and may want to discuss them or prototype an API.

-- by David Golden (‎xdg‎)

Perl 5 Core

SV type preservation

Following a discussion that occurred on p5p, I think I have a way to implement a mechanism which, although it would not be as initially described, should still be extremely helpful for serializers. I'm not very familiar with p5 internals, but it can be an occasion for me to discover more. If someone is interested and want to steal the idea, I can describe it in more details on another page :)
— by Sébastien Aperghis-Tramoni (‎maddingue‎)

Improve HTTP::Tiny

Add IPv6 support via IO::Socket::IP; also review a pull request for persistent connection support

-- by David Golden (‎xdg‎)

Document 'require' semantics

Implement coderef/arrayref/object in @INC support for Acme::require::case and use its code (less case-sensitivity bits) as the basis of revising 'perlfunc'

-- by David Golden (‎xdg‎)

rpeep

  • Test coverage
    • Separate out tests for rpeep from B/t/optree_samples and B/t/optree_specials into a new file
    • Ensure all rpeep optimisations are covered (at least at a high level)
  • Separate out optimisations from fixups. This is working towards the perltodo goal of:
optional optimizer
Make the peephole optimizer optional. Currently it performs two tasks
as it walks the optree - genuine peephole optimisations, and necessary
fixups of ops. It would be good to find an efficient way to switch out
the optimisations whilst keeping the fixups.

-- by Matthew Horsfall (‎alh‎)

Deparse tests

There used to be a test.deparse makefile target. I've attempted to bring this back inside of t/TEST, but what would be better is an actual .t test that contains all of the logic (since it really doesn't belong in t/TEST). Figure out some way to do this sanely so that it can start being smoked. This will allow us to prevent deparse from getting worse, and we can slowly start trying to make it better.

-- by Matthew Horsfall (‎alh‎)

Module\:\:CoreList

Implement an `is_dual($module, $perl_version )` interface. Most likely
depends on getting everything properly homed into ext/, dist/, or cpan/ (see
perl RT#120080).

--- by Karen Etheridge (‎Ether‎)

Perl 6 CPANish client and ecosystem

Steal^WGet ideas from Perl 5 that are known to work, in order to make the Perl 6 package installation rock solid.
The way of installating a distribution is meant to put it into a repository rather than storing it flat on disk. There is a prototype for such a repository and its handling, but it needs strengthening befor it will be the standard.

--- by Tobias Leich (‎froggs‎)


version 31 saved on 18/02/14 15:50 by Tobias Leich (‎froggs‎)

Home | Tags | Recent changes | History