profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/paultcochrane/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Paul Cochrane paultcochrane https://ptc-it.de Geek + Hacker; DevOps + Testing

moritz/CGI-Application 7

Perl 6 port of the Perl 5 module CGI::Application

AndyA/Devel--LeakGuard--Object 2

Scoped checks for object leaks

exodist/Hook-AfterRuntime 1

Run code at the end of the compiling scope's runtime (Perl)

exodist/Meta-Builder 1

Tools for creating Meta objects to track custom metrics.

paultcochrane/ABC 0

ABC music notation tools for Perl 6

paultcochrane/Acme-DSON 0

such "foo" is "bar" ! "language" is "perl 6" wow

paultcochrane/Acme-Insult-Lala 0

Construct an insulting epithet in the manner of an old IRC bot

paultcochrane/Acme-Mangle 0

Mangle some text with Perl 6!

paultcochrane/ADT 0

Algebraic Data Types for perl6, inspired by Haskell

paultcochrane/Algorithm--Diff 0

Perl 6 port of Algorithm::Diff

Pull request review commentperlancar/perl-Perinci-CmdLine-Lite

Add initial GitHub Actions configuration

+# This is a basic workflow to help you get started with Actions++name: CI++# Controls when the action will run. Triggers the workflow on push or pull request+# events but only for the master branch+on: [push, pull_request]++# A workflow run is made up of one or more jobs that can run sequentially or in parallel+jobs:+  build:+    runs-on: ${{ matrix.os }}+    strategy:+      matrix:+        os: ['ubuntu-latest', 'macos-latest']+        perl: [ 'latest' ]+    name: Perl ${{ matrix.perl }} on ${{ matrix.os }}+    steps:+      - uses: actions/checkout@v2+      - name: Set up perl+        uses: shogo82148/actions-setup-perl@v1+        with:+          perl-version: ${{ matrix.perl }}+      - run: 'echo "user DUMMYUSER" > $HOME/.pause'+      - run: 'echo "" > $HOME/pmversions.ini'

You're quite right: this is no longer needed. I've removed the dummy PAUSE user and stub pmversions file setup code from the GitHub Actions config file and have force-pushed the change to the branch mentioned in this PR. Let me know what you think.

paultcochrane

comment created time in 20 days

PullRequestReviewEvent

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 91a1e6bb9b3f50914ffee09d2b893a878dee7a77

Add initial GitHub Actions CI/CD configuration This change only adds build and test settings for Linux and MacOS; it wasn't possible to get the Windows configuration to install the authordeps for the distribution and hence a Windows CI/CD config isn't possible at this time. For future reference, here are the issues I ran into: - the `shogo82148/actions-setup-perl@v1` action, which provides "latest" versions of Perl for Linux, MacOS and Windows can't build a working `Dist::Zilla` for some reason. I found that `Dist::Zilla` could be installed, however none of the `dzil` subcommands (other than `help`) worked, hence it wasn't possible to install upstream dependencies or run the test suite. - using the system Perl for the Windows platform allowed `Dist::Zilla` to install correctly, however the XS code required for the upstream dependency `B::Hooks::Parser` doesn't compile (at least not on the current system Perl provided by GitHub). Consequently the authordeps installation fails and it's therefore not possible to build and test the distribution on Windows. I found this rather odd because `B::Hooks::Parser` seems to build on Windows without a problem if one considers the its status on CPAN Testers.

view details

push time in 20 days

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 1e1b07b99c6021f04e54f88c3dcb051ab339703b

Remove unnecessary PAUSE and pmversions setup code When producing the original PR back in 2018, I found that it was necessary to set up a dummy local PAUSE and a stub pmversions.ini file. According to the author, these steps are no longer necessary.

view details

push time in 20 days

pull request commentperlancar/perl-Perinci-CmdLine-Lite

Add initial GitHub Actions configuration

It seems that the relevant part of the docs is here: https://metacpan.org/pod/Dist::Zilla::Starter#Installing-Dependencies. i've only ever learned the authordeps/listdeps dance from other people though, so it was good to learn where the information is in the docs :-)

paultcochrane

comment created time in 21 days

pull request commentperlancar/perl-Perinci-CmdLine-Lite

Add initial GitHub Actions configuration

... and here I thought that dzil listdeps was a standard part of installing the dependencies when one uses Dist::Zilla. I.e. for a "normal" installation (without needing anything to develop the application), one does:

