27 Commits

Author SHA1 Message Date
4456f21f90 0.4.0
Automatically generated by python-semantic-release
2025-05-12 08:28:09 +00:00
9275f19a26 feat: ask whether to make commit
All checks were successful
release / Release (push) Successful in 14s
2025-05-12 10:27:35 +02:00
7f61a55338 0.3.6
Automatically generated by python-semantic-release
2025-05-09 12:00:41 +00:00
100bea97d3 fix: commit message on update
All checks were successful
release / Release (push) Successful in 14s
2025-05-09 14:00:14 +02:00
86801fa0db 0.3.5
Automatically generated by python-semantic-release
2025-05-09 09:57:56 +00:00
8d33e8c2eb fix: exclude copier.yml from template
All checks were successful
release / Release (push) Successful in 14s
2025-05-09 11:57:38 +02:00
94ab73fd13 0.3.4
Automatically generated by python-semantic-release
2025-05-09 09:28:11 +00:00
46a2a9d214 fix: checkout action in release workflow
All checks were successful
release / Release (push) Successful in 14s
2025-05-09 11:27:54 +02:00
c807b4a0dc fix: remove unused filter
Some checks failed
release / Release (push) Failing after 41s
2025-05-08 14:19:11 +02:00
3857dda5cf 0.3.3
Automatically generated by python-semantic-release
2025-05-07 12:26:38 +00:00
b77ba350c3 fix: exclude .git from template
All checks were successful
release / Release (push) Successful in 15s
2025-05-07 14:26:14 +02:00
d29578f673 0.3.2
Automatically generated by python-semantic-release
2025-05-07 11:43:54 +00:00
53f243e455 fix: run compiler if there are ui files
All checks were successful
release / Release (push) Successful in 15s
2025-05-07 13:42:38 +02:00
b2a3412139 0.3.1
Automatically generated by python-semantic-release
2025-05-06 14:44:43 +00:00
e2b1db4544 fix: modules in the right place
All checks were successful
release / Release (push) Successful in 15s
2025-05-06 16:43:41 +02:00
65d7479ed7 0.3.0
Automatically generated by python-semantic-release
2025-05-06 14:40:16 +00:00
70e8ac0891 feat: add missing modules
All checks were successful
release / Release (push) Successful in 14s
2025-05-06 16:39:32 +02:00
b64cbf7956 0.2.3
Automatically generated by python-semantic-release
2025-05-06 14:35:26 +00:00
b2ed638123 fix: allow empty widget list
All checks were successful
release / Release (push) Successful in 14s
2025-05-06 16:34:37 +02:00
adbefb40f1 0.2.2
Automatically generated by python-semantic-release
2025-05-06 13:53:36 +00:00
4b44b7b599 fix: exclude changelog from template
All checks were successful
release / Release (push) Successful in 14s
2025-05-06 15:52:46 +02:00
0bc60be87a 0.2.1
Automatically generated by python-semantic-release
2025-05-06 13:50:11 +00:00
3641451d19 fix: ui xml template
All checks were successful
release / Release (push) Successful in 15s
2025-05-06 15:49:30 +02:00
c82792ace6 0.2.0
Automatically generated by python-semantic-release
2025-05-06 13:34:03 +00:00
45a03e9dec fix: don't include default test widgets
All checks were successful
release / Release (push) Successful in 15s
2025-05-06 15:27:43 +02:00
56b58f58db feat: add plugin widget template 2025-05-06 15:26:52 +02:00
ea95f2d970 feat: add release action
All checks were successful
release / Release (push) Successful in 15s
2025-05-06 15:18:11 +02:00
10 changed files with 289 additions and 2 deletions

View File

