Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Windows support #234

Merged
merged 11 commits into from
Nov 22, 2021
Merged

Remove Windows support #234

merged 11 commits into from
Nov 22, 2021

Conversation

genevieve
Copy link
Collaborator

Context

The v8go library currently supports binaries for mac, linux, and windows. The last release of this library with an updated version of v8 was in May. We have been making efforts to automate the upgrade process here so that we can ship releases more regularly as patches are released/CVEs are found and fixed. However, we've been unable to merge any of those upgrade PRs opened by the automation @GustavoCaso added because it fails to build the window binary on later versions of v8.

The windows binary is built using MinGW and relies on patches in a different repository to make the v8 binary compile. These patches have not been updated for later versions and so they fail to apply on upgrade attempts.

Additionally, there seems to be incompatibility with enabling Internationalization/ICU support with the existing windows build process because of what appears to be a reliance on something provided by VSCode.

As such:

  1. We cannot ship releases of v8go because we cannot build the windows binary and do not want the versions of mac/linux to be out of step with windows. The last release with a v8 update is from May. We are 6 minors behind.
  2. We cannot ship a release of v8go with ICU enabled in the v8 binary because we cannot build the windows binary with it using the current build process.

Proposal

This PR removes support for windows from v8go as a result of the above issues. If a user of the library can contribute a fix to the above issues now, great. We tried asking in the #v8go gophers channel a couple weeks ago but did not get much of a response. Until such time as a user is able to contribute the changes needed to make the windows binary build on recent versions of v8 & with intl support enabled, we can remove it as a blocker allowing us to cut releases of v8go with the latest v8 update for mac and linux, as well as with intl support.

Genevieve L'Esperance and others added 4 commits November 17, 2021 14:22
Co-authored-by: Oliver Fuerst <87430407+ofuerst@users.noreply.github.com>
Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>
@codecov
Copy link

codecov bot commented Nov 18, 2021

Codecov Report

Merging #234 (eb46224) into master (a8a4920) will not change coverage.
The diff coverage is n/a.

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #234   +/-   ##
=======================================
  Coverage   95.87%   95.87%           
=======================================
  Files          17       17           
  Lines         582      582           
=======================================
  Hits          558      558           
  Misses         15       15           
  Partials        9        9           

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update a8a4920...eb46224. Read the comment docs.

README.md Outdated Show resolved Hide resolved
Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>
README.md Outdated Show resolved Hide resolved
Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>
Copy link
Collaborator

@dylanahsmith dylanahsmith left a comment

Choose a reason for hiding this comment

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

Approving, but let's wait to hear from @rogchap

@epk
Copy link
Contributor

epk commented Nov 20, 2021

Probably should also delete https://github.com/rogchap/v8go/tree/master/deps/windows_x86_64

Copy link
Owner

@rogchap rogchap left a comment

Choose a reason for hiding this comment

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

Makes sense to me; I've spent too many sleepless nights fighting to get Windows building right, with little success.

@dylanahsmith
Copy link
Collaborator

Tests on 1.16.8 windows-latest Expected — Waiting for status to be reported (Required)
Tests on 1.17.1 windows-latest Expected — Waiting for status to be reported (Required)

@rogchap looks like these will need to be removed from the required checks before merging.

