Releases: AzisK/Zpace
Releases · AzisK/Zpace
v0.5.0
v0.4.5
Features
- Directory Configuration: Added support for customizing directory categories via
~/.zpace.tomldirs: Replace all directory names for a categoryadd: Add directory names to an existing categoryremove: Remove directory names from a category- Create entirely new custom directory categories
Configuration
- Added
Homebrewto Package Caches special directories
What's Changed
- Add user-configurable dirs via TOML config by @AzisK in #42
- Add
Homebrewto Package Caches special directories by @AzisK in #43
Full Changelog: v0.4.4...v0.4.5
v0.4.4
Features
- User Configuration: Added support for customizing file categories via
~/.zpace.tomlextensions: Replace all extensions for a categoryadd: Add extensions to an existing categoryremove: Remove extensions from a category- Create entirely new custom categories
- Added
.zpace.toml.sampletemplate file
Configuration
- Removed "Fonts" from default categories (can be re-added via user config)
Documentation
- Added Configuration section to README with examples
- Moved Changelog and Architecture links to new Docs section
- Upgraded AGENTS.md file
What's Changed
Full Changelog: v0.4.3...v0.4.4
v0.4.3
Configuration
- File categories expanded:
- Renamed "JSON/YAML" category to "Config" and added .toml, .xml, .ini, .env, .conf
- Added new categories: "ML Models" (.pt, .onnx, .safetensors, etc.), "Databases" (.db, .sqlite, .parquet, .csv, etc.), "3D Models", "Executables", "Fonts"
- Extended existing categories: Pictures (.ico, .raw, .avif), Documents (.md, .epub, Apple iWork formats), Music (.opus, .aiff), Videos (.mts, .vob, .3gp), Code (.ipynb, shell scripts, .swift, .kt, .vue, .svelte), Archives (.zst), Disk Images (.qcow2, .vhdx)
- Special directories expanded:
- Virtual Environments: Added Conda/Miniconda/Anaconda support
- Build Artifacts: Added .next, .nuxt, .svelte-kit, .turbo, Bazel directories
- Package Caches: Added .pnpm, .uv, .bun, .deno, vendor, .bundle
- IDE Config: Added .fleet (JetBrains Fleet)
- New categories: "Temp Files" (tmp, temp), "ML Artifacts" (weights, checkpoints, pretrained)
Performance
- Optimized identify_special_dir_name with fast path for exact matches before pattern matching
Documentation
- Added PyPI version badge to README
- Added documentation section with links to Changelog and Architecture docs
What's Changed
- Optimize special directory name identification by @AzisK in #39
- Expand file and directory categories in config by @AzisK in #40
Full Changelog: v0.4.2...v0.4.3
v0.4.2
Performance
Streaming Top-N Selection — The scanner now uses in-place min-heaps to track only the largest files per category during traversal, replacing the previous approach of collecting all files and then filtering.
- Memory usage reduced from O(files_over_min_size) to O(categories × top_n)
- Large intermediate file lists are no longer built, improving performance on directories with many files
Code Quality
- Removed the now-unused get_top_n_per_category function — top-N logic is now integrated directly into the scan
- Added clarifying comment for the DEEPEST_SKIP_LEVEL optimization explaining why system directory checks are skipped for deep paths
- Updated ARCHITECTURE.md with documentation for the new streaming approach and push_top_n helper
Tests
- Added 5 new unit tests for the push_top_n heap helper covering edge cases (empty heap, full heap rejection/acceptance, size-one heap)
- Added 2 integration tests verifying top-N limiting and multi-category behavior during scans
What's Changed
Full Changelog: v0.4.1...v0.4.2
v0.4.1
v0.4.0
This release introduces a major refactoring of the project's internal
structure to improve maintainability and scalability. The core logic
has been split from a monolithic script into a modular package, and
all related documentation and tests have been updated accordingly.
Refactoring
- Project Structure: The codebase has been refactored from a single
main.py file into a zpace package. This separates concerns and
makes the project easier to navigate and extend. The new structure
is as follows:- zpace/main.py: Handles CLI argument parsing and high-level
orchestration. - zpace/core.py: Contains the core scanning and categorization
logic. - zpace/config.py: Centralizes all configuration constants (like
file categories and skipped directories). - zpace/utils.py: Includes helper functions for size formatting
and platform-specific path lookups.
- zpace/main.py: Handles CLI argument parsing and high-level
- Entry Point: The main entry point main.py in the root directory
now simply calls the main function from the zpace package.
Documentation
- Architecture: ARCHITECTURE.md has been updated to reflect the new
modular project structure, detailing the roles of the new files
(core.py, config.py, utils.py). - README: The "Project Structure" and "Development" sections in
README.md have been updated to provide accurate information for
contributors.
Tests
- Test Suite: All unit and integration tests have been updated to
work with the new package structure. This involved fixing broken
import paths and updating mock targets to ensure the test suite
passes and correctly validates the application's behavior.
What's Changed
Full Changelog: v0.3.1...v0.4.0
v0.3.1
v0.3.0
Features
- Performance: Refactored file scanning to use an iterative
os.scandirapproach and string-based path handling, significantly improving performance and reducing memory usage. - Symlink Handling: The tool now explicitly detects and rejects symlinks as the initial scan path, preventing unexpected behavior.
Improvements
- CI: Switched GitHub Actions runners to
ubuntu-slimto optimize resource usage.
Fixes
- Path Resolution: Improved path resolution in the main scanning function.
- Trash Size Check: Made the trash size calculation more robust.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
What's Changed
- Add Windows to CI workflow OS matrix by @AzisK in #1
- Use Path instead of string for a better Window support by @AzisK in #2
- Fix mypy library installation in Github Actions CI by @AzisK in #3
- Fix skip directories tests by @AzisK in #4
- Simplify test structure by @AzisK in #5
- Add a Trivia workflow in Github Actions by @AzisK in #6
- Update trivia header message in workflow by @AzisK in #7
- Fix Trivia formatting by @AzisK in #8
- Personalize PR trivia to address the committer and add a fun motivati… by @AzisK in #9
- Fix decodeHtml in Trivia workflow by @AzisK in #10
- Fix formatting of the Trivia workflow comment by @AzisK in #11
- Final touch on Trivia workflow by @AzisK in #12
- Prettify the Trivia formatting by @AzisK in #13
- Add celebration on success of tests with a random dog picture by @AzisK in #14
- Post a dog in the comments only for a pull request event by @AzisK in #16
- Add workflow_dispatch trigger to CI workflow by @AzisK in #15
- Add CI badge to README by @AzisK in #17
- Leave the trivia difficulty open by @AzisK in #18
- Add a Github Action workflow to review pull requests by an LLM by @AzisK in #19
- Add GH_TOKEN env of the review GHA workflow by @AzisK in #20
- Fix the GPT-5 model definition by @AzisK in #21
- Increase GHA ai-inference version and reduce the max tokens by @AzisK in #22
- Use ai-inference v1 and gpt-4o model by @AzisK in #23
- Skip symlinks when scanning files and directories by @AzisK in #24
- Update README with example output and directory details by @AzisK in #25
- Use context manager for os.scandir in calculate_dir_size by @AzisK in #26
- Add trash bin size reporting to disk usage output by @AzisK in #27
- Optimize file and directory categorization lookups by @AzisK in #29
- Add integration tests for get trash path by @AzisK in #28
- Add comprehensive tests for output, CLI, symlinks, and unicode by @AzisK in #30
- Release version 0.2.0 with new features and improvements by @AzisK in #31
New Contributors
Full Changelog: v0.1.1...v0.2.0