Compare commits
35 Commits
v0.1.0
...
fix/startu
Author | SHA1 | Date | |
---|---|---|---|
d96c323ee3 | |||
6730567526 | |||
c9c2743c08 | |||
1a4bbe6582 | |||
39bbd5e79c | |||
f0eea4a9fb | |||
8799ea99c4 | |||
79845f7697 | |||
4456f21f90 | |||
9275f19a26 | |||
7f61a55338 | |||
100bea97d3 | |||
86801fa0db | |||
8d33e8c2eb | |||
94ab73fd13 | |||
46a2a9d214 | |||
c807b4a0dc | |||
3857dda5cf | |||
b77ba350c3 | |||
d29578f673 | |||
53f243e455 | |||
b2a3412139 | |||
e2b1db4544 | |||
65d7479ed7 | |||
70e8ac0891 | |||
b64cbf7956 | |||
b2ed638123 | |||
adbefb40f1 | |||
4b44b7b599 | |||
0bc60be87a | |||
3641451d19 | |||
c82792ace6 | |||
45a03e9dec | |||
56b58f58db | |||
ea95f2d970 |
41
.gitea/semantic_release.toml
Normal file
41
.gitea/semantic_release.toml
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
[tool.semantic_release.branches.main]
|
||||||
|
match = "(main)"
|
||||||
|
prerelease = false
|
||||||
|
|
||||||
|
[tool.semantic_release.branches.test]
|
||||||
|
match = "(test_release)"
|
||||||
|
prerelease = true
|
||||||
|
|
||||||
|
[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 = true
|
||||||
|
|
||||||
|
[tool.semantic_release.remote.token]
|
||||||
|
env = "GITHUB_TOKEN"
|
||||||
|
|
||||||
|
[tool.semantic_release.publish]
|
||||||
|
dist_glob_patterns = ["dist/*"]
|
||||||
|
upload_to_vcs_release = true
|
26
.gitea/workflows/release.yml
Normal file
26
.gitea/workflows/release.yml
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
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
|
||||||
|
ssh-key: ${{ secrets.SEMANTIC_RELASE_SSH_KEY }}
|
||||||
|
ssh-known-hosts: ${{ secrets.SSH_KNOWN_HOSTS }}
|
||||||
|
- name: run_release
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ secrets.GITEA_TOKEN }}
|
||||||
|
run: pipx run python-semantic-release -c .gitea/semantic_release.toml version
|
157
CHANGELOG.md
Normal file
157
CHANGELOG.md
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
# CHANGELOG
|
||||||
|
|
||||||
|
|
||||||
|
## v1.0.0 (2025-05-12)
|
||||||
|
|
||||||
|
### Continuous Integration
|
||||||
|
|
||||||
|
- Add ssh key for semantic-release
|
||||||
|
([`8799ea9`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/8799ea99c4c54d64e408ccdd520d3e2a43193045))
|
||||||
|
|
||||||
|
- Add ssh known hosts
|
||||||
|
([`f0eea4a`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/f0eea4a9fb75cb52c84a22d6e982d7e82111f4d9))
|
||||||
|
|
||||||
|
- Fix release settings and add prerelease option
|
||||||
|
([`1a4bbe6`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/1a4bbe658268008f416100c5bd9945b7a5c9010d))
|
||||||
|
|
||||||
|
- Use ssh for release push
|
||||||
|
([`39bbd5e`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/39bbd5e79c97e4ebb87a4a9393ed1d84416ce0af))
|
||||||
|
|
||||||
|
### Features
|
||||||
|
|
||||||
|
- Move template into subdirectory
|
||||||
|
([`79845f7`](https://gitea.psi.ch/bec/bec_plugin_copier_template/commit/79845f76978e37d467db3a2338916d3ee9fb08f3))
|
||||||
|
|
||||||
|
BREAKING CHANGE: reorganises repo, arbitrary choice for v1 release
|
||||||
|
|
||||||
|
### Breaking Changes
|
||||||
|
|
||||||
|
- Reorganises repo, arbitrary choice for v1 release
|
||||||
|
|
||||||
|
|
||||||
|
## 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))
|
89
copier.yml
89
copier.yml
@ -1,3 +1,10 @@
|
|||||||
|
# repo config
|
||||||
|
_subdirectory: template
|
||||||
|
|
||||||
|
# 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 +25,87 @@ 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 %}
|
||||||
|
echo "making autocommit in $(pwd)";
|
||||||
|
{% if _copier_operation == 'copy' %}
|
||||||
|
git add -A; git commit -a -m 'Init repo {{ project_name }} at template version {{ _commit }}'
|
||||||
|
{% endif %}
|
||||||
|
{% else %}
|
||||||
|
echo "Autocommit disabled, leaving repo dirty"
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
_migrations:
|
||||||
|
- stage: after
|
||||||
|
command: >
|
||||||
|
{% if make_commit %}
|
||||||
|
echo "making autocommit in $(pwd)";
|
||||||
|
{% 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 %}
|
||||||
|
- stage: after
|
||||||
|
command: pre-commit install
|
0
.gitignore → template/.gitignore
vendored
0
.gitignore → template/.gitignore
vendored
5
template/{{_copier_conf.answers_file}}.jinja
Normal file
5
template/{{_copier_conf.answers_file}}.jinja
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# 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 -}}
|
@ -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>
|
@ -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)
|
0
template/{{project_name}}/devices/__init__.py
Normal file
0
template/{{project_name}}/devices/__init__.py
Normal file
0
template/{{project_name}}/file_writer/__init__.py
Normal file
0
template/{{project_name}}/file_writer/__init__.py
Normal file
0
template/{{project_name}}/scans/__init__.py
Normal file
0
template/{{project_name}}/scans/__init__.py
Normal file
0
template/{{project_name}}/services/__init__.py
Normal file
0
template/{{project_name}}/services/__init__.py
Normal file
@ -1,2 +0,0 @@
|
|||||||
# Changes here will be overwritten by Copier!
|
|
||||||
{{ _copier_answers|to_nice_yaml -}}
|
|
Reference in New Issue
Block a user