Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Link to VCS

Each distribution uploaded to CPAN includes some meta-data. This meta-data can contain a link to the public version control system (VCS) of the project. (e.g. on GitHub, GitLab, or some other platform.

Including this link in the meta-data of the project will help potential contributors to find the repository and to contribute to the project.

If the repository field is included in the distribution then MetaCPAN will display in in the side-bar of the project with a title Repository.

This meta-data is included in the META.json file which is part of the zip-file uploaded to CPAN.

The META.json file is generated by the package management system (Makefile.PL, Build.PL, or Dist::Zilla) when the distribution is released.

  1. Find a distribution that does not have this link.
    • The CPAN Digger has a list of recently uploaded distributions. There is a column called “VCS”. If it has “Add repo” then the repository information is missing.
  2. Try to locate the actual repository.
    • Check other projects of the cpan author. If one of those has the repository link“ then you might find the repository of this project next to the other one.
    • Search the name of the project or the name of the author on GitHub and on GitLab.
    • Send an email to the author asking if the project has a public VCS.
  3. Clone the project to your disk.
  4. Run the commands to that are needed to release the project. Observe the META.json file still missing the data.
  5. Create a branch.
  6. Edit Makefile.PL, Build.PL, dist.ini as explained here
  7. Run the project release commands again. Observe the META.json file having the correct data.
  8. Commit the changes.
  9. On GitHub (or GitLab) create a fork.
  10. Locally map the fork to be another remote of the project.
  11. Push out the changes to the forked remote.
  12. Go to GitHub (or GitLab) and send a Pull-Request (Merge-Request).