Skip to content

refactor(build): remove dreamplace build, use uv to manage release wheels#31

Merged
Emin017 merged 16 commits intomainfrom
emin/remove-dreamplace-build
Apr 23, 2026
Merged

refactor(build): remove dreamplace build, use uv to manage release wheels#31
Emin017 merged 16 commits intomainfrom
emin/remove-dreamplace-build

Conversation

@Emin017
Copy link
Copy Markdown
Member

@Emin017 Emin017 commented Apr 15, 2026

Summary

This PR reduces ECOS Studio CI/CD build time by removing the need for the ecos-studio pipeline to build ECC and DreamPlace wheels from source during setup and release packaging.

Instead, the server environment now consumes pinned GitHub Release wheels for ecc, ecc-dreamplace, and ecc-tools through ecos/server/pyproject.toml and uv.lock.

CI/CD Impact

Before this change, ECOS Studio builds had to spend time compiling and repairing native wheel artifacts as part of the repository's own build flow.

After this change, the release build path is shorter:

  uv sync locked release wheels -> PyInstaller bundle -> AppImage

This keeps expensive native package builds out of the ECOS Studio CI/CD path and lets this repository focus on assembling and validating the application bundle.

Changes

  • Use pinned release wheels for ECC-related server dependencies.
  • Remove local ECC/DreamPlace wheel build steps from make setup, make build, and prepare-ecos-server.sh.
  • Add make use-local-ecc for developers who still need to test against a local ECC checkout.
  • Add explicit Linux x86_64 + glibc >= 2.34 platform checks because the pinned native wheels are manylinux_2_34_x86_64.
  • Update README documentation to describe the release-wheel based build flow and platform constraints.
  • Simplify cleanup so make clean only cleans the ECOS Studio Bazel workspace.

Notes

The server build environment is intentionally limited to Linux x86_64 with glibc >= 2.34 for now, matching the currently published native wheel artifacts for ecc-dreamplace and ecc-tools.

@Emin017 Emin017 force-pushed the emin/remove-dreamplace-build branch from 31c5ec1 to ecf184c Compare April 15, 2026 09:36
@Emin017 Emin017 marked this pull request as draft April 16, 2026 01:48
@Emin017 Emin017 force-pushed the emin/remove-dreamplace-build branch from 4b4cf15 to e331180 Compare April 22, 2026 09:12
@Emin017 Emin017 changed the title refactor(build): remove dreamplace build in ecos-studio refactor(build): remove dreamplace build, use uv to manage release wheels Apr 22, 2026
@Emin017 Emin017 marked this pull request as ready for review April 22, 2026 09:34
@Emin017 Emin017 self-assigned this Apr 22, 2026
@Emin017 Emin017 added enhancement New feature or request cleanup labels Apr 22, 2026
@Emin017 Emin017 requested a review from Copilot April 23, 2026 01:39
Copy link
Copy Markdown

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

Refactors the ECOS Studio build/release workflow to stop building ECC/DreamPlace wheels locally and instead consume pinned GitHub Release wheels managed via uv (with a corresponding simplification of scripts/docs).

Changes:

  • Switch ecos/server dependencies to pinned alpha release wheels via uv sources, and add an explicit torch dependency.
  • Remove local wheel build/install steps from the server preparation script and the root Makefile build pipeline; add a use-local-ecc helper target for development.
  • Update documentation to describe the new “locked release wheels” workflow.

Reviewed changes

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

Show a summary per file
File Description
ecos/server/pyproject.toml Pins ECC-related dependencies to GitHub Release wheels via uv sources and constrains uv environments.
ecos/scripts/prepare-ecos-server.sh Removes local wheel build logic; relies on uv sync --frozen for the server venv.
ecos/README.md Updates build/wheels documentation to the new release-wheel-based flow.
README.md Updates top-level wording to reflect locked release wheels in the release build.
Makefile Removes wheel build/install targets, adds use-local-ecc, and simplifies release build steps.

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

Comment thread ecos/server/pyproject.toml Outdated
Comment thread ecos/server/pyproject.toml
Comment thread ecos/README.md
Comment thread Makefile
Copy link
Copy Markdown

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 6 out of 7 changed files in this pull request and generated 5 comments.


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

Comment thread ecos/server/pyproject.toml
Comment thread ecos/server/pyproject.toml Outdated
Comment thread Makefile
Comment thread ecos/README.md Outdated
Comment thread README.md Outdated
Copy link
Copy Markdown

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 6 out of 7 changed files in this pull request and generated 4 comments.

Comments suppressed due to low confidence (1)

README.md:52

  • The comment says make setup initializes the "ECC environment", but the setup target now only updates submodules and writes .setup-done (the uv environment is created in make dev / make build). Consider rewording this line to avoid implying that ECC/server dependencies are installed during make setup.
# Setup (init submodules, PDK, and ECC environment)
make setup


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

Comment thread Makefile
Comment thread Makefile Outdated
Comment thread ecos/server/pyproject.toml
Comment thread ecos/scripts/prepare-ecos-server.sh
Copy link
Copy Markdown

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 6 out of 7 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 ecos/scripts/prepare-ecos-server.sh
Emin017 and others added 11 commits April 23, 2026 10:26
… present

Adds a _download_dreamplace_wheel target as an order-only prerequisite
for $(BUNDLE_TAR). If no ecc_dreamplace wheel exists locally, fetches
the latest from GitHub Releases via curl (no auth needed for public repos).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Updates to ecc branch emin/remove-dreamplace-build which deduplicates
dreamplace build infrastructure via bazel_dep + local_path_override.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Signed-off-by: Emin <me@emin.chat>
Signed-off-by: Emin <me@emin.chat>
@Emin017 Emin017 force-pushed the emin/remove-dreamplace-build branch from ce32cc7 to 29587e9 Compare April 23, 2026 07:02
@Emin017 Emin017 merged commit 2ca58c6 into main Apr 23, 2026
3 checks passed
@Emin017 Emin017 deleted the emin/remove-dreamplace-build branch April 23, 2026 07:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cleanup enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants