Conversation
🦋 Changeset detectedLatest commit: a06c5c3 The changes in this PR will be included in the next version bump. This PR includes changesets to release 1 package
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
erikareads
left a comment
There was a problem hiding this comment.
Are there any other places where we're creating a new Output class?
The other invocation are all in tests. I dismissed the need to touch them for this PR because the tests all pass, but I'll take a closer look. |
ca2382f
…efactor-output
|
I added these notes the primary diff section of the PR description. Loosened some regex to accmmomodate line breaks: Updated some snapshots that had color in them to no longer have color: |
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## vercel@37.13.0 ### Minor Changes - Add telemetry for `vercel logs` ([#12386](#12386)) - Add telemetry for `vercel env pull` ([#12368](#12368)) - add telemetry for `vercel env rm` ([#12384](#12384)) - [cli] add subcommand tracking for `dns` group ([#12375](#12375)) - [cli] add telemetry for `vercel certs ls` ([#12383](#12383)) - [cli] add telemetry tracking to vercel inspect ([#12367](#12367)) - Add telemetry for `vercel certs remove` ([#12394](#12394)) - Add telemetry for `vercel integration list` ([#12404](#12404)) - add telemetry tracking to `env add` ([#12357](#12357)) - track standard environments in `vc env add` ([#12385](#12385)) - [cli] add telemetry for `vercel target ls` ([#12352](#12352)) - [cli] add telemetry tracking for `vercel domains ls` ([#12400](#12400)) - [cli] add `VERCEL_ENV` and `VERCEL` to process to simulate runtime ([#12358](#12358)) - Add telemetry for `vercel domains move` ([#12411](#12411)) - [cli] add telemetry tracking to `git connect` and `git disconnect` ([#12373](#12373)) - Add telemetry to `vercel domains buy` ([#12413](#12413)) - [cli] add telemetry tracking to `project list` ([#12339](#12339)) - Add telemetry for `vercel domains add` ([#12409](#12409)) - Add telemetry to `vercel domains rm` ([#12410](#12410)) - Add telemetry for `vercel list` ([#12364](#12364)) - [cli] add subcommand tracking for `integration` group ([#12377](#12377)) - Add telemetry for `vercel certs add` ([#12391](#12391)) - [cli] add subcommand tracking for `domains` group ([#12374](#12374)) - [cli] add telemetry tracking to `project add` ([#12340](#12340)) - Add telemetry for `vercel integration open` ([#12408](#12408)) - Add telemetry for `vercel init` ([#12371](#12371)) - [cli] add subcommand tracking for `integration` group ([#12377](#12377)) - [cli] add telemetry tracking for `vercel dns import` ([#12379](#12379)) - [cli] add telemetry for `vercel dns ls` ([#12380](#12380)) - Add telemetry for `vercel env ls` ([#12392](#12392)) - Add telemetry for `vercel bisect` ([#12362](#12362)) - [cli] add telemetry for `vercel dns remove` ([#12381](#12381)) - Add telemetry for `vercel integration add` ([#12406](#12406)) - [cli] add telemetry tracking for vercel dev invocations ([#12349](#12349)) - [cli] add subcommand tracking for `certs` group ([#12376](#12376)) - [cli] add telemetry for `vercel redeploy` ([#12353](#12353)) - [cli] add telemetry for `vercel domains inspect` ([#12407](#12407)) - Add telemetry for `vercel certs issue` ([#12401](#12401)) - Add telemetry for `vercel link` ([#12360](#12360)) ### Patch Changes - Remove stray file ([#12363](#12363)) - add metrics to dns add ([#12414](#12414)) - Add telemetry to the `teams` subcommands. Telemetry collection is not currently enabled and when it is, will be a major version bump for the CLI. ([#12346](#12346)) - add telemetry to `vc pull` ([#12387](#12387)) - [cli] refactor Output usage ([#12305](#12305)) - extract pull invocation from build ([#12372](#12372)) - extract vc pull logic from entrypoint ([#12378](#12378)) - Updated dependencies \[[`13bb443f2b0791c7bd402447fcb540cffd0b6eae`](13bb443)]: - @vercel/remix-builder@2.2.13 ## @vercel/remix-builder@2.2.13 ### Patch Changes - Update `@remix-run/dev` fork to v2.13.1 ([#12334](#12334)) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
This PR was opened by the [Changesets release](https://github.com/changesets/action) GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated. # Releases ## vercel@37.13.0 ### Minor Changes - Add telemetry for `vercel logs` ([#12386](vercel/vercel#12386)) - Add telemetry for `vercel env pull` ([#12368](vercel/vercel#12368)) - add telemetry for `vercel env rm` ([#12384](vercel/vercel#12384)) - [cli] add subcommand tracking for `dns` group ([#12375](vercel/vercel#12375)) - [cli] add telemetry for `vercel certs ls` ([#12383](vercel/vercel#12383)) - [cli] add telemetry tracking to vercel inspect ([#12367](vercel/vercel#12367)) - Add telemetry for `vercel certs remove` ([#12394](vercel/vercel#12394)) - Add telemetry for `vercel integration list` ([#12404](vercel/vercel#12404)) - add telemetry tracking to `env add` ([#12357](vercel/vercel#12357)) - track standard environments in `vc env add` ([#12385](vercel/vercel#12385)) - [cli] add telemetry for `vercel target ls` ([#12352](vercel/vercel#12352)) - [cli] add telemetry tracking for `vercel domains ls` ([#12400](vercel/vercel#12400)) - [cli] add `VERCEL_ENV` and `VERCEL` to process to simulate runtime ([#12358](vercel/vercel#12358)) - Add telemetry for `vercel domains move` ([#12411](vercel/vercel#12411)) - [cli] add telemetry tracking to `git connect` and `git disconnect` ([#12373](vercel/vercel#12373)) - Add telemetry to `vercel domains buy` ([#12413](vercel/vercel#12413)) - [cli] add telemetry tracking to `project list` ([#12339](vercel/vercel#12339)) - Add telemetry for `vercel domains add` ([#12409](vercel/vercel#12409)) - Add telemetry to `vercel domains rm` ([#12410](vercel/vercel#12410)) - Add telemetry for `vercel list` ([#12364](vercel/vercel#12364)) - [cli] add subcommand tracking for `integration` group ([#12377](vercel/vercel#12377)) - Add telemetry for `vercel certs add` ([#12391](vercel/vercel#12391)) - [cli] add subcommand tracking for `domains` group ([#12374](vercel/vercel#12374)) - [cli] add telemetry tracking to `project add` ([#12340](vercel/vercel#12340)) - Add telemetry for `vercel integration open` ([#12408](vercel/vercel#12408)) - Add telemetry for `vercel init` ([#12371](vercel/vercel#12371)) - [cli] add subcommand tracking for `integration` group ([#12377](vercel/vercel#12377)) - [cli] add telemetry tracking for `vercel dns import` ([#12379](vercel/vercel#12379)) - [cli] add telemetry for `vercel dns ls` ([#12380](vercel/vercel#12380)) - Add telemetry for `vercel env ls` ([#12392](vercel/vercel#12392)) - Add telemetry for `vercel bisect` ([#12362](vercel/vercel#12362)) - [cli] add telemetry for `vercel dns remove` ([#12381](vercel/vercel#12381)) - Add telemetry for `vercel integration add` ([#12406](vercel/vercel#12406)) - [cli] add telemetry tracking for vercel dev invocations ([#12349](vercel/vercel#12349)) - [cli] add subcommand tracking for `certs` group ([#12376](vercel/vercel#12376)) - [cli] add telemetry for `vercel redeploy` ([#12353](vercel/vercel#12353)) - [cli] add telemetry for `vercel domains inspect` ([#12407](vercel/vercel#12407)) - Add telemetry for `vercel certs issue` ([#12401](vercel/vercel#12401)) - Add telemetry for `vercel link` ([#12360](vercel/vercel#12360)) ### Patch Changes - Remove stray file ([#12363](vercel/vercel#12363)) - add metrics to dns add ([#12414](vercel/vercel#12414)) - Add telemetry to the `teams` subcommands. Telemetry collection is not currently enabled and when it is, will be a major version bump for the CLI. ([#12346](vercel/vercel#12346)) - add telemetry to `vc pull` ([#12387](vercel/vercel#12387)) - [cli] refactor Output usage ([#12305](vercel/vercel#12305)) - extract pull invocation from build ([#12372](vercel/vercel#12372)) - extract vc pull logic from entrypoint ([#12378](vercel/vercel#12378)) - Updated dependencies \[[`e4304c4526f6062d23b7fdb381d9bb24c7431a0d`](vercel/vercel@e4304c4)]: - @vercel/remix-builder@2.2.13 ## @vercel/remix-builder@2.2.13 ### Patch Changes - Update `@remix-run/dev` fork to v2.13.1 ([#12334](vercel/vercel#12334)) Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
On the path towards making the CLI entrypoint more testable, this PR refactors usage of
Outputto be less interconnected to the system. It is now wrapped by a singleton that can be modified (if necessary) as the program flows.This allows other contexts to use the same singleton after the initial CLI logic parses the args and updates the values on the singleton. The removal of this direct coupling allows future refactors of the Vercel CLI entrypoint that we'd need to do in order to write unit tests for that logic.
The
outputinstance is no longer coupled to theclientinstance.Primary Diff
There are a lot of changes in this PR, but most of them are adjusting the call sites of the
outputmethods. The core changes are:Test setup changes:
Loosened some regex to accmmomodate line breaks:
Updated some snapshots that had color in them to no longer have color:
Consumer-facing Change
Instead of:
Use:
Card: https://linear.app/vercel/issue/ZERO-2738/refactor-tangled-output-from-client-in-vercel-cli