Paul Gschwendtner 5fd1cb56ab build: update dev-infra and rework windows native testing
As part of go/ng:windows-dev-future, we are changing how our
infrastructure supports Windows build & testing. Clearly:

- we will still support contributors on Windows, and we believe we will
  be improving and streamlining the experience here
- we will continue testing the Angular CLI for our Windows users. We are
  aware of the many Windows users using the `ng` CLI.

What is changing? We are no longer actively working towards a Bazel infrastructure
that supports native Windows building and testing. There are currently
two ways to contribute to Angular on Windows. That is via WSL, or via
e.g. native Windows cmd.exe, with Git Bash on top. We acknowledge that
the latter worked sometimes, but we also realize it very often breaks as
nobody on our team uses, verifies it, and it introduces extra complexity
because Bazel on Windows is quite disconnected from Linux/Mac (e.g. no
sandboxing). Going forward, to improve our team's effectiveness, and
improve our stability guarantees for Windows (and Windows contributors),
we are actively discouraging the use of Git Bash for contributing to
Angular; but instead ask for WSL to be used. I can speak as one of the
few long-term team members that have worked on Windows (without WSL) most
of my time, that WSL is great and the contributing experience is much
smoother and also easier to "guide". It's a positive change because we
won't be suggesting "two ways to contribute on Windows", where in
reality one is very brittle and can break at any time!

---

For testing of the Angular CLI: We will continue to maintain the
capability to cross-compile via Bazel with Windows as the target
platform. This allows us to build the e2e tests for Windows, and run
them natively outside WSL to ensure native Windows `ng` CLI testing!
This is what this change mostly does.

Notably, two things are missing here and will be followed up:

- caching of the e2e tests on Windows is not properly functioning yet.
- caching of the WSL node modules + nvm is not working properly yet.

Other than that, we are seeing very similar timing and results of the
Windows tests, so this change unblocks our `rules_js` migration.
2025-03-03 21:44:50 +01:00
..
2024-11-27 15:59:19 +01:00
2021-07-30 13:43:04 +01:00

DevKit Administrative Scripts

This folder contains all the scripts that can be run using devkit-admin.

In order to be able to use the DevKit scripts, you must first run:

$ npm link

This will link the binaries included in this repository, which includes the devkit-admin binary. This document describes each scripts available.

build

Builds the repo and the pack files. The output of build is in dist/ and contains 1 tgz per package which can be installed (the result of npm pack on that package), and a directory using the name of the package to publish.

Flags:

  • --local. Enable building packages with dependencies to their pack files (instead of versions).
  • --snapshot. Enable building packages with dependencies to their snapshot repos (instead of versions).

packages

Outputs a JSON containing all informations from the package script (main files, repo names, versions, deps, etc).

snapshots

Create and upload snapshots. This is used in CI.

Flags:

  • --force. Force push the snapshot to github.
  • --githubToken=<string>. The github token to update the changelog with. Either this of --githubTokenFile is required.
  • --githubTokenFile=<path>. Reads the githubToken from a file instead of the command line (for CI).

templates

Compile and outputs the templates. For now, only README is being built and outputted.

validate

Performs BUILD files and license validation.

Flags:

  • --verbose. Ignore errors and continue showing outputs.