<feed xmlns='http://www.w3.org/2005/Atom'>
<title>mingling.git/mingling_cli/src/lib.rs, branch try-new-badges</title>
<subtitle>用于开发多子命令的命令行框架
</subtitle>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/'/>
<entry>
<title>refactor!: replace build.rs with compile-time macro build steps</title>
<updated>2026-08-17T11:21:52+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-17T11:21:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=89bf57f33a9f0f5a96fc50e272c83d926fa35c4a'/>
<id>89bf57f33a9f0f5a96fc50e272c83d926fa35c4a</id>
<content type='text'>
BREAKING CHANGE: Replace the `build`/`builds` feature system with
compile-time macro-driven generation. `gen_program!()` now automatically
invokes `build_comp!()` and `build_pathf!()` when the `comp`/`pathf`
features are enabled, eliminating the need for `build.rs` and
`[build-dependencies]` blocks.

This removes the `build` feature, the `mingling::build` module, and all
related build-time API functions. Completion scripts are now written to
`{target_directory}/mingling/` instead of `target/release/`. The
`mingling_cli` uses `build_comp!("mling")` for its custom binary name.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BREAKING CHANGE: Replace the `build`/`builds` feature system with
compile-time macro-driven generation. `gen_program!()` now automatically
invokes `build_comp!()` and `build_pathf!()` when the `comp`/`pathf`
features are enabled, eliminating the need for `build.rs` and
`[build-dependencies]` blocks.

This removes the `build` feature, the `mingling::build` module, and all
related build-time API functions. Completion scripts are now written to
`{target_directory}/mingling/` instead of `target/release/`. The
`mingling_cli` uses `build_comp!("mling")` for its custom binary name.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat(macros)!: change completion context parameter to owned type</title>
<updated>2026-08-16T23:35:42+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T23:35:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=40bb7ffd6954184fac718c8f99c9cdc3e054e4eb'/>
<id>40bb7ffd6954184fac718c8f99c9cdc3e054e4eb</id>
<content type='text'>
BREAKING CHANGE: `#[completion]` functions must now take `ShellContext`
by value instead of `&amp;ShellContext`. Reference parameters are reserved
for resource injection.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
BREAKING CHANGE: `#[completion]` functions must now take `ShellContext`
by value instead of `&amp;ShellContext`. Reference parameters are reserved
for resource injection.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor!: replace pack! macros with derive-based pipeline types</title>
<updated>2026-08-16T21:49:19+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T21:49:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d'/>
<id>57c53affe3542cb6bd4e79ee4c18f20a1bd76b2d</id>
<content type='text'>
Remove the `pack!`, `pack_err!`, `pack_structural!`, and
`pack_err_structural!` macros, replacing all pipeline type definitions
with `#[derive(Grouped)]` and `#[derive(Grouped, Wrap)]` attributes.
This changes the generated struct shape from named-field structs with an
`inner` field to tuple structs accessed via `.0`, and removes the
auto-generated `name` and `info` fields from error types.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove the `pack!`, `pack_err!`, `pack_structural!`, and
`pack_err_structural!` macros, replacing all pipeline type definitions
with `#[derive(Grouped)]` and `#[derive(Grouped, Wrap)]` attributes.
This changes the generated struct shape from named-field structs with an
`inner` field to tuple structs accessed via `.0`, and removes the
auto-generated `name` and `info` fields from error types.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add fallback renderer for unknown commands</title>
<updated>2026-08-16T16:41:22+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-16T16:41:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=bb9ecf31850c9495d1e51a1f5d0af7d5e9284f0e'/>
<id>bb9ecf31850c9495d1e51a1f5d0af7d5e9284f0e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add self-update command for mling</title>
<updated>2026-08-15T18:17:35+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-15T17:59:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=d85834037e0ad73fb3ce62a2a1ff8666865d4357'/>
<id>d85834037e0ad73fb3ce62a2a1ff8666865d4357</id>
<content type='text'>
Add `mling update` to fetch the latest GitHub Actions artifact for the
current platform, stage it as a tarball in the data directory, and apply
it on the next wrapper invocation. The wrapper extracts the staged
package over the installation directory while skipping the running
executable, then removes the staged file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add `mling update` to fetch the latest GitHub Actions artifact for the
current platform, stage it as a tarball in the data directory, and apply
it on the next wrapper invocation. The wrapper extracts the staged
package over the installation directory while skipping the running
executable, then removes the staged file.
</pre>
</div>
</content>
</entry>
<entry>
<title>feat: add config command and resource for editing settings</title>
<updated>2026-08-09T06:07:28+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-09T06:07:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=b2001ed62d6a4abd7193daeb5d818395b46433b6'/>
<id>b2001ed62d6a4abd7193daeb5d818395b46433b6</id>
<content type='text'>
Add a new `cfg` command to view and edit configuration
items stored as key-value pairs in a JSON file.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add a new `cfg` command to view and edit configuration
items stored as key-value pairs in a JSON file.
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor(cli): move global help and completion to library</title>
<updated>2026-08-08T18:56:28+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-07T04:59:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=f97119cf53b668b34434cd80cedde84ffe7407e9'/>
<id>f97119cf53b668b34434cd80cedde84ffe7407e9</id>
<content type='text'>
Move the global help and completion handlers from the CLI binary
into the library crate so they can be reused by other entry points.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the global help and completion handlers from the CLI binary
into the library crate so they can be reused by other entry points.
</pre>
</div>
</content>
</entry>
<entry>
<title>chore: move CLI entry to bin and restructure imports</title>
<updated>2026-08-08T18:56:28+00:00</updated>
<author>
<name>魏曹先生</name>
<email>1992414357@qq.com</email>
</author>
<published>2026-08-07T04:52:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.catilgrass.cn/mingling.git/commit/?id=a80ac42e70c9194db91ebbfe9600db443e88ac5f'/>
<id>a80ac42e70c9194db91ebbfe9600db443e88ac5f</id>
<content type='text'>
Move the CLI binary from `src/main.rs` to `src/bin/cli.rs`
and move shared program generation into a new lib.rs module.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Move the CLI binary from `src/main.rs` to `src/bin/cli.rs`
and move shared program generation into a new lib.rs module.
</pre>
</div>
</content>
</entry>
</feed>
