diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e43ae6..c3422c0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,9 +5,83 @@ 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.0.8] - 2025-10-14 + +Summary: Added[14], Changed[42], Chore[2], Documentation[2], Fixed[5] + +### Added + + - ✨ feat(error): add NoLabelsFound error + - ✨ feat(gmail): add get messages functionality + - ✨ feat(gmail): create gmail client struct + - ✨ feat(gmail_client): integrate message summary + - ✨ feat(core): add message management structs + - ✨ feat(message_list): enhance message list trait with documentation and functionalities + - ✨ feat(eol_action): add clone derive to eolaction enum + - ✨ feat(gmail_client): add rule field to GmailClient struct - Add rule field to GmailClient struct to store EolAction. + - ✨ feat(processor): add execute flag to GmailClient + - ✨ feat(gmail_client): add execute flag and EolRule + - ✨ feat(rule_processor): implement rule processing for Gmail + - ✨ feat(cli): implement batch actions for trashing and deleting + - ✨ feat(cli): add message trait for cli subcommands + - ✨ feat(cli): create message trait to share list parameters + +### Fixed + + - 🐛 fix(cli): correct label adding to use non-async function + - 🐛 fix(cli): fix delete command + - 🐛 fix(trash): fix trash command with new gmail client + - 🐛 fix(cli): fix rule execution and client handling + - 🐛 fix(rule_processor): fix label creation and message retrieval + +### Changed + + - ♻️ refactor(gmail): rename labels.rs to gmail_client.rs + - ♻️ refactor(core): rename labels module to gmail_client + - ♻️ refactor(message_list): use gmail client for label retrieval + - ♻️ refactor(cli): remove unused credential file + - ♻️ refactor(processor): use GmailClient instead of credential_file + - ♻️ refactor(gmail): improve gmail client structure + - ♻️ refactor(message_list): update add_labels function to accept &GmailClient + - ♻️ refactor(delete): use GmailClient for message list creation + - ♻️ refactor(trash): use GmailClient instead of credential string + - ♻️ refactor(cli): use gmail client for label operations + - ♻️ refactor(cli): use GmailClient in delete_cli + - ♻️ refactor(cli): use GmailClient for MessageList + - ♻️ refactor(cli): use client instance for message subcommand + - ♻️ refactor(processor): use reference for GmailClient in processor builder + - ♻️ refactor(cli): pass client to run command + - ♻️ refactor(cli): use gmail client in run_cli + - ♻️ refactor(cli): use client for trash subcommand + - ♻️ refactor(cli): use GmailClient instead of credential file + - ♻️ refactor(message_list): implement MessageList trait for GmailClient + - ♻️ refactor(gmail_client): move message_summary to gmail_client + - ♻️ refactor(processor): consolidate message operations in GmailClient + - ♻️ refactor(core): remove unused Delete module - Delete module is no longer needed. + - ♻️ refactor(delete): restructure delete functionality + - ♻️ refactor(message_list): remove client parameter from add_labels + - ♻️ refactor(trash): refactor trash module to trait implementation + - ♻️ refactor(core): remove unused trash module + - ♻️ refactor(processor): simplify trash_messages function + - ♻️ refactor(gmail_client): change MessageSummary's visibility + - ♻️ refactor(delete): streamline delete command execution + - ♻️ refactor(message_cli): simplify message processing + - ♻️ refactor(core): rename Processor to RuleProcessor + - ♻️ refactor(cli): use mutable client for subcommands + - ♻️ refactor(cli): rename Processor to RuleProcessor + - ♻️ refactor(processor): implement RuleProcessor trait for GmailClient + - ♻️ refactor(core): restructure modules for clarity + - ♻️ refactor(message): remove delete functionality + - ♻️ refactor(core): remove processor.rs + - ♻️ refactor(cli): remove unused Delete, Trash trait - Remove Delete and Trash traits from cull_gmail - Use RuleProcessor instead of Delete and Trash traits + - ♻️ refactor(cli): remove unused `Delete` import + - ♻️ refactor(message_list): rename run to get_messages + - ♻️ refactor(cli): extract parameter setting logic + - ♻️ refactor(cli): streamline message retrieval and parameter setting + ## [0.0.7] - 2025-10-12 -Summary: Added[23], Build[1], Changed[8], Chore[4], Documentation[3], Fixed[10] +Summary: Added[23], Build[1], Changed[8], Chore[5], Documentation[3], Fixed[10] ### Added @@ -16,47 +90,47 @@ Summary: Added[23], Build[1], Changed[8], Chore[4], Documentation[3], Fixed[10] - ✨ feat(processor): add execute flag for dry run - ✨ feat(cli): add execute flag to run action - ✨ feat(message_list): increase default max results - - ✨ feat(core): introduce message processor module - - ✨ feat(cli): add chrono crate as a dependency - - ✨ feat(config): add eol query function - - ✨ feat(processor): implement message deletion functionality - - ✨ feat(cli): implement trash and delete actions - - ✨ feat(processor): add trash and delete message functionality - - ✨ feat(processor): add label existence check before processing - - ✨ feat(config): add retention period to eol rule - - ✨ feat(config): add date calculation for EOL queries - - ✨ feat(cli): add option to skip trash actions - - ✨ feat(cli): add skip-delete flag to cli - ✨ feat(cli): add skip action flags to cli - - ✨ feat(cli): add run command to execute rules - - ✨ feat(cli): add run cli command + - ✨ feat(cli): add skip-delete flag to cli + - ✨ feat(cli): add option to skip trash actions + - ✨ feat(config): add date calculation for EOL queries + - ✨ feat(config): add retention period to eol rule + - ✨ feat(processor): add label existence check before processing + - ✨ feat(processor): add trash and delete message functionality + - ✨ feat(cli): implement trash and delete actions + - ✨ feat(processor): implement message deletion functionality + - ✨ feat(config): add eol query function + - ✨ feat(cli): add chrono crate as a dependency + - ✨ feat(core): introduce message processor module + - ✨ feat(processor): implement rule processor + - ✨ feat(eol_rule): add describe function for eol rule - ✨ feat(cli): implement rule execution logic - ✨ feat(eol_action): add parse method to EolAction - - ✨ feat(eol_rule): add describe function for eol rule - - ✨ feat(processor): implement rule processor + - ✨ feat(cli): add run command to execute rules + - ✨ feat(cli): add run cli command ### Fixed - 🐛 fix(utils): correct string elision boundary calculation - 🐛 fix(utils): correct string elision boundary calculation - - 🐛 fix(error): add specific error for missing label in mailbox - add `LableNotFoundInMailbox` error to handle cases where a label is not found in the mailbox - - 🐛 fix(error): add error type for no query string calculated - - 🐛 fix(processor): handle None query in eol_query - - 🐛 fix(cli): correct count type in add_cli - - 🐛 fix(message_age): correct data type for message age count - - 🐛 fix(processor): execute delete messages - - 🐛 fix(processor): correct typo in error message - 🐛 fix(error): correct spelling error in error message + - 🐛 fix(processor): correct typo in error message + - 🐛 fix(processor): execute delete messages + - 🐛 fix(message_age): correct data type for message age count + - 🐛 fix(cli): correct count type in add_cli + - 🐛 fix(processor): handle None query in eol_query + - 🐛 fix(error): add error type for no query string calculated + - 🐛 fix(error): add specific error for missing label in mailbox - add `LableNotFoundInMailbox` error to handle cases where a label is not found in the mailbox ### Changed - ♻️ refactor(utils): remove unused `get_start_boundary` function - - ♻️ refactor(config): make EolRule public - - ♻️ refactor(trash): separate trash preparation and execution - - ♻️ refactor(trash): refactor trash command - - ♻️ refactor(eol_rule): simplify eol_rule tests - - ♻️ refactor(config): extract common logic to reduce duplication - ♻️ refactor(cli): extract action execution to separate function + - ♻️ refactor(config): extract common logic to reduce duplication + - ♻️ refactor(eol_rule): simplify eol_rule tests + - ♻️ refactor(trash): refactor trash command + - ♻️ refactor(trash): separate trash preparation and execution + - ♻️ refactor(config): make EolRule public - ♻️ refactor(cli): inject config into run command ## [0.0.6] - 2025-10-09 @@ -301,7 +375,8 @@ Summary: Added[4], Build[3], Chore[21], Continuous Integration[4], Documentation - ✨ feat(vscode): add custom dictionary entry for ltex - ✨ feat(project): add initial Cargo.toml for cull-gmail tool -[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.6...HEAD +[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.7...HEAD +[0.0.7]: https://github.com/jerus-org/cull-gmail/compare/v0.0.6...v0.0.7 [0.0.6]: https://github.com/jerus-org/cull-gmail/compare/v0.0.5...v0.0.6 [0.0.5]: https://github.com/jerus-org/cull-gmail/compare/v0.0.4...v0.0.5 [0.0.4]: https://github.com/jerus-org/cull-gmail/compare/v0.0.3...v0.0.4 diff --git a/Cargo.lock b/Cargo.lock index 55cb3c8..7102b83 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -258,7 +258,7 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "cull-gmail" -version = "0.0.7" +version = "0.0.8" dependencies = [ "chrono", "clap", diff --git a/Cargo.toml b/Cargo.toml index 77227a0..d47b941 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "cull-gmail" description = "Cull emails from a gmail account using the gmail API" -version = "0.0.7" +version = "0.0.8" authors = ["Jeremiah Russell "] edition = "2024" rust-version = "1.87" diff --git a/PRLOG.md b/PRLOG.md index ad18bdf..ec0de71 100644 --- a/PRLOG.md +++ b/PRLOG.md @@ -5,7 +5,7 @@ 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). -## [Unreleased] +## [0.0.8] - 2025-10-14 ### Changed @@ -185,7 +185,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [#61]: https://github.com/jerus-org/cull-gmail/pull/61 [#62]: https://github.com/jerus-org/cull-gmail/pull/62 [#63]: https://github.com/jerus-org/cull-gmail/pull/63 -[Unreleased]: https://github.com/jerus-org/cull-gmail/compare/v0.0.7...HEAD +[0.0.8]: https://github.com/jerus-org/cull-gmail/compare/v0.0.7...v0.0.8 [0.0.7]: https://github.com/jerus-org/cull-gmail/compare/v0.0.6...v0.0.7 [0.0.6]: https://github.com/jerus-org/cull-gmail/compare/v0.0.5...v0.0.6 [0.0.5]: https://github.com/jerus-org/cull-gmail/compare/v0.0.4...v0.0.5 diff --git a/README.md b/README.md index cdc7456..4147612 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ Or by configuring the dependencies manually in `Cargo.toml`: ```toml [dependencies] -cull-gmail = "0.0.7" +cull-gmail = "0.0.8" ``` ## cull-gmail CLI diff --git a/docs/lib.md b/docs/lib.md index 8f215d2..8c8a889 100644 --- a/docs/lib.md +++ b/docs/lib.md @@ -18,6 +18,6 @@ Or by configuring the dependencies manually in `Cargo.toml`: ```toml [dependencies] -cull-gmail = "0.0.7" +cull-gmail = "0.0.8" ```