Giter VIP home page Giter VIP logo

ecosystem's People

Contributors

alabamenhu avatar alexdaniel avatar altai-man avatar araraloren avatar azawawi avatar bbkr avatar colomon avatar cygx avatar dwarring avatar fco avatar finanalyst avatar froggs avatar gfldex avatar jj avatar jnthn avatar jonathanstowe avatar lizmat avatar melezhik avatar moritz avatar perlpilot avatar retupmoca avatar skaji avatar tbrowder avatar thundergnat avatar timo avatar titsuki avatar tony-o avatar ugexe avatar zoffixznet avatar zostay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ecosystem's Issues

Remove Foo modules

There are 3 of them which show up when searching for test. They should probably be removed.

Spin off module testing to a specific distribution

Testing of new distributions added to the ecosystem is not, well, tested. It's a single script, which is to a large extent Test::Meta but includes other things (and maybe should include others like duplicates #517 or, going forward, security issues. This leads to accidental discovery of problems such as #549, caused mainly to the absence of a proper test set.
So It would be convenient to create, under the Raku organization, a Test::Ecosystem module (and corresponding Docker container) that would take care of this. It would have the basic functionality the test script's got now, plus any other we could think of.

Check for incorrect version strings (including an v at the beginning)

Some distributions have a version string that includes an v, but that is incorrect, since it creates a version that is, first, less than any version without the V (so if you need 0.0.1+ it will fail), and second, it explicitly includes the v in it.
So my proposal would be to check for those strings starting now, and flag them as incorrect.
Maybe run a test over existing distributions too, and create automatically issues and/or PRs.

JSON data does not update (project.json, projects1.json)

Generic P6 modules database does not update or updates from wrong branch/commit.

Files projects.json and projects1.json are frozen on @Kaiepi modules (that were removed in July).

I have quick investigation and found out, that first ./updatelist.pl works locally (new modules included):

...
https://raw.githubusercontent.com/Demayl/perl6-Sys-IP/master/META6.json 200
https://raw.githubusercontent.com/tmtvl/neural-net/master/META6.json 200
https://raw.githubusercontent.com/antoniogamiz/Perl6-TypeGraph/master/META6.json 200
https://raw.githubusercontent.com/antoniogamiz/Pod-Utilities/master/META6.json 200
https://raw.githubusercontent.com/kjkuan/Proc-Feed/master/META6.json 200
https://raw.githubusercontent.com/dmaestro/Module-Pod/master/META6.json 200
https://raw.githubusercontent.com/oposs/jsonhound/master/META6.json 200
https://gitlab.com/pheix/lzw-revolunet-perl6/raw/master/META6.json 200

Second ./server/updatelist.pl works locally too (new modules included):

https://raw.githubusercontent.com/Demayl/perl6-Sys-IP/master/META6.json 200
https://raw.githubusercontent.com/tmtvl/neural-net/master/META6.json 200
https://raw.githubusercontent.com/antoniogamiz/Perl6-TypeGraph/master/META6.json 200
https://raw.githubusercontent.com/antoniogamiz/Pod-Utilities/master/META6.json 200
https://raw.githubusercontent.com/kjkuan/Proc-Feed/master/META6.json 200
https://raw.githubusercontent.com/dmaestro/Module-Pod/master/META6.json 200
https://raw.githubusercontent.com/oposs/jsonhound/master/META6.json 200
https://gitlab.com/pheix/lzw-revolunet-perl6/raw/master/META6.json 200

The 1st idea: something wrong with ./updatelist.pl on server. This script grabs META.list from github. Maybe it's patched.

The 2nd idea: repo was cloned to server, checked out on exact commit and ./server/updatelist.pl parses this frozen META.list.

The 3rd idea: any other bug source))))


zef uses projects1.json:

===> Updating cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
===> Updating p6c mirror: http://ecosystem-api.p6c.org/projects1.json
===> Updated p6c mirror: http://ecosystem-api.p6c.org/projects1.json
===> Updated cpan mirror: https://raw.githubusercontent.com/ugexe/Perl6-ecosystems/master/cpan1.json
----------------------------------------------------
Content Storage                  |Distribution Count
----------------------------------------------------
Zef::Repository::LocalCache      |10                
Zef::Repository::Ecosystems<p6c> |861               
Zef::Repository::Ecosystems<cpan>|1393              
----------------------------------------------------

