Skip to content

feat(deps): replace ps-tree with tree-kill#412

Merged
MikeMcC399 merged 1 commit intobahmutov:migrate/tree-killfrom
ceisele-r:398
Mar 24, 2026
Merged

feat(deps): replace ps-tree with tree-kill#412
MikeMcC399 merged 1 commit intobahmutov:migrate/tree-killfrom
ceisele-r:398

Conversation

@ceisele-r
Copy link
Copy Markdown
Contributor

@ceisele-r ceisele-r commented Feb 11, 2026

  • Replace ps-tree which uses deprecated functionality to kill process trees on windows (based on wmic.exe) with tree-kill
  • Add windows-latest based workflows and execute tests in addition to ubuntu-latest also on windows-latest

Fixes: #398

@ceisele-r
Copy link
Copy Markdown
Contributor Author

What I'm actually wondering is whether we could use cross-env in front of all npm scripts setting environment variables.
However, I did not do this as there is an explicit demo-cross-env npm script and I think the intention was so that other tests are executed "clean" without cross-env infront.

Another solution for the tests running only on Linux would be to add additional :windows scripts that set the environment variables via $Env:WAIT_ON_INTERVAL; so they could also be executed on windows.

However, it's probably also enough to execute these just on Linux and just have some tests execute on Windows.

@MikeMcC399

This comment was marked as resolved.

@ceisele-r ceisele-r force-pushed the 398 branch 2 times, most recently from f58d35a to 2fe9531 Compare February 25, 2026 09:31
@ceisele-r

This comment was marked as resolved.

@MikeMcC399

This comment was marked as outdated.

diegoazh added a commit to diegoazh/gmap-vue that referenced this pull request Mar 15, 2026
…ypress

`start-server-and-test` → `ps-tree@1.2.0` calls `wmic.exe` on Windows, removed
in Windows Server 2025 (`windows-latest` since Apr 10, 2025). This caused the
e2e job to crash with `spawn wmic.exe ENOENT` after all tests passed, giving a
false-negative exit code 1. Upgrading is not a fix: 2.0.9 still pins
`ps-tree@1.2.0`. PR bahmutov/start-server-and-test#412 is open but unmerged.
The CI step now manages server lifecycle directly: start `vite preview` in
background, poll readiness, run Cypress, then `kill $PID`.

See: bahmutov/start-server-and-test#398
diegoazh added a commit to xkjyeah/vue-google-maps that referenced this pull request Mar 16, 2026
* chore(root): update contributing guide

* chore(root): update semantic bot and contributing guide

* chore(gmap-vue): remove unnecesary lib package used for tests purposes

* chore(gmap-vue): use github plugin for semantic release

* chore(gmap-vue): update changelog and semantic-release configuration

* fix(docs): fix vuepress alert on main readme

* fix(docs): fix documentation issues with webpack config and build

* chore(docs): add mising config file in the previous commit

* chore(root): update documentation yaml flow

* chore(gmap-vue): 2.0.2 [skip ci]

## [2.0.2](diegoazh/gmap-vue@v2.0.1...v2.0.2) (2021-11-27)

### Bug Fixes

* **docs:** fix documentation issues with webpack config and build ([1dfed13](diegoazh@1dfed13))
* **docs:** fix vuepress alert on main readme ([ad57f64](diegoazh@ad57f64))

* chore(gmap-vue): update changelog

* chore(gmap-vue): upgrade version on package.json

* fix(gmap-vue): fix error loading cluster

Close: #234

* chore(gmap-vue): 2.0.3 [skip ci]

## [2.0.3](diegoazh/gmap-vue@v2.0.2...v2.0.3) (2022-02-09)

### Bug Fixes

