Skip to content

chore: Dev to Main - #347

Merged
Avijit-Microsoft merged 8 commits into
mainfrom
dev
Aug 26, 2026
Merged

chore: Dev to Main#347
Avijit-Microsoft merged 8 commits into
mainfrom
dev

Conversation

@PadhiAjit-Microsoft

Copy link
Copy Markdown
Contributor

Purpose

  • This pull request introduces several infrastructure and dependency management improvements across the backend, frontend, and deployment scripts. The main focus is on configuring all Python and Node.js package installations to use internal package registries, ensuring consistent and secure dependency resolution. Additionally, there are minor updates to infrastructure configuration files and documentation.

Dependency management and registry configuration:

  • All requirements.txt and requirements-dev.txt files 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]
  • All relevant Dockerfiles and provisioning scripts (.sh and .ps1) have been updated to use the same internal PyPI index when upgrading/installing pip and dependencies. [1] [2] [3] [4] [5] [6]
  • Frontend .npmrc files are added to configure the npm registry to an internal Azure package feed.

Infrastructure and deployment configuration:

  • The virtualMachineAvailabilityZone variable is set to -1 in both Bicep and generated ARM templates (main.bicep, main.json), likely to indicate no specific availability zone preference. [1] [2] [3]
  • Minor fixes to resource dependency ordering in ARM templates to ensure correct deployment sequencing. [1] [2]
  • Template hash values in generated ARM templates are updated, reflecting the above changes. [1] [2] [3]

Documentation improvements:

  • The backend README.md is updated to instruct developers to install test dependencies using requirements-dev.txt for consistency with the new dependency management approach.

Does this introduce a breaking change?

  • Yes
  • No

How to Test

  • Get the code
git clone [repo-address]
cd [repo-name]
git checkout [branch-name]
npm install
  • Test the code

What to Check

Verify that the following are valid

  • ...

Other Information

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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 -1 and 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.txt still has no internal index directive, and infra/vscode_web/install.sh:1 installs 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-url too; 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/Dockerfile runs npm ci after copying only package*.json, and copies this .npmrc only afterward with COPY . .. The current lockfile happens to contain feed URLs, but future lockfile entries or installs without a locked resolved URL will bypass this setting and use npm's default registry; copy .npmrc before npm ci or 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 privateDnsZoneDeployments 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/scripts/post-provision/agent_scripts/requirements.txt:1
  • The registry migration still leaves infra/vscode_web/requirements.txt unchanged, even though infra/vscode_web/install.sh:1 installs it directly with pip install -r requirements.txt. A VS Code Web setup therefore still resolves these dependencies from the default PyPI, so the stated all-requirements.txt internal-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 ci steps in scenario-app/frontend/Dockerfile run after copying only package*.json, while the .npmrc is copied later with the source tree. The current lockfiles happen to contain feed URLs, but future lockfile entries or installs without a locked resolved URL will bypass this setting; copy .npmrc before each npm ci or 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 pip without 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.sh runs pip install -r requirements.txt, and both infra/vscode_web/requirements.txt and infra/vscode_web/endpoint-requirements.txt remain 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.

Copilot AI review requested due to automatic review settings August 24, 2026 07:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

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 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 backend requirements.txt. A requirements-only change will not rerun lint even though this step installs those files; add both backend requirement paths to on.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 push and pull_request path filters above omit chat-app/backend/requirements.txt and scenario-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

Comment thread infra/avm/main.bicep
@Avijit-Microsoft
Avijit-Microsoft merged commit cb86d11 into main Aug 26, 2026
10 checks passed
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.

4 participants