Giter Site home page Giter Site logo

perl6-dist-helper's People

Contributors

tyil avatar

Watchers

 avatar  avatar  avatar

Forkers

tyil

perl6-dist-helper's Issues

Add a QA sub

This sub would run various quality assurance checks on a module source to report what a module could use to improve its release. See Release::Checklist for some prior art. Some things to check for include:

  • Good module name (first-level namespaces are generally bad)
  • Tests
    • Are there tests
    • Do the tests succeed
  • Does installation of the module succeed
  • Documentation
    • A README with
      • Synopsis
      • Examples
      • Copyright information
    • A correct META6.json
      • Presence of some optional but useful fields
      • No unused dependencies
      • Dependency version adverbs
      • Version using a SemVer capable approach
        (I understand not everyone is a huge fan of it as I am, but I've yet to find a better versioning scheme, and assixt can be a little opinionated on its QA. If there are better schemes out there, I'd like to hear, though.)
    • POD blocks for each sub and argument
  • Clean tree
    • Use version control to check for lingering files
  • Tree meta files
    • Check for a CHANGELOG
    • Check for a LICENSE

Validate the SPDX license identifier used in the new command

Quite possibly, the easiest solution would be to create a seperate module for this. If such a module were to be made, and have licenses and their headers available as well, cpan6 could use these to generate a default LICENSE file and add license headers to all other files in the project.

Add clean command

This should remove all files referenced by META6.json, but no longer exist, and remove all references in META6.json of files that no longer exist.

`zef install App::Cpan6` fails

App::Cpan6 currently fails to install because of an unoptimal META6.json.

See here: ugexe/zef#211 (comment)
for an explanation of what's wrong.

This is the original error:

-bash-4.4$ zef install App::Cpan6

===> Searching for: App::Cpan6                                                                                    
Use of uninitialized value of type Any in string context.
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.                        
  in block  at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/sources/C99D66B88914FE999500CE1FA4F
1216BDBA53BE2 (Zef::Client) line 124                     
Use of uninitialized value @identities of type Any in string context.                                             
Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.                        
  in block  at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/sources/C99D66B88914FE999500CE1FA4F
1216BDBA53BE2 (Zef::Client) line 136                     
===> Searching for missing dependencies:                 
No such method 'starts-with' for invocant of type 'Any'  
  in method candidates at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/sources/618E55C192A9FD29
1ABD2BE1F2C756E915C0A4BC (Zef::Repository) line 9        
  in method find-candidates at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/sources/C99D66B8891
4FE999500CE1FA4F1216BDBA53BE2 (Zef::Client) line 108     
  in block  at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/sources/C99D66B88914FE999500CE1FA4F
1216BDBA53BE2 (Zef::Client) line 139                     
  in sub MAIN at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/sources/0396F9D56BBCF5F8CF25C8759
D77D03AEF745931 (Zef::CLI) line 137                      
  in block <unit> at /home/patrick/.rakudobrew/moar-2017.10/install/share/perl6/site/resources/95699F546D28C01BF68
BD7A836D7D12FFB0B2943 line 1                             
  in sub MAIN at /home/patrick/.rakudobrew/bin/../moar-2017.10/install/share/perl6/site/bin/zef line 2            
  in block <unit> at /home/patrick/.rakudobrew/bin/../moar-2017.10/install/share/perl6/site/bin/zef line 2

Update dependencies to have minimum versions

Some dependencies used in cpan6 require a minimum version due to some features used of those modules. The META6 should be updated to reflect these minimum versions, so that zef will install the right version.

Sort entries in `put-meta` sub

This should result in less changes in the META6.json file, since the lists will always be sorted. Currently the order of arrays and objects are random after turning the %meta hash into a json string.

META file requests dependencies on broken modules

The META file locks the dependency on 0.9.6 version of JSON::Fast, which has numerous bugs, including reliance on a Rakudo bug that's fixed in latest Rakudo.

For that reason, this module won't be installable on Rakudo 2018.03 and later.

Add a README file

This repository currently lacks a README. To help possible users and contributors, one should be added.

Generate a manpage from the readme

The readme.adoc could be transformed into a manpage. This could be installed on cpan6 bootstrap man for instance, unless there's a nicer way to let zef do that automatically on installation.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.