* **gmap-vue:** fix error loading cluster ([a2cb9ba](diegoazh@a2cb9ba)), closes [#234](diegoazh#234)

* chore(root): remove unnecesary bots and update others

* chore(gmap-vue): sync version on package json with the last release npm version

* chore(gmap-vue): update semantic release configuration

* chore(docs): update documentation workflow to use docs path to work

* chore(docs): update documentation workflow to install wepback 4

* chore(docs): update documentation to use gmap-vue from npm registry

* chore(docs): update documentation flow to install webpack after install all dependencies

* chore(docs): remove pnpm workspace file before install dependencies

* chore(docs): update scripts and avoid to load google script at the first time

* docs(docs): update link for source code of map element factory

Solve #125

* docs(docs): update documentation for cluster component

* docs(gmap-vue): Fix/update initializer comments

resolve: #151

* docs(docs): update main readme of gmap-vue

* fix(gmap-vue): fix fields error on autocomplete component

Solve #118

* chore(gmap-vue): 2.0.4 [skip ci]

## [2.0.4](diegoazh/gmap-vue@v2.0.3...v2.0.4) (2022-02-11)

### Bug Fixes

* **gmap-vue:** fix fields error on autocomplete component ([a6b8712](diegoazh@a6b8712)), closes [#118](diegoazh#118)

* feat(gmap-vue): add custom callback option to config

- `autobindAllEvents` config option was renamed to `autoBindAllEvents`
- `vueGoogleMapsInit` name was renamed to `GoogleMapsCallback`
- `gmapApi` function was renamed to `getGoogleMapsAPI`
- `MapElementMixin` now is exported from `components` object instead of `helpers` object
- `customCallback` config option was added to reuse existing Google Maps API that already loaded, eg from an HTML file

BREAKING CHANGE: reuse existing google maps api and rename functions
Solve #143

* chore(gmap-vue): 3.0.0 [skip ci]

# [3.0.0](diegoazh/gmap-vue@v2.0.4...v3.0.0) (2022-02-13)

### Features

* **gmap-vue:** add custom callback option to config ([b8409e3](diegoazh@b8409e3)), closes [#143](diegoazh#143)

### BREAKING CHANGES

* **gmap-vue:** reuse existing google maps api and rename functions

* docs(docs): change files names to lower-case

* docs(docs): update changelog of gmap-vue

* docs(docs): add the current version of the plugin to the title

* docs(docs): update gmap-vue version on documentation package and marker docs

* docs(docs): update marker components examples

* feat(gmap-vue): emit update:position event on markers

We emit this event when dragend event if fired from Google Maps API

Fix #14

* chore(gmap-vue): 3.1.0 [skip ci]

# [3.1.0](diegoazh/gmap-vue@v3.0.0...v3.1.0) (2022-02-15)

### Features

* **gmap-vue:** emit update:position event on markers ([6a34bb7](diegoazh@6a34bb7)), closes [#14](diegoazh#14)

* feat(gmap-vue): auto detect when google maps api is loaded

This feature turns irrelevant the customCallback option in the
configuration object.
This option will be removed in the next major release.

* chore(gmap-vue): 3.2.0 [skip ci]

# [3.2.0](diegoazh/gmap-vue@v3.1.0...v3.2.0) (2022-02-15)

### Features

* **gmap-vue:** auto detect when google maps api is loaded ([93a9ecc](diegoazh@93a9ecc))

* feat(gmap-vue): add dynamic loading for google maps api

We allow the possibility of loading the Google Maps API dynamically when
you need.

Close #239

* chore(gmap-vue): 3.3.0 [skip ci]

# [3.3.0](diegoazh/gmap-vue@v3.2.0...v3.3.0) (2022-02-16)

### Features

* **gmap-vue:** add dynamic loading for google maps api ([7825dba](diegoazh@7825dba)), closes [#239](diegoazh#239)

* docs(docs): update braking changes from v2 on readme files

* docs(docs): update documentation about autocomplete and its slot

* docs(docs): fix typo and vue code example box

* docs(docs): improve documentation adding information about version

* docs(docs): update exported objects documentation

* docs(docs): update map-element factory example

* docs(docs): update changelog documentation

* docs(docs): update api documentation

* feat(gmap-vue): update kml-layer adding all options as props

Close #148

* chore(gmap-vue): 3.4.0 [skip ci]

# [3.4.0](diegoazh/gmap-vue@v3.3.0...v3.4.0) (2022-02-16)

### Features

* **gmap-vue:** update kml-layer adding all options as props ([d8cb91f](diegoazh@d8cb91f)), closes [#148](diegoazh#148)

* docs(docs): improve dynamic load documentation

* docs(root): update the main repository readme

* docs(docs): add link to the official reference to drawing manager docs

* docs(docs): update changelog on the documentation site

* docs(docs): update api documentation

* chore(root): update pre-commit script on husky to generate api docs

* fix(gmap-vue): change repaint method by render

We change the repaint method to render and use markers property instead
of the old method getMarkers.
The setMap methos is inherited from OverlayView class.

Fix #247

* fix(gmap-vue): clear interval when callback was successfully called

* docs(docs): add an alert notifying the next planned braking change

* chore(gmap-vue): 3.4.1 [skip ci]

## [3.4.1](diegoazh/gmap-vue@v3.4.0...v3.4.1) (2022-02-18)

### Bug Fixes

* **gmap-vue:** change repaint method by render ([4d7b7c9](diegoazh@4d7b7c9)), closes [#247](diegoazh#247)
* **gmap-vue:** clear interval when callback was successfully called ([302c6e1](diegoazh@302c6e1))

* chore(docs): udpate changelog and issue templates alert

* fix(gmap-vue): add missing props to all shapes for drawing over the map

Fix #138

* chore(gmap-vue): 3.4.2 [skip ci]

## [3.4.2](diegoazh/gmap-vue@v3.4.1...v3.4.2) (2022-02-19)

### Bug Fixes

* **gmap-vue:** add missing props to all shapes for drawing over the map ([c39c500](diegoazh@c39c500)), closes [#138](diegoazh#138)

* docs(docs): udpate changelog

* docs(docs): udpate all shapes documentation

* docs(docs): udpate documentation about the function to get the maps api

* docs(docs): udpate map guide to explain how to use get-bounds method

* docs(docs): fix ordered list in map guide

* docs(docs): add documentation about how to use places-service class

* fix(gmap-vue): add prop content to info-window component

* chore(gmap-vue): 3.4.3 [skip ci]

## [3.4.3](diegoazh/gmap-vue@v3.4.2...v3.4.3) (2022-02-21)

### Bug Fixes

* **gmap-vue:** add prop content to info-window component ([29dface](diegoazh@29dface))

* fix(gmap-vue): set default vallue of contentn prop to undefined

In this way we avoid to override the slot content at run time

Fix: #254

* chore(root): update development libraries

* chore(gmap-vue): 3.4.4 [skip ci]

## [3.4.4](diegoazh/gmap-vue@v3.4.3...v3.4.4) (2022-03-02)

### Bug Fixes

* **gmap-vue:** set default vallue of contentn prop to undefined ([bee86ad](diegoazh@bee86ad)), closes [#254](diegoazh#254)

* docs(docs): update changelog with the last version

* fix(gmap-vue): add missing options on marker-clusterer constructor

Close #255

* chore(gmap-vue): 3.4.5 [skip ci]

## [3.4.5](diegoazh/gmap-vue@v3.4.4...v3.4.5) (2022-03-03)

### Bug Fixes

* **gmap-vue:** add missing options on marker-clusterer constructor ([7b4d573](diegoazh@7b4d573)), closes [#255](diegoazh#255)

* docs(docs): update changelog with latest changes

* feat(gmap-vue): add render, on-cluster-click and options props to cluster component

* chore(gmap-vue): 3.5.0 [skip ci]

# [3.5.0](diegoazh/gmap-vue@v3.4.5...v3.5.0) (2022-03-03)

### Features

* **gmap-vue:** add render, on-cluster-click and options props to cluster component ([8552070](diegoazh@8552070))

* fix(gmap-vue): add mapped props to cluster-icon component

* chore(gmap-vue): 3.5.1 [skip ci]

## [3.5.1](diegoazh/gmap-vue@v3.5.0...v3.5.1) (2022-03-03)

### Bug Fixes

* **gmap-vue:** add mapped props to cluster-icon component ([f008a35](diegoazh@f008a35))

* docs(docs): update changelog with latest changes

* fix(gmap-vue): fix mapped props and kml-layer component

I add the noBind option to some properties that are use only in the
constructor and hasn't setters.

* docs(docs): update documentation of shapes and examples

* chore(docs): update documentation comments on shapes

* fix(gmap-vue): move from webpack to rollup and make differente builds

We replace webpack for rollup and make different builds for ESM modules
and UMD modules, the fallback is UMD but for new bundler tools it use
the ESM build. We also add a IIFE option and keys for unpkg and jsdelivr

Fix #231

* docs(docs): update documentation for use the plugin on vue-cli v4 applications

* chore(gmap-vue): upgrade dependencies

* chore(gmap-vue): 3.5.2 [skip ci]

## [3.5.2](diegoazh/gmap-vue@v3.5.1...v3.5.2) (2022-03-12)

### Bug Fixes

* **gmap-vue:** fix mapped props and kml-layer component ([2cc7157](diegoazh@2cc7157))
* **gmap-vue:** move from webpack to rollup and make differente builds ([dbafc84](diegoazh@dbafc84)), closes [#231](diegoazh#231)

* docs(docs): update readmes, changelog and documentation

* chore(docs): upgrade gmap-vue version on documentation site

* docs(all): update dependencies, documentation and styles

* Remove core-js

* fix(gmap-vue): remove core and runtime from package.json

We also use preset-env in babel configuration instead of env also,
we fix some errors on the husky configuration and errors on the
scripts in the main package.json.

Issue: #274

* chore(gmap-vue): add .npmrc file to the project to indicate pnpm install peer dependencies

* chore(gmap-vue): remove unnecesary folder and files from the project

* chore(gmap-vue): remove .npmrc from gitignore and added to the project

* chore(gmap-vue): update node versions on github actions and add .npmrc to gmap-vue package

* chore(gmap-vue): update pnpm-lock.yaml file

* chore(gmap-vue): add .npmrc to documentation package and update github actions

* chore(root): update commit-lint rules

* chore(gmap-vue): 3.5.3 [skip ci]

## [3.5.3](diegoazh/gmap-vue@v3.5.2...v3.5.3) (2022-07-29)

### Bug Fixes

* **gmap-vue:** remove core and runtime from package.json ([4b803d3](diegoazh@4b803d3)), closes [#274](diegoazh#274)

* fix(gmap-vue): remove optional conditional operator

* fix(gmap-vue): document is undefined ssr

* chore(gmap-vue): 3.5.4 [skip ci]

## [3.5.4](diegoazh/gmap-vue@v3.5.3...v3.5.4) (2022-08-06)

### Bug Fixes

* **gmap-vue:** document is undefined ssr ([5b97124](diegoazh@5b97124))
* **gmap-vue:** remove optional conditional operator ([0613d8e](diegoazh@0613d8e))

* chore(all): upgrade dependencies in all packages

* chore(all): update all dependencies

* docs(docs): fix error on html example

* Wrong Function call

Capitalize the first letter "m"  in mapElementFactory to get access to the MapElementFactory function .

* typo

* bind dragend to shape in drawing manager

* chore(gmap-vue): updates the version of each dependency

* chore(gmap-vue): remove node v14.x from matrix and add v20.x

* chore(gmap-vue): update github actions to v3

* chore(root): update github actions to use new npm-publish version

* Issue 15 vue 3 (#298)

* fix(gmap-vue-next): fix types, composables, and map-layer component

* fix(gmap-vue-next): fix rollup and typescript build and improve its configurations

* fix(gmap-vue-next): change to typescript and vite, map layer withoout errors

* fix(gmap-vue-next): start adding unit test for composables and preparing all for e2e tests with cypress

* fix(gmap-vue-next): fix e2e server and render warnings

* fix(gmap-vue-next): fix map-test component example

* fix(gmap-vue-next): add e2e test for map-layer component

* fix(gmap-vue-next): fix broken unit tests

* test(gmap-vue-next): add unit test for promise-lazy-builder and google-maps-promise

* fix(gmap-vue-next): fix test:e2e:ci script

* chore(gmap-vue): reorganize code inside the map layer component

* fix(gmap-vue-next): remove keys from beging exported and update typings on package.json

* feat(gmap-vue-next): migrate marker-icon component to composition api using script setup

* fix(gmap-vue-next): fix map-layer and marker-icon components and improve the old mapped props

* feat(gmap-vue-next): migrate cluster-icon component

* feat(gmap-vue-next): migrate cluster-icon component

* feat(gmap-vue-next): migrate info-window component

* fix(gmap-vue-next): fix ts(7056) on setup script

I solved removing from the defineExports function the template ref
variable defined inside the setup script. I also fix the ts(4082)
error moving the props interface to its own script[lang=ts] tag,
this change is needed because I am using the interface on hooks and
not only inside script setup but it looks like very ugly. The Vue
documentation only said that the interface should be in the same file
not in the same script tag.

* fix(gmap-vue-next): spread options prop at the end when buid the options

In this way we allow users to be able to override some values or pass new ones
when the required options to build any google maps object changes.

 #15

* fix(gmap-vue-next): makes options prop optional

 #15

* fix(gmap-vue-next): remove unnecesary unmounted hook

Now using typescript we can know which components has the setMap
function and use it only in that components

 #15

* fix(gmap-vue-next): small fixes on watch functions

 #15

* feat(gmap-vue-next): migrate the autocomplete component

 #15

* chore(gmap-vue): improve component and function names

I added the prefix gmv to all components and refs, it means GMapVue

 #15

* feat(gmap-vue-next): migrate kml-layer component

 #15

* fix(gmap-vue-next): rename google-maps-promise to map-promise to be more explicit about its content

 #15

* chore(gmap-vue-next): enable explicitly an option enabled implicitly by other option

 #15

* fix(gmap-vue-next): update test file name to match with the target tested file

 #15

* feat(gmap-vue-next): migrate street view panorama

I also improve the map-layer component and its composables to match
with street-view-panorama component because they are related in some
parts.

 #15

* chore(all): update all dependencies

* chore(docs): update api documentation

* chore(docs): update api documentation

* chore(all): update all dependencies

* docs(docs): update api documentation

* docs(docs): update api documentation

* chore(root): update commitlint rules

 #15

* fix(gmap-vue-next): update all clases to use the gmv prefix

 #15

* feat(gmap-vue-next): migrate heatmap-layer component

 #15

* fix(gmap-vue-next): unify error messages on map-promise

 #15

* feat(gmap-vue-next): migrate circle-shape componet

 #15

* fix(gmap-vue-next): remove unnecesary variables and fix typos

 #15

* feat(gmap-vue-next): migrate polygon-shape component

 #15

* fix(gmap-vue-next): remove unnecesary macro imports

 #15

* feat(gmap-vue-next): migrate polilyne shape component

 #15

* feat(gmap-vue-next): migrate rectangle shape component

 #15

* feat(gmap-vue-next): migrate drawing manager component

 #15

* fix(gmap-vue-next): reorder function params to be more consistent

 #15

* fix(gmap-vue-next): last fixes on types and structures over composables

* test(gmap-vue-next): add test files and start writing unit tests

* fix(gmap-vue-next): fix final options merge to have always default options

* fix(gmap-vue-next): fix components, helpers and composables

 #15

* test(gmap-vue-next): fix tests after last name changes

* chore(gmap-vue-next): remove unused dependencies and unused files

* fix(gmap-vue-next): rewrite components to define props with an object instead of an interface

* test(gmap-vue-next): fix e2e and unit tests

* chore(gmap-vue-next): update file name on types and related imports

* chore(gmap-vue-next): update imports of all files

* chore(gmap-vue-next): update typings path and dependency versions

* chore(gmap-vue-next): update typescript and vite configuration

* chore(gmap-vue-next): update dependencies, scripts and pnpm-lock file

* chore(root): update dependency versions

* chore(gmap-vue-v2): rename gmap-vue to gmap-vue-v2

* chore(gmap-vue-v3): rename gmap-vue-next to gmap-vue-v3

* chore(v2): rename folder gmap-vue-v2 to v2

* chore(v3): rename folder gmap-vue-v3 to v3

* chore(root): update configuration files accordingly to the new repository structure

* chore(v3): update plugin verstion to 4.0.0 to support vue v3

* test(v3): update import path on test

* chore(v3): update pnpm-lock file, package names on every package.json file and cypress config on v3 path

* test(v3): add e2e tests for autocomplete cluster and marker components

* chore(v3): remove unused dependencies and update tests

* fix(v3): update exports and imports to optimize it

* chore(v3): fix typos and e2e runner erros

* chore(v3): remove path-exist-cli and update scripts

* test(v3): e2e test for info-window added

* test(v3): update e2e test for info-window and add tests for circle, rectangle and polyline

* fix(v3): update imports and exports and others small fixes

* test(v3): update all e2e tests

* chore(v3): update gitignore file

* chore(v3): update them main readme

* chore(v2): updates vue version on package v2

* chore(v2): update scripts on package.json and configuration useful for debug

* fix(v3): fix types and exported members from this plugin

* chore(v2): update readme with deprecation note

* chore(v2): update package name

* chore(v3): update package name

* chore(v2): add publish config to package

* chore(v3): add publish config to package

* chore(v3): update all e2e tests with the new plugin structure

* chore(root): add test:e2e to the main package and udpate github actions to run e2e tests

* chore(v2): udpate readme file

* chore(v3): udpate readme file

* chore(root): update github actions fixing a typo

* chore(root): update github actions to confirm .env file was created

* test(v3): improve e2e test using within instead to use should be.visible.

---------

Co-authored-by: Diego Alberto Zapata Hantsch <diegoalbertozapatahantsch@Diegos-MacBook-Pro.local>

* fix(v3): add all single file components to the npm package

* chore(root): remove gen:api:docs from husky pre-commit hook

* chore(v3): update commit on semantic releaserc file

* chore(v2): update commit on semantic releaserc file

* chore(v3): 3.5.5 [skip ci]

## [3.5.5](diegoazh/gmap-vue@v3.5.4...v3.5.5) (2023-06-04)

### Bug Fixes

* **v3:** add all single file components to the npm package ([79839af](diegoazh@79839af))

* Revert "chore(v3): 3.5.5 [skip ci]"

This reverts commit 80df6f4.

* chore(v2): update tag format and release rules on semantic release configuration

* chore(v3): update tag format and release rules on semantic release configuration

* chore(v2): update relese rules configuration on semantic release

* chore(v3): update relese rules configuration on semantic release

* fix(docs): update path on import to the new structure

* chore(v3): manually update the package version

* chore(root): update github workflows with new secrets

* chore(v3): manually regenerate changelog file

* chore(v3): fix versions on manually regenerated chagnelog

* chore(root): update readme file

* chore(root): add install instructions to the main readme file

* fix(v3): fix visibility issue excluding only null and undefined values from props

* fix(v3): exclude only null and undefined values from props

* fix(v3): fix e2e polyline test adding lodash.throttle

* test(v3): improve e2e marker test adding visibility test

* test(v3): improve dev server in order to debug it and some scripts

* chore(root): fix lint-staged configuration

* test(v3): test markers visibility

* test(v3): update all test videos

* chore(v3): 1.0.2 [skip ci]

## [1.0.2](diegoazh/gmap-vue@gmv3_v1.0.1...gmv3_v1.0.2) (2023-07-22)

### Bug Fixes

* **docs:** update path on import to the new structure ([3a0a0ad](diegoazh@3a0a0ad))
* **v3:** fix visibility issue excluding only null and undefined values from props ([159b048](diegoazh@159b048))

* fix(v3): fix reactivity problems with google maps objects (#303)

fix: #301

* chore(v3): 1.0.3 [skip ci]

## [1.0.3](diegoazh/gmap-vue@gmv3_v1.0.2...gmv3_v1.0.3) (2023-07-23)

### Bug Fixes

* **v3:** fix reactivity problems with google maps objects ([#303](diegoazh#303)) ([0ef42e7](diegoazh@0ef42e7)), closes [#301](diegoazh#301)

* chore(deps): bump snyk from 1.1025.0 to 1.1064.0 (#304)

Bumps [snyk](https://github.com/snyk/snyk) from 1.1025.0 to 1.1064.0.
- [Release notes](https://github.com/snyk/snyk/releases)
- [Commits](snyk/cli@v1.1025.0...v1.1064.0)

---
updated-dependencies:
- dependency-name: snyk
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(root): update github page action to its latest version

* chore(v3): update license year

* chore(v3): type in function description

* chore(v3): add todo comment to check it in next release

* fix(v3): improve types, interfaces and composables

We also improve some function descriptions and we update all dependencies to its latest versions

* feat(v3): improve exports, types and remove deprecated options

- Improve exports of the package
- Improve typescript and vite config
- Improve extend vue declarations
- Remove deprecated options
- Remove install-components option
- Add new load options to the plugin
- Improve types, interfaces and keys
- Add interface for expose object of components
- Implement dynamic load of Google Maps API

BREAKING CHANGE

* feat(v3): implement import-library in all components

* chore(v3): eslint and prettier fixes

* chore(v3): add type module to the package

* test(v3): upgrade coverage provider

* test(v3): update all test accordingly to the new api

* test(v3): fix cypress and vitest config

Remove the type "module" from the package json to avoid issues with cypress

* fix(v3): add type define-emit declarations

- Add new events to the component event list
- Improve some jsdoc comments

* test(v3): fix all e2e tests accordingly with the new api

* chore(v3): add three slashes comment to add vitest types

* test(v3): fix e2e error with 0 height

- Add gmap-vue global styles to e2e tests

* test(v3): fix markers e2e test on windows

* chore(root): upgrade actions checkout and setup-node to v4

* chore(v3): 2.0.0 [skip ci]

# [2.0.0](diegoazh/gmap-vue@gmv3_v1.0.3...gmv3_v2.0.0) (2024-03-31)

### Bug Fixes

* **v3:** add type define-emit declarations ([fb29c9c](diegoazh@fb29c9c))
* **v3:** improve types, interfaces and composables ([072f661](diegoazh@072f661))

### Features

* **v3:** implement import-library in all components ([5d13adf](diegoazh@5d13adf))
* **v3:** improve exports, types and remove deprecated options ([9947ce6](diegoazh@9947ce6))

### BREAKING CHANGES

* **v3:** CHANGE

* docs(docs): add new documentation site

- Move the previous documentation to old-documentation folder

* docs(docs): update documentation examples

* docs(docs): improve and update docs

* docs(docs): remove unused title

* docs(v3): improve jsdocs comments

* docs(docs): finish autocomplete documentation

* chore(root): add new git hook to husky

* chore(root): add execute permissions to pre-push hook

* chore(v3): add new test script for unit on ci

* chore(root): update pre-push hook and package json to run tests for ci

* chore(v2): fix extra space on the component

* docs(docs): remove secret from example

* fix(v3): update map props and its interface

* docs(docs): add docs for map component and update autocomplete docs

* test(v3): update e2e test of autocomplete

* chore(root): add ci env var to publish workflow

* chore(root): update github workflow to use pnpm action v3

* chore(root): remove recursive true from pnpm installation

* chore(root): specify v8 explicitly on pnpm action

* chore(root): remove frozen-lockfile from pnpm install process

* chore(root): remove ignore-scripts command from the first step

* chore(root): remove pnpm setup action from the workflow

* chore(root): remove frozen-lockfile and ignore-scripts from the first isntall

* chore(v3): 2.0.1 [skip ci]

## [2.0.1](diegoazh/gmap-vue@gmv3_v2.0.0...gmv3_v2.0.1) (2024-04-05)

### Bug Fixes

* **v3:** update map props and its interface ([90acc21](diegoazh@90acc21))

* docs(docs): update menu items and add danger info on docs of vue 2 version

* docs(docs): fix slot map documentation

* docs(docs): update labes on navbar items

* chore(root): update scripts on package and readme

* chore(v3): update readme file

* docs(docs): update introduction to version for vue 3

* feat(v3): create independent instances of every component using a component key prop (#315)

* chore(root): add minification to the vite config

* chore(root): update lock file

* feat(v3): create independent instances of every component using a component key

We added a key to every component to create independent instances for everyone and a default key if you only use one instance of every component and do not want to set the key.

Solve: #309

* test(v3): update unit and e2e tests

Bug: #309

* docs(docs): update documentation accordingly to the new changes.

Bug: #309

* chore(v3): 2.1.0 [skip ci]

# [2.1.0](diegoazh/gmap-vue@gmv3_v2.0.1...gmv3_v2.1.0) (2024-04-11)

### Features

* **v3:** create independent instances of every component using a component key prop ([#315](diegoazh#315)) ([0c21c60](diegoazh@0c21c60)), closes [#309](diegoazh#309) [#309](diegoazh#309) [#309](diegoazh#309)

* fix(v3): remove exposed instances because they are always undefined and cause errors with watchers and events

* test(v3): update cypress runner to use typescript

* chore(v3): add space between lines

* refactor(v3): improve function recycling code

* fix(v3): add autocomplete-key and promise deferred pattern to autocomplete component

* test(v3): add autocomplete component test

* refactor(v3): fix typo on autocomplete word

* chore(v3): remove unnecessary console log

* chore(v3): update autocomplete slot comment

* test(v3): add autocomplete and map component tests

* test(v3): add marker component test

We also improved the map and autocomplete component tests

* test(v3): add circle component test

We also improved other tests adding unmounted tests

* test(v3): add cluster icon component test

We also improve the circle shape component tests.

* test(v3): add component test for drawing-manager

We also improved mocks on other component tests

* chore(root): add launch config to debug current test with vite

* test(v3): add component test for heatmap layer

* test(v3): add component test for info-window component

* test(v3): add component test for kml-layer component

* test(v3): add component test for polygon-shape component

* test(v3): add component test for polyline-shape component

* test(v3): add component test for street-view-panorama component

* test(v3): add tests for main.ts module

* fix(v3): remove exposed instances because they are always undefined

* test(v3): fix marker e2e tests after the last changes

* fix(v3): remove undefined instances and fix watchers

Solve: #318 #319

* test(v3): add component unit tests and fix e2e tests

Solve: #320

* chore(v3): add new script to build for development

* chore(root): update lock file

* refactor(v3): move component promises into a factory function.

* chore(root): upgrade node version on gh actions and update lock file

* chore(root): update lock file to pnpm version 9

* chore(root): update package-manager property on the root package

* chore(v3): 2.1.1 [skip ci]

## [2.1.1](diegoazh/gmap-vue@gmv3_v2.1.0...gmv3_v2.1.1) (2024-04-24)

### Bug Fixes

* **v3:** remove exposed instances because they are always undefined and cause errors with watchers and events ([bdc2f86](diegoazh@bdc2f86)), closes [#318](diegoazh#318) [#319](diegoazh#319) [#320](diegoazh#320)

* chore(root): update npm publish to v3 on the gh workflow

* docs(docs): update changelog on v3 documentation

* fix(v3): change inject for composable to get component promise  (#324)

* fix(v3): change inject for composable to get component promise

The inject key can only be used on descendants not in siblings. Composables on mounted hook are more accurate.

Solve: #323

* test(v3): update cluster test to use the new key feature

* chore(root): update package-manager y package.json and gh workflows

* chore(v3): 2.1.2 [skip ci]

## [2.1.2](diegoazh/gmap-vue@gmv3_v2.1.1...gmv3_v2.1.2) (2024-04-24)

### Bug Fixes

* **v3:** change inject for composable to get component promise  ([#324](diegoazh#324)) ([6613c59](diegoazh@6613c59)), closes [#323](diegoazh#323)

* chore(v3): fix security issue with file-path

* chore(v3): add integrity check for scripts loaded from cdn

* docs(docs): update changelog documentation

* chore(v3): add sanitize-filename to the project

* fix: upgrade @docusaurus/preset-classic from 3.2.0 to 3.2.1 (#325)

Snyk has created this PR to upgrade @docusaurus/preset-classic from 3.2.0 to 3.2.1.

See this package in npm:
https://www.npmjs.com/package/@docusaurus/preset-classic

See this project in Snyk:
https://app.snyk.io/org/diegoazh/project/840b35b2-2f2c-4274-bd85-54697c22c77f?utm_source=github&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* fix: upgrade @docusaurus/core from 3.2.0 to 3.2.1 (#326)

Snyk has created this PR to upgrade @docusaurus/core from 3.2.0 to 3.2.1.

See this package in npm:
https://www.npmjs.com/package/@docusaurus/core

See this project in Snyk:
https://app.snyk.io/org/diegoazh/project/840b35b2-2f2c-4274-bd85-54697c22c77f?utm_source=github&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* fix: packages/documentation/package.json to reduce vulnerabilities (#330)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-INFLIGHT-6095116

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* fix: packages/documentation/package.json to reduce vulnerabilities (#332)

The following vulnerabilities are fixed with an upgrade:
- https://snyk.io/vuln/SNYK-JS-PATHTOREGEXP-7925106

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* chore(deps): bump vue in the npm_and_yarn group across 1 directory (#334)

Bumps the npm_and_yarn group with 1 update in the / directory: [vue](https://github.com/vuejs/core).


Updates `vue` from 3.4.21 to 3.4.22
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/v3.4.22/CHANGELOG.md)
- [Commits](vuejs/core@v3.4.21...v3.4.22)

---
updated-dependencies:
- dependency-name: vue
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump the npm_and_yarn group across 3 directories with 4 updates (#335)

Bumps the npm_and_yarn group with 4 updates in the / directory: [rollup](https://github.com/rollup/rollup), [vue](https://github.com/vuejs/core), [happy-dom](https://github.com/capricorn86/happy-dom) and [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite).
Bumps the npm_and_yarn group with 1 update in the /packages/v2 directory: [rollup](https://github.com/rollup/rollup).
Bumps the npm_and_yarn group with 1 update in the /packages/v3 directory: [happy-dom](https://github.com/capricorn86/happy-dom).


Updates `rollup` from 3.29.4 to 3.29.5
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v3.29.4...v3.29.5)

Updates `vue` from 3.4.22 to 3.4.23
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/v3.4.23/CHANGELOG.md)
- [Commits](vuejs/core@v3.4.22...v3.4.23)

Updates `happy-dom` from 14.3.9 to 15.10.2
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v14.3.9...v15.10.2)

Updates `vite` from 5.2.7 to 5.2.14
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/v5.2.14/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v5.2.14/packages/vite)

Updates `rollup` from 3.29.5 to 4.24.4
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v3.29.4...v3.29.5)

Updates `happy-dom` from 14.12.3 to 15.11.0
- [Release notes](https://github.com/capricorn86/happy-dom/releases)
- [Commits](capricorn86/happy-dom@v14.3.9...v15.10.2)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: vue
  dependency-type: direct:production
  dependency-group: npm_and_yarn
- dependency-name: happy-dom
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: vite
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: rollup
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: happy-dom
  dependency-type: direct:development
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates (#336)

Bumps the npm_and_yarn group with 1 update in the / directory: [rollup](https://github.com/rollup/rollup).


Updates `rollup` from 3.29.5 to 4.22.4
- [Release notes](https://github.com/rollup/rollup/releases)
- [Changelog](https://github.com/rollup/rollup/blob/master/CHANGELOG.md)
- [Commits](rollup/rollup@v3.29.5...v4.22.4)

Updates `vue` from 2.7.16 to 3.4.23
- [Release notes](https://github.com/vuejs/core/releases)
- [Changelog](https://github.com/vuejs/core/blob/v3.4.23/CHANGELOG.md)
- [Commits](https://github.com/vuejs/core/commits/v3.4.23)

---
updated-dependencies:
- dependency-name: rollup
  dependency-type: direct:development
  dependency-group: npm_and_yarn
- dependency-name: vue
  dependency-type: direct:production
  dependency-group: npm_and_yarn
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Fix/fix components and tests (#340)

* fix(v3): fix package, build, and type issues

I moved to the latest version of Vue v3.
Use the latest composables.
Export components from a js file.
Add unmounted hook to info-window.

 #327

* docs(docs): updated autocomplete api and guide and update map api

* docs(docs): add new map guide documentation

* chore(v3): update all dependencies

* fix(v3): implement unmounted hook on info-window component

Improved a few logic issues there.
Improved eslint, and added strict rules.
Fixed all linter, prettier and build errors after enable ts in super strict mode.

 #327

* fix(v3): use use-template-ref macro again instead of ref

* fix(v3): add a more descriptive name to the type guard

* fix(v3): upgrade dependencies

* test(v3): update unit test after last fixes on components

* test(v3): fix autocomplete test with custom slot reference

* chore(root,v3,docs): upgrade dependencies

* chore(root): update lock file to the latest version

* chore(root): update pnpm version on github actions

* chore(v3): 2.1.3 [skip ci]

## [2.1.3](diegoazh/gmap-vue@gmv3_v2.1.2...gmv3_v2.1.3) (2024-11-15)

### Bug Fixes

* packages/documentation/package.json to reduce vulnerabilities ([#330](diegoazh#330)) ([2e2046f](diegoazh@2e2046f))
* packages/documentation/package.json to reduce vulnerabilities ([#332](diegoazh#332)) ([4b7b524](diegoazh@4b7b524))
* upgrade @docusaurus/core from 3.2.0 to 3.2.1 ([#326](diegoazh#326)) ([955c35b](diegoazh@955c35b))
* upgrade @docusaurus/preset-classic from 3.2.0 to 3.2.1 ([#325](diegoazh#325)) ([dc6ed1b](diegoazh@dc6ed1b))

* chore(root): update node to latest lts on gh actions, update husky hooks, and update vscode settings

* chore(v3): add cypress install command before run the e2e test on ci

* chore(v3, docs): update and upgrade dependencies

* chore(v3): upgrade dependencies on v3 package

* chore(root): regenerate lock file after upgrade dependencies

* chore(root): update issue templates and bots configuration

* fix(v3): update 'useTemplateRef' key (#342)

This fixes the warning: "[Vue warn] Set operation on key "value" failed: target is read-only"
FireQQTW found some edge cases that caused the problem when the key `useTemplateRef` was the same as the variable name.

* chore(v3): 2.1.4 [skip ci]

## [2.1.4](diegoazh/gmap-vue@gmv3_v2.1.3...gmv3_v2.1.4) (2025-01-03)

### Bug Fixes

* **v3:** update 'useTemplateRef' key ([#342](diegoazh#342)) ([b55f623](diegoazh@b55f623))

* fix: upgrade @docusaurus/core from 3.6.2 to 3.6.3 (#343)

Snyk has created this PR to upgrade @docusaurus/core from 3.6.2 to 3.6.3.

See this package in npm:
@docusaurus/core

See this project in Snyk:
https://app.snyk.io/org/diegoazh/project/840b35b2-2f2c-4274-bd85-54697c22c77f?utm_source=github&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* fix: upgrade @docusaurus/preset-classic from 3.6.2 to 3.6.3 (#344)

Snyk has created this PR to upgrade @docusaurus/preset-classic from 3.6.2 to 3.6.3.

See this package in npm:
@docusaurus/preset-classic

See this project in Snyk:
https://app.snyk.io/org/diegoazh/project/840b35b2-2f2c-4274-bd85-54697c22c77f?utm_source=github&utm_medium=referral&page=upgrade-pr

Co-authored-by: snyk-bot <snyk-bot@snyk.io>

* chore(root): improve github workflows and pnpm-lock.yaml

* chore(v3): 2.1.5 [skip ci]

## [2.1.5](diegoazh/gmap-vue@gmv3_v2.1.4...gmv3_v2.1.5) (2025-01-03)

### Bug Fixes

* upgrade @docusaurus/core from 3.6.2 to 3.6.3 ([#343](diegoazh#343)) ([d5ca7ea](diegoazh@d5ca7ea))
* upgrade @docusaurus/preset-classic from 3.6.2 to 3.6.3 ([#344](diegoazh#344)) ([10b60e5](diegoazh@10b60e5))

* chore(root): remove unused travis yaml file

* chore(root): testing new version of github actions

* chore(root): remove tests from pre-push hooks

* chore(root): add relation between steps

* chore(root): add double quotes to test:e2e script

* chore(root): add outputs to install steps

* chore(root): add upload and download artifact to transport lock file between jobs

* chore(root): add pnpm action to all jobs

* chore(root): split tests on windows on an independent job

* chore(root): remove macos from tests and jobs

* chore(root): add name to install and cache job

* chore(root): fix name on other dependant jobs

* chore(root): change title of job

* chore(root): change linux-latest for ubuntu-latest

* chore(root): change job name to test project

* Fix typo in readme (#356)

* fix(v3): lodash.isEqual deprecation warning (#358)

* feat(root): prepare the repository to use ai agents

* fix(v3): replace lodash.isequal with fast-deep-equal in dependencies

 #353

* chore(root): update github actions and documentation yml

* chore(root): update test matrix

New Matrix Configuration:

ubuntu-latest (amd64): Node 20.x, 22.x, 24.x (all LTS versions)
windows-latest (amd64): Node 22.x only (current LTS)
macos-14-arm64: Node 22.x (current LTS, future-proofing for arm64)
Test Job Count:

Before: 2 OS × 3 Node versions × 2 plans = 12 jobs
After: 10 jobs total (more focused, cost-effective)
Coverage Strategy:

✅ Tests latest 3 LTS versions on Linux (dev environment)
✅ Windows testing focused on current LTS for quick feedback
✅ Arm64 testing on macOS with current LTS for platform diversity

This maintains comprehensive coverage while reducing CI/CD costs, and ensures Windows compatibility stays verified with the current stable LTS. The arm64 support on macOS positions the project well for Apple Silicon adoption.

* test(v3): enhance cypress tests for marker management and autocomplete functionality

* chore(v3): enhance test workflow to include unit and e2e tests with cypress

`start-server-and-test` → `ps-tree@1.2.0` calls `wmic.exe` on Windows, removed
in Windows Server 2025 (`windows-latest` since Apr 10, 2025). This caused the
e2e job to crash with `spawn wmic.exe ENOENT` after all tests passed, giving a
false-negative exit code 1. Upgrading is not a fix: 2.0.9 still pins
`ps-tree@1.2.0`. PR bahmutov/start-server-and-test#412 is open but unmerged.
The CI step now manages server lifecycle directly: start `vite preview` in
background, poll readiness, run Cypress, then `kill $PID`.

See: bahmutov/start-server-and-test#398

* chore(root): comment out mac-os 14 arm64 test plans in ci workflow

* chore(v3): 2.1.6 [skip ci]

## [2.1.6](diegoazh/gmap-vue@gmv3_v2.1.5...gmv3_v2.1.6) (2026-03-15)

### Bug Fixes

* **v3:** lodash.isEqual deprecation warning ([#358](diegoazh#358)) ([bbe6864](diegoazh@bbe6864)), closes [#353](diegoazh#353)

* fix(v3): change map center or marker position reactivity (#359)

### Fix

- **map-layer.vue**: replaced the broken `watchPrimitivePropertiesOnSetup` call with `watch([finalLat, finalLng], updateCenter)` — the canonical Vue 3 pattern for watching multiple computed sources.

- **`composables/helpers.ts`** (`bindVuePropsWithGoogleMapsPropsSetters`): added a fallback path alongside the existing setter-method check. When no `setX()` method exists but the property is directly settable on the instance, a watcher is set up using direct property assignment (`instance[propKey] = value`). This is general-purpose and future-proofs any Google Maps API that favours property assignment over setter methods.

Fix #350

* chore(v3): 2.1.7 [skip ci]

## [2.1.7](diegoazh/gmap-vue@gmv3_v2.1.6...gmv3_v2.1.7) (2026-03-15)

### Bug Fixes

* **v3:** change map center or marker position reactivity ([#359](diegoazh#359)) ([94ee0f7](diegoazh@94ee0f7)), closes [#350](diegoazh#350)

* fix(v3): replace the broken call with a direct watch on the two computed-ref sources

Fix: #348

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: semantic-release-bot <semantic-release-bot@martynus.net>
Co-authored-by: Camille Drapier <c.drapier@allm.inc>
Co-authored-by: Diego Alberto Zapata Hantsch <diegoalbertozapatahantsch@Diegos-MacBook-Pro.local>
Co-authored-by: Arjen de Jong <arjen_1993@hotmail.com>
Co-authored-by: bietkul <kuldepsaxena155@gmail.com>
Co-authored-by: Dike Goodluck <gudoski30@gmail.com>
Co-authored-by: Mohd Ashraf <57627350+mohdashraf010897@users.noreply.github.com>
Co-authored-by: jsimonyan <johniksim@gmail.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: snyk-bot <snyk-bot@snyk.io>
Co-authored-by: Tsung-Shuan Liu <azraelxuan927@gmail.com>
Co-authored-by: Kiina <Kiina@users.noreply.github.com>
@MikeMcC399
Copy link
Copy Markdown
Collaborator

@bahmutov

In January 2026 you wrote in #398 (comment)

Can someone open a PR that adds a Windows workflow to test it with a fix?

This is the PR that responded to your request and it would be very helpful if you could review it. More and more Windows users of start-server-and-test are being impacted as systems are upgraded to Windows versions with no wmic.exe installed by default.

@MikeMcC399

This comment was marked as outdated.

@MikeMcC399 MikeMcC399 changed the title fix(deps): Replace ps-tree with tree-kill feat(deps): replace ps-tree with tree-kill Mar 21, 2026
Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/ci.yml Outdated
Comment thread src/bin/start.js
Comment thread package.json
Comment thread package.json
Comment thread package.json Outdated
Comment thread renovate.json Outdated
MikeMcC399

This comment was marked as resolved.

Comment thread .github/workflows/ci.yml
Comment thread .github/workflows/ci.yml
@ceisele-r
Copy link
Copy Markdown
Contributor Author

Hi @MikeMcC399 , thanks, I will go through your comments soon and rebase the PR.

@MikeMcC399
Copy link
Copy Markdown
Collaborator

Hi @ceisele-r

Thank you very much for continuing to work on this important PR for Windows users! 💪🏻

I'm sorry for causing you extra work to resolve the conflicts! There was a backlog of maintenance work that just needed to be done.

My idea for this change is to add it to a feature branch for a major release v3 because we also need to update the minimum Node.js to 20 (required for wait-on@9). Also on 2026-04-30 Node.js 20 drops into end-of-life status, so then the minimum would be Node.js 22.

@ceisele-r ceisele-r force-pushed the 398 branch 2 times, most recently from 6560b9f to be43679 Compare March 23, 2026 08:35
* Replace ps-tree which uses deprecated functionality to kill process trees on windows (based on wmic.exe) with tree-kill
* Add windows-latest based workflows and execute tests in addition to ubuntu-latest also on windows-latest

Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>

Fixes: bahmutov#398
@ceisele-r ceisele-r force-pushed the 398 branch 2 times, most recently from 5eee7ec to 1bb41f5 Compare March 23, 2026 08:54
@MikeMcC399 MikeMcC399 changed the base branch from master to migrate/tree-kill March 23, 2026 08:55
@MikeMcC399
Copy link
Copy Markdown
Collaborator

I've moved this PR to target the feature branch migrate/tree-kill which is currently the same as the master branch.

@ceisele-r
Copy link
Copy Markdown
Contributor Author

Alright, I've now rebased the branch and added/changed your suggestions.

In tests-node-matrix most tests are not executed on windows for now but I think that should be ok to execute the tests mostly on Linux as the npm scripts are OS dependent (setting the environment variable as well as escaping).
And at least one test Run explicit 0.0.0.0 host example is also executed on windows so basic functionality is tested.

If desired, we could still add/adjust the scripts later so more tests are executed on windows - however, most tests are anyway executed on windows already in tests1 and tests2 workflows.

So from my side it's ready for another review by you.

@ceisele-r ceisele-r requested a review from MikeMcC399 March 23, 2026 09:11
Copy link
Copy Markdown
Collaborator

@MikeMcC399 MikeMcC399 left a comment

Choose a reason for hiding this comment

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

Thank you very much for your work on this migration! 👍🏻

I'll leave the PR open for 2 more days to give others the opportunity to review, and then I'll merge it into the feature branch in preparation for release.

@ceisele-r
Copy link
Copy Markdown
Contributor Author

Great, thank you @MikeMcC399 for your work!

@MikeMcC399
Copy link
Copy Markdown
Collaborator

MikeMcC399 commented Mar 23, 2026

The default Node.js versions are different between Ubuntu and Windows:

job runner Node.js
tests1 ubuntu-latest v20.20.1
tests1 windows-latest v22.22.0

This should probably be harmonized in a separate PR to pin the Node.js versions (LTS would be best).

Node.js 20 is entering end-of-life in a few weeks as well, which I have also raised in actions/runner-images#13833

Edit: is addressed in PR #445

@MikeMcC399
Copy link
Copy Markdown
Collaborator

Nobody else has commented on this PR and there will still be an opportunity to comment and review before its contents are merged into the master branch, so now going ahead with merger into feature branch.

@MikeMcC399 MikeMcC399 merged commit 742c570 into bahmutov:migrate/tree-kill Mar 24, 2026
26 checks passed
@ceisele-r
Copy link
Copy Markdown
Contributor Author

Great, thanks @MikeMcC399 !

MikeMcC399 pushed a commit that referenced this pull request Mar 24, 2026
* Replace ps-tree which uses deprecated functionality to kill
  process trees on windows (based on deprecated wmic.exe) with tree-kill,
  removing the wmic requirement
* Add windows-latest based workflows and execute tests
  in addition to ubuntu-latest also on windows-latest

Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>

Fixes: #398
MikeMcC399 pushed a commit that referenced this pull request Mar 24, 2026
* Replace ps-tree which uses deprecated functionality to kill
  process trees on windows (based on deprecated wmic.exe) with tree-kill,
  removing the wmic requirement
* Add windows-latest based workflows and execute tests
  in addition to ubuntu-latest also on windows-latest

Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>

Fixes: #398
MikeMcC399 pushed a commit that referenced this pull request Mar 24, 2026
* Replace ps-tree which uses deprecated functionality to kill
  process trees on windows (based on deprecated wmic.exe) with tree-kill,
  removing the wmic requirement
* Add windows-latest based workflows and execute tests
  in addition to ubuntu-latest also on windows-latest

Co-authored-by: Mike McCready <66998419+MikeMcC399@users.noreply.github.com>

Fixes: #398
@MikeMcC399
Copy link
Copy Markdown
Collaborator

The release is all prepared now: see #453

If there are no requests for change, then I'd expect to merge it at the end of this week, leaving a couple of days for feedback.

@MikeMcC399
Copy link
Copy Markdown
Collaborator

There didn't seem to be anybody who was queued up to review, so I went ahead and released it.

It shows up on https://www.npmjs.com/package/start-server-and-test so please do test it out!

@ceisele-r ceisele-r deleted the 398 branch March 26, 2026 06:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Error: spawn wmic.exe ENOENT on current Windows systems

2 participants