🐛 BUG: Global scope is reused for all worker code, different from cloud environment

Which Cloudflare product(s) does this pertain to?
Wrangler core
What version(s) of the tool(s) are you using?
3.6.0
What version of Node are you using?
18.3.0
What operating system are you using?
Mac
Describe the Bug
In the production cloudflare environment the execution environment (global scope) for code is sometimes reused, but only across durable objects of the same class.
So for instance if your wrangler.toml declares two Durable Objects with classes Chess and Checkers, instances of Checkers might sometimes be instantiated in a js context that was previously used by a previous instance of Checkers, but they will never be instantiated in the js context previously used by an instance of Chess.
Further, I'm pretty sure that in the production environment two instances of a DO can never be "running" at the same time inside an execution context (by running here I mean receiving messages). But I have an open question about that here:
https://discord.com/channels/595317990191398933/773219443911819284/1153898195886293122
In Wrangler, however, all code is run in the same js context (global scope) concurrently.
Please provide a link to a minimal reproduction
https://github.com/rocicorp/cf-do-js-exec-context
Please provide any relevant error logs
No response

Just to confirm, this is when you're running wrangler dev? Do you also see this behavior when running wrangler dev --remote?

Yes, the report was from wrangler dev. I just checked wrangler dev --remote and it has a third, different behavior.
Here is the output from the production cf environment:
Worker js exec context id: nlxfszyh
DOClass1 foo response: DO id: 9xuuqefw, js context id: fmz67dwn
DOClass2 bar in your browser of choice. response: DO id: ah16ukh8, js context id: lxw7futo
DOClass1 foo response: DO id: 9xuuqefw, js context id: fmz67dwn
DOClass2 bar in your browser of choice. response: DO id: ah16ukh8, js context id: lxw7futo

Note that the worker, DOClass1, and DOClass2 each have their own js context.
Here is the output from wrangler dev:
Worker js exec context id: qff63q1g
DOClass1 foo response: DO id: pxmht8t8, js context id: qff63q1g
DOClass2 bar in your browser of choice. response: DO id: e23urbkq, js context id: qff63q1g
DOClass1 foo response: DO id: pxmht8t8, js context id: qff63q1g
DOClass2 bar in your browser of choice. response: DO id: e23urbkq, js context id: qff63q1g

The worker, DOClass1, and DOClass2 all share the same context.
And here is the output from wrangler dev --remote:
Worker js exec context id: e3d1rg6q
DOClass1 foo response: DO id: lgwax42, js context id: nrf9h6kh
DOClass2 bar in your browser of choice. response: DO id: 6zti8luc, js context id: nrf9h6kh
DOClass1 foo response: DO id: lgwax42, js context id: nrf9h6kh
DOClass2 bar in your browser of choice. response: DO id: 6zti8luc, js context id: nrf9h6kh

The worker has one JS Context, and the two DOs share a JS Context.

You can generate this output yourself running the repo attached to this bug.


Installation problem

Hi
We have been trying to install Burrow following the instructions, but have been unable to do so.
Details as follows:
We are running Ubuntu 16.04.3
Monax CLI Version: 0.16.0
go version go1.6.2 linux/amd64
Following the install instructions and running the following from the command line:
go get -d github.com/hyperledger/burrow
We get the following error:
"can't load package: package github.com/hyperledger/burrow: no buildable Go source files in /root/.go/src/github.com/hyperledger/burrow"
Not to be totally thrown by this we did try installing by hand by going to:
/.go/src/github.com/hyperledger/burrow/cmd  (where .go is our $GOPATH) and running go install from there however, this threw up a list of packages which were missing (tendermint related etc). SO we went through and installed each of these individually except one which wouldn't install - namely:
github.com/tendermint/go-p2p
which throws up the error:
github.com/tendermint/go-p2p
../../../tendermint/go-p2p/peer.go:169: cannot use p.PubKey() (type "github.com/tendermint/go-crypto".PubKeyEd25519) as type "github.com/tendermint/go-crypto".PubKey in argument to peerNodeInfo.PubKey.Equals
../../../tendermint/go-p2p/secret_connection.go:51: invalid type assertion: locPrivKey.PubKey().("github.com/tendermint/go-crypto".PubKeyEd25519) (non-interface type "github.com/tendermint/go-crypto".PubKey on left)
../../../tendermint/go-p2p/secret_connection.go:99: invalid type assertion: remPubKey.("github.com/tendermint/go-crypto".PubKeyEd25519) (non-interface type "github.com/tendermint/go-crypto".PubKey on left)
../../../tendermint/go-p2p/secret_connection.go:258: invalid type assertion: locPrivKey.Sign(challenge[:]).("github.com/tendermint/go-crypto".SignatureEd25519) (non-interface type "github.com/tendermint/go-crypto".Signature on left)
../../../tendermint/go-p2p/secret_connection.go:273: cannot use pubKey (type "github.com/tendermint/go-crypto".PubKeyEd25519) as type "github.com/tendermint/go-crypto".PubKey in field value
../../../tendermint/go-p2p/secret_connection.go:273: cannot use signature (type "github.com/tendermint/go-crypto".SignatureEd25519) as type "github.com/tendermint/go-crypto".Signature in field value
../../../tendermint/go-p2p/secret_connection.go:297: cannot use remSignature (type "github.com/tendermint/go-crypto".SignatureEd25519) as type "github.com/tendermint/go-crypto".Signature in argument to remPubKey.VerifyBytes
../../../tendermint/go-p2p/switch.go:157: invalid type assertion: nodePrivKey.PubKey().("github.com/tendermint/go-crypto".PubKeyEd25519) (non-interface type "github.com/tendermint/go-crypto".PubKey on left)
../../../tendermint/go-p2p/switch.go:216: cannot use peer.PubKey() (type "github.com/tendermint/go-crypto".PubKeyEd25519) as type "github.com/tendermint/go-crypto".PubKey in argument to sw.nodeInfo.PubKey.Equals
../../../tendermint/go-p2p/switch.go:534: invalid type assertion: privKey.PubKey().("github.com/tendermint/go-crypto".PubKeyEd25519) (non-interface type "github.com/tendermint/go-crypto".PubKey on left)
../../../tendermint/go-p2p/switch.go:534: too many errors
root@kmi-blockcn02:~/.go/src/github.com/hyperledger/burrow/cmd#
Any help and suggestions would be appreciated
Thanks
Kevin

