juankpro has asked for the wisdom of the Perl Monks concerning the following question:

I started learning Perl a couple of months ago and started a project which I call Migrate so I can learn as much Perl as possible.

The project allows managing DB schema changes (migrations) using Perl syntax for creating and removing tables, indexes, columns and constraints instead of plain SQL.

The current implementation is using DBI and DBD::SQLite and there is also an implementation for Informix, but I made it in such a way other RDMS implementation can be added as separate libraries easily.

I need the following:

My project is posted here: https://github.com/juank-pa/Perl-Migrate There is already general documentation on the README file as well as an API in the repo Wiki. Please guide me. Thanks in advance

Replies are listed 'Best First'.
Re: Help publishing my DB migration project
by hippo (Archbishop) on Aug 17, 2018 at 11:23 UTC

    Greetings, juankpro. It sounds like you've come a very long way in just a couple of months!

    Advice on how can I get a Perl partner to help me finish the tool. Specially the tests suite.

    If you know what needs to be done then I'd suggest raising specific tasks as issues against your own repo and use the "help wanted" or "volunteer needed" tags. There's no guarantee of the quality of the responses but it might attract the attention of some idle hands.

    Get someone to review my code so I can be confident I'm in the right path

    That will be harder, not least because everyone has their own opinion on what makes good code. Ideally, see if you can garner a few reviews (from here, PrePAN, StackOverflow or wherever) and apply the recommendations which are common to all of them. For low-level, idiomatic (but still opinionated) review there is Perl::Critic.

    Advice on what are the next steps or what I'm still missing to get t publish my project in CPAN

    I am a CPAN author but far from a prolific one. From my experience I would recommend:

    • Use Travis or another CI tool to run your test suite against a range of perl versions (there are also tools which can do this locally) as this can pick up bugs due to spec changes within Perl itself.
    • Consider the various modules designed to help you produce good distros: Test::Kwalitee, Devel::Cover, Pod::Checker, etc.
    • Choose what you consider to be a good name. FWIW, I don't think that "Migrate" is a fantastic name as it says nothing about what you are migrating (and it's also a new top-level which would be frowned upon especially from a new author). Maybe App::DB::Migrate or similar might be better?
    • Keep re-reading the documentation at PAUSE, perldoc and here. They're full of good advice.

    Good luck with your project.

    (Edited to remove reference to long-gone prepan)

      Thanks for you answer there are really good tips in there. That will definitively get me closer to my goal :)
Re: Help publishing my DB migration project
by davido (Cardinal) on Aug 17, 2018 at 15:21 UTC

    "Advice on how to get a Perl partner to help me finish the tool. Specifically the tests suite."

    Perhaps start up an IRC channel on irc.perl.org, blog about the project on blogs.perl.org and other places... give a talk at a Perl Mongers meeting or other conference, and rally interest. Make sure your project has a license that is chosen from one of the common open source licenses.

    "Get someone to review my code so I can be confident I'm in the right path"

    See above.

    "Advice on what are the next steps or what I'm still missing to get t publish my project in CPAN"

    There are many resources that exist for how to publish modules on CPAN. Though it may be a little old, Sam Treagar's book: Writing Perl Modules for CPAN is useful.


    Dave

      Thanks for your response. One of the things I have no idea yet is how to expose the command line tool, because even though the project has a vast code that might be useful as a library. Its main goal is to install as a command line tool.

        I really did try to understand what this question in the form of a statement is asking. It sounds like you might learn what you need with respect to installing executables by reading through ExtUtils::MakeMaker, which discusses how to choreograph the installation of executables bundled with or built by the makefile for your module distribution.

        There's a lot of prior art out there too. Look in the App:: namespace on CPAN, for example.


        Dave

      What do you need to get visibility on PrePAN. I've posted the code with a short description pointing to the repo but I haven't get any response from anyone. Thanks in advance

        Did you post on blogs.perl? That seems to be more active and IIRC there's a bot that announces new posts on reddit and twitter.

        Start by linking to it from here. Then pump it out to your social media sphere and drop a note to modules@perl.org.

        Note that the Synopsis field is usually for a short piece of code demonstrating how the module would be used.