dzil listdeps | cpanm

(potentially with futher options to cpanm to speed up the installation process), and if one wants to develop something the invocation is:

dzil authordeps | cpanm
dzil listdeps | cpanm

I've been doing this for so long, I don't question it anymore, which isn't a good sign. Perhaps this isn't necessary anymore? I'll have a look into this as well.

Perhaps the more important questions are: how do you install the dependencies normally? Via e.g. cpanm --installdeps .? Or more appropriately: how do you want the dependencies to be installed if someone grabs the tarball for the dist or decides to build it from source? That will then guide what commands need to be used in the CI/CD scripts.

paultcochrane

comment created time in 21 days

Pull request review commentperlancar/perl-Perinci-CmdLine-Lite

Add initial GitHub Actions configuration

+# This is a basic workflow to help you get started with Actions++name: CI++# Controls when the action will run. Triggers the workflow on push or pull request+# events but only for the master branch+on: [push, pull_request]++# A workflow run is made up of one or more jobs that can run sequentially or in parallel+jobs:+  build:+    runs-on: ${{ matrix.os }}+    strategy:+      matrix:+        os: ['ubuntu-latest', 'macos-latest']+        perl: [ 'latest' ]+    name: Perl ${{ matrix.perl }} on ${{ matrix.os }}+    steps:+      - uses: actions/checkout@v2+      - name: Set up perl+        uses: shogo82148/actions-setup-perl@v1+        with:+          perl-version: ${{ matrix.perl }}+      - run: 'echo "user DUMMYUSER" > $HOME/.pause'+      - run: 'echo "" > $HOME/pmversions.ini'

Hrm, this looks like a leftover from how I got things to work originally back in 2018. I'll check this and push a fix to this branch.

paultcochrane

comment created time in 21 days

PullRequestReviewEvent

PR closed perlancar/perl-Perinci-CmdLine-Lite

Move DATE and VERSION keywords after use statements

The DATE and VERSION keywords get expanded by Dist::Zilla to our variables after building the dist. With these variables at the top of the file, this made code appear before strictures were turned on and hence caused the author critic tests to fail the strict and warnings checks. Moving the keywords after the list of dists used by the module doesn't change the dist's behaviour but allows the author-critic tests to pass as expected.

If you would like this PR to be changed in any way, please simply let me know and I'll update as appropriate and resubmit it.

+6 -6

3 comments

2 changed files

paultcochrane

pr closed time in 25 days

pull request commentperlancar/perl-Perinci-CmdLine-Lite

Move DATE and VERSION keywords after use statements

Commit b8760bd38b4131b46a23557367ce4903cb428193 has rendered this PR irrelevant as the root cause has now been addressed and dzil test runs with the default Perl::Critic settings.

paultcochrane

comment created time in 25 days

PR closed perlancar/perl-Perinci-CmdLine-Lite

Add initial Travis-CI configuration

This patch implements changes necessary for the dist to be automatically tested on the Travis continuous integration infrastructure.

I'm not 100% happy with this patch as it is (for a few reasons), so please consider this as a starting point for a discussion for how the patch should look in the end: I'm more than happy to update and resubmit the PR after your feedback so that, in the end, the merge for you is as simple and painless as possible.

The main thing I'm not happy about is the number of changes I had to make to the dist.ini in order for this to work in my dev environment and then on Travis. I'm fairly sure that I'm missing something, so please forgive my ignorance.

