Skip to content

Conversation

@RMLYC
Copy link
Collaborator

@RMLYC RMLYC commented Jan 22, 2026

resolve: #127

Each CI run creates a fresh virtual environment and installs dependencies following the README instructions, ensuring a consistent test environment and validating the installation process.

@RMLYC RMLYC requested a review from a team January 22, 2026 08:04
@gemini-code-assist
Copy link
Contributor

Note

Gemini is unable to generate a summary for this pull request due to the file types involved not being currently supported.

@RMLYC RMLYC marked this pull request as draft January 22, 2026 08:04
Copy link

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

Updates CI to validate dependency installation in a freshly created Python environment rather than relying on pre-provisioned Conda environments.

Changes:

  • Pin key dependencies (PyTorch, TileLang) and add pytest to requirements.txt.
  • Replace Conda activation in CI test jobs with actions/setup-python + venv creation and pip install -r requirements.txt.
  • Keep release and nightly test logs as uploaded artifacts.

Reviewed changes

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

File Description
requirements.txt Pins dependency versions and adds pytest for CI/test execution.
.github/workflows/ci.yml Creates/activates a venv and installs dependencies before running the existing test script.

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


python -m pip install --upgrade pip setuptools wheel --no-user
if [[ -f requirements.txt ]]; then
export PIP_NO_BUILD_ISOLATION=1 pip install -r requirements.txt --no-user
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

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

In the nightly job, export PIP_NO_BUILD_ISOLATION=1 pip install ... does not execute pip; export treats pip/install/etc as variable names and the dependency installation step will be skipped. Set PIP_NO_BUILD_ISOLATION on its own line or prefix the command (as done in the release job).

Suggested change
export PIP_NO_BUILD_ISOLATION=1 pip install -r requirements.txt --no-user
export PIP_NO_BUILD_ISOLATION=1
pip install -r requirements.txt --no-user

Copilot uses AI. Check for mistakes.
Comment on lines +54 to +63
- name: Ensure persistent venv and install dependencies
run: |
source ~/miniconda3/etc/profile.d/conda.sh
conda activate tileops-release
set -e
VENV_DIR="tileops_venv"
REQS_HASH=$(sha256sum requirements.txt 2>/dev/null | awk '{print $1}' || echo "no_requirements")
MARKER="${{ runner.tool_cache }}/.venv_marker_${{ runner.os }}_${REQS_HASH:0:8}"

if [[ -f "$MARKER" ]] && [[ -f "${{ runner.tool_cache }}/${VENV_DIR}/bin/activate" ]]; then
echo "Found cached venv and matching marker — reusing"
else
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

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

This workflow claims to create a fresh environment per CI run, but the venv reuse logic (marker + ${{ runner.tool_cache }}) can keep state across runs on self-hosted runners. If the goal is to validate install-from-scratch, consider always recreating the venv, or switch to an explicit actions/cache key and clear it when validating the README install path.

Copilot uses AI. Check for mistakes.
Comment on lines +70 to 85
if [[ -f requirements.txt ]]; then
PIP_NO_BUILD_ISOLATION=1 pip install -r requirements.txt --no-user
else
echo "requirements.txt not found — skipping pip install -r requirements.txt"
fi
touch "$MARKER"
fi
shell: bash

- name: Run tests
run: |
VENV_DIR="tileops_venv"
source "${{ runner.tool_cache }}/${VENV_DIR}/bin/activate"
export PYTHONPATH="$(pwd):$PYTHONPATH"
echo "PYTHONPATH=$PYTHONPATH"
bash tests/ci_test.sh tileops_test_release.log
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

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

The install step only runs pip install -r requirements.txt and then sets PYTHONPATH to the repo. If the intent is to validate the README/source install process (and Issue #127's “build and install TileOps” requirement), add a step that installs the package via pip (e.g., editable install with the project’s extras) instead of relying on PYTHONPATH.

Copilot uses AI. Check for mistakes.
Comment on lines +144 to +145
export PIP_NO_BUILD_ISOLATION=1 pip install -r requirements.txt --no-user
retry_cmd pip install git+https://github.com/tile-ai/tilelang.git --no-user
Copy link

Copilot AI Jan 23, 2026

Choose a reason for hiding this comment

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

Nightly installs tilelang from requirements.txt and then installs tilelang again from GitHub. This double-install increases CI time and can mask which version is actually under test. Consider using a separate nightly requirements/constraints file, or install the GitHub version with --upgrade/--no-deps and remove tilelang from the base requirements for the nightly job.

Suggested change
export PIP_NO_BUILD_ISOLATION=1 pip install -r requirements.txt --no-user
retry_cmd pip install git+https://github.com/tile-ai/tilelang.git --no-user
export PIP_NO_BUILD_ISOLATION=1
# Install all requirements except tilelang to avoid double-installing it in nightly
retry_cmd pip install -r <(grep -vE '^\s*tilelang' requirements.txt) --no-user
# Install tilelang from GitHub, ensuring this version is under test
retry_cmd pip install --upgrade --no-deps git+https://github.com/tile-ai/tilelang.git --no-user

Copilot uses AI. Check for mistakes.
python -m venv "${{ runner.tool_cache }}/${VENV_DIR}"
# shellcheck source=/dev/null
source "${{ runner.tool_cache }}/${VENV_DIR}/bin/activate"
python -m pip install --upgrade pip setuptools wheel --no-user
Copy link
Collaborator

Choose a reason for hiding this comment

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

I suggest caching the packages dependencies for speedup the process, you can use setup python or cache action

with:
python-version: "3.11"

- name: Ensure persistent venv and install dependencies
Copy link
Collaborator

Choose a reason for hiding this comment

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

I strongly recommend using container as a clean environment instead of reusing the persistent venv.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[CI][Enhancement] Miss the tileOps install and build process.

2 participants