Skip to content

Version 1.1.0#17

Merged
JosunLP merged 21 commits into
mainfrom
dev
Dec 12, 2025
Merged

Version 1.1.0#17
JosunLP merged 21 commits into
mainfrom
dev

Conversation

@JosunLP
Copy link
Copy Markdown
Owner

@JosunLP JosunLP commented Dec 5, 2025

This pull request adds comprehensive Docker support and introduces configurable object rotations to the packing algorithm, along with related documentation and CI improvements. The most significant changes include a new Docker build pipeline, support for per-request and environment-based object rotations, expanded release packaging for macOS, and updates to the documentation to reflect these new features.

Docker Support and CI/CD Integration:

  • Added a production-ready Dockerfile for multi-stage builds, ensuring a minimal runtime image with non-root execution and environment variable configuration. (Dockerfile, DockerfileR1-R54)
  • Created .dockerignore to optimize Docker builds by excluding unnecessary files and directories. (.dockerignore, .dockerignoreR1-R23)
  • Introduced a GitHub Actions workflow (docker.yml) to automatically build and push multi-architecture Docker images to Docker Hub on new releases or manual triggers. (.github/workflows/docker.yml, .github/workflows/docker.ymlR1-R51)
  • Provided a detailed German setup guide for Docker Hub deployment, including secret configuration and troubleshooting. (DOCKER_SETUP.md, DOCKER_SETUP.mdR1-R120)