Here are my notes:

  • it turned out that it wasn't possible to run dzil listdeps --author --missing without specifying the license and copyright_holder fields in dist.ini. It seems that this information is added later as part of a plugin in the author bundle, however it's not clear how that should be set up for someone in a different development environment (e.g. on Travis). Hence the tags were added after the dist name. What would be a more elegant solution to this issue?
  • it was also necessary to install Pod::Weaver::PluginBundle::Author::PERLANCAR before dzil test could be run. This issue could be fixed by adding the line ; authordep Pod::Weaver::PluginBundle::Author::PERLANCAR to the dist.ini (as is recommended for Pod::Weaver plugin dependencies). What I'm not sure about is the location of this line in the dist.ini. At present it's at the end, but maybe you want it closer to the beginning somewhere as that may be more relevant, so that its presence becomes more obvious. What would you like? Or is it ok at the end?
  • the StaticInstall plugin is on by default in the author bundle and this causes dzil test to fail, since it considers the dist to be ineligible for a static installation. The only way I could find to get dzil test to run (without adding a new dependency) was to use @Filter to remove StaticInstall from the author bundle. This enabled the test suite to at least run. Is there a more elegant way to disable StaticInstall in a fresh development environment?
  • the next issue was that the test suite always runs the author tests, even though they aren't specified in the dzil test call. I haven't been able to work out which plugin is responsible for this behaviour, so I haven't been able to turn it off. This is the reason why I can't deliver a Travis config with passing tests (which is my usual goal with such PRs). Is it possible to turn off the author tests, at least temporarily? Presently there are several perlcritic-related tests which cause the test suite to fail when run this way. Or am I just being silly and should run dist build followed by perl Makefile.PL etc?
  • for some reason the required minimum version for CPAN::Meta::Prereqs couldn't be determined in the dzil authordeps and dzil listdeps steps and in order to avoid spurious failures due to an insufficient version, this module is installed explicitly before the other *deps calls.
  • it's only possible to test from Perl 5.14 onwards since Dist::Zilla requires this as a minimum version. Incidentally, Pod::Weaver::Plugin::EnsureUniqueSections requires at least 5.12, but this is covered by the Dist::Zilla minimum version dependency.
  • it was necessary to create an empty ~/pmversions.ini file for dzil test to run. Is there some way one could avoid this? Perhaps one could put the pmversions file in the dist's main directory rather than the user's home directory? Or perhaps is it possible to avoid a total failure if the user doesn't have such a file? Just wondering what the most elegant solution would be in this case.

I think that's about it. Sorry for the long list! Once these points are cleared up, perhaps I could submit a CONTRIBUTING.md file so that future contributors know what they need to have in their local environment before trying to build, test and extend the dist.

+33 -2

4 comments

2 changed files

paultcochrane

pr closed time in 25 days

pull request commentperlancar/perl-Perinci-CmdLine-Lite

Add initial Travis-CI configuration

Closing this PR because it has been superceded by #13.

paultcochrane

comment created time in 25 days

PR opened perlancar/perl-Perinci-CmdLine-Lite

Add initial GitHub Actions configuration

This PR replaces #4 because adding a Travis-CI configuration is no longer relevant.

In order to get automatic building and testing to work on GitHub Actions it was necessary to explicitly define two dependencies as being authordeps, namely IO::Interactive and Pod::Weaver::PluginBundle::Author::PERLANCAR. It turns out that the IO::Interactive and Pod::Weaver::PluginBundle::Author::PERLANCAR packages aren't picked up by dzil authordeps, hence these packages aren't available when one wants to run dzil listdeps and thus the remainder of the dependencies installation fails. By specifying them explicitly in dist.ini allows dzil authordeps to install them which then allows dzil listdeps to work correctly and hence all dependencies are able to be installed.

Note that this PR only adds build and test settings for Linux and MacOS; it wasn't possible to get the Windows configuration to install the authordeps for the distribution and hence a Windows CI/CD config isn't possible at this time.

For future reference, here are the issues I ran into:

  • the shogo82148/actions-setup-perl@v1 action, which provides "latest" versions of Perl for Linux, MacOS and Windows can't build a working Dist::Zilla for some reason. I found that Dist::Zilla could be installed, however none of the dzil subcommands (other than help) worked, hence it wasn't possible to install upstream dependencies or run the test suite.
  • using the system Perl for the Windows platform allowed Dist::Zilla to install correctly, however the XS code required for the upstream dependency B::Hooks::Parser doesn't compile (at least not on the current system Perl provided by GitHub). Consequently the authordeps installation fails and it's therefore not possible to build and test the distribution on Windows. I found this rather odd because B::Hooks::Parser seems to build on Windows without a problem if one considers the its status on CPAN Testers.
+31 -1

0 comment

2 changed files

pr created time in 25 days

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 25c5592ba5beae6e7755f44242c94e8dd59eb825

Add initial GitHub Actions CI/CD configuration This change only adds build and test settings for Linux and MacOS; it wasn't possible to get the Windows configuration to install the authordeps for the distribution and hence a Windows CI/CD config isn't possible at this time. For future reference, here are the issues I ran into: - the `shogo82148/actions-setup-perl@v1` action, which provides "latest" versions of Perl for Linux, MacOS and Windows can't build a working `Dist::Zilla` for some reason. I found that `Dist::Zilla` could be installed, however none of the `dzil` subcommands (other than `help`) worked, hence it wasn't possible to install upstream dependencies or run the test suite. - using the system Perl for the Windows platform allowed `Dist::Zilla` to install correctly, however the XS code required for the upstream dependency `B::Hooks::Parser` doesn't compile (at least not on the current system Perl provided by GitHub). Consequently the authordeps installation fails and it's therefore not possible to build and test the distribution on Windows. I found this rather odd because `B::Hooks::Parser` seems to build on Windows without a problem if one considers the its status on CPAN Testers.

