A piggy bank of commands, fixes, succinct reviews, some mini articles and technical opinions from a (mostly) Perl developer.

Jump to

Quick reference

Improving Perl's Test2 documentation and using the metacpan docker image

#fixallthethings

TODO

Improve the docs

lib/Test2/Tools/Compare.pm

[ ] Add subheadings for each method
[ ] Add to the ADVANCED synopsis with more useful stuff
[ ] Make the 'import' policy easier to understand
[ ] Show how to import everything easily

lib/Test2.pm

[ ] Add SYNOPSIS after NAME & DESCRIPTION
    - See L<Test2::Suite>
    - or perhaps just move the GETTING STARTED section up and rewrite:
        If you just want to write tests for your code then go to Test2::Suite first.
        If you are interested in writing new tools for the Test2 framework you should take a look at Test2::API.
[ ] Add link to https://test-more.github.io/Test2-Suite
[ ] Summarise the INCLUDED TOOLS section from Test2::Suite
[ ] Bypass the stupid Test2::V0 namespace
[ ] Add: Much of the rest of the documentation has been written for /people developing Test2 itself/.
[ ] Actually link the NAMESPACE LAYOUT sections
[ ] Include *all* the namespaces
[ ] Move most stuff under a DEVELOPMENT subheading

lib/Test2/*.pm

[ ] Start the POD with info for testers, then with developer info following

lib/Test2/Bundle.pm

[ ] Prominent link to L<Test2::Suite>, which lists the bundles and when/why/how you would use them

General

[ ] Make the difference between Test2::Foo and Test2::Tools::Foo much clearer
    see someone making same point in 2017! https://perl-test2.slack.com/archives/C208D1JG0/p1495564527313877

For the PR:

[ ] Include all these points above
[ ] Say: I can explain how every edit I have made makes the docs easier to use.

Docs site

https://test-more.github.io/Test2-Suite/#tools-tools

This was used at a conference. It could be valuable as a more flexible format of intro.

[ ] What are tools?

    - Tools are the name Test2 uses for functions like `is()` 
        In Test2, Tools are functions that produce testing events.

    What is a "testing event"?
    - Events are generated whenever you make an assertions, set a plan, or produce diagnostics.
    - So... what are they??

    Where can I find tools?
        - Under the Test2::Tools::* namespace.
        - Note that the Test2::* modules are the internal representations, don't use these directly.
        - To import the tools, do XXXXXXX V0 etc


[ ] Add 'bag' and other stuff
view raw todo-test2.md hosted with ❤ by GitHub
#tooling

Case study

Test2 documentation could do with some improvement.

How to view POD

vi

  • Easy to edit, not so easy to view.
  • I don't want to mess around with vim plugins, or even mdless

Perldoc

Easy to use, but extremely lacking in features, like links... Even man has links!

POD renderers

So. Many. Options.

  • Pod::Browser - Uses Catalyst
  • Pod::Server - ?
  • Pod::Webserver - Basic
    • Lots of dependencies, Catalyst, etc
    • Parses better than Pod::POM::Web
    • Shows built-in modules by default, but they can be filtered out
    • How to run: podwebserver
  • Pod::POM::Web - Advanced design
    • Fails to parse nested tags
    • Shows built-in modules by default, but they can probably be filtered out
    • How to run: perl -I $DOC_PATH -I $POD_POM_WEB_PATH -MPod::POM::Web -e server
  • Pod::Simple::HTMLBatch - The best one?
    • Properly marked up HTML, so fully customisable with CSS.
    • Split into top-level directories.
    • Doesn't do .t files, but can use a subclass of Pod::Simple::Search rigged to recognise .t files. Submitted patch.
  • Pod::Server - Basic default output, one single list. Docs lacking. What about CSS?

Questions / Discussion

  • What is the reference implementation of a POD interpreter? perldoc just removes links and it is plain text only. So in what viewer do the links actually link to something? I don't think there is a good standard for viewing darkpan code locally. But the MetaCPAN has a wonderful interface for modules that are on CPAN.

MetaCPAN

MetaCPAN viewed through a web browser is actually the very best POD viewer. Although I can imagine a better one, it's already quite good. The menu links that can be moved out of the way are absolutely ideal. It can even be stuck to the top of the page with some trivial CSS.

Since POD is viewed most often on MetaCPAN, why not test documentation changes directly on that rendering system?

You will need at minimum metacpan-web, probably metacpan-api as well. But it may be easier to use metacpan-docker.

#fail on Mac OSX 13.6 High Sierra
# Failing to get the metacpan docker image to work on Mac OSX 13.6 High Sierra.
# Note: Docker specifically says my version of Mac OSX is not supported: https://docs.docker.com/desktop/mac/install/
Mac [12:35 alt$] git clone https://github.com/metacpan/metacpan-docker.git
Cloning into 'metacpan-docker'...
remote: Enumerating objects: 643, done.
remote: Counting objects: 100% (31/31), done.
remote: Compressing objects: 100% (27/27), done.
remote: Total 643 (delta 6), reused 18 (delta 2), pack-reused 612
Receiving objects: 100% (643/643), 173.82 KiB | 903.00 KiB/s, done.
Resolving deltas: 100% (281/281), done.
Mac [12:35 alt$] cd metacpan-docker
autoenv:
autoenv: WARNING:
autoenv: This is the first time you are about to source /Users/will/alt/metacpan-docker/.env:
autoenv:
autoenv: --- (begin contents) ---------------------------------------
autoenv: COMPOSE_PROJECT_NAME=metacpan$
autoenv: PLACK_ENV=development$
autoenv: PGDB=pgdb:5432$
autoenv: API_SERVER=morbo -l http://*:5000 -w app.psgi -w bin -w lib -w templates --verbose$
autoenv:
autoenv: --- (end contents) -----------------------------------------
autoenv:
autoenv: Are you sure you want to allow this? (y/N) y
-bash: -l: command not found
Mac [12:35 master metacpan-docker$] PGDB="pgdb:5432$"
Mac [12:36 master metacpan-docker$] API_SERVER="morbo -l 'http://*:5000' -w app.psgi -w bin -w lib -w templates --verbose bin/api.pl"
Mac [12:36 master metacpan-docker$] bin/metacpan-docker init
Initializing metacpan-docker repositories:
Cloning into 'metacpan-api'...
remote: Enumerating objects: 20087, done.
remote: Counting objects: 100% (449/449), done.
remote: Compressing objects: 100% (267/267), done.
remote: Total 20087 (delta 166), reused 410 (delta 156), pack-reused 19638
Receiving objects: 100% (20087/20087), 5.24 MiB | 1.75 MiB/s, done.
Resolving deltas: 100% (11426/11426), done.
Repository metacpan-api ready.
Cloning into 'metacpan-web'...
remote: Enumerating objects: 26378, done.
remote: Counting objects: 100% (2158/2158), done.
remote: Compressing objects: 100% (307/307), done.
remote: Total 26378 (delta 1899), reused 1883 (delta 1850), pack-reused 24220
Receiving objects: 100% (26378/26378), 10.48 MiB | 898.00 KiB/s, done.
Resolving deltas: 100% (15981/15981), done.
Repository metacpan-web ready.
Cloning into 'metacpan-grep-front-end'...
remote: Enumerating objects: 852, done.
remote: Total 852 (delta 0), reused 0 (delta 0), pack-reused 852
Receiving objects: 100% (852/852), 814.94 KiB | 2.41 MiB/s, done.
Resolving deltas: 100% (471/471), done.
Repository metacpan-grep-front-end ready.
Cloning into 'metacpan-cpan-extracted-lite'...
remote: Enumerating objects: 15486, done.
remote: Counting objects: 100% (15486/15486), done.
remote: Compressing objects: 100% (10051/10051), done.
remote: Total 15486 (delta 2833), reused 15486 (delta 2833), pack-reused 0
Receiving objects: 100% (15486/15486), 21.65 MiB | 1.23 MiB/s, done.
Resolving deltas: 100% (2833/2833), done.
Checking out files: 100% (12401/12401), done.
Repository metacpan-cpan-extracted-lite ready.
metacpan_git_shared
metacpan-docker ready! Run 'bin/metacpan-docker localapi up' to start.
Mac [12:37 master metacpan-docker$] docker-compose up
Creating network "metacpan_traefik-network" with the default driver
Creating network "metacpan_default" with the default driver
Creating network "metacpan_web-network" with the default driver
Creating network "metacpan_elasticsearch" with the default driver
Creating network "metacpan_database" with the default driver
Creating network "metacpan_mongo" with the default driver
Creating volume "metacpan_web_carton" with default driver
Creating volume "metacpan_api_carton" with default driver
Creating volume "metacpan_cpan" with default driver
Creating volume "metacpan_elasticsearch" with default driver
Creating volume "metacpan_elasticsearch_test" with default driver
Creating volume "metacpan_pgdb-data" with default driver
Pulling traefik (traefik:v2.4.5)...
v2.4.5: Pulling from library/traefik
e95f33c60a64: Pull complete
f7caf618c71a: Pull complete
1fe2d6038741: Pull complete
4ae52e7c5a84: Pull complete
Digest: sha256:062dff1b5c54845f34147e04a251a645f3a5318c42da7127bf25a6e0d3c6e4d5
Status: Downloaded newer image for traefik:v2.4.5
Pulling logspout (honeycombio/logspout-honeycomb:1.13)...
1.13: Pulling from honeycombio/logspout-honeycomb
911c6d0c7995: Pull complete
abb0d1cb9183: Pull complete
5fbc71ea53ad: Pull complete
bf2a5663ce33: Pull complete
d1a4ed96faea: Pull complete
89c91580ffae: Pull complete
Digest: sha256:9296bffb5b33f912f345ed9c78f0a7c1d758d13815c4c64c655cbd77126db4d9
Status: Downloaded newer image for honeycombio/logspout-honeycomb:1.13
Building web
Step 1/12 : FROM metacpan/metacpan-base:latest
latest: Pulling from metacpan/metacpan-base
16ea0e8c8879: Pull complete
50024b0106d5: Pull complete
ff95660c6937: Pull complete
9c7d0e5c0bc2: Pull complete
29c4fb388fdf: Pull complete
5fec9b86b1a9: Pull complete
e78b734c5532: Pull complete
2381c281aa80: Pull complete
8530a7efaf38: Pull complete
104b2b8294e3: Pull complete
Digest: sha256:cadabf76e67fb384925cd89693669c36d70e04671e9a3c1114bc36f8e8a0d119
Status: Downloaded newer image for metacpan/metacpan-base:latest
---> 24a6b7fffc98
Step 2/12 : ARG CPM_ARGS=--with-test
---> Running in c446c2759b1f
Removing intermediate container c446c2759b1f
---> 24024fc1a604
Step 3/12 : SHELL ["/bin/bash", "-o", "pipefail", "-c"]
---> Running in f0599b5e5514
Removing intermediate container f0599b5e5514
---> af1d90bad14a
Step 4/12 : RUN curl -sL https://deb.nodesource.com/setup_10.x | bash && curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add - && echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list && apt-get update && apt-get install -y -f --no-install-recommends libcmark-dev nodejs yarn=1.19.2-1 && apt-get clean && rm -rf /var/lib/apt/lists/*
---> Running in 1495f26a1acc
================================================================================
================================================================================
DEPRECATION WARNING
Node.js 10.x is no longer actively supported!
You will not receive security or critical stability updates for this version.
You should migrate to a supported version of Node.js as soon as possible.
Use the installation script that corresponds to the version of Node.js you
wish to install. e.g.
* https://deb.nodesource.com/setup_12.x — Node.js 12 LTS "Erbium"
* https://deb.nodesource.com/setup_14.x — Node.js 14 LTS "Fermium" (recommended)
* https://deb.nodesource.com/setup_16.x — Node.js 16 "Gallium"
Please see https://github.com/nodejs/Release for details about which
version may be appropriate for you.
The NodeSource Node.js distributions repository contains
information both about supported versions of Node.js and supported Linux
distributions. To learn more about usage, see the repository:
https://github.com/nodesource/distributions
================================================================================
================================================================================
Continuing in 20 seconds ...
## Installing the NodeSource Node.js 10.x repo...
## Populating apt-get cache...
+ apt-get update
Get:1 http://deb.debian.org/debian buster InRelease [122 kB]
Get:2 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [303 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [15.2 kB]
Fetched 8465 kB in 3s (2555 kB/s)
Reading package lists...
## Installing packages required for setup: lsb-release...
+ apt-get install -y lsb-release > /dev/null 2>&1
## Confirming "buster" is supported...
+ curl -sLf -o /dev/null 'https://deb.nodesource.com/node_10.x/dists/buster/Release'
## Adding the NodeSource signing key to your keyring...
+ curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor | tee /usr/share/keyrings/nodesource.gpg >/dev/null
## Creating apt sources list file for the NodeSource Node.js 10.x repo...
+ echo 'deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_10.x buster main' > /etc/apt/sources.list.d/nodesource.list
+ echo 'deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_10.x buster main' >> /etc/apt/sources.list.d/nodesource.list
## Running `apt-get update` for you...
+ apt-get update
Hit:1 http://security.debian.org/debian-security buster/updates InRelease
Hit:2 http://deb.debian.org/debian buster InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Get:4 https://deb.nodesource.com/node_10.x buster InRelease [4584 B]
Get:5 https://deb.nodesource.com/node_10.x buster/main amd64 Packages [767 B]
Fetched 5351 B in 1s (9933 B/s)
Reading package lists...
## Run `sudo apt-get install -y nodejs` to install Node.js 10.x and npm
## You may also need development tools to build native addons:
sudo apt-get install gcc g++ make
## To install the Yarn package manager, run:
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
echo "deb [signed-by=/usr/share/keyrings/yarnkey.gpg] https://dl.yarnpkg.com/debian stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt-get update && sudo apt-get install yarn
Warning: apt-key output should not be parsed (stdout is not a terminal)
OK
deb https://dl.yarnpkg.com/debian/ stable main
Hit:1 http://deb.debian.org/debian buster InRelease
Hit:2 http://security.debian.org/debian-security buster/updates InRelease
Hit:3 http://deb.debian.org/debian buster-updates InRelease
Hit:4 https://deb.nodesource.com/node_10.x buster InRelease
Get:5 https://dl.yarnpkg.com/debian stable InRelease [17.1 kB]
Get:6 https://dl.yarnpkg.com/debian stable/main all Packages [10.1 kB]
Get:7 https://dl.yarnpkg.com/debian stable/main amd64 Packages [10.1 kB]
Fetched 37.2 kB in 1s (56.3 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libcmark0
The following NEW packages will be installed:
libcmark-dev libcmark0 nodejs yarn
0 upgraded, 4 newly installed, 0 to remove and 132 not upgraded.
Need to get 17.1 MB of archives.
After this operation, 86.7 MB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 libcmark0 amd64 0.28.3-1 [108 kB]
Get:2 http://deb.debian.org/debian buster/main amd64 libcmark-dev amd64 0.28.3-1 [122 kB]
Get:3 https://deb.nodesource.com/node_10.x buster/main amd64 nodejs amd64 10.24.1-1nodesource1 [15.9 MB]
Get:4 https://dl.yarnpkg.com/debian stable/main amd64 yarn all 1.19.2-1 [890 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 17.1 MB in 5s (3746 kB/s)
Selecting previously unselected package libcmark0.
(Reading database ... 23978 files and directories currently installed.)
Preparing to unpack .../libcmark0_0.28.3-1_amd64.deb ...
Unpacking libcmark0 (0.28.3-1) ...
Selecting previously unselected package libcmark-dev.
Preparing to unpack .../libcmark-dev_0.28.3-1_amd64.deb ...
Unpacking libcmark-dev (0.28.3-1) ...
Selecting previously unselected package nodejs.
Preparing to unpack .../nodejs_10.24.1-1nodesource1_amd64.deb ...
Unpacking nodejs (10.24.1-1nodesource1) ...
Selecting previously unselected package yarn.
Preparing to unpack .../archives/yarn_1.19.2-1_all.deb ...
Unpacking yarn (1.19.2-1) ...
Setting up nodejs (10.24.1-1nodesource1) ...
Setting up libcmark0 (0.28.3-1) ...
Setting up libcmark-dev (0.28.3-1) ...
Setting up yarn (1.19.2-1) ...
Processing triggers for libc-bin (2.28-10) ...
Removing intermediate container 1495f26a1acc
---> 0fe1aa956aeb
Step 5/12 : COPY . /metacpan-web/
---> 2e65acbbdf3a
Step 6/12 : WORKDIR /metacpan-web
---> Running in e046054d86fa
Removing intermediate container e046054d86fa
---> 8fd89df58aa5
Step 7/12 : RUN yarn install
---> Running in 1f7ee677a747
yarn install v1.19.2
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
[4/4] Building fresh packages...
Done in 5.42s.
Removing intermediate container 1f7ee677a747
---> 0035402d935b
Step 8/12 : RUN cpanm --notest App::cpm && cpm install -g Carton && useradd -m metacpan-web -g users && cpm install -g ${CPM_ARGS} && rm -fr /root/.cpanm /root/.perl-cpm /tmp/*
---> Running in 34c52d0df397
--> Working on App::cpm
Fetching http://www.cpan.org/authors/id/S/SK/SKAJI/App-cpm-0.997006.tar.gz ... OK
Configuring App-cpm-0.997006 ... OK
==> Found dependencies: Parse::PMFile, CPAN::02Packages::Search, ExtUtils::Install, Module::cpmfile, YAML::PP
--> Working on Parse::PMFile
Fetching http://www.cpan.org/authors/id/I/IS/ISHIGAKI/Parse-PMFile-0.43.tar.gz ... OK
Configuring Parse-PMFile-0.43 ... OK
Building Parse-PMFile-0.43 ... OK
Successfully installed Parse-PMFile-0.43 (upgraded from 0.42)
--> Working on CPAN::02Packages::Search
Fetching http://www.cpan.org/authors/id/S/SK/SKAJI/CPAN-02Packages-Search-0.001.tar.gz ... OK
Configuring CPAN-02Packages-Search-0.001 ... OK
Building CPAN-02Packages-Search-0.001 ... OK
Successfully installed CPAN-02Packages-Search-0.001
--> Working on ExtUtils::Install
Fetching http://www.cpan.org/authors/id/B/BI/BINGOS/ExtUtils-Install-2.20.tar.gz ... OK
Configuring ExtUtils-Install-2.20 ... OK
Building ExtUtils-Install-2.20 ... OK
Successfully installed ExtUtils-Install-2.20 (upgraded from 2.14)
--> Working on Module::cpmfile
Fetching http://www.cpan.org/authors/id/S/SK/SKAJI/Module-cpmfile-0.002.tar.gz ... OK
Configuring Module-cpmfile-0.002 ... OK
==> Found dependencies: YAML::PP
--> Working on YAML::PP
Fetching http://www.cpan.org/authors/id/T/TI/TINITA/YAML-PP-0.027.tar.gz ... OK
Configuring YAML-PP-0.027 ... OK
Building YAML-PP-0.027 ... OK
Successfully installed YAML-PP-0.027
Building Module-cpmfile-0.002 ... OK
Successfully installed Module-cpmfile-0.002
Building App-cpm-0.997006 ... OK
Successfully installed App-cpm-0.997006 (upgraded from 0.989)
6 distributions installed
DONE install Carton is up to date. (v1.0.34)
0 distribution installed.
Loading distributions from cpanfile.snapshot...
DONE install Config-General-2.63
DONE install Number-Format-1.75
DONE install Perl-Tidy-20210717
DONE install Log-Log4perl-1.54
DONE install Type-Tiny-1.012004
DONE install With-Roles-0.001002
DONE install Plack-Middleware-ReverseProxy-0.16
DONE install Text-Pluralize-1.1
DONE install Devel-Confess-0.009004
DONE install Locale-Codes-3.68
DONE install JavaScript-Minifier-XS-0.14
DONE install Types-LoadableClass-0.003
DONE install Types-Path-Tiny-0.006
DONE install WWW-Form-UrlEncoded-XS-0.26
DONE install Router-Simple-0.17
DONE install aliased-0.34
DONE install CatalystX-Fastly-Role-Response-0.07
DONE install Log-Log4perl-Layout-JSON-0.58
DONE install Future-0.47
DONE install Module-Build-XSUtil-0.19
DONE install MCE-1.874
DONE install Import-Into-1.002005
DONE install Term-Size-Perl-0.031
DONE install Devel-Hide-0.0014
DONE install Test-MockRandom-1.01
DONE install Path-Class-0.37
DONE install Class-C3-Adopt-NEXT-0.14
DONE install PerlIO-utf8_strict-0.008
DONE install UNIVERSAL-isa-1.20171012
DONE install Plack-Middleware-RemoveRedundantBody-0.09
DONE install Safe-Isa-1.000010
DONE install IPC-System-Simple-1.30
DONE install JSON-4.03
DONE install HTTP-Parser-XS-0.17
DONE install Net-SSLeay-1.90
DONE install Test-Identity-0.01
DONE install Module-Pluggable-5.2
DONE install Digest-HMAC-1.04
DONE install Params-Validate-1.30
DONE install Data-Dump-1.25
DONE install CGI-Struct-1.21
DONE install URI-Find-20160806
DONE install Test-Vars-0.015
DONE install String-RewritePrefix-0.008
DONE install URI-ws-0.03
DONE install Metrics-Any-0.07
DONE install Class-Accessor-0.51
DONE install Clone-0.45
DONE install Struct-Dumb-0.12
DONE install Plack-Middleware-MethodOverride-0.20
DONE install Text-SimpleTable-2.07
DONE install UNIVERSAL-can-1.20140328
DONE install Time-Duration-Parse-0.16
DONE install Net-CIDR-Lite-0.22
DONE install HTTP-Cookies-6.10
DONE install MIME-Types-2.21
DONE install Tree-Simple-1.34
DONE install Net-Server-2.010
DONE install Test-Refcount-0.10
DONE install HTML-Tagset-3.20
DONE install Task-Weaken-1.06
DONE install Config-Any-0.32
DONE install HTTP-Request-AsCGI-1.2
DONE install HTTP-Body-1.22
DONE install Readonly-2.05
DONE install Plack-Middleware-Session-0.33
DONE install Test-MockObject-1.20200122
DONE install IO-Async-0.79
DONE install Term-Size-Any-0.002
DONE install YAML-1.30
DONE install List-Compare-0.55
DONE install Starman-0.4015
DONE install Tree-Simple-VisitorFactory-0.16
DONE install Config-Tiny-2.26
DONE install Test-Metrics-Any-0.01
DONE install Getopt-Long-Descriptive-0.109
DONE install IO-String-1.08
DONE install Log-Any-1.710
DONE install Net-DNS-1.32
DONE install String-Format-1.18
DONE install B-Keywords-1.22
DONE install Module-Build-Pluggable-0.10
DONE install Ref-Util-XS-0.117
DONE install PPI-1.270
DONE install Canary-Stability-2013
DONE install Net-Async-HTTP-0.48
DONE install URI-FromHash-0.05
DONE install IO-Stringy-2.113
DONE install Mozilla-CA-20200520
DONE install File-Listing-6.14
DONE install PPIx-QuoteLike-0.017
DONE install Test-NoWarnings-1.06
DONE install Sub-Uplevel-0.2800
DONE install Class-Accessor-Chained-0.01
DONE install Ref-Util-0.204
DONE install HTML-Parser-3.76
DONE install Net-HTTP-6.21
DONE install Object-Signature-1.08
DONE install Module-Build-Pluggable-PPPort-0.04
DONE install WWW-RobotRules-6.02
DONE install HTTP-Lite-2.44
DONE install Mixin-Linewise-0.110
DONE install PPIx-Regexp-0.080
DONE install HTTP-Negotiate-6.01
DONE install XString-0.005
DONE install UUID-Tiny-1.04
DONE install Test-Warn-0.36
DONE install Class-Data-Inheritable-0.09
DONE install Plack-Middleware-FixMissingBodyInRedirect-0.12
DONE install XML-TreePP-0.43
DONE install Data-Page-2.03
DONE install Tie-ToObject-0.03
DONE install HTML-Tree-5.07
DONE install IO-Socket-SSL-2.072
DONE install Config-INI-0.027
DONE install Algorithm-Diff-1.201
DONE install Test-Exception-0.43
DONE install Lingua-EN-Inflect-1.905
DONE install Exception-Class-1.45
DONE install XML-FeedPP-0.95
DONE install Specio-0.47
DONE install List-SomeUtils-XS-0.58
DONE install Gravatar-URL-1.07
DONE install Mouse-v2.5.10
DONE install Data-Pageset-1.06
DONE install Parallel-Scoreboard-0.08
DONE install libwww-perl-6.56
DONE install HTML-Escape-1.10
DONE install Data-MessagePack-1.01
DONE install IO-Async-SSL-0.22
DONE install Class-Singleton-1.6
DONE install Types-UUID-0.004
DONE install PPIx-Utilities-1.001000
DONE install Specio-Library-Path-Tiny-0.04
DONE install Plack-Middleware-ServerStatus-Lite-0.36
DONE install CGI-Simple-1.25
DONE install Plack-Test-ExternalServer-0.02
DONE install Text-Diff-1.45
DONE install Pod-Spell-1.20
DONE install LWP-Protocol-https-6.10
DONE install Params-ValidationCompiler-0.30
DONE install List-SomeUtils-0.58
DONE install File-chdir-0.1010
DONE install Types-URI-0.007
DONE install Test-Differences-0.68
DONE install FFI-CheckLib-0.28
DONE install common-sense-3.75
DONE install Variable-Magic-0.62
DONE install Test-Most-0.37
DONE install Alien-Build-2.41
DONE install Perl-Critic-1.140
DONE install Types-Serialiser-1.01
DONE install Text-Markdown-1.000031
DONE install Text-Xslate-v3.5.8
DONE install Code-TidyAll-0.78
DONE install Hash-Merge-Simple-0.051
DONE install B-Hooks-EndOfScope-0.24
DONE install Test-Perl-Critic-1.04
DONE install Test-LongString-0.17
DONE install Text-MultiMarkdown-1.000035
DONE install Code-TidyAll-Plugin-Test-Vars-0.04
DONE install Config-ZOMG-1.000000
DONE install HTML-Form-6.07
DONE install Carp-Assert-More-2.0.1
DONE install Alien-Libxml2-0.17
DONE install WWW-Mechanize-2.04
DONE install namespace-clean-0.27
DONE install JSON-XS-4.03
DONE install CGI-4.53
DONE install Net-Fastly-1.12
DONE install MooseX-Emulate-Class-Accessor-Fast-0.009032
DONE install HTML-Restrict-v3.0.0
DONE install Data-Visitor-0.31
DONE install namespace-autoclean-0.29
DONE install HTTP-Server-Simple-0.52
DONE install MooseX-Role-Parameterized-1.11
DONE install MooseX-Fastly-Role-0.04
DONE install Log-Dispatch-2.70
DONE install MooseX-Getopt-0.75
DONE install MooseX-MethodAttributes-0.32
DONE install MooseX-StrictConstructor-0.21
DONE install XML-NamespaceSupport-1.12
DONE install Test-WWW-Mechanize-1.54
DONE install MetaCPAN-Role-0.06
DONE install MetaCPAN-Moose-0.000003
DONE install DateTime-TimeZone-2.47
DONE install XML-SAX-Base-1.09
DONE install Catalyst-Runtime-5.90128
DONE install Test-WWW-Mechanize-PSGI-0.39
DONE install Catalyst-View-Xslate-0.00019
DONE install Catalyst-Plugin-ConfigLoader-0.35
DONE install XML-SAX-1.02
DONE install Catalyst-View-JSON-0.37
DONE install Catalyst-Action-RenderView-0.16
DONE install Catalyst-Action-REST-1.21
DONE install Catalyst-Plugin-Static-Simple-0.37
DONE install Catalyst-Plugin-Session-0.41
DONE install Catalyst-Plugin-Authentication-0.10023
DONE install DateTime-1.54
DONE install DateTime-Locale-1.32
DONE install DateTime-Format-HTTP-0.42
DONE install DateTime-Format-Strptime-1.79
DONE install DateTime-Format-Builder-0.83
DONE install DateTime-Format-ISO8601-0.16
DONE install XML-LibXML-2.0207
DONE install Test-XPath-0.19
206 distributions installed.
Removing intermediate container 34c52d0df397
---> 16dce3dd3888
Step 9/12 : RUN chown -R metacpan-web:users /metacpan-web
---> Running in 8a539600f6a2
Removing intermediate container 8a539600f6a2
---> 9d57d755e8ff
Step 10/12 : USER metacpan-web:users
---> Running in 266085f91faf
Removing intermediate container 266085f91faf
---> b1e61a3ae68b
Step 11/12 : EXPOSE 5001
---> Running in 6ac1216ea285
Removing intermediate container 6ac1216ea285
---> 36ae57535a53
Step 12/12 : CMD ["plackup", "-p", "5001", "-r"]
---> Running in 0a3fa3436b8b
Removing intermediate container 0a3fa3436b8b
---> a12e1eb7812c
Successfully built a12e1eb7812c
Successfully tagged metacpan/metacpan-web:latest
WARNING: Image for service web was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Building grep
Step 1/7 : FROM metacpan/metacpan-base:latest
---> 24a6b7fffc98
Step 2/7 : ADD . /metacpan-grep-front-end
---> f4641e158cd3
Step 3/7 : WORKDIR /metacpan-grep-front-end
---> Running in 6459482ad414
Removing intermediate container 6459482ad414
---> 0b931f1c2e0a
Step 4/7 : RUN cpm install --without-test -g
---> Running in b615ac8afda2
Loading distributions from cpanfile.snapshot...
DONE install Plack-Middleware-Deflater-0.12
DONE install File-Slurp-9999.19
DONE install Simple-Accessor-1.11
DONE install Proc-ProcessTable-0.53
DONE install HTTP-Parser-XS-0.17
DONE install Net-Server-2.008
DONE install Data-Dump-1.23
DONE install YAML-Syck-1.30
DONE install Canary-Stability-2012
DONE install Plack-Middleware-RemoveRedundantBody-0.05
DONE install Import-Into-1.002005
DONE install Starman-0.4014
DONE install AppConfig-1.71
DONE install Template-Tiny-1.12
DONE install Type-Tiny-1.000006
DONE install YAML-1.23
DONE install Safe-Isa-1.000006
DONE install Git-Version-Compare-1.004
DONE install HTTP-Body-1.22
DONE install Module-Pluggable-5.2
DONE install IPC-Run-0.96
DONE install Data-Munge-0.097
DONE install String-RewritePrefix-0.007
DONE install IO-TieCombine-1.005
DONE install Template-Toolkit-2.27
DONE install Clone-0.39
DONE install Config-Any-0.32
DONE install System-Command-1.118
DONE install common-sense-3.74
DONE install Return-MultiLevel-0.04
DONE install Types-Serialiser-1.0
DONE install HTML-Tagset-3.20
DONE install Params-Validate-1.28
DONE install Sub-Uplevel-0.2800
DONE install Variable-Magic-0.61
DONE install Getopt-Long-Descriptive-0.100
DONE install Test-Exception-0.43
DONE install Test-Warn-0.32
DONE install Class-Data-Inheritable-0.08
DONE install B-Hooks-EndOfScope-0.21
DONE install App-Cmd-0.331
DONE install JSON-XS-3.03
DONE install Exception-Class-1.42
DONE install namespace-clean-0.27
DONE install Algorithm-Diff-1.1903
DONE install HTML-Parser-3.72
DONE install Git-Repository-1.320
DONE install Text-Diff-1.44
DONE install Plack-Middleware-FixMissingBodyInRedirect-0.12
DONE install Test-Differences-0.64
DONE install Test-Most-0.35
DONE install Hash-Merge-Simple-0.051
DONE install Dancer2-0.205000
53 distributions installed.
Removing intermediate container b615ac8afda2
---> 52efa9566bf9
Step 5/7 : EXPOSE 3000
---> Running in 6e786ca1dd3e
Removing intermediate container 6e786ca1dd3e
---> 307c690b162a
Step 6/7 : VOLUME [ "/metacpan-cpan-extracted" ]
---> Running in 462aba8e58a7
Removing intermediate container 462aba8e58a7
---> a2011d28eea5
Step 7/7 : CMD plackup -p 3000 ${GREP_PLACKUP_SERVER_ARGS} bin/app.psgi
---> Running in e309490b5c93
Removing intermediate container e309490b5c93
---> 777b07b6c22d
Successfully built 777b07b6c22d
Successfully tagged metacpan/metacpan-grep-front-end:latest
WARNING: Image for service grep was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Pulling elasticsearch (elasticsearch:2.4)...
2.4: Pulling from library/elasticsearch
05d1a5232b46: Pull complete
5cee356eda6b: Pull complete
89d3385f0fd3: Pull complete
65dd87f6620b: Pull complete
78a183a01190: Pull complete
1a4499c85f97: Pull complete
2c9d39b4bfc1: Pull complete
1b1cec2222c9: Pull complete
59ff4ce9df68: Pull complete
1976bc3ee432: Pull complete
a27899b7a5b5: Pull complete
b0fc7d2c927a: Pull complete
6d94b96bbcd0: Pull complete
6f5bf40725fd: Pull complete
2bf2a528ae9a: Pull complete
Digest: sha256:41ed3a1a16b63de740767944d5405843db00e55058626c22838f23b413aa4a39
Status: Downloaded newer image for elasticsearch:2.4
Building pgdb
Step 1/3 : ARG PG_TAG=9.6-alpine
Step 2/3 : FROM postgres:${PG_TAG}
9.6-alpine: Pulling from library/postgres
a0d0a0d46f8b: Pull complete
5034a66b99e6: Pull complete
82e9eb77798b: Pull complete
9b397b6bf6f9: Pull complete
d6e501a2f58b: Pull complete
9f2f0d5492f9: Pull complete
46d1c158f95c: Pull complete
dbcbbe2e8c55: Pull complete
7ec8769b58ab: Pull complete
Digest: sha256:fd7c0f654729f5e82186e30149001f750ec1e1eac460c623cc16b2c0e88e32bf
Status: Downloaded newer image for postgres:9.6-alpine
---> 9dcf4ef00993
Step 3/3 : VOLUME /logs
---> Running in 30f71c7879d4
Removing intermediate container 30f71c7879d4
---> 5822b4aeb771
Successfully built 5822b4aeb771
Successfully tagged postgres:9.6-alpine
WARNING: Image for service pgdb was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Building api_test
Step 1/7 : FROM metacpan/metacpan-base:latest
---> 24a6b7fffc98
Step 2/7 : COPY cpanfile cpanfile.snapshot /metacpan-api/
---> bf95c4e2f078
Step 3/7 : WORKDIR /metacpan-api
---> Running in ee6a5a3100fe
Removing intermediate container ee6a5a3100fe
---> de4bf44313f8
Step 4/7 : RUN mkdir /CPAN && apt-get update && apt-get install -y --no-install-recommends rsync=3.1.3-6 jq && apt-get clean && rm -rf /var/lib/apt/lists/* && cpm install --global && rm -fr /root/.cpanm /root/.perl-cpm /var/cache/apt/lists/* /tmp/*
---> Running in 0f1df87ffe1b
Get:1 http://deb.debian.org/debian buster InRelease [122 kB]
Get:2 http://security.debian.org/debian-security buster/updates InRelease [65.4 kB]
Get:3 http://deb.debian.org/debian buster-updates InRelease [51.9 kB]
Get:4 http://security.debian.org/debian-security buster/updates/main amd64 Packages [303 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 Packages [7907 kB]
Get:6 http://deb.debian.org/debian buster-updates/main amd64 Packages [15.2 kB]
Fetched 8465 kB in 3s (2596 kB/s)
Reading package lists...
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
libjq1 libonig5 libpopt0
Suggested packages:
openssh-server
The following NEW packages will be installed:
jq libjq1 libonig5 libpopt0 rsync
0 upgraded, 5 newly installed, 0 to remove and 132 not upgraded.
Need to get 801 kB of archives.
After this operation, 2046 kB of additional disk space will be used.
Get:1 http://deb.debian.org/debian buster/main amd64 libonig5 amd64 6.9.1-1 [171 kB]
Get:2 http://deb.debian.org/debian buster/main amd64 libjq1 amd64 1.5+dfsg-2+b1 [124 kB]
Get:3 http://deb.debian.org/debian buster/main amd64 jq amd64 1.5+dfsg-2+b1 [59.4 kB]
Get:4 http://deb.debian.org/debian buster/main amd64 libpopt0 amd64 1.16-12 [49.4 kB]
Get:5 http://deb.debian.org/debian buster/main amd64 rsync amd64 3.1.3-6 [397 kB]
debconf: delaying package configuration, since apt-utils is not installed
Fetched 801 kB in 0s (3304 kB/s)
Selecting previously unselected package libonig5:amd64.
(Reading database ... 23960 files and directories currently installed.)
Preparing to unpack .../libonig5_6.9.1-1_amd64.deb ...
Unpacking libonig5:amd64 (6.9.1-1) ...
Selecting previously unselected package libjq1:amd64.
Preparing to unpack .../libjq1_1.5+dfsg-2+b1_amd64.deb ...
Unpacking libjq1:amd64 (1.5+dfsg-2+b1) ...
Selecting previously unselected package jq.
Preparing to unpack .../jq_1.5+dfsg-2+b1_amd64.deb ...
Unpacking jq (1.5+dfsg-2+b1) ...
Selecting previously unselected package libpopt0:amd64.
Preparing to unpack .../libpopt0_1.16-12_amd64.deb ...
Unpacking libpopt0:amd64 (1.16-12) ...
Selecting previously unselected package rsync.
Preparing to unpack .../rsync_3.1.3-6_amd64.deb ...
Unpacking rsync (3.1.3-6) ...
Setting up libonig5:amd64 (6.9.1-1) ...
Setting up libpopt0:amd64 (1.16-12) ...
Setting up libjq1:amd64 (1.5+dfsg-2+b1) ...
Setting up jq (1.5+dfsg-2+b1) ...
Setting up rsync (3.1.3-6) ...
invoke-rc.d: could not determine current runlevel
invoke-rc.d: policy-rc.d denied execution of restart.
Processing triggers for libc-bin (2.28-10) ...
Loading distributions from cpanfile.snapshot...
DONE install ExtUtils-HasCompiler-0.021
DONE install MetaCPAN-Pod-XHTML-0.001001
DONE install Data-Dump-1.23
DONE install Const-Fast-0.014
DONE install Log-Log4perl-1.49
DONE install MooseX-Aliases-0.11
DONE install Find-Lib-1.04
DONE install IO-Interactive-1.022
DONE install IO-String-1.08
DONE install Log-Any-1.701
DONE install Test-RequiresInternet-0.05
DONE install Throwable-0.200013
DONE install Plack-Middleware-ReverseProxy-0.15
DONE install Data-Printer-1.000004
DONE install Test-Vars-0.015
DONE install Type-Tiny-1.002001
DONE install Plack-Middleware-Rewrite-2.000
DONE install Module-Pluggable-5.2
DONE install MooseX-Attribute-Chained-1.0.3
DONE install Pod-POM-2.01
DONE install IO-All-0.87
DONE install Config-General-2.63
DONE install Encoding-FixLatin-1.04
DONE install PerlIO-gzip-0.20
DONE install Pod-Markdown-3.005
DONE install Devel-Confess-0.009004
DONE install Parse-CPAN-Packages-Fast-0.09
DONE install URI-5.09
DONE install YAML-LibYAML-0.83
DONE install Email-Address-1.908
DONE install DBI-1.643
DONE install Mozilla-CA-20200520
DONE install Types-Path-Tiny-0.005
DONE install Log-Any-Adapter-Log4perl-0.09
DONE install HTTP-Cookies-6.10
DONE install Config-Any-0.32
DONE install Regexp-Common-2017060201
DONE install Encoding-FixLatin-XS-1.01
DONE install Perl-Tidy-20210402
DONE install Plack-Middleware-Header-0.04
DONE install CatalystX-Fastly-Role-Response-0.07
DONE install Log-Log4perl-Layout-JSON-0.56
DONE install Regexp-Common-time-0.14
DONE install Canary-Stability-2012
DONE install Text-SimpleTable-2.03
DONE install Module-Find-0.13
DONE install Archive-Zip-1.59
DONE install JSON-2.94
DONE install Data-UUID-1.221
DONE install Path-Class-0.37
DONE install Digest-HMAC-1.03
DONE install Task-Weaken-1.04
DONE install TermReadKey-2.37
DONE install Specio-0.42
DONE install Test-Abortable-0.002
DONE install MailTools-2.19
DONE install Clone-0.39
DONE install Time-Duration-1.20
DONE install Params-Validate-1.29
DONE install PerlIO-utf8_strict-0.007
DONE install Class-XSAccessor-1.19
DONE install HTML-Tagset-3.20
DONE install MooX-Types-MooseLike-0.29
DONE install Text-Template-1.47
DONE install HTTP-Body-1.22
DONE install YAML-1.24
DONE install PadWalker-2.3
DONE install Array-Iterator-0.11
DONE install URI-ws-0.03
DONE install indirect-0.38
DONE install Sort-Versions-1.62
DONE install File-Listing-6.04
DONE install Parse-LocalDistribution-0.19
DONE install Plack-Middleware-MethodOverride-0.15
DONE install Net-Server-2.009
DONE install Any-URI-Escape-0.01
DONE install Net-SSLeay-1.82
DONE install HTTP-Parser-XS-0.17
DONE install String-RewritePrefix-0.007
DONE install Test-MockRandom-1.01
DONE install aliased-0.34
DONE install String-Trim-0.005
DONE install Class-C3-Adopt-NEXT-0.14
DONE install Number-Compare-0.03
DONE install URI-git-0.02
DONE install Browser-Open-0.04
DONE install Object-Signature-1.07
DONE install Parse-MIME-1.003
DONE install List-Compare-0.53
DONE install Import-Into-1.002005
DONE install Hash-MoreUtils-0.05
DONE install Archive-Extract-0.80
DONE install Plack-Middleware-RemoveRedundantBody-0.06
DONE install Digest-JHash-0.10
DONE install MCE-1.831
DONE install Safe-Isa-1.000008
DONE install CGI-Struct-1.21
DONE install File-Next-1.16
DONE install Digest-SHA1-2.13
DONE install XML-NamespaceSupport-1.12
DONE install Sub-Exporter-ForMethods-0.100052
DONE install HTTP-Negotiate-6.01
DONE install HTML-Tiny-1.05
DONE install Text-Glob-0.11
DONE install Data-Section-0.200007
DONE install Net-HTTP-6.21
DONE install WWW-RobotRules-6.02
DONE install Tree-Simple-1.31
DONE install Cache-LRU-0.04
DONE install File-MMagic-1.30
DONE install HTTP-Entity-Parser-0.25
DONE install Email-Date-Format-1.005
DONE install Class-Accessor-0.51
DONE install Data-Dumper-Concise-2.023
DONE install Text-CSV_XS-1.34
DONE install MIME-Types-2.14
DONE install Mojolicious-8.06
DONE install DBD-Pg-3.7.0
DONE install URI-Find-20160806
DONE install CLASS-1.00
DONE install Starman-0.4014
DONE install Path-Iterator-Rule-1.012
DONE install JSON-Validator-2.15
DONE install Parse-CSV-2.04
DONE install Authen-SASL-2.16
DONE install List-UtilsBy-0.10
DONE install Plack-Middleware-Session-0.30
DONE install Sub-Override-0.09
DONE install Tree-Simple-VisitorFactory-0.15
DONE install File-HomeDir-1.002
DONE install Minion-9.03
DONE install Plack-1.0048
DONE install Net-CIDR-Lite-0.21
DONE install MooX-Types-MooseLike-Numeric-1.03
DONE install Carp-Assert-0.21
DONE install Archive-Any-0.0945
DONE install URI-Query-0.16
DONE install Want-0.29
DONE install Scalar-List-Utils-1.56
DONE install HTTP-CookieMonster-0.09
DONE install HTTP-Request-AsCGI-1.2
DONE install Email-Simple-2.214
DONE install Devel-ArgNames-0.03
DONE install IO-Socket-SSL-2.052
DONE install Mojolicious-Plugin-MountPSGI-0.14
DONE install Getopt-Long-Descriptive-0.104
DONE install HTML-Parser-3.72
DONE install Specio-Library-Path-Tiny-0.04
DONE install File-Find-Rule-0.34
DONE install Net-DNS-1.13
DONE install URI-FromHash-0.05
DONE install IPC-System-Simple-1.25
DONE install Text-SimpleTable-AutoWidth-0.09
DONE install Ref-Util-XS-0.116
DONE install File-Find-Rule-Perl-1.15
DONE install HTML-TokeParser-Simple-3.16
DONE install Plack-Middleware-FixMissingBodyInRedirect-0.12
DONE install ExtUtils-Depends-0.405
DONE install Net-DNS-Paranoid-0.08
DONE install IO-Prompt-0.997004
DONE install Module-Build-XSUtil-0.18
DONE install Email-Valid-1.202
DONE install libwww-perl-6.55
DONE install Mojolicious-Plugin-OpenAPI-2.01
DONE install Email-Abstract-3.008
DONE install Algorithm-Diff-1.1903
DONE install Ref-Util-0.203
DONE install Test-LongString-0.17
DONE install File-Find-Object-v0.3.2
DONE install Devel-Symdump-2.18
DONE install Fennec-Lite-0.004
DONE install Pithub-0.01036
DONE install Exporter-Lite-0.08
DONE install Class-Factory-Util-1.7
DONE install Term-Size-Perl-0.029
DONE install UUID-Tiny-1.04
DONE install Data-Compare-1.25
DONE install Class-Data-Inheritable-0.08
DONE install B-Keywords-1.15
DONE install Mixin-Linewise-0.108
DONE install Captcha-reCaptcha-0.99
DONE install Email-Sender-1.300031
DONE install Devel-Hide-0.0009
DONE install LWPx-ParanoidHandler-0.07
DONE install HTML-Tree-5.07
DONE install DBD-SQLite-1.66
DONE install Sub-Uplevel-0.2800
DONE install Readonly-2.05
DONE install Compress-Bzip2-2.26
DONE install Class-Singleton-1.5
DONE install Plack-Test-ExternalServer-0.02
DONE install LWP-Protocol-https-6.07
DONE install MooX-Locale-Passthrough-0.001
DONE install Class-Accessor-Chained-0.01
DONE install IO-stringy-2.111
DONE install File-Sync-0.11
DONE install UNIVERSAL-require-0.18
DONE install Moose-2.2015
DONE install List-SomeUtils-XS-0.55
DONE install XML-SAX-Base-1.09
DONE install Tie-ToObject-0.03
DONE install XML-Parser-2.44
DONE install Test-Warn-0.32
DONE install CGI-Simple-1.115
DONE install MetaCPAN-Client-2.019000
DONE install Config-INI-0.025
DONE install CPAN-Checksums-2.12
DONE install String-Format-1.17
DONE install Config-Tiny-2.23
DONE install Test-Compile-v1.3.0
DONE install Variable-Magic-0.62
DONE install common-sense-3.74
DONE install LWP-UserAgent-Paranoid-0.97
DONE install Test-Exception-0.43
DONE install IO-File-AtomicChange-0.05
DONE install B-Hooks-OP-Check-0.22
DONE install Term-Size-Any-0.002
DONE install Text-Diff-1.45
DONE install Context-Preserve-0.03
DONE install Time-Duration-Parse-0.13
DONE install App-Cache-0.37
DONE install Types-UUID-0.004
DONE install Exception-Class-1.43
DONE install Pod-Coverage-0.23
DONE install Net-OAuth-0.28
DONE install Types-Serialiser-1.0
DONE install Data-Page-2.02
DONE install List-SomeUtils-0.56
DONE install Meta-Builder-0.003
DONE install Types-URI-0.006
DONE install Parallel-Scoreboard-0.08
DONE install Carp-Clan-6.06
DONE install Class-Accessor-Grouped-0.10012
DONE install Test-Differences-0.64
DONE install CHI-0.60
DONE install Mouse-v2.4.10
DONE install Gravatar-URL-1.07
DONE install Carp-Assert-More-1.16
DONE install B-Hooks-EndOfScope-0.21
DONE install EV-4.22
DONE install XML-SAX-0.99
DONE install HTML-Form-6.03
DONE install Iterator-0.03
DONE install Mojolicious-Plugin-Web-Auth-0.17
DONE install Archive-Any-Create-0.03
DONE install namespace-clean-0.27
DONE install Clone-Choose-0.008
DONE install Code-TidyAll-0.78
DONE install CGI-4.37
DONE install Test-Most-0.35
DONE install File-Spec-Native-1.004
DONE install List-AllUtils-0.14
DONE install Exporter-Declare-0.114
DONE install Plack-Middleware-ServerStatus-Lite-0.36
DONE install IPC-Run-0.96
DONE install URI-Nested-0.10
DONE install Params-ValidationCompiler-0.30
DONE install Log-Message-0.08
DONE install Module-Faker-0.017
DONE install JSON-XS-3.04
DONE install URI-db-0.18
DONE install HTTP-Server-Simple-0.52
DONE install Search-Elasticsearch-2.03
DONE install File-Remove-1.57
DONE install Test-Object-0.07
DONE install MooseX-Emulate-Class-Accessor-Fast-0.00903
DONE install Code-TidyAll-Plugin-UniqueLines-0.000003
DONE install Devel-PartialDump-0.20
DONE install System-Sub-0.162800
DONE install MIME-Charset-1.012.2
DONE install Data-Visitor-0.30
DONE install Iterator-Util-0.02
DONE install HTML-Restrict-2.2.4
DONE install Dist-Metadata-0.927
DONE install Hash-Merge-0.298
DONE install WWW-Mechanize-1.86
DONE install Lingua-EN-Inflect-1.903
DONE install Log-Contextual-0.007001
DONE install XML-SAX-Expat-0.51
DONE install Hash-Merge-Simple-0.051
DONE install namespace-autoclean-0.28
DONE install Net-Fastly-1.12
DONE install Git-Sub-0.163320
DONE install Pod-Spell-1.20
DONE install Test-WWW-Mechanize-1.48
DONE install CPAN-Faker-0.010
DONE install Data-DPath-0.57
DONE install Log-Message-Simple-0.10
DONE install SQL-Abstract-1.85
DONE install MooseX-ClassAttribute-0.29
DONE install Plack-Test-Agent-1.4
DONE install MooseX-Fastly-Role-0.04
DONE install Log-Dispatch-2.67
DONE install XML-Simple-2.24
DONE install Config-ZOMG-1.000000
DONE install Lexical-SealRequireHints-0.011
DONE install Test-WWW-Mechanize-PSGI-0.37
DONE install Test-Routine-0.025
DONE install MooseX-Role-Parameterized-1.10
DONE install MooseX-Types-0.50
DONE install Pod-Coverage-Moose-0.07
DONE install MooseX-StrictConstructor-0.21
DONE install Mojo-SQLite-3.000
DONE install Term-UI-0.46
DONE install Mojo-Pg-4.08
DONE install MooseX-Getopt-0.71
DONE install DateTime-TimeZone-2.47
DONE install Hook-LexWrap-0.26
DONE install Unicode-LineBreak-2017.004
DONE install MetaCPAN-Role-0.06
DONE install bareword-filehandles-0.005
DONE install MooseX-RelatedClassRoles-0.004
DONE install MooseX-Types-Structured-0.36
DONE install Algorithm-C3-0.10
DONE install MooseX-MethodAttributes-0.31
DONE install Minion-Backend-SQLite-2.004
DONE install Test-SubCalls-1.09
DONE install MetaCPAN-Moose-0.000003
DONE install multidimensional-0.013
DONE install Class-C3-0.33
DONE install strictures-2.000003
DONE install Catalyst-Runtime-5.90128
DONE install PPI-1.236
DONE install Class-C3-Componentised-1.001000
DONE install MooX-Options-4.103
DONE install OrePAN2-0.48
DONE install MooX-StrictConstructor-0.008
DONE install PPIx-Utilities-1.001000
DONE install PAUSE-Permissions-0.17
DONE install CatalystX-InjectComponent-0.025
DONE install Catalyst-Action-REST-1.20
DONE install Catalyst-Action-RenderView-0.16
DONE install Catalyst-Plugin-Static-Simple-0.34
DONE install CatalystX-RoleApplicator-0.005
DONE install PPIx-Regexp-0.053
DONE install Catalyst-Plugin-ConfigLoader-0.34
DONE install Catalyst-Plugin-Session-0.40
DONE install Catalyst-View-JSON-0.36
DONE install Git-Helpers-0.000013
DONE install Module-Extract-Namespaces-1.02
DONE install Catalyst-Plugin-Session-State-Cookie-0.17
DONE install Catalyst-Plugin-Authentication-0.10023
DONE install Perl-Critic-1.130
DONE install DBIx-Class-0.082840
DONE install Test-Perl-Critic-1.03
DONE install BackPAN-Index-0.42
DONE install DateTime-Locale-1.17
DONE install DateTime-1.54
DONE install LWP-ConsoleLogger-0.000036
DONE install DateTime-Format-Epoch-0.16
DONE install DateTime-Format-RFC3339-v1.2.0
DONE install MooseX-Attribute-Deflator-2.2.2
DONE install DateTime-Format-Strptime-1.74
DONE install Dist-Data-0.006
DONE install DateTime-Format-Builder-0.81
DONE install Net-Twitter-4.01043
DONE install DateTime-Format-ISO8601-0.08
DONE install CPAN-Repository-0.010
DONE install MooseX-Types-ElasticSearch-0.0.4
DONE install ElasticSearchX-Model-2.0.1
360 distributions installed.
Removing intermediate container 0f1df87ffe1b
---> 24844b695fae
Step 5/7 : VOLUME /CPAN
---> Running in 40b89d648950
Removing intermediate container 40b89d648950
---> ae334402e275
Step 6/7 : EXPOSE 5000
---> Running in 28d1225d54fe
Removing intermediate container 28d1225d54fe
---> 3b97cd03d1cf
Step 7/7 : CMD [ "/wait-for-it.sh", "${PGDB}", "--", "${API_SERVER}", "./bin/api.pl" ]
---> Running in 589908f6dde8
Removing intermediate container 589908f6dde8
---> c1b94b337522
Successfully built c1b94b337522
Successfully tagged metacpan/metacpan-api:latest
WARNING: Image for service api_test was built because it did not already exist. To rebuild this image you must use `docker-compose build` or `docker-compose up --build`.
Pulling mongodb (mongo:latest)...
latest: Pulling from library/mongo
35807b77a593: Pull complete
664b0ebdcc07: Pull complete
d598f4d3c081: Pull complete
291455135b00: Pull complete
b46409342f13: Pull complete
ff2b9c6e6f3a: Pull complete
149f6335fc27: Pull complete
baeb6f3bec76: Pull complete
8617caab2de5: Pull complete
067d70de7828: Pull complete
Digest: sha256:58ea1bc09f269a9b85b7e1fae83b7505952aaa521afaaca4131f558955743842
Status: Downloaded newer image for mongo:latest
Pulling github-meets-cpan-cron (metacpan/github-meets-cpan:latest)...
latest: Pulling from metacpan/github-meets-cpan
16ea0e8c8879: Already exists
50024b0106d5: Already exists
ff95660c6937: Already exists
9c7d0e5c0bc2: Already exists
29c4fb388fdf: Already exists
5fec9b86b1a9: Already exists
e78b734c5532: Already exists
2381c281aa80: Already exists
8530a7efaf38: Already exists
104b2b8294e3: Already exists
86e71b1763fa: Pull complete
fc548ff873af: Pull complete
Digest: sha256:e9e1410a6474ac177c72ca82c638bf096eff18c668946f96f0d800b815d95ec4
Status: Downloaded newer image for metacpan/github-meets-cpan:latest
Creating metacpan_logspout_1 ...
Creating metacpan_mongodb_1 ... done
Creating metacpan_elasticsearch_test_1 ...
Creating metacpan_elasticsearch_1 ...
Creating metacpan_pgdb_1 ... done
Creating metacpan_logspout_1 ... done
Creating metacpan_traefik_1 ... error
Creating metacpan_elasticsearch_test_1 ... done
Creating metacpan_elasticsearch_1 ... done
ERROR: for metacpan_traefik_1 Cannot start service traefik: driver failed programming external connectivity on endpoint metacpan_traefik_1 (ef9486a9decd082dc229bc2537ec755af1682547266f41f170085c35f7022bc5): Bind for 0.0.0.0:8080 failed: port is already alCreating metacpan_github-meets-cpan-cron_1 ... done
Creating metacpan_api_test_1 ... done
ERROR: for traefik Cannot start service traefik: driver failed programming external connectivity on endpoint metacpan_traefik_1 (ef9486a9decd082dc229bc2537ec755af1682547266f41f170085c35f7022bc5): Bind for 0.0.0.0:8080 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
Mac [12:50 master metacpan-docker$] docker-compose up
metacpan_elasticsearch_1 is up-to-date
Starting metacpan_traefik_1 ...
metacpan_pgdb_1 is up-to-date
metacpan_logspout_1 is up-to-date
metacpan_elasticsearch_test_1 is up-to-date
metacpan_mongodb_1 is up-to-date
Starting metacpan_traefik_1 ... error
Starting metacpan_github-meets-cpan-cron_1 ...
WARNING: Host is already in use by another container
ERROR: for metacpan_traefik_1 Cannot start service traefik: driver failed programming external connectivity on endpoint metacpan_traefik_1 (357d93107c35760dc3f6cd2393e4133e410470fe5d80fcf7d194a610754ceb74): Bind for 0.0.0.0:8080 failed: port is already alStarting metacpan_github-meets-cpan-cron_1 ... done
ERROR: for traefik Cannot start service traefik: driver failed programming external connectivity on endpoint metacpan_traefik_1 (357d93107c35760dc3f6cd2393e4133e410470fe5d80fcf7d194a610754ceb74): Bind for 0.0.0.0:8080 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
Mac [13:01 master metacpan-docker$] sudo lsof -i -P | grep LISTEN
ruby 54 root 12u IPv4 0x31b1b10d1c1b331 0t0 TCP *:8888 (LISTEN)
dnsmasq 56 nobody 5u IPv4 0x31b1b10cec3cf69 0t0 TCP localhost:53 (LISTEN)
dnsmasq 56 nobody 7u IPv6 0x31b1b10cec41c41 0t0 TCP [fe80:1::1]:53 (LISTEN)
dnsmasq 56 nobody 9u IPv6 0x31b1b10cec41681 0t0 TCP localhost:53 (LISTEN)
coreaudio 191 _coreaudiod 3u IPv4 0x31b1b10cec3bc99 0t0 TCP localhost:13035 (LISTEN)
coreaudio 191 _coreaudiod 4u IPv6 0x31b1b10cec410c1 0t0 TCP localhost:13035 (LISTEN)
cupsd 228 root 5u IPv6 0x31b1b10cec40b01 0t0 TCP localhost:631 (LISTEN)
cupsd 228 root 6u IPv4 0x31b1b10cec3b331 0t0 TCP localhost:631 (LISTEN)
ruby 236 root 8u IPv4 0x31b1b10d1c1bc99 0t0 TCP localhost:24230 (LISTEN)
ruby 236 root 12u IPv4 0x31b1b10d1c1c601 0t0 TCP *:24224 (LISTEN)
ruby 236 root 13u IPv4 0x31b1b10d1c1b331 0t0 TCP *:8888 (LISTEN)
rapportd 3544 will 3u IPv4 0x31b1b10e86ad601 0t0 TCP *:52934 (LISTEN)
rapportd 3544 will 4u IPv6 0x31b1b10e5bfe901 0t0 TCP *:52934 (LISTEN)
redis-ser 3810 will 6u IPv4 0x31b1b10cf37ef69 0t0 TCP localhost:6379 (LISTEN)
redis-ser 3810 will 7u IPv6 0x31b1b10cec427c1 0t0 TCP localhost:6379 (LISTEN)
postgres 3870 will 5u IPv6 0x31b1b10cec40541 0t0 TCP localhost:5432 (LISTEN)
postgres 3870 will 6u IPv4 0x31b1b10e4981c99 0t0 TCP localhost:5432 (LISTEN)
com.docke 3930 will 13u IPv4 0x31b1b10de631f69 0t0 TCP localhost:49634 (LISTEN)
com.docke 3931 will 52u IPv6 0x31b1b10cec42d81 0t0 TCP *:3000 (LISTEN)
com.docke 3931 will 53u IPv6 0x31b1b10cec43341 0t0 TCP *:8080 (LISTEN) # <-- here
com.docke 3931 will 91u IPv6 0x31b1b10e5bfd7c1 0t0 TCP *:8100 (LISTEN)
com.docke 3931 will 92u IPv6 0x31b1b10e5bfc0c1 0t0 TCP *:32768 (LISTEN)
com.docke 3931 will 93u IPv6 0x31b1b10e5bfb541 0t0 TCP *:32769 (LISTEN)
FAHClient 4183 nobody 5u IPv4 0x31b1b10e46a0f69 0t0 TCP *:7396 (LISTEN)
FAHClient 4183 nobody 6u IPv4 0x31b1b10de630331 0t0 TCP *:36330 (LISTEN)
Dropbox 77347 will 80u IPv4 0x31b1b10e4aae601 0t0 TCP *:17500 (LISTEN)
Dropbox 77347 will 81u IPv6 0x31b1b10e5bfbb01 0t0 TCP *:17500 (LISTEN)
Dropbox 77347 will 121u IPv4 0x31b1b10e4982601 0t0 TCP localhost:17600 (LISTEN)
Dropbox 77347 will 126u IPv4 0x31b1b10cf37e601 0t0 TCP localhost:17603 (LISTEN)
Mac [13:02 master metacpan-docker$]
# At this point I terminated the Docker Desktop on the Mac, and re-installed it, but that did not help
Mac [13:27 master metacpan-docker$] docker-compose up
Starting metacpan_elasticsearch_1 ...
Starting metacpan_pgdb_1 ...
Starting metacpan_traefik_1 ...
Starting metacpan_traefik_1 ... error
Starting metacpan_elasticsearch_test_1 ...
Starting metacpan_elasticsearch_1 ... done
Starting metacpan_pgdb_1 ... done
Starting metacpan_mongodb_1 ... done
Starting metacpan_elasticsearch_test_1 ... done
Starting metacpan_logspout_1 ... done
Starting metacpan_github-meets-cpan-cron_1 ... done
Starting metacpan_api_test_1 ... done
ERROR: for traefik Cannot start service traefik: driver failed programming external connectivity on endpoint metacpan_traefik_1 (0c3f1450be51993d1fa9cd2c06ce61c12976ecf847677a8d53946c6b4c5f04a4): Bind for 0.0.0.0:8080 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.
# I gave up

Folding@Home FAHClient on Mac OSX

Mac [23:49  ~$] pkgutil --file-info /usr/local/bin/FAHClient
volume: /
path: /usr/local/bin/FAHClient
pkgid: org.foldingathome.fahclient.pkg
pkg-version: 7.5.1
install-time: 1585049394
uid: 0
gid: 0
mode: 755



Mac [23:50  ~$] pkgutil --files org.foldingathome.fahclient.pkg
Applications
Applications/Folding@home
Applications/Folding@home/Web Control.url
Library
Library/LaunchDaemons
Library/LaunchDaemons/org.foldingathome.fahclient.plist
usr
usr/local
usr/local/bin
usr/local/bin/FAHClient
usr/local/bin/FAHCoreWrapper