Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,11 @@ jobs:
echo "Add a '## [$VERSION] - <date>' entry before releasing." >&2
exit 1
fi
printf '%s\n' "$NOTES" > release_notes.md
# Write outside the checkout so the working tree stays clean for
# `cargo publish` (which refuses to package a dirty tree).
printf '%s\n' "$NOTES" > "${RUNNER_TEMP}/release_notes.md"
echo "Extracted release notes for $VERSION:"
cat release_notes.md
cat "${RUNNER_TEMP}/release_notes.md"

- name: Set version in Cargo.toml
# set-version overwrites whatever is in the local (intentionally stale)
Expand All @@ -108,4 +110,4 @@ jobs:
run: |
gh release create "${{ steps.bump_version.outputs.new_version }}" \
--title "${{ steps.bump_version.outputs.new_version }}" \
--notes-file release_notes.md
--notes-file "${RUNNER_TEMP}/release_notes.md"
12 changes: 6 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,23 +23,23 @@ jobs:
components: rustfmt, clippy

- name: Cache cargo registry
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-cargo-registry-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-registry-

- name: Cache cargo index
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: ~/.cargo/git
key: ${{ runner.os }}-cargo-index-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-cargo-index-

- name: Cache cargo build
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: target
key: ${{ runner.os }}-cargo-build-target-${{ hashFiles('**/Cargo.lock') }}
Expand Down Expand Up @@ -68,7 +68,7 @@ jobs:
components: llvm-tools-preview

- name: Install cargo-llvm-cov and nextest
uses: taiki-e/install-action@v2
uses: taiki-e/install-action@v2.87.8
with:
tool: cargo-llvm-cov,nextest

Expand All @@ -95,7 +95,7 @@ jobs:
uses: dtolnay/rust-toolchain@1.93.0

- name: Cache cargo build
uses: actions/cache@v5
uses: actions/cache@v6
with:
path: target
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }}
Expand All @@ -112,7 +112,7 @@ jobs:
path: examples-repo

- name: Setup Node.js
uses: actions/setup-node@v6
uses: actions/setup-node@v7
with:
node-version: '20'

Expand Down
16 changes: 16 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,22 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [0.5.3] - 2026-09-17

### Added
- **External-Crate Type Resolution**: Resolve types imported from dependencies by walking the Cargo registry source tree, so moving types to a separate crate no longer drops them from the output (#77/#78)

### Fixed
- **External-Crate Type Discovery**: Discover external types declared with visibility modifiers, attributes, or generics (`pub(crate) struct X`, `#[derive(Debug)] pub struct X<T>`, multi-line) — the original substring heuristic missed these and produced false positives on prefix-named types (#82)
- Match is now `syn`-based on the item identifier; unparseable registry files are skipped
- **External Crate Lookup Diagnostics**: Unresolved referenced types are no longer silently dropped; they are recorded and surfaced as a non-fatal stderr warning, and exposed via `CommandAnalyzer::unresolved_types()` (#84)
- **Windows `CARGO_HOME` Fallback**: Use `PathBuf::join` (not string formatting) and honor `USERPROFILE` when `HOME` is unset (#84)

### Changed
- **Persisted External-Type Lookup Index**: The external-crate type index is persisted in `.typecache` and seeded into the analyzer each run, so warm builds skip the registry walk (#87)
- `GenerationCache` cache format bumped to v3; the index is excluded from the regeneration hash
- Added `CommandAnalyzer::seed_external_type_cache()` and `external_type_lookup_cache()`

## [0.5.2] - 2026-06-21

### Fixed
Expand Down
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ repository = "https://github.com/thwbh/tauri-typegen"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
thiserror = "2"
syn = { version = "2.0.106", features = ["full", "extra-traits"] }
syn = { version = "3.0.2", features = ["full", "extra-traits"] }
quote = "1.0"
proc-macro2 = { version = "1.0", features = ["span-locations"] }
walkdir = "2.0"
Expand Down
Loading