Commit Graph

19 Commits

Author SHA1 Message Date
Matt Bierner
7a090df6c7 Re-remove webpack (again again)
This reverts commit 1d31c3ce40.
2026-03-11 10:46:45 -07:00
Osvaldo Ortega
1d31c3ce40 Revert "Re-remove webpack" 2026-03-10 20:12:53 -07:00
Matt Bierner
03968c2076 Re-remove webpack
All of our extensions are now using esbuild
2026-03-10 13:42:52 -07:00
Matt Bierner
9086b47862 Temporarily restore webpack ext builds
Needed since https://github.com/microsoft/vscode/pull/298920 snuck in which brought back webpack for the github extension
2026-03-05 08:45:54 -08:00
Matt Bierner
ffc4f9dcb3 Reapply 8e445caeff
Switching to a slightly older postcss version to avoid the official build issue
2026-03-03 10:57:52 -08:00
Matt Bierner
8e445caeff Revert "Remove remaining webpack references for building extensions"
This reverts commit 3d7cf10fd1.
2026-03-02 22:42:15 -08:00
Matt Bierner
3d7cf10fd1 Remove remaining webpack references for building extensions
All extensions now should be fully ported over to use esbuild instead of webpack
2026-03-02 15:07:39 -08:00
João Moreno
d2f1f7ce97 Inline Compile & CompileCLI stages into platform specific jobs (#296006)
* chore: ralph loop checkpoint - 2026-02-17 12:48

* fix shell script

* Inline compile stage into platform jobs

Remove the standalone Compile stage from the ADO pipeline. Each
platform job (Windows, Linux, macOS, Alpine, Web) now compiles
TypeScript itself instead of downloading a shared Compilation artifact.

- Add VSCODE_RUN_CHECKS parameter to Linux jobs for hygiene/lint/CG
- Add VSCODE_RUN_COMPILE_EXTRAS parameter to macOS jobs for telemetry
  extraction and sourcemap upload
- Remove VSCODE_COMPILE_ONLY parameter entirely
- Delete product-compile.yml (no longer referenced)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Always run telemetry extraction on macOS builds

The macOS Universal app merge requires both x64 and arm64 builds to have
identical file sets. Telemetry extraction was only running on arm64 (via
VSCODE_RUN_COMPILE_EXTRAS), causing the universal merge to fail due to
missing telemetry-core.json and telemetry-extensions.json in the x64 build.

Move telemetry extraction outside the VSCODE_RUN_COMPILE_EXTRAS gate so
it runs on all macOS builds. Sourcemap upload remains gated.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Run telemetry extraction on all client builds

All client builds (Linux, Windows, macOS) need telemetry-core.json and
telemetry-extensions.json. Previously only macOS arm64 ran extract-telemetry.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Only run telemetry extraction on Linux x64 (client build)

Linux arm64 and armhf are server-only builds, no need for telemetry files.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove .ralph scaffolding files

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Fix telemetry extraction on Windows with native PowerShell

The bash extract-telemetry.sh script fails on Windows because the Unix
bin shim gets interpreted as Node.js code. Use a native PowerShell
implementation that calls the extractor JS entry point directly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Handle missing telemetry files gracefully on Windows

The telemetry extractor may skip emitting declarations-resolved.json
when no events are found. Handle this case with a warning instead of
failing the build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Use deterministic build date from git commit timestamp

When each platform compiles independently, the build date embedded in
cli.js (via INSERT_PRODUCT_CONFIGURATION) differs between machines
because each uses new Date().toISOString(). This causes the macOS
Universal app merge to fail since cli.js SHA differs between x64/arm64.

Fix: use the git commit date (git log -1 --format=%cI HEAD) instead
of the current wall-clock time. This ensures all independent builds
on different machines produce identical timestamps.

Updated in:
- build/lib/date.ts: writeISODate() uses git commit date
- build/next/index.ts: bundle(), transpile, and readISODate fallback
  all use git commit date

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Remove redundant extensions-ci task from CI pipelines

core-ci (esbuild path) already includes cleanExtensionsBuildTask,
compileNonNativeExtensionsBuildTask, and compileExtensionMediaBuildTask.
Running extensions-ci in parallel caused a race condition where
core-ci's rimraf of .build/extensions clashed with extensions-ci
writing to the same directory.

Also removes dead code:
- extensions-ci and extensions-ci-pr task definitions (fully subsumed)
- core-ci-old task (useEsbuildTranspile is always true)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* remove VSCODE_RUN_COMPILE_EXTRAS

* address PR feedback regarding code duplication of `getGitCommitDate()` function by exporting a single helper function from `build/lib/date.ts` and importing it in `build/next/index.ts` to ensure consistent behavior and improve code maintainability.

* update readISODate function to return git commit date instead of current date

* add telemetry sorting script and integrate into build process for consistent output

* refactor telemetry extraction process: replace shell script with TypeScript implementation

* update skill

* update telemetry-extractor dependency to version 1.19.0

* fix build

* fix more duplicate telemetry definition issues

* cleanup

* refactor: consolidate validation checks into quality checks and remove obsolete tasks

* bust the cache

* undo cache bust

* fix expression

* fix

* fix: update Azure storage account name in quality checks

* fix: initialize stages set with 'Quality'

* fix: add VSCODE_BUILD_TYPE parameter with options for Product and CI builds

* fix: update Azure Pipeline CLI to use parameters instead of variables for queueing builds

* fix: update VSCODE_BUILD_TYPE parameter values for clarity

* fix: update default value for VSCODE_BUILD_TYPE parameter to 'Product'

* leaner

* even leaner

* only npm ci in build

* 💄

* run entire npm ci

* fix

* fix

* fix it

* Inline CompileCLI into platform stages

- Remove centralized CompileCLI stage
- Move CLI jobs into Windows, Linux, macOS stages as independent jobs
- CLI jobs now compile, publish unsigned mid-job, sign, and publish signed
- Platform compile jobs use deemon + waitForArtifacts for async CLI download
- Delete separate CLI sign jobs (now merged into CLI compile jobs)
- Remove CompileCLI from publish.ts stage tracking

* fix: macOS CLI signing - use proper directory structure for ESRP

* fix: add BUILDS_API_URL to Windows and Linux job templates

* fix: label Linux CLI jobs clearly

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: João Moreno <22350+joaomoreno@users.noreply.github.com>
2026-03-01 08:48:08 +01:00
Henning Dieterichs
5b7dafcb12 Add vscode-extras extension with npm up-to-date feature and related configurations (#298295) 2026-02-27 17:16:26 +00:00
Matt Bierner
5a566c256d Merge pull request #295104 from microsoft/dev/mjbvz/esbuild-css
Use esbuild instead of webpack to bundle the css extension
2026-02-18 10:51:19 -08:00
Alex Ross
d692656d9d Fix tsgo ext build problem matching (#295603)
* Fix tsgo ext build problem matching

* Update .vscode/tasks.json

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Fix double timestamp

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-02-17 14:50:48 -08:00
Matt Bierner
39ebcc7f34 Use esbuild instead of webpack to bundle the css extension
Switches from webpack to esbuild to bundle the css extension. Tested this locally in a browser and creating an official build to test the bundled extension still work correctly
2026-02-13 00:05:47 -08:00
Matt Bierner
cb714c7c9f Addressing code review comments 2026-02-11 16:38:06 -08:00
Matt Bierner
d434a65945 Use esbuild to pack the markdown extension for desktop and web (#294208)
* Try using esbuild to bundle our built-in extensions

Test switching to esbuild instead of webpack to bundle our buildin extensions. Setup so we can do this incrementally and starting with the markdown extension as a test

* Fix build ext media

* Fix .ts script name check

* Update comment

* Use ts for all scripts
2026-02-10 20:32:40 +00:00
Matt Bierner
39009f2b37 Cleanup tsgo compile 2026-02-09 09:34:50 -08:00
Matt Bierner
3cd367d42a Fix source maps for extensions after tsgo
Overlooked that these aren't generated anymore
2026-02-03 19:21:35 -08:00
Matt Bierner
cca17c1b7f Use ts-go for building our extensions
Also reverts to use experimental decorators due to stage 3 decorators not being supported yet https://github.com/microsoft/typescript-go/issues/2354

The skipLib check is needed to work around some jsdom types issues
2026-02-02 20:06:00 -08:00
Matt Bierner
e779f86b17 Build script cleanup
For #277526

Quick cleanup pass after converting these scripts
2025-11-24 14:07:28 -08:00
Matt Bierner
fcfb37c8f8 Convert gulp files to ts
For #277526

Had to add a few ugly casts in difficult cases but mostly trying to add proper types
2025-11-21 15:38:55 -08:00