So, all new modules, added after 21, May are not available via this utility. Strange, that's none noticed that fact.

Build modules before testing with Travis

The Travis CI script does not zef build new modules before zef testing them. This can cause tests to fail. (For instance, see https://travis-ci.org/perl6/ecosystem/builds/472346894#L1435 where the file being used does not exist because it is normally generated in the build phase, which is skipped. Note that this issue is independent of any "hack" I mentioned in #422 corresponding to that build failure -- the missing file is a program needed by all tests of the module, because the module is an interface to that program.)

The Problem

I use Build.pm, which is executed by zef build, to generate resources files. These files are needed for the module to function and to pass its tests. The Travis script skips the build phase between installing dependencies and testing the module:

my $zef = run "zef", "install", "--depsonly", "--/build", ".";
ok $zef.exitcode eq 0, "Able to install deps";
$zef = run "zef", "test", ".";
ok $zef.exitcode eq 0, "Package tests pass";

My understanding is that this is a legitimate use of Build.pm. zef includes the build phase when you install a module.

More Problem

It is not as easy as adding a zef build invocation because that fails when no build file exists. I'm not sure how standardized the build procedure is. According to zef source the build file can be called Build.pm or Build.pm6 and the whole thing is a giant ball of shit.

Steps to reproduce

The build failure linked in the first paragraph is from SAT::Solver::MiniSAT:

$ git clone https://github.com/taboege/p6-SAT-Solver-MiniSAT
$ cd p6-SAT-Solver-MiniSAT

What the Travis script does:

$ zef install --depsonly --/build .
All candidates are currently installed
$ zef test .
===> Testing: SAT::Solver::MiniSAT:ver<0.0.1>
# Failed test 'SAT::Solver::MiniSAT module can be use-d ok'
# at t/00-use.t line 8
# ===SORRY!=== Error while compiling /tmp/p6-SAT-Solver-MiniSAT/lib/SAT/Solver/MiniSAT.pm6 (SAT::Solver::MiniSAT)
# An exception occurred while evaluating a BEGIN
# at /tmp/p6-SAT-Solver-MiniSAT/lib/SAT/Solver/MiniSAT.pm6 (SAT::Solver::MiniSAT):35
# Exception details:
#   Failed to find '/tmp/p6-SAT-Solver-MiniSAT/resources/minisat' while trying to do '.mode'
#     in code  at /tmp/p6-SAT-Solver-MiniSAT/lib/SAT/Solver/MiniSAT.pm6 (SAT::Solver::MiniSAT) line 35
#     in code  at /tmp/p6-SAT-Solver-MiniSAT/lib/SAT/Solver/MiniSAT.pm6 (SAT::Solver::MiniSAT) line 35
# 
# 
# Looks like you failed 1 test of 2

With zef build:

$ zef install --depsonly --/build .
All candidates are currently installed
$ zef build .
# compilation noise from minisat...
$ zef test .
===> Testing: SAT::Solver::MiniSAT:ver<0.0.1>
===> Testing [OK] for SAT::Solver::MiniSAT:ver<0.0.1>

Create a new Travis environment

Right now it's using rakudobrew, which is discouraged, and takes around 15 minutes to build. Using either docker containers (which can be tagged for versions) or @nxadm's distros would be infinitely faster, better, and also eating our own dog food.
This is the original PR. It's a matter of changing a couple of files in Ruby. I can do that.

installation mungs dynamic vars $*PROGRAM and $*PROGRAM-NAME

If an executable program is installed as part of a module via zef (panda not yet tried), the $*PROGRAM and $*PROGRAM-NAME vars report a hash string instead of the name as desired. Examples of Text::More's bin/create-md.p6:

$*PROGRAM-NAME

Uninstalled:

Usage: ./create-md.p6 ...

Installed:

Usage: /usr/local/rakudo.d/share/perl6/site/resources/F6AB9B901B7071FBDB38FB8A77B549440AC84EE0 ...

$*PROGRAM

Uninstalled:

Usage: ./create-md.p6 ...

Installed:

Usage: /usr/local/rakudo.d/share/perl6/site/resources/F6AB9B901B7071FBDB38FB8A77B549440AC84EE0 ...

Attempted work-around

I also tried '$?FILE' but got the same results.

In the interim I will just hard-code the script name inside the file.

Suggested fix

When zef installs the bin file, save the original file name and use its name to redefine $*PROGRAM and $*PROGRAM-NAME.

Modules which have no license field or non-standard values for "license"

I have automated most of the pull requests below, to ones where it is indisputable what the License of the project was, either due there only being one LICENSE and it matching copies of those licenses almost exactly, or the metadata for license key was set to something such as "The Artistic License 2.0" or the URL of the Artistic License or something ambiguous and able to be automated.

I am posting this here since I have finished the automated stage and going forward most of the rest will probably have to be checked manually to check what license they actually are (for those that have a LICENSE type file), or for those which don't opening an issue for the project.

Dual Licensing

Though it is not yet in S22, the way to denote a dual license using the SPDX spec is as below:

A license which allows you to use subsequent later versions if you choose

Common with GPL licenses. Example: GPL-3.0+. You can use a + after the license name to denote this. The + syntax is universal, and can technically be applied to any license, though in practice an "or later" clause is most often found in GPL (though please note GPL-3.0 means ONLY GPL-3.0, GPL-3.0 does not imply that you may use any later version).

Example using the licensing of the Perl 5 project, which is dual licensed under Artistic 1.0 as sourced from the Perl site and the GPL-1.0 (or greater):
Artistic-1.0-Perl OR GPL-1.0+


Detailed information about the ones which do not yet have Pull Requests can be seen in this JSON here:
https://gist.github.com/samcv/9177c43f2a78049248fcb954c63d28e5

Note: jonathanstowe has stated he would not like any PR regarding metadata to his projects
This list contains all non-standard identifiers, and a very small number which have no license at all (added manually and not computer generated like the non-standard identifier ones were).

No PR or Issue

  • Terminal::ANSIColor (R*)
  • Template::Mojo (R*)
  • Linenoise (R*)
  • PSGI (R*)
  • MIME::Base64 (R*)
  • Pod::To::HTML (R*)
  • rakudo-debugger (R*)
  • File::Find (R*)
  • Inline::Scheme::Guile
  • CompUnit::DynamicLib
  • Digest::SHA1::Native
  • EventSource::Server
  • RPi::Device::PiGlow
  • Acme::Insult::Lala
  • Archive::SimpleZip
  • RPi::Device::SMBus
  • Algorithm::Tarjan
  • Audio::Liquidsoap
  • Getopt::ForClass
  • CompUnit::Search
  • Audio::PortAudio
  • Crypt::TweetNacl
  • Hash::MultiValue
  • Printer::ESCPOS
  • App::ModuleSnap
  • Audio::PortMIDI
  • Monitor::Monit
  • Music::Helpers
  • IO::Path::Mode
  • Perl6::Parser
  • Unicode::GCB
  • Doublephone
  • Task::Noise
  • Pg::Notify
  • Log::Async
  • Lumberjack
  • XML::Class
  • Test::META
  • Manifesto
  • DOM::Tiny
  • Clifford
  • GraphQL
  • ANTLR4
  • META6

Outstanding Issue

Outstanding PR

Rejected

Note repeated from above: jonathanstowe has stated he would not like any PR regarding metadata to his projects

Merged or Fixed

Find a way to solve name disputes

For the time being, there are two File::Zip. By default, zef seems to install the one with the highest version. Since one of them does not have an author key, it can't be selected in any way. Can we solve this at the ecosystem level by forcing distributions with the same name to have a name field, or should we kick it forward to zef to solve that kind of thing?

Check source-url

For some reason, source-urls that start with git: are used throughout many modules, and they fail to install, as is shown here, for instance. We should check that when they are added to the ecosystem, at least those that are added here.

bson out of modules list

The Module BSON is not shown in the modules list anymore at http://modules.perl6.org/ and I get the following error when installing MongoDB which depends on it

> panda install MongoDB
resolve stage failed for MongoDB: Dependency BSON is not present in the module ecosystem
...

I am now at the newest panda and perl6/moar version

Travis dist checking thing needs improvement

For example, it failed on this PR, but it doesn't look like there are any issues in it.

Seems the travis checking thing is choking on this dist due to it listing a .zip and not a git repo as source-url? Also, briefly looking through the source of the travis checker, I see along with assuming source URL is always a git repo, it's also assuming source-url field is the only one it's specified in.

Actually, source-url is an ecosystem extension and "proper" way to specify source is via "support": { "source": ... key, so the checker needs to check that too.

Test script only works on git URIs in source

If there's anything else, like a tar file of any other kind of source, it will not work. This is related to #528.
Probably we should use something a bit smarter, and be able to work with as many source-urls as zef. I'm not totally sure that zef provides that service as a library, will need to investigate (or extract corresponding code).

"No license" passes tests

Despite the PR saying explicitly you need to list a license or explain why not. It wouldn't be impossible to match the license field against the PR, but anyway the test returning "license is correct" instead of a warning because there's no license is probably LTA.

Clean Up "Most Wanted" List

The Most Wanted Modules List needs a clean up.

  • Clean up WIPs: (my detailed reasoning for proposing a major clean up in for WIPs is described in this comment)
    • Anything that's already listed in the Ecosystem should be removed from the Most Wanted list
  • Clean up modules already implemented
    • For example, IO::Capture already has at least 3 implementations
  • Possibly recategorize what's left.
    • It's a bit hard to see now, but I think reorganizing categories could make the list more useful. For example some things in Networking and Data Formats could be better placed in a Web Development category.

Modules which cannot be accessed are not included in projects.json

If a module cannot be reached because the host server is down, the module won't be included in projects1.json and projects.json. And the module manager(zef) would not be able to find the module, although the module exists, it just could not be accessed.

Apparently projects1.json is generated in server/updatelist.pl and projects.json is generated in updatelist.pl.

It seems zef has 4 mirrors for getting the list of modules, first two of which are projects1.json and projects.json.

Related IRC logs

Modules Inside Distributions Are Next to Impossible to Find

Some Perl 6 distributions listed on modules.perl6.org contain multiple modules, but those are currently unsearchable.

For example, say you want to test the output of your program. You search for keyword "test" and browse the available offerings. You find nothing and you proceed to write Test::Output, just so a couple of days later someone points out IO::Capture::Simple distribution that actually includes Test::IO::Capture module, but alas, it doesn't show up in search results.

Testing should be smarter

Right now, it just looks for new lines and tests them; but it fails in the case lines are deleted, for instance, or in simply other cases where the underlying software is going to be changed.
In that sense, the testing script should also become a module that should be tested independently for all possible cases that might arise. Right now it's not totally clear it's testing correctly, and in many cases (for instance, external dependencies) we just "let it pass" (we have to locally test, anyway). That case is going to be difficult to cover, but in many others it shouldn't

We should probably check for duplicates

If I got this right, someone uploading a distribution that provides Foo::Bar will name-clash with another distribution whose name is Foo:Bar or simply provides that module too. So we should issue a warning stating that fact, or maybe thrown an error.

Failing Ecosystem Modules List

Hopefully this can be a group effort to try and get these failing packages passing. Feel free to add issues and link them here. If you aren't a collaborator with the repo, just reply and somebody else can add it to this main list :-) Thank you all!

Failing

Log links are to specific lines in a Travis CI build that attempts to install all modules. This list is incomplete because this takes a very long time to do.
See here for full log:
UPDATE
I have a new format for the tests I am running on hack.p6c.org
There is a json file that's named for the date/time the test starts, and then a folder which contains log files for each module's installation. The JSON shows the exitcode, status and 'ok' or 'nok'. If the test times out there were be something indicating it there as well.

http://hack.p6c.org/~samcv/ecosystem-tests/

XXX

  • at least 3 PR's fixing it dating from 2 years ago… https://github.com/ingydotnet/xxx-pm6/pulls
  • NO LICENSE on project page.
  • Should this be removed from the ecosystem? Been failing for 2 years and may not be re-releasable.
  • Log
Undeclared routine:
    eval_lives_ok used at line 5. Did you mean 'eval-lives-ok', 'eval-dies-ok'?

t/ok.t .. No subtests run
  • Reported
  • Fixed

Data::Pretty:ver('0.0.2'):auth('github:masak')

  • Reported
  • Fixed
Could not find MONKEY_TYPING at line 1 in:
    /home/samcv/.zef/store/data-pretty.git/c5b3922c37e3b97c9f0910e2ad5e468e9463e894/lib

List::Utils

Text::Diff

IO::Prompter

String::CRC32:ver('0.04'):auth('Cosimo Streppone')

  • Log
  • Reported
  • Fixed

Pod::Strip:ver('0.0.1'):auth('Jorn van Engelen')

  • Reported
  • Fixed
An exception occurred while evaluating a BEGIN
at /home/samcv/.zef/store/perl6-pod-strip.git/2bb9b9dc3d593cbddc53092dcc3519b2a666afeb/t/test.t:2
Exception details:
  Dynamic variable @*INC not found
    in block  at t/test.t line 2

Pluggable:ver('0.1.0'):auth('github:tony-o')

  • Reported
  • Fixed
Dynamic variable @*INC not found
  in method plugins at /home/sena/.zef/store/perl6-pluggable.git/2cb08cb57ed133e11577442d3ab0c4da63e593eb/lib/Pluggable.pm6 (Pluggable) line 8
  in method test at t/01-tests.t line 17
  in block <unit> at t/01-tests.t line 70

Image::RGBA::Text

Facter:ver('0.04'):auth('Cosimo Streppone')

  • Log
  • Reported
  • Fixed

App::jsonv:ver('0.01'):auth('David Farrell Dmitry Yaskolko')

  • Log
  • Reported
  • Fixed

BioInfo:ver('0.4.3'):auth('Matt Oates')

  • Log
  • Reported
  • Fixed

Math::ContinuedFractions

  • Log
  • Reported
  • Fixed

Perl6-Math-Quaternion:auth('Bruce Gray')

  • Log
  • Reported
  • Fixed

Math::PascalTriangle:ver('0.1.0')

  • Log
  • Reported
  • Fixed

Flower

  • Log
  • Reported
  • Fixed

Hinges

  • Log
  • Reported
  • Fixed

Druid

GGE

  • Log
  • Reported
  • Fixed

Term::ANSIColor

  • Log
  • Reported
  • Fixed
    This module module is deprecated. It is unlikely that we need to fix it. Perhaps remove?

Pod::PerlTricks

  • Reported
  • Fixed

Template::Anti

  • Reported
  • Fixed

Class::Utils

Sum

  • Reported
  • Fixed

XML::Parser::Tiny

  • Reported
  • Fixed

Kains

  • Reported
  • Fixed

File::Find::Duplicates

  • Reported
  • Fixed

Test::Junkie

  • Reported
  • Fixed

Acme::DSON

  • Reported
  • Fixed

Acme::Flutterby

  • Reported
  • Fixed

Acme::Sudoku

  • Reported
  • Fixed

Adventure::Engine

  • Reported
  • Fixed

Algorithm::Kruskal

  • Reported
  • Fixed

Algorithm::LibSVM

  • Reported
  • Fixed

Algorithm::Viterbi

  • Reported
  • Fixed

App::P6Dx

  • Reported
  • Fixed

AttrX::InitArg

  • Reported
  • Fixed

Audio::OggVorbis

  • Reported
  • Fixed

Audio::PortMIDI

  • Reported
  • Fixed

Audio::Silan

  • Reported
  • Fixed

Auth::SAML2

  • Reported
  • Fixed

Binary::Structured

  • Reported
  • Fixed

BioInfo

  • Reported
  • Fixed

C::Parser

  • Reported
  • Fixed

CompUnit::DynamicLib

  • Reported
  • Fixed

Coroutines

  • Reported
  • Fixed

Crust

  • Reported
  • Fixed

Crypt::TweetNacl

  • Reported
  • Fixed

DBDish::ODBC

  • Reported
  • Fixed

Data::Dump::Tree

  • Reported
  • Fixed

DateTime::DST

  • Reported
  • Fixed

Digest::xxHash

  • Reported
  • Fixed

Email::Notmuch

  • Reported
  • Fixed

File::LibMagic

  • Reported
  • Fixed

GTK::Scintilla

  • Reported
  • Fixed

Geo::Region:auth('Nick Patch')

  • Reported
  • Fixed

GTK::Simple

  • Reported
  • Fixed

GeoIP::City

  • Reported
  • Fixed

Grammar::Debugger

  • Reported
  • Fixed

Gumbo:auth('Sylvain Colinet')

  • Reported
  • Fixed

HTML::MyHTML

  • Reported
  • Fixed

HTML::Restrict

  • Reported
  • Fixed

HTML::Tag

  • Reported
  • Fixed

HTTP::Server::Async::Plugins::Router::Simple

  • Reported
  • Fixed

HTTP::Server::Logger

  • Reported
  • Fixed

HTTP::Server::Threaded

  • Reported
  • Fixed

HTTP::Server::Tiny

  • Reported
  • Fixed

Hydrate:auth('vendethiel')

  • Reported
  • Fixed

IO::Path::More:auth('labster')

  • Reported
  • Fixed

IRC::Art

  • Reported
  • Fixed

Image::Resize

  • Reported
  • Fixed

Ini::Storage

  • Reported
  • Fixed

Inline::Lua:auth('raydiak')

  • Reported
  • Fixed

IoC

  • Reported
  • Fixed

JSON::Path

  • Reported
  • Fixed

JavaScript::SpiderMonkey

  • Reported
  • Fixed

JsonC

  • Reported
  • Fixed

LMDB

  • Reported
  • Fixed

LibZip

  • Reported
  • Fixed

Lingua::Number:auth('github:labster')

  • Reported
  • Fixed

META6::bin

  • Reported
  • Fixed

MagickWand

  • Reported
  • Fixed

Manifesto

  • Reported
  • Fixed

Marpa

  • Reported
  • Fixed

Masquerade:auth('Sir Robert Burbridge')

  • Reported
  • Fixed

Math::Sequences

  • Reported
  • Fixed

Math::Symbolic:auth('raydiak')

  • Reported
  • Fixed

Modular

  • Reported
  • Fixed

Module::Does

  • Reported
  • Fixed

MongoDB

  • Reported
  • Fixed

NASA

  • Reported
  • Fixed

Net::AMQP

  • Reported
  • Fixed

Net::Packet

  • Reported
  • Fixed

Net::Pcap

  • Reported
  • Fixed

Net::ZMQ:auth('Arne Skjærholt')

  • Reported
  • Fixed

November:auth('github:viklund')

  • Reported
  • Fixed

Path::Map

  • Reported
  • Fixed

Perl6 Snowball Binding

  • Reported
  • Fixed

Plosurin

  • Reported
  • Fixed

Pod::Coverage

  • Reported
  • Fixed

Pod::TreeWalker

  • Reported
  • Fixed

Proc::Screen

  • Reported
  • Fixed

RPi::GpioDirect

  • Reported
  • Fixed

Rakudo::Perl6::Parsing

  • Reported
  • Fixed

Redis

  • Reported
  • Fixed

SDL

  • Reported
  • Fixed

Search::Dict

  • Reported
  • Fixed

Slang::Roman

  • Reported
  • Fixed

Slang::SQL

  • Reported
  • Fixed

Sprockets:auth('github:vendethiel')

  • Reported
  • Fixed

String::CamelCase

  • Reported
  • Fixed

Template::Mustache:auth('github:softmoth')

  • Reported
  • Fixed

Template::Protone

  • Reported
  • Fixed

Test::Deeply::Relaxed

  • Reported
  • Fixed

Test::Lab

  • Reported
  • Fixed

Text::Abbrev

  • Reported
  • Fixed

Text::Fortune

  • Reported
  • Fixed

Text::Indented

  • Reported
  • Fixed

Text::LTSV

  • Reported
  • Fixed

Text::Markdown::Discount

  • Reported
  • Fixed

Text::T9

  • Reported
  • Fixed

Time::Duration

  • Reported
  • Fixed

TinyCC

  • Reported
  • Fixed

Typed::Subroutines

  • Reported
  • Fixed

Web::Scraper

  • Reported
  • Fixed

WebService::Justcoin

  • Reported
  • Fixed

flow

  • Reported
  • Fixed

overload::constant

  • Reported
  • Fixed

???

  • Panda::Builder

Warnings

MPD

FastCGI:ver('0.9.0')

Potential difficulties:
    Useless use of hash composer on right side of hash assignment; did you mean := instead?
    at /home/samcv/a/zef/site#sources/D33B2CF81EB010BB6A219D2AF5F873163A6DBF44 (FastCGI::Protocol):143

Make the roadmap for module publication explicit

The module documentation page says that p6c will become obsolete. But it's not clear when, and how that will be done. That's causing confusion among module creators, and also people here in this repo that don't know whether merging pull requests or not.
A roadmap along the lines of

  • Stop accepting submissions in this repo from this date
  • Ask all modules here to move to CPAN from that date
  • p6c totally obsolete by that other date

Maybe that's decided and set in stone somewhere; in that case, it's just a matter of linking from this README or adding it here.

Add some tests for new modules

For instance

  • Check that they have a valid repo in the META6.json file
  • Check that they have at least some tests.
  • Do some basic use * over all modules, or at least the ones in the "provides" section of META6.json

Deal with version issues in the ecosystem

Right now, zef takes whatever is in the URL pointed to by source-url, as far as I can tell. Distributions are not forced to release via tags, or to announce those releases via META.list. Besides, we don't check for changes in META6.json.
There should be a way of announcing or saying which version is the official. Just adding a version number that should correspond to a tag (and to the version in META6.json) should be enough. Besides, now "version squatting" is possible: just release a new distribution with a later version, and the ecosystem will get yours.
I am kind of aiming at CPANTS, but not only. A sweep and test of all distros would be nice, but as far as I can tell, this is what zef does; that's good and well, but it's not within the ecosystem, or available to the general public (or to other possible dependencies management tools)

Duplicate entries in modules.perl6.org

The problem

I seem to have ended up one of my modules, Archive-SimpleZip, appearing twice in modules.perl6.org.

I suspect that this is because, until recently, I had the module registered via the p6c (using the instructions in Upload your module to p6c . I've subsequently uploaded the module to CPAN (Upload your module to CPAN).
image

Suggestions

Assuming that this issue is caused by a dual registration, I think there needs to be some documentation on how to get rid of the duplicate entry.

links to git stars and issues

E.g. Module 007 stargazers has a link to https://github.com/masak/007stargazers It is missing a slash and should be like https://github.com/masak/007/stargazers. It is the same for the link to issues.
In this case should be https://github.com/masak/007/issues instead of https://github.com/masak/007issues.

RFC Native Dependency Specs for META6.json

This is an RFC for adding Native dependency fields to META6.json.
This proposal is meant to hopefully be extensible, and be similar in character to how the metadata is already stored and laid out.

It is meant to be mostly distro neutral.

bin # meant to be findable in the path and be the name of the binary
lib # meant to be something such as a .so object
name # human readable name

A package manager could confirm that something is installed in a distro neutral way by checking the binary and lib paths.

Optionally you could also include package manager specific packaging names, and for Windows since the files may not be found in a binary or library path, the actual path of the installed program/lib could be given. The 'default' key is meant to be a default that should be attempted if the distros package manager is not listed. May want to use a different name for this, and more input on this because it's kind of ambiguous what it is the default of, though it was intended to be the default to check on a linux distribution, so the default option may not be good to include in the first specification for a native-dependencies standard.

Any comments on this proposal would be great. Me and @the-eater discussed it on IRC and hopefully we can get even more input on this from the community at large.

For packages for example python packages, that could be listed as the package manager being 'pip' or something akin to that and let the perl6 package manager even ask to install these dependencies. This would hopefully create a much better user experience ultimately, and in the more short term, let the package manager let the user know that the dependency may not be installed, and give them its name and other useful information.

  "native-dependencies": [
    {
      "name": "curl",
      "bin": [
        "curl"
      ],
      "lib": [
        "libcurl"
      ],
      "support": {
        "site": "https://curl.haxx.se/"
      },
      "version": "4.0+",
      "package-manager": {
        "default": {
          "curl": "*"
        },
        "apt": {
          "curl": "4.0+"
        }
      },
      "distribution": {
        "windows": {
          "location": {
            "bin": {
              "curl": [
                "C://Program Files/curl/curl.exe"
              ]
            },
            "lib": {
              "libcurl": [
                "C://Program Files/curl/library/curl/curl32.dll"
              ]
            }

See the full sample JSON file here:
https://gist.github.com/samcv/ed59c2bf070c3c544be25fe199f63881

Two Net::ZMQ modules

There are currently two modules in the list:

For example, Cro::ZeroMQ depends on Net::ZMQ… although it's unclear which one. From what I understand, it is https://github.com/arnsholt/Net-ZMQ.

@GabrielaSH, @arnsholt can you please figure it out? Even if technically it might not be an issue, it confuses the hell out of me and I'm sure I'm not the only one.

Module list should check modules META.info is correct

https://raw.githubusercontent.com/perl6/ecosystem/master/META.list

Includes:

https://raw.githubusercontent.com/MARTIMM/unicode-precis/master/META.info

Which currently looks like this

{
  "author": "Marcel Timmerman",
  "authors": [
    "Marcel Timmerman"
  ],
  "depends": [
  ],
  "description": "Implements PRECIS framework, rfc7564 and others. Obsoletes stringprep and saslprep",
  "license": "The Artistic License 2.0",
  "name": "Unicode::PRECIS",
  "perl": "6.c",
  "provides": {
    "Unicode::PRECIS": "lib/Unicode/PRECIS.pm6",

    "Unicode::PRECIS::FreeForm": "lib/Unicode/PRECIS/FreeForm.pm6",
    "Unicode::PRECIS::FreeForm::OpaqueString": "lib/Unicode/PRECIS/FreeForm/OpaqueString.pm6",

    "Unicode::PRECIS::Identifier": "lib/Unicode/PRECIS/Identifier.pm6",
    "Unicode::PRECIS::Identifier::UsernameCaseMapped": "lib/Unicode/PRECIS/Identifier/UsernameCaseMapped.pm6",
    "Unicode::PRECIS::Identifier::UsernameCasePreserved": "lib/Unicode/PRECIS/Identifier/UsernameCasePreserved.pm6",

    "Unicode::PRECIS::Tables": "lib/Unicode/PRECIS/Tables.pm6"
  },
  "source-url": "git://github.com/MARTIMM/unicode-stringprep.git",
  "version": "v0.3.0"
}

The _source-url_ is wrong and 404's - it would be nice for the system maintaining the master list to verify this sort of thing automatically.

Updater script needs to toss JSON::XS

During recent install this message scrolled by:

*** The stability canary says: (nothing, it was driven away by harsh weather)
***
*** It seems you are running perl version 5.026000, likely the "official" or
*** "standard" version. While there is nothing wrong with doing that,
*** standard perl versions 5.022 and up are not supported by JSON::XS.
*** While this might be fatal, it might also be all right - if you run into
*** problems, you might want to downgrade your perl or switch to the
*** stability branch.
***
*** If everything works fine, you can ignore this message.

Testing of some distributions fail now

After the rearrangement of distributions by alphabetical order, tests have been run again on many (or all, not sure) distributions, resulting in these failures

The following urls failed:

https://raw.githubusercontent.com/perl6/Blin/master/META6.json

https://raw.githubusercontent.com/perl6/DBIish/master/META6.json

https://raw.githubusercontent.com/perl6/Perl6-MIME-Base64/master/META6.json

https://raw.githubusercontent.com/perl6/form/master/META6.json

https://raw.githubusercontent.com/perl6/perl6-lwp-simple/master/META6.json

https://raw.githubusercontent.com/perl6/perl6-pod-to-bigpage/master/META6.json

https://raw.githubusercontent.com/perl6/whateverable/master/META6.json

https://raw.githubusercontent.com/perlpilot/benchmark/master/META.info

https://raw.githubusercontent.com/perlpilot/p6-AI-FANN/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-Astro-Sunrise/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-HexDump-Tiny/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-IO-Notification-Recursive/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-Locale-US/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-Math-Trig/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-Questhub/master/META6.json

https://raw.githubusercontent.com/perlpilot/p6-Test-Class/master/META6.json

https://raw.githubusercontent.com/pierre-vigier/Perl6-Data-MessagePack/master/META6.json

https://raw.githubusercontent.com/pierre-vigier/Perl6-HTTP-Signature/master/META6.json

https://raw.githubusercontent.com/prodotiscus/perl6-Dictionary-Create/master/META6.json

As an immediate action, we should maybe try and notify their authors. As a more long-term thing, and looking at improving the state of the ecosystem we should maybe run a GitHub action or something periodically, and decide on a solution for them.

Explain how to remove modules from the ecosystem

Right now if all copies from CPAN are removed, I guess it's removed here too. However, it's not written anywhere how to remove modules from the ecosystem, or who can do it.
It seems pretty obvious that the author is the one that should do it, and probably via the same method that was used to list it: modify META.list; however, it's not really written anywhere.
In some cases, modules are listed by the author as "DEPRECATED", but they are still available in the ecosystem. It's not clear if that's the author's intention or there was simply no explicit way of removing them. Could the DEPRECATED mark be a sign for the ecosystem administrator to delete it?

I think so.

But, anyway, I guess it's better if it's clearly written, in the same way that module adoption is explicitly written here.

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.