FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal. Aborted

I installed better-sqlite3 with no errors, onto my raspberry pi. (Raspbian). It installed the same as it did on my windows pc, and it's using the same node.js project as well. However I am getting this error.
FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal. Aborted
Is there something I need to do to get rid of this?

I am getting this error as well.

Some more information.
Packages installed through NPM.
"dependencies": {
"request": "2.85.0",
"file-system": "2.2.2",
"lzutf8": "0.5.0",
"gps": "0.4.6",
"serialport": "6.2.0",
"bugsnag": "2.3.1"
}
COMMANDS.
RUN JOBS=MAX npm install -g node-gyp --unsafe-perm && JOBS=MAX npm install --production --unsafe-perm
RUN LZZ_COMPAT=1 npm install<EMAIL_ADDRESS>--production --unsafe-perm && rm -rf /tmp/*

Getting the same issue

Using v8.8.1

the same at v10.0.0 on my system

Using 9.9
It has something to do with another module compiling but I never worked it down that far.  I just moved that service to sqlite3 for the time being.

Im having this issue as well, tested on both node 6.x and node 8.x
FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal.
 1: node::Abort() [node]
 2: 0x8c21ec [node]
 3: v8::Utils::ReportApiFailure(char const*, char const*) [node]
 4: Require(v8::Local<v8::Object>, char const*) [/home/ec2-user/Dirty-Server-Manager/node_modules/better-sqlite3/build/Release/better_sqlite3.node]
 5: Integer::Init(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Object>) [/home/ec2-user/Dirty-Server-Manager/node_modules/better-sqlite3/build/Release/better_sqlite3.node]
 6: RegisterModule(v8::Local<v8::Object>, v8::Local<v8::Object>) [/home/ec2-user/Dirty-Server-Manager/node_modules/better-sqlite3/build/Release/better_sqlite3.node]
 7: 0x8c7fdd [node]
 8: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) [node]
 9: 0xad712c [node]
10: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [node]
11: 0x8d42c0842fd
Aborted

I only received this issue when on a centos server, Ubuntu and Windows had no issue

To anyone who has received this error: could you provide a print of the node_modules/better-sqlite3/build/ directory (recursively) after installing better-sqlite3?
I believe this issue may be related to https://github.com/JoshuaWise/better-sqlite3/issues/146. I have an idea of what might be going on, but I need to see the directory of someone who has received the error.

This should be fixed in version 5.0.0.

Hey, sorry that I roll that here out again but I have same issue with version ^5.0.1 of better-sqlite3.  I using it in a Electron project and everything is fine but when I using it outside from Electron (in testing using normally node) I got this error:
Error: The module '/home/mondei1/Dokumente/Workspace/Electron/TypeOS/node_modules/better-sqlite3/build/better_sqlite3.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 57. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Object.Module._extensions..node (module.js:682:18)
    at Module.load (module.js:566:32)
    at tryModuleLoad (module.js:506:12)
    at Function.Module._load (module.js:498:3)
    at Module.require (module.js:597:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (/home/mondei1/Dokumente/Workspace/Electron/TypeOS/node_modules/better-sqlite3/lib/database.js:5:21)
    at Module._compile (module.js:653:30)
    at Object.Module._extensions..js (module.js:664:10)
    at Module.load (module.js:566:32)
npm ERR! Test failed.  See above for more details.

So I tried npm rebuild, npm install and $(npm bin)/electron-rebuild but it doesn't fix the issue. My next through was to rebuild better-sqlite3 again but also update the binary, with npm rebuild better-sqlite3 --update-binary and got that error (as by the others):
FATAL ERROR: v8::ToLocalChecked Empty MaybeLocal.
 1: node::Abort() [node]
 2: 0x8cbf4c [node]
 3: v8::Utils::ReportApiFailure(char const*, char const*) [node]
 4: Require(v8::Local<v8::Object>, char const*) [/home/mondei1/Dokumente/Workspace/Electron/TypeOS/node_modules/better-sqlite3/build/better_sqlite3.node]
 5: Integer::Init(v8::Isolate*, v8::Local<v8::Object>, v8::Local<v8::Object>) [/home/mondei1/Dokumente/Workspace/Electron/TypeOS/node_modules/better-sqlite3/build/better_sqlite3.node]
 6: RegisterModule(v8::Local<v8::Object>, v8::Local<v8::Object>) [/home/mondei1/Dokumente/Workspace/Electron/TypeOS/node_modules/better-sqlite3/build/better_sqlite3.node]
 7: 0x8cd92d [node]
 8: v8::internal::FunctionCallbackArguments::Call(void (*)(v8::FunctionCallbackInfo<v8::Value> const&)) [node]
 9: 0xb0bbec [node]
10: v8::internal::Builtin_HandleApiCall(int, v8::internal::Object**, v8::internal::Isolate*) [node]
11: 0x13898f4842fd
Aborted (core dumped)
npm ERR! Test failed.  See above for more details.

Well, in Electron, it works but not If I execute it normally with node tests/user.js (TypeScript generated). Is this a problem of Electron or better-sqlite3? After I re-compiled it (with replacing the binary) I can't execute the Electron project anymore and get the first error I mentioned above but a $(npm bin)/electron-rebuild fixed it but only for Electron.
Don't know If that helps, here are these two files (test file and database manager):
user.ts (not tested yet, because of this error)
import { Data } from '../src/js/data';
import * as chalk from 'chalk';

// Set test order
const order: Array<Function> = [createUser];

// Starting by make a connection to the database first.
const db = new Data();

// First test, create user.
async function createUser (run: number): Promise<Error> {
    return new Promise<Error> ((resolve, reject) => {
        try {
            // Test If we can create a new user.
            db.addUser({
                firstName: 'Dummy',
                lastName: 'User',
                username: 'UnitTest',
                password: '123'
            }, {
                lang: 'en',
                lightMode: false,
                temperatureType: 0
            });
        } catch (err) {
            resolve (err);
        }
    })
}

let run = 1;
order.forEach(async test => {
    const err: Error = await test (run);

    // Check if test failed.
    if (err == undefined) {
        console.log ("[ Test %s / %s in %s ] %s: %s", chalk.default.bold(String(run)), order.length, __filename,
                chalk.default.bold(chalk.default.green("Passed ✔")), err);
    } else {
        console.log ("[ Test %s / %s in %s ] %s: %s", chalk.default.bold(String(run)), order.length, __filename,
                chalk.default.bold(chalk.default.redBright("Failed: ")), err);
        process.exit(1);
    }
    run++;
});

data.ts
import * as sqlite from 'better-sqlite3';
import * as fs from 'fs';
import * as path from 'path';
import * as jwt from 'jsonwebtoken';
import * as bcrypt from 'bcrypt';
import { CONFIG } from '../../config';

export interface IUserInfo {
    firstName: string,
    lastName: string,
    username: string,
    password: string
}
export interface IUserSettings {
    lightMode: boolean,
    lang: string,
    temperatureType: number
}

export class Data {
    db = new sqlite.default('data.db');

    /**
     * Executes migration on start.
     */
    constructor() {
        // Migrate and create tables If not exist.
        this.db.exec(fs.readFileSync(path.join(__dirname, '../sql/migrate.sql'), 'utf8'));
    }

    /**
     * Add a new user to the database.
     * @param userInfo JSON object defines basic account information about user like password or username.
     * @param userSettings JSON object defines default settings about user. Leave blank for default.
     */
    async addUser(userInfo: IUserInfo, userSettings: IUserSettings) {
        // First check, If user already exist.
        const uSelect = this.db.prepare("SELECT id FROM `users` WHERE username=?").get(userInfo.username);
        if (uSelect != undefined) throw new Error("User " + userInfo.username + " already exist!");

        // Create user settings
        const sInsert = this.db.prepare("INSERT INTO `settings` (lightMode, lang, temperatureType) VALUES (@lightMode, @lang, @temperatureType)");
        let sResult: any;   // Must do it 'any' because there is an error at the TypeScript definition by DefinitelyTyped.
        // lastInsertROWID should be lastInsertRowid.

        if (userSettings != undefined) {
            sResult = sInsert.run({
                lightMode: this.boolToInt(userSettings.lightMode),
                lang: userSettings.lang,
                temperatureType: userSettings.temperatureType
            });
        } else {
            // Set default values If user didn't pass some.
            sResult = sInsert.run({
                lightMode: 0,
                lang: 'en',
                temperatureType: 0
            });
        }

        // Create User
        const uInsert = this.db.prepare("INSERT INTO `users` (firstName, lastName, username, password, settings) VALUES" +
            "(@first, @last, @username, @password, @settings)");
        uInsert.run({
            first: userInfo.firstName,
            last: userInfo.lastName,
            username: userInfo.username,
            password: await this.cryptPassword(userInfo.password),
            settings: Number(sResult.lastInsertRowid)
        });
    }
...

See complete file here.
Thanks for reading,
Mondei1.

@Mondei1 The issue is probably related to how better-sqlite3 depends on another natively compiled npm package, integer.
When you tried npm rebuild better-sqlite3 --update-binary, try rebuilding both packages:
npm rebuild better-sqlite3 --update-binary
npm rebuild integer --update-binary

Wow, thanks. Now it works. I extra had to re-compile bcrypt. But I think I can't re-compile everything just for testing and starting, because If I start it now with Electron I get that incompatibly error. I solved this yesterday by add start argument --test in my application so it will run the tests inside Electron without opening a window.
Anyway, thanks @JoshuaWise :+1:

@Mondei1 great, glad to hear it!

add anthor

@JoshuaWise I am facing the same error. I am on Windows 10 & tried every possible solution mentioned in the issues including https://github.com/JoshuaWise/better-sqlite3/issues/126#issuecomment-403943522 & https://github.com/JoshuaWise/better-sqlite3/issues/126#issuecomment-434687555.
I even tried https://github.com/JoshuaWise/better-sqlite3/blob/master/docs/troubleshooting.md
But this is the only error I can't figure out.
I tried it out again with a simple repo 👉 https://github.com/deadcoder0904/better-sqlite-electron-err
I have detailed every step in the README. Do you know what must be causing the problem?
You said above it was because it couldn't find integer module but as you can see I already have it bundled here 👉 https://github.com/deadcoder0904/better-sqlite-electron-err/tree/master/.webpack/main/native_modules/build/Release

@deadcoder0904, I see you're using webpack. Webpack changes the location of installed modules. They are able to do that because they can edit the require'd paths in JavaScript, but they can't do the same thing for C++ code. Since better-sqlite3 loads integer from C++ code, but Webpack moved integer from its default location, it breaks.

@JoshuaWise so what's the solution?
i'm pretty sure i've checked the paths myself for better-sqlite3 in .webpack directory & they were perfectly referenced as they would without better-sqlite3.
cc @jlongster if you can help with Electron + Better SQLite combo. actually found Better SQLite through your blog so any help would be appreciated :)

friendly ping @JoshuaWise
as you can see here 👉 https://github.com/deadcoder0904/better-sqlite-electron-err/blob/master/.webpack/main/index.js#L233
it correctly points to the better-sqlite3 module as electron-forge has taken care of it for us. can you take a look again? i'd appreciate another pair of eyes :)

I'll soon be releasing v7.0.0 which should eliminate this error and many others. The integer package will be replaced with the native BigInt

Any ETA (week, month) so I can either wait or move on with another package?

This weekend, before Monday

This is now fixed in v7.0.0.

Thank you so much, that worked 🎉


Enum values can't be used as match patterns

Operating system or device, Godot version, GPU Model and driver (if graphics related):
Windows 10. Godot 3.0alpha1
Issue description:

Enum values can't be used as match patterns. The error is: Parse Error: Only constant expressions or variables allowed in a pattern
The match documentation says that it should be possible under the variable pattern: matches the contents of a variable/enum
Steps to reproduce:
extends Node

enum Action { Up, Down }
var current_action = Action.Up

func something():
	match current_action:
		Action.Up: # Error here
			pass
		_:
			pass

There's actually a PR already to fix that :) #10542


Reenable emoji uploads for new api endpoint

edit 2 This PR is fixed up and works again hooray
edit ~There seems to be more at work here, i think something about the auth has changed 😞
In fact I think the issue is that the "add an emoji button" and therefore the emoji upload crumb is added via JS, meaning requests + cheerio isn't going to cut it.~

The emoji customize page has had another rewrite that removes the
segmentation from the top "addemoji" section and the bottom "emojilist"
section.

With this upstream change, the existing code would always throw a login error:

Starting import
Got tokens
Logged in
Uh oh! Error: Login error: could not get emoji upload crumb for https://<ORG>.slack.com
(node:4781) UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 1): Error: Login error: could not get emoji upload crumb for https://<ORG>.slack.com
^C

Simply updating the selector to not require the existance of an
"addemoji" section is enough to allow uploads to continue

There don't appear to be any integration tests that would have caught this. I might look into making something like that possible.

Okay! We dodged a bullet on this new emoji page - even though the /customize page is now JS based, we won't need selenium or similar to grab tokens / submit emoji - The endpoint has simply moved from "post to the /customize page" to an undocumented api endpoint at /api/emoji.add, much more in line with /api/emoji.list etc.
Apart from the move, there has been a change from client crumbs / cookies to user tokens, but luckily there is also a user token in embedded in every logged in client that we can grab until they patch that hole. There were also some small changes to what slack expects in its multipart upload form, but no big deal.

Hey @lambtron (and maybe @zachfeldman?), we're gonna need this change to solve https://github.com/lambtron/emojipacks/issues/157 / allow any uploads to occur. Could you take a look at it?

Hey @jackellenberger , I'm no longer involved with this project since I found out @lambtron profited from it without telling other contributors up front by opening up a store selling emojipacks.
Have a nice day and good luck with your PR!

LGTM. Thank you!

was this released?

Is this on npm yet?


handle alternate statuses

task and other plugins now support various task statuses.  For example, / is often used to show in progress and - for cancelled.  Can you add an option to specify statuses other than x that indicate a "done" task.

Hello @pcause.
I'm presently working with the Tasks plugin's maintainer to add automatic processing (deleting, archiving, relocating within original note file) of both recurring and non-recurring tasks upon their completion.  If that effort is successful, then any alternate statuses that Tasks equates to StatusType.DONE will be supported by the feature 'out-of-the-box'.
I'll tag this as an Enhancement and leave the issue Open -- for future development consideration if the above efforts are not successful.

that is TERRIFIC news!  I look forward to the results.  This will make the 2 a perfect pair and I am sure a lot of folks will be very, vert grateful!


Syntax Error and No such file or directory: 'TEMP/audio.wav'

Hello, when I run the code I have these error messages pop up:
/bin/sh: -c: line 0: syntax error near unexpected token (' /bin/sh: -c: line 0: ffmpeg -i video.MOV -qscale:v 3 TEMP/frame%06d.jpg -hide_banner'
/bin/sh: -c: line 0: syntax error near unexpected token (' /bin/sh: -c: line 0: ffmpeg -i video.MOV -ab 160k -ac 2 -ar 44100 -vn TEMP/audio.wav'
Traceback (most recent call last):
File "jumpcutter.py", line 108, in
sampleRate, audioData = wavfile.read(TEMP_FOLDER+"/audio.wav")
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/scipy/io/wavfile.py", line 151, in read
fid = open(filename, 'rb')
IOError: [Errno 2] No such file or directory: 'TEMP/audio.wav'

Hey how did you fix that issue?

Oh it's because that video was probably encoded wrong. The initial algorithm carykh used was a bit jank. Check my profile for rewritten version that fixed that issue

the issue was fixed by installing ffmpeg

Oh I still got that issue AFTER installing ffmpeg

It's because -c doesn't cover .avi files encoded in h.265


Firestore: Handle document ID start/end specially

If the field uses name in the ordering, the corresponding start-at/end-at cursors should be DocumentReferences; if the user provides a string, we should coerce the value appropriately.

If a DocumentReference is provided, we should validate that it's a child of the query's collection.


RemoteFileService.resolveFiles can return results out of order

This can lead to bad bugs in the explorer viewlet where roots become un-expandable. The easiest way to reproduce is add more than 10 folders to the workspace.
https://github.com/microsoft/vscode/blob/8414d5c03e059ec6d0f725c74a94315403284f3c/src/vs/workbench/services/files/electron-browser/remoteFileService.ts#L174-L187
This can happen in two cases:

There are more than 10 files to resolve.
There is a mix of schemes.

For (1) it is because the implementation uses groupBy, which in turn uses sort. node's sort is not stable. However, for small values it is which is why this probably hasn't been noticed before. For (2) its because at the end of the function we just flatten the groups, without respect to the initial input order. This likely hasn't been noticed since most people just have file schemes as the roots.
cc @jrieken

Nice find.

@jrieken this still doesn't solve the 2nd point I mentioned in the description. If people actually use the remote service (rather than just file resources) the results will be out of order. However, I'm not sure if that would effect any current uses in the codebase, but could effect future uses.

Did you look at both changes? I fixed groupBy but the remote file service doesn't actually use it anymore but uses a softer grouping which is "use groups if called with groups otherwise don't"

oh sorry! I only saw the stable sort commit. Yes the algorithm in the other commit looks good to me. :+1:


ARROW-4596: [Rust][DataFusion] COUNT aggregation

I have started to work on this ticket, but I have some doubts that are preventing me from moving forward.
The major one concerns how aggregation currently works - for each struct implementing AggregateFunction there are two main "calling sites":

AggregateRelation.without_group_by: for each aggregation we precompute its output on a batch of records using bulk functions (array_min, array_max, array_sum, array_count) and then we update the accumulator using their output value, using (after a bit of indirection) AggregateFunction.accumulate_scalar;
AggregateRelation.with_group_by: the aggregation value is built one value at a time, using AggregateFunction.accumulate_scalar.

This patterns works for sum, min and max because:
sum([x, sum([y, w, ..., z])]) = sum([x, y, w, ..., z])
min([x, min([y, w, ..., z])]) = min([x, y, w, ..., z])
max([x, max([y, w, ..., z])]) = max([x, y, w, ..., z])

but the same is not true for count
count([x, count([y, w, ..., z])]) != count([x, y, w, ..., z])

as it can be seen from the currently failing test (100 != 2).
How should I address this issue? Should I change AggregateFunction to provide an additional accumulation method specifically for bulk computation?
The other doubt concerns the data type: so far I have worked under the assumption that we want the result of a COUNT aggregation to be either None (if the array is empty) or an integer (either signed or unsigned, all bit counts are allowed). Is that correct?

Regarding the question about accumulating the values ... you need to calculate the count for each batch and then add those together at the end (not count them). I'm guessing you are getting 2 because you are counting the number of batches.

I don't think the trait needs to change. COUNT(expr) is the same as SUM(1) WHERE expr NOT NULL so the logic working for SUM should work for COUNT.

In other words, you want the SUM of the COUNTs:
sum([count(x), count([y, w, ..., z])])

@LukeMathWalker I think you are right .. the current design doesn't quite work for the COUNT case because when we aggregate the results for all the batches we need to SUM them together rather than do COUNT again ... I'll think about this ...

I think an option is to explicitly include in AggregateFunction a bulk accumulator method, but I guess the overall design choice depends on what aggregation you want to support going ahead.

@LukeMathWalker I'll have a PR against your branch in the next hour or so to resolve the test failure

@LukeMathWalker @andygrove I presume that this PR's been superseded, and can be closed?

@nevi-me yes, thanks .. this was handled under another PR


use releases for bootloaders?

Looking at the download https://github.com/RAKWireless/WisBlock/blob/master/bootloader/RAK4630/Latest/WisCore_RAK4631_Board_Bootloader.zip
from the https://github.com/RAKWireless/WisBlock/tree/master/bootloader/RAK4630 page.
Perhaps that zip file should be pushed to a release?
If the CI cannot build them (due to some internal reason, you can always create a release manually and push the files into it). If you do have the steps, but need help adding them to your CI, share the steps, and I'll see if I can help adding it.
I'm planning on consuming that Bootloader in the meshtastic-flasher tool ( see https://github.com/meshtastic/Meshtastic-gui-installer ) and I'd prefer having a stable endpoint with version. In other words, I'd like to know that bootloader release 1.2.3 has a date of xxx  and SoftDevice version yyy when I query the INFO_UF2.TXT file.

Hi @mkinney
The bootloader is not compiled here in Github. It is compiled somewhere in China on a local machine. We have the sources here only for reference.
But I can create releases here manually for the latest version.

Sources would be great, but not necessary.
That'd be awesome if they were added to a "manual" release. Thank you!

Also, please let me know when you get rid of the existing link for that zip as I'll need to change it, too. :-)

Wow. That was fast. Ignore my last question about the existing link. I'll change to the release file.
Can you add one more thing?
Can you add the info to the release note? (or at least the "Date"):
UF2 Bootloader 0.4.2 lib/nrfx (v2.0.0) lib/tinyusb (0.10.1-293-gaf8e5a90) lib/uf2 (remotes/origin/configupdate-9-gadbb8c7)
Model: WisBlock RAK4631 Board
Board-ID: WisBlock-RAK4631-Board
Date: Dec  1 2021
SoftDevice: S140 6.1.1

and the INFO_UF2.TXT file, too?
INFO_UF2.TXT

Otherwise, that release https://github.com/RAKWireless/WisBlock/releases/tag/0.4.2 looks great!

Ok, I will close this then.
Anyway we try to NOT update the bootloader too often. Only if there is a bug.


xRDP + XFCe4 = no shutdown/reboot buttons

Hi All,
I have been testing xRDP on kali linux which includes XFCE4 as the default display manager. On a local login XFCE4 has the startup shutdown buttons displayed correctly, however connecting via xRDP I get the desktop UI and everything but then I can only logout (shutdown/restart are greyed out).
this was on a fresh kali linux iso with the default settings and just installing the xRDP package from the default repository.
What could be the cause for this changing when connecting via xRDP?

I have confirmed the same issues apply for xubuntu 20.04.4 as well with the default XRDP installation.

It is managed by polkit. xrdp doesn't have a control on that.

@Xboarder56 - if you search the issues here for 'polkit' you'll find plenty of information related to your question.
We haven't documented this explicitly, as every desktop is different, and there are at least two versions of polkit in common use at the moment.
You're running polkit 0.105, so you need to set up one or more ini-style pkla files related to the polkit actions you wish to authorize.

Do you mean something like this?
polkit.addRule(function (action, subject) {   if ((action.id == "org.freedesktop.consolekit.system.restart" ||        action.id == "org.freedesktop.consolekit.system.stop")       && subject.isInGroup("plugdev")) {      return polkit.Result.YES;    } })

Hi All for future reference I solved this via the code block below and a reboot/polkit service restart.
cat << EOF >> /etc/polkit-1/localauthority/50-local.d/50-xrdp.pkla
[Allow users to shutdown from XRDP]
Identity=unix-user:*
Action=org.freedesktop.login1.power-off
ResultAny=yes

[Allow users to reboot from XRDP]
Identity=unix-user:*
Action=org.freedesktop.login1.reboot
ResultAny=yes
EOF

This is what worked for me in Debian 11 + xrdp. I've put his inside /etc/polkit-1/localauthority/50-local.d/50-xrdp.pkla
[Enable Reboot]
Identity=unix-group:*
Action=org.freedesktop.login1.reboot;org.freedesktop.login1.reboot-multiple-sessions
ResultAny=yes
ResultActive=no
ResultInactive=no

[Enable Shutdown]
Identity=unix-group:*
Action=org.freedesktop.login1.power-off;org.freedesktop.login1.power-off-multiple-sessions
ResultAny=yes
ResultActive=no
ResultInactive=no

fyi on future versions of polkit, *.pkla files are no longer supported. You need to create JS rules as *.rules files in `/etc/polkit-1/rules.d/.rules
For example, following this thread, you'd allow shutdown / reboot the following way (note that you should add a condition on subject.active if you care about ResultActive/ResultInactive) :
polkit.addRule(function(action, subject) {
  polkit.log(action + ", " + subject);
  if (~["org.freedesktop.login1.power-off","org.freedesktop.login1.power-off-multiple-sessions","org.freedesktop.login1.reboot","org.freedesktop.login1.reboot-multiple-sessions"].indexOf(action.id)) {
    return polkit.Result.YES;
  }
});

save this file as /etc/polkit-1/rules.d/50-xrdp.rules
Sorry for gravedigging, but I scratched my head for hours trying to understand why my .pkla rules were not working, while the directory structure for policykit has completely changed. Hope this helps someone as lost as me.


Ensure Flutter's Devicelab survives SALT package repo migration

https://saltproject.io/blog/salt-project-package-repo-migration-and-guidance/
It sounds like anything fetching packages from repo.saltproject.io will cease to work "by end of October 2024", which would be today.
In addition, the "Salt Project is dropping all packages older than Salt v3006", so we would need to ensure everything is using at least v3006.

I believe our mac bots are using v3002.

So the tarball here: https://packages.broadcom.com/artifactory/saltproject-generic/onedir/3006.0/salt-3006.0-onedir-linux-aarch64.tar.xz
Has the code I think we need. But it doesn't look like there is an ubuntu package that would install these all to the right system dirs.

bdero@ believes that we're actually already at v3006.3, at least on flutter-devicelab-linux-58

@kentnguyen99 I will find a macOS hostname for you to re-run the provisioning script on, but I first need to land this change to the script: https://github.com/flutter/cocoon/pull/4001

I landed a change to the SALT config in an effort to unblock provisioning a newer SALT client on macOS: https://dash-internal-review.git.corp.google.com/c/salt/+/2220

Ok, after pulling my change to update to a newer m2crypto python package, I now get the following error:
           ID: /etc/pki/flutter-devicelab-mac-10.mtv.corp.google.com.crt
     Function: x509.certificate_managed
       Result: False
      Comment: An exception occurred in this state: Traceback (most recent call last):
                 File "/opt/salt/lib/python3.10/site-packages/salt/state.py", line 2381, in call
                   ret = self.states[cdata["full"]](
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
                   ret = self.loader.run(run_func, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
                   return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
                   return _func_or_method(*args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1293, in wrapper
                   return f(*args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/states/x509.py", line 681, in certificate_managed
                   is_valid, invalid_reason, current_cert_info = _certificate_is_valid(
                 File "/opt/salt/lib/python3.10/site-packages/salt/states/x509.py", line 525, in _certificate_is_valid
                   required_cert_info = __salt__["x509.create_certificate"](
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
                   ret = self.loader.run(run_func, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
                   return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
                   return _func_or_method(*args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/modules/x509.py", line 1474, in create_certificate
                   if not any(certs):
               TypeError: 'NoneType' object is not iterable
      Started: 09:53:55.406025
     Duration: 261.358 ms
      Changes:

Note this is a slightly different stacktrace than what Kent hit in: https://github.com/flutter/flutter/issues/142627#issuecomment-1919922724
Pulling up the python code locally, here's the context:
1467         certs = __salt__["publish.publish"](
1468             tgt=ca_server,
1469             fun="x509.sign_remote_certificate",
1470             arg=salt.utils.data.decode_dict(kwargs, to_str=True),
1471             timeout=30,
1472         )
1473
1474         if not any(certs):
1475             raise salt.exceptions.SaltInvocationError(
1476                 "ca_server did not respond"
1477                 " salt master must permit peers to"
1478                 " call the sign_remote_certificate function."
1479             )

So invoking __salt__["publish.publish"]() is returning None, and we get a type error passing it to any(). However, I wonder if it's a bug in this code that it does not handle None, but that the underlying problem is what the raise on 1476 is referring to, that the ca_server did not respond.

Ok, after pulling my change to update to a newer m2crypto python package, I now get the following error:
           ID: /etc/pki/flutter-devicelab-mac-10.mtv.corp.google.com.crt
     Function: x509.certificate_managed
       Result: False
      Comment: An exception occurred in this state: Traceback (most recent call last):
                 File "/opt/salt/lib/python3.10/site-packages/salt/state.py", line 2381, in call
                   ret = self.states[cdata["full"]](
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
                   ret = self.loader.run(run_func, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
                   return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
                   return _func_or_method(*args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1293, in wrapper
                   return f(*args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/states/x509.py", line 681, in certificate_managed
                   is_valid, invalid_reason, current_cert_info = _certificate_is_valid(
                 File "/opt/salt/lib/python3.10/site-packages/salt/states/x509.py", line 525, in _certificate_is_valid
                   required_cert_info = __salt__["x509.create_certificate"](
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 159, in __call__
                   ret = self.loader.run(run_func, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1245, in run
                   return self._last_context.run(self._run_as, _func_or_method, *args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/loader/lazy.py", line 1260, in _run_as
                   return _func_or_method(*args, **kwargs)
                 File "/opt/salt/lib/python3.10/site-packages/salt/modules/x509.py", line 1474, in create_certificate
                   if not any(certs):
               TypeError: 'NoneType' object is not iterable
      Started: 09:53:55.406025
     Duration: 261.358 ms
      Changes:

Note this is a slightly different stacktrace than what Kent hit in: #142627 (comment)
Pulling up the python code locally, here's the context:
1467         certs = __salt__["publish.publish"](
1468             tgt=ca_server,
1469             fun="x509.sign_remote_certificate",
1470             arg=salt.utils.data.decode_dict(kwargs, to_str=True),
1471             timeout=30,
1472         )
1473
1474         if not any(certs):
1475             raise salt.exceptions.SaltInvocationError(
1476                 "ca_server did not respond"
1477                 " salt master must permit peers to"
1478                 " call the sign_remote_certificate function."
1479             )

So invoking __salt__["publish.publish"]() is returning None, and we get a type error passing it to any(). However, I wonder if it's a bug in this code that it does not handle None, but that the underlying problem is what the raise on 1476 is referring to, that the ca_server did not respond.

The Function: x509.certificate_managed is defined as:
{{ machine_tokend.cert_pem }}:
  x509.certificate_managed:
    - ca_server: {{ ca.ca }}
    - signing_policy: fuchsia-bot
    - public_key:  {{ machine_tokend.pkey_pem }}
    - CN: {{ grains['host'] }}
    - subjectAltName: "DNS: {{ grains['fqdn'] }}"
    - days_remaining: 30
    - backup: True
    - makedirs: True
    - require:
{% if grains['os'] == 'Ubuntu' or grains['os'] == 'Debian' %}
      - pip: pip3-m2crypto
{% elif grains['os'] == 'MacOS' %}
      - pip: m2crypto
{% endif %}
      - x509: {{ machine_tokend.pkey_pem }}

And - ca_server: {{ ca.ca }} is defined in https://dash-internal.googlesource.com/salt/+/refs/heads/main/salt/ca/map.jinja as:
    'ca': grains.master | replace(".endpoints.", ".c.") | replace(".cloud.goog", ".internal"),

Where grains.master = is the domain of the master, from go/flutter-salt#accessing-master-servers

Ok, I've been bad about updating this, updates from the past few days:

We got mac-10 (an intel CPU) updated with the script from https://github.com/flutter/cocoon/pull/4002, by running sudo salt-call state.apply multiple times, which I think is (unfortunately) how this worked previously.
When we tried with mac-11 (with an ARM CPU), we got a failure that SWIG wasn't installed. I believe this is a bug in the SALT state, where for M1 macs we don't require swig: https://dash-internal.googlesource.com/salt/+/refs/heads/main/salt/machine_tokend/init.sls#26. I'm blocked on fixing this because git cl upload doesn't work on this repo. I will follow up next week.


Add Array::with_nulls

Which issue does this PR close?

Closes https://github.com/apache/arrow-rs/issues/6528
Rationale for this change
Propose adding a new safe API to replace nulls
@tustvold  mentioned the potential implications of this API https://github.com/apache/arrow-rs/issues/6528#issuecomment-2401522424 here. I added an example to show what was going on
What changes are included in this PR?
Add Array::with_nulls
Are there any user-facing changes?
New API

I agree -- let's not do this. I have another idea that might help https://github.com/apache/arrow-rs/issues/6528#issuecomment-2449860007


Update grunt dependency range

Fix installation into downstream packages using npm@2 as detailed here:
http://gruntjs.com/blog/2016-04-04-grunt-1.0.0-released#peer-dependencies

:+1:


TransactionOutput seems to be ignored using functional style builder

I'm probably doing something wrong, but I'm struggling to debug this issue.
I am trying to code for a scenario where an NFT buyer sends ADA to a faucet account wallet address to purchase an NFT.  Then, I try to create a transaction signed by the faucet account and minting policy, which uses the UTxOs sent by the buyer as input and has 3 outputs including 1) the min ADA + MultiAsset/NFT paid to the buyer, 2) an ADA output paid to an artist address and 3) the change ADA paid to the faucet account address.
Following the functional example in the cardano-client-examples, I've done something similar except I'm not doing a multi-sig signing.
When the code below runs, it only gives two outputs and ignores the output to the artist described above.  I.e, the transaction successfully submits, but the faucet account receives all the change and there is no output sent to the artist address.
Due to the nature of how the functions are applied during the buildAndSign, I'm struggling to debug where things are failing.  Can you see anything that I'm doing wrong?
Thanks so much.
My code that sets up the transaction (please see comment about artist)
        MultiAsset multiAsset = multiAssetFactory.create(mintingPolicy, mintableAssets);
        NFTMetadata nftMetadata = nftMetadataFactory.create(mintingPolicy, mintableAssets);

        TransactionOutput mintOutput = transactionOutputUtils.getMintOutput(purchase.getSenderAddress(), multiAsset);

        TxOutputBuilder txOutputBuilder = createFromMintOutput(mintOutput);

        //This is where I try to add an artist payee, but seems to be ignored when it does the buildAndSign at the end
        transactionOutputUtils.getOutputsForIndividualPayees(campaign.getIndividualPayees(), mintCount)
                .forEach(out -> txOutputBuilder.and(createFromOutput(out)));

        TxBuilder txBuilder = txOutputBuilder
                .buildInputs(createFromUtxos(purchase.getUtxos(), faucetAddress))
                .andThen(mintCreator(mintingPolicy.getPolicyScript(), multiAsset))
                .andThen(metadataProvider(nftMetadata))
                .andThen((txBuilderContext, transaction) -> transaction.getBody().setTtl(invalidSlotHereafter))
                .andThen(feeCalculator(faucetAddress, 2))
                .andThen(adjustChangeOutput(faucetAddress, 2));

        return buildAndSign(txBuilder, signerFrom(faucetAccount).andThen(signerFrom(mintingPolicy)));

public TransactionOutput getMintOutput(String senderAddress, MultiAsset multiAsset) {
        Value mintValue = Value.builder()
                .coin(BigInteger.ZERO)
                .multiAssets(List.of(multiAsset)).build();

        return TransactionOutput.builder()
                .address(senderAddress)
                .value(mintValue).build();
    }

public List<Output> getOutputsForIndividualPayees(List<CampaignPayee> individualPayees, int mintCount) {
        List<Output> transactionOutputs = new ArrayList<>();
        for (CampaignPayee individual : individualPayees) {
            transactionOutputs.add(buildIndividualOutput(individual, mintCount));
        }
        return transactionOutputs;
    }
    private Output buildIndividualOutput(CampaignPayee individual, int mintCount) {
        return Output.builder()
                .address(individual.getAddress())
                .assetName(LOVELACE)
                .qty(individual.getPerUnitAmount()
                                .multiply(BigInteger.valueOf(mintCount)))
                .build();
    }

   protected Transaction buildAndSign(TxBuilder txBuilder, TxSigner txSigner) {
        return TxBuilderContext.init(utxoSupplier, protocolParamsSupplier)
                .buildAndSign(txBuilder, txSigner);
    }

@woofpool
I think the error is in the below code. For Individual payee outputs, you are creating TxOutputBuilder for each payee, but  you are not assigning the new TxOutputBuilder instance to txOutputBuilder variable. Because, if you check the "and" method in cardano-client, it returns a new instance of TxOutputBuilder  to chain another output.
Existing code:
//This is where I try to add an artist payee, but seems to be ignored when it does the buildAndSign at the end
        transactionOutputUtils.getOutputsForIndividualPayees(campaign.getIndividualPayees(), mintCount)
                .forEach(out -> txOutputBuilder.and(createFromOutput(out)));

Try this:
//This is where I try to add an artist payee, but seems to be ignored when it does the buildAndSign at the end
for(TransactionOutput out:transactionOutputUtils.getOutputsForIndividualPayees(campaign.getIndividualPayees(), mintCount)) {
          txOutputBuilder = txOutputBuilder.and(createFromOutput(out)));

}

Let me know if you still face the issue.

Hah, I totally missed the most obvious thing.  Thanks for taking the time to point out the issue!


Document that page store should not be mutated

Describe the bug
I've spent an embarrassing amount of time trying to track down a bug I had where the page wasn't updating when I was clicking a link. Turns out mutating the page from $app/stores was my problem. I was trying to generate a bunch of links which had the same path but different query parameters. In my `src/routes/example.svelte' I had something like:

Example 1
Example 2
Example 3

I was mutating the existing search params because I wanted to keep the other query parameters that were present. Turns out that URLSearchParams object is used by the SvelteKit router because when clicking one of the links the browser URL would change, but nothing on the page would change. The fix was easy, I just need to clone before I change the parameter:
const searchParams = new URLSearchParams($page.url.searchParams);

I'm unsure if cloning before exposing it to the user should be done by SvelteKit to prevent these kinds of errors, it probably would not be worth the small number user errors it would prevent.
Might be helpful to just put a sentence or two in an orange box on the docs page https://kit.svelte.dev/docs/modules#$app-paths that says mutating the page can result in some weird router bugs, and that things should be cloned before calling methods that modify them.
Reproduction
https://stackblitz.com/edit/sveltejs-kit-template-default-rvd69b?file=src/routes/visit.svelte
Navigate from the homepage to "Visit 1". Then click the "Visit 2" link, and watch nothing happen.
Logs
NA

System Info
NA

Severity
annoyance
Additional Information
NA

Although, now that I'm thinking about this more, "I overwrote the value for one of the frameworks global variables and weird bugs started happening" is really not a solvable problem.


check if matcher's first arg is Request

A fetch could be called with Request param, instead of plain string url.
This code will fail to match
fetchMock.mock('http://domain1', 200);

if fetch called like this:
fetch(new Request('http://domain1'));

I've added the fix, which will match such calls.

Thanks for fixing this. Aside from my comments it looks good

All is done! Thank you for your comments.

Thanks for the changes. I'll release once I've tweaked the documentation


fix: populate should run twice

as we have generated secrets which can only be generated when other secrets are populated (e.g. maven settings, basic auth htpasswd etc)
Signed-off-by: James Strachan<EMAIL_ADDRESS>

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To complete the pull request process, please assign jstrachan
You can assign the PR to them by writing /assign @jstrachan in a comment when ready.
The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@jstrachan: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pr-build
9f2a87a528c9f3c74ea17a376b23e8a09e8d0d40
link
/test this

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the jenkins-x/lighthouse repository. I understand the commands that are listed here.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jstrachan
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jstrachan]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Unable to create machine with custom SSH user

λ docker-machine create --driver=vmwareworkstation --vmwareworkstation-disk-size 40000 --vmwarework station-ssh-user festum --vmwareworkstation-ssh-password mypassword --vmwareworkstation-memory-size 1536 vm0
Running pre-create checks...
Creating machine...
(f) Copying C:\Users\Festum\.docker\machine\cache\boot2docker.iso to C:\Users\Festum\.docker\machine\machines\f\boot2docker.iso...
(f) Creating SSH key...
(f) Creating VM...
(f) Creating disk 'C:\Users\Festum\.docker\machine\machines\f\f.vmdk'
(f) Virtual disk creation successful.
(f) Starting f...
(f) Waiting for VM to come online...
Waiting for machine to be running, this may take a few minutes...
Detecting operating system of created instance...
Waiting for SSH to be available...
Error creating machine: Error detecting OS: Too many retries waiting for SSH to be available.  Last error: Maximum number of retries (60) exceeded

@Festum Can you also put the debug logs?
Thanks

Is there any update on this issue, perhaps? I am experiencing the same issue on Windows 7, Docker Toolbox with VMware Workstation Pro 12.5.

@paschal77 It did not move forward as I never got the logs, could you please provide debug logs?

@pecigonzalo Sorry, but I am not able to find anything that might look like debug logs. Can you point me in the right direction? Additionally, I found a switch you can use that will get past the SSH error (--native-ssh), requesting that the driver use the built-in SSH capability, but now I am receiving another error:
"Error creating machine: Error detecting OS: OS type not recognized"
Have you seen this one? I know it doesn't pertain to this same SSH issue, so I'll create a new one. Just wanted to post about the --native-ssh flag that moved me past the first issue.

"Error creating machine: Error detecting OS: OS type not recognized" I believe its an error of docker-machine, read: https://github.com/docker/machine/issues/3586.
For debug logs: docker-machine --debug <THE REST OF YOUR COMMAND>

@pecigonzalo Sorry for late response.
λ docker-machine --debug create --driver=vmwareworkstation --vmwareworkstation-disk-size 40000 --vm wareworkstation-ssh-user festum --vmwareworkstation-ssh-password mypassword --vmwareworkstation-memory-size 1536 f1
Docker Machine Version:  0.8.2, build e18a919
Found binary path at C:\Program Files\Docker Toolbox\docker-machine-driver-vmwareworkstation.exe
Launching plugin server for driver vmwareworkstation
Plugin server listening at address <IP_ADDRESS>:12083
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(flag-lookup) Calling .GetMachineName
(flag-lookup) Calling .DriverName
(flag-lookup) Calling .GetCreateFlags
Found binary path at C:\Program Files\Docker Toolbox\docker-machine-driver-vmwareworkstation.exe
Launching plugin server for driver vmwareworkstation
Plugin server listening at address <IP_ADDRESS>:12087
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(f1) Calling .GetMachineName
(f1) Calling .DriverName
(f1) Calling .GetCreateFlags
(f1) Calling .SetConfigFromFlags
Running pre-create checks...
(f1) Calling .PreCreateCheck
(f1) DBG | local Boot2Docker ISO version:  v17.05.0-ce
(f1) Calling .GetConfigRaw
Creating machine...
(f1) Calling .Create
(f1) DBG | local Boot2Docker ISO version:  v17.05.0-ce
(f1) Copying C:\Users\Fes\.docker\machine\cache\boot2docker.iso to C:\Users\Fes\.docker\machine\machines\f1\boot2docker.iso...
(f1) Creating SSH key...
(f1) Creating VM...
(f1) Creating disk 'C:\Users\Fes\.docker\machine\machines\f1\f1.vmdk'
(f1) Virtual disk creation successful.
(f1) Starting f1...
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe start C:\Users\Fes\.docker\machine\machines\f1\f1.vmx nogui
(f1) Waiting for VM to come online...
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | SSH Daemon not responding yet: dial tcp <IP_ADDRESS>:22: i/o timeout
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) DBG | Got an ip: <IP_ADDRESS>
(f1) DBG | Creating Tar key bundle...
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe -gu docker -gp tcuser directoryExistsInGuest C:\Users\Fes\.docker\machine\machines\f1\f1.vmx /var/lib/boot2docker
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe -gu docker -gp tcuser CopyFileFromHostToGuest C:\Users\Fes\.docker\machine\machines\f1\f1.vmx C:\Users\Fes\.docker\machine\machines\f1\userdata.tar /home/docker/userdata.tar
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe -gu docker -gp tcuser runScriptInGuest C:\Users\Fes\.docker\machine\machines\f1\f1.vmx /bin/sh sudo /bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar && sudo tar xf /var/lib/boot2docker/userdata.tar -C /home/docker/ > /var/log/userdata.log 2>&1 && sudo chown -R docker:staff /home/docker
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe -gu docker -gp tcuser enableSharedFolders C:\Users\Fes\.docker\machine\machines\f1\f1.vmx
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe -gu docker -gp tcuser addSharedFolder C:\Users\Fes\.docker\machine\machines\f1\f1.vmx Users C:\Users\
(f1) DBG | [ ! -d /Users ]&& sudo mkdir /Users;[ ! -d /c ]&& sudo mkdir -p /c;[ ! -d /c/Users ]&& sudo ln -s /Users /c/Users;[ -f /usr/local/bin/vmhgfs-fuse ]&& sudo /usr/local/bin/vmhgfs-fuse -o allow_other .host:/Users /Users || sudo mount -t vmhgfs .host:/Users /Users
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe -gu docker -gp tcuser runScriptInGuest C:\Users\Fes\.docker\machine\machines\f1\f1.vmx /bin/sh [ ! -d /Users ]&& sudo mkdir /Users;[ ! -d /c ]&& sudo mkdir -p /c;[ ! -d /c/Users ]&& sudo ln -s /Users /c/Users;[ -f /usr/local/bin/vmhgfs-fuse ]&& sudo /usr/local/bin/vmhgfs-fuse -o allow_other .host:/Users /Users || sudo mount -t vmhgfs .host:/Users /Users
(f1) Calling .GetConfigRaw
(f1) Calling .DriverName
(f1) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(f1) Calling .GetState
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe list
Detecting operating system of created instance...
Waiting for SSH to be available...
Getting to WaitForSSH function...
(f1) Calling .GetSSHHostname
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe list
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) Calling .GetSSHPort
(f1) Calling .GetSSHKeyPath
(f1) Calling .GetSSHKeyPath
(f1) Calling .GetSSHUsername
Using SSH client type: external
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i C:\Users\Fes\.docker\machine\machines\f1\id_rsa -p 22] C:\fe0\bin\SmartGit\git\usr\bin\ssh.exe <nil>}
About to run SSH command:
exit 0
SSH cmd err, output: exit status 255:
Error getting ssh command 'exit 0' : Something went wrong running an SSH command!
command : exit 0
err     : exit status 255
output  :

Getting to WaitForSSH function...
(f1) Calling .GetSSHHostname
(f1) DBG | executing: C:\Program Files (x86)\VMware\VMware VIX\vmrun.exe list
(f1) DBG | MAC address in VMX: 00:0c:29:dd:19:4a
(f1) DBG | IP found in DHCP lease table: <IP_ADDRESS>
(f1) Calling .GetSSHPort
(f1) Calling .GetSSHKeyPath
(f1) Calling .GetSSHKeyPath
(f1) Calling .GetSSHUsername
Using SSH client type: external
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none<EMAIL_ADDRESS>-o IdentitiesOnly=yes -i C:\Users\Fes\.docker\machine\machines\f1\id_rsa -p 22] C:\fe0\bin\SmartGit\git\usr\bin\ssh.exe <nil>}
About to run SSH command:
exit 0
.
.
.

This seems similar to #47 could you give my last comment there a look?

I got this one too, on Windows 10 with Vmware Workstation 12.5.7.

Im running into this too and I believe it's because this driver is always trying to use user docker password tcuser to run the vmrun.exe commands against the VM created (in VMWare workstation in my case).   It also is attempting to copy files to a home/docker folder which doesn't exist when there is no docker user.
https://github.com/pecigonzalo/docker-machine-vmwareworkstation/blob/master/workstation.go#L343-L353
So although there is also an issue of the VM needing to have VMTools installed, it also seems there may be an additional requirement that this plugin should be able to take parameters for the credentials used via vmrun.exe to get those initial commands run (or use the already supplied --vmwareworkstation-ssh-user and --vmwareworkstation-ssh-password?)
(core-os) DBG | executing: c:/Program Files (x86)/VMware/VMware Workstation/vmrun.exe -gu docker -gp tcuser directoryExistsInGuest C:\Users\scarecrow420\.docker\machine\machines\core-os\core-os.vmx /var/lib/boot2docker
(core-os) DBG | executing: c:/Program Files (x86)/VMware/VMware Workstation/vmrun.exe -gu docker -gp tcuser CopyFileFromHostToGuest C:\Users\scarecrow420\.docker\machine\machines\core-os\core-os.vmx C:\Users\scarecrow420\.docker\machine\machines\core-os\userdata.tar /home/docker/userdata.tar
(core-os) DBG | executing: c:/Program Files (x86)/VMware/VMware Workstation/vmrun.exe -gu docker -gp tcuser runScriptInGuest C:\Users\scarecrow420\.docker\machine\machines\core-os\core-os.vmx /bin/sh sudo /bin/mv /home/docker/userdata.tar /var/lib/boot2docker/userdata.tar && sudo tar xf /var/lib/boot2docker/userdata.tar -C /home/docker/ > /var/log/userdata.log 2>&1 && sudo chown -R docker:staff /home/docker
(core-os) DBG | executing: c:/Program Files (x86)/VMware/VMware Workstation/vmrun.exe -gu docker -gp tcuser enableSharedFolders C:\Users\scarecrow420\.docker\machine\machines\core-os\core-os.vmx
(core-os) DBG | executing: c:/Program Files (x86)/VMware/VMware Workstation/vmrun.exe -gu docker -gp tcuser addSharedFolder C:\Users\scarecrow420\.docker\machine\machines\core-os\core-os.vmx Users C:\Users\

I better close it before archiving.


⚠ Bofrost.lu has degraded performance

In 92ad291, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1291 ms

Resolved: Bofrost.lu performance has improved in e7de333 after 23 minutes.


Window does not close properly when close-window button is pressed

The window does not close properly when the close-window button is pressed.

Looks like this is fixed by #7


Fixed NPE in NetworkController when BluetoothAdapter is null

I've got that issue on a GenyMotion Device. I don't know if that's the reason, in any case it should not crash since now I can't use the NetworkModule.

Yea, forgot about emulators.
Thanks for contributing!

No worries. Is this automatically in the 0.2.0 version or in 0.3.0-SNAPSHOT?

Never mind I took a look at the commit history. Thanks for pushing the new version!


Fix gui segfault caused by bitcoin/bitcoin#22216

Reported by Hennadii Stepanov https://github.com/bitcoin/bitcoin/pull/22216#issuecomment-859790682
Fixes bitcoin/bitcoin#22227

Why tests and CI did not catch it?

Tests would not catch it because tests initialize context differently than the gui app.
I didn't catch it because I only tested the gui with #22216 and #22219 together. They were initially part of the same PR and #22219 also fixes this bug.

Tests would not catch it because tests initialize context differently than the gui app.

Is there a way to improve tests so that they initialize in the same way?

Is there a way to improve tests so that they initialize in the same way?

One way would be to make the python tests invoke bitcoin-qt.


Mm 27207 e2e archived channels i 2

Summary
MM-T1675 CTRL/CMD+K list private archived channels you are a member of
Ticket Link
MM-27207
Tests:
https://mattermost.atlassian.net/projects/MM?selectedItem=com.atlassian.plugins.atlassian-connect-plugin%3Acom.kanoah.test-manager__main-project-page#!/testCaseMM-T1674
Related Pull Requests
Requires https://github.com/mattermost/mattermost-webapp/pull/6358
Screenshots

It looks like you might've pushed something wrong. This PR includes the changes from your other one.

It looks like you might've pushed something wrong. This PR includes the changes from your other one.

yes, this is the continuation of that one, it only add one more test, but relies on the previous one. I'll add a do not merge label

/update-branch

Hi @Willyfrog
I am confused. I am seeing the changes similar to the PR https://github.com/mattermost/mattermost-webapp/pull/6373. Can you please clarify?

Assuming I've constructed the URL right, this PR is based on the previous one so it contains both sets of changes until that's merged. You can see the changes specific to this PR here: https://github.com/Willyfrog/mattermost-webapp/compare/Willyfrog:MM-27207_e2e-archived-channels-I...MM-27207_e2e-archived-channels-I_2

/update_branch

Will try to auto merge this PR once all tests and checks are passing. This might take up to an hour.

Trying to auto merge this PR.

Pull Request successfully merged
SHA: c79366d5ba124dd42fb42e913580867d4c50ef02


Update vignette section on cut-points with new published cut-points

It would be good if we could update the list of published cut-points in the GGIR vignette:
Currently missing are:

Migueles 2021 - https://pubmed.ncbi.nlm.nih.gov/34064790/
Sanders - https://pubmed.ncbi.nlm.nih.gov/30558487/
Fraysse - https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7843957/

@jhmigueles are there more publications that I missed?

I am now incorporating the above cut-points. @jhmigueles if you know more, please let me know.


Updated/new documentation for custom nodes, CLI, tests

Updated the main README to include:

A table of badges for existing/TBD tests
Changed wording to reflect what PyWorkflow aims to do, heavily influenced by the Milestone 2 report.
Updated code styles to code-blocks instead of inline code snippets.
Reflects some TBD features like Docker functionality and still in-progress CLI features.

Adds new doc files for:

CLI: purpose, syntax, and using stdin/stdout
Test: moved most of the details from the main README to a separate file. To be expanded later.
Custom nodes: how to write a custom node with examples and greater detail than previously existed.

Labeling this as a work in progress since some of this reflects some functionality that's not yet finished and may be subject to change.

Really great documentation!


A gift for vis.

that's great @rodolphito

:tada: This PR is included in version 3.4.8 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Import style

We have diverging import styles again:

I reformatted everything by Twitter import style around the time we started enforcing scalafmt.
Several users are using the default IntelliJ style, which groups Java and Scala separately.

My preferences are, in descending importance:

Low friction for new contributors
Consistency
The Twitter style, because it's much easier to automate across editors

@aeons is looking into whether we can check in an IntelliJ style that enforces the Twitter style out of the box.  If that doesn't work, we should squabble here, and then run a reset, because we're already inconsistent.

Oh, cool.  While I was bloviating, @aeons was fixing. See #1896.

I personally prefer the Twitter style, but it's not a big headache. I don't think most people really notice, but just stick with the default.


Autocomplete: Lack of visual cue for results

This issue is from the accessibility audit of the Design System website by DAC in July 2024.
DAC's description

Page: Home – GOV.UK Design System
WCAG reference: none (Usability)
Issue ID: DAC_Visual_Cues_Usability_03

When a user inputs data into the text field additional content will be revealed below. Our low vision analyst reported that when viewing the page within a highly magnified state it is difficult to determine if there is new content being added to the page and that it would be helpful if there were additional cues provided to inform them of this behaviour.

DAC's proposed solution
We suggest implementing a chevron associated to the text input to indicate to users that there is additional content being displayed below.
Other potential solutions
There might be other solutions.
If the chevron is always there, the component might be misunderstood to be a select box.
This needs some nuanced design thinking.
Additional instances
This component appears on every page but is a single component, therefore only needs to be fixed once.
It uses the accessible autocomplete component.
Needed roles
Designer, frontend developer

Hello I have done some sketching on these. I need to catch-up with @CharlotteDowns and designers in the team to get a review on this. Designs are here if you want to have a look at in the meantime. https://www.figma.com/design/n8Jvs96qFFcKOw0qPe1se5/DAC-Accessibility-Issue?node-id=3-17&t=G7MQOd7VT5EKXhlg-1

Hello,
I have applied high contrast colours to the solution we are proposing. Attaching the images below, more could be found here as well [(https://www.figma.com/design/n8Jvs96qFFcKOw0qPe1se5/DAC-Accessibility-Issue?node-id=3-17&t=nYLbHvGnE2svut3I-1
)]
I have added some comments on the figma file. I have some concerns especially with the expanding card after the search. I am not sure if it's explicit enough and it's also allowing users to see the search below.

Alt: Design system landing page, search function with a focus state highlighted.

Alt: Design system landing page, search function with a focus state off

@selfthinker if you can test it that would be amazing.


Used 'immutable' instead of 'constant' for keccak Variables

Usage of 'immutable' rather than 'constant' with variables storing the keccak hash saves some amount of gas.
Hope these links be worth it:

https://gist.github.com/grGred/9bab8b9bad0cd42fc23d4e31e7347144#change-constant-to-immutable-for-keccak-variables
https://github.com/ethereum/solidity/issues/9232#issuecomment-646131646

I see – in normal situations you want to use constant since the optimizer can see it. Why can't the optimizer see that these keccak256s are static and preoptimize them?

Good question, I feel it's just the way optimizer works..Can't really define why it works this way. However, on asking AI about this, got this answer:

The Solidity optimizer is designed to perform a range of optimizations to reduce gas costs and improve contract efficiency. However, there are certain limitations to what the optimizer can optimize, including the pre-optimization of keccak256 operations on constant values.
The reason the optimizer cannot pre-optimize keccak256 operations on constant values is because the keccak256 function is a cryptographic hash function that operates on runtime values. The optimizer works primarily with compile-time values and cannot evaluate the runtime values during the compilation process.
In the case of constant variables, although their values are known at compile time, the keccak256 function still needs to be executed at runtime to compute the hash. This prevents the optimizer from optimizing the keccak256 operation because it cannot determine the runtime value of the constant variable during the compilation phase.
Furthermore, the Solidity optimizer primarily focuses on optimizing the bytecode produced by the Solidity compiler, rather than attempting to optimize the actual execution of cryptographic operations. Its goal is to reduce unnecessary operations, optimize storage access, and streamline the bytecode structure. Pre-optimizing keccak256 operations on constant values falls outside the scope of these bytecode-level optimizations.
While the Solidity optimizer is a powerful tool, it has its limitations. It's important to be aware of these limitations and consider them when writing and optimizing your Solidity code.

Moreover, many repositories kind of used this way...So there must be a reason for it. I will suggest reading some issues linked in https://github.com/ethereum/solidity/issues/9232#issuecomment-646131646
Probably you will find something interesting there in the discussions related to this

looks good, needs to be updated to support premint v2 signatures

This diff isn't possible given the way our contracts are structured:
Library cannot have non-constant state variables(9957)

Immutable variables can only exist on a contract level and these are declared on a library level. One thing we can do is to calculate those values ourselves, however this only exists in L2 state given the way we've structured our attribution contracts so the impact is lower.
We'll keep this in mind in the future.


Uninstallation issue from Palette Manager

Problem

I am trying uninstall this node from Node-RED palette manager

Current behavior
Its throwing error during uninstallation

Expected behavior
It should get uninstall properly without error
Minimal reproduction of the problem with instructions

Install node-red-contrib-modbus node from palette manager
Drag and Connect to any server from TCP/Serial and Deploy the node-red
Delete the node and configuration node and Deploy the node-red
Try to uninstall the node from palette manager

Your Environment

Device :

( ) Windows: v 10

Description of the connecting Modbus system:

Name   : Modbus Simulator

node-red-contrib-modbus version: v5.13.3

Node: (min. 10.x)
node --version = v10.15.0

Hi, please take care on Win10, that username has no special character in it like a whitespace. That is sometimes not working from nodejs install and uninstall. Did you get that issue while install and uninstall from your CMD as well? Please check that points! ;)

Yes, the username does not has any special character. And I am getting this error from CMD as well if Node-RED is running.

ERRNO 4048 is out of scope here and looks like a problem with your NPM installation. You could try:
1.)
npm cache verify
2.) follow the instructions to re-install https://www.npmjs.com/package/npm-reinstall


Description guidelines: Suggestions from FArekkusu

Follow-up on #176. Please use this issue when any further discussion is necessary.
Deploy preview: here.

Many green check marks, so merging.


Check whether bare/nonbare episode is still needed

I just did few tests on my hard drive with bare/nonbare and some of my assumptions about it were wrong. I need to test a bit more but possibly we can avoid that part all together. Opening this issue so that I won't forget.

I recommend to skip/drop this episode.

Agree... it would be useful for a later practical advice section but for its current position, unnecessary complexity.
Showing that "any ssh server can become a git remote" is a good thing to teach, and could even become an exercise.

I can send a PR removing this episode if @blankdots agrees.

ok :+1: - Or we can have it optional ?

OK I will do the following:

in instructor guide mention that this is optional
move this as last episode to prevent instructors who are not super familiar with the material to "waste time" trying to teach this (I never had time to do this)


Update header for x-forwarded-host to be MDTP

@amaalali I think this PR can be closed now that we've changed the strategy for this header


[Enum request] Table 435 "IC Inbox Sales Line"

Could you please change "Document Type" field to an enum.
Thank you.

Implemented recently. please check latest builds for master

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


installation path as specified by the user (cmd arg or env var)

Fixes #6 and  #7

Looks great. Thanks!


Invariant violation List view has been removed from React Native

It is not working in react native version 0.6

Thanks for reporting, this has been solved by #48


python3Packages.sagemaker: 2.28.0 -> 2.29.0

Motivation for this change
Update
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[X] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[X] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[X] Ensured that relevant documentation is up to date
[X] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 115432 at 56964bcb run on aarch64-linux 1

2 packages built:

python38Packages.sagemaker
python39Packages.sagemaker


Release action

Tested against my own repository, there are two main issues:

Can't restrict who can trigger the workflow_dispatch, other than just who can write to the repo
Need to use GITHUB_TOKEN of user that can override branch protection settings (the default does not). I'm hesitant to automate that as it could potentially be abused.

Codecov Report

Merging #18 (7e61739) into main (2fbccc6) will not change coverage.
The diff coverage is n/a.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@           Coverage Diff           @@
##             main      #18   +/-   ##
=======================================
  Coverage   43.41%   43.41%
=======================================
  Files         435      435
  Lines       32688    32688
  Branches     8244     8244
=======================================
  Hits        14193    14193
  Misses      18446    18446
  Partials       49       49

Flag
Coverage Δ

unit
43.41% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Support for proper parsing of phpunit junit.xml output

merged William Petit changes to support suite-in-suite embedding
added suite Properties fulfillment from attributes (like it already was for testcase)
added test for that

Would it make any sense to flatten the structure into something like this:

That don't make sense for my use case.
That will give /untitled/tests.SampleTest.SampleTest::testB in an example PHPUnit file which is a mess of original command line tests selector, class name, and test method name. Don't really want to parse-out those parts from the flattened name in production code.

Apologies for the delay @ekharchenko-avito. Thank you so much for your contribution! 🎉


As for unfreezing this, if we support only the latest four versions, we're just waiting for Go 1.18 to unfreeze this.


[Dialog] Dynamically rendered dialog content rendering a form triggers form submit

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Current behavior 😯
When creating a form in a dialog after initialization with a , the form submit is called without the button being clicked.
Expected behavior 🤔
The form should wait to submit until the button is interacted with
Steps to reproduce 🕹
Steps:
https://codesandbox.io/s/cold-dawn-qzrg5q?file=/src/Demo.tsx

Render a dialog in a functional component with title, content and actions that depend on a useState variable
Change the state so a new form with a <button type="submit" is rendered
Form will submit when it shouldn't