@ -0,0 +1,37 @@
[tool.semantic_release.branches.main]
match = "(main)"
prerelease = false
[tool.semantic_release.commit_author]
env = "GIT_COMMIT_AUTHOR"
default = "semantic-release <semantic-release>"
[tool.semantic_release.commit_parser_options]
allowed_tags = [
"build",
"chore",
"ci",
"docs",
"feat",
"fix",
"perf",
"style",
"refactor",
"test",
]
minor_tags = ["feat"]
patch_tags = ["fix", "perf"]
default_bump_level = 0
[tool.semantic_release.remote]
name = "origin"
type = "gitea"
domain = "https://gitea.psi.ch"
ignore_token_for_push = false
[tool.semantic_release.remote.token]
env = "GITHUB_TOKEN"
[tool.semantic_release.publish]
dist_glob_patterns = ["dist/*"]
upload_to_vcs_release = true

View File

@ -0,0 +1,24 @@
name: release
on:
push:
branches:
- main
permissions:
contents: read
jobs:
release:
name: Release
runs-on: ubuntu-latest
permissions:
contents: write # to be able to publish a GitHub release
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: run_release
env:
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
run: pipx run python-semantic-release -c .gitea/semantic_release.toml version

129
CHANGELOG.md Normal file
View File

@ -0,0 +1,129 @@
# CHANGELOG
## v0.4.0 (2025-05-12)
### Features
- Ask whether to make commit
([`9275f19`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/9275f19a263d8386c4e29efc28803e3f8ff67a44))
## v0.3.6 (2025-05-09)
### Bug Fixes
- Commit message on update
([`100bea9`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/100bea97d381ec8ffc03f1f317d29d47ca1ca5dc))
## v0.3.5 (2025-05-09)
### Bug Fixes
- Exclude copier.yml from template
([`8d33e8c`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/8d33e8c2eb1dd1e9ac4f34cfbcf0e1fad73792e1))
## v0.3.4 (2025-05-09)
### Bug Fixes
- Checkout action in release workflow
([`46a2a9d`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/46a2a9d21451c4edaac78c468d0fa67a38f7d0b4))
- Remove unused filter
([`c807b4a`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/c807b4a0dc508b8813422eaf24949d97f12c0ed8))
## v0.3.3 (2025-05-07)
### Bug Fixes
- Exclude .git from template
([`b77ba35`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/b77ba350c37dc466d87ac885677a45b16ef0274d))
## v0.3.2 (2025-05-07)
### Bug Fixes
- Run compiler if there are ui files
([`53f243e`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/53f243e4555779d95b13101eaf6596be392421a0))
## v0.3.1 (2025-05-06)
### Bug Fixes
- Modules in the right place
([`e2b1db4`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/e2b1db45442eb8dff410477273dace5e55669bbd))
## v0.3.0 (2025-05-06)
### Features
- Add missing modules
([`70e8ac0`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/70e8ac0891e234ddd9e5e546072f5e13c4aea9e1))
## v0.2.3 (2025-05-06)
### Bug Fixes
- Allow empty widget list
([`b2ed638`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/b2ed6381237632de6225b1a7b18798388bf83893))
## v0.2.2 (2025-05-06)
### Bug Fixes
- Exclude changelog from template
([`4b44b7b`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/4b44b7b599c3f27af153120a8529a20d164393f3))
## v0.2.1 (2025-05-06)
### Bug Fixes
- Ui xml template
([`3641451`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/3641451d1960bca1e1b64d016d4669f053519fc6))
## v0.2.0 (2025-05-06)
### Bug Fixes
- Don't include default test widgets
([`45a03e9`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/45a03e9dec15dd988f229296f360b764634b6947))
### Features
- Add plugin widget template
([`56b58f5`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/56b58f58dbede707ee574fc0cc682b0b3723a11c))
- Add release action
([`ea95f2d`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/ea95f2d97002e39dbaa9aec1d48b266b7a019b12))
## v0.1.0 (2025-05-02)
### Bug Fixes
- Add branch input to CI template for child pipeline
([`8d13fbd`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/8d13fbdcda329f0361e3fcd58a6026a938325f23))
- Fix auto update entry point for v2
([`2270c61`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/2270c61e69b2943444eec1158804b9b1598d0a02))
### Build System
- Add copier as dev dependency
([`449dbbc`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/449dbbce49f398eb5df44d31e13ec32234284f70))
### Refactoring
- Make a copier template from BEC plugin files
([`a389984`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/a389984d25daf978cf6ad1ff3a8664e1d656a6dd))

