Skip to content

metacpan/metacpan-web

Folders and files

NameName
Last commit message
Last commit date
Apr 7, 2025
May 16, 2024
May 15, 2024
Mar 12, 2025
Mar 11, 2025
Mar 12, 2025
Jun 29, 2017
May 21, 2024
May 15, 2024
May 18, 2024
Apr 28, 2021
May 23, 2021
May 21, 2024
Oct 28, 2024
May 21, 2024
May 15, 2024
Aug 5, 2024
May 15, 2024
Mar 11, 2025
May 26, 2024
May 15, 2024
Sep 2, 2024
May 14, 2021
Apr 6, 2025
Oct 28, 2024
May 22, 2024
Apr 15, 2019
Jul 14, 2020
Dec 21, 2024
Mar 24, 2025
Mar 24, 2025
Apr 30, 2023
May 22, 2024
Oct 10, 2024
May 15, 2024

Repository files navigation

test Coverage Status

Getting Started

We strongly recommend using metacpan-docker. This will give you a virtual machine already configured and ready to start developing on.

If you prefer not to use Docker, the following commands will get you started:

Installing Manually

carton install
npm install
export PATH="$(realpath ./node_modules/.bin):$PATH"

Building Static Assets

npm run build

Without running this command you may get errors about a missing "asset map".

Installing on macOS

If you like, you can install carton and cmark via Homebrew:

brew install carton cmark

On an ARM Mac you may need to install CommonMark in the following way:

LIBRARY_PATH=/opt/homebrew/lib CPATH=/opt/homebrew/include cpm install -g CommonMark

If your carton install is having issues with SSL-related modules, you may need to use an OPENSSL_PREFIX. Something like:

OPENSSL_PREFIX="/usr/local/Cellar/openssl@1.1/1.1.1q" carton install

You may need to check /usr/local/Cellar/openssl@1.1 to find the latest installed path on your system.

Running Tests

You can use the supplied wrapper around prove to run tests:

./bin/prove t

To run the tests in parallel, add -j8 (or however many CPUs you have) to the prove command.

Running the App

carton exec plackup -p 5001 -r

If you'd like to use Gazelle rather than the default Plack server:

carton exec plackup -p 5001 -s Gazelle -r

Local Git and testing considerations

You will want to set up the supplied pre-commit Git hook like so:

./git/setup.sh

which causes precious to be run before each commit. You can manually run this with precious path/to/file

Local Configuration Changes

The back end defaults to fastapi.metacpan.org. Running a local API server is optional and not required to hack on the front end. The address to the API being used can be changed in the metacpan_web.conf file. Ideally you would create a new file called metacpan_web_local.conf that contains

api                 http://127.0.0.1:5000

which will be loaded on top of the existing config file.

Compatibility Notes

On Win32 (and possibly also on other platforms) when using Perl < 5.12, the server started with plackup will generate warnings relating to date parsing. These are caused by Plack due to a bug in the gmtime implementation and can be removed by upgrading to Perl 5.12.