exceeds max_width and array_width when matching array in let else

rustfmt version: rustfmt 1.6.0-stable (5680fa18 2023-08-23)
From where did you install rustfmt?: rustup

below is already rustfmted
enum LongName {
    SomeLongNameVariant(u32),
}

fn main() {
    let v = [
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4),
        ],
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4),
        ],
    ];

    let [[LongName::SomeLongNameVariant(0), LongName::SomeLongNameVariant(1), LongName::SomeLongNameVariant(2), LongName::SomeLongNameVariant(3), LongName::SomeLongNameVariant(4)], [LongName::SomeLongNameVariant(0), LongName::SomeLongNameVariant(1), LongName::SomeLongNameVariant(2), LongName::SomeLongNameVariant(3), LongName::SomeLongNameVariant(4)]] =
        v
    else {
        panic!()
    };

}

I expected
    let [
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4)
        ],
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4)
        ]
    ] = v
    else {
        panic!()
    };

because when I use tuple, everything formatted like that:
let tuple = (
    (
        LongName::SomeLongNameVariant(0),
        LongName::SomeLongNameVariant(1),
        LongName::SomeLongNameVariant(2),
        LongName::SomeLongNameVariant(3),
    ),
    (
        LongName::SomeLongNameVariant(4),
        LongName::SomeLongNameVariant(5),
        LongName::SomeLongNameVariant(6),
        LongName::SomeLongNameVariant(7),
    ),
);

let (
    (
        LongName::SomeLongNameVariant(0),
        LongName::SomeLongNameVariant(1),
        LongName::SomeLongNameVariant(2),
        LongName::SomeLongNameVariant(3),
    ),
    (
        LongName::SomeLongNameVariant(4),
        LongName::SomeLongNameVariant(5),
        LongName::SomeLongNameVariant(6),
        LongName::SomeLongNameVariant(7),
    ),
) = tuple
else {
    panic!()
};

Is that expected behavior?:)

Thanks for reaching out. There's a bug with rewriting array patterns that we can't change because of rustfmt's stability guarantees. You need to set version=Two to get your expected formatting:
enum LongName {
    SomeLongNameVariant(u32),
}

fn main() {
    let v = [
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4),
        ],
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4),
        ],
    ];

    let [
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4),
        ],
        [
            LongName::SomeLongNameVariant(0),
            LongName::SomeLongNameVariant(1),
            LongName::SomeLongNameVariant(2),
            LongName::SomeLongNameVariant(3),
            LongName::SomeLongNameVariant(4),
        ],
    ] = v
    else {
        panic!()
    };
}


Official Docker Image and eMQTT-2.0

Hello,
is this an official eMQTT Docker Hub: https://hub.docker.com/u/emqtt/ ?
If yes - please upload the latest official release (v2.0)

hi,
It's not official, but the follow-up to the official version will be released emqttd docker, so stay tuned.

Thanks.
I think it would be important to think how user can define his own configuration also for app running in Docker.
Some latrnatives I see:

Via Docker Volume mapping (user maps config files from his PC)
Docker ENV variables
Docker image calls user-provided start script that adds plugins (maybe volume-mapped start script)

I'm not sure what is the best approach here. But we need some kind of configurability of eMQTT running in Docker, so that when we pull it from DockerHub we can deploy it in the way we want.

We from Mainflux project got you covered: https://github.com/Mainflux/emqttd-docker
You can reuse this code for official release - we tried to make it configurable for deployments.
Image can be found pulled from here: https://hub.docker.com/r/mainflux/emqttd-docker/

This is working for version 1, I have tried with version 2 and it require few changes.

The config naming of the plugins changed.
Openssl is needed.
After fixing the changes I have tried to start with my custom mysql config and it keep failing.
Would be great to have a release for debian/ubuntu with the RC version.

Did a v2 compatible version: https://github.com/steffenix/emqttd2-docker

@steffenix we had some commits today on Mainflux EMQTT Docker that simplify configuration of plugins to be loaded. Now list of plugins is read and only plugins selected in this list by the user are installed (and not every existing plugin, like it was the previous case).

But you are still using stable (version 1) and not latest (version 2).
The plugins loading is better yeah. Have you looked at what I have done with the v2? Their is few changes on the naming and folder organizations.

We will go through your commits and see what we can integrate, thanks. Mainflux will also have to move to latest to puck up http auth plugin changes.

I hope we can have a release with the RC one the beta is getting old.

We've updated the Mainflux EMQTT Docker. The following changes have been applied:

"stable" version replaced with "latest"
improved plugins loading
installed missing OpenSSL dependency, as suggested by @steffenix
running the broker as an unprivileged user using gosu
exposing emqttd and emqttd_cli commands through the image entrypoint

Some alternatives I see:

Docker ENV variables

That could be very useful, it is way easier to set a ENV variable than managing a config file across multiple servers (at least with my setup (CoreOS)).
Setting plugins to load should be pretty simple to implement as a ENV variable, something like:
tr ',' '\n' <<< "${EMQ_PLUGINS}" > plugins.load

Then you could set it like: EMQ_PLUGINS="emq_auth_http,emq_auth_mysql".
Then we just need a way to configure plugins through ENV variables, something like could work (properly not working, but you hopefully get the idea..):
while read -r foo; do
	KEY="$(echo $foo | cut -f1 -d = | tr '[:upper:]' '[:lower:]')"
	PLUGIN="$(echo $KEY | rev | cut -f2- -d _ | rev)"
	OPTION="$(echo $KEY | cut -f2- -d _ | tr '_' '.')"
	VALUE="$(echo $foo | cut -f2 -d =)"

	echo "${OPTION} = ${VALUE}" >> "${PLUGIN}.conf"
done < <(printenv | grep EMQ_)

Should allowing setting auth.mysql.server = <IP_ADDRESS>:3306 like EMQ_AUTH_MYSQL_SERVER=<IP_ADDRESS>:3306.

Proof of concept bash code: https://gist.github.com/klausenbusk/fd7e658e2c6baffa97d764258b0a9f33
That code generate a config file named emq_auth_mysql.conf with the following content:
auth.mysql.acl_query = select foo from bar
auth.mysql.server = <IP_ADDRESS>:3306

@drasko @mijicd is this something which could be added to Mainflux EMQTT docker image?

@klausenbusk It was my personal preference to go with volume-based configuration. I will, however work on the changes you proposed during the upcoming weekend.

@klausenbusk any design @mijicd decides is OK for me. I do agree that ENV variables are easier to pass around between machines than conf files.
@mijicd maybeout of scope for this conversation, but related to Mainflux however - how does this information passing (be it ENV or conf file) can be handled with Vault, which is used by Mnatl.io that Mainflux is about to integrate?

@mijicd Did you get time to look on this? :)

@klausenbusk Unfortunately I haven't been able to take a look at the setup. I tested the proof of concept gist you provided, and it looks good to me. If you want, feel free to submit a PR covering this functionality :)

I have opened a PR with env variable configuration support https://github.com/mainflux/emqttd-docker/pull/14 , + a few fixes..

The official docker project: https://github.com/emqtt/emq-docker

@drasko  emqx30 is released in dockerhub,  please use the command: docker pull emqx/emqx


bug: default eas configuration fails to build

Provide environment information
System:
OS: macOS 13.3.1
CPU: (10) arm64 Apple M1 Pro
Memory: 62.58 MB / 16.00 GB
Shell: 5.9 - /bin/zsh
Binaries:
Node: 18.16.0 - ~/.nvm/versions/node/v18.16.0/bin/node
Yarn: 1.22.19 - /opt/homebrew/bin/yarn
npm: 9.5.1 - ~/.nvm/versions/node/v18.16.0/bin/npm
Watchman: 2<IP_ADDRESS> - /opt/homebrew/bin/watchman
Describe the bug
When deploying a new project with npx create-turbo@latest -e https://github.com/t3-oss/create-t3-turbo and then deploying the project on expo with yarn workspace @acme/expo eas build --platform all --profile prod the build fails due to node version incompatibility. It looks for >= 18.16.0 from package.json, but eas defaults to 16.18.1
The solution I used was to pin the node version in eas.json as follows:
 "production": {
      "node":"18.16.0",
      "ios": {
        "resourceClass": "m-medium"
      }
    }

Link to reproduction
https://github.com/t3-oss/create-t3-turbo
To reproduce
Use template with npx create-turbo@latest -e https://github.com/t3-oss/create-t3-turbo
Set up expo project via the expo.dev dashboard
Set up apps in play stores
Set up app.config.ts with app details
Build apps with yarn workspace @acme/expo eas build --platform all --profile prod
The build fails due to node version incompatibility. It looks for >= 18.16.0 from package.json, but eas defaults to 16.18.1
Additional information
If this seems like a good resolution, I'll go ahead and create a pull request to update eas.json. Interested to hear if this was more of a local issue for me, or if there is a better way to resolve.

Sounds good!

Ok great just submitted #403


No support for private pods

This playgrounds sub-command is lacking support for private pods. If my pod depends on another private pod, the pod install --no-repo-update will fail to fetch private pods.
I have to specify all of the privates pods directly then:
pod playgrounds MyPod.podspec,/path/to/dependency-a.podspec,/path/to/dependency-b.podspec

It would be great to have support for --sources option for playgrounds too.

I agree, but I'm wondering about a more holistic approach for passing in additional CLI arguments to the underlying call to pod — I'd rather not duplicate lots of logic here.

Well, the "way out" could be to generate playground with no pods, then go into Podfile and add those manually and just run bundle exec pod install. The problem is that I can't get the playground generated, because it fails to resolve private dependencies.
It's a bit tedious to specify them all by hand, but totally doable though...

Maybe an option would be to have some kind of "generate only" option, so that one can manually run pod install, but all the files would be generated.

Allright, the --no-install option is implemented now. Use this to just generate all the necessary files, then you can your custom spec repo to the generated Podfile and run pod install to get a usable Playground.


3 basic UI project

Added a simple UI for opening text files

I decided to use the Avalonia framework because it's relatively easy to work with, it has convenient features, and it's cross-platform.
#3

Congrats on reaching the first milestone!


Add alt text for all my images

Some images will require hard coded alt text, but the article banners and icons can have them stored in the DB and dynamically added to the page.

Done.


using getModel on an ES6 class

i have an es6 class that has a Formsy.Form and i want to manually getModel(). is that possible?
my class is something like this:
export default class MyForm extends React.Component {
  manuallyGetModel () {
    console.log(this.refs.form.getModel())
  }
  render () {
    return (
      <Formsy.Form ref='form' ...>
        ....
        <button onClick={this.manuallyGetModel.bind(this)}>get model</button>
      </Formsy.Form>
    )
  }
}

when i press the button to manually get the model i get a
Uncaught TypeError: this.refs.form.getModel is not a function
any idea how can i achieve that?

I also need the getModel function. It doesnt seem to be available in the 0.17.0 release.  I see it on the master branch however.
I'm having an issue where my package manager (Meteor) doesnt seem to work when referencing a specific git commit (in order to get master branch).  Would really like it if you could push this functionality into another version (like 0.18.0)

This ^^ it's a potential deal-breaker

Hello?!

+1

try this.refs.form.model , works for me.

Thank you @0xori !!
Update API to reflect this?

Sorry for the long pause. Formsy-react updated, check new version.


Fix building without HWLOC

Fixes #11434.

[approve ci autest]

The AuTest ja3_fingerprint failed. A PR to fix this already exists: #11432.

Same failure was repeated.

[approve ci autest]

[approve ci autest]

[approve ci autest]

Cherry-picked to v10.0.x


cmd/compile: unsafe.Pointer arithmetic causes insertion of redundant nil checks

Most testing done using go version go1.10.1 linux/amd64
I have tried a bunch of releases, from 1.7, to 1.10.3
Caveat: I may just be confused about something, but I have spent quite some time trying to come up with reasons why the generated code makes sense and the mailing list didn't provide an answer either.
The pointer arithmetic pattern described in the unsafe documentation seems to cause the compiler to emit assembly to calculate and dereference the same pointer twice. The simplest way to reproduce this is:
func getElement1(a unsafe.Pointer) (r uint64) {
	return *(*uint64)(unsafe.Pointer(uintptr(a) + 8))
}

Looking at the (shortened) Go assembly we see this:
MOVQ    "".a(SP), AX
LEAQ    8(AX), CX
TESTB   AX, (CX)
MOVQ    8(AX), AX
MOVQ    AX, "".r+8(SP)

I would have expected something like this function (which I have tested and it seems to have the same behavior):
// func getElement1Asm(a unsafe.Pointer) (r uint64)
TEXT ·getElement1Asm(SB),NOSPLIT,$0
	MOVQ    a+8(SP), R8  // Why 8 instead of 0 like above?
	MOVQ	8(R8), R8
	MOVQ    R8, r+16(SP)
	RET

I have tried to come up with explanations for what the LEAQ, TESTB sequence is good for, but failed. It seems like the compiler is inserting the equivalent of _ = *(*uint64)(unsafe.Pointer(uintptr(a) + 8)) before the return statement.
I have tested countless variants of similar and not so similar functions containing pointer arithmetic and the result is always that both address calculation and dereference are duplicated, if an address is changed by a non-zero amount (*(*uint64)(unsafe.Pointer(uintptr(a) + 0)) doesn't have this issue).
I realize that this technically doesn't violate the spec or documented behavior, but the situation seems  unfortunate (yes, I benchmarked the impact on less contrived examples).
ssa.html.log (renamed to make github happy)

I have just stumbled upon this with a real life case:
// Go's syscall.Msghdr lacks SetIovlen
func setIovlen(msg *syscall.Msghdr, iovlen int) {
	const iovlenIs32bit = unsafe.Sizeof(msg.Iovlen) == 4
	if iovlenIs32bit {
		*(*uint32)(unsafe.Pointer(&msg.Iovlen)) = uint32(iovlen)
	} else {
		*(*uint64)(unsafe.Pointer(&msg.Iovlen)) = uint64(iovlen)
	}
}

func main() {
        var msg syscall.Msghdr
        setIovlen(&msg, 10) // line 20
        ...
}

Both 1.10.3 and 1.11rc2 generate
        0x001f 00031 (t.go:20)  LEAQ    "".msg+24(SP), AX
        0x0024 00036 (t.go:20)  PCDATA  $2, $0
        0x0024 00036 (t.go:20)  TESTB   AL, (AX)
        0x0026 00038 (t.go:20)  MOVL    $10, "".msg+24(SP)

The question is, can we assume that all pointers generated by arithmetic are not nil?
I can concoct a counterexample:
getElement1(unsafe.Pointer(uintptr(1<<64-8)))

That being said, I think we should still get rid of the nil checks after any unsafe arithmetic.  I don't think anyone is actually manufacturing nil pointers this way.  We're solidly in unsafe territory here, which is exempt from the Go 1 compatibility guarantee.
The code change is easy.  I think the challenge is how to describe this change in the unsafe docs.
For @growler's specific case, we could recognize a nil check of a LEAQ of a local variable can never be nil.  That wouldn't require any change in behavior.

Maybe this is where I'm misunderstanding the semantics the compiler tries to achieve, because I don't understand what you mean.

The question is, can we assume that all pointers generated by arithmetic are not nil?

My understanding is that this is irrelevant, because calculating or otherwise obtaining a nil pointer is not something that warrants any action, regardless of whether it is an unsafe pointer or not. (I did test my own version with a nil pointer and it did panic iirc)
Dereferencing a pointer is different, that implies a nil check. Usually this happens implicitly, but if the dereference is optimized out because the result of the load isn't relevant to observed outcome, it needs to be replaced by a nil check to preserve the panic prescribed by the spec. But dereferencing is independent from pointer arithmetic.
So I actually don't understand why the nil check is inserted there in the first place, not why it's not optimized out.

Here's a concrete program that demonstrates the difference:
package main

import "unsafe"

const N = 0x77777777

type T struct {
	pad [N]byte
	v byte
}

func f(x,y uintptr) byte {
	p := (*T)(unsafe.Pointer(x - y))
	return p.v
}

func main() {
	println(f(0,0))
}

Should this panic, or return the contents of address 0x77777777?
Currently it panics:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x104df2f]

goroutine 1 [running]:
main.f(...)
	/Users/khr/gowork/tmp1.go:14
main.main()
	/Users/khr/gowork/tmp1.go:18 +0x1f
exit status 2

If we assume that pointer arithmetic always generates a non-nil result, then we'd instead do the other.

But there is a dereference. getElement1 does unsafe arithmetic and then dereferences the result.

Is it possible to left the nil dereference exception to be catched by the HW and getting rid of the SW detection?

We do use hardware detection. Usually, we can merge a nil check and a subsequent load if they are both using the same base pointer and if the constant offset in the load is small enough.  It looks like that optimization gets defeated by unsafe arithmetic.
    v11 = ADDQconst <unsafe.Pointer> [8] v5 : CX
    v13 = LoweredNilCheck <void> v11 v1
    v14 = MOVQload <uint64> [8] v5 v1 : AX

The load and nil check have different base pointers, because the constant offset was merged with the load, but not merged with the nil check.  We could probably allow merging constant offsets into nil checks.  That would fix @FlorianUekermann's case, but probably isn't a general solution to this problem.

Exactly, if there is a dereference already, why insert an extra one. I guess I don't understand why it makes a difference if the dereference happens in TESTB or MOVQ (in Go asm).
If you don't do arithmetic there's no check even though the pointer you're passing in may still be nil.

Our comments overlapped. But I have an idea what I'm getting wrong now:
The nil check must happen on the base pointer of a structure in case base+offset happens to overlap with something that is valid? And the optimization that catches that base and load pointer are identical failed here?
Isn't there a guard range above 0, which is never used page to catch these cases without explicit checks for nil?

Isn't there a guard range above 0, which is never used to catch these cases without explicit checks for nil?

AFAICT, at least on nixes there's one. But consider it's just a VM page-sized thing, so it'll be 4K on some if not most systems. Meaning accessing of field with offset >= 4096 using a nil struct pointer will not be HW detected. Same goes for an array with item offset large enough and this later case would be much more common in many programs. I didn't realized this when asking for the HW detection above.

Isn't there a guard range above 0, which is never used to catch these cases without explicit checks for nil?
I'm not sure what you're asking here, but we use this (from cmd/compile/internal/ssa/nilcheck.go):

// All platforms are guaranteed to fault if we load/store to anything smaller than this address.
//
// This should agree with minLegalPointer in the runtime.
const minZeroPage = 4096

@randall77, does it make sense to open a specific issue for nil check on pointers to local variables then?

@growler: Sure, although we already do that normally:
			// a value resulting from taking the address of a
			// value, or a value constructed from an offset of a
			// non-nil ptr (OpAddPtr) implies it is non-nil
			if v.Op == OpAddr || v.Op == OpLocalAddr || v.Op == OpAddPtr {
				nonNilValues[v.ID] = true
			}

There's something a bit more subtle going on here. Looks like we're nil-checking offsets from local addresses, instead of those addresses themselves. That might be what needs fixing.

You might try adding OpOffPtr to that list if you want to try a CL.

Works like a charm:
        0x001f 00031 (t.go:20)  MOVL    $10, "".msg+24(SP)

and passes all tests on darwin-amd64, too.

Ship it!

nilptr3.go is as much recording the status quo as it is a right vs. wrong test.
If the nil checks it's complaining about are really not needed, update the test.

The nil check inside the function body has been removed as well, which I think is not desired result, since function might get called by a plenty of ways. Here is the function body compiled by 1.11:
        0x0000 00000 (t.go:12)  PCDATA  $2, $1
        0x0000 00000 (t.go:12)  PCDATA  $0, $1
        0x0000 00000 (t.go:12)  MOVQ    "".msg+8(SP), AX
        0x0005 00005 (t.go:12)  PCDATA  $2, $2
        0x0005 00005 (t.go:12)  LEAQ    24(AX), CX
        0x0009 00009 (t.go:12)  PCDATA  $2, $1
        0x0009 00009 (t.go:12)  TESTB   AL, (CX)
        0x000b 00011 (t.go:12)  MOVQ    "".iovlen+16(SP), CX
        0x0010 00016 (t.go:12)  PCDATA  $2, $0
        0x0010 00016 (t.go:12)  MOVL    CX, 24(AX)

and here is compiled with the suggested change:
        0x0000 00000 (t.go:12)  PCDATA  $2, $0
        0x0000 00000 (t.go:12)  PCDATA  $0, $0
        0x0000 00000 (t.go:12)  MOVQ    "".iovlen+16(SP), AX
        0x0005 00005 (t.go:12)  PCDATA  $2, $1
        0x0005 00005 (t.go:12)  PCDATA  $0, $1
        0x0005 00005 (t.go:12)  MOVQ    "".msg+8(SP), CX
        0x000a 00010 (t.go:12)  PCDATA  $2, $0
        0x000a 00010 (t.go:12)  MOVL    AX, 24(CX)

That should be ok.  The nil check of msg has probably been merged with that last instruction.

I see. That makes sense. Also, the function failing test is compiled to the same code by both versions, the only thing different is compiler's debug output:
../bin/go run run.go -- nilptr3.go
# go run run.go -- nilptr3.go

nilptr3.go:249: no match for `removed nil check` in:
	nilptr3.go:249: generated nil check
nilptr3.go:250: no match for `generated nil check` in:
	nilptr3.go:250: removed nil check
Unmatched Errors:
nilptr3.go:249: generated nil check
nilptr3.go:250: removed nil check

FAIL	nilptr3.go	0.056s
exit status 1

The failing function is
func f(t *TT) *byte {
        // See issue 17242.
        s := &t.SS  // ERROR "removed nil check"
        return &s.x // ERROR "generated nil check"
}

