{"id":22036202,"url":"https://github.com/panel-extensions/copier-template-panel-extension","last_synced_at":"2026-01-18T04:21:45.194Z","repository":{"id":264078005,"uuid":"892297281","full_name":"panel-extensions/copier-template-panel-extension","owner":"panel-extensions","description":"A copier template for creating Panel extensions, leveraging the pixi package manager to simplify setup and management.","archived":false,"fork":false,"pushed_at":"2025-07-04T03:55:35.000Z","size":208,"stargazers_count":9,"open_issues_count":7,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-07-23T17:47:07.601Z","etag":null,"topics":["app","components","extension","panel","python","web"],"latest_commit_sha":null,"homepage":"","language":"Jinja","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/panel-extensions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-11-21T21:15:07.000Z","updated_at":"2025-07-04T03:55:39.000Z","dependencies_parsed_at":"2025-01-11T03:27:04.639Z","dependency_job_id":"905b84d5-e2e5-4faf-a88f-9dabbb005c8f","html_url":"https://github.com/panel-extensions/copier-template-panel-extension","commit_stats":null,"previous_names":["panel-extensions/copier-template-panel-extension"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/panel-extensions/copier-template-panel-extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panel-extensions%2Fcopier-template-panel-extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panel-extensions%2Fcopier-template-panel-extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panel-extensions%2Fcopier-template-panel-extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panel-extensions%2Fcopier-template-panel-extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/panel-extensions","download_url":"https://codeload.github.com/panel-extensions/copier-template-panel-extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/panel-extensions%2Fcopier-template-panel-extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28529501,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-18T00:39:45.795Z","status":"online","status_checked_at":"2026-01-18T02:00:07.578Z","response_time":98,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","components","extension","panel","python","web"],"created_at":"2024-11-30T11:00:33.023Z","updated_at":"2026-01-18T04:21:45.178Z","avatar_url":"https://github.com/panel-extensions.png","language":"Jinja","funding_links":[],"categories":["Development"],"sub_categories":[],"readme":"# Panel Extension Copier Template\n\nA [*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.\n\nThis template comes preconfigured with essential tools and best practices to help you develop, document, and distribute high-quality Panel-based applications or extensions.\n\n* [X] **Hatch-based Packaging**: Managed by [Hatch](https://hatch.pypa.io/latest/install/) for streamlined dependency management and build processes.\n* [X] **Linting and Code Quality with [`ruff`](https://github.com/charliermarsh/ruff)**: A fast and configurable linting tool for maintaining consistent code style.\n* [X] **Testing with [`pytest`](https://github.com/pytest-dev/pytest)**: Includes support for async tests and thorough configuration for reliable testing.\n* [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.\n* [X] **GitHub Actions CI/CD**: Preconfigured workflows for automated testing, building, and publishing.\n* [X] **Pixi Package Management**: Integrated with Pixi for efficient and reproducible environment management.\n* [X] **Update Flexibility**: Easily update your project to newer template versions with minimal disruption.\n* [X] **BSD License**: Uses the OSI-approved BSD license, ideal for open-source projects.\n\nTo install and get started with Pixi, please refer to the [Pixi documentation](https://pixi.sh).\n\n## Getting Started\n\n### Step 1 - Create from Template\n\nTo create a new Panel extension:\n\n```bash\npixi exec --spec copier --spec ruamel.yaml -- copier copy --trust https://github.com/panel-extensions/copier-template-panel-extension \u003cpanel-extension-name\u003e\n```\n\nOr, to use a specific branch of `copier-template-panel-extension`, additionally specify `vcs-ref`:\n\n```bash\npixi exec --spec copier --spec ruamel.yaml -- copier copy --trust https://github.com/panel-extensions/copier-template-panel-extension \u003cpanel-extension-name\u003e --vcs-ref \u003cbranch_name\u003e\n```\n\n### Step 2 - Create and Add Remote Repository\n\nGo to Github and create your repository with the \u003cpanel-extension-name\u003e. Then set the remote:\n\n```bash\ngit remote add origin https://github.com/\u003cgithub-user\u003e/\u003cpanel-extension-name\u003e.git\n```\n\nThe push your new repository\n\n```bash\npre-commit install \u0026\u0026 git push --set-upstream origin main\n```\n\n### Step 3 - Set Up GitHub Pages Docs\n\nEnable GitHub Pages through **Settings \u003e Pages** on the GitHub toolbar:\n\n\u003cimg width=\"710\" alt=\"image\" src=\"assets/review-feedback.png\"\u003e\n\nOn your GitHub repo's **About** section in the sidebar, be sure to add the link to your docs page by toggling the checkbox:\n\n![image](https://github.com/user-attachments/assets/69d70fee-ec96-47bb-87df-08f866b61f5f)\n\n`https://\u003cgithub-user\u003e.github.io/\u003cpanel-extension-name\u003e/`\n\nIf your docs page is missing a sidebar, remember to add imports to `src/__init__.py` and include them in `__all__`.\n\n### Step 4 - Link to PyPI\n\nHead over to [PyPI](https://pypi.org/manage/account/publishing) and fill out the form:\n\n\u003cimg width=\"797\" alt=\"image\" src=\"https://github.com/user-attachments/assets/69ea7626-a2df-4fbe-a1d4-d20eb5e0cdd7\"\u003e\n\n### Step 5 - Release with a Tag\n\nOnce you've populated the template, you can release to PyPI by creating a tag!\n\n![image](https://github.com/user-attachments/assets/970fe011-2ca4-4018-b541-478ac76d3185)\n\n![image](https://github.com/user-attachments/assets/374cd1ec-b1ea-4aef-b1a7-b2818660b0e8)\n\n### Step 6 - Customize the Docs\n\nThe 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.\n\n## Updating the Template\n\nTo update to the latest template version run:\n\n```bash\npixi exec --spec copier --spec ruamel.yaml -- copier update --defaults --trust\n```\n\nNote: `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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanel-extensions%2Fcopier-template-panel-extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpanel-extensions%2Fcopier-template-panel-extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpanel-extensions%2Fcopier-template-panel-extension/lists"}