Projects

mjdominus edited this page Mar 2, 2013 · 33 revisions

Projects

Use this page to describe projects you want to work on at the hackathon. This page is formatted with POD, so you can follow the example of projects already posted; just select "Pod" from formats. You can use POD skeleton, modified to your project's needs.

Revamp Term::ReadLine::Perl

See Term::ReadLine::Perl

Participants

Rocky Bernstein rocky@cpan.org

Florian Ragwitz (rafl)

Jordan Adler

Jason May

David H. Adler

Meet the Perl 5 Core Distribution

Sign up for this project if you want to hack on the Perl 5 core distribution. Experience helpful, but not necessary. If you have never hacked on the core before, we will assign you tasks that require only knowlege of Perl and that will be helpful for the core, particularly in the lead-up to this spring's release of Perl 5 Version 18.

  • Sites

  • Getting and Building Perl 5

    % git clone git://perl5.git.perl.org/perl.git perl
    % cd perl
    % sh ./Configure -de -Dusedevel
    % make
    % make test

Tasks

  • Add descriptions to tests lacking them

    There are many test files in the core distribution which lack descriptions for individual tests. Task is to study the test code and write an appropriate description. We will provide a list of test files needing attention.

  • Write a Porting/README explaining Porting contents

    See: RT #116477.

  • Flesh out perlexperiment.pod

    See: RT #116473

  • Automate perldelta's "new modules" section

    See: RT #116475

  • Supply patches to upstream to fix perl install locations

    See: RT #116479

  • Write test to ensure perlhist.pod has size for blead-final release

    See: RT #116481

  • Profile installman and improve its performance

    See: RT #116485

  • Resolve discrepancy between Porting/perltodo.pod and pod/perlhack.pod re t/cmd/

    See: RT #116615

  • Make perl core libraries run under strictures

    xdg has been reviving chromatic's strictperl patch to allow building an experimental variant of perl with strict defaulting to being on. This breaks a number of core libraries, so someone(s) need to go through those and fix them or file upstream bug reports about it.

  • Synchronise core-maintained dual-life modules with CPAN

    Many modules that ship with the perl core are maintained primarily as part of it and only ocasionally shipped to CPAN so that users of older versions of perl get to use the latest versions as well and so other CPAN modules can declare dependencies on those versions easily.

    Right now there's a lot of module updates in the core that haven't made their way to CPAN yet. This needs to be worked on.

Participants

Jim Keenan, jkeenan@cpan.org, IRC: kid51

Charlie Gonzalez, itcharlie@gmail.com IRC:itcharlie

Stevan Little, stevan.little@iinteractive.com, IRC:stevan

Florian Ragwitz, rafl@debian.org, IRC:rafl

Arthur Goldstein, arthur.goldstein@gmail.com

Augustina Blair, auggy@cpan.org, IRC:auggy

Matthew Ryder, mattryderster@gmail.com.

Nick Patch, patch@cpan.org, IRC:patch

Martin Heinsdorf, martinheinsdorf@codesign.net

David H. Adler

...and Ricardo Signes (rjbs) will help out when called for

...ditto David Golden (xdg) if people want to tackle strictperl

Catalyst SOAP modules

Update the Catalyst SOAP modules to make it work with the latest Catalyst. They have some things that are dependent on internal mechanics of Catalyst that are not working properly with the newest versions.

  • Web Site: http://search.cpan.org/~druoso/Catalyst-Controller-SOAP-1.23/

  • Source Code Repository: https://github.com/ruoso/Catalyst-Controller-SOAP

  • Version Control System: Git

Tasks

  • make sure it works with the latest of all dependencies.

  • address all reported test failures

  • solve any outstanding issues from RT.

Participants

Daniel Ruoso, daniel@ruoso.com, IRC: ruoso ; Mark Phelan, phelanm@gmail.com

PAUSE hacking

PAUSE is where CPAN authors upload modules. It's a gory mudball of code and has worked brilliantly for years.

