Create an issue at the `legacy monolithic Pelican Plugins repository`_ and ask a maintainer to create a corresponding new repository under the new `Pelican Plugins organization`_ and invite you to join it.
Create an issue at the `legacy monolithic Pelican Plugins repository`_, include a link to the personal repository, and ask a maintainer for assistance with the next steps.
Filter existing commits related to the plugin via `git-filter-repo` (which on macOS can be installed via `brew install git-filter-repo`, or if you have Pipx installed, via `pipx install git-filter-repo`)::
Once a maintainer has created the new (empty) repository and pushed existing commits into a new `migrate` branch, clone the new repository to your workstation and switch to that branch::
Review the `Pelican Plugin CookieCutter Template docs`_ and use the template to generate a fresh project. Here we'll use the Pipx-based method to ephemerally invoke CookieCutter::
pipx run cookiecutter https://github.com/getpelican/cookiecutter-pelican-plugin
Guidance follows for answering the Cookiecutter questions you will be asked. Except for `plugin_name`, `description`, `authors`, `keywords`, `license`, and `dev_status`, you should be able to just hit the `Return` key to accept the provided default value.
*`plugin_name`: For multiple-word names, put a space in between words and use title case. Should not contain the word “pelican”. Ex: `Related Posts`
*`repo_name`: For multiple-word names, use a hyphen — not an underscore. Ex: `related-posts`
*`package_name`: Hyphens should be converted to underscores here. Ex: `related_posts`
*`distribution_name`: Prefixed with `pelican-`. Ex: `pelican-related-posts`
*`version`: Leave as `0.0.0` default value, which will be incremented automatically via AutoPub upon initial distribution release.
*`authors`: Review source code and commit history to determine primary author, if any. Ask a maintainer if not clear. Ex: `"Jane Smith <jane@example.com>", "Jack Jones <jack@example.com>"`
*`keywords`: Add relevant keywords, including `"pelican"` and `"plugin"`. Ex: `"pelican", "plugin", "table", "contents"`
*`readme`: Name of the README file. Ex: `README.md`
*`contributing`: Name of the README file. Ex: `CONTRIBUTING.md`
*`license`: Choose the same license as the original plugin.
*`repo_url`: URL to the repository. Ex: `https://github.com/pelican-plugins/related-posts`
Add any plugin dependencies to the `pyproject.toml` file via `poetry add […]` and adjust them in `pyproject.toml` to ensure they are in alphabetical order.
Compare the old and new README files, merging them such that the relevant parts of the template-generated README are present — particularly the build/PyPI status badges and the **Installation** and **Contributing** sections.