microsoft / microsoft/hve-core

fix: add lint rule to detect bare pip install and fix beval.yml violation

Open
#2,500 0 comments 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

bug ci enhancement linting scripts workflows
Dominant language
Python
Stars
1.5k
Forks
301
Avg merge
3d 3h
Merged PRs (30d)
92

Description

### Component

Scripts / Workflows

### Description

A companion to #1313, which narrows scope to instruction file updates. This issue owns the enforcement backstop and the one known existing violation.

**Background:** #1313 adds explicit `pip install` prohibitions to the Python instruction files. Without a validation mechanism, those rules have no CI enforcement and regressions can silently appear.

**Known violation:** `.github/workflows/beval.yml` contains a bare `pip install --no-cache-dir "beval[all] @ git+..."` call that should be replaced with a `uv`-managed equivalent to comply with the repo's uv-first Python convention.

### Acceptance Criteria

- [ ] A new reusable workflow (`.github/workflows/pip-install-lint.yml`) runs a script that detects bare `pip install` calls in `.github/workflows/`, `scripts/`, and `.py` files
- [ ] A corresponding job is added to `pr-validation.yml` to invoke the new reusable workflow on every PR targeting `main`
- [ ] The lint check excludes: `uv pip install`/`uv pip freeze` forms, files under `evals/` that reference `pip install` as failure-signal strings, and `THIRD-PARTY-NOTICES`
- [ ] `.github/workflows/beval.yml` is updated to use the `uv`-managed equivalent of the `beval` install
- [ ] The new lint check passes clean against the updated repo

### Additional Context

`npm run lint:all` is a local developer convenience aggregator and is not called by any CI workflow. New lint checks require both a reusable workflow file and an explicit job entry in `pr-validation.yml` to run on PRs.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing .github/workflows/pr-validation.yml and the existing workflow conventions, then inspect .github/workflows/beval.yml and the scoped workflow, scripts, and Python files for bare pip install calls. The work is done when .github/workflows/pip-install-lint.yml and its PR-validation job enforce the stated exclusions, beval.yml uses the uv-managed form, and the check passes cleanly.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, python
Domain
ci-cd, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.