bump v0.1.0
This commit is contained in:
@@ -11847,91 +11847,414 @@ Add a gitea workflow for this project in a way that mirrors my AMZNCharTools ext
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
The user wants me to add a Gitea workflow for the Dynamic-Link-Manager project, mirroring the structure from the AMZNCharTools (AmazonCharacterTools) extension they modeled the project after. I need to:
|
||||
|
||||
1. Look at the AmazonCharacterTools project for its Gitea workflow(s)
|
||||
2. Create similar workflow(s) in Dynamic-Link-Manager
|
||||
|
||||
Let me search for Gitea workflow files in the AmazonCharacterTools project.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="glob_file_search">
|
||||
<tool-use data-tool-type="generic" data-tool-name="glob_file_search">
|
||||
<details>
|
||||
<summary>Tool use: **glob_file_search**</summary>
|
||||
<summary>Tool use: **glob_file_search** • Searched codebase "undefined" • **2** results in **1** directory</summary>
|
||||
|
||||
Status: **loading**
|
||||
Directory: **T:\AmazonCharacterTools** (2 files)
|
||||
|
||||
| File |
|
||||
|------|
|
||||
| `../..\AmazonCharacterTools\.gitea\workflows\release.yml` |
|
||||
| `../..\AmazonCharacterTools\.gitea\docker-compose.runner.yml` |
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="glob_file_search">
|
||||
<tool-use data-tool-type="generic" data-tool-name="glob_file_search">
|
||||
<details>
|
||||
<summary>Tool use: **glob_file_search**</summary>
|
||||
<summary>Tool use: **glob_file_search** • Searched codebase "undefined" • **2** results in **1** directory</summary>
|
||||
|
||||
Status: **loading**
|
||||
Directory: **T:\AmazonCharacterTools** (2 files)
|
||||
|
||||
| File |
|
||||
|------|
|
||||
| `../..\AmazonCharacterTools\.gitea\workflows\release.yml` |
|
||||
| `../..\AmazonCharacterTools\.gitea\docker-compose.runner.yml` |
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
Found the Gitea workflow and docker-compose in AmazonCharacterTools. Let me read those files and also check if Dynamic-Link-Manager has any .gitea folder yet.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="read_file_v2">
|
||||
<details>
|
||||
<summary>Tool use: **read_file_v2**</summary>
|
||||
|
||||
Status: **loading**
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\AmazonCharacterTools\.gitea\workflows\release.yml</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="read_file_v2">
|
||||
<details>
|
||||
<summary>Tool use: **read_file_v2**</summary>
|
||||
|
||||
Status: **loading**
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\AmazonCharacterTools\.gitea\docker-compose.runner.yml</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="glob_file_search">
|
||||
<tool-use data-tool-type="generic" data-tool-name="glob_file_search">
|
||||
<details>
|
||||
<summary>Tool use: **glob_file_search**</summary>
|
||||
|
||||
Status: **loading**
|
||||
<summary>Tool use: **glob_file_search** • Searched codebase "undefined" • **0** result in **1** directory</summary>
|
||||
|
||||
Directory: **T:\Dynamic-Link-Manager** (0 file)
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="unknown" data-tool-name="read_file_v2">
|
||||
<details>
|
||||
<summary>Tool use: **read_file_v2**</summary>
|
||||
|
||||
Status: **loading**
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\Dynamic-Link-Manager\blender_manifest.toml</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\AmazonCharacterTools\blender_manifest.toml</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
I have what I need. The AmazonCharacterTools has:
|
||||
1. `.gitea/workflows/release.yml` - A workflow that:
|
||||
- Triggers on workflow_dispatch with input release_tag
|
||||
- Gets version from blender_manifest.toml using Python/tomllib
|
||||
- Creates a zip with addon dir name "amzncharactertools" and copies __init__.py, blender_manifest.toml, ops, ui, utils
|
||||
- Creates a release via API and uploads the zip as asset
|
||||
|
||||
2. `.gitea/docker-compose.runner.yml` - Runner config (user-specific, with tokens/paths) - I should NOT copy this verbatim; it's environment-specific. I could add a similar file but with placeholders, or skip it since the user said "workflow" and the workflow is the main thing. I'll add the workflow and optionally a docker-compose that mirrors structure but with neutral placeholders so they can duplicate and fill in.
|
||||
|
||||
For Dynamic-Link-Manager:
|
||||
- Addon id in manifest is "dynamiclinkmanager", name "Dynamic Link Manager"
|
||||
- Structure: has ops/, ui/, and from the conversation also utils might exist. Let me check.
|
||||
- Top-level: __init__.py, blender_manifest.toml (and maybe others)
|
||||
|
||||
I'll create:
|
||||
1. `.gitea/workflows/release.yml` - adapted for Dynamic-Link-Manager:
|
||||
- Same structure (workflow_dispatch, get version from blender_manifest.toml)
|
||||
- ADDON_DIR=dynamiclinkmanager (lowercase, from manifest id or typical zip name)
|
||||
- zip_name=dynamiclinkmanager_${version}.zip or dynamic_link_manager_${version}.zip - the AMZN one uses amzncharactertools_version.zip so I'll use dynamiclinkmanager_version.zip
|
||||
- Copy same kind of files: __init__.py, blender_manifest.toml, ops, ui, utils if present
|
||||
|
||||
Let me check Dynamic-Link-Manager structure for dirs and top-level files.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
Checking Dynamic-Link-Manager layout to match the zip structure:
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="generic" data-tool-name="glob_file_search">
|
||||
<details>
|
||||
<summary>Tool use: **glob_file_search** • Searched codebase "undefined" • **28** results in **1** directory</summary>
|
||||
|
||||
Directory: **T:\Dynamic-Link-Manager** (28 files)
|
||||
|
||||
| File |
|
||||
|------|
|
||||
| `../ui/preferences.py` |
|
||||
| `../ops/__init__.py` |
|
||||
| `../__init__.py` |
|
||||
| `../ops/migrator.py` |
|
||||
| `../ui/__init__.py` |
|
||||
| `../utils/__init__.py` |
|
||||
| `../blender_manifest.toml` |
|
||||
| `../.cursorindexingignore` |
|
||||
| `../ui/operators.py` |
|
||||
| `../.specstory/history/2025-08-20_22-43Z-creating-a-blender-extension-for-asset-replacement.md` |
|
||||
| `../ops\tweak_tools.py` |
|
||||
| `../ui\properties.py` |
|
||||
| `../ui/panels.py` |
|
||||
| `../ui\__pycache__\properties.cpython-311.pyc` |
|
||||
| `../.specstory/history/2026-02-18_23-39Z-character-migrator-workflow-integration.md` |
|
||||
| `../ui\panels.py` |
|
||||
| `../.specstory/.gitignore` |
|
||||
| `../ui\__pycache__\operators.cpython-311.pyc` |
|
||||
| `../ui\operators.py` |
|
||||
| `../ui\__pycache__\panels.cpython-311.pyc` |
|
||||
| `../ops\__pycache__\migrator.cpython-311.pyc` |
|
||||
| `../ops\migrator.py` |
|
||||
| `../.specstory\history\2026-02-19_18-53Z-blendfile-local-datablocks-analysis.md` |
|
||||
| `../.specstory\.what-is-this.md` |
|
||||
| `../.specstory\history\2026-02-18_23-39Z-character-migrator-workflow-integration.md` |
|
||||
| `../.gitignore` |
|
||||
| `../ui/properties.py` |
|
||||
| `../ops/library.py` |
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\Dynamic-Link-Manager\__init__.py</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
Dynamic-Link-Manager has:
|
||||
- __init__.py (root)
|
||||
- blender_manifest.toml
|
||||
- ops/ (with __init__.py, migrator.py, tweak_tools.py, library.py)
|
||||
- ui/ (with __init__.py, operators.py, panels.py, properties.py, preferences.py)
|
||||
- utils/ (with __init__.py)
|
||||
|
||||
The addon is loaded by Blender with a module name - from the manifest, id = "dynamiclinkmanager". The folder name when installed is often the repo name "Dynamic-Link-Manager" but for zips it's usually a single token. AMZN uses "amzncharactertools" as the folder inside the zip. For Blender extensions/addons the folder name in the zip should match what the addon expects. Looking at the manifest, `id = "dynamiclinkmanager"` - so the zip could be structured as a folder "dynamiclinkmanager" or "Dynamic-Link-Manager". The AMZN workflow uses ADDON_DIR=amzncharactertools (manifest id). So I'll use dynamiclinkmanager.
|
||||
|
||||
Creating the workflow and the docker-compose. For docker-compose I'll mirror the structure but use placeholder/example values so the user can duplicate and configure (or I'll use generic names like "dlm-runner" and leave tokens/paths as placeholders).
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
Adding `.gitea/workflows/release.yml` and `.gitea/docker-compose.runner.yml` to mirror AmazonCharacterTools.
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
|
||||
<details><summary>Tool use: **edit_file_v2** • Edit file: T:\Dynamic-Link-Manager\.gitea\workflows\release.yml</summary>
|
||||
|
||||
</details>
|
||||
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\AmazonCharacterTools\.gitea\docker-compose.runner.yml</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
I'll add a docker-compose.runner.yml that mirrors the structure but is clearly for Dynamic-Link-Manager (different runner name, placeholder token). The user can reuse the same runner for multiple repos or duplicate and change the token/name. I'll use placeholder token and a distinct runner name so it doesn't conflict with the AMZN one if they want a separate runner.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="write" data-tool-name="edit_file_v2">
|
||||
|
||||
<details><summary>Tool use: **edit_file_v2** • Edit file: T:\Dynamic-Link-Manager\.gitea\docker-compose.runner.yml</summary>
|
||||
|
||||
</details>
|
||||
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
Done. I've added:
|
||||
1. `.gitea/workflows/release.yml` - mirrors AMZNCharTools release workflow, adapted for Dynamic-Link-Manager (version from blender_manifest.toml, zip name dynamiclinkmanager_<version>.zip, ADDON_DIR=dynamiclinkmanager, same ops/ui/utils copy pattern).
|
||||
2. `.gitea/docker-compose.runner.yml` - mirrors the runner compose file with container name gitea-act-runner-dlm, runner name dlm-runner, and placeholder token so they can register a runner for this repo (or reuse the same runner as AMZN if they prefer).
|
||||
|
||||
No need to run linters on YAML. I'll summarize for the user.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
Summary of what was added to mirror your AMZNCharacterTools setup:
|
||||
|
||||
**1. `.gitea/workflows/release.yml`**
|
||||
- **Trigger:** `workflow_dispatch` with input `release_tag` (e.g. `v0.3.0`).
|
||||
- **Version:** Read from `blender_manifest.toml` via Python/tomllib; outputs `version` and `zip_name=dynamiclinkmanager_<version>.zip`.
|
||||
- **ZIP layout:** Top-level `__init__.py` and `blender_manifest.toml`, plus `ops/`, `ui/`, and `utils/` (if present), all under a single folder `dynamiclinkmanager` (manifest `id`).
|
||||
- **Release:** Creates a draft release for the given tag and uploads the zip as an asset using `GITEA_TOKEN`.
|
||||
|
||||
**2. `.gitea/docker-compose.runner.yml`**
|
||||
- Same layout as AMZN’s runner compose.
|
||||
- `container_name`: `gitea-act-runner-dlm`, `GITEA_RUNNER_NAME`: `dlm-runner`.
|
||||
- `GITEA_RUNNER_REGISTRATION_TOKEN` is set to `<your-runner-token>`; replace with the token from **Repository → Settings → Actions → Runners → New Runner** (or point the repo at your existing `amzn-tools-runner` and skip this file).
|
||||
|
||||
If you already use one Gitea Actions runner for all repos, you can ignore the docker-compose file and only use the workflow; it uses `runs-on: ubuntu-latest`, which works with a standard runner.
|
||||
|
||||
---
|
||||
|
||||
_**User**_
|
||||
|
||||
bump version to 0.1.0 and update the changelog to concisely summarize the last 9 commits.
|
||||
|
||||
---
|
||||
|
||||
_**Agent (model default, mode Agent)**_
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
The user wants me to:
|
||||
1. Bump version to 0.1.0 in the project (likely blender_manifest.toml)
|
||||
2. Update the changelog to concisely summarize the last 9 commits
|
||||
|
||||
I need to:
|
||||
1. Find where version is defined (blender_manifest.toml)
|
||||
2. Find the changelog file (CHANGELOG.md or similar)
|
||||
3. Get the last 9 commits from git
|
||||
4. Update version and write changelog entries
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="read" data-tool-name="read_file_v2">
|
||||
<details><summary>Tool use: **read_file_v2** • Read file: T:\Dynamic-Link-Manager\blender_manifest.toml</summary>
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="generic" data-tool-name="glob_file_search">
|
||||
<details>
|
||||
<summary>Tool use: **glob_file_search** • Searched codebase "undefined" • **0** result in **1** directory</summary>
|
||||
|
||||
Directory: **T:\Dynamic-Link-Manager** (0 file)
|
||||
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
|
||||
<details><summary>Tool use: **run_terminal_command_v2** • Run command: cd /d T:\Dynamic-Link-Manager && git log -9 --oneline</summary>
|
||||
|
||||
```bash
|
||||
cd /d T:\Dynamic-Link-Manager && git log -9 --oneline
|
||||
```
|
||||
|
||||
```
|
||||
Set-Location: C:\Users\Nathan\AppData\Local\Temp\ps-script-24013b75-b893-4570-9bbb-ef187ab3e60b.ps1:7
|
||||
Line |
|
||||
7 | cd /d T:\Dynamic-Link-Manager && git log -9 --oneline
|
||||
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
| A positional parameter cannot be found that accepts argument 'T:\Dynamic-Link-Manager'.
|
||||
|
||||
```
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<think><details><summary>Thought Process</summary>
|
||||
|
||||
PowerShell doesn't use `cd /d`. I need to use Set-Location or cd without /d. Also there's no CHANGELOG file - I'll need to create one. Let me get the git log with a proper PowerShell command.
|
||||
</details></think>
|
||||
|
||||
---
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
|
||||
<details><summary>Tool use: **run_terminal_command_v2** • Run command: Set-Location T:\Dynamic-Link-Manager; git log -9 --oneline</summary>
|
||||
|
||||
```bash
|
||||
Set-Location T:\Dynamic-Link-Manager; git log -9 --oneline
|
||||
```
|
||||
|
||||
```
|
||||
6d9fb0f gitea composer
|
||||
1f28932 MigNLA action slot behavior and reports
|
||||
ae38056 refactor operator labels and document operators
|
||||
55afba3 NLAMig AnimLayers feature
|
||||
a3868e1 tweak tools (untested for now)
|
||||
4dee5cb fix BBod Shapekeys liboverride and copy values
|
||||
4b6a351 truncate names
|
||||
4d5706d specify icons
|
||||
7642ff5 redefine and fix migrate basebody shapkeys
|
||||
|
||||
```
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
|
||||
<details><summary>Tool use: **run_terminal_command_v2** • Run command: Set-Location T:\Dynamic-Link-Manager; git log -9 --format="%s"</summary>
|
||||
|
||||
```bash
|
||||
Set-Location T:\Dynamic-Link-Manager; git log -9 --format="%s"
|
||||
```
|
||||
|
||||
```
|
||||
gitea composer
|
||||
MigNLA action slot behavior and reports
|
||||
refactor operator labels and document operators
|
||||
NLAMig AnimLayers feature
|
||||
tweak tools (untested for now)
|
||||
fix BBod Shapekeys liboverride and copy values
|
||||
truncate names
|
||||
specify icons
|
||||
redefine and fix migrate basebody shapkeys
|
||||
|
||||
```
|
||||
</details>
|
||||
</tool-use>
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
# Changelog
|
||||
|
||||
## [0.1.0] - 2026-02-19
|
||||
|
||||
### Added
|
||||
- Gitea release workflow and runner docker-compose.
|
||||
- Tweak tools subsection: add/remove/bake constraints for arms, legs, and both; track name and post-clean options.
|
||||
- MigNLA: when no NLA, copy active action and action slot (incl. last_slot_identifier, blend/extrapolation/influence); debug logging for slot migration.
|
||||
- NLAMig: AnimLayers support (mirror `als.turn_on`), strip timing and properties; active-action-only path when no NLA tracks.
|
||||
- Operator icons (CopyAttr, MigNLA, CustProps, BoneConst, RetargRelatives, MigBBodyShapeKeys, pickers, tweak ops).
|
||||
- BaseBody shapekeys step: prefer original base body’s shape-key action slot; library override + editable; copy shape key values.
|
||||
|
||||
### Changed
|
||||
- Operator labels refactored to canonical short names (CopyAttr, MigNLA, MigCustProps, etc.) with `bl_description` on all UI operators.
|
||||
- Migrate BaseBody shapekeys redefined: find base body in hierarchy, override mesh/key data when linked, then apply shape-key action.
|
||||
- Button labels truncated (e.g. “NLA”, “BaseBody ShapeKeys”).
|
||||
|
||||
### Fixed
|
||||
- BaseBody shapekeys: lib override creation and value copy; correct original-base-body lookup and slot assignment.
|
||||
@@ -3,7 +3,7 @@ schema_version = "1.0.0"
|
||||
id = "dynamiclinkmanager"
|
||||
name = "Dynamic Link Manager"
|
||||
tagline = "Character migrator and linked library tools"
|
||||
version = "0.0.2"
|
||||
version = "0.1.0"
|
||||
type = "add-on"
|
||||
|
||||
# Optional: Semantic Versioning
|
||||
|
||||
Reference in New Issue
Block a user