Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1faa8f1982
|
||
|
|
94df2c8d4f
|
+39
-1
@@ -5,7 +5,45 @@ 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.2.0] - 2025-12-04
|
||||
## [0.7.0] - 2026-08-28
|
||||
|
||||
### Changed
|
||||
|
||||
- Upgraded dependencies: clap 4.6.6, imap 3.0.0-alpha.15, native-tls 0.2.18
|
||||
- Migrated IMAP client to the imap 3.x `ClientBuilder` and `AppendCmd` APIs
|
||||
- Docker images are now tagged with the crate version on main and the short commit SHA otherwise
|
||||
- Upgraded build toolchain to Rust 1.98 (pinned via `rust-toolchain.toml`)
|
||||
- Updated Docker images: builder `rust:1.98-trixie`, runtime Debian trixie with `libssl3t64`
|
||||
|
||||
### Removed
|
||||
|
||||
- Unused `imap-proto` dependency
|
||||
- Unsound `lexical-core 0.7.6` dependency chain (RUSTSEC-2023-0086), `cargo audit` is now clean
|
||||
|
||||
## [0.6.0] - 2025-12-12
|
||||
|
||||
### Changed
|
||||
|
||||
- Replaced the third-party `rust-pop3-client` crate with a custom POP3 implementation
|
||||
- POP3 messages are now retrieved as raw bytes over native-tls, without encoding or line ending conversions
|
||||
- Reduced dependency footprint by dropping `rust-pop3-client`
|
||||
|
||||
### Fixed
|
||||
|
||||
- POP3 byte-stuffing (doubled leading dots) is now handled correctly
|
||||
- Original email byte structure is preserved during retrieval
|
||||
|
||||
## [0.5.0] - 2025-12-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- `X-WS-*` headers (e.g. `X-WS-Attachment-UUID`) are now detected as MIME headers so adjacent attachment headers (`Content-Type`, `Content-Disposition`) get normalized properly
|
||||
|
||||
### Added
|
||||
|
||||
- Test case for attachment header normalization
|
||||
|
||||
## [0.3.0] - 2025-12-04
|
||||
|
||||
### Added
|
||||
|
||||
|
||||
Generated
+1
-1
@@ -501,7 +501,7 @@ checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
|
||||
|
||||
[[package]]
|
||||
name = "rs_pop_imap_importer"
|
||||
version = "0.6.0"
|
||||
version = "0.7.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"dotenvy",
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "rs_pop_imap_importer"
|
||||
version = "0.6.0"
|
||||
version = "0.7.0"
|
||||
edition = "2024"
|
||||
|
||||
[lib]
|
||||
|
||||
@@ -3,6 +3,16 @@
|
||||
# Variables
|
||||
IMAGE_NAME = pop-imap-importer
|
||||
DOCKER_PLATFORM = linux/amd64
|
||||
VERSION = $(shell grep -m1 '^version' Cargo.toml | cut -d'"' -f2)
|
||||
GIT_BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
|
||||
GIT_SHA = $(shell git rev-parse --short HEAD)
|
||||
|
||||
# Docker tag: version number on main branch, short commit SHA otherwise
|
||||
ifeq ($(GIT_BRANCH),main)
|
||||
DOCKER_TAG = $(VERSION)
|
||||
else
|
||||
DOCKER_TAG = $(GIT_SHA)
|
||||
endif
|
||||
|
||||
# Default target
|
||||
.PHONY: help
|
||||
@@ -36,29 +46,29 @@ test: ## Run all tests
|
||||
# Docker targets
|
||||
|
||||
.PHONY: build
|
||||
build: ## Build the Docker image for linux/amd64 platform
|
||||
docker build --platform=$(DOCKER_PLATFORM) -t $(IMAGE_NAME) .
|
||||
build: ## Build the Docker image for linux/amd64 platform (tagged with version on main, commit SHA otherwise)
|
||||
docker build --platform=$(DOCKER_PLATFORM) -t $(IMAGE_NAME):$(DOCKER_TAG) .
|
||||
|
||||
.PHONY: run
|
||||
run: ## Run the Docker container
|
||||
docker run --platform=$(DOCKER_PLATFORM) --rm -it $(IMAGE_NAME)
|
||||
docker run --platform=$(DOCKER_PLATFORM) --rm -it $(IMAGE_NAME):$(DOCKER_TAG)
|
||||
|
||||
.PHONY: run-with-env
|
||||
run-with-env: ## Run the Docker container with a custom .env file
|
||||
docker run --platform=$(DOCKER_PLATFORM) --rm -it -v $(PWD)/.env:/app/.env $(IMAGE_NAME)
|
||||
docker run --platform=$(DOCKER_PLATFORM) --rm -it -v $(PWD)/.env:/app/.env $(IMAGE_NAME):$(DOCKER_TAG)
|
||||
|
||||
.PHONY: clean
|
||||
clean: ## Remove the Docker image
|
||||
docker rmi $(IMAGE_NAME)
|
||||
docker rmi $(IMAGE_NAME):$(DOCKER_TAG)
|
||||
|
||||
.PHONY: push
|
||||
push: ## Push the Docker image to a registry (requires REPOSITORY variable)
|
||||
ifndef REPOSITORY
|
||||
$(error REPOSITORY is not set. Please set it with: make push REPOSITORY=your-repo/image-name)
|
||||
endif
|
||||
docker tag $(IMAGE_NAME) $(REPOSITORY):latest
|
||||
docker push $(REPOSITORY):latest
|
||||
docker tag $(IMAGE_NAME):$(DOCKER_TAG) $(REPOSITORY):$(DOCKER_TAG)
|
||||
docker push $(REPOSITORY):$(DOCKER_TAG)
|
||||
|
||||
.PHONY: shell
|
||||
shell: ## Run a shell in the Docker container
|
||||
docker run --platform=$(DOCKER_PLATFORM) --rm -it $(IMAGE_NAME) sh
|
||||
docker run --platform=$(DOCKER_PLATFORM) --rm -it $(IMAGE_NAME):$(DOCKER_TAG) sh
|
||||
Reference in New Issue
Block a user