Release Packaging Improvements:

  • Extended release workflow to build and package binaries for both macOS ARM64 (Apple Silicon) and x86_64 (Intel), in addition to Linux and Windows. (.github/workflows/release.yml, [1] [2]
  • Improved packaging scripts to handle platform-specific SHA256 checksum generation. (.github/workflows/release.yml, .github/workflows/release.ymlR73-R77)
  • Updated documentation to reflect new macOS release targets and Docker image availability. (README.md, [1] [2]

Configurable Object Rotations:

  • Added an optional allow_rotations field to the packing API request, allowing clients to enable or disable 90° object rotations per request. (src/api.rs, [1] [2] [3] [4] [5]
  • Enabled global control of object rotations via the new SORT_IT_NOW_PACKING_ALLOW_ROTATIONS environment variable, with logic to override per request. (src/config.rs, [1] [2]
  • Updated documentation and example configs to describe rotation options and their usage. (README.md, [1] [2] [3] [4]

Documentation Updates:

  • Enhanced feature list and usage instructions in README.md to include object rotation controls (UI and API), Docker usage, and new release artifacts. (README.md, [1] [2] [3]
  • Clarified known limitations regarding object rotation and other algorithmic constraints. (README.md, README.mdL288-R330)

Miscellaneous Improvements:

These changes collectively make the project easier to deploy, more flexible for users, and better documented for both end users and maintainers.

JosunLP and others added 10 commits October 29, 2025 22:29
…e für nicht unterstützte macOS-Architekturen hinzu
* ✨ Füge Unterstützung für die Rotation von Objekten hinzu: Ermöglicht alternative Ausrichtungen während des Verpackungsprozesses und aktualisiert die Benutzeroberfläche zur Konfiguration.

* Optimize rotation deduplication and standardize epsilon handling (#14)

* Initial plan

* Address PR review comments: optimize orientation deduplication and standardize epsilon values

Co-authored-by: JosunLP <[email protected]>

* Extract dimension hash scale factor to named constant and reduce overflow risk

Co-authored-by: JosunLP <[email protected]>

* Fix misleading comment about dimension hash scale factor

Co-authored-by: JosunLP <[email protected]>

* Remove unused dims_almost_equal function after optimization

Co-authored-by: JosunLP <[email protected]>

* Remove unnecessary blank line for code consistency

Co-authored-by: JosunLP <[email protected]>

* Add test coverage for orientation deduplication with equal dimensions

Co-authored-by: JosunLP <[email protected]>

* Add clarifying comments for O(n²) uniqueness checks in tests

Co-authored-by: JosunLP <[email protected]>

* Fix trailing whitespace and align frontend epsilon to backend precision

Co-authored-by: JosunLP <[email protected]>

* Update src/optimizer.rs

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Jonas Pfalzgraf <[email protected]>

---------

Signed-off-by: Jonas Pfalzgraf <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: JosunLP <[email protected]>
Co-authored-by: Jonas Pfalzgraf <[email protected]>
Co-authored-by: Copilot <[email protected]>

* Update README.md

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Jonas Pfalzgraf <[email protected]>

* Move allow_rotations documentation to API endpoints section (#15)

* Initial plan

* Move allow_rotations documentation to API endpoints section

Co-authored-by: JosunLP <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: JosunLP <[email protected]>

---------

Signed-off-by: Jonas Pfalzgraf <[email protected]>
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
* Initial plan

* Add Docker deployment support with GitHub Actions workflow

Co-authored-by: JosunLP <[email protected]>

* Add Docker setup documentation and update Dockerfile to use latest Rust

Co-authored-by: JosunLP <[email protected]>

* Address code review feedback: pin Rust version and improve placeholders

Co-authored-by: JosunLP <[email protected]>

* Apply PR review feedback: security, caching, and documentation improvements

Co-authored-by: JosunLP <[email protected]>

* Apply second round of PR review feedback

Co-authored-by: JosunLP <[email protected]>

* Apply third round of PR review feedback

Co-authored-by: JosunLP <[email protected]>

* Apply fourth round of PR review feedback

Co-authored-by: JosunLP <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: JosunLP <[email protected]>
…n permissions (#16)

Signed-off-by: Jonas Pfalzgraf <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
@JosunLP JosunLP self-assigned this Dec 5, 2025
Copilot AI review requested due to automatic review settings December 5, 2025 10:48
@JosunLP JosunLP added the enhancement New feature or request label Dec 5, 2025
@github-actions github-actions Bot added documentation Improvements or additions to documentation rust config web labels Dec 5, 2025
@JosunLP JosunLP added this to the 1.1.0 milestone Dec 5, 2025
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request introduces comprehensive Docker support and configurable object rotations to the 3D packing algorithm, along with expanded platform support for macOS and enhanced documentation. The changes enable per-request rotation control, streamline deployment through Docker, and extend the release pipeline to cover both Apple Silicon and Intel Macs.

  • Added configurable 90° object rotations via API field allow_rotations and environment variable SORT_IT_NOW_PACKING_ALLOW_ROTATIONS
  • Implemented production-ready Docker support with multi-architecture images (linux/amd64, linux/arm64) and automated Docker Hub deployment
  • Extended release builds to include macOS ARM64 and x86_64 targets with proper auto-update support

Reviewed changes

Copilot reviewed 13 out of 13 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
Dockerfile Multi-stage build configuration with non-root user execution and security best practices
.dockerignore Optimizes Docker build context by excluding unnecessary files
.github/workflows/docker.yml Automated Docker image building and pushing to Docker Hub on releases
DOCKER_SETUP.md Comprehensive German guide for Docker Hub deployment setup and troubleshooting
.github/workflows/release.yml Extended to build and package macOS ARM64 and x86_64 binaries with proper SHA256 checksums
.github/workflows/rust.yml Added explicit contents: read permissions for improved security
src/optimizer.rs Implemented rotation logic with efficient deduplication, comprehensive tests, and orientation-aware placement
src/config.rs Added boolean parser for SORT_IT_NOW_PACKING_ALLOW_ROTATIONS environment variable
src/api.rs Added optional allow_rotations field to PackRequest with per-request override capability
src/update.rs Extended auto-update system to support macOS (both ARM64 and x86_64 architectures)
web/script.js Implemented frontend rotation logic with epsilon-based deduplication matching backend behavior
web/index.html Added checkbox UI for rotation toggle with explanatory hint text
README.md Updated documentation to describe Docker usage, macOS releases, rotation features, and configuration options

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/workflows/docker.yml
Comment thread src/api.rs Outdated
Co-authored-by: Copilot <[email protected]>
Signed-off-by: Jonas Pfalzgraf <[email protected]>
Copilot AI review requested due to automatic review settings December 5, 2025 12:20
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 5, 2025

@JosunLP I've opened a new pull request, #18, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/optimizer.rs
Comment thread src/config.rs
Comment thread README.md
Comment thread README.md
* Initial plan

* Add conditional checks to Docker workflow to skip when secrets are not configured

Co-authored-by: JosunLP <[email protected]>

* Remove redundant ${{ }} wrappers from if conditionals in Docker workflow

Co-authored-by: JosunLP <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: JosunLP <[email protected]>
@JosunLP JosunLP requested a review from Copilot December 5, 2025 12:47
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 8, 2025

@JosunLP I've opened a new pull request, #22, to work on those changes. Once the pull request is ready, I'll request review from you.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 13 out of 13 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Updated dependencies in Cargo.toml for axum, tokio, tower-http, rust-embed, tempfile, flate2, and zip.
- Changed API route pattern from "/*path" to "{*path}" for better path matching.
- Added #[allow(dead_code)] annotations to several functions in model.rs, geometry.rs, optimizer.rs to suppress warnings for unused code.
Copilot AI review requested due to automatic review settings December 11, 2025 19:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/api.rs
Comment thread .dockerignore Outdated
Comment thread .github/workflows/docker.yml
Comment thread Dockerfile
@JosunLP
Copy link
Copy Markdown
Owner Author

JosunLP commented Dec 11, 2025

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 11, 2025

@JosunLP I've opened a new pull request, #23, to work on those changes. Once the pull request is ready, I'll request review from you.

Copilot AI and others added 2 commits December 12, 2025 09:03
* Initial plan

* Address Docker review feedback - improve .dockerignore, add dev tag, clarify Dockerfile

Co-authored-by: JosunLP <[email protected]>

* Update .dockerignore

Co-authored-by: Copilot <[email protected]>
Signed-off-by: Jonas Pfalzgraf <[email protected]>

---------

Signed-off-by: Jonas Pfalzgraf <[email protected]>
Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: JosunLP <[email protected]>
Co-authored-by: Jonas Pfalzgraf <[email protected]>
Co-authored-by: Copilot <[email protected]>
…vior (#21)

* Initial plan

* Add comprehensive test coverage for allow_rotations field

Co-authored-by: JosunLP <[email protected]>

---------

Co-authored-by: copilot-swe-agent[bot] <[email protected]>
Co-authored-by: JosunLP <[email protected]>
Copilot AI review requested due to automatic review settings December 12, 2025 08:04
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CHANGELOG Outdated
Co-authored-by: Copilot <[email protected]>
Signed-off-by: Jonas Pfalzgraf <[email protected]>
Copilot AI review requested due to automatic review settings December 12, 2025 08:13
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread CHANGELOG Outdated
Co-authored-by: Copilot <[email protected]>
Signed-off-by: Jonas Pfalzgraf <[email protected]>
Copilot AI review requested due to automatic review settings December 12, 2025 08:19
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 17 out of 17 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread Cargo.toml
Copy link
Copy Markdown
Contributor

Copilot AI commented Dec 12, 2025

@JosunLP I've opened a new pull request, #24, to work on those changes. Once the pull request is ready, I'll request review from you.

@JosunLP JosunLP merged commit 69903ab into main Dec 12, 2025
18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

config documentation Improvements or additions to documentation enhancement New feature or request rust web

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants