Remove Bluebird.try

Still waiting on oracle docker 🙄 but think this is ok...
Should resolve #3253

Please check eslint, it fails on every environment.

  893 passing (5s)
  1 pending
  24 failing
  1) Query Building Tests
       knex
         passes queryContext to wrapIdentifier in raw query:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Context.it (test/unit/knex.js:203:8)
  2) Query Building Tests
       knex
         passes queryContext to wrapIdentifier in raw query in transaction:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Promise (src/transaction.js:188:44)
      at Transaction.acquireConnection (src/transaction.js:186:12)
      at new Transaction (src/transaction.js:44:12)
      at Client_SQLite3.transaction (src/client.js:114:12)
      at Function.transaction (src/util/make-knex.js:41:31)
      at Context.it (test/unit/knex.js:242:17)
  3) Query Building Tests
       knex
         transaction of a copy with userParams retains userparams:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Promise (src/transaction.js:188:44)
      at Transaction.acquireConnection (src/transaction.js:186:12)
      at new Transaction (src/transaction.js:44:12)
      at Client_SQLite3.transaction (src/client.js:114:12)
      at Function.transaction (src/util/make-knex.js:41:31)
      at Context.it (test/unit/knex.js:296:27)
  4) Query Building Tests
       knex
         propagates error correctly when all connections are in use:
     AssertionError: expected 'this.pool.acquire(...).promise is not a function' to include 'Timeout acquiring a connection'
      at knex.transaction.then.then.catch (test/unit/knex.js:316:32)
  From previous event:
      at Context.<anonymous> (test/unit/knex.js:315:13)
  5) Query Building Tests
       knex
         supports direct retrieval of a transaction from provider:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Promise (src/transaction.js:188:44)
      at Transaction.acquireConnection (src/transaction.js:186:12)
      at new Transaction (src/transaction.js:44:12)
      at Client_SQLite3.transaction (src/client.js:114:12)
      at Function.transaction (src/util/make-knex.js:41:31)
      at /home/travis/build/tgriesser/knex/src/util/make-knex.js:57:22
      at Context.it (test/unit/knex.js:323:24)
  6) Query Building Tests
       knex
         creating transaction copy with user params should throw an error:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Promise (src/transaction.js:188:44)
      at Transaction.acquireConnection (src/transaction.js:186:12)
      at new Transaction (src/transaction.js:44:12)
      at Client_SQLite3.transaction (src/client.js:114:12)
      at Function.transaction (src/util/make-knex.js:41:31)
      at Context.it (test/unit/knex.js:345:17)
  7) Query Building Tests
       knex
         async stack traces
           should capture stack trace on query builder instantiation:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Builder.Target.then (src/interface.js:14:43)
      at Builder.Target.(anonymous function) [as catch] (src/interface.js:106:30)
      at Context.it (test/unit/knex.js:385:15)
  8) Oracledb driver tests
       OracleDb parameters
         with fetchAsString parameter
           on float:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_Oracledb.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.<anonymous> (test/unit/dialects/oracledb.js:59:10)
  9) Oracledb driver tests
       OracleDb parameters
         with fetchAsString parameter
           on date:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_Oracledb.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.<anonymous> (test/unit/dialects/oracledb.js:68:10)
  10) Oracledb driver tests
       OracleDb parameters
         without fetchAsString parameter
           on float:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_Oracledb.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.<anonymous> (test/unit/dialects/oracledb.js:90:10)
  11) Oracledb driver tests
       OracleDb parameters
         without fetchAsString parameter
           on date:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_Oracledb.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.<anonymous> (test/unit/dialects/oracledb.js:99:10)
  12) Postgres Unit Tests
       does not resolve client version if specified explicitly:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_PG.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.it (test/unit/dialects/postgres.js:48:39)
  13) Postgres Unit Tests
       resolve client version if not specified explicitly:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_PG.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.it (test/unit/dialects/postgres.js:62:39)
  14) Postgres Unit Tests
       Uses documented query config as param when providing bindings:
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_PG.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at Raw.Target.then (src/interface.js:14:43)
      at Context.it (test/unit/dialects/postgres.js:115:48)
  15) CLI tests
       resolves knexfile correctly with cwd specified:
     node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --cwd=test/jake-util/knexfile --knexfile=knexfile.js -> FAIL.
Stdout: Working directory changed to ~/build/tgriesser/knex/test/jake-util/knexfile
sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

Error: /home/travis/build/tgriesser/knex/src/client.js:310
      .promise()
       ^
TypeError: this.pool.acquire(...).promise is not a function
    at Client_SQLite3.acquireConnection (/home/travis/build/tgriesser/knex/src/client.js:310:8)
    at Runner.ensureConnection (/home/travis/build/tgriesser/knex/src/runner.js:246:8)
    at Runner.run (/home/travis/build/tgriesser/knex/src/runner.js:26:26)
    at SchemaBuilder.Target.then (/home/travis/build/tgriesser/knex/src/interface.js:14:43)
    at ensureTable (/home/travis/build/tgriesser/knex/src/migrate/table-creator.js:13:6)
    at listCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:13:10)
    at Object.listAllAndCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:32:5)
    at Migrator.latest (/home/travis/build/tgriesser/knex/src/migrate/Migrator.js:66:8)
    at Command.commander.command.description.option.action (/home/travis/build/tgriesser/knex/bin/cli.js:198:18)
    at Command.listener (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:315:8)
    at Command.emit (events.js:198:13)
    at Command.parseArgs (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:651:12)
    at Command.parse (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:474:21)
    at Liftoff.invoke (/home/travis/build/tgriesser/knex/bin/cli.js:333:13)
    at Liftoff.execute (/home/travis/build/tgriesser/knex/node_modules/liftoff/index.js:201:12)
    at module.exports (/home/travis/build/tgriesser/knex/node_modules/flagged-respawn/index.js:51:3)
  Error: node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --cwd=test/jake-util/knexfile --knexfile=knexfile.js -> FAIL.
  Stdout: Working directory changed to ~/build/tgriesser/knex/test/jake-util/knexfile
  sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

  Error: /home/travis/build/tgriesser/knex/src/client.js:310
        .promise()
         ^

  TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at ensureTable (src/migrate/table-creator.js:13:6)
      at listCompleted (src/migrate/migration-list-resolver.js:13:10)
      at Object.listAllAndCompleted (src/migrate/migration-list-resolver.js:32:5)
      at Migrator.latest (src/migrate/Migrator.js:66:8)
      at Command.commander.command.description.option.action (bin/cli.js:198:18)
      at Command.listener (node_modules/commander/index.js:315:8)
      at Command.parseArgs (node_modules/commander/index.js:651:12)
      at Command.parse (node_modules/commander/index.js:474:21)
      at Liftoff.invoke (bin/cli.js:333:13)
      at Liftoff.execute (node_modules/liftoff/index.js:201:12)
      at module.exports (node_modules/flagged-respawn/index.js:51:3)

      at Exec.<anonymous> (node_modules/cli-testlab/lib/execution-test-helper.ts:50:21)
      at ChildProcess.<anonymous> (node_modules/jake/lib/utils/index.js:227:20)
      at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
  16) CLI tests
       knexfile resolution
         Run migrations with knexfile passed:
     node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --knexfile=test/jake-util/knexfile/knexfile.js --knexpath=../knex.js -> FAIL.
Stdout: sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

Error: /home/travis/build/tgriesser/knex/src/client.js:310
      .promise()
       ^
TypeError: this.pool.acquire(...).promise is not a function
    at Client_SQLite3.acquireConnection (/home/travis/build/tgriesser/knex/src/client.js:310:8)
    at Runner.ensureConnection (/home/travis/build/tgriesser/knex/src/runner.js:246:8)
    at Runner.run (/home/travis/build/tgriesser/knex/src/runner.js:26:26)
    at SchemaBuilder.Target.then (/home/travis/build/tgriesser/knex/src/interface.js:14:43)
    at ensureTable (/home/travis/build/tgriesser/knex/src/migrate/table-creator.js:13:6)
    at listCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:13:10)
    at Object.listAllAndCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:32:5)
    at Migrator.latest (/home/travis/build/tgriesser/knex/src/migrate/Migrator.js:66:8)
    at Command.commander.command.description.option.action (/home/travis/build/tgriesser/knex/bin/cli.js:198:18)
    at Command.listener (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:315:8)
    at Command.emit (events.js:198:13)
    at Command.parseArgs (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:651:12)
    at Command.parse (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:474:21)
    at Liftoff.invoke (/home/travis/build/tgriesser/knex/bin/cli.js:333:13)
    at Liftoff.execute (/home/travis/build/tgriesser/knex/node_modules/liftoff/index.js:201:12)
    at module.exports (/home/travis/build/tgriesser/knex/node_modules/flagged-respawn/index.js:51:3)
  Error: node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --knexfile=test/jake-util/knexfile/knexfile.js --knexpath=../knex.js -> FAIL.
  Stdout: sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

  Error: /home/travis/build/tgriesser/knex/src/client.js:310
        .promise()
         ^

  TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at ensureTable (src/migrate/table-creator.js:13:6)
      at listCompleted (src/migrate/migration-list-resolver.js:13:10)
      at Object.listAllAndCompleted (src/migrate/migration-list-resolver.js:32:5)
      at Migrator.latest (src/migrate/Migrator.js:66:8)
      at Command.commander.command.description.option.action (bin/cli.js:198:18)
      at Command.listener (node_modules/commander/index.js:315:8)
      at Command.parseArgs (node_modules/commander/index.js:651:12)
      at Command.parse (node_modules/commander/index.js:474:21)
      at Liftoff.invoke (bin/cli.js:333:13)
      at Liftoff.execute (node_modules/liftoff/index.js:201:12)
      at module.exports (node_modules/flagged-respawn/index.js:51:3)

      at Exec.<anonymous> (node_modules/cli-testlab/lib/execution-test-helper.ts:50:21)
      at ChildProcess.<anonymous> (node_modules/jake/lib/utils/index.js:227:20)
      at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
  17) CLI tests
       knexfile resolution
         Resolves migrations relatively to knexfile:
     node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --knexfile=test/jake-util/knexfile-relative/knexfile.js --knexpath=../knex.js -> FAIL.
Stdout: sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

Error: /home/travis/build/tgriesser/knex/src/client.js:310
      .promise()
       ^
TypeError: this.pool.acquire(...).promise is not a function
    at Client_SQLite3.acquireConnection (/home/travis/build/tgriesser/knex/src/client.js:310:8)
    at Runner.ensureConnection (/home/travis/build/tgriesser/knex/src/runner.js:246:8)
    at Runner.run (/home/travis/build/tgriesser/knex/src/runner.js:26:26)
    at SchemaBuilder.Target.then (/home/travis/build/tgriesser/knex/src/interface.js:14:43)
    at ensureTable (/home/travis/build/tgriesser/knex/src/migrate/table-creator.js:13:6)
    at listCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:13:10)
    at Object.listAllAndCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:32:5)
    at Migrator.latest (/home/travis/build/tgriesser/knex/src/migrate/Migrator.js:66:8)
    at Command.commander.command.description.option.action (/home/travis/build/tgriesser/knex/bin/cli.js:198:18)
    at Command.listener (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:315:8)
    at Command.emit (events.js:198:13)
    at Command.parseArgs (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:651:12)
    at Command.parse (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:474:21)
    at Liftoff.invoke (/home/travis/build/tgriesser/knex/bin/cli.js:333:13)
    at Liftoff.execute (/home/travis/build/tgriesser/knex/node_modules/liftoff/index.js:201:12)
    at module.exports (/home/travis/build/tgriesser/knex/node_modules/flagged-respawn/index.js:51:3)
  Error: node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --knexfile=test/jake-util/knexfile-relative/knexfile.js --knexpath=../knex.js -> FAIL.
  Stdout: sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

  Error: /home/travis/build/tgriesser/knex/src/client.js:310
        .promise()
         ^

  TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at ensureTable (src/migrate/table-creator.js:13:6)
      at listCompleted (src/migrate/migration-list-resolver.js:13:10)
      at Object.listAllAndCompleted (src/migrate/migration-list-resolver.js:32:5)
      at Migrator.latest (src/migrate/Migrator.js:66:8)
      at Command.commander.command.description.option.action (bin/cli.js:198:18)
      at Command.listener (node_modules/commander/index.js:315:8)
      at Command.parseArgs (node_modules/commander/index.js:651:12)
      at Command.parse (node_modules/commander/index.js:474:21)
      at Liftoff.invoke (bin/cli.js:333:13)
      at Liftoff.execute (node_modules/liftoff/index.js:201:12)
      at module.exports (node_modules/flagged-respawn/index.js:51:3)

      at Exec.<anonymous> (node_modules/cli-testlab/lib/execution-test-helper.ts:50:21)
      at ChildProcess.<anonymous> (node_modules/jake/lib/utils/index.js:227:20)
      at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
  18) CLI tests
       knexfile resolution
         Resolves default knexfile in working directory correctly:
     node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --knexpath=../knex.js -> FAIL.
Stdout: sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

Error: /home/travis/build/tgriesser/knex/src/client.js:310
      .promise()
       ^
TypeError: this.pool.acquire(...).promise is not a function
    at Client_SQLite3.acquireConnection (/home/travis/build/tgriesser/knex/src/client.js:310:8)
    at Runner.ensureConnection (/home/travis/build/tgriesser/knex/src/runner.js:246:8)
    at Runner.run (/home/travis/build/tgriesser/knex/src/runner.js:26:26)
    at SchemaBuilder.Target.then (/home/travis/build/tgriesser/knex/src/interface.js:14:43)
    at ensureTable (/home/travis/build/tgriesser/knex/src/migrate/table-creator.js:13:6)
    at listCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:13:10)
    at Object.listAllAndCompleted (/home/travis/build/tgriesser/knex/src/migrate/migration-list-resolver.js:32:5)
    at Migrator.latest (/home/travis/build/tgriesser/knex/src/migrate/Migrator.js:66:8)
    at Command.commander.command.description.option.action (/home/travis/build/tgriesser/knex/bin/cli.js:198:18)
    at Command.listener (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:315:8)
    at Command.emit (events.js:198:13)
    at Command.parseArgs (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:651:12)
    at Command.parse (/home/travis/build/tgriesser/knex/node_modules/commander/index.js:474:21)
    at Liftoff.invoke (/home/travis/build/tgriesser/knex/bin/cli.js:333:13)
    at Liftoff.execute (/home/travis/build/tgriesser/knex/node_modules/liftoff/index.js:201:12)
    at module.exports (/home/travis/build/tgriesser/knex/node_modules/flagged-respawn/index.js:51:3)
  Error: node /home/travis/build/tgriesser/knex/bin/cli.js migrate:latest --knexpath=../knex.js -> FAIL.
  Stdout: sqlite does not support inserting default values. Set the `useNullAsDefault` flag to hide this warning. (see docs http://knexjs.org/#Builder-insert).

  Error: /home/travis/build/tgriesser/knex/src/client.js:310
        .promise()
         ^

  TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at ensureTable (src/migrate/table-creator.js:13:6)
      at listCompleted (src/migrate/migration-list-resolver.js:13:10)
      at Object.listAllAndCompleted (src/migrate/migration-list-resolver.js:32:5)
      at Migrator.latest (src/migrate/Migrator.js:66:8)
      at Command.commander.command.description.option.action (bin/cli.js:198:18)
      at Command.listener (node_modules/commander/index.js:315:8)
      at Command.parseArgs (node_modules/commander/index.js:651:12)
      at Command.parse (node_modules/commander/index.js:474:21)
      at Liftoff.invoke (bin/cli.js:333:13)
      at Liftoff.execute (node_modules/liftoff/index.js:201:12)
      at module.exports (node_modules/flagged-respawn/index.js:51:3)

      at Exec.<anonymous> (node_modules/cli-testlab/lib/execution-test-helper.ts:50:21)
      at ChildProcess.<anonymous> (node_modules/jake/lib/utils/index.js:227:20)
      at Process.ChildProcess._handle.onexit (internal/child_process.js:248:12)
  19) oracle | oracledb
       "before all" hook for "#test number mssql should not allow unsafe bigint":
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_Oracledb.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Migrator.forceFreeMigrationsLock (src/migrate/Migrator.js:220:8)
      at Context.<anonymous> (test/integration/migrate/index.js:16:25)
  20) mssql | mssql
       "before all" hook for "#test number mssql should not allow unsafe bigint":
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_MSSQL.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Migrator.forceFreeMigrationsLock (src/migrate/Migrator.js:220:8)
      at Context.<anonymous> (test/integration/migrate/index.js:16:25)
  21) mysql | mysql
       "before all" hook for "#test number mssql should not allow unsafe bigint":
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_MySQL.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Migrator.forceFreeMigrationsLock (src/migrate/Migrator.js:220:8)
      at Context.<anonymous> (test/integration/migrate/index.js:16:25)
  22) mysql | mysql2
       "before all" hook for "#test number mssql should not allow unsafe bigint":
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_MySQL2.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Migrator.forceFreeMigrationsLock (src/migrate/Migrator.js:220:8)
      at Context.<anonymous> (test/integration/migrate/index.js:16:25)
  23) postgresql | pg
       "before all" hook for "#test number mssql should not allow unsafe bigint":
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_PG.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Migrator.forceFreeMigrationsLock (src/migrate/Migrator.js:220:8)
      at Context.<anonymous> (test/integration/migrate/index.js:16:25)
  24) sqlite3 | sqlite3
       "before all" hook for "#test number mssql should not allow unsafe bigint":
     TypeError: this.pool.acquire(...).promise is not a function
      at Client_SQLite3.acquireConnection (src/client.js:310:8)
      at Runner.ensureConnection (src/runner.js:246:8)
      at Runner.run (src/runner.js:26:26)
      at SchemaBuilder.Target.then (src/interface.js:14:43)
      at Migrator.forceFreeMigrationsLock (src/migrate/Migrator.js:220:8)
      at Context.<anonymous> (test/integration/migrate/index.js:16:25)
npm ERR! code ELIFECYCLE
npm ERR! errno 24
npm ERR<EMAIL_ADDRESS>test: `mocha --exit -t 10000 test/index.js && npm run test:tape && npm run test:cli`
npm ERR! Exit status 24
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>test 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/travis/.npm/_logs/2019-06-07T11_42_43_311Z-debug.log
The command "npm run ${TESTSCRIPT:-test}" exited with 24.
cache.2
store build cache

If you have docker installed, running tests is pretty straightforward also locally.

Yea i let oracle docker install overnight, but it seemed to fail, so I'm just running DB='postgres mysql' npm test currenlty and am seeing those errors now (FYI part of opening this PR was to try to see what the CI could expose since I was having issues running tests locally).
I'm currently trying to figure out the best way to get around the disposer pattern usage with acquireConnection.  Will post here on ideas I come up with, but if you have any idea for how to help move off of Bluebird disposer patterns I'd love to hear!

Yea i let oracle docker install overnight, but it seemed to fail, so I'm just running DB='postgres mysql' npm test currenlty and am seeing those errors now (FYI part of opening this PR was to try to see what the CI could expose since I was having issues running tests locally).

You could just start all other databases except oracle and run tests with something like:
DB="mssql mysql mysql2 postgres sqlite3" npm run test

I'm currently trying to figure out the best way to get around the disposer pattern usage with acquireConnection. Will post here on ideas I come up with, but if you have any idea for how to help move off of Bluebird disposer patterns I'd love to hear!

Yea... that sounds like a quite non trivial to do and pretty crucial when making sure that pooling stuff is not leaked. I haven't really though about how to solve that in a robust manner.

Ok so that one try that is still in there is to make sure the chain is Disposible... I'm going to think about a solution for this disposer pattern issue.
FYI everything passes locally except for the 2 tests that were failing on master for me as well... don't know if that seems to be an issue

Ok just to continue the thoughts from the start of the thread,  I think it makes sense to keep this PR just targetting the .try usages, with exception of the one that is required since it allows the chain to have access to the .dispose functionality.
I think what i'd like to propose in a separate PR is some way to implement the Disposer pattern outside of bluebird, which is a very important piece we will need to implement.
Thoughts?

@chaffeqa Makes sense! Let's do this as incrementally as possible.


directly queue RST_STREAM frames on stream.Reset

We're currently doing a lot wrong when resetting streams. This PR doesn't fix any of those issues, but is a prerequisite for future changes, in 2 ways:

For gQUIC, we will have to pay attention to the RST_STREAM error code. Sending error code 0 or != 0 has a different effect on the state machine.
For IETF QUIC, we will need to send STOP_SENDING frames. The new stream.queueControlFrame takes any wire.Frame as an argument, so we can use this function for that.

Codecov Report

Merging #1022 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #1022      +/-   ##
==========================================
+ Coverage   90.56%   90.56%   +<.01%
==========================================
  Files         103      103
  Lines        7087     7089       +2
==========================================
+ Hits         6418     6420       +2
  Misses        435      435
  Partials      234      234

Impacted Files
Coverage Δ

session.go
83.3% <100%> (-0.18%)
:arrow_down:

stream.go
94.25% <100%> (+0.18%)
:arrow_up:

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 3679c56...bd77f30. Read the comment docs.


[AMBARI-23127] Allow default value of number of parallel tasks run during Upgrade to be customizable. (swagle)

What changes were proposed in this pull request?
Add a new flag to server configuration in order to override default max parallelism.
How was this patch tested?
Ran related unit tests.
Manual test pending.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/917/
Test FAILed.
Test FAILured.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/918/
Test FAILed.
Test FAILured.


[Wallet :: Settings] Mismatch for (possibly a recovered) wallet

App version: 0.1.94

Have a wallet 'Pikachu'

Recover a wallet by entering seedphrase and call it 'Vegeta'

Now open 'Pikachu' wallet and goto settings. It works as expected.

Now open 'Vegeta' wallet and goto settings screen.

Expected:

To see settings page of 'Vegeta' wallet.

Observed:
Settings page of 'Pikachu' wallet is shown.
Video recording of the issue, is posted in slack.

Also happens, when you delete a wallet and goto Settings page of remaining wallets.
Posted video in slack.

Fixed in 0.1.95


[RFE] artifacthub: Add Gadget kind

Current situation
Currently all the gadgets are published as packages in container registry. In order to improve the discovery of the gadgets, we can publish them as a kind in artifacthub. We can also use the "Official" and "CNCF" badges to mark the gadgets maintained by us.
Impact
Improves the discovery of gadgets
Implementation options
The comment gives an idea about the implementation, we need check if we need a special tracker or a generic tracker can do a trick for us. A good starting point is opening an issue to start conversion.  Some exmaples:

https://github.com/artifacthub/hub/issues/2271
https://github.com/artifacthub/hub/pull/2902
https://github.com/artifacthub/hub/pull/514

Thanks for filing this issue. I agree it would be good to have a gadget kind.

Meanwhile, since artifacthub does not have a gadget kind yet, I was experimenting on runc-vuln-gadget with the container image kind.
Steps:

Ensure the gadget is public on the OCI registry (on GitHub, click on "Package settings")
Ensure the OCI image index has the correct annotations on the latest tag.

Adding annotations in ig image build: https://github.com/inspektor-gadget/inspektor-gadget/pull/2522

https://github.com/artifacthub/hub/issues/3665

@alban are we missing anything to close this one?

@alban are we missing anything to close this one?

I think it can be closed.
I still want to have #2586 but it's more a helper than strictly necessary.


[Feature]about webservice cue templete

We encountered some scenarios when using custom X-Definition, In some cases we need to use configuration properties of extended resources, E.g:
 resources:
      limits:
        cpu: 500m
        memory: 1Gi
        tencent.com/vcuda-memory: "24"
      requests:
        cpu: 100m
        memory: 512Mi
        tencent.com/vcuda-memory: "24"

The current template does not support such a setting method, we can modify it as follows
  if parameter.limits != _|_ {
    resources: {
      limits : {
	for k,v in parameter.limits {
	  "\(k)": v
	}
      }
    }
  }

  if parameter.requests != _|_ {
    resources: {
      requests : {
	for k,v in parameter.requests {
	  "\(k)": v
	}
      }
    }
  }

In this way, we can configure resource properties more flexibly
The above are just suggestions

@shikingram You can customize your definition. If the change is suitable for other users, welcome to contribute to core definitions.


Trouble Importing into react project

Hi @antonKalinin ,
I really like your json node graph component!
I am trying to import the component from npm and use my own data but i am having trouble importing it into an existing project.
I install the component using npm install --save react-json-graph.
but how do i import the components  into my app?
Your usage section states that you simply call the  components with props like this.
<Graph     width={600}     height={400}     json={{nodes: [...], edges: [...]}}     onChange={(newGraphJSON) => {}} />
This produced an error "graph is not defined" in my create-react-app project.
Thanks in Advance

Hi @hrryndrsn, I will try to import component to empty create-react-app project today evening and look into troubles of this process. Thanks for issue.

Thanks @anton, I used following import statement and it works :
Import Graph from 'react-json-graph'
Thanks heaps

Cool, I thought problem is more complex than it is :) I've also updated README with this info. Thank you!


R lexers

Port missing r lexers to Chroma.

RConsole
Relax-NG Compact
Ragel Embedded
Raw token data
Rd
REBOL
Red
Redcode
ResourceBundle
RHTML
Ride
Roboconf Graph
Roboconf Instances
RobotFramework
RQL
RSL

@gandarez As you're the expert in tracking down obscure programming language examples:muscle:, I have a few questions:

ResourceBundle: Used resource.txt as test file. Is this the right file format for ICU resource files?
Ragel Embedded: Did not find an example with @LANG: indep. Do you know an example?
REBOL: Did not find an example with Rebol header, which is preceded by text. Do you know any?

Closes https://github.com/wakatime/wakatime-cli/issues/217

Those languages are so complicated to find real examples.

ResourceBundle: Used resource.txt as test file. Is this the right file format for ICU resource files?
ICU4C natively uses a plain text source format with a nested structure that was derived from Java ListResourceBundle .java files when the original ICU Java class files were ported to C++. The ICU4C bundle format can of course contain only data, not code, unlike .java files. Resource bundle source files are compiled with the genrb tool into a binary runtime form (.res files) that is portable among platforms with the same charset family (ASCII vs. EBCDIC) and endianness.
http://userguide.icu-project.org/locale/localizing

Ragel Embedded: Did not find an example with @LANG: indep. Do you know an example?
https://github.com/adrian-thurston/ragel/blob/fff52cd5a567ec541cd487b9fee2d89bf9b6f6eb/test/ragel.d/any1.rl#L2

REBOL: Did not find an example with Rebol header, which is preceded by text. Do you know any?
https://github.com/pygments/pygments/blob/fc55dc2e95bcea03fbc0d8e1d130c9e53f3f1dad/tests%2Fexamplefiles%2Ftest.r3#L4-L5.

Those languages are so complicated to find real examples.

ResourceBundle: Used resource.txt as test file. Is this the right file format for ICU resource files?
ICU4C natively uses a plain text source format with a nested structure that was derived from Java ListResourceBundle .java files when the original ICU Java class files were ported to C++. The ICU4C bundle format can of course contain only data, not code, unlike .java files. Resource bundle source files are compiled with the genrb tool into a binary runtime form (.res files) that is portable among platforms with the same charset family (ASCII vs. EBCDIC) and endianness.
http://userguide.icu-project.org/locale/localizing

Ragel Embedded: Did not find an example with @LANG: indep. Do you know an example?
https://github.com/adrian-thurston/ragel/blob/fff52cd5a567ec541cd487b9fee2d89bf9b6f6eb/test/ragel.d/any1.rl#L2

REBOL: Did not find an example with Rebol header, which is preceded by text. Do you know any?
https://github.com/pygments/pygments/blob/fc55dc2e95bcea03fbc0d8e1d130c9e53f3f1dad/tests%2Fexamplefiles%2Ftest.r3#L4-L5.

@gandarez Alright thanks for your comments :+1: I replaced existing test files with the ragel and rebol examples you posted.

@gandarez Alright thanks for your comments :+1: I replaced existing test files with the ragel and rebol examples you posted.


Battery charging to full every night after switching to modbus

