Ugh sorry for 3x PRs... that's what I get for trying a new workflow 👎 There was a PR from @lainedfles that's unfortunately not reflected here now, apologies for that as well.
Description
This PR introduces uv, a new package manager, as a partial replacement for pip3 in the Docker build process for the "Open WebUI" project. Uv is a mostly drop-in compatible substitute for pip3 with significant performance improvements. In our testing, uv has shown to notably reduce build times — by nearly 50% on GitHub Action runners and by approximately 25-30% when building locally across various platforms. While the resultant build sizes have varied, showing both increases and decreases depending on the build environment, this change aims to leverage uv's efficiency gains to enhance the development workflow and process efficiency. It's important to note that pip3 has not been completely removed; it remains necessary for installing PyTorch and its dependencies, as uv has not yet reliably resolved them across all build environments. As this is an evolving integration, more opinions and testing are highly encouraged to ensure a smooth transition. For further details on uv, please refer to the uv documentation and this introductory blog post.
Changelog Entry
Added
Introduced uv as the new package manager in the Docker build process for certain dependencies, aiming to improve build times and efficiency.
Fixed
N/A
Changed
Partially replaced pip3 with uv in the Docker build
Using pip3:
Using uv:
Changelog Entry
Added
Introduced uv as the new package manager in the Docker build process for certain dependencies, aiming to improve build times and efficiency.
Fixed
N/A
Changed
Partially replaced pip3 with uv in the Docker build process. This does not yet cover PyTorch and its dependencies, which still rely on pip3 due to resolution issues in some environments.
Removed
N/A
Pull Request Checklist
Description: This PR partially introduces uv as a replacement for pip3 in the Docker build process, aimed at improving build times and efficiency for certain dependencies. Pip3 remains in use for installing PyTorch and its dependencies, due to current limitations with uv.
Changelog: A detailed changelog entry has been added, highlighting the introduction of uv, the partial replacement of pip3, and noting the continued use of pip3 for specific dependencies.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.
## 📋 Pull Request Information
**Original PR:** https://github.com/open-webui/open-webui/pull/1577
**Author:** [@justinh-rahb](https://github.com/justinh-rahb)
**Created:** 4/16/2024
**Status:** ✅ Merged
**Merged:** 4/16/2024
**Merged by:** [@tjbck](https://github.com/tjbck)
**Base:** `dev` ← **Head:** `pip2uv2`
---
### 📝 Commits (1)
- [`748a930`](https://github.com/open-webui/open-webui/commit/748a930a5fb2ada14e62e0c7a6f652b7c7d356ad) Replace `pip3` with `uv`
### 📊 Changes
**1 file changed** (+4 additions, -3 deletions)
<details>
<summary>View changed files</summary>
📝 `Dockerfile` (+4 -3)
</details>
### 📄 Description
Ugh sorry for 3x PRs... that's what I get for trying a new workflow 👎 There was a PR from @lainedfles that's unfortunately not reflected here now, apologies for that as well.
## Description
This PR introduces [`uv`](https://github.com/astral-sh/uv), a new package manager, as a partial replacement for `pip3` in the Docker build process for the "Open WebUI" project. `Uv` is a mostly drop-in compatible substitute for `pip3` with significant performance improvements. In our testing, `uv` has shown to notably reduce build times — by nearly 50% on GitHub Action runners and by approximately 25-30% when building locally across various platforms. While the resultant build sizes have varied, showing both increases and decreases depending on the build environment, this change aims to leverage `uv`'s efficiency gains to enhance the development workflow and process efficiency. It's important to note that `pip3` has not been completely removed; it remains necessary for installing PyTorch and its dependencies, as `uv` has not yet reliably resolved them across all build environments. As this is an evolving integration, more opinions and testing are highly encouraged to ensure a smooth transition. For further details on `uv`, please refer to the [uv documentation](https://github.com/astral-sh/uv) and [this introductory blog post](https://astral.sh/blog/uv).
---
### Changelog Entry
#### Added
- Introduced [`uv`](https://github.com/astral-sh/uv) as the new package manager in the Docker build process for certain dependencies, aiming to improve build times and efficiency.
#### Fixed
- N/A
#### Changed
- Partially replaced `pip3` with [`uv`](https://github.com/astral-sh/uv) in the Docker build
#### Using `pip3`:
<img width="1115" alt="Screenshot_2024-04-05_at_10 19 46_PM" src="https://github.com/open-webui/open-webui/assets/52832301/013a38e0-df8a-4a2e-8b5f-e28b3af497ea">
---
#### Using `uv`:
<img width="1115" alt="Screenshot_2024-04-05_at_10 19 23_PM" src="https://github.com/open-webui/open-webui/assets/52832301/2824a3bd-b0bf-47f6-b0ce-f1690b951c8d">
---
### Changelog Entry
#### Added
- Introduced `uv` as the new package manager in the Docker build process for certain dependencies, aiming to improve build times and efficiency.
#### Fixed
- N/A
#### Changed
- Partially replaced `pip3` with `uv` in the Docker build process. This does not yet cover PyTorch and its dependencies, which still rely on `pip3` due to resolution issues in some environments.
#### Removed
- N/A
---
## Pull Request Checklist
- [x] **Description:** This PR partially introduces `uv` as a replacement for `pip3` in the Docker build process, aimed at improving build times and efficiency for certain dependencies. `Pip3` remains in use for installing PyTorch and its dependencies, due to current limitations with `uv`.
- [x] **Changelog:** A detailed changelog entry has been added, highlighting the introduction of `uv`, the partial replacement of `pip3`, and noting the continued use of `pip3` for specific dependencies.
---
<sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
📋 Pull Request Information
Original PR: https://github.com/open-webui/open-webui/pull/1577
Author: @justinh-rahb
Created: 4/16/2024
Status: ✅ Merged
Merged: 4/16/2024
Merged by: @tjbck
Base:
dev← Head:pip2uv2📝 Commits (1)
748a930Replacepip3withuv📊 Changes
1 file changed (+4 additions, -3 deletions)
View changed files
📝
Dockerfile(+4 -3)📄 Description
Ugh sorry for 3x PRs... that's what I get for trying a new workflow 👎 There was a PR from @lainedfles that's unfortunately not reflected here now, apologies for that as well.
Description
This PR introduces
uv, a new package manager, as a partial replacement forpip3in the Docker build process for the "Open WebUI" project.Uvis a mostly drop-in compatible substitute forpip3with significant performance improvements. In our testing,uvhas shown to notably reduce build times — by nearly 50% on GitHub Action runners and by approximately 25-30% when building locally across various platforms. While the resultant build sizes have varied, showing both increases and decreases depending on the build environment, this change aims to leverageuv's efficiency gains to enhance the development workflow and process efficiency. It's important to note thatpip3has not been completely removed; it remains necessary for installing PyTorch and its dependencies, asuvhas not yet reliably resolved them across all build environments. As this is an evolving integration, more opinions and testing are highly encouraged to ensure a smooth transition. For further details onuv, please refer to the uv documentation and this introductory blog post.Changelog Entry
Added
uvas the new package manager in the Docker build process for certain dependencies, aiming to improve build times and efficiency.Fixed
Changed
pip3withuvin the Docker buildUsing
pip3:Using
uv:Changelog Entry
Added
uvas the new package manager in the Docker build process for certain dependencies, aiming to improve build times and efficiency.Fixed
Changed
pip3withuvin the Docker build process. This does not yet cover PyTorch and its dependencies, which still rely onpip3due to resolution issues in some environments.Removed
Pull Request Checklist
uvas a replacement forpip3in the Docker build process, aimed at improving build times and efficiency for certain dependencies.Pip3remains in use for installing PyTorch and its dependencies, due to current limitations withuv.uv, the partial replacement ofpip3, and noting the continued use ofpip3for specific dependencies.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.