View File

@ -1,3 +1,13 @@
_exclude:
- ".gitea/"
- ".git/"
- "CHANGELOG.md"
- "copier.yml"
# imports
_jinja_extensions:
- bec_lib.utils.copier_jinja_filters.CopierFilters
# predefined values # predefined values
# make sure these have 'when: false' so that the questions are not asked and the items are not saved in answers.yml # make sure these have 'when: false' so that the questions are not asked and the items are not saved in answers.yml
@ -18,7 +28,72 @@ project_name:
type: str type: str
help: What is your project name? help: What is your project name?
make_commit:
type: bool
help: would you like to automatically stage and commit the changes?
default: true
widget_plugins_input:
# Defines the list of plugin widgets, following:
# - name: widget name in snake case
# use_ui: whether to generate a .ui file
type: yaml
multiline: true
default: []
# derived from questions: single point of configuration for plugin class names etc.
widget_plugins:
type: yaml
multiline: true
default: >
{% if not widget_plugins_input %} []
{% else %}
{% for wp in widget_plugins_input %}
- module: {{ wp.name }} # Module name for the whole plugin
class: {{ wp.name | snake_to_pascal }} # Class name for the plugin widget
use_ui: {{ wp.use_ui }} # Whether to create a .ui file and import it
{% if wp.use_ui %}
ui_module: {{ wp.name }}_ui # Module name for the compiled python UI
ui_class: Ui_{{ wp.name | snake_to_pascal }} # Class name for the compiled python UI
{% endif %}
{% endfor %}
{% endif %}
when: false
# other configuration # other configuration
ui_fileinfo: # would like to save this programatically when generated but don't see how
type: yaml
multiline: true
default: >
{% if not widget_plugins %} []
{% else %}
{% for wp in widget_plugins %}
{% if wp.use_ui %}
- ui_file: {{ project_name }}/bec_widgets/widgets/{{ wp.module }}/{{ wp.module }}.ui
out_file: {{ project_name }}/bec_widgets/widgets/{{ wp.module }}/{{ wp.ui_module }}.py
{% endif %}
{% endfor %}
{% endif %}
when: false
_tasks: _tasks:
- "git init --initial-branch=main" - "{% if _copier_operation == 'copy' %} git init --initial-branch=main {% endif %}"
- >
{% if not ui_fileinfo %} echo "No .ui files to process"
{% else %}
{% for info in ui_fileinfo %}pyside6-uic {{ info.ui_file }} -o {{ info.out_file }};
{% endfor %}
{% endif %}
- >
{% if make_commit %}
{% if _copier_operation == 'copy' %}
git add -A; git commit -a -m 'Init repo {{ project_name }} at template version {{ _commit }}'
{% else %}
git add -A; git commit -a -m 'Update repo with template version {{ _commit }}'
{% endif %}
{% else %}
echo "Autocommit disabled, leaving repo dirty"
{% endif %}

View File

@ -1,2 +1,5 @@
# Changes here will be overwritten by Copier! # Do not edit this file!
# It is needed to track the repo template version, and editing may break things.
# This file will be overwritten by copier on template updates.
{{ _copier_answers|to_nice_yaml -}} {{ _copier_answers|to_nice_yaml -}}

View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>{{ widget_plugin.class }}</class>
<widget class="QWidget" name="{{ widget_plugin.module | snake_to_camel }}">
</widget>
<resources />
<connections />
</ui>

View File

@ -0,0 +1,11 @@
from qtpy.QtWidgets import QWidget
from bec_widgets.utils.bec_widget import BECWidget
{% if widget_plugin.use_ui %}
from {{ project_name }}.bec_widgets.widgets.{{ widget_plugin.module }}.{{ widget_plugin.ui_module }} import {{ widget_plugin.ui_class }}
{% endif %}
class {{ widget_plugin.class }}(BECWidget, QWidget{% if widget_plugin.use_ui %}, {{ widget_plugin.ui_class }}{% endif %}):
def __init__(self, parent=None):
super().__init__(parent=parent)

View File

View File