(Well, I don't understand what happened, but at least now it seems more logical, first compiler generates a nil check while dereferencing t, and then removes duplicated one, since s must be pointing to non-nil value). Ok, I'll test it again and will try to fill a CL, thank you!

runtime.memhash runs into the same problem. I added a rule to replace Add(32|64) with AddPtr for ops with the unsafe.Pointer type and the code size reduced by about 10%. I don't think this is a great solution though due to the reasons listed above.
Merging constant offsets into LoweredNilCheck (as @randall77 suggested) would solve this problem for most uses of pointer arithmetic without changing any observable behavior. I wonder if we should just do that, at least for now? I'm happy to send a CL.


Properties and assertions tab for sketch editor

Properties and assertions are either static (first-order logic) or dynamic (HTCL). There are some pre-defined property templates, plus some properties arise directly from the regulatory network.

The support for the properties was gradually added in multiple PRs (#36, #48, #49, #50 and #53). That should cover the initial releasable version of Properties tab and their evaluation during inference.
As a follow-up, we could still try to think of some more useful template properties.


Remove project accelerator details migration from admin UI

This was a one-time migration and it's been run already.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#2572  👈
#2571
#2570
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @sgrimm and the rest of your teammates on  Graphite

Merge activity

Nov 5, 5:11 PM EST: A user started a stack merge that includes this pull request via Graphite.


FTBS for prod

the present codebase does not build for prod deployments.
$ git clone https://github.com/almighty/almighty-ui
$ export API_URL="http://demo.api.almighty.io/api/"
$ export PUBLIC_PATH="http://demo.almighty.io/"
$ npm install
$ npm run build:prod
is expected to produce a working app, however fails with :
npm ERR! Linux 3.10.0-327.18.2.el7.x86_64
npm ERR! argv "/usr/local/node/node-v6.3.1-linux-x64/bin/node" "/usr/local/node/node-v6.3.1-linux-x64/bin/npm" "run" "build:prod"
npm ERR! node v6.3.1
npm ERR! npm  v3.10.3
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>build:prod: webpack --config config/webpack.prod.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>build:prod script 'webpack --config config/webpack.prod.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the almighty-ui package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     webpack --config config/webpack.prod.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs almighty-ui
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls almighty-ui
npm ERR! There is likely additional logging output above.
npm ERR! Linux 3.10.0-327.18.2.el7.x86_64
npm ERR! argv "/usr/local/node/node-v6.3.1-linux-x64/bin/node" "/usr/local/node/node-v6.3.1-linux-x64/bin/npm" "run" "build:prod"
npm ERR! node v6.3.1
npm ERR! npm  v3.10.3
npm ERR! path npm-debug.log.3697563534
npm ERR! code ENOENT
npm ERR! errno -2
npm ERR! syscall open
npm ERR! enoent ENOENT: no such file or directory, open 'npm-debug.log.3697563534'
npm ERR! enoent ENOENT: no such file or directory, open 'npm-debug.log.3697563534'
npm ERR! enoent This is most likely not a problem with npm itself
npm ERR! enoent and is related to npm not being able to find a file.
npm ERR! enoent

merging in https://github.com/almighty/almighty-ui/pull/41 has no impact, we still FTBS

@kbsingh After mergin #41 , a web server like nginx would be fine to serve the content. I have updated Dockerfile to support this in #42


Fix the situation where the queue is not updated when 2 jobs finish at the same time

When 2 jobs complete at the same time , the queue is not getting updated correctly so that the second job doesn't capture the change.

Closed


Replace summary plots with proper tensorboard/wandb/etc integration

this seems a good direction https://tensorboard.dev/


Duplicative work, doubling token usage

Describe the bug
Good evening team,
I spent most of the day working in bolt developing my unique project and for some reason it reverted back to an instance that I used last night. There was a lot of work done today and its burning all my tokens that I paid for. Can you please investigate this and possible revert the history back to approximately 2030EST? We finally were making some serious progress :( Thanks in advance!
Link to the Bolt URL that caused the error
https://bolt.new/~/sb1-bgupfkeo
Steps to reproduce
When using the opened bolt window to develop it forgot all the work we had accomplished and reverts back to an earlier instance.
Expected behavior
Pick up where I left off. I simply went to my settings tab to see how many tokens I had left.
Screen Recording / Screenshot
No response
Platform
Browser name = Chrome
Full version = <IP_ADDRESS>
Major version = 131
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36
performance.memory = {
  "totalJSHeapSize": 108799784,
  "usedJSHeapSize": 106182680,
  "jsHeapSizeLimit":<PHONE_NUMBER>
}
Username = Drenchkat
Chat ID = ff16ef5e5b14

Additional context
No response

Hey Brian,
Sorry for the delay and thank you for the help. Unfortunately I was unable
to find my previous instance. I am going to start all over again because
there was a good bit of work that I put into it and a lot of tokens. I will
try this again and hopefully it will stay. Thanks again.
-Mike
On Mon, Dec 16, 2024 at 10:38 AM Brian @.***> wrote:

Apologies for the frustration here! Are you able to find a more recent
version of your project by trying the following:

With the Bolt chat open, go to Settings > Backups and see if a more
recent backup of your project exists. If you open a backup, this will
create a fork of your project at that point.
2.
Go to stackblitz.com, login (same credentials as Bolt), open
Collections on the left-hand side of the page, then open Bolt Collection.
See if your project is there.
—
Reply to this email directly, view it on GitHub
https://github.com/stackblitz/bolt.new/issues/4269#issuecomment-2545958357,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHVATPMFFWGVQ6Y4VVJDUJD2F3XXHAVCNFSM6AAAAABTVITI56VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBVHE2TQMZVG4
.
You are receiving this because you authored the thread.Message ID:
@.***>

Sorry to hear this! We expect these persistence issues to decrease as database improvements are made - don't hesitate to reach out with any other questions.


Settings to set which pages the extension should work on

Hey Oskar,
this feature would be awesome!

@miku86 This could be implemented, but would come at the cost of granting the extension a privileged context to all of the sites you visit.  That has security and performance downsides.
A quick alternative would be to clone the repo locally and manually modify the manifest.json file to include your desired sites and then installing from your local repo. Installing an extension from a local repo comes with its own trade offs, but for a developer using good judgement it shouldn't be a big deal.

I've also considered the security and performance downsides of having the extension active on all webpages. An idea I had was to get a list of the 25 most common distracting webpages, keep the same defaults as I have now and then have checkboxes in the settings to enable more pages if needed. There could also be a link to suggest more webpages be added to the list.
I'm not sure which way to go, but I'm open to suggestions :)

Your list of the 25 most common distracting webpages probably does not contain the well known Spanish reddit clone, some Spanish sports newspapers, etc. Just to give a bit of perspective on how useless this will be if configuring the list of sites is not possible.
Maybe two versions of the addon and each one chooses his useful/secure compromise?

 I think two extensions is the way to go since it will be useless for many otherwise

I've changed the extension work on all webpages and activate based on a list of arbitrary regexes, so it should be very flexible now :)
Leaving this issue open if there are any major issues and until i've released the version that has more narrow permissions

Instead of using hardcoded regular expressions in the source code of this add-on for the list of web sites where this extension is active, it should be a user configurable setting.

It is! I think you're refering to the default values? :)

@miku86 This could be implemented, but would come at the cost of granting the extension a privileged context to all of the sites you visit. That has security and performance downsides.

Great point.
AFAIK this shouldn't be a problem if the source code is public.

AFAIK this shouldn't be a problem if the source code is public.

In practice people don't look at the source code, nor do they inspect every update that occurs. No offence to this extension author, but more than a few extensions over the years have decided to monetize/sell their extensions after becoming popular. Injecting spying mechanisms from a privileged context is a worst case scenario for browser privacy since none of the standard protections like same origin policy are enforced. Mozilla does review updates, but they're not perfect and things slip by.
It's a relatively small risk all things considered, but worth considering none the less.

There's also the possibility of extension makers getting hacked or giving a malicious co-maintainer access to deployment as well. It's a shame it's not possible to configure which pages the extension is allowed to run on as a user. Any ideas on how to mitigate the problem other than deploying a version with weaker permissions? Perhaps I could include instructions on how to change the manifest and load a custom version of the extension

I think using the standard Whitelist/blacklist mode would work.
Whitelist pages would create the delay when browsing to and following a link from the the page.
Blacklist pages would override the whitelist pages on following links from the page.


try CI on v1.6

Codecov Report

Merging #95 (cdef332) into master (4ae0a95) will increase coverage by 0.37%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #95      +/-   ##
==========================================
+ Coverage   83.38%   83.76%   +0.37%
==========================================
  Files          10       10
  Lines         975      973       -2
==========================================
+ Hits          813      815       +2
+ Misses        162      158       -4

Impacted Files
Coverage Δ

src/reports.jl
87.83% <0.00%> (+0.45%)
:arrow_up:

src/abstractinterpretation.jl
97.11% <0.00%> (+0.96%)
:arrow_up:

src/print.jl
79.79% <0.00%> (+1.58%)
: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 4ae0a95...cdef332. Read the comment docs.

Codecov Report

Merging #95 (cdef332) into master (4ae0a95) will increase coverage by 0.37%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #95      +/-   ##
==========================================
+ Coverage   83.38%   83.76%   +0.37%
==========================================
  Files          10       10
  Lines         975      973       -2
==========================================
+ Hits          813      815       +2
+ Misses        162      158       -4

Impacted Files
Coverage Δ

src/reports.jl
87.83% <0.00%> (+0.45%)
:arrow_up:

src/abstractinterpretation.jl
97.11% <0.00%> (+0.96%)
:arrow_up:

src/print.jl
79.79% <0.00%> (+1.58%)
: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 4ae0a95...cdef332. Read the comment docs.


Support for devices whose name starts with AP, not Allpowers.

I have an Allpowers R600 device, but the name of the device is exposed as "AP R600 V2" so the integration did not detect it, after adding the AP to the list, everything works fine!

PS. Thanks for the great integration! 🚀 ❤


bug: The test case does not take into account tengine

Issue description
When I tried to migrate CI from Travis to GitHub action, I found that this test case does not pass when using Tengine.
https://github.com/wingsjj/incubator-apisix/runs/824980221?check_suite_focus=true#step:6:130
Environment

apisix version (cmd: apisix version): 1.4
OS: Ubuntu 18.04

Minimal test code / Steps to reproduce the issue
1.https://github.com/wingsjj/incubator-apisix/runs/824980221?check_suite_focus=true#step:6:130
2.https://github.com/apache/incubator-apisix/blob/master/t/node/remote-addr-ipv6.t#L117
What's the actual result? (including assertion message & call stack if applicable)

Failed test 'TEST 4: IPv6 /hello - response_body - response is expected (repeated req 0, req 0)'
at /home/runner/work/incubator-apisix/incubator-apisix/test-nginx/lib/Test/Nginx/Socket.pm line 1589.
@@ -3,7 +3,7 @@
received: HTTP/1.1 200 OK
received: Content-Type: text/plain
received: Connection: close
-received: Server: openresty
+received: Server: Tengine
received:
received: hello world
failed to receive a line: closed []

Test Summary Report
t/node/remote-addr-ipv6.t            (Wstat: 256 Tests: 15 Failed: 1)
Failed test:  11
Non-zero exit status: 1
Files=119, Tests=3969, 959 wallclock secs ( 0.95 usr  0.18 sys + 130.74 cusr 27.03 csys = 158.90 CPU)
Result: FAIL
##[error]Process completed with exit code 1.

What's the expected result?
Test case passed successfully.

you can update the test case if you need

I updated it.
https://github.com/wingsjj/incubator-apisix/blob/master/t/node/remote-addr-ipv6.t#L117
And test case passed successfully.
https://github.com/wingsjj/incubator-apisix/actions/runs/153889200

@wingsjj that is cool. welcome PR ^_^


nipype workflow

Can we convert this into a nipype workflow?

started to put everything in a branch.
I'll create several workflows (surface, regions, subparcellations, mne...)
Main issue: several softs must be wrapped or finished: (mrtrix3)[https://github.com/bpinsard/nipype/tree/mrtrix3/nipype/interfaces/mrtrix3], MNE

Main surface should be working now


Replace standard burner-wallet balances with CO2, Goellars and Trees

Scope

Currently the burner-wallet features three crypto currencies DAI, ETH, PDAI
In the "Planet A" game, we'd like to replace the above currencies with three new "assets":

Goellars: The in game currency that functions as a "virtual dollar"
CO2: An asset that describes the amount a player decided to externalize their cost
Plants: An asset that describes the amount a player decided to offset their external cost ("Planting trees reduces CO2")

We're not planning to run the game at the Ethereum meetup on mainnet! Instead we're aiming for the LeapDAO test network.
Goellars and CO2 are not exchangeable (so there's no need for an "Exchange.js" integration")
Goellars, CO2 are already registered as LeapDAO test network tokens. Their colors can be found here: https://testnet.leapdao.org/registerToken
As neither Goellars nor CO2 are intended to be exited from Plasma, there's also no need to have any ETH in the wallet. Hence the ETH balance can be hidden too

Examples where e.g. PDAI is used as the default currency but should be replaced with Goellars:

Deliverables

Replace DAI, ETH, PDAI balances with Goellars, Plants and CO2 in App.js
Make sure that only Goellars are transferrable in the UI between users. Plants and CO2 are not supposed to be transferrable
Adjust the balance of Goellars in other places too e.g. SendToAddress.js and others

Roles
bounty gardener: @TimDaub / 10%
bounty worker: name / 75%
bounty reviewer: name / 15%

why replace DAI and ETH? i would only replace pDAI with goellars and done, no?


The model is missing from https://paperswithcode.com/sota/micro-gesture-recognition-on-imigue

Issue still there...


refactor/eslint

Please review before merging.

:tada: This PR is included in version 1.3.0 :tada:
The release is available on:

GitHub release
v1.3.0

Your semantic-release bot :package::rocket:


Go to the next tip by interacting with the element showing the current tip

Go to the next tip by interacting with the item showing the current tip

You can already achieve your nextOn functionality by using custom template - there is no need for a new setting.
Closing since I don't think your changes are beneficial for most users and extra code makes it harder to maintain the project in the long run.
Also, just an advice for your future PRs - don't change file formatting introducing loads of changes making it harder to review the PR and don't add any unrelated code to your PR.

Ok, sorry. You are right. I'll take a look at this a bit later when I have time.

Thank you for your contribution. I'll release a new version with your changes tomorrow.

@lucaoliano I have released v8.1.1

@lucaoliano I have just published another bug fix release: v8.1.2. Let me know if it works well for you.

it's ok for me


Separate Draw Distance option for objects with LODs

I was checking for some info on google about the LOD system in SA, and I found a HUGE list with all the objects in the game that have a corresponding LOD model.
The list has the IDs of both the normal object and it's LOD model like so: {ObjectID, LODObjectID}
Link to the list: http://pastebin.com/YkksRdw0
It would be SUPER useful if we had an option in the .ini for increasing the Draw Distance of these objects separately, probably the safest way of getting rid of LODs without affecting the other objects.
EDIT:
Here's the IDs of the non-lod objects only, to make it easier to put inside a script: http://pastebin.com/LxfG01CR

Nah, don't close it. I'll forget about it for sure then.

Bump!


The Veil Translations

Changes / Comments

Several of The Veil translation files did not generate.
Wrapped in ES

No longer needed.


Deserialization failure results in panic

I expect de-serialization failure will result in returning error, but it seems not the case for program below:
#[macro_use]
extern crate serde;
extern crate serde_yaml;

#[derive(Deserialize)]
#[derive(Debug)]
pub struct Foo {
    pub foo: [(); 1],
}

fn main() {
    let result: serde_yaml::Result<Foo> = serde_yaml::from_str("foo:\n");
    println!("{:?}", result);
}

Running this using stable 1.28.0 will result in
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: Message("invalid type: unit value, expected an array of length 1", None)', libcore/result.rs:945:5
note: Run with `RUST_BACKTRACE=1` for a backtrace.

It appears this is the offending line.

Thanks! Fixed in 0.8.3.


Upgrade dependency 'xercesImpl' to v2.12.2

Upgrade xercesImpl to version 2.12.2

Fixed with the following PRs:

https://github.com/wso2/identity-api-server/pull/724
https://github.com/wso2/identity-api-server/pull/726
https://github.com/wso2/identity-api-server/pull/729
https://github.com/wso2/carbon-analytics-common/pull/853
https://github.com/wso2/identity-api-server/pull/670


Added Skin Variants for night mode

Converted existing skins to use skinVariants to capture day vs night mode. All skins can be easily switched between and their appropriate day or night skin will switch along with the main one.
A companion branch of the same name is available in the https://github.com/enyojs/webos-auto-settings repo.

Should note the addition of Panels's cover prop that determines fullscreen or partial panel. Otherwise LGTM


[Question] Inject CDI managed bean in Shiro AuthorizingRealm

Search before asking

[X] I had searched in the issues and found no similar issues.

Question
Please I like Apache Shiro
How can I inject my EmployeeDAO inside a custom AuthorizingRealm?
I have tried it am getting null.
Am using Jakarta EE 10.
This is part of my pom.xml
<dependency>
      <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-core</artifactId>
      <classifier>jakarta</classifier>
 </dependency>

<dependency>
     <groupId>org.apache.shiro</groupId>
      <artifactId>shiro-web</artifactId>
      <classifier>jakarta</classifier>
</dependency>

Hi, since you are using Jakarta EE 10, I would encourage you to use Shiro 2.0-alpha-3 and Jakarta EE integration module as describer here:
https://shiro.apache.org/jakarta-ee.html
That way, you have a couple options to make injections work:

make your realm an @ApplicationScoped @Named bean and reference it from shiro.ini, as documented above.
Use OmniFaces' Beans.getReference(...) to @Inject your bean programmatically (will also work with Shiro 1.x)

Let me know if you have any further questions.

Hi again,
I just updated my example to use actual @Inject inside the realm class:
https://github.com/lprimak/apps/blob/73412d490fada55439ae6831ee287d7169cac1bd/emailmanager/src/main/java/com/flowlogix/website/security/UnixRealm.java#L44

Not working yet
EmployeeRealm.java
import com.abc.controllers.factories.AuthenticateFactory;
import jakarta.enterprise.context.ApplicationScoped;
import jakarta.inject.Inject;
import jakarta.inject.Named;
import org.apache.shiro.authc.*;
import org.apache.shiro.authz.AuthorizationInfo;
import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;

@Named
@ApplicationScoped
public class EmployeeRealm extends AuthorizingRealm {

    @Inject
    AuthenticateFactory factory;

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        return null;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) authenticationToken;

        String username = usernamePasswordToken.getUsername();
        char[] password = usernamePasswordToken.getPassword();

        if (username == null) throw new AccountException("Null usernames!");
        if (password == null) throw new AccountException("Null passwords!");

        Object[] secret = factory.getSecret(username);
        System.out.println(secret[0]);
        System.out.println(secret[1]);
        System.out.println(secret[2]);

        return new SimpleAuthenticationInfo(username, password, "EmployeeRealm");
    }
}

shiro.ini
[main]
# Objects and their properties are defined here,
# Such as the securityManager, Realms and anything
# else needed to build the SecurityManager

employeeRealm = com.abc.third_parties.apache_shiro.EmployeeRealm
employeeRealmSimpleCredentialsMatcher = org.apache.shiro.authc.credential.SimpleCredentialsMatcher
employeeRealm.credentialsMatcher = $employeeRealmSimpleCredentialsMatcher

securityManager.realms = $employeeRealm

# -----------------------------------------------------------------------------
# Users and their (optional) assigned roles
# username = password, role1, role2, ..., roleN
# -----------------------------------------------------------------------------
[users]
# The 'users' section is for simple deployments
# when you only need a small number of statically-defined
# set of User accounts.

# -----------------------------------------------------------------------------
# Roles with assigned permissions
# roleName = perm1, perm2, ..., permN
# -----------------------------------------------------------------------------
[roles]
# The 'roles' section is for simple deployments
# when you only need a small number of statically-defined
# roles.

employeeRealm = com.abc.third_parties.apache_shiro.EmployeeRealm

employeeRealm = employeeRealm
You need need to refer to the realm by it's CDI/EL name
You may need to rename the left-hand side to something else because it would be ambiguous with CDI name,
i.e.
myRealm = employeeRealm instead

Thanks.
Working now
EmployeeRealm.java
@Named("NamedEmployeeRealm")
@ApplicationScoped
public class EmployeeRealm extends AuthorizingRealm {

    @Inject
    AuthenticateFactory factory;

    @Override
    protected AuthorizationInfo doGetAuthorizationInfo(PrincipalCollection principalCollection) {
        return null;
    }

    @Override
    protected AuthenticationInfo doGetAuthenticationInfo(AuthenticationToken authenticationToken) throws AuthenticationException {
        UsernamePasswordToken usernamePasswordToken = (UsernamePasswordToken) authenticationToken;

        String username = usernamePasswordToken.getUsername();
        char[] password = usernamePasswordToken.getPassword();

        if (username == null) throw new AccountException("Null usernames!");
        if (password == null) throw new AccountException("Null passwords!");

        Object[] secret = factory.getSecret(username);
        System.out.println(secret[0]);
        System.out.println(secret[1]);
        System.out.println(secret[2]);

        return new SimpleAuthenticationInfo(username, password, "EmployeeRealm");
    }
}

shiro.ini
[main]
# Objects and their properties are defined here,
# Such as the securityManager, Realms and anything
# else needed to build the SecurityManager

employeeRealm = NamedEmployeeRealm
employeeRealmSimpleCredentialsMatcher = org.apache.shiro.authc.credential.SimpleCredentialsMatcher
employeeRealm.credentialsMatcher = $employeeRealmSimpleCredentialsMatcher

securityManager.realms = $employeeRealm

# -----------------------------------------------------------------------------
# Users and their (optional) assigned roles
# username = password, role1, role2, ..., roleN
# -----------------------------------------------------------------------------
[users]
# The 'users' section is for simple deployments
# when you only need a small number of statically-defined
# set of User accounts.

# -----------------------------------------------------------------------------
# Roles with assigned permissions
# roleName = perm1, perm2, ..., permN
# -----------------------------------------------------------------------------
[roles]
# The 'roles' section is for simple deployments
# when you only need a small number of statically-defined
# roles.


synmaxcol didn't work as expected on multibyte characters

When synmaxcol=x is used and a file includes multi byte characters the highlighting didn't stop at column x but after byte x which isn't the behavior which I (and surely others) expect.
minimal demo
# abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
# αβγδεζηθικλμνξοπρστυφχψωΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ
# vim: cc=40 synmaxcol=40 syn=perl

This is the offending line, v is the byte offset into the line and one should use the vcol instead in the comparison against b_p_smc.
Adding another argument to get_syntax_attr for this would be the easiest solution but it's not particularly elegant and I may have overlooked a simpler way to achieve the same result.


Production Server Endpoint Hangs on Request

Hey everyone,
I've been working on deploying my GraphQL-Yoga server these last few days and I'm having an issue that I'm not able to diagnose, so any insight you all can provide would be greatly appreciated.
Problem: After I deploy my GraphQL server to a DigitalOcean node via Docker then when I make a request to the API server the request hangs indefinitely till it times out. The network logs in the browser show that the first fetch request for OPTIONS is successful but the 2nd fetch stays pending.
I've gone ahead and isolated the server on its own node and separated it's deploy from my web container to rule out any networking issues.
Also, please note that the server is functional when running it on my own localhost via npm start or using Docker locally.

Go ahead and close out; I ended up switching to Apollo Server.
The issue ended up being was that GraphQL Yoga is bound to localhost and I was unable to get the endpoint to bind to <IP_ADDRESS>. A host option needs to be added to bind to a different host.

GraphQLServer.start() just returns Promise of express.listen()
https://github.com/prisma-labs/graphql-yoga/blob/88b08ddde53641c6856ed240ea42da01fb7eea20/src/index.ts#L373-L399
So you can use GraphQLServer.createHttpServer() and listen() with it
(Be careful: This behavior can be changed in the future).
const server = new GraphQLServer({ typeDefs, resolvers });
const options = {
  port: 3000,
};

server.createHttpServer(options)
  .listen(options.port, '<IP_ADDRESS>', () => {
    console.log(`Server started, listening on port ${options.port}`);
  });


URL rewriting breaks due to REQUEST_URI usage

REQUEST_URI is used to detect the current path of the request. This is unreliable because URL rewriting in the web server configuration might re-route the original request (from REQUEST_URI) to a different one. Please take a look at https://github.com/horde/horde/blob/master/framework/Core/lib/Horde.php#L655 for a technique to more reliably detect the current request URL.

Hello :-),
Is it a bug, an issue or a potential usecase? Please, provide an example :-).

We've never had any issues with rewriting. From my perspective the REQUEST_URI always points to the url that the user would see 'in a browser'. So as @Hywan said as well, I'm interested to hear in what scenario that approach breaks down.

It's some old install with different paths migrated to a sabre-based server. The existing clients should keep working without re-provisioning.
The problem is bigger than I originally assumed though. I thought changing the related methods in DAV\Server and HTTP\Request (I'm still on 1.8) would be sufficient. And it actually is, to make the old URLs work. But of course Sabre will then use those (internal, rewritten) URLs for building new URLs too. I'm not sure how happy the existing clients would be with that.

@yunosh If you give us a scenario, I would be happy to dig into this issue.

I guess what you are suggesting, is that sabre/dav is already on some working path, but then there's also a different path that gets rewritten to the initial path.
As you found out yourself, it's quite hard to make that work. One option would be for you to simply see which 'base path' is being used, and then update setBaseUrl() accordingly. This would make each endpoint at least self-consistent.
But sabre/dav needs the REQUEST_URI as well to for example be able to run in the root of a domain.
One important point though is, if you just change setBaseUrl() the implication is that for the 2 different endpoints, everything after the baseUrl needs to be consistent. It's not possible to have entirely different trees.
Would that work for you? Otherwise I'm simply not sure what we can do here...

@yunosh: Or, you can also use redirections from the old to the new version. It could work.

Closing this for now, let me know if there's something else can do for this @yunosh


Allow authorization events to include multiple x tags

This PR updates the wording in BUD-01 and BUD-02 to allow upload, get, and delete authorization events to have multiple x tags
This would allow clients to use a single authorization event for multiple PUT /upload or DELETE /<sha256> requests
When multiple x tags are present on an authorization event sent to the DELETE /<sha256> or PUT /mirror endpoints, it MUST NOT be interpreted as a bulk delete or bulk mirror

Under my point of view it is correct, we minimize unnecessary events, especially thinking in batch file uploads.


fix: maximum batch latency of model server details

Hello, there is a bug with model server details.
Maximum batch latency displays incorrect info, Maximum batch size.

@markwinter Thanks Mark! I applied sign-off 👍

Thanks @hanwgyu ! sorry for the late approval
/lgtm
/approve


chromium pepper flash: <IP_ADDRESS> -> <IP_ADDRESS>

Motivation for this change
<IP_ADDRESS> 404s upstream
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Woah, what went wrong here...


Using erlport/ruby with Elixir v1.1.0 seems to have an issue, looking to understand the cause.

I made a repo demonstrating example usage with Python in Elixir here: (https://github.com/arthurcolle/elixir-snake)
When I redownload it, run mix deps.get, then iex -S mix, in the interpreter, running this should work:
just like how
iex(2)> {:ok, python} = :python.start() returns:
{:ok, #PID<0.90.0>}
the ruby version should also work, however running this:
iex(2)> {:ok, ruby} = :ruby.start()
{:ok, #PID<0.95.0>}
iex(3)> /Users/arthur/.rubies/ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require': cannot load such file -- erlport/cli (LoadError)                                                                                from /Users/arthur/.rubies/ruby-2.2.2/lib/ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in require'
from -e:1:in `'
23:42:43.046 [error] GenServer #PID<0.95.0> terminating
Last message: {#Port<0.3940>, {:exit_status, 1}}
State: {:state, :infinity, 0, #Port<0.3940>, [], []}
** (stop) {:port_closed, {:code, 1}}
What exactly is the problem? Is there a gem that I need to download and install in order to make it work? I couldn't find this in the docs, but I'd appreciate any pointers. Thanks!

You should build erlport with make to have ruby libs available. Also you can try erlport elixir wrapper: https://github.com/fazibear/export, it will build elport dependency for you.


Some namespaces attributions has to be reviewed

Some components, systems, functions are badly put in namespaces
Examples: the functions to create predefined entities are in the namespace ecs but they aren't in the ECS Library.

Only SFML has the namespace reviewed


Adds TLS support - For SmartDataCenter

I made a branch before noticing #162 #163. I see why you would want to discourage people from running registrator on a different host than the docker instance under normal circumstances. That being said, I would still really like the option to do it.
Specifically the reason why is that I think it would be awesome to be able to use registrator with Joyent's SmartDataCenter (https://github.com/joyent/sdc). Basically what it does is create a virtual docker host. You can interact with it using a normal docker client, but on the back end it is really a node server that provisions containers on potentially different machines in the cloud. SDC makes it really easy to create private networks and every container has a unique IP address. The one thing that it needs is a way to do service discovery. Registrator seems like it would work really well.
The first step for this to work is getting TLS support added.
The other big issue is that currently SDC does not implement docker events (https://github.com/joyent/sdc-docker/blob/bf47a3004013fdce342618f044567e8d595ba035/lib/endpoints/events.js)
If the Joyent guys aren't currently working on implementing it, then I will. Then registrator would theoretically just work with SDC by enabling TLS support.
I may implement a stop gap solution in registrator to get around not having events until that work can get done, but that is another PR.
Would you reconsider adding TLS support?  :)

We'll take it if you use the builtin client creation function: https://github.com/fsouza/go-dockerclient/blob/master/client.go#L229
And rebase :)

The NewClientFromEnv function sets the default DOCKER_HOST to /var/run/docker.sock.
https://github.com/fsouza/go-dockerclient/blob/933433faa3e1c0bbc825b251143f8e77affbf797/external/github.com/docker/docker/opts/opts.go#L27
I added a conditional statement that sets the DOCKER_HOST to unix:///tmp/docker.sock if it is not already set. I did this to stay consistent with how things are already done in registrator. I am assuming you expect the docker.sock to be mounted into /tmp to be clear that it's actually on the host.
Let me know if this is too hacky and I can change it.

Thanks, sorry for the delay, but can you rebase these changes again to clean up the history? It looks like when you merged your branches you ended up with duplicate commits in the history, probably due to merging with a different rebased branch.

I went ahead and just cherry-picked your most recent commit since the merge history seemed to have gotten a bit weird. This should be closed by d6b7275c43aaaa93d38e6f15a94b2aefb3064439


lua_objlen with Lua 5.3 using -DLUA_COMPAT_5_1

I'm trying to install lua-cjson in a Lua 5.3 environment with hererocks. While installing lua-cjson it failed with "warning: implicit declaration of function 'lua_objlen'." I found this issue suggesting it could be resolved by compiling Lua with the compatibility flag for 5.1, however, it doesn't seem to work. If someone could point me in the right direction to resolve this I would be grateful.
This is the Dockerfile that I'm building:
FROM python:3.6.5

ENV LUA_VERSION 5.3
ENV LUA_DIR “/lua_install”
ENV PATH “$PATH:$LUA_DIR/bin”

RUN apt-get -y update \
 && apt-get install -y -qq --no-install-recommends unzip \
 && pip install hererocks \
 && hererocks $LUA_DIR -r^ --lua=$LUA_VERSION --compat=all --verbose \
 && luarocks install lua-cjson

Hererocks seems to compile Lua with the -DLUA_COMPAT_5_1 flag:
Building Lua 5.3.4 (compat: all)
Skipping 4 patches, use --patch to apply them
Running gcc -std=gnu99 -O2 -Wall -Wextra -DLUA_USE_POSIX -DLUA_USE_DLOPEN -DLUA_USE_READLINE -DLUA_COMPAT_5_1 -DLUA_COMPAT_5_2 -c -o lapi.o lapi.c
...

However, the installation of lua-cjson still throws this warning and is unusable:
Installing https://luarocks.org/lua-cjson-<IP_ADDRESS>-1.src.rock
lua_cjson.c: In function ‘json_append_data’:
lua_cjson.c:743:19: warning: implicit declaration of function ‘lua_objlen’ [-Wimplicit-function-declaration]
             len = lua_objlen(l, -1);
                   ^~~~~~~~~~
gcc -O2 -fPIC -I/lua_install/include -c lua_cjson.c -o lua_cjson.o

The full Docker build log: docker-build-log.txt

Looks like this is an issue with the latest release of lua-cjson. See this issue: https://github.com/mpx/lua-cjson/issues/56
Specifying the previous release fixes the problem:
luarocks install lua-cjson 2.1.0


Firebase Terms of Service is not accepted. Navigate to your project's overview page on the Actions Console to accept the Terms of Service.

Sample code
const {ActionsSdkClient} = require('@assistant/actions')

const client = new ActionsSdkClient({
  parent: 'projects/action-builder-test-40291'
})

client.listVersions({parent: 'projects/action-builder-test-40291'}).then(version => console.log)

Log
mish@ushakov action-builder-test % node index.js
(node:39636) UnhandledPromiseRejectionWarning: Error: 9 FAILED_PRECONDITION: Firebase Terms of Service is not accepted. Navigate to your project's overview page on the Actions Console to accept the Terms of Service.
    at Object.callErrorFromStatus (/Users/mish/Downloads/action-builder-test/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
    at Object.onReceiveStatus (/Users/mish/Downloads/action-builder-test/node_modules/@grpc/grpc-js/build/src/client.js:176:52)
    at Object.onReceiveStatus (/Users/mish/Downloads/action-builder-test/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:336:141)
    at Object.onReceiveStatus (/Users/mish/Downloads/action-builder-test/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:299:181)
    at /Users/mish/Downloads/action-builder-test/node_modules/@grpc/grpc-js/build/src/call-stream.js:145:78
    at processTicksAndRejections (internal/process/task_queues.js:75:11)
(Use `node --trace-warnings ...` to show where the warning was created)
(node:39636) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag `--unhandled-rejections=strict` (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:39636) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.

don't see anything on the overview page, adblocker disabled

making a firebase project first then creating action - didn't help

Thank you for including all of the details. Can you confirm if you're using service account for authentication (similar to this setup)?

@atulep yes
also, if i try to directly make a HTTP request to Actions API i would get a 403, insufficient permission error
my service account has Actions Admin and Actions Viewer permissions and the Actions API is enabled on project

yes, i'm using service account with Actions Admin and Actions Viewer permissions
my project has Actions API enabled
i also noticed when i try to make a HTTP directly through google-auth-library client i'm getting a 403: Insufficient Permissions
i'm not sure i'm doing everything right and the Actions API documentation does not give any hint whatsoever when it comes to authentication and required scopes

The Terms of Service error has to do with the bug in the API. ToS acceptance window would normally show up if you call API with your credentials, for example, when you use gactions CLI. However, it behaves incorrectly when API is called with service accounts. We rolled out a fix for this, which should be take effect soon.
Regarding insufficient permissions, try adding https://www.googleapis.com/auth/actions.builder scope. I'd also suggest looking at gactions implementation for some pointers.

thanks a lot, the code seems to be working correctly now!


spi: Remove deprecated fields from struct spi_cs_control

All in tree users are using the gpio_dt_spec so we can remove the
older gpio struct elements that have been deprecated for some
time.
Signed-off-by: Kumar Gala<EMAIL_ADDRESS>

@carlescufi was curious about feeling on making this just:
struct spi_cs_control {
   struct gpio_dt_spec gpio;
   uint32_t delay;
};

and if we consider that an API change?

I will bring it tomorrow in the Architecture WG

Arch WG:

@MaureenHelm will check whether the macro might still fail
Barring any findings from @MaureenHelm remove the struct and mention in relnotes

@MaureenHelm take a look and see if this builds ok w/XCC.  I don't think it should have any issues as we are removing the anonymous struct & union that it would have had issues with.


thunderbird: build fails if enableOfficialBranding = true

Describe the bug
thunderbird does not build with enableOfficialBranding = true.
To Reproduce

in configuration.nix, use

environment.systemPackages = with pkgs; [
  (thunderbird.override { enableOfficialBranding = true; })
];

observe rebuild failing with:

$ nixos-rebuild switch                                               ~
building Nix...
building the system configuration...
error: attribute 'proprietary' missing, at /nix/var/nix/profiles/per-user/root/channels/nixos/pkgs/applications/networking/mailreaders/thunderbird/default.nix:203:38
(use '--show-trace' to show detailed location information)

Expected behavior
The build should go through, producing a thunderbird with normal logos.
Additional context
Maybe related to #75904.
Metadata

system: "x86_64-linux"
host os: Linux 5.4.6, NixOS, 19.09.1686.69ed29f5f41 (Loris)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.3
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

Maintainer information:
# a list of nixpkgs attributes affected by the problem
attribute: thunderbird
# a list of nixos modules affected by the problem
module:

Although I haven’t tried it myself, at least this particular issue was removed in commit 8b8458ade5e0694b60cbecd7a7811d5fb2c11b77 (#75328).

Unstable seems to work

Seems to work on all currently supported branches (including 19.09).


Missile micro casting shield on friendly units

When:

no enemies in sight, but allies are in sight, or
enemies are in sight but it's already shielded.

Of course, generally try to self-cast shield first.

Actually, just prioritize shielding other units because these are usually the tanks who need it. Otherwise, it could land on another missile bot which is no worse off.

In progress: #54.


docs: Add embedded filesystem declaration to --embed example

Resolves https://github.com/caddyserver/xcaddy/issues/203. I also added a little flavor text to draw attention to the filesystem line in the example.
I verified with a manual test that instantiating the filesystem with the same name as the caddy.fs module works fine.

Thanks! Although, this reminds me, I thought we (not you, don't worry -- separate issue) were going to rename filesystem to file_system :thinking: @mohammed90 Does that ring a bell?

Oh actually this might be it...  https://github.com/caddyserver/caddy/pull/6466#issuecomment-2269147379 @elee1766

🤔 @mohammed90 Does that ring a bell?

Yep! Exactly as you said, it's this:

Oh actually this might be it... caddyserver/caddy#6466 (comment) @elee1766

oh did I never change it? I'll do it today.

Thank you!


Fix for default and override locale setting

This PR fixes a few issues noticed with the locale settings, which has become a bit messy after a few re-edits.
Issues:

When phone was switched to a different locale (without user explicitly choosing a locale from the settings), the phone wouldn't always pick up the changed locale.
Text in some menus didn't appear in the locale language on restarting the app.
Duplicated code.
Some translations were missed (see values-zh/strings.xml)

While editing the relevant classes, cleanup of redundant code was also done.
Code was checked on Pixel, Xiaomi and Huawei phones set to different locales. To repeat a check:

Create new emulator instance.
Set device language to Chinese or Spanish
Install AW - text should appear in the device language.
Change language - should be in the override language.
Restart app, setting should persist.
Bonus: Check the top right hamburger menu in DappBrowser; previously text was in English no matter what language settings were applied.

@JamesSmartCell if you kill the app it resets back to English, otherwise it works as expected.

Unable to reproduce. Can you describe how to reproduce in more detail?

@JamesSmartCell if you kill the app it resets back to English, otherwise it works as expected.

Unable to reproduce. Can you describe how to reproduce in more detail?

On the emu I change the language, kill the app and then reopen it.
I expect it to be in the changed language but it reverts back to English instead

@James-Sangalli fresh install or old version it works correctly for me on all test phones. How about I give you a build, perhaps there was a build issue. I rebased too. I'll be preparing a release candidate today, so you can test that.

Here is a new build; please check if it works on your device as expected:
https://drive.google.com/file/d/17j28cRWduOGHqSydPK7ieHtVhZ4YljPe/view?usp=sharing

Merging this PR as verified correctly.


Removing references to Fabric8 Launcher docs

@inoxx03 Can you please review and merge the PR?

Can one of the admins verify this patch?

[test]

@sangeetaraghu The changes look good to me. I am going to merge this PR. Thank you for doing the work:)

@inoxx03  Thank you so much :)


feat: 3719 - new "scan history" page among the account product lists

What

There is a "scan session" page, typically for recently scanned products.
But there was no huge "scan history" page, with all the previously scanned products.
Now this list does exist. It's populated at the same time as "scan session", but is not cleared when "scan session" is cleared. This list is accessed from the account page - that can be changed if needed.

Screenshot
cf. "Scan History / 3"

Fixes bug(s)

Closes: #3719

Impacted files

app_en.arb: added 1 label for "scan history"
continuous_scan_model.dart: added the product to "scan history"
product_list.dart: added "scan history"; refactored ProductListType
product_list_page.dart: added "scan history"
product_query_page_helper.dart: added "scan history"
user_preferences_account.dart: added an access to the "scan history" page

How about putting it among lists ?

How about putting it among lists ?

There are "account product lists" (e.g. "products I edited (at the server level)") and "user product lists" (e.g. local custom "My breakfast cereals"). And "history" and "scan session" are away from both, and accessed via specific actions.
In this PR, I added the new "scan history" to "account product lists", which is not very consistent.
If we move it to "user product lists", it's not very consistent either, and there's not the "custom" effect like "you have no lists for the moment: create your first list!".
Possibly we can create a dedicated access to a new concept of "automatic lists": "history", "scan session" and "scan history". Not sure it would be clearer for the end user.

Ok, my brain melted one hour ago, but:

What about bringing the lists shortcut closer to the current History tab.
How about allowing to switch between History and User Lists in the Top Bar (with a dropdown on the top bar title ?). The idea is that History and Scan History are just some more lists.
@monsieurtanuki @M123-dev @g123k

Thank you @teolemon for your review.
Your suggestion about refactoring the concept of lists from the user's perspective is interesting and deserves its own issue.


Rename time conf variables

we may want to change INIT_* and VALID_* to simply TIME_* so we don't need 2 sets of parameters depending on how we run MET+.
TIME_FMT
TIME_BEG
TIME_END
TIME_INCREMENT
would replace
INIT_TIME_FMT
INIT_BEG
INIT_END
INIT_INC
VALID_TIME_FMT
VALID_BEG
VALID_END
VALID_INC
We could also rename some of these, i.e. TIME_INC should be TIME_INCREMENT so it is clear.

We decided not to go this route. User's prefer to have separated INIT and VALID variables.


add audio annotation feature

far fetched.. but incredibly useful!
add a feature to record a mono audio track (can be compressed) while doing measurements
sometimes you have both hands buzy, pushing buttons, turning knobs, then it would be a great help to add voice-snippets to the time-line so you can listen back on what was done while capturing.

This feature is not so far-fetched.  With the original JLS v1 format, recording audio alongside Joulescope data would be very difficult.  However, the new JLS v2 file format should easily be able to store a microphone input audio track.  The Joulescope UI already supports loading & displaying JLS v2 files, but it does not yet support recording them.
The existing JLS v2 implementation only supports 32-bit float data values, but we plan on adding other formats.  The "Signed integers in nibble (4 bit) increments" set to 16-bit would be good for audio.  JLS v2 tracks also contain wall-clock time synchronization which would keep the Joulescope data synchronized to the audio.
New recording features:

Configure recording.  Optionally enable microphone audio input.
Select & open audio input device
Save audio to JLS v2 track

On playback:

Display audio waveform.  Min/max already would display the sound envelope so that you can easily find audio events.
Ability to play back the audio waveform from a starting point.  Could use the start of the visible window, marker, and/or current cursor location.

The JLS v2 format also supports annotations.  While these can be saved in the original JLS file, you normally want them in a separate JLS file so that you can edit the annotations without affecting the original data.  We could potentially perform speech recognition and automatically generate text annotations.

great summary (re 1,2,3), the audio track could benefit from having a lower configurable threshold so that annotations could represent the start of new voice-overs (with a reasonable 'release' of ~2-3 sec silence to avoid multiple 'regions' being created)


Add support for dbt-build-operator

Hi GoCardless team!   Would love to submit a PR to extend airflow-dbt to add a build operator to support functionality added in dbt v0.21
I've already updated the readme, tests, and airflow_dbt/operators/dbt_operator.py, but am unable to make a push to the remote repo so I can submit a PR.
$ git push origin dbt-build-operator
ERROR: Permission to gocardless/airflow-dbt.git denied to wwells.

If the maintaining team is interested in this augmentation, what should I do to participate?

Hi, you can find a nice guide on how to submit your PR here, from Github themselves. I know this comes a little bit late.
You can always use the DbtBaseOperator
from airflow_dbt.operators.dbt_operator import DbtBaseOperator

dbt_build = DbtBaseOperator(
    task_id='dbt_build',
    command='build',
)


python312Packages.tencentcloud-sdk-python: 3.0.1286 -> 3.0.1287

Diff: https://github.com/TencentCloud/tencentcloud-sdk-python/compare/refs/tags/3.0.1286...3.0.1287
Changelog: https://github.com/TencentCloud/tencentcloud-sdk-python/blob/3.0.1287/CHANGELOG.md

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
25.05 Release Notes (or backporting 24.11 and 25.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 367740

x86_64-linux

:white_check_mark: 4 packages built:

python312Packages.tencentcloud-sdk-python
python312Packages.tencentcloud-sdk-python.dist
python313Packages.tencentcloud-sdk-python
python313Packages.tencentcloud-sdk-python.dist

nixpkgs-reviewd workflow started
Status and logs: https://github.com/nixosbrasil/nixpkgs-reviewd/actions/runs/12474101026

nixpkgs-reviewd workflow finished
Status and logs: https://github.com/nixosbrasil/nixpkgs-reviewd/actions/runs/12474101026
nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 367740

x86_64-darwin

:white_check_mark: 4 packages built:

python312Packages.tencentcloud-sdk-python
python312Packages.tencentcloud-sdk-python.dist
python313Packages.tencentcloud-sdk-python
python313Packages.tencentcloud-sdk-python.dist

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 367740

aarch64-darwin

:white_check_mark: 4 packages built:

python312Packages.tencentcloud-sdk-python
python312Packages.tencentcloud-sdk-python.dist
python313Packages.tencentcloud-sdk-python
python313Packages.tencentcloud-sdk-python.dist

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 367740

x86_64-linux

:white_check_mark: 4 packages built:

python312Packages.tencentcloud-sdk-python
python312Packages.tencentcloud-sdk-python.dist
python313Packages.tencentcloud-sdk-python
python313Packages.tencentcloud-sdk-python.dist


Add a checksum to all data files.

This can be done in using wrappers over the Write and Read of the ManagedDirectory.
The write would add a footer to written files.
Probably use CRC32c or Adler. Both seem to have good pure rust implementation.
The checksum would not be used on open, but the index would have validate_checksum() method that could return an Error pointing to a specific corrupted file.

when you say "wrappers" over the Write and Read of the ManagedDirectory do you mean like a new struct that delegates to ManagedDirectory? or do they become a part of managed directory? implemented in the Directory trait methods of ManagedDirectory?

add Directory::validate_checksum(&self)
add ManagedDirectory::generate_checksum(data: &[u8]) how we generate the checksum
add ManagedDirectory::split_checksum(data: &[u8]) -> (&[u8], &[u8]) so we don't return it on read
add ManagedDirectory::validate_checksum(path: &Path) tells if the path has a valid checksum

atomic_read would then become something like ...
    fn atomic_read(&self, path: &Path) -> result::Result<Vec<u8>, OpenReadError> {
        let data = self.directory.atomic_read(path)?
        let splits = split_checksum(data);
        Ok(splits.get(0))
    }

Does that map to your "wrapper" concept?

They would become part of the managed directory probably.
It would only apply to sequential file, (not the atomic API)
When creating a new sequential file... It would digest all of the bytes as the file is being written and append the checksum at the end of the file on flush/close.
When opening, the checksum would be truncated from the ReadOnlySource so that the change would be entirely transparent from the user point of view.
The directory could get a verify_checksum(). And checksum could be verified before merging segments.


Add strokeWidth option to drawing functions

Default: 1.

Should drawPoints also have the strokeWidth options? Changing the option would allow to have bigger or smaller dots around the points coordinates (I don't know if this feature would be useful).

Not for now.

When the strokeWidth is increased, should it be towards the "inside", the "outside", or "centered" on the original stroke? This could maybe be a useful option too.

In any case having the stroke centered seems a lot easier to implement. It would be difficult to know where the inside of the polygon is otherwise.

Isn't the feature already available in the library that we are using to draw lines? I wasn't expecting you to implement it from scratch.

I just checked the library doc and indeed found a width option for lines. However I couldn't find a function for circles.
https://www.npmjs.com/package/bresenham-zingl

Here is a quick test I did with the convex hull, using the drawPolygon function and strokeWidth=10 and I am not convinced. The line is really not smooth and the thickness seems to vary. What do you think @targos ?
I think the problem is mainly where two segments join (in the corners of the shape), there seems to be an offset.

I also have an issue with drawRectangle, one of the corners is not drawn properly.

Not super convincing indeed but I don't think we should spend more time on this for now.

Ok, I'll still need for @targos' feedback then

Feedback on what? I agree with you the result is ugly

Feedback on what? I agree with you the result is ugly

Considering what @lpatiny said, should I try to fix this or not?

Not super convincing indeed but I don't think we should spend more time on this for now.

No, we don't need the feature at the moment.

Current state of the strokeWidth branch

drawRectangle was modified to use lineWidth but the out option doesn't work
plenty of tests don't pass because the implementation of lineWidth() is different from line...

The branch is in standby because the feature is not currently necessary.


Not loading

ALVR Launcher.exe when ran, will get stuck on the spinning dots loading screen. This is a consistent problem and I can't figure out how to fix it. Im on version 13.0 by the way.

Please respond even if you already fixed the problem.
Is your computer and the Oculus on the same 5G wifi network?
Do you have google chrome installed?
Can you click on anything else on the server? (can you browse the configurations and etc?)


If AutoAck pull returns empty then exception raised on context exit

If the subscription pull returns 0 messages in the enter method in the AutoAck class then on exit the acknowledge call raises an exception on the HTTP call: https://github.com/GoogleCloudPlatform/google-cloud-python/blob/pubsub-0.22.0/pubsub/google/cloud/pubsub/subscription.py#L512
Currently the way a deal with this is to wrap the context manager in try/except or override exit to check for an empty list. The former is messy and the latter can just be fixed at source.

@quom Thanks for the report!  It looks as though you are working on a fix.  Can you also add a test which fails without your patch?

@tseaver There you go :)

@quom Looking good.  PR forthcoming?


WorkFlow Not avaliable in Nuget v3.3.0 but works in Code Build of v3.3.0

When I use the latest Nuget package v3.3.0 this does not work. Same issue going back in packages:
var workflow = JsonConvert.DeserializeObject< List < Workflow > > (ruleData);
(Spaces added above so the comment shows correctly)
Workflow above is unrecognized. Visual Studio suggests I change Workflow to WorkflowRules which breaks my code.
WorkflowRule is marked as Obsolete in the code.
When I take the code version 3.3.0 and build it and reference the DLL this works above as pasted here.
When I install the Nuget Package v3.3.0 and manually replace the DLL with the code build DLL from the Git Repo v3.3.0 it works.
My summation is something is missing in the deployed NugetPackage v3.3.0 that is in the Git Repo v3.3.0
Does anyone know why this happens?

@Groovejets2 the main branch contains code which may not be released yet.
If you want to compare code for nuget, you can compare it with the tagged version. In this case - https://github.com/microsoft/RulesEngine/tree/v3.3.0

Thank you abbasc52. I will try that


Changing Appveyor to use progress formatter

This will print a . instead of the full test name
\cc @jdmundrawala @chef/maintainers

yes please :shipit:

:+1:


possible to show no-undef ?

Not really sure if this is possible or if this is the right module, but it would be super helpful if eslint could show undefined variables used in the pug template.

@leviwheatcroft thank you for mentioning this. Yes, this is right place and it's on my roadmap.
I've started and implemented 'proof of concept'. Remaining part is to do refactoring and extend README. It also requires some time because I would like to test that rule in my current project, so probably it will be merged in 1 week.
You can test it as well right now by adding explicit dependency in package.json:
"eslint-plugin-react-pug": "https://github.com/ezhlobo/eslint-plugin-react-pug.git#rule/no-undef"

BTW, now it looks not very good because it marks the whole template as an error, so it might be tricky to find not defined variable in big template.

nice! I'll take a look

@leviwheatcroft hey, I've just published 0.2 version which supports this rule. If you have not tried it yet, then now just increase version number in your package.json ;).
Please, re-open this issue if that update does not resolve your concern.

awesome. thanks. love your work mate.


Feature Request: resolve_objects

Instead of the resolve() function in ref.py, it would be handy to have a resolve_objects() or some such function that would return a list of tokens with start/stop indices that an expression references rather than the string representation thereof. (I am working on a solution to Issue #19, and this would help)

Does ref.dereference_all work?

Oh wait it doesn't get the indices. I've thought about this but haven't implemented it yet. You can sorta so it yourself with the ref.spans() function combined with dereference. I'd like to make the function you describe though.

Ah, I'd been digging through the source rather than the online docs and didn't see a docstring, so I think I missed it. Is the get_any() call recursive?

If you want recursive then maybe query.ancestors(), but again, it doesn't return the indices.

My previous replies were made on my phone, and I didn't quite see the context. I see now that you want to get the original locations of an alignment in the form of the target Item objects and the indices for spans. This needs a bit more thought, because of issues like this:

what if the resolved Items + spans for a single alignment expression come from different tiers? E.g., this substring comes from w4, but this substring comes from p1... This might not be a big deal, but it's worth considering

if an Item's text overrides its aligned value, do we stop there, or continue following references?

do we want to return all intermediary spans, like query.ancestors does for Item alignments, or just the final ones?

Btw, Igt.get_any() just gets an object contained by an Igt by its id, whether the object is a Tier or an Item. It doesn't resolve alignment expressions.

This won't make it in time for the 1.1 release. Removing the milestone.


Section Editor - Disassembler decodes just 2 bytes

Info
It is not clear why the disassembler shows just 2 bytes decoded
Expectation is to have all the section (or say 1K) to be disassembled
Details
Drop a file onto the tool, go to the Section Editor
Locate .text section (this is a file compiled by MS VS)
Right click - Disassemble Section
just 2 bytes (CC) being disassembled:
http://prntscr.com/jg8go0
is it a known limitation or... ?
At the same time other sections when asked are showing way much more asm lines

why is that reasoning?
.text section has code
and disasm decodes just 2 bytes?
thats terrible feature...

Reason is not to disasm garbage bytes.
If you need to disasm code, disasm at entry point (Optional Header > Entry Point, press D button at the right side of EP value).

May be we'll add:

Option to set how many bytes to disasm regardless of presence of stop-bytes.
Start address in disasm dialog to disasm from any address within SizeOfImage


Embedding qt-osm-map-providers locally instead of a webserver

Hi, I came across your repository and I'm trying to replicate the same thing in QML except instead of trying to point to a webserver, I want to do it locally.
I've gone through the steps here
and Iv'e copied the contents of  the folder into my project folder but for some reason, it seems
osm.mapping.providersrepository.address is trying to parse the directory as a URL as I get the following error message:
 Invalid custom providers repository address:  "http://../qt-osm-map-providers/"
Here's what my plugin looks like:
 plugin:Plugin{
        name:"osm"

        PluginParameter {
            name: "osm.mapping.providersrepository.disabled"
             value: true
        }

        PluginParameter { name: "osm.mapping.highdpi_tiles"; value: true }

        PluginParameter {
            name: "osm.mapping.providersrepository.address"
            value: "../qt-osm-map-providers/"
        }

    }

Could you please assist?

I haven't tried doing this locally, so I don't know if it'll work, but my first thought is that you could try passing a file:// URI

Would it be to the folder or to the specific map style? I tried both
        PluginParameter {
            name: "osm.mapping.providersrepository.address"
            value: 'qrc:/qt-osm-map-providers/'
        }

and
        PluginParameter {
            name: "osm.mapping.providersrepository.address"
            value: 'qrc:/qt-osm-map-providers/cycle'
        }

for example. And error seems to have disapparead. Unfortunately the API key required watermark is still showing on the map

I just remembered that someone else tried this a little while back and didn't seem to have much luck getting it to work from the filesystem, they ended up having their application implement a local HTTP server and provided the files via that (to see that discussion take a look at issue #2). I suspect the QML Map plugin only supports HTTP access.


build!: Set Node v12 to minimum supported version & Upgrade TypeScript

Drops Node 10 support, which has been EOL for about 1 year. 🦕
See: Google Cloud moves Cloud Client Libraries for Node.js support for version 10 to Maintenance

LGTM. We'll need to manually remove the Node 10 test requirement to merge this, I can do it once we're ready. But I'd like for @bcoe to review first.


Transaction verification always fails due to incorrect value stored in signatureBlob->_receiptVersion.

Verification of the transactions for sandbox account is always fails. Debugger says that value stored in "signatureBlob->_receiptVersion" is equal to 3, but expected to be 2 as described here:

         1. Extract receipt version, signature and certificate(s).

         2. Check receipt version == 2.
         3. Sanity check that signature is 128 bytes.
         4. Sanity check certification size <= remaining payload data.

Apple has changed their signature, see accepted solution on StackOverflow


build release for Ubuntu amd64

Can you please build a release for ubuntu on amd64 as well like you've done for arm64?

@daniejstriata @edoardottt, notifying you that build version 1.0.6 for amd64 has just been released at this link.


Roll engine dcbc8a820733..9e315e64659e (3 commits)

https://github.com/flutter/engine/compare/dcbc8a820733...9e315e64659e
git log dcbc8a820733..9e315e64659e --no-merges --oneline
9e315e646 Remove entries from dart_vm_entry_points.txt and use annotations (flutter/engine#6226)
cdbe21466 Update test .gitignore (flutter/engine#6272)
dbfa8276d [fuchsia] Fixes for the Fuchsia build (flutter/engine#6273)
The AutoRoll server is located here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md
If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.

@rmistry @liyuqian : New roll has been created by https://autoroll.skia.org/r/flutter-engine-flutter-autoroll

Auto-roller completed checks. About to merge.


The scripts for the uptime notification are not working as expected

The scripts for the uptime notification are not working as expected, They don't seem to support days and exact time . If any service is down for more than a day, it will just show as the service was just down for some hours.
Please look into fixing the scripting part of the uptime notification and make sure it shows that service was down for days, time and hours.

This ticket is completed now, moved to review/qa on 23rd August

Waiting for @rajpalc7 to create a PR containing the rocket.chat integration script updates and link it to this issue.

https://github.com/bcgov/platform-services-sre/pull/20 - A new PR has been created

@rajpalc7, please she Shell and my comments on the PR.

Hi Wade, I thought shelly's comments were addressed when I was showing the demo yesterday.

If you look at the diff here; https://github.com/bcgov/platform-services-sre/pull/20/files
You'll see there are still some outstanding whitespace issues to address:

Such as extra spaces here:

Missing spaces here:

and, seemingly a combination of extra/missing spaces or tabs here:

Fixed the formatting now

https://github.com/bcgov/platform-services-sre/compare/main...rajpalc7:platform-services-sre:main - this should do it

Complete