From a5200c8d9be2a908538117b511490594339cccfc Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Mon, 14 Sep 2026 16:44:28 +0500 Subject: [PATCH 1/4] feat(git): adds issue templates --- .gitea/ISSUE_TEMPLATE/bug_report.yaml | 126 ++++++++++++++++ .gitea/ISSUE_TEMPLATE/feature_request.yaml | 129 +++++++++++++++++ .gitea/ISSUE_TEMPLATE/refactor.yaml | 160 +++++++++++++++++++++ 3 files changed, 415 insertions(+) create mode 100644 .gitea/ISSUE_TEMPLATE/bug_report.yaml create mode 100644 .gitea/ISSUE_TEMPLATE/feature_request.yaml create mode 100644 .gitea/ISSUE_TEMPLATE/refactor.yaml diff --git a/.gitea/ISSUE_TEMPLATE/bug_report.yaml b/.gitea/ISSUE_TEMPLATE/bug_report.yaml new file mode 100644 index 0000000..ac3c2ff --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/bug_report.yaml @@ -0,0 +1,126 @@ +name: "Bug Report" +description: "Report a bug or unexpected behavior to help us improve" +title: "[BUG]: " +labels: ["bug"] +body: + - type: markdown + attributes: + value: | + ## โš ๏ธ Before You Begin + Please ensure you have: + - [ ] Searched existing issues to avoid duplicates + - [ ] Confirmed this is a bug, not a question or configuration problem + + - type: textarea + id: description + attributes: + label: "๐Ÿ“‹ Description" + description: "Provide a clear and concise description of the bug" + placeholder: "What happened? What did you expect to happen instead?" + validations: + required: true + + - type: textarea + id: reproduction + attributes: + label: "๐Ÿ” Steps to Reproduce" + description: "Step-by-step instructions to reproduce the issue" + placeholder: | + 1. Go to '...' + 2. Click on '....' + 3. Scroll down to '....' + 4. See error + validations: + required: true + + - type: textarea + id: expected + attributes: + label: "โœ… Expected Behavior" + description: "What you expected to happen" + placeholder: "A clear description of what should happen..." + validations: + required: true + + - type: textarea + id: actual + attributes: + label: "โŒ Actual Behavior" + description: "What actually happened" + placeholder: "Include error messages, stack traces, or unexpected outcomes..." + validations: + required: true + + - type: textarea + id: logs + attributes: + label: "๐Ÿ“„ Logs / Screenshots" + description: | + Provide relevant logs, error messages, or screenshots. + For logs, please use a pastebin and share the URL. + **Remember to remove any sensitive information (API keys, passwords, etc.).**[reference:13] + placeholder: "Paste logs here or provide a Gist URL..." + validations: + required: false + + - type: markdown + attributes: + value: | + --- + ## ๐Ÿ–ฅ๏ธ Environment Details + Please fill out the relevant information below. + + - type: input + id: version + attributes: + label: "๐Ÿ“ฆ Audio Splitter Version" + description: "The version you are using (or commit reference)" + placeholder: "e.g., v1.21.7" + validations: + required: true + + - type: input + id: os + attributes: + label: "๐Ÿ’ป Operating System" + description: "Your OS and version" + placeholder: "e.g., Ubuntu 22.04, macOS Sonoma 14.5, Windows" + validations: + required: true + + - type: input + id: browser + attributes: + label: "๐ŸŒ Browser (if applicable)" + description: "Browser name and version" + placeholder: "e.g., Chrome 120, Firefox 121, Safari 17" + validations: + required: false + + - type: textarea + id: additional + attributes: + label: "๐Ÿ“Ž Additional Context" + description: "Any other information that might be relevant" + placeholder: | + - Database type and version (e.g., PostgreSQL 15, SQLite) + - Reverse proxy/CDN in use (e.g., Nginx, Cloudflare)[reference:15] + - Any custom configuration + - Related issues or PRs + validations: + required: false + + - type: checkboxes + id: checklist + attributes: + label: "โœ… Submission Checklist" + description: "Please confirm the following before submitting" + options: + - label: "I have searched for existing issues (open and closed) that report the same problem" + required: true + - label: "I am using the latest stable release of Audio Splitter" + required: true + - label: "I have provided clear steps to reproduce the issue" + required: true + - label: "I have included relevant logs or error messages (with sensitive info removed)" + required: false diff --git a/.gitea/ISSUE_TEMPLATE/feature_request.yaml b/.gitea/ISSUE_TEMPLATE/feature_request.yaml new file mode 100644 index 0000000..9aa7d10 --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/feature_request.yaml @@ -0,0 +1,129 @@ +name: "Feature Request" +description: "Suggest a new feature or enhancement for this project" +title: "[FEATURE]: " +labels: ["enhancement"] +body: + - type: markdown + attributes: + value: | + ## โš ๏ธ Before You Begin + Please ensure you have: + - [ ] Searched existing issues (open and closed) to avoid duplicates + - [ ] Reviewed the [project documentation](https://git.vmn.su/max/audio_splitter/wiki) for existing functionality + - [ ] Confirmed this is a feature request, not a bug or configuration question + + + - type: textarea + id: problem + attributes: + label: "๐ŸŽฏ Problem Statement" + description: "What problem does this feature solve? What can't you do today?" + placeholder: | + I'm always frustrated when... + Currently, it's hard/impossible to... + This feature would help me because... + validations: + required: true + + - type: textarea + id: solution + attributes: + label: "๐Ÿ’ก Proposed Solution" + description: "Describe the solution you'd like to see" + placeholder: | + A clear description of what you want to happen. + If you have a specific API, UI, or implementation in mind, describe it here. + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: "๐Ÿ”„ Alternatives Considered" + description: "What alternative solutions or workarounds have you considered?" + placeholder: | + - Alternative A: ... + - Workaround B: ... + - Why these don't fully solve the problem + validations: + required: false + + - type: textarea + id: usecase + attributes: + label: "๐Ÿ‘ค Use Case / Persona" + description: "Who benefits from this feature and in what context?" + placeholder: | + As a [type of user], I want to [do something] so that [I achieve some benefit]. + Example: "As a project maintainer, I want to bulk-close issues by label so that I can clean up stale tickets faster." + validations: + required: false + + - type: textarea + id: screenshots + attributes: + label: "๐Ÿ“ธ Screenshots" + description: "If you can, provide screenshots or diagrams of the proposed feature" + placeholder: "Drag and drop images or paste links..." + validations: + required: false + + - type: markdown + attributes: + value: | + --- + ## ๐Ÿ”ง Implementation Details (Optional) + The following sections are for contributors who want to implement this feature. + + - type: textarea + id: technical + attributes: + label: "โš™๏ธ Technical Approach" + description: "If you have ideas about how to implement this, share them here" + placeholder: | + - Which components/modules would be affected? + - Any database schema changes? + - API design considerations? + validations: + required: false + + - type: textarea + id: acceptance + attributes: + label: "โœ… Acceptance Criteria" + description: "What does 'done' look like for this feature?" + placeholder: | + - [ ] Feature works in the UI + - [ ] API endpoints are documented + - [ ] Tests are added + - [ ] Documentation is updated + validations: + required: false + + - type: dropdown + id: contribution + attributes: + label: "๐Ÿค Are you willing to contribute this feature?" + description: "Knowing if you can help implement this helps us prioritize" + options: + - "Yes, I can contribute" + - "Yes, but I need guidance" + - "No, but I can test/review" + - "No, I'm just requesting" + validations: + required: true + + - type: checkboxes + id: checklist + attributes: + label: "โœ… Submission Checklist" + description: "Please confirm the following before submitting" + options: + - label: "I have searched for existing issues (open and closed) that request the same feature" + required: true + - label: "I have explained the problem this feature solves" + required: true + - label: "I have described a concrete solution or direction" + required: true + - label: "I have considered alternatives and explained why they fall short" + required: false diff --git a/.gitea/ISSUE_TEMPLATE/refactor.yaml b/.gitea/ISSUE_TEMPLATE/refactor.yaml new file mode 100644 index 0000000..0a40aad --- /dev/null +++ b/.gitea/ISSUE_TEMPLATE/refactor.yaml @@ -0,0 +1,160 @@ +name: "Refactor Request" +description: "Propose a code restructuring or cleanup with no behavior change" +title: "[REFACTOR]: " +labels: ["refactoring"] +body: + - type: markdown + attributes: + value: | + ## โš ๏ธ Before You Begin + Please ensure you have: + - [ ] Searched existing issues (open and closed) to avoid duplicates + - [ ] Reviewed the [project documentation](https://git.vmn.su/max/audio_splitter/wiki) for architecture guidelines + - [ ] Confirmed this is a refactor (code restructuring with NO behavior change), not a bug fix or new feature + + + - type: textarea + id: problem + attributes: + label: "๐ŸŽฏ Problem Statement" + description: "What pain points does the current code cause? Why is this refactor needed?" + placeholder: | + The current implementation is difficult to maintain because... + This code has accumulated technical debt due to... + I'm constantly frustrated when working with this module because... + validations: + required: true + + - type: textarea + id: scope + attributes: + label: "๐Ÿ“‚ Scope" + description: "Which files, modules, or components need refactoring? Be specific." + placeholder: | + - File paths: `src/auth/`, `internal/handler/` + - Component: `UserService` class + validations: + required: true + + - type: textarea + id: current-state + attributes: + label: "๐Ÿ” Current State" + description: "Describe the current code structure, its issues, and why it's problematic" + placeholder: | + - The function `processUser()` is 500+ lines long + - Duplicated logic across 3 different files + - Mixed concerns (business logic + HTTP handling) + - Poor test coverage makes changes risky + - Naming is unclear and inconsistent + validations: + required: true + + - type: textarea + id: proposed-changes + attributes: + label: "๐Ÿ’ก Proposed Solution" + description: "What should the code look like after the refactor?" + placeholder: | + - Extract `processUser()` into smaller, focused functions + - Consolidate duplicated logic into a shared utility + - Separate business logic from HTTP handlers + - Introduce interfaces for better testability + - Rename variables and functions for clarity + validations: + required: true + + - type: textarea + id: constraints + attributes: + label: "๐Ÿšซ Constraints" + description: "What must NOT change? Public APIs, behavior, backward compatibility, performance characteristics?" + placeholder: | + - All public APIs must remain identical + - Database schema must not change + - External behavior must be identical + - Response formats must stay the same + - Performance must not degrade + validations: + required: true + + - type: textarea + id: benefits + attributes: + label: "๐Ÿ“ˆ Expected Benefits" + description: "What improvements will this refactor bring?" + placeholder: | + - Improved maintainability + - Better testability + - Reduced code duplication + - Clearer separation of concerns + - Easier onboarding for new contributors + validations: + required: false + + - type: textarea + id: risks + attributes: + label: "โš ๏ธ Risks & Mitigations" + description: "What could go wrong, and how will you mitigate it?" + placeholder: | + - Risk: Regression bugs + Mitigation: Comprehensive test coverage before and after + - Risk: Large diff making code review difficult + Mitigation: Break into smaller, incremental PRs + validations: + required: false + + - type: textarea + id: testing + attributes: + label: "๐Ÿงช Testing Strategy" + description: "How will you ensure the refactor doesn't break existing functionality?" + placeholder: | + - Existing test suite must pass + - Add regression tests before refactoring + - Run benchmarks to ensure no performance regression + - Manual testing of critical paths + validations: + required: true + + - type: textarea + id: alternatives + attributes: + label: "๐Ÿ”„ Alternatives Considered" + description: "What other approaches did you consider, and why did you reject them?" + placeholder: | + - Alternative A: Complete rewrite โ€” rejected because too risky + - Alternative B: Gradual deprecation โ€” rejected because too slow + validations: + required: false + + - type: dropdown + id: contribution + attributes: + label: "๐Ÿค Are you willing to contribute this refactor?" + description: "Knowing if you can help implement this helps us prioritize" + options: + - "Yes, I can contribute" + - "Yes, but I need guidance" + - "No, but I can review" + - "No, I'm just suggesting" + validations: + required: true + + - type: checkboxes + id: checklist + attributes: + label: "โœ… Submission Checklist" + description: "Please confirm the following before submitting" + options: + - label: "I have searched for existing issues (open and closed) that request the same refactor" + required: true + - label: "I have clearly explained the problem this refactor solves" + required: true + - label: "I have described the scope of the refactor (specific files/modules)" + required: true + - label: "I have identified what must NOT change (APIs, behavior, backward compatibility)" + required: true + - label: "I have described how the refactor will be tested" + required: true -- 2.52.0 From 2fccf207682547fc0b90db7d694311d21db08710 Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Wed, 16 Sep 2026 09:03:41 +0400 Subject: [PATCH 2/4] fix(git): removes irrelevant data from issue templates --- .gitea/ISSUE_TEMPLATE/bug_report.yaml | 33 ++-------------------- .gitea/ISSUE_TEMPLATE/feature_request.yaml | 13 +-------- .gitea/ISSUE_TEMPLATE/refactor.yaml | 21 ++------------ 3 files changed, 6 insertions(+), 61 deletions(-) diff --git a/.gitea/ISSUE_TEMPLATE/bug_report.yaml b/.gitea/ISSUE_TEMPLATE/bug_report.yaml index ac3c2ff..1f7a6c3 100644 --- a/.gitea/ISSUE_TEMPLATE/bug_report.yaml +++ b/.gitea/ISSUE_TEMPLATE/bug_report.yaml @@ -58,7 +58,7 @@ body: description: | Provide relevant logs, error messages, or screenshots. For logs, please use a pastebin and share the URL. - **Remember to remove any sensitive information (API keys, passwords, etc.).**[reference:13] + **Remember to remove any sensitive information (API keys, passwords, etc.).** placeholder: "Paste logs here or provide a Gist URL..." validations: required: false @@ -70,33 +70,6 @@ body: ## ๐Ÿ–ฅ๏ธ Environment Details Please fill out the relevant information below. - - type: input - id: version - attributes: - label: "๐Ÿ“ฆ Audio Splitter Version" - description: "The version you are using (or commit reference)" - placeholder: "e.g., v1.21.7" - validations: - required: true - - - type: input - id: os - attributes: - label: "๐Ÿ’ป Operating System" - description: "Your OS and version" - placeholder: "e.g., Ubuntu 22.04, macOS Sonoma 14.5, Windows" - validations: - required: true - - - type: input - id: browser - attributes: - label: "๐ŸŒ Browser (if applicable)" - description: "Browser name and version" - placeholder: "e.g., Chrome 120, Firefox 121, Safari 17" - validations: - required: false - - type: textarea id: additional attributes: @@ -104,7 +77,7 @@ body: description: "Any other information that might be relevant" placeholder: | - Database type and version (e.g., PostgreSQL 15, SQLite) - - Reverse proxy/CDN in use (e.g., Nginx, Cloudflare)[reference:15] + - Reverse proxy/CDN in use (e.g., Nginx, Cloudflare) - Any custom configuration - Related issues or PRs validations: @@ -118,8 +91,6 @@ body: options: - label: "I have searched for existing issues (open and closed) that report the same problem" required: true - - label: "I am using the latest stable release of Audio Splitter" - required: true - label: "I have provided clear steps to reproduce the issue" required: true - label: "I have included relevant logs or error messages (with sensitive info removed)" diff --git a/.gitea/ISSUE_TEMPLATE/feature_request.yaml b/.gitea/ISSUE_TEMPLATE/feature_request.yaml index 9aa7d10..74cf1bb 100644 --- a/.gitea/ISSUE_TEMPLATE/feature_request.yaml +++ b/.gitea/ISSUE_TEMPLATE/feature_request.yaml @@ -9,7 +9,7 @@ body: ## โš ๏ธ Before You Begin Please ensure you have: - [ ] Searched existing issues (open and closed) to avoid duplicates - - [ ] Reviewed the [project documentation](https://git.vmn.su/max/audio_splitter/wiki) for existing functionality + - [ ] Reviewed the [project documentation](https://git.vmn.su/max/vmn-ansible/wiki) for existing functionality - [ ] Confirmed this is a feature request, not a bug or configuration question @@ -48,17 +48,6 @@ body: validations: required: false - - type: textarea - id: usecase - attributes: - label: "๐Ÿ‘ค Use Case / Persona" - description: "Who benefits from this feature and in what context?" - placeholder: | - As a [type of user], I want to [do something] so that [I achieve some benefit]. - Example: "As a project maintainer, I want to bulk-close issues by label so that I can clean up stale tickets faster." - validations: - required: false - - type: textarea id: screenshots attributes: diff --git a/.gitea/ISSUE_TEMPLATE/refactor.yaml b/.gitea/ISSUE_TEMPLATE/refactor.yaml index 0a40aad..31dc5fe 100644 --- a/.gitea/ISSUE_TEMPLATE/refactor.yaml +++ b/.gitea/ISSUE_TEMPLATE/refactor.yaml @@ -9,7 +9,7 @@ body: ## โš ๏ธ Before You Begin Please ensure you have: - [ ] Searched existing issues (open and closed) to avoid duplicates - - [ ] Reviewed the [project documentation](https://git.vmn.su/max/audio_splitter/wiki) for architecture guidelines + - [ ] Reviewed the [project documentation](https://git.vmn.su/max/vmn-ansible/wiki) for architecture guidelines - [ ] Confirmed this is a refactor (code restructuring with NO behavior change), not a bug fix or new feature @@ -105,19 +105,6 @@ body: validations: required: false - - type: textarea - id: testing - attributes: - label: "๐Ÿงช Testing Strategy" - description: "How will you ensure the refactor doesn't break existing functionality?" - placeholder: | - - Existing test suite must pass - - Add regression tests before refactoring - - Run benchmarks to ensure no performance regression - - Manual testing of critical paths - validations: - required: true - - type: textarea id: alternatives attributes: @@ -153,8 +140,6 @@ body: - label: "I have clearly explained the problem this refactor solves" required: true - label: "I have described the scope of the refactor (specific files/modules)" - required: true + required: false - label: "I have identified what must NOT change (APIs, behavior, backward compatibility)" - required: true - - label: "I have described how the refactor will be tested" - required: true + required: false -- 2.52.0 From 9627a4a5e044482541fdb60bcc9db267e7fd3c69 Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Wed, 16 Sep 2026 09:41:32 +0400 Subject: [PATCH 3/4] feat(pb): removes TLS certificates after the distribution --- playbooks/maintain.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/playbooks/maintain.yaml b/playbooks/maintain.yaml index b0d2c71..31f0e3d 100644 --- a/playbooks/maintain.yaml +++ b/playbooks/maintain.yaml @@ -31,3 +31,19 @@ roles: # Pull certificates from cert_proxy and distribute them among the servers - ../roles/update_certificates + + post_tasks: + - name: Delete certificates from cert-proxy + ansible.builtin.file: + name: /tmp/letsencrypt + state: absent + when: "inventory_hostname == 'cert-proxy'" + run_once: true + + - name: Delete certificates from ansible-server + ansible.builtin.file: + name: /tmp/letsencrypt + state: absent + run_once: true + delegate_to: 127.0.0.1 + -- 2.52.0 From 996e24218083596353aa6aa9b4c39bd1e3ed06ed Mon Sep 17 00:00:00 2001 From: Maxim Vershinin Date: Wed, 16 Sep 2026 09:44:01 +0400 Subject: [PATCH 4/4] fix(role): enables qemu-guest-agent service only if the host is a VM --- roles/base_system/tasks/install_packages.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/roles/base_system/tasks/install_packages.yaml b/roles/base_system/tasks/install_packages.yaml index f225c64..96fc31b 100644 --- a/roles/base_system/tasks/install_packages.yaml +++ b/roles/base_system/tasks/install_packages.yaml @@ -49,4 +49,5 @@ name: qemu-guest-agent enabled: yes state: started + when: ansible_facts['virtualization_type'] == "kvm" -- 2.52.0