Context 🔦
I'm trying to render a dialog that if a member chooses a specific option, they need to fill in a few extra pieces of information so we don't submit, but take them to a new dialog where they can enter this info.
Your environment 🌎
I encountered the bug on 4.11.0, but have re-created it in the sandbox on latest. Happens for me on a Windows machine in Chrome and Firefox, windows 11 Enterprise Version 10.0.22000 Build 22000.

This doesn't look like a MUI issue.
You can avoid the undesired event propagation in many different ways:

Add event.preventDefault() to the advanceState callback:

const advanceState = useCallback((event) => {
    event.preventDefault();
    set(State((state) => state + 1);
  }, []);

Assign keys to the fragments in each of the steps:

case 0:
  return (
    <Fragment key="step-1">
      ...
    </Fragment>
  );
case 1:
  return (
    <Fragment key="step-2">
      ...
    </Fragment>
  );

Extract each fragment into its own component:

const Step1 = ({ advanceState }) => (
  <>
    ...
  </>
);

const Step2 = ({ onSubmit }) => (
  <>
    ...
  </>
);

const renderContent = () => {
  switch (state) {
    case 0:
      return <Step1 advanceState={advanceState} />;
    case 1:
      return <Step2 onSubmit={onSubmit} />;
    default:
      return
Final step
;
  }
};

Thank you @igordanchenko! I've done a deeper dive on react components, and now understand where I was going wrong.


Add trend graph to infrastructure > client runs

Note: This issue is still in the product/ux phase and is not ready for engineering work, though as always, comments are welcome.
Overview
A customer mentioned that the only reason they still use manage is for the client runs trend graph right after a deploy. Since we already have a trend graph built for compliance it may be possible to use that same thing for client runs. More details coming soon...
Open Questions

what is the eng effort involved?
should we add an overview tab like in compliance and put the trend graph there along with moving the donut chart there?

this work has been deprioritized, so closing.


the bundle command doesn't work with the rake package

Issue description
There seems to be a few issues with rake and bundle:

The bundler and rake package have a conflicting bundle command
The bundle command in rake is broken, the wrapper sets environment variables such as BUNDLE_GEMFILE that make it impossible to use
rake runs rakefiles with an unwrapped bundle in the PATH
The wrapper for rake also sets BUNDLE_* environment variables, making it impossible to use bundle in a rakefile

Steps to reproduce
rake comes with bundle. Maybe it shouldn't?
$ nix-env -iA nixos.rake
collision between ‘/nix/store/n2gn7ypf9q3ikl1sd7h4m6y065shx6l2-rake-11.1.1/bin/bundle’ and ‘/nix/store/7kac6gqigv4gppm9zvsbcyjy10ns7d70-bundler-1.14.6/bin/bundle’;

The bundle command it ships with doesn't work. But the one in the bundler package does:
$ /nix/store/n2gn7ypf9q3ikl1sd7h4m6y065shx6l2-rake-11.1.1/bin/bundle config gemfile
Set via BUNDLE_GEMFILE: "/nix/store/cb368ag4q1pxgfry3gwrakjrrijra50b-gemfile-and-lockfile/Gemfile"

$ /nix/store/7kac6gqigv4gppm9zvsbcyjy10ns7d70-bundler-1.14.6/bin/bundle config gemfile
You have not configured a value for `gemfile`

The bundle in PATH inside a rakefile is not wrapped and doesn't work:
$ cat Rakefile
task :default do sh 'which bundle' end
$ rake
/nix/store/gvj0hbkqdnaafgfv6vhcr96v05ixh2jg-rake-11.1.1/lib/ruby/gems/2.3.1/bin/bundle

Even using a working bundle fails, because the wrapper for rake sets BUNDLE_GEMFILE and other environment variables.
$ cat Rakefile
task :default do sh '/nix/store/7kac6gqigv4gppm9zvsbcyjy10ns7d70-bundler-1.14.6/bin/bundle config gemfile' end
$ rake
Set via BUNDLE_GEMFILE: "/nix/store/5dpc159y8m98l2xymrhrfy9gjkmk8jkl-gemfile-and-lockfile/Gemfile"

Technical details

System: NixOS
Nix version: 1.11.4
Nixpkgs version: 17.09pre106916.c5badb123a

The problem is that you cannot currently have 2 ruby programs in the same environment (user or system) as they will clash, which is what you are seeing here.
The way to work around that is to do the following:
a) Only stick bundler in your environment as you will need this to bootstrap the remaining ruby bits
b) Create a Gemfile that references rake and whichever other gems you need
c) Use direnv in the directory with the Gemfile so that all gems are self-contained.
It's really quite ugly, yes, but that's how I'm doing it here.

Are there any updates on this issue, please

I think this is safe to close.


Stop using rustache for shader templating due to regex dependency

Regex is a large crate. Let's stop using it.

Also, we have two versions of it in the binary, it seems.

Yeah, env_logger depends on regex 1, rustache on regex 0.1 (also there are two versions of env_logger...)


Add installation instructions

I've created a FreeBSD port that's in the official port collection now. These changes reflect that and also add general cargo install instructions, which are not all too obvious for users.

Thanks for packaging for FreeBSD! I had some uncommitted documentation and benchmark updates in my local repo, and did some more housekeeping for a new release, so closing this one but you'll find your request implemented in main :).


Visual Studio Code Extension should download latest solang binary for windows, mac, or linux

Current the vscode extension requires the user to download the solang binary and specify it in the preferences.
Instead, the typescript code should:

Check github api for latest release https://api.github.com/repos/hyperledger-labs/solang/releases/latest
Check if version is already downloaded (output from "solang --version")
Download correct binary for platform (windows, mac, or linux)
Show window with progress bar ("Downloading Solang Solidity Compiler version X...")
Save binary
Run this binary as language server

More information:

Retrieving latest release: https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
Other extensions like rust analyzer do the same things, maybe their source can provide inspiration
Visual Studio Code extension source code is here https://github.com/hyperledger-labs/solang/blob/master/vscode/src/client/extension.ts
Extension: https://marketplace.visualstudio.com/items?itemName=solang.solang
Documentation on extension https://solang.readthedocs.io/en/latest/extension.html
Rust analyzer does something similar, this could be used as inspiration: https://github.com/rust-analyzer/rust-analyzer/blob/master/editors/code/src/main.ts

Hi; I saw this bounty on gitcoin and would like to work on this. Does the bounty-awaiting-approval label mean the task is open for PRs or should I wait for confirmation?

@Web3Foundation please approve @mul53, thank you

@seanyoung do you have a telegram handle for easier communication?

It might be easier to use this channel https://chat.hyperledger.org/channel/solang

@seanyoung i see something else working on this, is there a mistake?

@mul53 the bounty is assigned to you, rest assured. I don't know why @xf3rno made a start on this (I don't know this person), this must be some sort of mistake.

@seanyoung I'm new to gitcoin and wasn't aware the bounty would be assigned. I assumed the best PR gets

@Web3Foundation the issue has been resolved by https://github.com/hyperledger-labs/solang/pull/387
Thank you @mul53, great work!

Current the vscode extension requires the user to download the solang binary and specify it in the preferences.
Instead, the typescript code should:

Check github api for latest release https://api.github.com/repos/hyperledger-labs/solang/releases/latest
Check if version is already downloaded (output from "solang --version")
Download correct binary for platform (windows, mac, or linux)
Show window with progress bar ("Downloading Solang Solidity Compiler version X...")
Save binary
Run this binary as language server

More information:

Retrieving latest release: https://gist.github.com/lukechilds/a83e1d7127b78fef38c2914c4ececc3c
Other extensions like rust analyzer do the same things, maybe their source can provide inspiration
Visual Studio Code extension source code is here https://github.com/hyperledger-labs/solang/blob/master/vscode/src/client/extension.ts
Extension: https://marketplace.visualstudio.com/items?itemName=solang.solang
Documentation on extension https://solang.readthedocs.io/en/latest/extension.html
Rust analyzer does something similar, this could be used as inspiration: https://github.com/rust-analyzer/rust-analyzer/blob/master/editors/code/src/main.ts

it would help if the solang-mac-intel binary doesnt download and appear as a 'document' file type


Link to the actual machine-wide installer as there's so many versions its confusing...

Can it be added somewhere on the page?
Is it: https://go.microsoft.com/fwlink/?linkid=844652 ? or https://go.microsoft.com/fwlink/?linkid=2083517 ?

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

ID: 087b8ed9-0b08-88a2-825f-727915801554
Version Independent ID: afd3bb47-f8a7-d1eb-a790-ff49c0794d2f
Content: Install the sync client per machine
Content Source: OneDrive/per-machine-installation.md
Service: one-drive
GitHub Login: @kaarins
Microsoft Alias: kaarins

@mattsmacblog  Thank you for submitting feedback and contributing to the docs. We are currently investigating this.
@officedocsbot assign @scanum

@mattsmacblog the link to the correct installer is already on that page, it's under the "Requirements" section if you click the link "see New OneDrive sync client release notes"


Created CONTRIBUTING.md file in utopia-php/system

Issue #2093
Assigned by @lohanidamodar
I have created a CONTRIBUTING.md file

https://github.com/appwrite/appwrite/issues/2093