chore: Dev to Main - #347
Conversation
fix: Configured Microsoft Package Feed Proxy
There was a problem hiding this comment.
Pull request overview
This pull request standardizes internal package registries and updates VM deployment configuration.
Changes:
- Configures internal PyPI and npm registries.
- Updates Dockerfiles, provisioning scripts, and backend documentation.
- Sets VM availability zones to
-1and regenerates ARM templates.
Reviewed changes
Copilot reviewed 18 out of 20 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
tests/e2e-test/requirements.txt |
Adds internal PyPI index. |
scenario-app/frontend/.npmrc |
Configures internal npm registry. |
scenario-app/backend/requirements.txt |
Adds internal PyPI index. |
scenario-app/backend/Dockerfile |
Uses internal PyPI for pip upgrades. |
infra/scripts/post-provision/data_scripts/run_upload_data_scripts.sh |
Uses internal PyPI for pip upgrades. |
infra/scripts/post-provision/data_scripts/run_upload_data_scripts.ps1 |
Uses internal PyPI for pip upgrades. |
infra/scripts/post-provision/data_scripts/requirements.txt |
Adds internal PyPI index. |
infra/scripts/post-provision/agent_scripts/run_create_agents_scripts.sh |
Uses internal PyPI for pip upgrades. |
infra/scripts/post-provision/agent_scripts/run_create_agents_scripts.ps1 |
Uses internal PyPI for pip upgrades. |
infra/scripts/post-provision/agent_scripts/requirements.txt |
Adds internal PyPI index. |
infra/main.json |
Regenerates deployment template changes. |
infra/avm/main.json |
Regenerates AVM template changes. |
infra/avm/main.bicep |
Configures non-zonal VM placement. |
chat-app/frontend/.npmrc |
Configures internal npm registry. |
chat-app/backend/requirements.txt |
Adds internal PyPI index. |
chat-app/backend/requirements-dev.txt |
Adds development dependencies and internal PyPI configuration. |
chat-app/backend/README.md |
Documents development dependency installation. |
chat-app/backend/Dockerfile |
Uses internal PyPI for pip upgrades. |
Suppressed comments (9)
chat-app/backend/requirements.txt:1
- The migration is incomplete for the repository's other Python environment:
infra/vscode_web/requirements.txtstill has no internal index directive, andinfra/vscode_web/install.sh:1installs it directly. That environment will continue resolving from the default PyPI, contrary to the stated all-requirements internal registry policy; update that requirements file and its install path as well.
--index-url https://packagefeedproxy.microsoft.io/pypi/simple/
chat-app/backend/requirements.txt:1
- The internal index is still bypassed by direct pip upgrades in the CI workflows (
.github/workflows/pylint.yml:28,.github/workflows/test-automation-v2.yml:54, and.github/workflows/job-post-deploy.yml:53). Since this PR describes all Python package installations as using the internal registry, those commands should pass the same--index-urltoo; otherwise CI continues to download pip from the default public index.
--index-url https://packagefeedproxy.microsoft.io/pypi/simple/
chat-app/frontend/.npmrc:1
- This registry setting is not loaded by the frontend image build:
chat-app/frontend/Dockerfilerunsnpm ciafter copying onlypackage*.json, and copies this.npmrconly afterward withCOPY . .. The current lockfile happens to contain feed URLs, but future lockfile entries or installs without a lockedresolvedURL will bypass this setting and use npm's default registry; copy.npmrcbeforenpm cior pass the registry explicitly.
registry=https://pkgs.dev.azure.com/ms-feed-12/1es-public/_packaging/npm-public/npm/registry/
infra/avm/main.json:28346
- This hunk only reorders the same dependency entries in
dependsOn; ARM treats that array as a set of dependency edges and does not sequence entries by their position. Consequently, this generated change cannot fix deployment ordering. If a dependency is missing, update the Bicep dependency graph and regenerate the template instead of only reordering the array.
infra/main.json:33389 - This hunk only reorders the same
privateDnsZoneDeploymentsentries independsOn; ARM treats that array as a set of dependency edges and does not sequence entries by their position. Consequently, this generated change cannot fix deployment ordering. If a dependency is missing, update the Bicep dependency graph and regenerate the template instead of only reordering the array.
infra/scripts/post-provision/agent_scripts/requirements.txt:1 - The registry migration still leaves
infra/vscode_web/requirements.txtunchanged, even thoughinfra/vscode_web/install.sh:1installs it directly withpip install -r requirements.txt. A VS Code Web setup therefore still resolves these dependencies from the default PyPI, so the stated all-requirements.txtinternal-feed policy is incomplete; add the index directive to that requirements file as well.
--index-url https://packagefeedproxy.microsoft.io/pypi/simple/
scenario-app/frontend/.npmrc:1
- This registry setting is not loaded by the scenario image build: both
npm cisteps inscenario-app/frontend/Dockerfilerun after copying onlypackage*.json, while the.npmrcis copied later with the source tree. The current lockfiles happen to contain feed URLs, but future lockfile entries or installs without a lockedresolvedURL will bypass this setting; copy.npmrcbefore eachnpm cior pass the registry explicitly.
registry=https://pkgs.dev.azure.com/ms-feed-12/1es-public/_packaging/npm-public/npm/registry/
tests/e2e-test/requirements.txt:1
- The e2e workflow still runs
python -m pip install --upgrade pipwithout an index override before installing this requirements file, so pip itself is fetched from the default PyPI. If the stated policy covers all Python package installations, update that workflow (and the other remaining CI pip-upgrade steps) to use the internal index too.
--index-url https://packagefeedproxy.microsoft.io/pypi/simple/
tests/e2e-test/requirements.txt:1
- This only updates the application requirements files, but the repository still has a separate VS Code Web install path:
infra/vscode_web/install.shrunspip install -r requirements.txt, and bothinfra/vscode_web/requirements.txtandinfra/vscode_web/endpoint-requirements.txtremain without this index directive. That path will therefore resolve from the default index, which contradicts the stated goal that all Python requirements use the internal feed. Please configure both files (or the install script) as well.
--index-url https://packagefeedproxy.microsoft.io/pypi/simple/
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
fix: Proxy feed update for dev container & vsweb
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 29 out of 31 changed files in this pull request and generated 1 comment.
Suppressed comments (2)
.github/workflows/pylint.yml:28
- The Pylint workflow's path filter only includes Python sources,
.flake8, and this workflow, not either backendrequirements.txt. A requirements-only change will not rerun lint even though this step installs those files; add both backend requirement paths toon.push.paths.
python -m pip install --upgrade pip --index-url https://packagefeedproxy.microsoft.io/pypi/simple/
.github/workflows/tests.yaml:50
- The added registry setup is only exercised when this workflow runs, but both
pushandpull_requestpath filters above omitchat-app/backend/requirements.txtandscenario-app/backend/requirements.txt. A future dependency or registry-only change can therefore merge without this installation/test job running; include the backend requirement paths in both trigger blocks.
python -m pip install --upgrade pip --index-url https://packagefeedproxy.microsoft.io/pypi/simple/
python -m pip install -r chat-app/backend/requirements.txt
python -m pip install -r scenario-app/backend/requirements.txt
Purpose
Dependency management and registry configuration:
requirements.txtandrequirements-dev.txtfiles for Python projects now specify a custom PyPI index URL (--index-url https://packagefeedproxy.microsoft.io/pypi/simple/) to ensure dependencies are pulled from an internal package feed. [1] [2] [3] [4] [5] [6].shand.ps1) have been updated to use the same internal PyPI index when upgrading/installingpipand dependencies. [1] [2] [3] [4] [5] [6].npmrcfiles are added to configure the npm registry to an internal Azure package feed.Infrastructure and deployment configuration:
virtualMachineAvailabilityZonevariable is set to-1in both Bicep and generated ARM templates (main.bicep,main.json), likely to indicate no specific availability zone preference. [1] [2] [3]Documentation improvements:
README.mdis updated to instruct developers to install test dependencies usingrequirements-dev.txtfor consistency with the new dependency management approach.Does this introduce a breaking change?
How to Test
What to Check
Verify that the following are valid
Other Information