atom/tree-view

Build failing

ardentbriar opened this issue · 2 comments

Prerequisites

Description

Builds are currently failing. This failed build on Travis is an unchanged copy of master:

https://travis-ci.org/github/ardentbriar/tree-view/jobs/700467325

Steps to Reproduce

  1. Clone a fresh copy of tree-view.
  2. Run apm install to install deps.

Expected behavior:

Deps install successfully.

Actual behavior:

The node-gyp build of pathwatcher fails. I see the same error in the Travis build and locally:

$ apm install
Installing modules ✗
> pathwatcher@8.0.2 install /home/user/repo/github/tree-view/node_modules/pathwatcher
> node-gyp rebuild

make: Entering directory '/home/user/repo/github/tree-view/node_modules/pathwatcher/build'
  CXX(target) Release/obj.target/pathwatcher/src/main.o
make: Leaving directory '/home/user/repo/github/tree-view/node_modules/pathwatcher/build'

In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8-internal.h:13,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:25,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8config.h:307:49: warning: ‘BufferReference’ is deprecated: Use MemorySpan<const uint8_t> [-Wdeprecated-declarations]
  307 |   declarator __attribute__((deprecated(message)))
      |                                                 ^
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:4444:3: note: in expansion of macro ‘V8_DEPRECATED’
 4444 |   V8_DEPRECATED("Use CompiledWasmModule::GetWireBytesRef()",
      |   ^~~~~~~~~~~~~
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:4386:58: note: declared here
 4386 |   V8_DEPRECATED("Use MemorySpan<const uint8_t>", struct) BufferReference {
      |                                                          ^~~~~~~~~~~~~~~
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8-internal.h:13,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:25,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8config.h:307:49: warning: ‘v8::WasmModuleObject::SerializedModule’ is deprecated: Use OwnedBuffer [-Wdeprecated-declarations]
  307 |   declarator __attribute__((deprecated(message)))
      |                                                 ^
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:4457:3: note: in expansion of macro ‘V8_DEPRECATED’
 4457 |   V8_DEPRECATED("Use CompiledWasmModule::Serialize()",
      |   ^~~~~~~~~~~~~
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:4380:55: note: declared here
 4380 |   std::pair<std::unique_ptr<const uint8_t[]>, size_t> SerializedModule;
      |                                                       ^~~~~~~~~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h: In member function ‘v8::Local<v8::Boolean> v8::Value::ToBoolean() const’:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:10172:62: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
10172 |   return ToBoolean(Isolate::GetCurrent()->GetCurrentContext())
      |                                                              ^
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8-internal.h:13,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:25,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:2388:63: note: declared here
 2388 |                     V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
      |                                                               ^~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
  322 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
In file included from ../../nan/nan_converters.h:67,
                 from ../../nan/nan.h:222,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ToFactoryBase<v8::Boolean>::return_t Nan::imp::ToFactory<v8::Boolean>::convert(v8::Local<v8::Value>)’:
../../nan/nan_converters_43_inl.h:18:51: warning: ‘v8::MaybeLocal<v8::Boolean> v8::Value::ToBoolean(v8::Local<v8::Context>) const’ is deprecated: ToBoolean can never throw. Use Local version. [-Wdeprecated-declarations]
   18 |       val->To ## TYPE(isolate->GetCurrentContext())                            \
      |                                                   ^
../../nan/nan_converters_43_inl.h:22:1: note: in expansion of macro ‘X’
   22 | X(Boolean)
      | ^
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8-internal.h:13,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:25,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:2388:63: note: declared here
 2388 |                     V8_WARN_UNUSED_RESULT MaybeLocal<Boolean> ToBoolean(
      |                                                               ^~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
  322 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
In file included from ../../nan/nan_converters.h:67,
                 from ../../nan/nan.h:222,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
../../nan/nan_converters_43_inl.h: In static member function ‘static Nan::imp::ValueFactoryBase<bool>::return_t Nan::imp::ToFactory<bool>::convert(v8::Local<v8::Value>)’:
../../nan/nan_converters_43_inl.h:37:57: warning: ‘v8::Maybe<bool> v8::Value::BooleanValue(v8::Local<v8::Context>) const’ is deprecated: BooleanValue can never throw. Use Isolate version. [-Wdeprecated-declarations]
   37 |   return val->NAME ## Value(isolate->GetCurrentContext());                     \
      |                                                         ^
../../nan/nan_converters_43_inl.h:40:1: note: in expansion of macro ‘X’
   40 | X(bool, Boolean)
      | ^
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8-internal.h:13,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:25,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:2433:55: note: declared here
 2433 |                     V8_WARN_UNUSED_RESULT Maybe<bool> BooleanValue(
      |                                                       ^~~~~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
  322 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
In file included from ../src/common.h:6,
                 from ../src/main.cc:1:
../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:
../../nan/nan.h:2232:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type]
 2232 |     , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete)
      |                                                              ^
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node_object_wrap.h:26,
                 from ../../nan/nan.h:55,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
../../nan/nan_object_wrap.h: In destructor ‘virtual Nan::ObjectWrap::~ObjectWrap()’:
../../nan/nan_object_wrap.h:24:37: warning: ‘bool v8::PersistentBase<T>::IsNearDeath() const [with T = v8::Object]’ is deprecated: Garbage collection internal state should not be relied on. [-Wdeprecated-declarations]
   24 |     assert(persistent().IsNearDeath());
      |                                     ^
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8-internal.h:13,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:25,
                 from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:573:22: note: declared here
  573 |       V8_INLINE bool IsNearDeath() const);
      |                      ^~~~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8config.h:322:3: note: in definition of macro ‘V8_DEPRECATE_SOON’
  322 |   declarator __attribute__((deprecated(message)))
      |   ^~~~~~~~~~
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node_object_wrap.h:26,
                 from ../../nan/nan.h:55,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
../../nan/nan_object_wrap.h: In static member function ‘static void Nan::ObjectWrap::WeakCallback(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’:
../../nan/nan_object_wrap.h:127:38: warning: ‘bool v8::PersistentBase<T>::IsNearDeath() const [with T = v8::Object]’ is deprecated: Garbage collection internal state should not be relied on. [-Wdeprecated-declarations]
  127 |     assert(wrap->handle_.IsNearDeath());
      |                                      ^
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:9579:6: note: declared here
 9579 | bool PersistentBase<T>::IsNearDeath() const {
      |      ^~~~~~~~~~~~~~~~~
In file included from ../src/handle_map.h:7,
                 from ../src/main.cc:2:
../src/unsafe_persistent.h: At global scope:
../src/unsafe_persistent.h:30:9: error: ‘v8::Handle’ has not been declared
   30 |   , v8::Handle<T> obj) {
      |         ^~~~~~
../src/unsafe_persistent.h:30:15: error: expected ‘,’ or ‘...’ before ‘<’ token
   30 |   , v8::Handle<T> obj) {
      |               ^
../src/unsafe_persistent.h: In function ‘void NanAssignUnsafePersistent(NanUnsafePersistent<T>&, int)’:
../src/unsafe_persistent.h:32:64: error: ‘obj’ was not declared in this scope
   32 |     handle = NanUnsafePersistent<T>(v8::Isolate::GetCurrent(), obj);
      |                                                                ^~~
In file included from ../src/main.cc:2:
../src/handle_map.h: At global scope:
../src/handle_map.h:11:26: error: ‘Handle’ has not been declared
   11 |   static void Initialize(Handle<Object> target);
      |                          ^~~~~~
../src/handle_map.h:11:32: error: expected ‘,’ or ‘...’ before ‘<’ token
   11 |   static void Initialize(Handle<Object> target);
      |                                ^
../src/main.cc:6:11: error: variable or field ‘Init’ declared void
    6 | void Init(Handle<Object> exports) {
      |           ^~~~~~
../src/main.cc:6:11: error: ‘Handle’ was not declared in this scope; did you mean ‘HandleMap’?
    6 | void Init(Handle<Object> exports) {
      |           ^~~~~~
      |           HandleMap
../src/main.cc:6:24: error: expected primary-expression before ‘>’ token
    6 | void Init(Handle<Object> exports) {
      |                        ^
../src/main.cc:6:26: error: ‘exports’ was not declared in this scope
    6 | void Init(Handle<Object> exports) {
      |                          ^~~~~~~
In file included from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
../src/main.cc:19:26: error: ‘Init’ was not declared in this scope; did you mean ‘node::Init’?
   19 | NODE_MODULE(pathwatcher, Init)
      |                          ^~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:560:36: note: in definition of macro ‘NODE_MODULE_X’
  560 |       (node::addon_register_func) (regfunc),                          \
      |                                    ^~~~~~~
../src/main.cc:19:1: note: in expansion of macro ‘NODE_MODULE’
   19 | NODE_MODULE(pathwatcher, Init)
      | ^~~~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:221:18: note: ‘node::Init’ declared here
  221 | NODE_EXTERN void Init(int* argc,
      |                  ^~~~
In file included from /home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node.h:63,
                 from ../../nan/nan.h:53,
                 from ../src/common.h:6,
                 from ../src/main.cc:1:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = node::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)]’:
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/node_object_wrap.h:84:78:   required from here
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:9634:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<node::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<node::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
 9634 |                reinterpret_cast<Callback>(callback), type);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h: In instantiation of ‘void v8::PersistentBase<T>::SetWeak(P*, typename v8::WeakCallbackInfo<P>::Callback, v8::WeakCallbackType) [with P = Nan::ObjectWrap; T = v8::Object; typename v8::WeakCallbackInfo<P>::Callback = void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)]’:
../../nan/nan_object_wrap.h:66:61:   required from here
/home/user/.atom/.node-gyp/.cache/node-gyp/5.0.13/include/node/v8.h:9634:16: warning: cast between incompatible function types from ‘v8::WeakCallbackInfo<Nan::ObjectWrap>::Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<Nan::ObjectWrap>&)’} to ‘Callback’ {aka ‘void (*)(const v8::WeakCallbackInfo<void>&)’} [-Wcast-function-type]
make: *** [pathwatcher.target.mk:112: Release/obj.target/pathwatcher/src/main.o] Error 1
gyp ERR! build error 
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack     at ChildProcess.onExit (/usr/share/atom/resources/app/apm/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)
gyp ERR! stack     at ChildProcess.emit (events.js:198:13)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
gyp ERR! System Linux 4.19.125-1.pvops.qubes.x86_64
gyp ERR! command "/usr/share/atom/resources/app/apm/bin/node" "/usr/share/atom/resources/app/apm/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /home/user/repo/github/tree-view/node_modules/pathwatcher
gyp ERR! node -v v10.20.1
gyp ERR! node-gyp -v v5.1.0
gyp ERR! not ok 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! pathwatcher@8.0.2 install: `node-gyp rebuild`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the pathwatcher@8.0.2 install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/user/.atom/.apm/_logs/2020-06-21T00_06_18_078Z-debug.log

Reproduces how often:

100%.

Versions

Full version info from the failing Travis build:

Using Atom version:
Atom    : 1.48.0
Electron: 5.0.13
Chrome  : 73.0.3683.121
Node    : 12.0.0

Using APM version:
apm  2.5.0
npm  6.14.5
node 10.20.1 x64
atom 1.48.0
python 2.7.17
git 2.24.1

Additional Information

My suspicion is a change to the Atom version has caused this. The last Travis build in this repo succeeded on the same code. That happened 3 months ago.

https://travis-ci.org/github/atom/tree-view/jobs/667366843

The versions are different:

Using Atom version:
Atom    : 1.45.0
Electron: 4.2.7
Chrome  : 69.0.3497.128
Node    : 10.11.0

Using APM version:
apm  2.4.3
npm  6.2.0
node 10.2.1 x64
atom 1.45.0
python 2.7.17
git 2.24.1

In the failing build, Atom and apm minor versions have changed, and Electron, Chrome, and Node major versions have changed.

Thanks for reviewing.

An AppVeyor build on master also fails. I haven't looked at the details:

https://ci.appveyor.com/project/ardentbriar/tree-view

The last commit from this PR fixes the issue:
#1373