https://github.com/panel-extensions/copier-template-panel-extension
A copier template for creating Panel extensions, leveraging the pixi package manager to simplify setup and management.
https://github.com/panel-extensions/copier-template-panel-extension
app components extension panel python web
Last synced: 5 months ago
JSON representation
A copier template for creating Panel extensions, leveraging the pixi package manager to simplify setup and management.
- Host: GitHub
- URL: https://github.com/panel-extensions/copier-template-panel-extension
- Owner: panel-extensions
- Created: 2024-11-21T21:15:07.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-07-04T03:55:35.000Z (12 months ago)
- Last Synced: 2025-07-23T17:47:07.601Z (11 months ago)
- Topics: app, components, extension, panel, python, web
- Language: Jinja
- Homepage:
- Size: 203 KB
- Stars: 9
- Watchers: 3
- Forks: 1
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Panel Extension Copier Template
A [*Copier*](https://copier.readthedocs.io/en/stable/) template for creating Panel extensions, leveraging the [Pixi](https://github.com/prefix-dev/pixi) package manager to simplify setup and management.
This template comes preconfigured with essential tools and best practices to help you develop, document, and distribute high-quality Panel-based applications or extensions.
* [X] **Hatch-based Packaging**: Managed by [Hatch](https://hatch.pypa.io/latest/install/) for streamlined dependency management and build processes.
* [X] **Linting and Code Quality with [`ruff`](https://github.com/charliermarsh/ruff)**: A fast and configurable linting tool for maintaining consistent code style.
* [X] **Testing with [`pytest`](https://github.com/pytest-dev/pytest)**: Includes support for async tests and thorough configuration for reliable testing.
* [X] **Documentation Generation**: Leverages [Material for MkDocs](https://squidfunk.github.io/mkdocs-material/) for beautiful documentation and [mkdocstrings](https://mkdocstrings.github.io/) for automatic API documentation.
* [X] **GitHub Actions CI/CD**: Preconfigured workflows for automated testing, building, and publishing.
* [X] **Pixi Package Management**: Integrated with Pixi for efficient and reproducible environment management.
* [X] **Update Flexibility**: Easily update your project to newer template versions with minimal disruption.
* [X] **BSD License**: Uses the OSI-approved BSD license, ideal for open-source projects.
To install and get started with Pixi, please refer to the [Pixi documentation](https://pixi.sh).
## Getting Started
### Step 1 - Create from Template
To create a new Panel extension:
```bash
pixi exec --spec copier --spec ruamel.yaml -- copier copy --trust https://github.com/panel-extensions/copier-template-panel-extension
```
Or, to use a specific branch of `copier-template-panel-extension`, additionally specify `vcs-ref`:
```bash
pixi exec --spec copier --spec ruamel.yaml -- copier copy --trust https://github.com/panel-extensions/copier-template-panel-extension --vcs-ref
```
### Step 2 - Create and Add Remote Repository
Go to Github and create your repository with the . Then set the remote:
```bash
git remote add origin https://github.com//.git
```
The push your new repository
```bash
pre-commit install && git push --set-upstream origin main
```
### Step 3 - Set Up GitHub Pages Docs
Enable GitHub Pages through **Settings > Pages** on the GitHub toolbar:

On your GitHub repo's **About** section in the sidebar, be sure to add the link to your docs page by toggling the checkbox:

`https://.github.io//`
If your docs page is missing a sidebar, remember to add imports to `src/__init__.py` and include them in `__all__`.
### Step 4 - Link to PyPI
Head over to [PyPI](https://pypi.org/manage/account/publishing) and fill out the form:

### Step 5 - Release with a Tag
Once you've populated the template, you can release to PyPI by creating a tag!


### Step 6 - Customize the Docs
The docs page is served with [`mkdocstrings`](https://mkdocstrings.github.io/python/) and can be configured in the root's `mkdocs.yml` file. See [mkdocstrings usage](https://mkdocstrings.github.io/python/usage/) to see available options.
## Updating the Template
To update to the latest template version run:
```bash
pixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust
```
Note: `copier` will show `Conflict` for files with manual changes during an update. This is normal. As long as there are no merge conflict markers, all patches applied cleanly.