view details

push time in 25 days

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 93dbf90326636d32c92615e6bab51b85f9925ea6

Run author and release tests

view details

push time in 25 days

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha f53abf77f15b4c2ab24c668c7dff12b5678ed5af

Add required authordeps to dist.ini explicitly It turns out that the `IO::Interactive` and `Pod::Weaver::PluginBundle::Author::PERLANCAR` packages aren't picked up by `dzil authordeps`, hence these packages aren't available when one wants to run `dzil listdeps` and thus the remainder of the dependencies installation fails. By specifying them explicitly in `dist.ini` allows `dzil authordeps` to install them which then allows `dzil listdeps` to work correctly and hence automated building and testing of the dist on GitHub Actions now works.

view details

Paul Cochrane

commit sha 4b1b27753afa7386bdaf13818bb2b8d520c2995a

Add initial GitHub Actions CI/CD configuration This change only adds build and test settings for Linux and MacOS; it wasn't possible to get the Windows configuration to install the authordeps for the distribution and hence a Windows CI/CD config isn't possible at this time. For future reference, here are the issues I ran into: - the `shogo82148/actions-setup-perl@v1` action, which provides "latest" versions of Perl for Linux, MacOS and Windows can't build a working `Dist::Zilla` for some reason. I found that `Dist::Zilla` could be installed, however none of the `dzil` subcommands (other than `help`) worked, hence it wasn't possible to install upstream dependencies or run the test suite. - using the system Perl for the Windows platform allowed `Dist::Zilla` to install correctly, however the XS code required for the upstream dependency `B::Hooks::Parser` doesn't compile (at least not on the current system Perl provided by GitHub). Consequently the authordeps installation fails and it's therefore not possible to build and test the distribution on Windows. I found this rather odd because `B::Hooks::Parser` seems to build on Windows without a problem if one considers the its status on CPAN Testers.

view details

push time in 25 days

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 02b8416b8613bb697455ec43b3fb775e622e2564

Remove Windows build ... because the XS code required for B::Hooks::Parser doesn't compile for some reason (and the logs aren't clear as to why) and hence the authordeps installation fails as B::Hooks::Parser is a required upstream dependency. As a consolation, Linux and MacOS work as expected. This issue is weird because B::Hooks::Parser should install properly on Windows because it passes the tests on CPAN Testers.

view details

push time in 25 days

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 2bbb9d72d62c10d5eb1e35610932e13d6aefcc25

Use system perl on Windows

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 967a47b3b694f5ca696f977d49141166e02e4f52

Print dzil help ... for some reason dzil doesn't understand the authordeps command on Windows.

view details

Paul Cochrane

commit sha 620ac13b3c79f568d5b4944ff62085cc6a250d56

Try caching ~/.cpanm

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 4ad50861d2c109552b58dc46f08813a1823c95c3

Check if dzil runs on Windows

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha c266dbb52332d0e24b3ff7c50d37dfab3ff43803

Try building on windows successfully

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 9d85389a13e82e717e7996ce6ded95f2cf98a332

Add required authordeps to dist.ini explicitly It turns out that the `IO::Interactive` and `Pod::Weaver::PluginBundle::Author::PERLANCAR` packages aren't picked up by `dzil authordeps`, hence these packages aren't available for when one wants to run `dzil listdeps` and the remainder of the dependencies installation fails. By specifying them explicitly in `dist.ini` allows `dzil listdeps` to work correctly and hence automated building and testing of the dist now works.

view details

Paul Cochrane

commit sha 5c0956577ffa96bfee6d15ecc9ba1e20018e13c3

Add initial GitHub Actions CI/CD configuration

view details

Paul Cochrane

commit sha 55803491cff0d574e637c8b259ef21e34e13e98e

Remove windows build ... just to see if macos builds ok

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

perlancar (on netbook-dell-xps13)

commit sha b8760bd38b4131b46a23557367ce4903cb428193