Hi Kevin,
Burrow is not go getable since we don't vendor our dependencies. Maybe it should be (I am working on a release where it is). If you want to install a development version you'll need to get the repo (go get has done this, don't worry about the no buildable files message) and install our dependencies using glide, do:
cd $GOPATH/src/github.com/hyperledger/burrow
make install_vendor
make build

You'll then find binaries under ./target/burrow.
Bear in mind at this time the standard way to interact with Burrow is through the monax tool: https://monax.io/docs/getting-started/. We are transitioning to a more standalone experience.

Thank you fro getting back with the above details, however I seem to be having trouble with these namely the "make build" stage as I get the following error:
Checking code for formatting style compliance.
go build -o /root/.go/src/github.com/hyperledger/burrow/target/burrow-a140ca6 ./cmd/burrow
vendor/golang.org/x/net/trace/trace.go:67:2: cannot find package "context" in any of:
/root/.go/src/github.com/hyperledger/burrow/vendor/context (vendor tree)
/usr/lib/go-1.6/src/context (from $GOROOT)
/root/.go/src/context (from $GOPATH)
Makefile:103: recipe for target 'build_db' failed
make: *** [build_db] Error 1
Kevin

You'll need to upgrade your go version to >= 1.7, you are on 1.6 before the context package was moved to stdlib. 1.6 is a year and a half old. I'd recommend go 1.8 or 1.9.

I am trying to install burrow on my OSX machine. I have followed the tutorial and it is stuck.
$ go version
go version go1.9.2 darwin/amd64
$ go get -d github.com/hyperledger/burrow
can't load package: package github.com/hyperledger/burrow: no Go files in /Users/sadafnoor/go/src/github.com/hyperledger/burrow
When I tried to make:
$ make install_vendor
xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

Ensure your $GOPATH is setup correct. If you export GOPATH=/Users/$USER/go then try to run make build again.


geometry transform problem

when setEAP, the bounding box is put near the origin(0,0), but feature geometries are not in the bounding box.
when i comment out the following line, things works fine
https://github.com/blueherongis/Heron/blob/a60f2827f1c0ea3de437c44f3273b194a8f56482/Heron/Components/GIS Import-Export/ImportVectorSRS.cs#L332

Can you post a GH definition to help troubleshoot this?


Add support for multiple schemas

Currently DataHerald only seems to know or care about the default schema. I tried to provide some convenient reporting views in another schema, but DataHerald ignores them. (PostgreSQL)

I asked about this on the discord and the reply was that DH is focusing on single database/schema for the time being as this is a common use case. From the code you can see that everything is tied to a db_connection_id which requires the specify the database/schema in the connection string. I found myself just moving over a few tables to a central schema (We're using MariaDB but concept is similar to PostgreSQL I think). Of course it depends on the use case and you might not be able to transfer tables/views. DH is still in early days so this is something that could be added in the future. I was looking into it but I think then opted for the easier route for now.
I'd be interested to discuss how it might make sense to be achieved.
I think the current setup makes it easy to organize and makes things not so complicated at least.
However,  if say, golden-records could be specified with tables from any schema and then the context was built with table and other info from any schema then it could possibly work.

I think it would have to look like - everywhere we accept a table_name we also accept an optional schema_name. If schema_name is not specified then table_name is assumed to be in the default (public) schema, just like in SQL.

HI @roy-moven -- you can connect to schemas other than the default schema by specifying the schema in the connection_uri like below
connection_uri": postgresql+psycopg2://<user>:<password>@<host>:<port>/<db-name>?options=-csearch_path=<my-schema>
You can read more about this in our documentation here
We currently do not support question answering from multiple databases concurrently, however this is a feature we are adding before year end.

Thank you @aazo11 that's a useful workaround! I missed that in the documentation.


Fix flow control bug [Different attempt]

WIP

****************************************************************

libgrpc.so

     VM SIZE                                                                   FILE SIZE
 ++++++++++++++ GROWING                                                     ++++++++++++++
  +0.0%     +16 [None]                                                           +8  +0.0%
  +0.0%     +16 src/core/ext/transport/chttp2/transport/chttp2_transport.cc     +16  +0.0%
      +1.2%      +8 [Unmapped]                                                       +8  +1.2%
      +0.2%      +8 perform_stream_op_locked                                         +8  +0.2%

  +0.0%     +32 TOTAL                                                           +24  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

[microbenchmarks] No significant performance differences

Fixes #12383


Display only cops for files and lines that have changed

Hello,
We display the rubocop warnings for only the lines changed in a pull request and not the whole code base. example
This allows us to

make warnings stringent without getting inundated with messages from our existing code base
prevent warning from getting introduced
slowly improve our code base

script uses git to determine the differences across revisions and prune the results of the actual rubocop call. (kudos to gist)
Would anyone be interested in a feature like this?

Looks useful, but I'd rather us not include any VC-specific features.


Incorrect location generated when desugaring arithmetic assign ops (e.g., a += b)

Describe the bug
An expression a += b is parsed as a pt::Expression::AssignAdd{left, right}. When this is translated from a pt to an ast it is desugared into an Assign { ..., Expression::Add { left, right}}. When left is a Storage access, left's location is wrong when it gets desugared: it ends up spanning the entire AssignAdd expression instead of just the left expression.
To Reproduce
I have a repository  that reproduces the bug.
Hyperledger Solang version
solang = { git = "https://github.com/hyperledger/solang.git", rev = "70af554c42748009e414e6263dd4607fb380e5dc", default-features = false }
solang-parser = { git = "https://github.com/hyperledger/solang.git", rev = "70af554c42748009e414e6263dd4607fb380e5dc" }

Include the complete solidity source code
// SPDX-License-Identifier: GPL-3.0-only
pragma solidity >0.7.0;
pragma experimental ABIEncoderV2;

contract foo {
    uint256 private _totalSupply;

    function updateStorage() public {
        _totalSupply += 1;
        _totalSupply *= 1;
        _totalSupply /= 1;
        _totalSupply -= 1;
        _totalSupply &= 1;
        _totalSupply |= 1;
    }

    function updateVariable() public pure {
        uint256 x;
        x += 1;
        x *= 1;
        x /= 1;
        x -= 1;
        x &= 1;
        x |= 1;
    }
}

Additional context
Running my code visits each binary expression (after desugaring), and checks to ensure that the left.loc().end() < right.loc.start(), and if not, prints an error. This is the output of my test on the above program:
$ cargo run
   === Function: updateStorage() ===

Error: start: 213 >= end 212 in expression _totalSupply += 1
    left: _totalSupply += 1
    right: 1

Error: start: 240 >= end 239 in expression _totalSupply *= 1
    left: _totalSupply *= 1
    right: 1

Error: start: 267 >= end 266 in expression _totalSupply /= 1
    left: _totalSupply /= 1
    right: 1

Error: start: 294 >= end 293 in expression _totalSupply -= 1
    left: _totalSupply -= 1
    right: 1

Error: start: 321 >= end 320 in expression _totalSupply &= 1
    left: _totalSupply &= 1
    right: 1

Error: start: 348 >= end 347 in expression _totalSupply |= 1
    left: _totalSupply |= 1
    right: 1

   === Function: updateVariable() ===

Success

Success

Success

Success

Success

Success

It's clear that the bug exists only when the LHS of an op-assign (+=, |=) is a storage access. This does not occur for local variables.

For what it's worth, from a client perspective I think there is strong value added for an AST library to not do this desugaring of a += b -> a = a + b. I may want to treat these two operations differently, and it's possible that I will try to access a source location that doesn't exist.
For instance, there is no way for me to access the location of the + in add expression aside from looking between the left and right expressions in the original source. But now, I need to double check that I don't end up with a += instead of a +...it's weird that we aren't guaranteed that Add{left, right} corresponds to a + operator in the original code.
Anyway, not the point of this issue, just my two cents

You're right, we should have an Expression::AddAssign in the AST. There are a few other things we de-sugar which we should not, like type() functions.


Switch e2e test docker-compose to docker compose

Summary

Many cosign pull requests have e2e test failing, such as https://github.com/sigstore/cosign/actions/runs/10238677353/job/28323361888?pr=3808.
Apparently this is because docker-compose was removed from the ubuntu-latest and windows GitHub Actions runners late last week:
https://github.com/actions/runner-images/issues/9692
I don't follow the ecosystem closely enough to understand it, but apparently docker compose is what most people are using to work around this.
Release Note

NONE
Documentation

N/A

Let's work on https://github.com/sigstore/cosign/pull/3809 instead.


BACKPORT fs/cromfs: Fix a hardFault caused by unaligned memory access

Summary
This is a backport of apache/incubator-nuttx/#6347 and apache/incubator-nuttx/#6350. These two fixes solve a hardFault bug in cromfs.
Impact
The fix lets the compiler know that the nodes in nsh_romfsimg might not be word aligned. The rest is taken care off by compiler.
Testing
This fix is tested with current PX4-Autopilot master branch.

Please add [BACKPORT] to the commit message (see all the commits in the repo for format) - then force push

@davids5 Done.

@vxj9800 will this also solve the QGC connection issue.

@say-paul I tested it and it connects to QGC. But, for some reason it doesn't like the telemetry on UART0 connection. So, use CONFIG_BOARD_SERIAL_TEL1="/dev/ttyS1" in default.px4board file for now. Also, in my quick test, the updated parameters didn't get saved on a restart. I'm not sure what the problem is right now.

@say-paul You will have to use this with PX4. First clone the PX4-Autopilot. Then open the files PX4-Autopilot/platforms/nuttx/NuttX/nuttx/fs/cromfs/cromfs.h and PX4-Autopilot/platforms/nuttx/NuttX/nuttx/tools/gencromfs.c and replicate the changes visible in the two commits above. Then build PX4 with make raspberrypi_pico_default. Convert the generated elf to uf2 and upload it to the board. Let me know if this process doesn't work.

@vxj9800 I follow the above steps but it has the same effect as when I put "CONFIG_FS_CROMFS=n" (another solution you told
before). In QGC , it shows rtk only and when I connect with "picocom -b 115200 /dev/ttyACM1" it shows "nsh>" in the terminal but it does not behave properly. "nsh>" move horizontally every time when I press "enter"


Improves performance on large commented logical lines

Fixes #509
> rm -rf ~/Library/Caches/black; time python3 -m black --check profiling/dict_big.py
All done! ✨ 🍰 ✨
1 file would be left unchanged.

real	0m2.984s
user	0m2.916s
sys	0m0.051s
> sed -i '' '/21233/s/$/  # comment/' profiling/dict_big.py
> git diff | cat
diff --git a/profiling/dict_big.py b/profiling/dict_big.py
index f330ac5..27a862d 100644
--- a/profiling/dict_big.py
+++ b/profiling/dict_big.py
@@ -7996,6 +7996,6 @@ config = some.Structure(
         "21229": "AB890X",
         "21230": "AB890X",
         "21231": "AB890X",
-        "21233": "AB890X",
+        "21233": "AB890X",  # comment
     }
 )
> rm -rf ~/Library/Caches/black; time python3 -m black --check profiling/dict_big.py
All done! ✨ 🍰 ✨
1 file would be left unchanged.

real	1m17.364s
user	1m17.007s
sys	0m0.144s
> git checkout comment-perf-fix
M	profiling/dict_big.py
Switched to branch 'comment-perf-fix'
Your branch is ahead of 'origin/master' by 1 commit.
  (use "git push" to publish your local commits)
> rm -rf ~/Library/Caches/black; time python3 -m black --check profiling/dict_big.py
All done! ✨ 🍰 ✨
1 file would be left unchanged.

real	0m3.030s
user	0m2.958s
sys	0m0.053s

Pull Request Test Coverage Report for Build 798

17 of 18 (94.44%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 96.094%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

black.py
17
18
94.44%

Totals

Change from base Build 797:
-0.01%

Covered Lines:
2903

Relevant Lines:
3021

💛  - Coveralls

Pull Request Test Coverage Report for Build 798

17 of 18 (94.44%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.01%) to 96.094%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

black.py
17
18
94.44%

Totals

Change from base Build 797:
-0.01%

Covered Lines:
2903

Relevant Lines:
3021

💛  - Coveralls


add new example with prisma smart subscriptions apollo

Once Apollo is also popular, i've added a new example based on prisma-subscriptions example with a working integration between:

Pothos
Smart Subscriptions Plugin
Apollo v4

It will make it easier for other people to configure their projects and avoid mistakes like mine #748

Looks like there are a few eslint issues to fix, but the rest of the tests and type checking seem to be passing now!

Forgot to install eslint on wsl xD
I think its now ok :D


Use composer to bring in erusev/parsedown and erusev/parsedown-extra

Per better practices, you should use composer to bring in erusev/parsedown from https://packagist.org/packages/erusev/parsedown and erusev/parsedown-extra from https://packagist.org/packages/erusev/parsedown-extra

https://github.com/bharley/mw-markdown/pull/19 does this and a lot more


add multi-line support in flexibletable

r? @patrickxb @mlsteele @maxtaco Thanks!

The comment in cell.go:24 is external facing, i.e. shown in the doc. emptyCell is only used internally during the rendering process. So I'm not sure the user of the package needs to know that. But I've added a comment for the emptyCell type. Let me know if it doesn't make sense!

Oh that makes sense about cell.go:24. I'm happy either way you want it then.

PTAL @mlsteele Thanks!

Thanks Miles!


convertDefinition failing when name == concatenated namePrefix

Describe the bug
I am encountering "conflicting definition" errors when using specific GraphQL field and type names with genqlient. The error message is as follows:

...../schema.graphql:13: conflicting definition for FooBarA; this can indicate either a genqlient internal error, a conflict between user-specified type-names, or some very tricksy GraphQL field/type names: expected 2 fields, got 1
exit status 1
main.go:9: running "go": exit status 1

To Reproduce
The issue occurs under specific conditions:

The schema includes a union whose name is the concatenation of a parent type's name and its field names in camel case.
The query includes fragments named identically to the types:

For a clearer understanding and a practical demonstration, I prepared a minimal reproducible example here: https://github.com/Ynng/genqlient-bug
Expected behavior
I expect the code generation process to successfully handle these scenarios without encountering conflicting definition errors.
genqlient version
v0.6.0
Additional Information
My guess is that the issue arises when convertDefinition() encounters a name that is the same as namePrefix list concatenated and formatted.
This causes problems down the road for Unions, leading to duplicate "UnionNameImplName" definitions.
I think the issue can be traced back to these two lines:
https://github.com/Khan/genqlient/blob/28aafc79a9f9065f7cb7e8bb2df49e5795896aeb/generate/convert.go#L465
https://github.com/Khan/genqlient/blob/28aafc79a9f9065f7cb7e8bb2df49e5795896aeb/generate/convert.go#L496
These lines inadvertently create two conflicting definitions: one from "UnionName + ImplName" and another from "Union + Name + ImplName."

Wow, good find. That sure is a way to construct a collision without any type names that are too weird!
You should be able to work around this with a typename directive. If I remember correctly you want to put that on Foo.bar and then it will become the prefix for all the union members from that branch. (Or maybe it works on the fragment FooBar as well, I forget. If not that's something we could add -- the only reason we might not have is because there was no obvious use.)
Ideally we could avoid this entirely, but I don't see an obvious way short of making basically all our type names, or at least all our fragment type names, uglier/longer. (Kinda a breaking change too.) Perhaps it's time for the collision-detector to add a suffix, although we'd have to make sure it's stable in its ordering. Suggestions welcome!


cmd/go: go mod import package can't find out the package which include capital letter

like title, now returned 1.12.9 version, and it's not a problem any more
What version of Go are you using (go version)?

$ go version

go 1.13
Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (go env)?
linux  amd64  ubuntu 18.04
go env Output
$ go env

What did you do?
action:   go mod tidy -v
output:
github.com/Microsoft/go-winio: cannot find module providing package github.com/Microsoft/go-winio

What did you expect to see?
Fetching https://goproxy.io/github.com/!microsoft/go-winio/@v/list
Fetching https://goproxy.io/github.com/!microsoft/@v/list
What did you see instead?

Please fill out the complete issue template. What command did you run, with what source files? What did you expect to see, and what did you actually see?

Please fill out the complete issue template. What command did you run, with what source files? What did you expect to see, and what did you actually see?

update

The module appears to be missing from goproxy.io for some reason. You'll need to take that up with them.
Note that Go 1.13 supports fallback to direct origins for modules that are not provided by the selected proxy. If you are currently setting
GOPROXY=https://goproxy.io

then with Go 1.13 you could try setting
GOPROXY=https://goproxy.io,direct

instead.

With Go 1.12, you may need to temporarily set GOPROXY=direct long enough to populate your local cache:
GOPROXY=direct go mod tidy

Closing, since the issue does not appear to be within the go toolchain.

@sunvim Fixed, Thanks for your report.


Add documentation for fetching credentials

Since backup migration accesses the buckets from the client computer and
doesn't interact with the server, the user needs to get the correct
secrets for their backup storage locations in order to actually access
the bucket.
Signed-off-by: Nolan Brubaker<EMAIL_ADDRESS>

I made a couple updates to this and merged in #1501, so closing.


Async agent delete function for while loop case

TL;DR
As title.
I forgot to handle the case the function in while loop.
Type

[x] Bug Fix
[ ] Feature
[ ] Plugin

Are all requirements met?

[x] Code completed
[ ] Smoke tested
[ ] Unit tests added
[ ] Code documentation added
[ ] Any pending items have an associated Issue

Complete description
If you use the current async delete function, it will face problem when you try to cancel the job in the waiting loop.

This is because the code here: https://github.com/flyteorg/flytekit/blob/master/flytekit/extend/backend/base_agent.py#L190-L199
It didn't give any space for user to use the default event loop, which is used by asyncio.run, so I need to create a new event loop.
Tracking Issue
https://github.com/flyteorg/flytekit/pull/1800
https://github.com/flyteorg/flyte/issues/3936
Follow-up issue
NA
OR
https://github.com/flyteorg/flyte/issues/

you could add add signal_handler to the event loop. https://stackoverflow.com/questions/23313720/asyncio-how-can-coroutines-be-used-in-signal-handlers

Really useful advice!
I will improve it now.

Due to the unique mechanism for asyncio in Python, I will use an event loop from head to toe in the program.
Here is a demo and explain video about my signal handler and delete function in base_agent.py, please take a look, thanks a lot!
https://youtu.be/N8lNQ9e6gIM

@pingsutw
I've recently updated the async agent solution in this pull request: GitHub PR #1802.
I've noticed a potential issue: if the user interrupts the program (Ctrl + C) after the while loop has successfully completed but before loop.close() is executed, the program doesn't terminate as one might expect. Is this behavior intended, or should we address it?

Thanks for @pingsutw's revision, the refactor is really amazing, I've learned a lot!

@pingsutw  Just added a test, please review, thanks a lot!


linux cannot  export *.umap

/umodel -path=/run/media/arpu/19d61293-7220-4a40-a236-d7fe1c782260/arpu/models3d/City16/Content  -export "*.umap"                                                                                 ✔  10285  00:41:09
Found 1300 game files (0 skipped) at path "/run/media/arpu/19d61293-7220-4a40-a236-d7fe1c782260/arpu/models3d/City16/Content"
Scanned game directory in 0.1 sec, 4172 allocs, 0.00 MBytes serialized in 0 calls.
Loading package: StarterContent/Maps/Advanced_Lighting.umap Ver: 510/0 Engine: 0 Names: 344 Exports: 47 Imports: 78 Game: 10000F0
Loading package: StarterContent/Maps/Minimal_Default.umap Ver: 511/0 Engine: 0 Names: 373 Exports: 74 Imports: 108 Game: 10000F0
Loading package: StarterContent/Maps/StarterMap.umap Ver: 511/0 Engine: 0 Names: 602 Exports: 639 Imports: 270 Game: 10000F0
Loading package: ThirdPersonBP/Maps/ThirdPersonExampleMap.umap Ver: 508/0 Engine: 0 Names: 407 Exports: 92 Imports: 123 Game: 10000E0
Loading package: City.umap Ver: 516/0 Engine: 0 Names: 1266 Exports: 2572 Imports: 485 Game: 1000140
Loaded in 0.0 sec, 92 allocs, 0.46 MBytes serialized in 119 calls.
Memory: allocated 668055 bytes in 1372 blocks
Full package loaded in 0.0 sec, 1 allocs, 0.00 MBytes serialized in 0 calls.
Memory: allocated 668055 bytes in 1372 blocks
Full package loaded in 0.0 sec, 1 allocs, 0.00 MBytes serialized in 0 calls.
Memory: allocated 668055 bytes in 1372 blocks
Full package loaded in 0.0 sec, 1 allocs, 0.00 MBytes serialized in 0 calls.
Memory: allocated 668055 bytes in 1372 blocks
Full package loaded in 0.0 sec, 1 allocs, 0.00 MBytes serialized in 0 calls.
Memory: allocated 668055 bytes in 1372 blocks
Full package loaded in 0.0 sec, 1 allocs, 0.00 MBytes serialized in 0 calls.
Memory: allocated 668055 bytes in 1372 blocks
Exported 0/0 objects in 0.0 sec

This isn't a linux issue, umodel cant export umaps.

The guy is a big "contributor" I see. Spawns lots of issues in lots of repositories.

ah sorry i am new to the Unreal Engine most work i have done is with webvr/webxr


AzBlob SAS URL doesn't work if Azurite is run on a custom hostname.

Bug Report
Hello 👋
I'm using the azblob package and had some trouble running tests against Azurite.
These are the versions I'm using:
# import (
#    "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
#    "github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas"
# )

> go list -m github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1

> go version
go version go1.23.1 darwin/arm64

> docker image ls | grep azurite
mcr.microsoft.com/azure-storage/azurite                   3.32.0            8ab49b8b5104

What happened?
I have some Go code that uses azblob which is backed by Azurite when testing.
This all works fine when my tests are running locally, and Azurite is available on <IP_ADDRESS>.
The full URLs are something like
http://<IP_ADDRESS>:10000/devstoreaccount1/mycontainer/...

I can create a container, create a blob, create a SAS URL for that blob, and download it OK.
However, if Azurite is on a custom hostname (for example in Gitlab CI, or when tests are also run inside docker), then GET-ing the SAS URL fails with
        <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
        <Error>
          AuthorizationFailure
          <Message>Server failed to authenticate the request. Make sure the value of the Authorization header is formed correctly including the signature.
        RequestId:de7d4aa7-8755-47ce-b53b-d8b45449b50b
        Time:2024-09-25T11:00:30.694Z</Message>
        </Error>

In this case the full URL is something like:
http://azurite:10000/devstoreaccount1/mycontainer/...

Note that I can see in the Azurite logs that creating the container and blob was successful (HTTP 200).
What did you expect or want to happen?
Expected http.Get(url) to work when url was created without error.
How can we reproduce it?

go.mod
module reprod

go 1.23.1

require github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.4.1

require (
	github.com/Azure/azure-sdk-for-go/sdk/azcore v1.14.0 // indirect
	github.com/Azure/azure-sdk-for-go/sdk/internal v1.10.0 // indirect
	golang.org/x/net v0.27.0 // indirect
	golang.org/x/text v0.16.0 // indirect
)

reprod_test.go
package azblob

import (
	"cmp"
	"context"
	"io"
	"net"
	"net/http"
	"net/url"
	"os"
	"testing"
	"time"

	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/bloberror"
	"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob/sas"
)

const (
	accountName = "devstoreaccount1"
	accountKey  = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="
	container   = "mycontainer"
	key         = "mykey"
	content     = "lorem ipsum"
)

func TestAzurite(t *testing.T) {
	azuriteURL := &url.URL{
		Scheme: "http",
		Host: net.JoinHostPort(
			cmp.Or(
				os.Getenv("AZURITE_HOST"),
				"<IP_ADDRESS>",
			),
			"10000",
		),
		Path: accountName,
	}
	t.Logf("URL: %s", azuriteURL.String())

	creds, err := azblob.NewSharedKeyCredential(accountName, accountKey)
	if err != nil {
		t.Fatalf("new keys")
	}
	client, err := azblob.NewClientWithSharedKeyCredential(azuriteURL.String(), creds, nil)
	if err != nil {
		t.Fatalf("new client: %s", err)
	}

	// Create container
	_, err = client.CreateContainer(context.Background(), container, nil)
	if bloberror.HasCode(err, bloberror.ContainerAlreadyExists) {
		err = nil
	}
	if err != nil {
		t.Fatalf("create container: %s", err)
	}

	// Upload.
	_, err = client.UploadBuffer(context.Background(), container, key, []byte(content), nil)
	if err != nil {
		t.Fatalf("upload buf: %s", err)
	}

	// Create and use SAS URL.
	bc := client.ServiceClient().NewContainerClient(container).NewBlobClient(key)
	sasURL, err := bc.GetSASURL(
		sas.BlobPermissions{Read: true},
		time.Now().Add(time.Hour),
		nil,
	)
	if err != nil {
		t.Fatalf("Get SAS URL: %s", err)
	}
	t.Logf("SAS URL: %s", sasURL)

	resp, err := http.Get(sasURL)
	if err != nil {
		bs, _ := io.ReadAll(resp.Body)
		t.Fatalf("get sas url: %s\n%s", err, bs)
	}

	got, _ := io.ReadAll(resp.Body)
	t.Logf("Got content: %s", got)
}

docker-compose.yaml
name: reprod

services:
  azurite:
    image: mcr.microsoft.com/azure-storage/azurite:3.32.0
    ports:
      - 10000:10000

  mytest:
    image: golang:1.23
    environment:
    - AZURITE_HOST=azurite
    volumes:
      - .:/ws
    working_dir: /ws
    entrypoint: ["go", "test", ".", "-v"]

Run
docker compose up azurite

then compare
go test . -v
docker compose run mytest

Anything we should know about your environment.
MacOS

Hi @vikblom ,
Thank you for reporting this, we are looking into this issue and will get back to you here soon.


Better explain how to use this module in Node

Since you can install this package from npm, the instructions in the readme are not quite accurate.

Thank you!


Finding Inactive Guest Users

I am trying to find a way to generate a report of inactive guest users (i.e. they haven't signed in during the past 60 days). Even the ability to add a last logon date to a report would be helpful. Is that possible?

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

ID: c6eb6697-4ace-adb6-c922-df8a9a485283
Version Independent ID: fd4ce34d-d55e-92af-d71a-625210ad3a63
Content: Properties of a B2B guest user - Azure Active Directory
Content Source: articles/active-directory/b2b/user-properties.md
Service: active-directory
Sub-service: b2b
GitHub Login: @msmimart
Microsoft Alias: mimart

@dustingarden Thanks for your feedback! We will investigate and update as appropriate.

@dustingarden Unfortunately, there is no way to query inactive state of guest users at this time.  The only solution would be to check the sign-in logs to see if the user has signed in and accessed your resources. Please refer to Get started with the Azure Active Directory reporting API to learn more about Azure AD reporting.
You can post this as a feedback at UserVoice.  This will allow the community to upvote and for the product team to include into their plans.

@dustingarden We will now proceed to close this thread. If there are further questions regarding this matter, please reopen it and we will gladly continue the discussion.


Support the libaom library?

Does it support the libaom library? My requirement is to encode the video into av1 format

If you build ffmpeg-kit with libaom support then you can use the test applications to test the build.

If you build ffmpeg-kit with libaom support then you can use the test applications to test the build.

Thanks for your reply. What should I do next?  just "enable --libaom" and build?

Yes, build a new ffmpeg-kit binary, run one of the top level build scripts (e.g. android.sh, ios.sh, tvos.sh, macos.sh) and add the --enable-libaom flag.

Yes, build a new ffmpeg-kit binary, run one of the top level build scripts (e.g. android.sh, ios.sh, tvos.sh, macos.sh) and add the --enable-libaom flag.

Understood, I will give it a try and come to a conclusion later. Thank you

Yes, build a new ffmpeg-kit binary, run one of the top level build scripts (e.g. android.sh, ios.sh, tvos.sh, macos.sh) and add the --enable-libaom flag.

Understood, I will give it a try and come to a conclusion later. Thank you

Following your instructions, after rebuilding the build, libaom is now supported, but it is very very slow ... It takes an hour to transcode a 20MB video。Have you tried libsvtav1 or other encode lib?

Yes, libaom is slow, so we don't build it by default. We also tried other AV1 encoders, but ran into problems with them."


END record on multimodel pdb file output

END records are generated for each output molecule when outputting pdb despite our calling SetLast(false).

b8413e962422c7651bc16c8f70f9d89d236c4de8


Add a platform specific configuration checker

For each platform, we may need to perform some basic checks to see
that available tools perform as we expect them.
For the moment, the added checkers test that Perl gives the expected
path format.  This should help MingW users to see if they run an
appropriate Perl implementation, for example.
Checklist

[ ] documentation is added or updated

Fixes #2846

Documentation needs added, that's why it's still WIP.  However, I'd appreciate some early comments.

What docs, other than a README?  But this looks good so far.

Documentation added.  (yes, @richsalz, the README ;-) )

@mattcaswell, I just pushed an update...  is the text better now?

Is it possible to place it directly to *-makefile.tmpl? After all, the constraint  has everything to do with the target makefile...

This should help MingW users to see if they run an appropriate Perl implementation, for example.

It only helps to detect obviously inappropriate combination, not all incompatible ones. Well, I'm not actually suggesting to attempt the latter. As it's impossible to formalize...

Is it possible to place it directly to *-makefile.tmpl? After all, the constraint  has everything to do with the target makefile...

I was thinking about it, but that seemed overly complex, I wasn't sure of all the consequences.

Is it possible to place it directly to *-makefile.tmpl?

I was thinking about it, but that seemed overly complex

But there are blocks in .tmpl-ates that are evaluated. And if I simply drop die there, it dies... And it's last line. Well, an empty Makefile is created, and one can argue that it shouldn't, i.e. test should be performed earlier... Oh well...

Well, an empty Makefile is created, and one can argue that it shouldn't, i.e. test should be performed earlier... Oh well...

Exactly.

Another thing, apropos implementing this in the build file templates, is that the check is made relatively late in the configuration process.  The idea with this check is to have it fairly early...  to "nip it in the bud", so to say.

On hardly related note, Strawberry Perl is also an option for Windows builds.

Merged.
master: d192a3aaeb76fc89f8285b4dc938c2bc0c37d0d4 and 44eb65ce20d673d0332802275d54f6811f448076
1.1.0: a40b5be27e28eaf5a8be7193c8b6460bc6f851b4 and 08beac4f3d37247e2ed3bf49dd7d760f4c3e0389

Strawberry Perl is also an option for Windows builds.

Have we tested it?  Feel free to add something about it in NOTES.PERL


Refactor persistence.

Unify persistence across app:

Implement "Persister PersisterFactory#create(Class clazz)".
Implement generic "Persister#{load, save}".
Use Gson.

Significantly improved code quality.


Update script for bumping versions in concepts-pipeline #5804

What does this change?
As a result of https://github.com/wellcomecollection/concepts-pipeline/pull/149, the concepts pipeline now allows for multiple versions/Terraform stacks in parallel.
This updates the script which bumps the catalogue pipeline date in the concepts pipeline repository to make it bump the date in all of the Terraform stacks.
Checklist

[ ] Does this patch need a change to the documentation?
[ ] Do you need to update the Catalogue API Swagger?

How to test
The modified portions of the script can be tested locally by running them from the root of the concepts-pipeline repository.

This needed a little tweak: https://github.com/wellcomecollection/catalogue-api/commit/14fd2733ddbe9f897e6a0ae1f219e5012b6ecdda


Add upload records and download project info

[x] Move to PyCap 2.0.0a0
[x] Fixing test files
[x] Add more tests
[x] Add configure project to check for consistent setting

Hello @JuliaSprenger! Thanks for opening this PR.

In the file redcap_bridge/project_control.py:

Line 48:82: W292 no newline at end of file

Do see the Hitchhiker's guide to code style

GH actions is still not triggering reliably. This needs to be fixed first before merging.


Regex for guess_layer_class

Unfortunately not everyone uses the same naming convention. I tried adding hints by extending layers.hints but the regex that is used there is too specific for the files I want to match. I'd like to extend guess_layer_class as follows (and as such change Hint = namedtuple('Hint', 'layer ext name') into Hint = namedtuple('Hint', 'layer ext name regex'):
def guess_layer_class(filename):
    try:
        directory, name = os.path.split(filename)
        name, ext = os.path.splitext(name.lower())
        for hint in hints:
            if hint.regex:
                if re.findall(hint.regex, name, re.IGNORECASE):
                    return hint.layer

            patterns = [r'^(\w*[.-])*{}([.-]\w*)?$'.format(x) for x in hint.name]
            if ext[1:] in hint.ext or any(re.findall(p, name, re.IGNORECASE) for p in patterns):
                return hint.layer
    except:
        pass
    return 'unknown'

I don't want to change the regex that is used in patterns because if it would not be specific it would currently match top for example which could be anything really.
If you're alright with this I can create a pull request for it.

Yeah that looks good, go ahead an open a PR. Adding some test cases with the filenames that were giving you trouble would rock


the extension behaves differently than the tutorial/video

Describe the bug
The instructions on how to record the filling in of fields on a website are different. It does not open a recording window and there is no option available to stop recording.
Choosing "configure this field" also does not follow the instructions in the tutorial; the extension opens a new configuration window instead of staying on the page we want to record.
Desktop (please complete the following information):

OS: Windows 10 Pro
Browser Brave
Version 1.69.162

Many thanks

We have added recorder feature extension within devtools you can use same to record website. previous recorder has some issue,
Right click and inspect element under the dev tools. There is a tab called recorder. Use it to record the actions which you perform on website and use export option with auto clicker to export the and import it into extension from configuration page
https://developer.chrome.com/docs/devtools/recorder


Book progress reset

General Information
Describe the bug:
After save and quitting my game, I reloaded it about an hour later, opened my druid book and all my unlocked items are now locked again and can't re-unlock them
To Reproduce:

Quit game
Reload game
Open book

Expected behavior:
To still have all my progress within the druid book

Environment Versions
3.0.26
Mystic Mods Versions

MysticalLib: 1.12.2-1.7.0
Mystical World: 1.12.2-1.8.3

Other Versions:

Conflicting mod (if regarding mod integration):
Other mods you think could cause issues:
Forge: <IP_ADDRESS>47
Minecraft: 1.12.2
Modpack (if available): MCEternal version <IP_ADDRESS>

What's your Patchouli version?  The issue seems to be related to Patchouli and we've been talking with their maintainers to try and hammer out why this might be happening only occasionally and seemingly not reproducibly.  The debug versions of Patchouli seem to fix it, but let us know what version of Patchouli you have first.
Or give https://cdn.discordapp.com/attachments/571280713601646602/766070163786170428/Patchouli-1.0-21-debug3.jar a shot and see if it ever happens again.

I'm using Patchouli-1.0-20.jar. I'll try the other version and let you know

There's actually a release version of Patchouli that fixes it as well, which is 1.0-22 (I believe).
This is an issue with Patchouli however, not with Roots; updating should fix it.

Is there any way to get my progress back in the book aswell? As when trying to get the entries back it won't work. Or will the update fix that?

It is as simple as updating Patchouli.  The advancements are actually there, it just failed to load them due to how advancements were loaded on the client.

Thank you

Basically, Patchouli was loading advancements before the server sent them to the client, thus thinking you had no advancements unlocked.


Do not merge: Vagrantfile: testing merged box

This tests a new build of the VMs  which will be used as part of the Ginkgo CI migration.
Signed-off by: Ian Vernon<EMAIL_ADDRESS>

Closing as this was just for testing purposes.

@ianvernon can you delete test-merged-boxes branch if no longer used?


Why a class with @pinject.inject is always singleton? Is it a bug?

OS: macOS 10.14.5
Python: 3.7
Dependencies:
[tool.poetry.dependencies]
python = "^3.6"
numpy = "^1.16"
PyContracts = "^1.8"
quandl = "^3.4"
pandas = "^0.24"
pinject = "^0.14.1"
typing_extensions = "^3.7"

[tool.poetry.dev-dependencies]
freezegun = "^0.3.11"
pytest = "^4.5"
PyHamcrest = "^1.9"
flake8 = "^3.7"
codecov = "^2.0"
pytest-cov = "^2.7"
jupyterlab = "^0.35.6"
nbval = "^0.9.1"
mypy = "^0.701.0"
pytype = "^2019.5"

Thank you for the lib. I enjoy your design decisions which make it the closest thing to dependency injection in Python I've seen so far. I'd like to use it. But have a problem in the code as follows:
class MyRegistry:
    def reg(self):
        return 42

class FooClass:
    @pinject.inject(['my_registry']) # https://github.com/google/pinject/blob/1e785b550cad4d4f9fd7f60a7d047dab9f7410e0/pinject/bindings.py#L168 make the FooClass singleton
    def __init__(self, my_registry, param):
        self.my_registry = my_registry
        self.param = param

class MainClass:
    def __init__(self, provide_foo_class):
        a = provide_foo_class(param=1)
        b = provide_foo_class(param=2) # this line gets FooClass instance from the cache since it's singleton
        print(a.my_registry.reg()) # works fine
        print(b.my_registry.reg()) # obivously, works fine too
        print(a.param)
        print(b.param) # this is actually `a` instance, so it prints 1 instead of 2

if __name__ == '__main__':
    obj_graph = pinject.new_object_graph()
    obj_graph.provide(MainClass)

I tried to override FooClass scope in custom spec, but it throws the exception of ambiguity since FooClass is registered as singleton. I can work around it with the FooClassFactory that creates instances of FooClass, but it seems unnecessary when there is provide_ facility.
How to make it work properly?

By default Pinject uses singleton, you can specify PROTOTYPE as scope.

Pinject has two built-in scopes. Singleton scope (SINGLETON) is the default and always caches. Prototype scope (PROTOTYPE) is the other built-in option and does no caching whatsoever.

Every binding is associated with a scope. You can specify a scope for a binding by decorating a provider method with @in_scope(), or by passing an in_scope arg to bind() in a binding spec's configure() method.

https://github.com/google/pinject/blob/master/README.rst#scopes

I'm facing the same issue.
I tried to make it as prototype in a spec but then I get an ConflictingExplicitBindingsError when I do it like this:
class MyBindingSpec():
    def configure(self, bind):
       bind('foo_class', to_class=FooClass, in_scope=pinject.PROTOTYPE)


eslint.probe does not appear to honor "pug"

I am trying to incorporate https://github.com/unrelentingtech/eslint-plugin-pug with eslint in vscode and I keep getting:
ESLint is not running. By default only TypeScript and JavaScript files are validated.
If you want to validate other file types please specify them in the 'eslint.probe' setting.

I add "pug" to eslint.probe and it doesn't seem to make a difference.
    "eslint.probe": [
        "javascript",
        "javascriptreact",
        "typescript",
        "typescriptreact",
        "html",
        "vue",
        "markdown",
        "pug"
    ]

Do you have an extension installed that adds the pug language id. Otherwise the ESLint extension doesn't know about pug files.

I have ditto.convert-html-to-pug, mrmlnc.vscode-pugbeautify and mrmlnc.vscode-puglint installed.
Not sure if they add a language id. How can I tell?

When you open the Language Mode picker does pug show up in it?

Looks like it

@initplatform interesting. Can you provide me with a typical pug setup that should work best as a GitHub repository I can clone.

Hi @dbaeumer,
I started the process of making a sample repository, but then I noticed I was no longer receiving the error.
I did update VSCode a couple of times since I first posted this, so that may be it. 🤷
However, I am also still not seeing any linting on my pug files. Upon further inspection, it looks like eslint-plugin-pug doesn't actually lint pug files, it lints javascript in the script tags of pug files :/
So, looks like I will revert back to using pug-lint
Thanks for helping out!

Hello! Can you please help me with eslint-plugin-pug? It only highlights problems when eslint is run via CI, like: ./node_modules/.bin/eslint --ext .js,.pug . But when I simply open .pug files, is doesn't highlight anything and problems don't appear in  PROBLEMS tab of terminal.

Since TSX is typescriptreact:

Maybe try adding it as jade?


Support for CompatibleProfileLevelSet() missing in MPEG-H decoder

          Hi Christof,

thank you for your insightful comment.
Based on my understanding if LC4 is used by stream, this check in decoder/ia_core_coder_init_config.c will fail:
   if (dec_proc_core_chans > MAX_NUM_CHANNELS_LVL3 || ref_layout_chans > MAX_NUM_CHANNELS_LVL3)
    {
      return IA_MPEGH_DEC_INIT_FATAL_STREAM_CHAN_GT_MAX;
    }

because
decoder/ia_core_coder_cnst.h:#define MAX_NUM_CHANNELS_LVL3 16

Hence why we were not able to decode the stream.
If I understand your comment correctly libmpegh may in case of LC4 and CompatibleProfileLevelSet() flag revert to BP3 and in that case in code check vs MAX_NUM_CHANNELS(24) will be used instead and the stream may potentially play.
  case MPEGH_PROFILE_LC_LVL_3:
    if (dec_proc_core_chans > MAX_NUM_CHANNELS || ref_layout_chans > MAX_NUM_CHANNELS ||

However since this is decoder internals I assume the patch would have to be done to the libmpegh as AFAIK there is no way to produce this behavior just by using the decoder API.
Adam
Originally posted by @miartad in https://github.com/ittiam-systems/libmpegh/issues/49#issuecomment-1470087273

Support for processing compatibleProfileLevelSet is available on latest master.


Use post.date when no post.updated entry exists

Summary
Without this fix, there is no date if you set post_listing_date = "updated" and the post has no updated date.

Related issue
#326
#330
Changes
If the post doesn't has an updated entry, the creation date is used:

Accessibility

Screenshots

Type of change

[x] Bug fix (fixes an issue without altering functionality)
[ ] New feature (adds non-breaking functionality)
[ ] Breaking change (alters existing functionality)
[ ] UI/UX improvement (enhances user interface without altering functionality)
[ ] Refactor (improves code quality without altering functionality)
[ ] Documentation update
[ ] Other (please describe below)

Checklist

[ ] I have verified the accessibility of my changes
[ ] I have tested all possible scenarios for this change
[ ] I have updated theme.toml with a sane default for the feature
[ ] I have made corresponding changes to the documentation:

[ ] Updated config.toml comments
[ ] Updated theme.toml comments
[ ] Updated "Mastering tabi" post in English
[ ] (Optional) Updated "Mastering tabi" post in Spanish
[ ] (Optional) Updated "Mastering tabi" post in Catalan

Great idea! I think it should be in the docs. Could you please update the Mastering tabi (English) post and the comments in config.toml and theme.toml?

Thank you!


Add plugin pipeline-utility-steps

Provides common functionality for easy use in pipeline scripts or shared libraries
steps doc: https://www.jenkins.io/doc/pipeline/steps/pipeline-utility-steps/

hi @seanly , are you still interested in this?

Temporarily closed this issue, no solution found


Catch LinkageError for ClassLoaderUtil.isClassPresent in case class is present but is failed to load

What's the purpose of this PR
Catch LinkageError for ClassLoaderUtil.isClassPresent in case class is present but is failed to load
Which issue(s) this PR fixes:
Fixes #4086
Brief changelog

Catch LinkageError and log error for ClassLoaderUtil.isClassPresent

Follow this checklist to help us incorporate your contribution quickly and easily:

[x] Read the Contributing Guide before making this pull request.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit tests to verify the code.
[x] Run mvn clean test to make sure this pull request doesn't break anything.
[x] Update the CHANGES log.

Codecov Report

Merging #4097 (7db3f7e) into master (02fff62) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@             Coverage Diff              @@
##             master    #4097      +/-   ##
============================================
+ Coverage     52.43%   52.47%   +0.04%
- Complexity     2610     2612       +2
============================================
  Files           484      484
  Lines         15203    15206       +3
  Branches       1572     1572
============================================
+ Hits           7971     7979       +8
+ Misses         6676     6672       -4
+ Partials        556      555       -1

Impacted Files
Coverage Δ

...p/framework/apollo/core/utils/ClassLoaderUtil.java
59.25% <100.00%> (+13.42%)
:arrow_up:

.../apollo/internals/RemoteConfigLongPollService.java
78.31% <0.00%> (+1.20%)
:arrow_up:

...o/openapi/filter/ConsumerAuthenticationFilter.java
100.00% <0.00%> (+5.88%)
: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 02fff62...7db3f7e. Read the comment docs.


Documentation: islandora-playbook README link for installation docs is currently broken

The islandora-playbook README link for installation docs is currently broken
The link label is "official installation documentation for Islandora 8" and the current URL is:
https://islandora.github.io/documentation/installation/
which does not load content. We may just want to create some basic content for that URL so that it loads something.
For now I am proposing changing the link in the README to this URL that does load content:
https://islandora.github.io/documentation/installation/component_overview/

Resolved with https://github.com/Islandora-Devops/islandora-playbook/commit/3c78ba7a1e4c037d3f211fed8ed3bc3b6203b389


Implement finalized suggestions to the names

Implement suggestion to the names, once when they are finalized in #129

Completed by #345, according to the conclusions in #129.


#140614543 Initial Frontend Setup

What does this PR do?
Sets up the project for frontend development.

Codecov Report

Merging #17 into develop will decrease coverage by 0.03%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##           develop      #17      +/-   ##
===========================================
- Coverage    94.39%   94.35%   -0.04%
===========================================
  Files           17       17
  Lines          321      319       -2
  Branches        57       57
===========================================
- Hits           303      301       -2
  Misses          18       18

Impacted Files
Coverage Δ

server/routes/Index.js
100% <ø> (ø)
: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 00bb333...42207f4. Read the comment docs.


Ping fails if you choose a ping paket size below 56 bytes

⚠ Please verify that this bug has NOT been raised before.

[X] I checked and didn't find similar issue

🛡 Security Policy

[X] I agree to have read this project Security Policy

Description
When I set the ping paketsize below 16 bytes pinging fails and shows host offline.
👟 Reproduction steps
Set ping paketsize below 16 bytes.
👀 Expected behavior
A ping paketsize of 1 byte should work.
😓 Actual Behavior
Ping fails, shows host "offline" with the next ping.
When you use 16 bytes for ping it works. Below that number it will always 100% fails.
Why can I go below 16 bytes when Uptime Kuma can handle it?
Why can't Uptime Kuma handle bytes below 16 byte?
https://github.com/louislam/uptime-kuma/assets/4119560/b4e1f0cb-4b00-4164-9709-bffaa5600da1
🐻 Uptime-Kuma Version
1.21.1
💻 Operating System and Arch
Ubuntu 22.10
🌐 Browser
Chrome, Firefox, Edge, Vivaldi, Opera One - ANY browser
🐋 Docker Version
Docker version 20.10.21, build 20.10.21-0ubuntu1~22.10.2
🟩 NodeJS Version
Unknown (build in Docker)
📝 Relevant log output
No log available (running in docker).

Did some research on this.
The message is actually a successful message.

Now I try to compare the ping result.
Raw ping command test:
56-byte's output (ping -c 1 rs-debian):
PING rs-debian.pig-yo.ts.net (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from rs-debian.pig-yo.ts.net (<IP_ADDRESS>): icmp_seq=1 ttl=63 time=14.9 ms

--- rs-debian.pig-yo.ts.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

1-byte's output (ping -c 1 -s 1 rs-debian):
PING rs-debian.pig-yo.ts.net (<IP_ADDRESS>) 1(29) bytes of data.
9 bytes from rs-debian.pig-yo.ts.net (<IP_ADDRESS>): icmp_seq=1 ttl=63

--- rs-debian.pig-yo.ts.net ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

There is time info in 1-byte's output. According to https://docstore.mik.ua/manuals/hp-ux/en/B2355-60130/ping.1M.html:

If packet-size is smaller than 16 bytes, there is not enough room for timing information. In that case, the round-trip times are not displayed.

So I think it maybe a parsing issue of node-ping.
https://github.com/louislam/node-ping/blob/master/lib/parser/linux.js
I think the better handling should be, returning the successful result, but with -1/undefined ping time value when <16 package size.

Or just set a minimum value of 16 bytes. I think very few people know this (I didn't) and it would be equally confusing for people to set it to 1 byte and don't understand why the ping value is broken.

Or just set a minimum value of 16 bytes. I think very few people know this (I didn't) and it would be equally confusing for people to set it to 1 byte and don't understand why the ping value is broken.

The weird thing is the 16-byte limit doesn't apply to Windows.

I checked with Wireshark and the packet looks the same as on Linux. I think the only difference for a larger packet is that the "Timestamp" and "Timestamp Reply" fields are included, which can be used to eliminate the server processing time from the calculated ping. But servers may not implement  these fields anyway because of security reasons.

@louislam @CommanderStorm
Should I go ahead with implementing a minimum limit of 16 bytes on frontend as mentioned here

Or just set a minimum value of 16 bytes. I think very few people know this (I didn't) and it would be equally confusing for people to set it to 1 byte and don't understand why the ping value is broken.

Or modify node-ping?

So I think it maybe a parsing issue of node-ping. https://github.com/louislam/node-ping/blob/master/lib/parser/linux.js
I think the better handling should be, returning the successful result, but with -1/undefined ping time value when <16 package size.

Given that "fixing it in the dependency" would essentially return invalid ping results
=> be confusing to our users
I think setting a minimum value on our side is a better choice.
Ignoring that this error is platform dependent[^1] and adding an help text (the minimum of 16 packets is an upstream limitation of ping and exists to make sure that the results are statistically significant) seems like a good choice.
Cc @chakflying for a second opinion
[^1]: I don't fully see a reason why lowering this parameter this far is better, but maybe @GoodSoulGermany has one

Authoritarian Approach:

Limit the input field in front-end to a minimum of 16.
Add logic in back-end to clamp values <16 when running ping (optionally on Linux only)

Non-authoritarian Approach:

Display help text when user inputted value < 16.
Fix logic in node-ping such that it would not fail to parse if the time value is not present. Just return null for the ping for display.

Both are fine by me. Note that for the help text, I don't think it has anything to do with statistical significance. If I were to write it it would just be "packet size < 16 does not produce round-trip times in Linux".


vapoursynth.Error: transfer: Function does not take argument(s) named logceis, logceid

Hello,
I compiled and installed r25 for vapoursynth and got the above message.

Ah right these parameters were never registered in the transfer prototype… Should be fixed in fdb042ecbd30c3b2844de4de593bf5c67cb3d50d


Large scale shadows

From the forum: https://groups.google.com/d/msg/cesium-dev/25jPqr5ODg0/79dIxAjVDQAJ
(See also https://groups.google.com/forum/#!msg/cesium-dev/INkyXhFVcf4/iS6QyZckDwAJ)
Shadows are tuned to objects closer to earth, at a range of about 5000 meters, so larger scale views from space like this don't cast shadows:

Came up again on the forum https://groups.google.com/forum/#!topic/cesium-dev/FLOUH6ndQhc

Reported again on the forum: https://groups.google.com/d/msg/cesium-dev/2rbQUz8AjDA/qBDd6fl2BQAJ


422 modus dropdown error

Description
Icon component expected an assignment and instead got a function call. OnClick parameter was null and thus threw an error. Resolved issue by removing function call and assigning object instead.
Fixes #422
Type of change

[x ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation update

How Has This Been Tested?
Manual Testing and unit tests added.
Checklist:

[x ] My code follows the style guidelines of this project
[x ] I have performed a self-review of my own code
[x ] I have commented my code, particularly in hard-to-understand areas
[x ] I have made corresponding changes to the documentation (including CHANGELOG updates)
[ x] My changes generate no new warnings
[x ] I have added tests that prove my fix is effective or that my feature works
[x ] New and existing unit tests pass locally with my changes
[n/a ] Any dependent changes have been merged and published in downstream modules
[x ] I have checked my code and corrected any misspellings

Should we update the version in the package.json since the package-lock.json is updated to 0.1.5?
Also we should squash the commits if it is available


strange (incorrect) mappings of pathogens in APS

We have found a few oddities in the name matchings for the APS scrape.  Some of the pathogens are being identified as "EST" from NCBI.  An example will help illustrate this:
mapped pathogen:  NCBITaxon:1585532 (Beta vulgaris/Cercospora beticola mixed EST library)
The verbatim name:  Beet curly top virus (BCTV)
The correct pathogen:  NCBITaxon:10840  (Beet curly top virus)
It appears to me that the algorithm is being greedy in some way, and stopping after recognizing "Beet" and mapping to beet (Beta vulgaris)  But I have no idea why it maps to the mixed EST library, instead of mapping to just plain beet.
Here is the offending line from the scrape:
Curly top	Beet curly top virus (BCTV)	Beet curly top virus (BCTV)	NCBITaxon:1585532	pathogen of	http://purl.obolibrary.org/obo/RO_0002556	Diseases of Cucurbits (Citrullus spp., Cucumis spp., Cucurbita spp., and others)	Citrullus spp., Cucumis spp., Cucurbita spp., and  s	NCBITaxon:3653	R. D. Martyn, M. E. Miller and B. D. Bruton, primary collators (last update 2/19/93). Diseases of Cucurbits (Citrullus spp., Cucumis spp., Cucurbita spp., and others). The American Phytopathological Society. Accessed on 2016-09-07 at http://www.apsnet.org/publications/commonnames/Pages/Curcubits.aspx	http://www.apsnet.org/publications/commonnames/Pages/Curcubits.aspx	2016-09-07

Thanks for sharing this specific example.
You are correct that GloBI's (old) taxon mapping algorithm was greedy, chopping off terms until a single word remained (now the matching is a bit less greedy). This caused  Beet curly top virus (BCTV) to be chopped off to Beet, which was then mapped to "Beta". Resolving "Beta" via https://resolver.globalnames.org results in an exact canonical match to ncbi taxon 1585532 . https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1585532 . This dubious NCBI matching is known to occur via globalnames.org and I've reported an example of this via https://github.com/GlobalNamesArchitecture/gni/issues/48 which led to   https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?id=1585532 .

@austinmeier I've added correct mappings for the terms in https://github.com/jhpoelen/samara/commit/0a263758e21285c91dcdf7b77bbb2df2c5d3746b . Please review. These should be applied on the next aps scrape. Leaving issue open until we can verify this is actually the case.

I just ran a apsnet scrape and found that the mapping added via https://github.com/jhpoelen/samara/commit/0a263758e21285c91dcdf7b77bbb2df2c5d3746b are now being applied.
@austinmeier @marieALaporte please continue to add mapping corrections to the files in https://github.com/jhpoelen/samara/tree/master/src/main/resources/org/planteome/samara/apsnet .  This would include PO/taxon mappings .

So I think there might be an issue with a blanket remapping using the taxonmap.tsv...
There are two places an NCBITaxon:ID shows up, HOST, or PATHOGEN.  In cases of host being assigned an "EST" taxon, it is as simple as just using the plant portion of the EST.  There are actually only 3 examples, and the host_label is in 1:1 agreement with the 'host' ID
NCBITaxon:331356 - Triticum spp. L.
NCBITaxon:910407 -  Brassica
NCBITaxon:69324 - Gossypium spp.

However, in the case of pathogen mappings from these EST taxons, we see more that are just incorrect.  And most importantly: the mappings are not 1:1.  Here is an example of a single NCBITaxon:ID being mapped to multiple pathogen_labels
NCBITaxon:176297 - Maize chlorotic dwarf virus (MCDV)
NCBITaxon:176297 - Maize chlorotic mottle virus (MCMV)
NCBITaxon:176297 - Maize leaf fleck virus (MLFV)
NCBITaxon:176297 - Maize line virus (MLV)
NCBITaxon:176297 - Maize mosaic virus (MMV)
NCBITaxon:176297 - Maize pellucid ringspot virus (MPRV)
NCBITaxon:176297 - Maize rayado fino virus (MRFV)
NCBITaxon:176297 - Maize red stripe virus (MRSV)
NCBITaxon:176297 - Maize ring mottle virus (MRMV)
NCBITaxon:176297 - Maize rough dwarf virus (MRDV)
NCBITaxon:176297 - Maize sterile stunt virus (strains of barley yellow striate virus)
NCBITaxon:176297 - Maize streak virus (MSV)
NCBITaxon:176297 - Maize tassel abortion virus (MTAV)
NCBITaxon:176297 - Maize vein enation virus (MVEV)
NCBITaxon:176297 - Maize wallaby ear virus (MWEV)
NCBITaxon:176297 - Maize white leaf virus
NCBITaxon:176297 - Maize white line mosaic virus (MWLMV)

You can see that the pathogens are all different viruses, but they are all being mapped to "Zea mays/Colletotrichum graminicola mixed EST library"

Thanks for sharing. In the most recent scape at https://build.berkeleybop.org/job/extract-apsnet-diseases/92/artifact/apsnet.tsv . I found a single entry using NCBITaxon:176297 , namely Maize rough dwarf virus (MRDV)  . Can you confirm?

Confirmed.  Although even this strikes me as strange.  The name of that row is "Maize rough dwarf", with a pathogen_label of "maize rough dwarf virus (MRDV)"  This exact name shows up in several other rows (eg: row-10076), and in these other rows, the NCBItaxon is correctly mapped to NCBITaxon:10989 (Maize rough dwarf virus)

Sounds like we need an additional mapping from maize rough dwarf virus (MRDV) to NCBITaxon:10989. Would you like me to add that?


Mvs bash script

Issue #, if available:
Description of changes:
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #132 into master will decrease coverage by 1.78%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##           master     #132      +/-   ##
==========================================
- Coverage   96.15%   94.36%   -1.79%
==========================================
  Files          18       18
  Lines         728      763      +35
  Branches       57       66       +9
==========================================
+ Hits          700      720      +20
- Misses         18       27       +9
- Partials       10       16       +6

Impacted Files
Coverage Δ

src/sagemaker_containers/_trainer.py
91.66% <77.77%> (-5.4%)
:arrow_down:

src/sagemaker_containers/_modules.py
85.27% <82.35%> (-8.73%)
:arrow_down:

src/sagemaker_containers/_env.py
98.57% <92.3%> (+0.02%)
: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 8e7a7cf...e4c8024. Read the comment docs.

Looks good to me. Do we want to add Leo or Nadia too the pr since they know more about this use case?


dir="rtl" Reverses input and mask

999.99  applies the mask as 99.999
and when you type in the box it reverse the input so if I type 12345 it enters it as 54123
here is a link to jsfiddle to the issue.
http://jsfiddle.net/heidenator/wmg0js3g/6/

@heidenator,
Hmm I need to review the dir="rtl".

@heidenator ,
How would the inputmask deal with the dir="rtl" attribute?

do you solve reverse input and mask problem in dir="rtl" option ?
i have problem in using dir="rtl" option ,it reverse  input and mask
please help me..

Just got this issue reported in PrimeFaces which wraps your excellent component.

Same problem


A bunch of improvements

Summary of proposed Changes:

Add the ability to optionally install michaelklishin/jdk_switcher helper
Adopt debconf module, and therefore requires Ansible 1.6+
Remove "Oracle JDK" task prefix, which is no longer required when using Ansible 1.4+
Use Travis CI tests to:

validate the role "as role"
check against different versions of Ansible
validate with jdk_switcher that expected JDKs are well installed

I hope you'll like to integrate all this stuff. I am looking forward to reading your feedback and I already thank you for the good work you've done so far :)
Other feature ideas (but for separated pull requests)
Please tell me if you are interested in following features:

Add the ability to pin the JDK version to install (to solve problems like https://github.com/tbsalling/aismessages/pull/6)
Provide a Vagrantfile sample to help people kick a local dev environment.

Closing as the project and this PR have been in stale state for quite some time 😉.

Closing as the project and this PR have been in stale state for quite some time 😉.


Adding credits

Hello. I used your code as  a base to try and make some project of mine and now i want to add credits on each user. Should i add it in the database collection User or should i create a separate Credits collection. If I want to implement credits on the User model how should i go on about updating the info when i serialize the user ? I want to use the credits property as "req.user.credits". How do i do that ?

This is a good idea for the new guide. See #100.


update command manual to v0.112.0

Update command manual to v0.112.0

We are doing an automation testing, so I'll be putting this on hold so as to compare


deploy.sh: upload release source tarball

Having a release tarball including all vendor source makes life of maintainers a lot easier to create downstream packages.
It also ensures that as long as the go release is available the software can be build reproducible.

If i'm not wrong, Github is already doing a tar.gz for each release
example: https://github.com/containous/traefik/archive/v1.1.2.tar.gz

@guilhem but this is not the same, it does not include vendor/ with source code of used packages. Having this option allows us to install any release at any point without having to worry that repositories gets vanished at some point.

@Mic92 Ok I understand, it's true I used to commit /vendor in my code to prevent this inconvenant.

LGTM 👼


Update download table to two-dimensions

Related to #99
Update the download table to a two-dimensional format with formats listed vertically and languages listed horizontally.

Add columns for each language (EN, CZ, DE, ES, FR, etc.)
Add rows for each format (docx, asciidoc, markdown, etc.)
Add download links for each combination of format and language
Use a loop to generate the table dynamically instead of hardcoding the values

For more details, open the Copilot Workspace session.

This version mimics exactly the current version with the table header having "plain" and "with-help"...
So the Github-Copilot missed the original goal :-)


Wrong Type, Elements() and Sizeof() for char s[] = "foo";

char s[] = "foo";

is equivalent to
char s[4] = "foo"; // Number of elements includes the trailing zero byte of the string.

Does this keep
const char *s = "foo";

working correctly?

@andlabs  Commit https://github.com/cznic/cc/commit/de04c94a745057569d8d4323fbe84b0075dc952f broke that, commit https://github.com/cznic/cc/commit/a3aadec9423b927b47876fc80d1413d5541fcf13 should have fixed it again. Please confirm if it works/does not work for you now, thank you.


Feature storage sqlserver

Codecov Report

Merging #467 (a4ac3ca) into main (78ea821) will decrease coverage by 0.13%.
Report is 2 commits behind head on main.
The diff coverage is 85.41%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
@@            Coverage Diff             @@
##             main     #467      +/-   ##
==========================================
- Coverage   95.98%   95.85%   -0.13%
==========================================
  Files          57       57
  Lines        4206     4247      +41
==========================================
+ Hits         4037     4071      +34
- Misses        122      129       +7
  Partials       47       47

Files
Coverage Δ

client/dtmcli/dtmimp/utils.go
93.75% <100.00%> (+0.54%)
:arrow_up:

dtmsvr/storage/registry/registry.go
75.00% <ø> (ø)

dtmsvr/storage/sql/sql.go
98.70% <100.00%> (+0.07%)
:arrow_up:

dtmutil/db.go
100.00% <100.00%> (ø)

client/dtmcli/dtmimp/db_special.go
88.13% <36.36%> (-11.87%)
:arrow_down:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


incorrect handling of large 32bit unsigned integers and 64bit signed integers

Platform: MSVC x86
    lua.set_function("largeinteger", []()->std::uint32_t {
        return 0xFEFEFEFE;
    });

when calling this function from lua, you'll get a negative number, because 32bit unsigned integers and 64bit integers are pushed as lua_Integer (32bit signed)
See https://github.com/ThePhD/sol2/blob/e69e7c79faaa1f91b6cc736a4b08419a4da3219b/sol/stack_push.hpp#L194#L218
I haven't checked the other way around, passing large lua numbers to sol function, but it may show similar behaviour.

What exactly becomes the proper way, then, to handle these integers? I could try to push a double for 32-bit integers, but this would be unacceptable when we moved up to 64-bit integers since a double couldn't represent their largest values (signed or unsigned) anyhow.

Well a double has 53 significant bite to represent the integer. I would expect the exact lua number representation for 32bit and the closest approximation for 64bit values. Not suddenly a forced 32bit signed integer. Casting to double first would work best.

As a side note, this would also mess with 5.3 code where there's a clear distinction between int and double, at least when you use API-checking functions to determine which is which.

As another additional sidenote, if you build Lua as a 64-bit library it defaults to using long long, which will alleviate this problem somewhat as well. Note to self: purposefully build in 32-bit to make sure that these classes of errors don't go over head...

At least 5.2 supports the notion of unsigned integers  (e.g. lua_pushunsigned and lua_tounsigned{x}).  Aren't these functions sufficient to address the problem regardless of word size?

I believe that was part of the reason why I had to change it: supporting 5.1 meant backtracking to using older functions. I could do some version-sniffing to protect against this, albeit 5.1 users will still flounder.

The version sniffing could be localized to  sol_pushunsigned and sol_tounsigned{x}, for example.  This would likely help avoid interfering with default Lua behavior, as well.
I'm probably preaching to the choir here, but having Sol2 deal with unsigned integers via double seems problematic for a variety of reasons, not the least of which is the potential to violate the principle of least surprise.
Also, I don't think this conversion behavior should default based on the Lua version.  If a user wants double<->unsigned conversions, it should be explicitly enabled at compile time.  This would help avoid interfering with the default behavior for all Lua versions.

Sorry, but the current behaviour is simply unusable. Can we at least agree that when you pass an unsigned number to lua, you don't expect it to be negative?  I agree that Lua 5.3 with integer support needs to be handled differently, but for all prior versions, you could check the size of lua_Integer and if it's too small, manually cast to a double before pushing it as such.
I know that making it work for each lua version is difficult, but casting every integral type to a signed 32bit integer can't be right.

We don't manually cast to a signed 32bit integer. We cast to what Lua recognizes as its only integer type (lua_Integer). If you're trying to handle big numbers and build a 64-bit Lua Library, that's 64 bits, signed. If you're building 32-bit Lua Library, you get 32-bits, signed.
And that's the only integer type it has an opening for.
Even the Lua code itself doesn't honestly care about the very-big-unsigned-numbers: LUA_APIINTCASTS implements lua_pushunsigned by casting to lua_Integer and dumping it with lua_pushinteger (same truncation/signedness problems):
...
#define lua_pushunsigned(L,n)	lua_pushinteger(L, (lua_Integer)(n))
...

"Wow, that's really wrong!" Yes, yes it is. But I don't have another choice. Lua internally discriminates between floats and integers, then lossy-overs that information by assigning everything one numeric type identifier: number. The most I can do is stuff it into a double, MAYBE, if I detect you're giving me a numeric value that is A) unsigned and B) exceeds the size of lua_Integer. But even then, Lua will get snippy with me: if I use lua_checkinteger or any of the checked API for safety (and sol2 does use this for argument safety), it may or may not absolutely barf. AND, if I just "gloss" it over and decide to play it off like doubles versus integers aren't a real thing, somebody files an issue request on me.
We can talk about how unusable it is, but at the end of the day Lua doesn't have integer support. Any behavior I pick is essentially whatever garbage I bikeshed and users pummel me for, or whatever compatibility smooth-overs I can think to do to help user concerns. One way or another someone's going to poke it, it's going to behave funny, and there's going to be an issue request about how awful it is.
And at this point, I can only tell you to know the limits of the system you're programming for while I try to jerry-rig a system held together by spit and imagination.

It's not just 5.1. 5.3 does not have lua_pushunsigned natively, probably because the people running Lua realized that having that as an API endpoint was a dumb idea when even in 5.3 the only existing integral type is a signed lua_Integer of 32 or 64 bits, depending on your build. So I'm once again left with the problem where I have to essentially "make up" behavior.
In 5.1, that probably means casting to double if the size is less than or equal to 53 bits (and just casting to lua_Integer otherwise and letting people build a proper 64-bit lua).
In 5.3, the only thing I can do is just do a direct push and hope the user gets it out on the other side properly.
In both cases, if your integer is too big to fit, it's going to show up as a mess in Lua (though if transported untouched through the API, it might still remain intact).

Whats wrong with doing it like this:
if the number you want to push fits in a lua_Integer for sure (e.g typesize of pushed val < sizeof(lua_Integer) or same size if both are signed) -> lua_pushinteger
else cast to double and lua_pushnumber
This should work in all cases and version as you would expect it with the known few shortcomings.

The "few known shortcomings" are violating the expectations that users (rightfully) expected and complained about in issue #427 . It also changes the target behavior based on your build (64-bit versus 32-bit). Building with 32 bit means I have to push integers of unsigned 32-bit, signed 33+, and unsigned 33+ as doubles. Building as 64-bit means I have to push everything as integers, and then throw my hands up when someone writes 0xFEFEFEFEFEFEFEFE and expects it to come out in Lua just fine.
Finally, of what use is "as close as possible"? It's just as wrong as "this number seems to have the wrong sign"; it's wrong in every case, no matter what. There's no good automatic behavior for this.
My ultimate preference is that someone casts their number to a double, explicitly. I also would not mind adding a page for conversion information, linking it from the safety page, and explaining that someone need be mindful of their build and the size of their integers. That is a better solution that allows the user to pick whatever behavior they want, and I don't have to make 1 to 4 different defaults clued in by SOL_INTEGERS_HANDLED_LIKE_XXX config macros.

I'm working with alot of third party libraries, wrapping every function and manually casting values between double and int will completely destroy both binary size and the cleanness of the bindings. Having multiple define options seems like it would make most people happy. I'm at the point where I will just have to fork it and maintain those edits myself, but I would prefer if I didn't have to.
As for the exception, what about using lua_error if exceptions aren't enabled? (This may cause the stack not to be properly unwound, I dunno). Or bubble up the error somehow as return somehow? Or without exceptions you just can't have that error (In most cases, people disable exceptions bc of the speed penalty, and they likely don't want runtime checks aswell).

If it turns out you that your fork works well and it doesn't bite you later, I'd be happy to integrate it into sol2. I unfortunately, the best I'm going to do is probably what I mentioned earlier, if I can prove that pushing an integer as a "double" and then checking object::is<std::uint32_t>(); doesn't change from "true" to "false".


Coinbase advanced trade - Failed to connect API Keys

Describe the bug
Coinbase advanced trade - Failed to connect API Keys
Steps to reproduce

Clone and install latest dev branch
create new API keys using coinbase site
connect coinbase_advanced_trade

Actual:
Failed to connect
2024-12-06 08:57:55,559 - 2101920 - hummingbot.connector.exchange.coinbase_advanced_trade.coinbase_advanced_trade_exchange.CoinbaseAdvancedTradeExchange - ERROR - Error getting all trading pairs from Coinbase Advanced Trade: Error executing request GET https://api.coinbase.com/api/v3/brokerage/products. HTTP status is 401. Error: Unauthorized
Traceback (most recent call last):
  File "/home/hbot02/nikita/coinbase6889candles/hummingbot/connector/exchange/coinbase_advanced_trade/coinbase_advanced_trade_exchange.py", line 720, in _initialize_market_assets
    products: Dict[str, Any] = await self._api_get(
  File "/home/hbot02/nikita/coinbase6889candles/hummingbot/connector/exchange/coinbase_advanced_trade/coinbase_advanced_trade_exchange.py", line 1091, in _api_get
    return await super()._api_get(*args, **kwargs)
  File "/home/hbot02/nikita/coinbase6889candles/hummingbot/connector/exchange_py_base.py", line 863, in _api_get
    return await self._api_request(*args, **kwargs)
  File "/home/hbot02/nikita/coinbase6889candles/hummingbot/connector/exchange_py_base.py", line 906, in _api_request
    request_result = await rest_assistant.execute_request(
  File "/home/hbot02/nikita/coinbase6889candles/hummingbot/core/web_assistant/rest_assistant.py", line 47, in execute_request
    response = await self.execute_request_and_get_response(
  File "/home/hbot02/nikita/coinbase6889candles/hummingbot/core/web_assistant/rest_assistant.py", line 100, in execute_request_and_get_response
    raise IOError(f"Error executing request {method.name} {url}. HTTP status is {response.status}. "
OSError: Error executing request GET https://api.coinbase.com/api/v3/brokerage/products. HTTP status is 401. Error: Unauthorized

Release version
dev-2.2.0
Type of installation
Source
Attach required files
No response

Seems related to location


media: Allows uncapped 1:1 meetings

This will allow uncapped "1:1" meetings on SFU, enabled by feature flag. Testing instructions in PWA PR

/canary


CPU: Various CPU changes

Description
Self-explanatory.
The first commit is under the hood changes, so no changelog is needed.

LGTM 👍


added code to the HTML file

The PR adds all of the HTML we need for the prework study guide application.


Bugfix/fix java lang null pointer exception if xml path not exist

Description
Bug fix for testing failure:
evaluation (js) failed: bodyPath(descriptionPath) == null ? null : bodyPath(descriptionPath), java.lang.NullPointerException
stack trace: com.intuit.karate.core.ScriptBridge.xmlPath(ScriptBridge.java:421)

Relevant Issues : (#1365 )
Relevant PRs : (optional)
Type of change :

[ ] Bug fix for existing feature

should be already fixed, pls check -
https://github.com/intuit/karate/pull/1346
possibly fix is in one of the RCs.

Thanks, After raising the PR and I am going to merge it to develop branch, I noticed the same change/fix is already there in development branch.  That is OK. The bug is really annoying and blocks the mock server major function bodyPath(). Hope this fix can be released soon in a new karate standalone version.

duplicate of #1346 #1260


renaming gdsfactory_types module

Fixes #<issue_number_goes_here>

It's a good idea to open an issue first for discussion.

[ ] Tests pass
[ ] Appropriate changes to README are included in PR

@RehabSayed-G Is that ready ?

@FaragElsayed2 , ready for review


Add support for additional Sankey diagram orientations

Adds orientation-specific sankey generator constructors: sankeyTop (top-to-bottom), sankeyRight (left-to-right), sankeyBottom (bottom-to-top) and sankeyLeft (right-to-left).
A new function linkShape is exposed on the sankey generator which allows the caller to retrieve the 'correct' D3 link shape matching the orientation of the constructor.
This was developed against a working copy of https://github.com/LonnyGomes/sankey-diagram-poc, with one styling modification applied for vertical mode: updating text element positioning logic to improve readability.
Bottom-to-top

Top-to-bottom

Right-to-left

Left-to-right

Resolves #55

@mbostock I'm fairly new to modifying any d3-related code, but was keen to introduce this feature for some work I have in progress.  Does this seem like a reasonable approach towards introducing vertical orientation support for sankey digrams?  Glad to incorporate any feedback/suggestions.

Related https://github.com/d3/d3-hierarchy/issues/63.
I was considering for the hierarchical layouts to have separate constructors for each orientation, as we do with d3-axis, rather than having a getter-setter property. So for example you’d call d3.sankeyLeft() instead of d3.sankey() to get a left-to-right oriented Sankey diagram. But, I’m not totally wed to that idea. (It made sense for an axis because there’s not an appropriate default orientation, and also d3-axis doesn’t support transitioning between orientations.)
Another consideration here is that we’re already using d3.sankeyLeft, d3.sankeyRight, d3.sankeyCenter and d3.sankeyJustify for the sankey.nodeAlign property, and we have to be careful about conflicting with those names. We definitely can’t use the names d3.orientLeft, d3.orientRight etc. because it will not be clear that these symbols are only for use by d3-sankey and not in other contexts.
One option would be to rename the current methods to d3.sankeyAlignLeft, d3.sankeyAlignRight, etc. Then we could use d3.sankeyOrientLeft, d3.sankeyOrientRight, etc. for sankey.orient. (This is one argument for favoring string names "left", "right", etc. since you don’t need an explicit symbol or worry about conflict…) Or we could break backwards-compatibility and have d3.sankeyLeft, d3.sankeyRight, etc. be constructors.
Do you have a preference? I’d like to be consistent with d3-hierarchy, but I could probably be convinced to break consistency with d3-axis.

Thanks for the feedback - I'm swayed by the idea of consistency for both situations: when using additional components from the set available, it seems best for developer experience if both the API and the naming are similar (even if the implementations are different).
If that sounds reasonable I'd plan to make the following changes next:

[ ] Refactor the code so that an orientation is selected based on the constructor invoked by the caller
[ ] Rename the existing alignment options so that these become d3.nodeAlignLeft, ...
[ ] Introduce consistency with https://github.com/d3/d3-hierarchy/issues/63 by exporting orientation names such as d3.sankeyLeft, ...
[ ] Perform a major version bump so that existing clients do not accidentally run into breaking changes

I propose d3.sankeyAlignLeft rather than d3.nodeAlignLeft to make it clear that these are intended for use with d3-sankey and won’t conflict with other D3 modules.
This module is still on 0.x versioning so a major bump will be 0.12 → 0.13. (Don’t think we’re quite ready for 1.0 yet but maybe!)

All sounds good, yep!  todo-list updated to match.

@mbostock Hopefully this is ready for another look; glad for any more input.  The transform*-related code seems a bit non-ideal to me, but I'm not immediately sure how best to clean that up (or whether it's a concern).

Small ping for any additional review here?

@jayaddison I did not verify the build locally or run it on any examples. Please double check that it runs after all the recent changes, if you haven't already. Also, how would one go about testing it locally? I'm not sure. Maybe an example for reference is somewhere? Thanks!

Thanks @curran!  Yep, I've been using https://github.com/LonnyGomes/sankey-diagram-poc throughout development to verify diagram rendering - not on every commit to be honest, but during previous development and after your latest round of review.
It would be nice to have more in-library test coverage; npm test does continue to pass but I haven't expanded the test coverage so far.

Ah I see! It might be a good move to add test coverage for the new orientations. At least a little bit.

Yep, good idea.  That's led to #86 and #87 as follow-up tasks; if we could merge those (and perhaps #80 as well?) then I'll incorporate their changes into this branch before adding additional test coverage.

When will this pull request be merged approximately? I really need it for my task. Thanks.

@curran @mbostock ping

I'll also note https://github.com/jayaddison/d3-sankey/issues/1, that has been worrying me a little bit because I don't completely understand the cause yet.
I don't think that issue implies much potential for risk for this pull request, but in some ways I would be happier with a fresh implementation (again after re-enabling unit tests for this repository and updating the dependencies as per #86 and #87).

I'd merge it if I could ¯_(ツ)_/¯
I can share this PR out to the wider D3 developer community and see if anyone might be able to take on maintenance of this repo. I think it's an issue of limited developer bandwidth and/or interest to dedicate to this repo.

@curran Sure thing, that seems like a good assessment and I'd appreciate that.  There's no urgency to it; I'd prefer we take our time and get it reviewed thoroughly.  Perhaps with that in mind it could be one good way for a new maintainer to get involved.

Is only @mbostock can merge? Maybe we should contact him somehow. He is active on github, the account is not abandoned.

Yes only he can merge here, I believe.

@tomshanley Fairly random ping here - I was searching around to try to find what level of community interest there is for vertical D3 sankey diagrams and that led me to this ObservableHQ post of yours.
It looks like you use a canvas transform in that case to switch between horizontal and vertical - that makes a lot of sense and is quite dynamic.
I was wondering if you have any recommendations based on industry experience about whether visualization practitioners would find alignment support in-library for d3-sankey useful, or whether canvas operations are preferred (or becoming preferred)?  I could imagine situations in which the ability to transform a diagram at either the component level or the canvas level could be confusing.
(speak of confusing: I'm not really very involved in datavizualization, so please forgive probably slightly vague and inaccurate use of terminology)

@tomshanley Fairly random ping here - I was searching around to try to find what level of community interest there is for vertical D3 sankey diagrams and that led me to this ObservableHQ post of yours.
It looks like you use a canvas transform in that case to switch between horizontal and vertical - that makes a lot of sense and is quite dynamic.
I was wondering if you have any recommendations based on industry experience about whether visualization practitioners would find alignment support in-library for d3-sankey useful, or whether canvas operations are preferred (or becoming preferred)? I could imagine situations in which the ability to transform a diagram at either the component level or the canvas level could be confusing.
(speak of confusing: I'm not really very involved in datavizualization, so please forgive probably slightly vague and inaccurate use of terminology)

Absolutely - This PR would be very useful to me. The transform I use in that Observable Notebook is OK, but I don't think its very elegant in the long term

Thanks, @tomshanley.
@mbostock When you have time, do you have any suggestions about ways to progress this pull request?  Glad to make further adjustments and changes.

Ping @mbostock

Sorry @mbostock - one more ping to attempt to see whether these changes are acceptable; I think I'll close this pull request soon otherwise.

@jayaddison Have you considered releasing a fork with this on NPM? I think these changes are great!

I asked on D3 slack and there seems to be no incentive to maintain this repo anymore

https://d3js.slack.com/archives/C0ACH1TUY/p1657486050771439?thread_ts=1655915282.245839&cid=C0ACH1TUY

Yep, those are fair reasons to be cautious about accepting changes.  In general, maintenance and development burdens seem likely to increase more rapidly as code quality diminishes.
We're at an impasse in this case, though: I'm not keen to maintain a fork of this package, because I don't understand it particularly deeply (meaning that I can't effectively estimate the quality of my own contributions, letalone explain, support and provide future direction for the package - so I don't think I'd serve the community well by trying to).
(I think this can be a common problem with open source software: for any given ecosystem, there may be a limited number of people who really "grok" the problem space and are able to guide improvements -- that's not me in this case, and I recognize that.  I made some changes to fit my use-case, and based on that effort investment, am happy to invest further to reach D3's acceptance criteria, but I'm not maintainer material)


Add new data products

Add new data products
Improve UI of existing ones
Improve readme for Windows machine users

Have the SVG files gone through SVGOMG?

Please provide screenshots of how the implemented data products look like

Have the SVG files gone through SVGOMG?

yes

You are using scss but not really using scss .. there seems to be a bunch of styles copy & pasted from one file to the next one. At least put common styles in mixins or something.

You are using scss but not really using scss .. there seems to be a bunch of styles copy & pasted from one file to the next one. At least put common styles in mixins or something.

so e.g. in case of these

I would expect to see something like
@import "$lib/style/setup";
article {
  @include data-product-container;

  .title {
    @include data-product-title;

    &.no-bottom-margin {
        margin-bottom: 0;
    }
  }

  .subtitle {
    @include data-product-subtitle;
    ...
  }

  .divider {
    @include data-product-divider;
  }

also no-bottom-margin seems a bad name - is there a logic for WHEN it should not have a bottom margin? if so, use the name to indicate what that logic is instead of what the class does.

Correction to the SCSS comment again - I think what I said was wrong, this stuff shouldn't be SCSS mixins, they should be separate components <SectionTitle>, <SectionSubtitle>, <Divider> etc. .. but there is no time to do that change right now so we can discuss that separately after this PR is completed

Please update the 80x80 images to the newly provided 512x512 images, and take them through the image optimization Jocke mentioned.