Open garyking opened 3 years ago
Maybe related to https://github.com/nodegit/nodegit/issues/1839 (or maybe that is just for electron),
although it works fine for me. Node v16.0.0 on Linux (PopOS 20.04). Tested with nodegit@next and nodegit@latest. Thought i cleared node_modules but apparently not, also experiencing problems with Node v16.
But I'm experiencing problems with my CI on Windows with Node v15 and nodegit@next, might be unrelated to your issue.
@garyking I'm having problems with that too
We'll get this addressed in 0.28.0.
I think I'm having the same problem, (was testing via node on osx, but when run in docker with)
2021-05-04 10:32:39 > Error: The module '/TourCms/Cms/node_modules/nodegit/build/Release/nodegit.node'
2021-05-04 10:32:39 > was compiled against a different Node.js version using
2021-05-04 10:32:39 > NODE_MODULE_VERSION 72. This version of Node.js requires
2021-05-04 10:32:39 > NODE_MODULE_VERSION 93. Please try re-compiling or re-installing
2021-05-04 10:32:39 > the module (for instance, using `npm rebuild` or `npm install`).
dockerfile;
FROM node:latest AS node_base
NODE Version: v16.0.0
Edit: disregard this, my github action was installing with v12 (72). Dockerfile latest. Setting both to v12 fixed my problem.
I works for me, it just takes A LOT of time:
❯❯❯ npm i -S nodegit
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-pre-gyp@0.13.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
added 164 packages, and audited 165 packages in 6m
8 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
node -v
: v16.2.0
npm -v
: 7.14.0
Platform
: Win 10 with python 3.9.1 and VS build tools 2019
And in comparison with npm 7.15.0 on the current node LTS (14.17.0) on the same machine:
❯❯❯ npm i -S nodegit
npm WARN deprecated har-validator@5.1.5: this library is no longer supported
npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated node-pre-gyp@0.13.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
added 164 packages, and audited 165 packages in 22s
8 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
Not sure what is going on, but this is 16x increase in installation time. Also node 15 is the same as node 16 in this regard.
I too am having an issue installing nodegit
on Node v16.3.0
on Mac OS Big Sur. It seems to install fine on Windows 10 though.
I can install in a node 16 docker container, I can not on my Mac Mojave 10.14.6
info
npm ERR! spawn
npm ERR! make
npm ERR! gyp
npm ERR! info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
npm ERR! In file included from ../src/async_baton.cc:1:
npm ERR! In file included from ../src/../include/async_baton.h:5:
npm ERR! In file included from ../../nan/nan.h:58
npm ERR! :
npm ERR! In file included from /Users/<user>/Library/Caches/node-gyp/16.6.1/include/node/node.h:63:
npm ERR! In file included from /Users/<user>/Library/Caches/node-gyp/16.6.1/include/node/v8.h:30:
npm ERR! /Users/<user>/Library/Caches/node-gyp/16.6.1/include/node/v8-internal.h:488:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?
npm ERR! !std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
npm ERR! ~~~~~^~~~~~~~~~~
npm ERR! remove_cv
npm ERR! /Library/Developer/CommandLineTools/usr/include/c++/v1/type_traits:660:50: note: 'remove_cv' declared here
npm ERR! template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv
npm ERR!
npm ERR! ^
npm ERR!
npm ERR! 1 error generated.
npm ERR! make: *** [Release/obj.target/nodegit/src/async_baton.o] Error 1
npm ERR! gyp
npm ERR! ERR! build error
npm ERR! gyp ERR! stack Error: `make` failed with exit code: 2
npm ERR! gyp
npm ERR! ERR! stack at ChildProcess.onExit (/Users/<user>/.nvm/versions/node/v16.6.1/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
npm ERR! gyp ERR! stack at ChildProcess.emit (node:events:394:28)
npm ERR! gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
npm ERR! gyp ERR! System Darwin 18.7.0
npm ERR! gyp ERR! command "/Users/<user>/.nvm/versions/node/v16.6.1/bin/node" "/Users/<user>/.nvm/versions/node/v16.6.1/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/<user>/Documents/GitHub/<project>/node_modules/nodegit/build/Release/nodegit.node" "--module_name=nodegit" "--module_path=/Users/<user>/Documents/GitHub/<project>/node_modules/nodegit/build/Release" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93"
npm ERR! gyp ERR! cwd /Users/<user>/Documents/GitHub/<project>/node_modules/nodegit
npm ERR! gyp ERR! node -v v16.6.1
npm ERR! gyp ERR! node-gyp -v v7.1.2
npm ERR! gyp ERR! not ok
For me, it seems the issue is the bin is building from source with Node Gyp and the issue is in here, though I don't fully understand what leads to this (on mac).
NVM could potentially have a part to play in the issue.
It looks like pre-built binaries are missing that could potentially help here:
npm ERR! 404 https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.27.0-node-v93-darwin-x64.tar.gz
npm ERR! node-pre-gyp WARN Tried to download(404): https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.27.0-node-v93-darwin-x64.tar.gz
npm ERR! node-pre-gyp WARN Pre-built binaries not found for nodegit@0.27.0 and node@16.6.1 (node-v93 ABI, unknown) (falling back to source compile with node-gyp)
npm ERR! node-pre-gyp http 404 status code downloading tarball https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.27.0-node-v93-darwin-x64.tar.gz
npm ERR! gyp
I wish nodegit wouldn't need native builds. Or at least not built with node-gyp. node-gyp has been a pain in the – you know, the place, where the sun doesn't shine. It's been problematic ever since its beginnings. It's complicated and the error messages and traces have never been any good. When using NPM, it's a nightmare and with yarn it's even worse.
Alternatively, you might want to think about an option to allow simple spawned calls to the git-cli.
I don't mind a few split seconds or maybe even seconds more, it would take nodegit to execute when running synchronously.
That's still more efficient than spending half a day chasing these pesky node-gyp compile errors.
@KyleTryon Seeing the same error with node v16.4.0, macOS 11.6, node-pre-gyp v0.13.0, node-gyp v4.0.0. You can see my full log here. The interesting bit however is
In file included from
../src/async_baton.cc:1:
In file included from ../src/../include/async_baton.h:5:
In file included from ../../nan/nan.h:58:
In file included from /Users/skainswo/.node-gyp/16.4.0/include/node/node.h:63:
In file included from /Users/skainswo/.node-gyp/16.4.0/include/node/v8.h:30:
/Users/skainswo/.node-gyp/16.4.0/include/node/v8-internal.h:454:38: error: no template named 'remove_cv_t' in namespace 'std'; did you mean 'remove_cv'?
!std::is_same<Data, std::remove_cv_t<T>>::value>::Perform(data);
~~~~~^~~~~~~~~~~
remove_cv
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/c++/v1/type_traits:776:50: note: 'remove_cv' declared here
template <class _Tp> struct _LIBCPP_TEMPLATE_VIS remove_cv
^
1 error generated.
make: *** [Release/obj.target/nodegit/src/async_baton.o] Error 1
A little bit of googling confirmed that this is in fact a compatibility issue with node v16, and other packages have hit this same error: https://stackoverflow.com/questions/67241196/error-no-template-named-remove-cv-t-in-namespace-std-did-you-mean-remove
It's worth mentioning that building from source on the latest master (4561dcb7c120474a4553baa27e4c4c2f4be23a2b at the time of writing) does work for me. So perhaps this issue has been fixed. However attempting to install that version fails: https://github.com/nodegit/nodegit/issues/1864.
npm i nodegit@0.28.0-alpha.9
does work, so I think this issue can be closed once 0.28.0 is released!
npm i nodegit@0.28.0-alpha.9
does work, so I think this issue can be closed once 0.28.0 is released!
Is that version stable? The repo hasn't been updated since that version, in June, so I wouldn't hold my breath for another version any time soon.
npm i nodegit@0.28.0-alpha.9
does work, so I think this issue can be closed once 0.28.0 is released!Is that version stable? The repo hasn't been updated since that version, in June, so I wouldn't hold my breath for another version any time soon.
I think it's stable enough. The only breaking change seems to be Cred being renamed to Credential (possibly some other minor api changes?).
I've been using the alpha versions for a while and have not experienced any problems.
Any word on when the next release will be cut?
We're working on resolving some lingering context awareness issues. Once those are addressed, we'll cut another alpha release. Once that's been out without issue for a while, we'd like to cut a non-alpha release including these changes.
@ianhattendorf any updates on if the current alpha release has met expectations? Conservative ETA for a 0.28.0 drop?
I am having an issue installing nodegit@0.28.0-alpha.10
on ubuntu-latest
in github actions when using node v16.
Working in macos-latest
and windows-latest
though...
https://github.com/ts-defold/create/runs/4203328519?check_suite_focus=true#step:4:18
This isn't really relevant to this issue, but it might be worth considering targeting WASM instead of publishing native bindings, that way you can have all of the same functions and possibly reduce some if not all of these sorts of issues.
@Toxicable There is already a WASM version of libgit2, the same git lib that nodegit uses: https://github.com/petersalomonsen/wasm-git
Not sure what the performance difference is between WASM and Native version as I haven't measure it but maybe it won't be very much since git is more I/O intensive and not so much CPU IMHO.
Other projects with more CPU intensive parsing are 3-5 times slower with WASM than Native, see: https://github.com/tree-sitter/node-tree-sitter/issues/90#issuecomment-1007419896
It looks like 0.28.0-alpha.10 is missing a prebuilt linux x64 binary for Node 16.
try apt-get install -y python2 python3 libkrb5-dev gcc openssl libssh2-1-dev g++ make
and then npm install nodegit
It worked for me.
The headers downloading process is skipped.
Example
version: "3"
services:
wechat_devtools:
image: node:16.13.1-slim
volumes:
- .:/workspace
entrypoint: /workspace/docker/entrypoint
#!/bin/bash
cd /workspace
apt update
apt-get install -y python2 python3 libkrb5-dev gcc openssl libssh2-1-dev g++ make
echo "start"
npm install nodegit
npm uninstall nodegit
@ianhattendorf any updates on if the current alpha release has met expectations? Conservative ETA for a 0.28.0 drop?
Still in the works, we haven't noticed any major issues so far with the latest alpha.
It looks like 0.28.0-alpha.10 is missing a prebuilt linux x64 binary for Node 16.
I'll see what we can do about getting prebuilts out soon for Node 16.
FYI, I needed the prebuilts ASAP so I forked the repo and added support for it to my fork. Other than adding 16
to the matrix, the only other change that was required was chown the checkout to root
(i.e. chown root .
). This is required because npm 7+ removed support for unsafe-perm
used here: https://github.com/nodegit/nodegit/blob/2e63ec9c361d83b9e2224bf22f3f81b6ad71e1b3/.github/workflows/tests.yml#L56
@ianhattendorf
I'll see what we can do about getting prebuilts out soon for Node 16.
Thanks for your work on nodegit. It would be awesome to have the binaries for Node 16. I've spent 3 days reworking our whole infra to move to Node 16 on the latest alpha, and I had to rewrite many parts of our pipeline to prevent timeouts since it currently requires building from source.
Happy to help on this if needed 🙂
just in case anyone in need stumbles upon this, the current solution is:
yarn add nodegit@0.28.0-alpha.11
or
npm i nodegit@0.28.0-alpha.11
but you have to compile it on linux and that could be a problem in a container image lacking required dependencies so add
apt-get install -y python2 python3 libkrb5-dev gcc openssl libssh2-1-dev g++ make
to your build before installing nodegit
@selfagency Thanks for the hint! Glad it works for you. Sadly, it does not work for me. The error changes to
npm ERR! code 1
npm ERR! path /Users/[…]/node_modules/nodegit
npm ERR! command failed
npm ERR! command sh -c node lifecycleScripts/preinstall && node lifecycleScripts/install
But that is probably another topic. I will open a new ticket for that, when it still does not work after nodegit@0.28.0
is released.
Like @KyleTryon, I also use nvm (node version manager). My default is node@16, and I am on a m1 mac.
So my workaround is this:
nvm use 12
npm install
nvm use default
Thanks for that, @DerZyklop , I was losing my mind here
Hi there so it seems this is a big issue... In AWS ElasticBeanstralk deploy if you have the 1 of the 2 platforms (Node 16). You will have a failing deploy because unsafe-perm was deprecated and npm install may fail...
I got this error on a Macbook M1 Max:
$ yarn add nodegit
yarn add v1.22.19
[1/4] 🔍 Resolving packages...
[2/4] 🚚 Fetching packages...
[3/4] 🔗 Linking dependencies...
warning Workspaces can only be enabled in private projects.
warning Workspaces can only be enabled in private projects.
[4/4] 🔨 Building fresh packages...
[1/2] ⠐ esbuild
error /Users/m.manzanares/test/test-nodegit/node_modules/nodegit: Command failed.
Exit code: 1
Command: node lifecycleScripts/preinstall && node lifecycleScripts/install
Arguments:
Directory: /Users/m.manzanares/test/test-nodegit/node_modules/nodegit
Output:
[nodegit] Running pre-install script
[nodegit] Running install script
node-pre-gyp
info it worked if it ends with ok
node-pre-gyp info
using node-pre-gyp@1.0.9
node-pre-gyp info using
node@16.13.0 | darwin | arm64
node-pre-gyp info check checked for "/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release/nodegit.node" (not found)
node-pre-gyp http GET https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.28.0-alpha.13-node-v93-darwin-arm64.tar.gz
node-pre-gyp
ERR! install response status 404 Not Found on https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.28.0-alpha.13-node-v93-darwin-arm64.tar.gz
node-pre-gyp WARN Pre-built binaries not installable for nodegit@0.28.0-alpha.13 and node@16.13.0 (node-v93 ABI, unknown) (falling back to source compile with node-gyp)
node-pre-gyp WARN Hit error response status 404 Not Found on https://axonodegit.s3.amazonaws.com/nodegit/nodegit/nodegit-v0.28.0-alpha.13-node-v93-darwin-arm64.tar.gz
gyp
info it worked if it ends with ok
gyp info
using
node-gyp@8.4.1
gyp info using
node@16.13.0 | darwin | arm64
gyp
info ok
gyp
info it worked if it ends with ok
gyp info using node-gyp@8.4.1
gyp info using node@16.13.0 | darwin | arm64
gyp info
find Python using Python version 3.8.9 found at "/Applications/Xcode.app/Contents/Developer/usr/bin/python3"
gyp
info spawn /Applications/Xcode.app/Contents/Developer/usr/bin/python3
gyp info spawn args [
gyp info spawn args '/Users/m.manzanares/test/test-nodegit/node_modules/node-gyp/gyp/gyp_main.py',
gyp info spawn args 'binding.gyp',
gyp info
spawn args '-f',
gyp info spawn args 'make',
gyp info spawn args '-I',
gyp info spawn args '/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/config.gypi',
gyp info spawn args '-I',
gyp info spawn args '/Users/m.manzanares/test/test-nodegit/node_modules/node-gyp/addon.gypi',
gyp info spawn args '-I',
gyp
info spawn args '/Users/m.manzanares/Library/Caches/node-gyp/16.13.0/include/node/common.gypi',
gyp info spawn args '-Dlibrary=shared_library',
gyp
info spawn args '-Dvisibility=default',
gyp info spawn args '-Dnode_root_dir=/Users/m.manzanares/Library/Caches/node-gyp/16.13.0',
gyp info spawn args '-Dnode_gyp_dir=/Users/m.manzanares/test/test-nodegit/node_modules/node-gyp',
gyp info
spawn args '-Dnode_lib_file=/Users/m.manzanares/Library/Caches/node-gyp/16.13.0/<(target_arch)/node.lib',
gyp info spawn args '-Dmodule_root_dir=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit',
gyp info spawn args '-Dnode_engine=v8',
gyp info spawn args '--depth=.',
gyp info spawn args '--no-parallel',
gyp info spawn args '--generator-output',
gyp info spawn args 'build',
gyp info spawn args '-Goutput_dir=.'
gyp info spawn args ]
gyp info
ok
gyp
info it worked if it ends with ok
gyp info using node-gyp@8.4.1
gyp
info using node@16.13.0 | darwin | arm64
gyp
info spawn make
gyp info spawn args [ 'BUILDTYPE=Release', '-C', 'build' ]
SOLINK_MODULE(target) Release/acquireOpenSSL.node
ACTION binding_gyp_configureLibssh2_target_configure .
[nodegit] Configuring libssh2.
SOLINK_MODULE(target) Release/configureLibssh2.node
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/allocators/failalloc.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/allocators/stdalloc.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/commit.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/commit_graph.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/custom_tls.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/alloc.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/annotated_commit.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/apply.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/attr_file.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/attr.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/attrcache.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/blame_git.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/blame.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/blob.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/branch.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/buf_text.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/buffer.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/cache.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/checkout.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/cherrypick.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/clone.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/commit_list.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config_cache.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config_entries.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config_file.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config_mem.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config_parse.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config_snapshot.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/config.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/crlf.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/date.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/delta.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_driver.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_file.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_generate.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_parse.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_print.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_stats.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_tform.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff_xdiff.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/diff.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/errors.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/fetch.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/fetchhead.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/filebuf.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/futils.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/filter.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/graph.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/hash.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/hash/sha1/sha1dc/sha1.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/hash/sha1/sha1dc/ubc_check.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/hash/sha1/collisiondetect.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/hashsig.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/ident.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/idxmap.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/ignore.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/index.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/indexer.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/iterator.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/libgit2.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/mailmap.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/midx.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/merge_driver.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/merge_file.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/merge.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/message.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/mwindow.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/net.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/netops.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/notes.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/object_api.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/object.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/odb_loose.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/odb_mempack.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/odb_pack.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/odb.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/offmap.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/oid.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/oidarray.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/oidmap.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/pack-objects.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/pack.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/parse.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/patch_generate.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/patch_parse.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/patch.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/path.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/pathspec.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/pool.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/posix.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/pqueue.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/proxy.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/push.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/reader.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/rebase.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/refdb_fs.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/refdb.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/reflog.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/refs.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/refspec.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/regexp.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/remote.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/repository.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/reset.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/revert.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/revparse.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/revwalk.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/runtime.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/signature.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/streams/socket.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/sortedcache.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/stash.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/status.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/strarray.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/streams/mbedtls.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/streams/openssl.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/streams/registry.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/strmap.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/submodule.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/sysdir.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/tag.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/thread.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/threadstate.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/trace.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/trailer.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transaction.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transport.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/credential_helpers.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/credential.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/git.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/local.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/httpclient.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/smart_pkt.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/smart_protocol.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/smart.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/transports/ssh.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/tree-cache.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/tree.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/tsort.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/util.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/varint.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/vector.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/wildmatch.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/worktree.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xdiffi.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xemit.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xhistogram.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xmerge.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xpatience.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xprepare.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/xdiff/xutils.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/zstream.o
CC(target) Release/obj.target/libgit2/vendor/libgit2/src/streams/stransport.o
../vendor/libgit2/src/streams/stransport.c:12:10: fatal error: 'CoreFoundation/CoreFoundation.h' file not found
#include <CoreFoundation/CoreFoundation.h>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.
make: *** [Release/obj.target/libgit2/vendor/libgit2/src/streams/stransport.o] Error 1
gyp
ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/Users/m.manzanares/test/test-nodegit/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack at ChildProcess.emit (node:events:390:28)
gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:290:12)
gyp
ERR! System Darwin 21.5.0
gyp
ERR! command "/Users/m.manzanares/.nvm/versions/node/v16.13.0/bin/node" "/Users/m.manzanares/test/test-nodegit/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release/nodegit.node" "--module_name=nodegit" "--module_path=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release" "--napi_version=8" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v93"
gyp ERR! cwd /Users/m.manzanares/test/test-nodegit/node_modules/nodegit
gyp ERR! node -v v16.13.0
gyp ERR! node-gyp -v
v8.4.1
gyp ERR! not ok
node-pre-gyp ERR!
build error
node-pre-gyp ERR! stack Error: Failed to execute '/Users/m.manzanares/.nvm/versions/node/v16.13.0/bin/node /Users/m.manzanares/test/test-nodegit/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release/nodegit.node --module_name=nodegit --module_path=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/Users/m.manzanares/test/test-nodegit/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23)
node-pre-gyp ERR! stack at ChildProcess.emit (node:events:390:28)
node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1064:16)
node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:301:5)
node-pre-gyp ERR! System Darwin 21.5.0
node-pre-gyp ERR! command "/Users/m.manzanares/.nvm/versions/node/v16.13.0/bin/node" "/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd /Users/m.manzanares/test/test-nodegit/node_modules/nodegit
node-pre-gyp
ERR! node -v v16.13.0
node-pre-gyp ERR! node-pre-gyp -v v1.0.9
node-pre-gyp ERR! not ok
Failed to execute '/Users/m.manzanares/.nvm/versions/node/v16.13.0/bin/node /Users/m.manzanares/test/test-nodegit/node_modules/node-gyp/bin/node-gyp.js build --fallback-to-build --module=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release/nodegit.node --module_name=nodegit --module_path=/Users/m.manzanares/test/test-nodegit/node_modules/nodegit/build/Release --napi_version=8 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v93' (1)
[nodegit] ERROR - Could not finish install
[nodegit] ERROR - finished with error code: 1
Like @KyleTryon, I also use nvm (node version manager). My default is node@16, and I am on a m1 mac.
So my workaround is this:
nvm use 12 npm install nvm use default
this does not work properly for me :(
I have since upgraded to Node v18 and installed nodegit v0.28.0-alpha.18
, and it installed and runs fine. I know that's not a solution for everyone, but it might help someone.
Could we have prebuilds for node 18? It is now LTS. Node 16 will be EOL in less than a year, whereas node 18 will be supported through 2025, so I would really like to use node 18, but installing from source can be a pain (and slow).
nodegit@v0.28.0-alpha.18
works for me on Mac M1 Pro with node v18.11.0
I have since upgraded to Node v18 and installed
nodegit v0.28.0-alpha.18
, and it installed and runs fine. I know that's not a solution for everyone, but it might help someone.
This nodegit version can also be installed with Node v16 on Mac M1
You may be able to install it, but you'll be compiling libgit2 from source. This bug is mainly about the fact that there are not prebuilt binaries available.
I'm getting this error on my Mac intel 12.6.3. It fails for me on both Node16 and Node19
I'm also getting an error installing the alpha version
Downgrade to Node v12 works for nodegit@0.27.0
nodegit@v0.28.0-alpha.18
works for me on Mac M1 Pro with nodev18.11.0
This works! Thank you very much!!
Figma is apparently (unofficially, for their own use, I assume) offering pre-built binaries that work with Node.js v18 on their fork: https://www.npmjs.com/package/@figma/nodegit
Credit goes to Figma an @jfirebaugh (and the people at Figma) whose branch is the base for their current release. Thank you!
Which version of NodeGit should be used now with Node JS v18.17.1?
@0.28.0-alpha.21
given on https://github.com/nodegit/nodegit
@0.28.3
mentioned on https://www.npmjs.com/package/nodegit as stable version
@0.27.0
as official version on https://www.npmjs.com/package/nodegit
Experienced this issue with MacBook Air M1 (2020), Node v18.18.0. Using figma's nodegit (0.28.0-figma.4) worked.
Experienced this issue with MacBook Air M1 (2020), Node v18.18.0. Using figma's nodegit (0.28.0-figma.4) worked.
@seasonedfish Is (0.28.0-figma.4) a production ready version?
Sorry, I don't know if they make any guarantees of their release being production ready.
It seems like
nodegit
can't be installed for Node v16? Can anyone confirm if they can?