@rogchap rogchap merged commit f55271d into rogchap:master Nov 22, 2021
@genevieve genevieve deleted the rm-windows branch November 23, 2021 19:21
wowngasb added a commit to wowngasb/v8go that referenced this pull request Jan 19, 2024
commit cee5f84
Author: Jonathan Geddes <geddes.jonathan@gmail.com>
Date:   Mon Apr 10 10:09:13 2023 -0600

    shared array buffers (rogchap#378)

    * Initial support for SharedArrayBuffer

commit 0e40e6e
Author: Randy Goodman <mullan17@gmail.com>
Date:   Mon Mar 20 19:27:55 2023 -0400

    v0.9.0 (rogchap#376)

commit be4ff5e
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Tue Mar 21 07:17:39 2023 +1100

    Upgrade V8 binaries for 11.1.277.13 version (rogchap#373)

commit 02e1763
Author: Jacques Nadeau <jacquesnadeau@gmail.com>
Date:   Mon Jan 30 06:51:45 2023 -0800

    Upgrade V8 binaries for 10.9.194.9 version **working** (rogchap#363)

    * Upgrade V8 binaries for 10.9.194.9 version

    * Fixes to support newest stable v8.

    - Update github workflow to use go 18 & 19
    - Update github workflow to use macos-latest
    - Update github build workflow to use ubuntu 22.04
    - Add gitignore for jetbrains and .gclient_previous files
    - Switch cgo build to C++17 and enable sandbox at build time
    - Update test with update to date error message
    - Remove no longer supported build flag.
    - Move initialization to v8go.go and include flag set to avoid flag freezing
    - Reorder initialization so allocator is initialized after v8 (required by latest v8)

    * Update V8 static library for macos-11 x86_64

    * Update V8 static library for ubuntu-22.04 x86_64

    * Update V8 static library for macos-11 arm64

    * Update V8 static library for ubuntu-22.04 arm64

    * Update changelog and remove no-longer valid comment

    ---------

    Co-authored-by: jacques-n <jacques-n@users.noreply.github.com>

commit 7d843f1
Author: Kyle Maxwell <kyle@kylemaxwell.com>
Date:   Thu Jan 19 13:17:30 2023 -0800

    v8.Value becomes manually releaseable (rogchap#361)

    * values are manually releaseable

    Co-authored-by: Kyle Maxwell <kyle.maxwell@reddit.com>

commit 1f00b50
Author: Ryan H. Lewis <ryan@ryanlewis.dev>
Date:   Wed Nov 2 14:15:10 2022 -0600

    adding additional profile values (rogchap#341)

commit fc8b9f1
Author: Ryan H. Lewis <ryan@ryanlewis.dev>
Date:   Mon Aug 8 16:10:42 2022 -0600

    updating context documentation (rogchap#335)

    Co-authored-by: Ryan H Lewis <ryan.lewis@reddit.com>

commit da7f43c
Author: Lukas Malkmus <lukasmalkmus@users.noreply.github.com>
Date:   Wed Apr 13 16:20:09 2022 +0200

    Fix typo in promise.go (rogchap#310)

    Literally just fixing a typo in `promise.go` that I discovered while strolling through the code.

commit db78170
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Mar 9 14:29:03 2022 -0800

    Upgrade V8 binaries for 9.7.106.19 version (rogchap#278)

    * Upgrade V8 binaries for 9.7.106.19 version

    * Update V8 static library for ubuntu-18.04 x86_64 (rogchap#292)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    * Update V8 static library for ubuntu-18.04 arm64 (rogchap#293)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    * Update V8 static library for macos-11 x86_64 (rogchap#294)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    * Update V8 static library for macos-11 arm64 (rogchap#295)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    Co-authored-by: dylanahsmith <dylanahsmith@users.noreply.github.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

commit 5e91d3d
Author: Dylan Thacker-Smith <dylan.smith@shopify.com>
Date:   Wed Jan 12 17:06:50 2022 -0500

    Fix Object.Set with an empty key string (rogchap#276)

commit 1d433f7
Author: Genevieve <genevieve.lesperance@shopify.com>
Date:   Wed Jan 12 10:41:04 2022 -0800

    Use length to ensure null chars do not cause early termination of C string copies/reads (rogchap#272)

    * Intro test case for null terminator string

    * unexpected result: expected ss, got sx00s

    * Fix the assertion, add Unicode symbols

    * Pass go string length into v8::String::New to ensure it does not cut off
    at null chars

    * Reuse the existing RtnString type

    * Formatting

    * Update value_test.go

    Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>

    * Table tests for NewValue

    * Use std::string constructor in CopyString(Utf8Value) to keep whole
    string

    * Update changelog

    Co-authored-by: Genevieve L'Esperance <glesperance@doximity.com>
    Co-authored-by: Maxim Shirshin <maxim.shirshin@shopify.com>
    Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>

commit cb8779b
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Jan 12 07:51:03 2022 -0800

    Upgrade V8 binaries for 9.7.106.18 version (rogchap#264)

    Co-authored-by: dylanahsmith <dylanahsmith@users.noreply.github.com>
    Co-authored-by: Genevieve <genevieve.lesperance@shopify.com>

commit c0dbfd3
Author: Dylan Thacker-Smith <dylan.smith@shopify.com>
Date:   Wed Jan 12 09:58:36 2022 -0500

    Remove unnecessary nested Locker and Isolate::Scope use (rogchap#275)

    * Remove unnecessary nested Locker and Isolate::Scope use

    * Make ExceptionError static, since it isn't used outside that file

commit ede7cee
Author: Liu Xiangchao <iwind.liu@gmail.com>
Date:   Fri Jan 7 01:33:29 2022 +0800

    modify -fpic to -fPIC (rogchap#263)

commit a0417ad
Author: Dylan Thacker-Smith <dylan.smith@shopify.com>
Date:   Wed Dec 22 15:48:45 2021 -0500

    CHANGELOG: Highlight the subtlety of the Function Call breaking change (rogchap#259)

commit 943fcf9
Author: Aditya Sharma <git@adi.run>
Date:   Wed Dec 22 09:30:54 2021 -0800

    Build v8 for linux_arm64 (rogchap#223)

    * Build v8 for linux_arm64

    * Update V8 static library for ubuntu-18.04 arm64

    Co-authored-by: epk <epk@users.noreply.github.com>

commit e635d48
Author: Genevieve <genevieve.lesperance@shopify.com>
Date:   Mon Dec 13 09:28:33 2021 -0800

    Allocate children array with count (rogchap#256)

commit 6e4af34
Author: Roger Chapman <rogchap@gmail.com>
Date:   Thu Dec 9 10:29:56 2021 +1100

    v0.7.0

commit 762c7a8
Author: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Date:   Wed Dec 8 15:22:43 2021 -0800

    Upgrade V8 binaries for 9.6.180.12 version (rogchap#231)

    * Upgrade V8 binaries for 9.6.180.12 version

    * Add -ldl flag to linux build to fix missing dlsym errors

    * Update V8 static library for macos-11 x86_64 (rogchap#249)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    * Update V8 static library for ubuntu-18.04 x86_64 (rogchap#250)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    * Update V8 static library for macos-11 arm64 (rogchap#251)

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

    * Update changelog

    Co-authored-by: dylanahsmith <dylanahsmith@users.noreply.github.com>
    Co-authored-by: Genevieve L'Esperance <genevieve.lesperance@shopify.com>
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

commit a92639e
Author: Genevieve <genevieve.lesperance@shopify.com>
Date:   Tue Nov 30 12:59:03 2021 -0800

    Enable intl support and store data in v8 binary (rogchap#242)

    * Enable intl support and store data in v8 binary

    * Update V8 static library for ubuntu-18.04 x86_64

    * Update V8 static library for macos-11 arm64

    * Update changelog

    Co-authored-by: genevieve <genevieve@users.noreply.github.com>

commit f55271d
Author: Genevieve <genevieve.lesperance@shopify.com>
Date:   Mon Nov 22 14:50:43 2021 -0800

    Remove Windows support (rogchap#234)

    * Remove Windows binary support

    * Update CHANGELOG.md

    Co-authored-by: Oliver Fuerst <87430407+ofuerst@users.noreply.github.com>

    * Update CHANGELOG.md

    Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>

    * Update windows section

    * Update README.md

    Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>

    * Update README.md

    Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>

    * Remove windows fossa step

    * Remove deps/windows_x86_64

    Co-authored-by: Oliver Fuerst <87430407+ofuerst@users.noreply.github.com>
    Co-authored-by: Dylan Thacker-Smith <dylan.smith@shopify.com>
    Co-authored-by: Roger Chapman <rogchap@gmail.com>
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.

5 participants