This error originated from a custom integration.
Logger: custom_components.foxess_em.fox.fox_modbus
Source: custom_components/foxess_em/fox/fox_modbus.py:94
Integration: FoxESS - Energy Management (documentation, issues)
First occurred: 6:30:12 AM (1 occurrences)
Last logged: 6:30:12 AM
Error writing holding register - retry (1/5): Modbus Error: [Input/Output] No Response received from the remote unit/Unable to decode response
This error originated from a custom integration.
Logger: custom_components.foxess_modbus.modbus_controller
Source: custom_components/foxess_modbus/modbus_client.py:77
Integration: FoxESS - Modbus (documentation, issues)
First occurred: 2:25:23 AM (5 occurrences)
Last logged: 6:30:22 AM
General exception when polling tcp://<IP_ADDRESS>:502 247 - AttributeError("'WriteMultipleRegistersResponse' object has no attribute 'registers'")
General exception when polling tcp://<IP_ADDRESS>:502 247 - AttributeError("'WriteSingleRegisterResponse' object has no attribute 'registers'")
Traceback (most recent call last):
File "/config/custom_components/foxess_modbus/modbus_controller.py", line 136, in _refresh
reads = await self._client.read_registers(
File "/config/custom_components/foxess_modbus/modbus_client.py", line 77, in read_registers
return response.registers
AttributeError: 'WriteMultipleRegistersResponse' object has no attribute 'registers'
I'm getting a few errors in the log as above and my battery seems to be charging to full each night even though the foxess em says 0 charge required.

Version of the custom_component

Configuration
Add your logs here.

Describe the bug
A clear and concise description of what the bug is.
Debug log

Add your logs here.

Are you connecting directly to the ethernet port on the inverter, or are you using an RS485 to ethernet adapter?

RS485 adapter

Which adapter?

Also, the integration won't affect battery charging - this isn't foxess_em

Waveshare POE

Interesting.
It looks like foxess_em sent a write request (presumably to change the charge period) and foxess_modbus send a read request. However, foxess_em didn't get a response, and foxess_modbus got the response which was intended for foxess_em.
So foxess_modbus fell over, because it issued a read request but the response it got back was for a write request (I'm surprised that pymodbus didn't pick this up), and presumably it's also related to why foxess_em wasn't able to set the charge period properly. This is probably a problem with the Waveshare itself -- it's returning the wrong response to the wrong client.
Did you enable "Enable RS485 Multi-Host" in the settings, and detailed in our instructions?

So I have enabled RS485 multi host and the errors seem to have gone quiet now. Will see what happens over night. Strangely I never found the instructions that you linked to before now, all the same except the multi host so hopefully they won't clash now.

Good to hear! The instructions will be linked from the setup wizard in the next release of this integration, but it's all still a work in progress.
It's weird that the waveshare doesn't enable this by default, as I can't imagine you'd ever want the alternative, but oh well.

As an action, we should check that pymodbus is giving us back the message type that we expect, and throw a more useful error if it doesn't


boards: remove LOG_BUFFER_SIZE low defaults

Setting an extremely low value by default on two boards doesn't seem like the right thing to do.
The defaults were added with the v1 logging subsystem in https://github.com/zephyrproject-rtos/zephyr/pull/8023.
This can cause these platforms to fail tests because the log output is lost.

LGTM, the default is 1024. bbc_microbit v1 has a 16k ram. I'm not sure what's the qemu_cortex_m0 implementation but I doubt this'll cause issues there.

qemu_cortex_m0 is based on a nrf51822, 16k ram again.


Convert current evictor filter into a plugin

Converting the evictor filter into a plugin will allow users to either replace the plugin with a different list of filters. Or, register additional plugins to extend the list of available filters. Also, new preEvictFilter extension point can be implement to provide strategies ability to protect pods against eviction right before the eviction itself. E.g. LowNodeUtilization plugin needs to operate over all pods to take into account the overall resource consumption. Thus, the only place where pods can be filter out from eviction is right after pods were marked for eviction.
The same process for creating a new plugin can be followed. Including creating plugin arguments (in the plugin package this time). The original NewEvictorFilter function will be then replaced with the plugin constructor with passing the plugin arguments.
Once the filter is converted into a plugin, it can be extended with namespace inclusion/exclusion arguments.

/assing

/assign

Correct me if I am wrong, but right now this is somewhat the plan that we have (just at a high level, I don't wanna focus on details). The idea behind naming the filter that comes right before the eviction PreEvictionFilter makes sense until we think about people coming to the project without much context and having to understand why PreEvictionFilter, with "pre" prefix in it's name, is coming after the "normal" Filter. :thinking:
I was thinking about a name that could just mean that it is right next to the eviction, and "Near" comes to mind.
So something like
NearEvictionFilter
NearFilterSorter... ?
What do you think?

I think PreEvictionFilter is fine, because it's referring to something happening Pre-Eviction. If it was just called PreFilter, that would be confusing. But imo this sounds like a second Filter phase that's specific to Eviction, which makes sense to me.

I am not against changing preEvictFilter, resp. PreEvictionFilter into more suitable name that will reflect the fact a pod filtering is taking place right before eviction.

I went with PreEvictionFilter for now, we can discuss the naming in the PR: https://github.com/kubernetes-sigs/descheduler/pull/955

Done viahttps://github.com/kubernetes-sigs/descheduler/pull/955


Application: Reminder Email to Supervisor to approve every week after the form is submitted and the form is not approved.

We need to send a reminder email to supervisors to approve any forms pending for approval. This will reduce the instances where employees have to follow up with their supervisors for approval.
Proposed - every week (e.g. Monday 8:am) send an email to supervisors notifying that there are applications pending for approval. Provide a list of applicant and type of form. Only send this email to a supervisor if there are forms pending for approval.
Email Copy

SUB: You have forms waiting for your approval on Digital Journeys
This is a gentle reminder that you have the following forms waiting for approval on Digital Journeys. You can find the forms waiting for approval under "Review and Process" tab

Form name for Applicant name submitted on date
Form name for Applicant name submitted on date

(list of forms should be in ascending order of date submitted)
AC

[ ] Send email to supervisors with forms pending for approval with the copy above at the time and frequency described
[ ] Email should not go to supervisors who do not have a form waiting for approval
question - can we add date by which. form must be approved?

Note - Can we add a note reminding if a form will be deleted soon?

separate feature to explore.
Universal - All forms solution
where it is effective,
forms waiting for approval before they expire or due

Bhumin will be preparing documentation - code based to keep it handy


Allowing to specify schema for tables

Database that have schemas have been challenging to integrate properly, this PR allows people to specify the schema when creating a table.
closes https://github.com/airbnb/caravel/issues/336

Coverage increased (+0.004%) to 72.487% when pulling f35491c4ee31983e9e31118a6a6a60946ddea6b6 on schema_fix into 3d1fc99353557aa42c14e760e01774fd624d7805 on master.

This didn't work for me, but I didn't dig too much as to why exactly. I have an alternative PR that I started before I saw this one, which adds a bit less code and seems to work well: #340

I think having the schema as a table attribute is ideal as the same database entry can be used.

Coverage decreased (-0.007%) to 72.487% when pulling c6610569c3b6a0f88cd3633f78aaca514efef176 on schema_fix into 1e08b3e8c589fc70d7cd4a14a5a9de49e2a93a45 on master.

Coverage decreased (-0.007%) to 72.487% when pulling c6610569c3b6a0f88cd3633f78aaca514efef176 on schema_fix into 1e08b3e8c589fc70d7cd4a14a5a9de49e2a93a45 on master.

coolio. I'll fix up this PR instead and resubmit

thank you a ton @mistercrunch I have been able to create my first slice in caravel using redshift and a fully qualified name schema.table.

Thanks from me too. @mistercrunch. I can confirm that specifying schema name at table creation on Postgres works without specifying additional flags in the database creation stage (no parameters passed in the JSON blob)

@mistercrunch @alanmcruickshank @yml
I have been trying connecting non public schema in Redshift and it seems to work now :smiley:
But, I cannot add tables, when I have same table name in multiple schema.

I have opened an issue https://github.com/airbnb/caravel/issues/356

I see the same thing. Provided that there aren't any other table names
registered with that name already it works fine. One option would be to
allow qualified names at the table creation stage: specifying name
"schema1.tablename" to distinguish it from "schema2.tablename".
On Fri, 15 Apr 2016 04:55 Neil Shah<EMAIL_ADDRESS>wrote:

I have opened an issue #356 https://github.com/airbnb/caravel/issues/356
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/airbnb/caravel/pull/330#issuecomment-210274558

--

Alan Cruickshank
E<EMAIL_ADDRESS>T: +44<PHONE_NUMBER>


Get-Team Parameter Visibility Accepted Values

While investigating an issue in the Office365DSC repo, I noticed that the Get-Team Visibility parameter accepts the value HiddenMembership as well. This results from the HiddenGroupMembershipEnabled switch of the New-UnifiedGroup cmdlet and is also mentioned in the Microsoft Graph API documentation.
I tested this in my dev tenant and got the same behavior as shown on your screenshot.
I teamified the Unifed Group after creation.
# Create a new UnifiedGroup
$newUnifiedGroup = New-UnifiedGroup -DisplayName "Hidden Membership" -Alias "HiddenMembership" -AccessType Private -HiddenGroupMembershipEnabled
# Get Unified Group properties
$newUnifiedGroup | Get-UnifiedGroup | Select Identity,HiddenGroupMembershipEnabled

# Get Teams properties
$newUnifiedGroup | Get-Team | Select DisplayName,Visibility
Get-Team -Visibility "HiddenMembership"

For further details, please see my comment in the Office365DSC repo

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 8450991f-9f85-4d87-51b3-efa8e1004a24
Version Independent ID: cb290aa5-ce28-10a4-f17c-cc5db6edc706
Content: Get-Team (teams)
Content Source: teams/teams-ps/teams/Get-Team.md
Service: teams-powershell
GitHub Login: @kenwith
Microsoft Alias: kenwith

@officedocsbot assign @yogkumgit

@yogkumgit:
If you tell me what files I need to edit, I can create a pull request myself.
In the PnP PowerShell team, the Markdown files are generated based on the PowerShell cmdlets.
How is this handled for the PowerShell cmdlet Get-Team? Which file(s) do I need to modify?

Hello @Markus-Hanisch Markus
Thanks for reporting, I tested and verified.
Created the PR to improve the article based on your feedback.
Thanks

@get-itips  Thank you very much for the contribution and updating the documentation with PR. @Markus-Hanisch Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Any way to debug Infinite request?

I'm trying to setup an infinite scroll, and see in the Network inspector that Infinite is indeed loading the 'next' page, but then nothing happens. The link disappears and nothing is appended. Is there any way to debug what is going on? Both the onBeforePageLoad and onAfterPageLoad functions are triggered.
Example page looks like:

...

...

JS:
var infinite = new Waypoint.Infinite({
  element: $('#wrapper'),
  items: $('article.project'),
  more: $('a.next-project')
});

Waypoints - 3.1.1
Waypoints Infinite Scroll Shortcut - 3.1.1

Well I discovered my stupid error, which is evident in the code above (wrapping the 'items' and 'more' selectors in $(...)).

Thanks for this! I was making the same mistake - I guess it's not a hard mistake to make.


Error when building the integritee-service docker: could not compile sgx-unwind

See the log: https://gist.github.com/clangenb/161508da36e0d281e728d8511e69b201

On the same machine I can build the worker inside the integritee-dev/v0.1.10 container

@coax1d and I had a look at it and this is the exact error:
#12 541.4   src/Makefile.am:165: warning: variable 'libunwind_dwarf_generic_la_SOURCES' is defined but no program or
#12 541.4   src/Makefile.am:165: library has 'libunwind_dwarf_generic_la' as canonical name (possible typo)
#12 541.4   src/Makefile.am:619: warning: variable 'libunwind_x86_64_la_SOURCES' is defined but no program or
#12 541.4   src/Makefile.am:619: library has 'libunwind_x86_64_la' as canonical name (possible typo)
#12 541.4   src/Makefile.am:168: warning: variable 'libunwind_dwarf_generic_la_LIBADD' is defined but no program or
#12 541.4   src/Makefile.am:168: library has 'libunwind_dwarf_generic_la' as canonical name (possible typo)
#12 541.4   src/Makefile.am:621: warning: variable 'libunwind_x86_64_la_LIBADD' is defined but no program or
#12 541.4   src/Makefile.am:621: library has 'libunwind_x86_64_la' as canonical name (possible typo)
#12 541.4   src/Makefile.am:620: warning: variable 'libunwind_x86_64_la_LDFLAGS' is defined but no program or
#12 541.4   src/Makefile.am:620: library has 'libunwind_x86_64_la' as canonical name (possible typo)

I suspect that the SGX SDK environment file (or its contents) does not get sourced or gets overwritten during the build phase, will need to investigate a bit.
    Stop.
#12 541.4   make[3]: *** [Makefile:1225: all] Error 2
#12 541.4   make[2]: *** [Makefile:593: all-recursive] Error 1
#12 541.4 warning: build failed, waiting for other jobs to finish...
#12 546.3 make[1]: Leaving directory '/root/work/worker/enclave-runtime'
#12 546.3 make[1]: *** [Makefile:56: libenclave.a] Error 101
#12 546.3 make: *** [Makefile:206: enclave] Error 2
#12 ERROR: executor failed running [/bin/bash -c make]: exit code: 2
------

Upcoming change in the build process might resolve the issue.

I have never had this issue again.


Update Verified.json - Add cndl.eth to list

Hi! What is your PR about?

[ ] Add or edit a skin
[ ] Add a custom domain for your space
[ ] Add an alias to migrate your space
[x] Add space  to verified list

The verified list is managed by Snapshot, you won't need to edit it.


How to close connection?

import { connect } from "@planetscale/database"; const conn = connect(config); export const executeQuery = async (query, params = []) => {   try {     const results = await conn.execute(query, params);     return results;   } catch (error) {     console.error(Error in executeQuery ${error.message});     console.error(Error in executeQuery ${error.stack});     throw error;   } };
How does connection handling work and how to close the existing database connection?

There's no ability or need to explicitly close any connections. The connect(..) function doesn't actually establish a connection, it's just to surface a familiar API and concept.
The underlying connection is managed by the JavaScript runtime through the fetch() API. Different fetch() implementations might behave differently, but it's up to that implementation. We don't explicitly manage network connections, or need to.


Capstone_project_Ruby

The README have included instructions on how to use the scraper and code examples
Created effective Ruby code, that solves the problem
Applied Ruby coding best practices.
Created unit test for Ruby code
Implement basic OOP principles (encapsulation, inheritance) in Ruby

Stickler-ci is having some trouble. I have clearly added all the files correctly

Issue of Readme file has removed


Add documentation regarding importing the module

Any suggestion is appreciated!

@kevinbarabash Thank you for the review!


Window manager in the screenshots?

Is that Haiku/BeOS in the screenshot or a very well-done theme for some other window manager?
Thanks!

It's pwm under X11. (I can't remember if it's the default them or not, if not it's one of the built in themes that comes with it.)


Remove incorrect anelastic option

Purpose

In the process of debugging #1327, we have found the the anelastic option is not implemented correctly. It has two issues:

the pressure p.ᶜp is initially set in init_tc! (which #1327 removes), and it is used to set the thermodynamic state p.ᶜts at the start of each tendency evaluation, but the thermodynamic state is then in turn used to set the pressure
more importantly, the thermodynamic state computed from the pressure implies a certain value for density, but this is not the same as the density Y.c.ρ that is used throughout ClimaAtmos (i.e., the prognostic variable that gets evolved by the time stepper)

The first issue can be easily fixed by adding some additional if-statements to the code, but the fixing the second issue would require updating all of ClimaAtmos to switch between using density as a prognostic variable or as a diagnostic variable. Instead of doing this, we will simply delete the two remaining anelastic TRMM cases in CI, along with all of the code for running the model in anelastic mode.

[x] I have read and checked the items on the review checklist.

LGTM! I'm sad to see the anelastic option go, but we can always turn to the standalone TC.jl code. And it's better to simplify the CA.jl code than to try to keep it as an option.
I think our EDMF SCM cases are not fully compressible right now. I'm reading through the code and will have more updates today/tomorrow.

Yup, this should be the last blocker 🤞

bors r+

bors r+


packages: Calculate package size quota using package creator ID instead of owner ID

Changed behavior to calculate package quota limit using package creator ID instead of owner ID.
Currently, users are allowed to create an unlimited number of organizations, each of which has its own package limit quota, resulting in the ability for users to have unlimited package space in different organization scopes. This fix will calculate package quota based on package version creator ID instead of package version owner ID (which might be organization), so that users are not allowed to take more space than configured package settings.
Also, there is a side case in which users can publish packages to a specific package version, initially published by different user, taking that user package size quota. Version in fix should be better because the total amount of space is limited to the quota for users sharing the same organization scope.

I don't think this is right. Every user/org should have their package size quota. What we should do is to limit org's package size but not creators'.

hmm we dont have a org setting to limit right now ... so the fix is good.
but I agree that a long term solution should be to have orgs own limits

This should be reverted. If you use CI with bot users the quota limit is never reached for a user. A solution could be to have different quotes for owner and creator. Now the description of the ini setting is wrong too.

🔥


Some questions for source code！

First, thx for you repo, this gives me so much help. And when I read the source code, I had some questions. The code below, could you please give me some help about why you define _ with these code?
// Create a safe reference to the Underscore object for use below.
  var _ = function(obj) {
    if (obj instanceof _) return obj;
    if (!(this instanceof _)) return new _(obj);
    this._wrapped = obj;
  }
thx again!

We want the _ variable to be accessible as both a function and an object—you should be able to call the methods using either _.each(arr, fn) or _(arr).each(fn). This bit of code allows us to handle both cases.


Blockers migrating from SDK 1.5.x -> 1.6.x

I understand that the JS SDK is moving away from backbone style objects but there are a couple of pieces of that functionality that we'd like to see make their way into the 1.6 SDK at some point.

Our application depends on the ability to silently update attributes of Parse.Objects
Our existing parse objects (called models in our application's vernacular) all override validate() to provide client and server side validation for objects. We validate them before they are sent to Parse in the browser and after Parse receives them via a beforeSave hook. While it is not always the case, we often depend on being able to have objects in a non-valid state up until the point they are saved by constructing and updating them with {silent: true}.

var thing = new Models.Thing({"awesome": true}), {silent: true});
thing.set("awesome", true, {silent: true});

The reason we do this is because we want to build up a model with information we receive over time. For example a user wants to create a group in our system and we know the `organizationId` that it belongs to up front but don't have the other details such as group `name` and `location`.

You can imagine having a <ModelForm> component in React that renders a form with data that you currently have about an object (that can't be saved as-is) but that can have the missing pieces filled in by the user to make it ultimately validate cleanly.

The API doesn't have to be the same but it would be great if you could construct objects and manipulate their attributes freely **UNTIL** you try and save it, at which point everything must be valid. This surfaces as thousands of "Uncaught Error: Can't create an invalid Parse Object" in our application.

- Our application depends on defaults

This one is easier to work around but as a result of the way we use validation (described in the first bullet point) we depend on some values having defaults.

[Here](https://gist.github.com/TylerBrock/67916527b5bb3b3ae7f9) is an example of a HustleModel and HustleModel's implementation where you can see defaults and constraints in use. I don't mind that this code is publicly visible.

How can we help add this functionality or work around is absence in versions 1.6+ of the SDK? I'd like to help in any way possible so that we can stay current with bugfixes, etc (the retrying of API requests in the new RESTController especially) and use more ES6.

Defaults sounds like an easy enough thing to add; we support legacy style initialize() methods, so handling defaults should not be too different.
I definitely understand the need for explicitly avoiding validation; if anything, let's just enable it and call it something else. "Silent," to me, refers to Backbone's "change" event; simply passing { ignoreValidation: true } as the options property.
Feel free to work on implementing these yourself, I'm happy to look at PRs as long as you provide unit tests for functionality. Otherwise, I can try to get to some of these within a week.

Ok, thank you.
As a thought experiment would it not be better to have validation work that way by default?
I feel as though most users do not want validation on every call to set() or during construction, they can always call validate explicitly if they want to check it before attempting to persist it.

I think I agree with that. We were simply replicating the behavior from <1.6.
Validate on save seems more sane than validate on set

If you are looking for Backbone like validation perhaps checkout Backbone-Parse-ES6 which incorporates the latest Backbone 1.2.3 + Parse 1.6.8 APIs.
https://github.com/typhonjs/backbone-parse-es6
Just grab an ES5 bundle of your choosing from /dist directory. You'll need to rename your extends to Backbone.Model of course, but the old Parse.Object extends signature is supported. The ability to do validation and silent setting should be captured in Backbone-Parse-ES6 as that has more to do with Backbone. Validation as a control flow mechanism mentioned definitively was coming from the forked Backbone API which Parse previously relied on.
I'll be porting over Backbone 1.2.4 as soon as it's released and a bunch of tests from the Backbone repos and create new Parse tests.
Andrew... Want to get a blog post up about Backbone-Parse-ES6 next week? I'm finishing a comprehensive demo repo this weekend + lots of tutorial documentation which rounds out complete support for Backbone continuation w/ Parse. Drop me an email at<EMAIL_ADDRESS>

Another blocker we seem to have is that our font end and back end share our models.
The front end needs require('parse') and the back end needs require('parse/node') but neither do the trick. When we use parse in the models it thinks parse is not initialized on the front end. When we use parse/node it complains on that there isn't any localStorage because we aren't inside of a browser.
Perhaps we can write our own shim that requires the right thing depending on whether we are in a browser or not but it seems like I should just be able to require('parse') and let the library sort itself out.

We have to do compile-time branching of parse vs parse/node, because we use ES6 imports that are deterministic. This is ideal for developers -- you wouldn't want imports to be determined at runtime, because this is essentially equivalent to solving the halting problem.
Client vs Server behavior also branches on more than just localStorage and patching XMLHttpRequest. The server version disables the concept of Current User and does not enable single-instance object mode, since these concepts are unsafe in a shared-memory environment. In general, you wouldn't want to ship the same SDK codebase to both systems, let alone ship the same behavior.
What kind of build system are you using for your app? It shouldn't be too much effort to put together a shim like the one we use in Parse+React

We are using gulp + webpack on the front end.

Here's another one, this code used to work:
var goalPromise = goalStep.get("goal").fetch();
goalPromise.then(function() { ... })

Now we get:

TypeError: goalStep.get(...).fetch is not a function

goalStep.get("goal") returns a pointer object to the Goal class, shouldn't the SDK hydrate that into a Parse.Object subclass that has the fetch() method?

That depends on how goalStep was constructed. This is one of those cases where I need more code to be able to effectively debug anything.

The goal in goalStep looks like this:
{__type: "Pointer", className: "Goal", objectId: "lmgbtrKX4Z"}

On saving we get: invalid type for key goal, expected *Goal, but got map

You're right that it should be inflated, and should not be a map with the over-the-wire format. Still, I don't know how goalStep was created, so I can't comment on it

I think what i boils down to (at least in some cases) is that setting an Parse.Object or subclass instance on a pointer field now requires that we call toPointer() instead of automatically converting it to a pointer for some reason. Is that intended?

It works the same way it always has:
let a = new Parse.Object('Item');
let b = new Parse.Object('Item');
a.save({ child: b }).then(() => {
  // Item's "child" field is now a Pointer to _Item

  b.save('child', new Parse.Object('Item')); // this works fine
});

If you have a new instance of the app, and you just fetch a without any includes, it'll be an object with an empty (attribute-less) Parse Object on the child field, exactly as you describe the legacy behavior. Pointers are only an over-the-wire and database expression tool. As far as the SDK is concerned, once it has inflated objects coming from the server, Pointers do not exist.
Once again, because I have zero context on what goalStep is (is it a newly-created object? is it the result of a query? did it come from cloud code?), and zero context on what the rest of the surrounding code looks like, I can't comment on your particular issue.

Both Goals and GoalSteps are completely new objects.
// goals require group pointer
var group;
var query = new Parse.Query(Group);
query.first().then(function(g){
  group = g;
});

// the setup
var goal = new Goal({name: "Great Goal", group: group})
var goalStep = new GoalStep()
goalStep.set("goal", goal);

goal.save() // works fine
goalStep.save().fail(function(error){
  console.log(error)
})

Output:
ParseError {
  code: 111,
  message: 'invalid type for key goal, expected *Goal, but got map'
}

Perhaps you could explain how the rest api differentiates between a Goal* and an object of the following format:
{goal: {__type: "Pointer", className: "Goal", objectId: "Hk4NM8RBvg"},…}

I see a bunch of requests in a batch save go by where that format works just fine and then others where it does not work. I'm perplexed to say the least.

This is what is being sent to the server by chrome, i did some formatting so it might be slightly off but basically we see some go through and others that don't:
{
  "requests":[{
      "method":"POST",
      "body": {
        "goal": {
           "__type":"Pointer",
          "className":"Goal",
          "objectId":"Hk4NM8RBvg"
         },
         "organization": {
           "id":{"className":"Organization","objectId":"ED36Rz8T5Z"},
           "name":"xxx"
         },
         "type":"invite",
         "eligibilityWindowRelativeStart":-604800,
         "eligibilityWindowRelativeEnd":-172800,
         "agentReminderMessage":"Time to start sending invitations for q",
         "targetingSpec": {
           "__type":"Pointer",
           "className":"TargetingSpec",
           "objectId":"9HKc0sTIpU"
        }
      },
      "path":"/1/classes/GoalStep"
  ]},
  "_ApplicationId":"",
  "_JavaScriptKey":"",
  "_ClientVersion":"js1.6.8",
  "_InstallationId":"",
  "_SessionToken":""
}

Hmm, if it's as you say, that might be a backend issue. That should be a totally valid POST body.

I'll file a bug

Ok that one is filed, I posted it with the exact curl request that Chrome is making so that you guys can try for your selves. It's generated from the SDK and I think I'm doing everything correctly so let me know if that is not the case.
Here is another common pattern we used to use where we had an id but no object yet:
const thing = new Thing({id: props.selectedGroupId});
const query = (new Parse.Query(OtherThang)).equalTo('thing', thing);

Is the proper way to transform this query to do the following?
const group = Thing.createWithoutData(props.selectedGroupId).toPointer();

Also the legacy initializers need refactoring, the documentation states:
//You should call either:
    var MyClass = Parse.Object.extend("MyClass", {
        Instance methods,
        initialize: function(attrs, options) {
            this.someInstanceProperty = [],
            Other instance properties
        }
    }, {
        Class properties
    });
// or, for Backbone compatibility:
    var MyClass = Parse.Object.extend({
        className: "MyClass",
        Instance methods,
        initialize: function(attrs, options) {
            this.someInstanceProperty = [],
            Other instance properties
        }
    }, {
        Class properties
    });

However neither of those initializer functions would work today with 1.6.x SDK because initialize is implemented like this:
// Enable legacy initializers
if (typeof this.initialize === 'function') {
  this.initialize.apply(this, arguments);
}

This would make the previous examples just set properties of the Parse.Object subclass but they don't wind up in attributes. This means those properties do not go through validation and I believe this means they are not persisted.

Hey @andrewimm the problem saving our GoalSteps wound up being an issue with our beforeSave() hook implementation which was being tunneled back through to the original save so we can scratch that one off the list!

That's why I enjoy reproducible test cases :)

Re: initialize, it does exactly what it is intended to do. The example you cite may not be the best, but that's only because it's a near-direct copy of Backbone's documentation. It's used for setting values on the instance, not for setting attributes; if you wanted to establish defaults for attributes, you'd have to set() them in the initializer.

Ok, cool that is what we wound up doing. The only reason we tried that is because I think you suggested that as a possible solution for the lack of a defaults feature above. Would you accept a pull request if I were to implement defaults? It's no longer a blocker for us but it would be nice to have right?

That being said, the only real blocker we have left which has us scratching out head is #89. Would appreciate it very much if you could take a look and let us know if we should not longer expect that to work or if that is indeed a bug and we can tackle it together. :-)

I'd definitely accept a PR for defaults, but it might involve some API discussion first.
The array of pointers thing in #89 is interesting, but I think the fix might just involve tweaking a boolean. It reminds me of another issue I've been trying to track down.

iniitialize issue (see #322) fixed by 03d14a0


Uncatchable timeout

Hello, I'm having issues trying to catch a timeout when I call an API. I've the following code:
#![allow(deprecated)] // In order to remove the warning for error_chain! when compiling.

#[macro_use]
extern crate error_chain;
#[macro_use]
extern crate serde_derive;

use http::StatusCode;
use trust_dns_resolver::Resolver;

use std::fs::File;
use std::fs::OpenOptions;
use std::io;
use std::io::Write;
use std::io::{BufRead, BufReader};
use std::path::Path;

#[derive(Deserialize, PartialEq, PartialOrd, Ord, Eq)]
struct SubdomainsCertSpotter {
    dns_names: Vec<String>,
}

#[derive(Deserialize, PartialEq, PartialOrd, Ord, Eq)]
struct SubdomainsCrtsh {
    name_value: String,
}

#[derive(Deserialize, PartialEq, PartialOrd, Ord, Eq)]
struct SubdomainsVirustotal {
    id: String,
}

#[derive(Deserialize)]
struct ResponseDataVirusTotal {
    data: Vec<SubdomainsVirustotal>,
}

error_chain! {
    foreign_links {
        Reqwest(reqwest::Error);
    }
}

pub fn get_subdomains(
    target: &str,
    with_ip: &str,
    with_output: &str,
    file_format: &str,
) -> Result<()> {
    let target = target
        .replace("www.", "")
        .replace("https://", "")
        .replace("http://", "")
        .replace("/", "");
    let ct_api_url_certspotter = [
        "https://api.certspotter.com/v1/issuances?domain=",
        &target,
        "&include_subdomains=true&expand=dns_names",
    ]
    .concat();
    let ct_api_url_virustotal = [
        "https://www.virustotal.com/ui/domains/",
        &target,
        "/subdomains?limit=40",
    ]
    .concat();
    let ct_api_url_crtsh = ["https://crt.sh/?q=%", &target, "&output=json"].concat();
    let ct_api_url_sublist3r = ["https://api.sublist3r.com/search.php?domain=", &target].concat();

    let mut ct_data_certspotter = reqwest::get(&ct_api_url_certspotter)?;

    println!("\nTarget ==> {}", &target);

    match ct_data_certspotter.status() {
        StatusCode::OK => {
            let mut domains_certspotter: Vec<SubdomainsCertSpotter> = ct_data_certspotter.json()?;
            if domains_certspotter.is_empty() {
                println!(
                    "\nNo data was found for the target: {} in CertSpotter, ¡Sad 😭!",
                    &target
                );
            } else {
                println!(
                    "\nThe following subdomains were found for ==>  {} in CertSpotter.\n",
                    &target
                );
                domains_certspotter.sort();
                domains_certspotter.dedup();
                let fixed_subdomains: Vec<&String> = domains_certspotter
                    .iter()
                    .flat_map(|sub| sub.dns_names.iter())
                    .collect();
                for subdomain in &fixed_subdomains {
                    if with_ip == "y" && with_output == "y" {
                        let ipadress = get_ip(&subdomain);
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_ip == "y" {
                        let ipadress = get_ip(&subdomain);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_output == "y" {
                        let ipadress = "";
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {}", &subdomain);
                    } else {
                        println!(" --> {}", &subdomain);
                    }
                }
            }
        }
        StatusCode::REQUEST_TIMEOUT => println!("Request timeout for the CertSpotter API."),
        s => println!("Received response status: {:?} for the CertSpotter API.", s),
    }

    let mut ct_data_crtsh = reqwest::get(&ct_api_url_crtsh)?;
    match ct_data_crtsh.status() {
        StatusCode::OK => {
            let mut domains_crtsh: Vec<SubdomainsCrtsh> = ct_data_crtsh.json()?;
            if domains_crtsh.is_empty() {
                println!(
                    "\nNo data was found for the target: {} in crt.sh, ¡Sad 😭!",
                    &target
                );
            } else {
                domains_crtsh.sort();
                domains_crtsh.dedup();
                println!(
                    "\nThe following subdomains were found for ==>  {} in crt.sh\n",
                    &target
                );
                for subdomain in &domains_crtsh {
                    let subdomain = &subdomain.name_value;
                    if with_ip == "y" && with_output == "y" {
                        let ipadress = get_ip(&subdomain);
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_ip == "y" {
                        let ipadress = get_ip(&subdomain);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_output == "y" {
                        let ipadress = "";
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {}", &subdomain);
                    } else {
                        println!(" --> {}", &subdomain);
                    }
                }
            }
        }
        StatusCode::REQUEST_TIMEOUT => println!("Request timeout for the Crtsh API."),
        s => println!("Received response status: {:?} for the Crtsh API.", s),
    }

    let mut ct_data_virustotal = reqwest::get(&ct_api_url_virustotal)?;
    match ct_data_virustotal.status() {
        StatusCode::OK => {
            let mut domains_virustotal = ct_data_virustotal.json::<ResponseDataVirusTotal>()?.data;
            if domains_virustotal.is_empty() {
                println!(
                    "\nNo data was found for the target: {} in Virustotal, ¡Sad 😭!",
                    &target
                );
            } else {
                domains_virustotal.sort();
                domains_virustotal.dedup();
                println!(
                    "\nThe following subdomains were found for ==>  {} in Virustotal\n",
                    &target
                );
                for subdomain in &domains_virustotal {
                    let subdomain = &subdomain.id;
                    if with_ip == "y" && with_output == "y" {
                        let ipadress = get_ip(&subdomain);
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_ip == "y" {
                        let ipadress = get_ip(&subdomain);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_output == "y" {
                        let ipadress = "";
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {}", &subdomain);
                    } else {
                        println!(" --> {}", &subdomain);
                    }
                }
            }
        }
        StatusCode::REQUEST_TIMEOUT => println!("Request timeout for the Virustotal API."),
        s => println!("Received response status: {:?} for the Virustotal API.", s),
    }

    let mut ct_data_sublist3r = reqwest::get(&ct_api_url_sublist3r)?;
    match ct_data_sublist3r.status() {
        StatusCode::OK => {
            let mut domains_sublist3r: Vec<String> = ct_data_sublist3r.json()?;
            if domains_sublist3r.is_empty() {
                println!(
                    "\nNo data was found for the target: {} in Sublist3r, ¡Sad 😭!",
                    &target
                );
            } else {
                domains_sublist3r.sort();
                domains_sublist3r.dedup();
                println!(
                    "\nThe following subdomains were found for ==>  {} in Sublist3r\n",
                    &target
                );
                for subdomain in &domains_sublist3r {
                    if with_ip == "y" && with_output == "y" {
                        let ipadress = get_ip(&subdomain);
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_ip == "y" {
                        let ipadress = get_ip(&subdomain);
                        println!(" --> {} : {}", &subdomain, &ipadress);
                    } else if with_output == "y" {
                        let ipadress = "";
                        write_to_file(&subdomain, &target, &ipadress, &file_format);
                        println!(" --> {}", &subdomain);
                    } else {
                        println!(" --> {}", &subdomain);
                    }
                }
            }
        }
        StatusCode::REQUEST_TIMEOUT => println!("Request timeout for the Sublist3r API."),
        s => println!("Received response status: {:?}", s),
    }
    println!("\nGood luck Hax0r 💀!\n");
    Ok(())
}

pub fn get_ip(domain: &str) -> String {
    let resolver =
        Resolver::from_system_conf().expect("Error reading system resolver configuration.");
    if let Ok(ip_address) = resolver.lookup_ip(&domain) {
        let address = ip_address.iter().next().expect("An error as ocurred.");
        address.to_string()
    } else {
        String::from("Domain not resolved")
    }
}

pub fn read_from_file(
    file: &str,
    with_ip: &str,
    with_output: &str,
    file_format: &str,
) -> io::Result<()> {
    if let Ok(f) = File::open(&file) {
        let f = BufReader::new(f);
        for line in f.lines() {
            get_subdomains(
                &line.unwrap().to_string(),
                &with_ip,
                &with_output,
                &file_format,
            )
            .unwrap();
        }
    } else {
        println!(
            "Error: can't open file {}, please check the filename and try again.",
            &file
        );
    }
    Ok(())
}

pub fn write_to_file(data: &str, target: &str, subdomain_ip: &str, file_format: &str) {
    let data = &[data, ",", subdomain_ip, ",", "\n"].concat();
    let filename = &[target, ".", file_format].concat();
    if Path::new(&filename).exists() {
        let mut output_file = OpenOptions::new()
            .append(true)
            .open(&filename)
            .expect("Can't open file.");
        output_file
            .write_all(&data.as_bytes())
            .expect("Failed writing to file.");
    } else {
        File::create(&filename).expect("Failed to create file.");
        let mut output_file = OpenOptions::new()
            .append(true)
            .open(&filename)
            .expect("Can't open file.");
        output_file
            .write_all("domain,ip\n".as_bytes())
            .expect("Failed writing to file.");
        output_file
            .write_all(&data.as_bytes())
            .expect("Failed writing to file.");
    }
}

I'm getting a panic with the following error:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Error(Reqwest(Error { kind: Io(Custom { kind: TimedOut, error: StringError("timed out") }), url: Some("https://crt.sh/?q=%google.com&output=json") }), State { next_error: None, backtrace: InternalBacktrace { backtrace: None } })', src/libcore/result.rs:997:5
note: Run with `RUST_BACKTRACE=1` environment variable to display a backtrace.

Still when Timeout Error should be catched by StatusCode::REQUEST_TIMEOUT => println!("Request timeout for the Crtsh API.")
What's happening there?

I've implemented it and seems to solve the problem:
#[macro_use]
extern crate error_chain;

//use http::StatusCode;

fn main() {
    let response = reqwest::get("https://crt.sh/?q=%google.com&output=json");
    if let Err(e) = &response {
        if e.is_timeout() {
            println!("Timeout")
        } else {
            println!("A error as occurred: {}", e)
        }
    }
    if let Ok(op) = &response {
        println!("Ok :D, {:?}", op)
    }
}

Anyways, I still need add the ? to let response = reqwest::get("https://crt.sh/?q=%google.com&output=json") and then the if let doesn't work because mismatched types: expected struct reqwest::response::Response, found enum std::result::Result, what should I use then?

I found the fix.
extern crate reqwest;

fn main() {
    match reqwest::get("https://crt.sh/?q=%google.com&output=json") {
        Err(e) => {
            if e.is_timeout() {
                println!("Timeout")
            }
        }
        Ok(_) => println!("OK"),
    }
}


How about replacing gitleaks with truffleHog?

When I compared several tools in https://github.com/kachick/dotfiles/pull/2, truffleHog was not listed
https://github.com/gitleaks/gitleaks
https://github.com/trufflesecurity/truffleHog

truffleHog detects a gist URL as token :thinking:
https://github.com/kachick/dotfiles/blob/05491e383e25334027a0c42b47558876d91d3413/home-manager/zsh.nix#L143

ca1035271ad134841284

> trufflehog --version
trufflehog 3.88.0
> trufflehog filesystem .
...
Found unverified result 🐷🔑❓
Detector Type: GitHubOauth2
Decoder Type: PLAIN
Raw result: ca1035271ad134841284
Rotation_guide: https://howtorotate.com/docs/tutorials/github/
File: .git/objects/fc/f9abeec677851c0561008ceac997d09ed253f9
Line: 111

2024-12-31T02:20:56+09:00       error   trufflehog      encountered errors during scan  {"errors": ["error chunking unit \".direnv/flake-inputs/01x5k4nlxcpyd85nnr0b9gm89rm8ff4x-source\": skipping symlink", "error chunking unit \".direnv/flake-
...
{"Hits":1,"Misses":49,"HitsWasted":1,"AttemptsSaved":0,"VerificationTimeSpentMS":222224}}

https://github.com/trufflesecurity/trufflehog/pull/1584?

https://engineers.ntt.com/entry/2022/12/07/113602
https://github.com/aquasecurity/trivy/blob/e8085bae3e71fc5c9839feb13e34b75deba4ce9d/docs/docs/scanner/secret.md?plain=1#L310
:eye:

Might be good

Check current files with the CLI which defined in this repository. Atleast in pre-commit or pre-push hook (okay for trivy)
In external repository or GitHub action, check all the commits in this repository (other tools)

Comparing supported products
https://github.com/aquasecurity/trivy/blob/e8085bae3e71fc5c9839feb13e34b75deba4ce9d/pkg/fanal/secret/builtin-rules.go#L13-L73
https://github.com/gitleaks/gitleaks/blob/b69b5157a01fe4234a74a9acd186044152a80c43/cmd/generate/config/main.go#L28-L231
https://github.com/trufflesecurity/trufflehog/blob/def734a783b2d4542f2b353d326130d618f3c421/proto/detectors.proto#L16-L1023
:pig_nose: is strong :thinking:

trufflehog --version it outputs only for stderr


format of problem sets

We started the problem sets in LaTeX.  For example:
https://github.com/DaveBackus/Data_Bootcamp/blob/master/Documents/bootcamp_practice_1.pdf
Is there a better technology than this?  Submitting answers requires students to write out code by hand, which seems a little clunky.  We could do notebooks, but had thought we'd postpone them until the second half.
Spencer and I thought we'd see what Chase could come up with.  Or should we stay with LaTeX?

LaTeX it is.  A thing of beauty.


[CLOSED] Make edits parser recognize more Coq syntax

 Issue by Lysxia
Tuesday Oct 27, 2020 at 01:55 GMT
Originally opened as https://github.com/antalsz/hs-to-coq/pull/174

Generalizable binders no longer require parentheses ( `{(Monad m)} must now be written  `{Monad m}).
Arrow type constructor can now associate to the right. a -> (b -> c) can now be written a -> b -> c Also allow mixing infix type operators with arrows a -> b + c (meaning a -> (b + c)).
Generate infix notations for types and constructors.

Lysxia included the following code: https://github.com/antalsz/hs-to-coq/pull/174/commits

 Comment by lastland
Tuesday Oct 27, 2020 at 01:57 GMT

That looks like an exciting fix! 🎉


We should have grab handles and support for mouse click-drag on widgets that only support longpress

Several widgets in Flutter support longpress to initiate a drag 'n' drop action, e.g. ReorderableListView. That's a natural gesture on mobile form-factors but not on desktop web or native desktop. The material guidelines call for grab handles to indicate drag 'n' drop. Flutter should add grab handles into the widgets that support drag 'n' drop and not require longpress for mouse-initiated drag 'n' drop.
Here's a DartPad sample that shows one work-around for adding short-click and drag by creating a clone of ReorderableListView and changing a single line of code (LongPressDraggable => Draggable).

Hey folks, we are ramping up a design to try to address this and other issues with ReorderableListView. We are tracking it with #66080 and in a design doc. Feedback welcome.

With the recent refactoring of the ReorderableListView (PRs: #74299 and #74697), we have added automatic drag handles when running on the desktop (with a buildDefaultDragHandles property to turn it off). If this isn't what you want, you can add your own drag handle as a widget to each of your items with something like:
ReorderableDragStartListener(
  index: index,
  child: const Icon(Icons.drag_handle),
),

somewhere in the child's subtree.


native debugger fails when attaching both python and native debuggers

very similar issue, but now python debugger complains:

the modules shows a lot of python symbols loaded:

Ping @int19h
I think we've seen this before, but I don't recall what the issue was.

I think I never got the repro working last time. This really needs to be debugged to figure out what's going wrong. Since .py files are already showing up in the Modules window, this is happening very late in the attach process, when our runtime is already registered etc.
In fact, I wonder what exactly is working incorrectly aside from the error message. i.e. are breakpoints hit in Python? Does stepping work?

If I have c# assembly's symbols then only c# can be debugged, otherwise
only Python can be debugged! Of course I'm using pythonnet, one of the
latest builds.
On Wednesday, April 27, 2016, Pavel Minaev<EMAIL_ADDRESS>wrote:

I think I never got the repro working last time. This really needs to be
debugged to figure out what's going wrong. Since .py files are already
showing up in the Modules window, this is happening very late in the attach
process, when our runtime is already registered etc.
In fact, I wonder what exactly is working incorrectly aside from the error
message. i.e. are breakpoints hit in Python? Does stepping work?
—
You are receiving this because you authored the thread.
Reply to this email directly or view it on GitHub
https://github.com/Microsoft/PTVS/issues/1242#issuecomment-215264718

can I provide you with minimal reproducible example for debugging: c# -> pythonnet -> cpython?

Yes, a self-contained repro would be extremely helpful.

@zooba: You're thinking of Issue #481, which is about the same error message.

Ok, no more issues with this:
https://github.com/pythonnet/pythonnet/wiki/Various-debugging-scenarios-of-embedded-CPython


Fz access riui 1263

Before creating a pull request make sure that:

[ ] commit messages are meaningful and follow good commit message guidelines
[ ] README and other documentation has been updated / added (if needed)
[ ] tests have been updated / new tests has been added (if needed)

Please remove this line and everything above and fill the following sections:
JIRA link (if applicable)
Change description
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[ ] No

i am still waiting for Rob to give me the dynamic title format

"i am still waiting for Rob to give me the dynamic title format"
I think Phi mentioned it should be:  "Business name - H1 title"

@fazanki do you think it would be a great if you could summary in the PR of what you done ?

@frontr-uk can't u gather that from the code?

@frontr-uk don't think that is for Phi to decide as it does not affect only accessibility but bookmarks too.


Breakpoints Config Not Updating Slider Axis Correctly

First, I wanna thank you for creating and maintaining this wonderful project.
And we have replaced all slider components in our website to your component
because it is really powerful, stable and easy to use.
Bug is related to
embla-carousel-react
Embla Carousel version
v7.0.9
Describe the bug
This bug involves updating the option axis using breakpoints. We have a component that needs to be displayed as a horizontal slider on mobile devices and a vertical slider on desktops. Previously, we relied on a pseudo-element before to achieve this, and it worked well. However, after updating our embla library to the latest stable version, the Pseudo options were removed, and the pseudo-element approach no longer works.
We attempted to use the recommended method of updating the options with breakpoints, but unfortunately, it did not work in our codebase. To troubleshoot, we checked one of your example code sandboxes and discovered that even when we replaced the static axis value with a breakpoints config, the axis was not updated to y when the screen size was bigger than the breakpoint value.
CodeSandbox
https://codesandbox.io/s/embla-carousel-y-axis-react-forked-lfv5wq?resolutionWidth=1400&resolutionHeight=800&file=/src/js/index.tsx
Steps to reproduce

Try to scroll vertically
It will not work

Expected behavior

A clear and concise description of what you expected to happen.
With my current screen resolution width, the axis should be set to y and the slider should be able to scroll vertically

Additional context
None
Thx again for your help and attention.

Hi @xzhouhse,
Have you tried wrapping your media query string in parentheses? As demonstrated in the docs:
// ✅ Correct
const options = {
  active: true,
  breakpoints: {
    '(min-width: 768px)': { active: false },
  },
}

// ❌ Wrong
const options = {
  active: true,
  breakpoints: {
    'min-width: 768px': { active: false },
  },
}

Best,
David

Hi @davidjerleke
Thx for you quick response and help.
You are right, I made an easy mistake in the syntax in the code sandbox.
And in my codebase, I just did some clean up and reinstall the dependency again, now it works like a charm.
This issue can be closed now.
Best Regards,
Zhou

Hi @xzhouhse,
I'm glad it worked 🎉! Closing the issue.
Cheers,
David


Ad click's management

Have you read the FAQ and checked for duplicate open issues?
Yes
What version of Shaka Player are you using?
3.0.10
Can you reproduce the issue with our latest release version?
Yes
Can you reproduce the issue with the latest code from master?
I don't know
Are you using the demo app or your own custom app?
custom app
If custom app, can you reproduce the issue using our demo app?
No
What browser and OS are you using?
Windows, Firefox or Chrome
What are the manifest and license server URIs?

What configuration are you using?  What is the output of player.getConfiguration()?

What did you do?
I don't know if it's a bug... I have a clickable ad, I want to catch the "clicked" event and do something depending on the destination url; in some cases, I want to stop opening the new tab with the destination url.
To achieve this, I use the "addEventListener(shaka.ads.AdManager.AD_CLICKED..." function, with "event.preventDefault" to stop redirection
What did you expect to happen?
I expect two things:

to know in some way what is the url that should be opened after the click
to block the opening of the new tab

What actually happened?
The event object (screenshot below) is really difficult to be parsed, it has no "sdkAdObject" or "originalEvent" property, so I can't get the destination url. At the same point, event.preventDefault doesn't block the opening of the new tab.

@dave1981 Our fault! Somehow that particular event slipped through the cracks when we were adding the 'originalEvent' fields. I have a CL out to fix it!
Regarding the preventDefault issue - my guess is, you will have better luck setting it on the original event once you have access to that. Our event doesn't redirect to another page, it's the IMA event that does.

Okay, please try now with the latest master

I'm working with npm package, so I prefer to wait the next release. Thank you for your help!

@dave1981 I meant that you can test it on the master to see if the change covers everything you needed.
For production use - yes, it will be in the upcoming v3.1 release.


Crash before Birkin fight Room 509 Leon A

Version
2.1.7
Seed
R620-VN9F-ZTKK4CZUF06BH26T4PZZZZZZ98Z
Scenario
RE 2 (Leon A)
What happened?

It crashes when I try to go through the door.

Assuming this was caused by the issue of re-using boss enemy IDs for other enemies. So should be fixed now.


Incorrect diff value when passing start date is on Feb 29 on leap year

Describe the bug
When trying to get the difference between two dates is the start date is a leap date (Feb 29) it returns incorrect response.
To Reproduce
Steps to reproduce the behavior:

Go to momentjs.com open the developer console
Type

const h = moment.utc([2016, 1, 29])
const i = moment.utc([2017, 1, 28])
i.diff(h, "M")
i.diff(h, "Y")

Expected behavior
i.diff(h, "M") should return 11
i.diff(h, "Y") should return 0
Screenshots

Desktop (please complete the following information):

Browser [e.g. chrome, safari] chrome
Version [e.g. 22] 2.29.4

Moment-specific environment

The time zone setting of the machine the code is running on - PST
The time and date at which the code was run 3:06 pm
Other libraries in use (TypeScript, Immutable.js, etc) No

Please run the following code in your environment and include the output:
VM4230:1 Tue Dec 13 2022 15:06:58 GMT-0800 (Pacific Standard Time)
VM4230:2 12/13/2022, 3:06:58 PM
VM4230:3 480
VM4230:4 Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
VM4230:5 2.29.4

Additional context
It didn't happen on version 2.4.0

Hey Rafaelamsili,
I think you are experiencing expected behavior. If there is a fix (I do not believe one is needed), it would be at the path src/lib/moment/diff.js. Let me explain my thinking. Moment seems to calculate by "whole months". For instance:
const h = moment.utc([2022, 2, 31]);
const i = moment.utc([2022, 3, 30]);

i.diff(h, "M")
// 1

Moment is calculating the your example from the final day of February 2016 to the final day of February 2017. This is rightfully calculated to 12 months to 1 year.
What do you think?
Owen

Reducing each day by 1 should reduce the year to zero.
I think the problem is that the timeframe of a month is inexact. People agree that one month from March 15th is April 15th, but what is one month from March 31st? April has 30 days, so despite being 1 day earlier than the 31st, one could say that April 30th is "1 month past" March 31st.
Moment checks elapsed months first, and then looks at extra days. Reducing the leap year dates by one makes Moment compare the physical number of days. A day is a precise measurement, while a month is not. Even a year is not a precise measurement. A year is 366 days every four years and 365 days all the other years. Months can be 28, 29, 30, or 31 days long.
Do you see what I'm saying?


Repo sync for protected CLA branch

The pull request is created from master637479727000264858 to master to fix git push error for protected CLA branch

@ghogen : Thanks for your contribution! The author(s) have been notified to review your proposed change. @evanwindom


Xilinx preprocess interstate edges

Preprocessing pass for Xilinx: it goes over interstate edges and replaces names of the accessed arrays with their mangled ones (if any).
The nussinov polybench test trigger this behavior.
Partially solves #902

Needs more working.
It would be good to have a transformation pass that removes ArayInterface completely.
This would require to:

detect in/out arrays and duplicate respective access nodes
detect wcr-ed arrays, remove wcr so that there are the respective in/out access nodes