Updated multiple documentation files to include Open Graph and Twitter metadata for better social media sharing. Added a new logo image to the static assets folder and referenced it in the metadata.
This commit updates multiple documentation files to improve clarity, remove emojis, and add new sections. Key changes include the addition of 'development.md' and 'performance.md', updates to the quickstart guide, and enhancements to the API and CLI documentation. These changes aim to provide better guidance for users and contributors.
Updated the Sphinx configuration to set 'includehidden' to False and revised the documentation index to streamline content. Removed the '--interactive' option from CLI commands 'extract' and 'extract_flat' as it is no longer supported.
Replaced all occurrences of the old domain 'xixu-me.github.io/tzst' with the new domain 'tzst.xi-xu.me' in layout.html and conf.py for improved SEO and consistency.
Added 'sphinx.ext.coverage' to the Sphinx extensions in conf.py to enable coverage reporting. Removed 'README' and '404' entries from the documentation index in index.md for cleanup.
Updated internal references in the documentation to use simplified anchor names. Added missing anchors for sections in 'examples.md' and 'quickstart.md'. Minor formatting adjustments were also made for consistency.
Added a new 404.md file for handling 'Page Not Found' errors in the documentation. Updated the publish_docs.yml workflow to include a 'cname' parameter. Removed the CNAME file from the docs directory as it is now managed in the workflow.
Added favicon and logo to the static assets. Updated layout.html for improved SEO and performance. Migrated metadata in documentation files to use 'myst' format for consistency. Adjusted configuration in conf.py and fixed formatting issues.
Added a new custom layout template for SEO and social media meta tags. Updated multiple documentation files with metadata for improved search engine optimization and social sharing. Enhanced Sphinx configuration with additional HTML options and meta tags.
Added the ':no-index:' directive to CLI, core, and exceptions API documentation to exclude them from indexing. Updated examples documentation to use Sphinx references for better navigation and added section anchors for improved structure.
- Updated the introduction to provide a clearer overview of tzst's capabilities and features.
- Expanded the Key Features section with detailed descriptions and icons for better readability.
- Improved the Quick Example section to include both command line and Python API usage.
- Added installation options with detailed steps for PyPI, standalone binaries, and source installation.
- Enhanced the Quick Start Guide with structured installation methods and basic usage examples.
- Introduced advanced features like security filters, conflict resolution, and performance optimization.
- Provided comprehensive error handling and common patterns for backup scripts and archive verification.
- Updated the requirements and reference links for better navigation.
Removed '_static/' from .gitignore to allow tracking of the '_static' directory. Added a .gitkeep file in '_static' to ensure the directory is included in the repository.
Revised Sphinx directives in CLI and exceptions API docs to use ':no-index' instead of ':members', ':undoc-members', and ':show-inheritance'. Removed 'display_version' from Sphinx configuration. Added 'README' to the index page for better navigation.
Modified the GitHub Actions workflow to trigger on push and pull requests to the main branch. Updated `.gitignore` to include additional Sphinx build outputs. Refactored `build_docs.py` for better formatting and error handling. Removed 'changelog' from the documentation index.
Replaced '🇬🇧 English' with 'us English' in all README files and standardized placeholder text for version numbers in the Arabic README. These changes improve consistency across documentation.
Modified the PyPI version badge URL in the CI workflow and README to simplify the URL. Enhanced README with emojis for better visual appeal and added detailed installation instructions for standalone binaries.
Updated the GitHub release creation step to use a simplified title format and removed detailed release notes. This change streamlines the release process by omitting installation instructions and commit history links.
Modified the PyInstaller command in the CI configuration to specify 'src/main.py' as the entry point for building binaries across macOS, Windows, and Linux ARM64 platforms.
Modified the CI workflow to correctly specify the path to the main script for PyInstaller builds. Added a new standalone entry point in src/main.py to serve as the executable script for tzst.
Created a new main.py file as the standalone entry point for tzst, intended for PyInstaller builds. This script sets up the Python path and invokes the CLI main function.
This commit updates the CI workflow to use macOS-14 for ARM-based runners, adds binary verification steps for Linux, macOS, and Windows, and improves release asset upload handling with success checks. Additionally, it refines the README badge update process for PyPI version.
Updated the CI/CD pipeline to support versioned tags for releases. Added new jobs for building binaries across multiple platforms and architectures, creating release assets, and uploading them to GitHub. Improved conditional logic for triggering workflows based on tags and streamlined badge updates.
Updated the `extract_archive` function to handle string-based conflict resolution by converting it to an enum. Added fallback to `ConflictResolution.REPLACE` for invalid values, ensuring safer and more predictable behavior.
- Removed outdated tests for missing lines in core.py.
- Added comprehensive tests for conflict resolution functionality, including various resolution strategies and edge cases.
- Improved error handling tests for archive creation and extraction processes.
- Enhanced unit tests for basic functionality and convenience functions with pytest markers.
- Introduced tests for unique filename generation and conflict handling scenarios.
- Added edge case tests for archive extraction and error conditions to improve overall test coverage.
Removed all references to `CHANGELOG.md` in documentation and templates, and deleted the `docs/changelog.md` file. This change reflects a shift away from maintaining a changelog in favor of other documentation practices.
- Complete documentation structure with index, quickstart, examples, and API reference
- Sphinx configuration with RTD theme, MyST parser, and autodoc
- GitHub Actions workflow for automated documentation building and deployment
- Local development tools (Makefile, build scripts)
- Comprehensive examples covering basic usage, security, and performance
- API documentation for core, CLI, and exceptions modules
Enhanced cleanup logic in `temp_dir` fixture to handle Windows-specific file locking issues. Updated tests to ensure suppressed exceptions during context manager exit and added manual cleanup for mocked objects to prevent resource leaks.
Introduced `_validate_command_in_argv` to check for invalid commands in CLI arguments. Updated compression level validation to include the new `-c` flag. Adjusted tests to reflect changes in error handling, ensuring argparse error codes are maintained for invalid inputs.
Enhanced the TzstArchive class with improved error handling for cleanup and file addition operations. Introduced a new extractall method with filtering options for secure extraction. Updated tests to reflect changes in extraction behavior and error handling.
Updated test cases in `test_cli_missing_lines.py`, `test_core_missing_lines.py`, and `test_core_missing_lines_fixed.py` to improve readability and consistency. Changes include replacing redundant comments, simplifying code structure, and ensuring proper function usage (e.g., `_validate_files` instead of `validate_files`).
Introduced new test files to improve coverage for CLI and core functionalities. Added edge case tests for CLI commands, conftest fixtures, and core archive handling, including error handling, streaming mode, and verbose listing.
Added handling for KeyboardInterrupt in `cmd_list` and `cmd_test` functions to gracefully terminate operations and return exit code 130 when interrupted by the user.
Introduced type casting with `Literal` in CLI extraction commands to ensure stricter type safety for filter arguments. Updated extraction logic in `core.py` to differentiate parameters for `extract` and `extractall` methods, improving compatibility and handling of attributes during extraction.
Introduced new test cases in `test_convenience_functions.py` and `test_security_and_errors.py` to cover edge cases, improve code coverage, and validate specific scenarios such as invalid modes, compression levels, and operations on closed archives. These changes address missing lines from the coverage report and enhance robustness.
Introduced new test cases for CLI commands to cover verbose and simple listing functionalities, exception handling, and edge cases. This includes tests for missing files, decompression errors, keyboard interrupts, and advanced scenarios to ensure robust behavior.
Revised the project description in pyproject.toml and the module docstring in src/tzst/__init__.py to reflect the library's focus on modern archive management and Zstandard compression.
Introduced `_is_extreme_compression_level_in_argv` to detect extreme compression levels (>=1000) and updated `_handle_parsing_errors` to return exit code 1 for such cases. Adjusted related tests to validate the new behavior and fixed inconsistencies in test assertions for compression level and filter validation.
- Created integration tests for complex scenarios in `tests/integration/test_complex_scenarios.py`.
- Added unit tests for core functionality, convenience functions, security features, and error handling in `tests/unit/test_archive_basics.py`, `tests/unit/test_convenience_functions.py`, `tests/unit/test_security_and_errors.py`.
- Implemented tests for temporary file exclusion, large file operations, and complex directory structures.
- Included tests for atomic operations and compression level validation.
- Established a structure for integration and unit tests with appropriate docstrings and assertions.
Introduced a `cmd_version` function to handle the `--version` flag, replacing the previous implementation that used `argparse`'s `action='version'`. Updated the argument parser and command execution logic to support the new version handling.
Modified the CI/CD workflow to ignore changes to markdown files, LICENSE, documentation, and .gitignore files for push and pull request events. This helps optimize the workflow by skipping unnecessary builds.
Improved phrasing and formatting in the README to enhance clarity and consistency. Removed redundant sections, streamlined explanations, and updated examples for better readability and usability.