Make code comply with default perlcritic settings, remove use of IFBUILT & IFUNBUILT, add some guide comments

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

perlancar (on netbook-dell-xps13)

commit sha 6076543759b1a5e3799516ecf5beccb4f8b996f9

Make code comply with default perlcritic settings, remove use of IFBUILT & IFUNBUILT, add some guide comments

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

perlancar (on netbook-dell-xps13)

commit sha 1b7170eafd75c5ade526714aaba8c038f0bef0c2

Make code comply with default perlcritic settings, remove use of IFBUILT & IFUNBUILT, add some guide comments

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

perlancar (on netbook-dell-xps13)

commit sha b8760bd38b4131b46a23557367ce4903cb428193

Make code comply with default perlcritic settings, remove use of IFBUILT & IFUNBUILT, add some guide comments

view details

Paul Cochrane

commit sha 41aaef0c5ca590194ab61f0ac584aff159d3e677

Add initial GitHub Actions CI/CD configuration

view details

Paul Cochrane

commit sha f1b3e861c4dde9f4ab8436a92dcae17f2f338c3e

Install Dist::Zilla

view details

Paul Cochrane

commit sha 349ccb6a0f18433b62ba94c8e5299653e630e836

Remove --no-skip-satisfied ... as it's not part of cpanm

view details

Paul Cochrane

commit sha ea363e778bf5065848fefecf8a663bb95361dd87

Install IO::Interactive This seems to be missing from the deps installation.

view details

Paul Cochrane

commit sha b45a675e690e9d63c13b3bb3974cd85fdf223de3

Install Pod::Weaver::PluginBundle::Author::PERLANCAR

view details

Paul Cochrane

commit sha cfa055192072636b6dac683e0aab6f90c88ff61c

Run CI on pushes and pull requests

view details

Paul Cochrane

commit sha 885da4f2449df0c6b4f38cc1bf1d9f934b61c963

Remove IO::Interactive and weaver bundle ... they should be installed as part of the authordeps step.

view details

Paul Cochrane

commit sha bd3ff7d5d7bc279dc651b7d7516d7a57a5c3ff3a

For some reason IO::Interactive isn't being installed in authordeps step

view details

Paul Cochrane

commit sha cb72a4efe2400f01bc3d791dcfdaada765264c78

Remove --author option from listdeps ... this might be causing the IO::Interactive module not to be detected at the right time.

view details

Paul Cochrane

commit sha 3adb3d53621e9ba8e493e5f5a321e58a39f9472f

Remove IO::Interactive again

view details

Paul Cochrane

commit sha 3bc20ed0e605c080d7a69317a23b36b6fd530262

Replace ~ with $HOME

view details

Paul Cochrane

commit sha 5a92f373789f25fba1b4c307a89e3a1aa15a6f3a

Try to debug missing IO::Interactive dep issue

view details

Paul Cochrane

commit sha 0108e29b2711f86c4e2f5c2b20fcdeeea714bbd6

Add IO::Interactive to author deps explicitly

view details

Paul Cochrane

commit sha 92a311bd58f830fd070b01394fcc5eacfd31c477

What's the output of just "listdeps" (without --missing)?

view details

Paul Cochrane

commit sha a8e292cf5dbd82e1ba721d51378c8a43080ed378

Fix IO::Interactive authordep

view details

Paul Cochrane

commit sha 0bbfc0832a14fe803474ebbb3f3b432315136086

Add Pod::Weaver::PluginBundle::Author::PERLANCAR to authordeps explicitly ... so that it's available when running `dzil listdeps`.

view details

Paul Cochrane

commit sha 6fbf5abaf9cdbdfc4cc7074532c82786db5c2bd4

Remove debugging code

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha cd0e7243ba9a288eed493879286f30cd0fadbb38

Fix author-critic errors

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 271d6899738cf58e7191b495abf0dfb406027d0e

Add Pod::Weaver::PluginBundle::Author::PERLANCAR to authordeps explicitly ... so that it's available when running `dzil listdeps`.

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 432852f207a6d00e2dea767a2a703cba34f87d1c

Fix IO::Interactive authordep

view details

push time in a month

push eventpaultcochrane/perl-Perinci-CmdLine-Lite

Paul Cochrane

commit sha 0737902a794c6aeb3e7e721b7865dc3e1a0e005a

What's the output of just "listdeps" (without --missing)?

view details

push time in a month