Releases: GeneWang1226/tqdmoon
Releases · GeneWang1226/tqdmoon
Release list
v0.2.0
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[Unreleased]
[0.2.0] - 2026-07-13
Added
- Standalone native CLI —
cmd/mainbuilds a native executable that wrapsstdinwithtqdmoon, enabling pipe usage such asseq 1 100000 | tqdmoon. - CLI flags — native binary supports
--style/-s(classic,ascii,moon,google),--desc/-d, and--unit/-u. - WebAssembly target —
cmd/wasmproducestqdmoon.wasmfor frontend/edge deployment; addedweb/demo page that runs the Wasm module in a browser with a minimal WASI shim. - One-line installer —
scripts/install.shauto-detects Linux/macOS and downloads the matching release archive; supportsVERSIONandINSTALL_DIRoverrides. - All-in-one release packaging — GitHub Actions matrix builds native binaries plus Wasm bytecode and bundles both into
tqdmoon-<os>.tar.gz(dist/bin/tqdmoon,dist/lib/tqdmoon.wasm,README.md). - Dev-only release test workflow —
.github/workflows/release-test.ymlbuilds and uploads artifacts on every push todevwithout touching GitHub Releases. - Partial-fill skin support —
BarStylegainedpart1,part2,part3fields for quarter/half/three-quarter cell rendering, enabling smoother progress granularity. make_bar_styleconstructor — public factory function for creating customBarStylevalues from black-box (external) packages.- 72 tests — expanded from 27 to 72 test cases (23 black-box + 49 white-box), covering large iterations, all four skin presets, custom styles, fallback meter mode, zero-total edge case,
format_timehours,progress_fill_char,build_progressive_fill, andelapsed_secs.
Changed
- Renamed moon skin —
tqdmoon_styleis nowtqdmoon_moon; CLI flag changed from--style styleto--style moon. - CI pipeline — aligned with competition pre-acceptance requirements:
moon check --deny-warn,moon fmt --check,moon info+git diff --exit-code,moon test --deny-warn --enable-coveragewith coverage reporting, multi-platform matrix (ubuntu, macos, windows), and native target testing. - Release workflow — automated cross-platform builds and asset upload via
softprops/action-gh-release.
Fixed
- CLI argument parsing — skip program name (
argv[0]) so flags such as--style moonare parsed correctly. - Flicker-free rendering — replaced
\u001b[1Awith\u001b[1A\u001b[K(cursor up + clear line) to eliminate residual characters from previous bar frames. format_timehours support — durations >= 1 hour now render asHH:MM:SSinstead of overflowing the minute field.
[0.1.2] - 2026-06-07
Added
descoption —tqdm(iterable, desc="Loading...")prepends a description prefix to every bar line (e.g.Loading...: |████| 50% 5/10 [...]). Also exposed viaTqdm::set_desc(string)for fluent switching.unitoption —tqdm(iterable, unit="B")customizes the count and rate labels (default"items"; e.g."it","B"→1024 B [00:02, 512 B/s]). Also exposed viaTqdm::set_unit(string).disabledoption —tqdm(iterable, disabled=true)disables all progress-bar output while still yielding every item; useful for debugging and silent mode. Also exposed viaTqdm::set_disabled(bool)for fluent switching.- GitHub Actions CI —
.github/workflows/ci.ymlrunsmoon fmt,moon info, andmoon teston every push and pull request. - GitHub Actions Release —
.github/workflows/release.ymlruns validation checks on tags matchingv*.*.*and creates a GitHub Release using the latest section fromCHANGELOG.md. - Contributing guide — documented the CI setup and added a reusable AI-agent prompt for future workflow changes (
CONTRIBUTING.md).
[0.1.1] - 2026-06-01
Changed
- Renamed built-in skins for consistent
tqdmoon_prefix:tqd_classic→tqdmoon_classictqd_ascii→tqdmoon_asciitqd_moon→tqdmoon_styletqd_google→tqdmoon_google
tqdmoon_googlebar — progressive solid-to-hollow animation spellingtqdm...oon.- Tests — trimmed redundant cases (22 total); removed duplicate
test/demo package. - Contributing guide — documented standard release workflow: GitHub push/merge first, then
moon publishto Mooncake (CONTRIBUTING.md). - README.md — added official repository links (Mooncakes & GitHub) and
moon addinstallation instructions.
[0.1.0] - 2025-05-29
Added
- Core progress bar engine —
tqdm[T]wrapper aroundIter[T]with automatic counting, rendering, and terminal flushing on every.next()call. - Auto cleanup — Prints a trailing newline when the iterator is exhausted so subsequent output never overwrites the bar.
- Fallback meter mode — When
totalisNone, degrades gracefully to a counter showing elapsed time and processing rate (e.g.50 items [00:04, 12.5 items/s]). - BarStyle / skin system — Fully customizable
BarStylestruct plus four built-in presets:tqdmoon_classic— solid block bartqdmoon_ascii— ASCII bracket bartqdmoon_style— moon-phase emoji bartqdmoon_google— fun prefix-mode meme bar (tqdm...oon)
- Chainable API —
Tqdm::set_style(style)returns a new instance for fluent skin switching. - Unit tests — Black-box tests for public API (
tqdmoon_test.mbt) and white-box tests for internal helpers (tqdmoon_wbtest.mbt). - Demo program —
cmd/main/main.mbt(skin comparison). - Documentation — English
README.mdand Chinesedocs/README_zh.mdwith usage, API reference, and directory structure.
Fixed
- README.md table rendering: escaped
|characters so progress-bar previews display correctly in Markdown tables.
Earlier commits
418a089— Added initial README.49102ad— Implemented progress bar component and ensured all tests pass.e8b4981— Added testing module.31e8cfc— Added core components.b5ecb19— Implemented progress bar logic with styles.3355a9b— Updated LICENSE and initializedmoon new tqdmoon.a0ae8ae— Added project docs: AGENTS, LICENSE, and CONTRIBUTING guidelines.bef98eb— Initial commit.
v0.2.0-dev
Pre-release for dev testing (CHANGELOG updated)
v0.1.2
Added
make_bar_styleconstructor — public factory function for creating customBarStylevalues from black-box (external) packages.- 72 tests — expanded from 27 to 72 test cases (23 black-box + 49 white-box), covering large iterations, all four skin presets, custom styles, fallback meter mode, zero-total edge case,
format_timehours,progress_fill_char,build_progressive_fill, andelapsed_secs.
Changed
- CI pipeline — aligned with competition pre-acceptance requirements:
moon check --deny-warn,moon fmt --check,moon info+git diff --exit-code,moon test --deny-warn --enable-coveragewith coverage reporting, multi-platform matrix (ubuntu, macos, windows), and native target testing. - Release workflow — added
moon.modversion vs. git tag consistency check before publishing.
Fixed
- Flicker-free rendering — replaced
\u001b[1Awith\u001b[1A\u001b[K(cursor up + clear line) to eliminate residual characters from previous bar frames. format_timehours support — durations >= 1 hour now render asHH:MM:SSinstead of overflowing the minute field.