A while ago RJBS and DAGOLDEN had a PAUSE micro-hackathon to improve its test suite but there is more work to be done. Once we have tests, it's easier to refactor and modernize it.

This project will aim to continue making PAUSE more contributor-friendly.

Tasks

  • Get familiar with the code

  • Decide on what to test

  • Write tests

  • Decide if tests are sufficent to refactor something

  • Profit!

Participants

Ricardo Signes (rjbs)

David Golden (xdg)

Nick Patch (patch)

Interested, but frightened: David H. Adler

HTTP::Tiny is a minimalist HTTP client included in the Perl core. HTTP::CookieJar is a minimalist cookie jar implementation. This project will patch HTTP::Tiny to use a cookie jar if one is given to it.

Tasks

  • Get familiar with the code

  • Add cookie_jar attribute to HTTP::Tiny

  • Teach HTTP::Tiny to get/set cookies from requests and responses

  • Write tests to confirm correct behavior

Participants

David Golden (xdg)

Stevan Little, stevan.little@iinteractive.com, IRC:stevan

Setup new RPM package repository for missing CPAN modules

Most of our systems here at RubensteinTech run CentOS and Red Hat Enterprise Linux (RHEL), both RPM-based systems, and as we move to a more DevOps-based environment we are automating the setup and rollout of both development and production environments. While it is relatively easy to manually install CPAN modules in an automated fashion, and we do so currently, the DevOps process can benefit from all that RPM Package Manager (RPM) provides as far as versioning, updates, per-requisite and conflict control, etc. The situation has improved dramatically over the years thanks to the tireless work of many RPM packagers, but it's still incredibly frustrating that 95% of the modules we use are available as RPMS, and 5% are still not.

We know we're not the only ones in this boat, and every CPAN module we can provide in RPM format to a public repository will benefit those that perhaps don't have the ability, resources, or administrative authority to install CPAN modules manually. We know some organizations forbid their teams to use modules that can't be installed via RPM on their production servers, so modules without an RPM package are effectively off-limits for those users.

This project seeks to help change that. We hope to determine the best practices for packaging CPAN modules as RPM files, setup an environment to do so, package up a set of modules, and publish them into a new repository to share with the community. With any luck, we'll be able to document the process to make this easy for other volunteers to enhance. And, maybe, down the line there will be an official Perl CPAN RPM repository (which, quite frankly, is what we should have as our ultimate goal).

Selected Existing Supplemental RPM Repositories for CPAN Modules

Tasks

  • Get familiar with the current best practices for packaging CPAN modules as RPMS

  • Create a sandbox environment for packaging modules, and scripts to automate the process

  • Package a set of CPAN modules not currently available in RPM format (Goal: 10)

  • Setup a new Yum repository for these modules and publish this to the Web.

  • Share it with the world, and rejoice at the added ease of system administration for RPM-based systems!

Participants

Jaron Rubenstein (JRUBEN), rocky (ROCKY) to get in my CPAN repositories on repoforge, ...

Edward Zborowski, edwardz@gmail.com

Statsd::Client

A couple of us at Shutterstock have independently built nicer clients for [statsd](https://github.com/etsy/statsd/) than the stock Net::Statsd. I want to merge what's good about them and release it to CPAN. Features include OO, more ease of configuration, sending multiple measurements per packet, and much easier-to-use timers.

Tasks

  • Extract the code from both modules

  • Refine the interface

  • Docs

  • Tests

Participants

Andrew Rodland (CPAN: ARODLAND, IRC: hobbs)

git-split-commit

Support for separating many intermingled changes into sensible git commits without a zillion passes through git-add -p. Secondarily, build Perl library for dealing with git.

See https://github.com/mjdominus/git-split-commit and http://blog.plover.com/prog/git-habits.html.

Tasks

  • Figure out current state of the project

  • Write a Perl module that can parse a git patch file (plus tests for it)

  • Write a utility program that can break a patch into multiple small patches

  • What next?

Participants

Mark Dominus (CPAN: MJD, IRC: yrlnry)