[BUG] timestamp comparison using "INTERVAL" literal doesn't work against ingested data

What is the bug?
When running a direct query, the following query would work and return results
SELECT *
FROM table1
WHERE time_dt BETWEEN CURRENT_TIMESTAMP - INTERVAL '7' DAY AND CURRENT_TIMESTAMP
LIMIT 10

However, when running the same query against a materialized view, covering index, or ingested data, it would error out. After removing the timestamp where clause, the query would go through:
Bad Request, this query is not runnable.
How can one reproduce the bug?
Steps to reproduce the behavior:

Add WHERE timestamp BETWEEN CURRENT_TIMESTAMP - INTERVAL '7' DAY AND CURRENT_TIMESTAMP to any query, and run it against a flint table.
Create a materialized view from the same flint table.
Run the same query against the materialized view you just created, and the timestamp filter will make the query error out.

What is the expected behavior?
The timestamp comparison where clause works for flint data source, but doesn't work for local indexes.
What is your host/environment?

OS: [e.g. iOS]
Version 2.13, and I also ran the query in future.playground against ingested data.
Plugins

Do you have any screenshots?
If applicable, add screenshots to help explain your problem.
Do you have any additional context?
Add any other context about the problem.

@penghuo @dai-chen could u plz take a look ?


Added testcases

Hey, I just made a Pull Request!
Added testcases
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Hey :wave: thanks for the PR!
I'm not sure that these test cases are so valuable unfortunately, so I'm inclined the close the PR. There's definitely some other parts of the catalog that could do with some of your help testing though!
Have a look through the coverage reports, happy to help you find something better :pray:


fix order of parameters and mask for Data.from_pyg

Currently the function for converting Pytorch Geometric datasets into Data objects is broken because of the ordering of parameters. This PR fixes it.

Codecov Report

Merging #35 (8f1d49d) into master (88cb6a6) will decrease coverage by 0.05%.
The diff coverage is 0.00%.

@@            Coverage Diff             @@
##           master      #35      +/-   ##
==========================================
- Coverage   76.34%   76.29%   -0.06%
==========================================
  Files          88       88
  Lines        4241     4243       +2
==========================================
- Hits         3238     3237       -1
- Misses       1003     1006       +3

Impacted Files
Coverage Δ

neuralogic/dataset/tensor.py
82.00% <0.00%> (-2.54%)
:arrow_down:

neuralogic/dataset/csv.py
92.66% <0.00%> (-0.07%)
:arrow_down:

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 88cb6a6...8f1d49d. Read the comment docs.

Hi, thanks for your contribution. Your fixes will be released in the next patch version.

Thank you! I hope to keep contributing for a while :)


CMS: Fix NULL access if d2i_CMS_bio() is not passed a CMS_ContentInfo**.

Fixes #13624.
As the code that handles libctx, propq for PKCS7 is very similar to CMS
code, a similar fix needs to be applied.

Checklist

[ ] documentation is added or updated
[x] tests are added or updated

Alternate fix to https://github.com/openssl/openssl/pull/13657

Sometimes I forget about .in files and then wonder why the header gets changed.

This looks pretty good to me. Thanks. The second commit should reference #13624 in its commit message, not #1364

This pull request is ready to merge

Merged to master

Merged to master


[WIP] Update for the latest native-compile-async API

Renamed comp-deferred-compilation-black-list to comp-deferred-compilation-deny-list.
Removed the late load flag which is no longer required.
Added a check against the deny list when compiling all Elisp on the load-path, so we don't inadvertently compile something we shouldn't.
This change depends on https://github.com/raxod502/straight.el/pull/637.  I've added a hacky commit here to depend on the patched version of straight; that needs to become a proper bump commit once it's merged upstream.

I tried to use this, but it report Symbol’s value as variable is void: comp-deferred-compilation-deny-list when doom sync.

@h0cheung you probably need to get the latest native-comp and rebuild Emacs - this variable renaming change was just made today: https://github.com/emacs-mirror/emacs/commit/6104ab0f35e10c4d61c8e8774aa246e6630c8ac0.

Since your PR was merged and gccemacs was updated, are we ready to merge this?
If so, could you change your DO NOT MERGE HACK commit to a bump commit for straight? If not, why not?

The only problem is the hard break for old versions of native-comp.  If you're concerned about breakage we could add some aliases and whatnot to smooth the transition.  If not, I think this is ready to go!

If you're concerned about breakage we could add some aliases and whatnot to smooth the transition

Yeah, we may as well. Is it only for comp-deferred-compilation-black-list?

There's also the new selector argument of native-compile-async which straight makes use of.

@hlissner I've added the necessary stubs and tested against the following native-comp builds:

native-comp@3ae309bd (the last working version)
native-comp@033e9605 (version that introduced #4303)
native-comp@7a8370ed (latest version with API changes)

Looks good to me. Thanks for looking into this!


Seems like the actual value doesn't really matter (foo, bar, etc)

Maybe I was a bit early, and that podman-remote should still be used... ?
I was under the impression that everything was supposed to use podman

Side note: fixed the missing timestamp for server in PR #6599

Well we plan on supporting both.  Podman-remote is a bit thinner the regular podman, but there is no reason that regular podman can not get the job done on a remote machine.  I am not sure how well this is working yet, since most people are just testing with podman-remote.
We probably need to implement another test where podman is testing in --remote mode.

I guess we will have same problem anyway, to educate Linux users to add --remote.
Unless we want everyone (including Mac and Win users) to always add the extra flag.
Which I assume that we don't want to do, for the same reason of renaming the binary.
So basically we will still have these different tabs in the docs, with slightly different content:
{{% tabs %}} {{% tab "Linux" %}}

podman-remote help

{{% pageinfo color="info" %}} Note: On Linux the remote client is called "podman-remote", while the local program is called "podman". {{% /pageinfo %}}

{{% /tab %}} {{% tab "macOS" %}}

podman help

{{% pageinfo color="info" %}} Note: On macOS the remote client is called "podman", since there is no local "podman" program available. {{% /pageinfo %}}

{{% /tab %}} {{% tab "Windows" %}}

podman help

{{% pageinfo color="info" %}} Note: On Windows the remote client is called "podman", since there is no local "podman" program available. {{% /pageinfo %}}

{{% /tab %}} {{% /tabs %}}

Which means that we might as well continue to use podman-remote instead.
Then we don't have to divide it further, to split between 1.6 and 2.0 podman clients.
They can just run podman-remote, and it will run varlink (v1) or rest (v2) as preferred.
The main addition is to export both PODMAN_VARLINK_BRIDGE and CONTAINER_*.
And figure out how to do the access to the podman.sock, when not using sudo...
The obvious approaches being allowing ssh as root - or adding a "podman" group.
SocketMode=0660

On 6/16/20 14:17, Anders Björklund wrote:

I guess we will have same problem anyway, to educate Linux users to
add |--remote|.

Unless we want everyone (including Mac and Win users) to always add
the extra flag.
Which I assume that we don't want to do, for the same reason of
renaming the binary.

No podman-remote the podman installed on windows/MAC will have this
enabled by default. On Linux we might still ship a podman-remote
command, but in containers.conf there is a "remote" option, that could
be turned to true, which would switch traditional podman to run as
--remote by default.  Then if you wanted to run podman locally you would
have to execute podman --remote=false.

So basically we will still have these different tabs in the docs, with
slightly different content:
|{{% tabs %}} {{% tab "Linux" %}} podman-remote help {{% pageinfo
color="info" %}} Note: On Linux the remote client is called
"podman-remote", while the local program is called "podman". {{%
/pageinfo %}} {{% /tab %}} {{% tab "macOS" %}} podman help {{%
pageinfo color="info" %}} Note: On macOS the remote client is called
"podman", since there is no local "podman" program available. {{%
/pageinfo %}} {{% /tab %}} {{% tab "Windows" %}} podman help {{%
pageinfo color="info" %}} Note: On Windows the remote client is called
"podman", since there is no local "podman" program available. {{%
/pageinfo %}} {{% /tab %}} {{% /tabs %}} |
Which means that we might as well continue to use |podman-remote| instead.
Then we don't have to divide it further, to split between 1.6 and 2.0
podman clients.
They can just run podman-remote, and it will run varlink (v1) or rest
(v2) as preferred.
The main addition is to export both PODMAN_VARLINK_BRIDGE and
CONTAINER_*.
And figure out how to do the access to the |podman.sock|, when not
using |sudo|...
The obvious approaches being allowing ssh as root - or adding a
"podman" group.
|SocketMode=0660|
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/containers/libpod/issues/6598#issuecomment-644928420,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAPIPQ5ZWW5Q536WQUI5M2DRW6ZKRANCNFSM4N5BUT6Q.

I suppose a config file could also be used, right now it is using shell variables...
(mostly since it is modeled after docker-machine, which used this config method)
Haven't really understood yet if $CONTAINER_HOST overrides running locally,
or if you still need to add --remote even with this (remote) environment variable set.

Upgraded to v2.0.0, but now it shows an error instead:
 podman2 --remote podman version
Error: Get http://d/v1.0.0/libpod../../../_ping: dial unix ///run/user/1000/podman/podman.sock: connect: no such file or directory

There is a /run/user/1000/podman/podman.sock socket
Setting $CONTAINER_HOST explicitly and adding the extra fake argument sems to be working. But non-obvious ?
 export CONTAINER_HOST=unix:/run/user/1000/podman/podman.sock
 podman2 --remote podman version
Client:
Version:      2.0.0
API Version:  1
Go Version:   go1.13.8
Git Commit:   eec482cae3289ecaad45c602629657da7062ce9c
Built:        Sun Jun 21 09:58:54 2020
OS/Arch:      linux/amd64

Server:
Version:      2.0.0
API Version:  0
Go Version:   go1.13.8
Git Commit:   eec482cae3289ecaad45c602629657da7062ce9c
Built:        Sun Jun 21 09:58:54 2020
OS/Arch:      linux/amd64

Using podman-remote still works without any workarounds, so I guess that will be the recommended approach.
Maybe remove this misleading "flag" statement from the release notes ? Or add some more info on how to use it ?

The Podman command now supports remotely connections via the REST API using the --remote flag.

https://github.com/containers/libpod/releases/tag/v2.0.0

Not sure what actually happened behind the scenes, but my $CONTAINER_HOST had nothing to do with it.
I think the unix:// is part of the syntax, so it should have been unix:///run/user/1000/podman/podman.sock
Now it is back to the original:
 podman2 --remote version
Error: unrecognized command `podman2 version`
Try 'podman2 --help' for more information.
 podman2 --remote podman version
Client:
Version:      2.0.0
API Version:  1
Go Version:   go1.13.8
Git Commit:   eec482cae3289ecaad45c602629657da7062ce9c
Built:        Sun Jun 21 09:58:54 2020
OS/Arch:      linux/amd64

Server:
Version:      2.0.0
API Version:  0
Go Version:   go1.13.8
Git Commit:   eec482cae3289ecaad45c602629657da7062ce9c
Built:        Sun Jun 21 09:58:54 2020
OS/Arch:      linux/amd64

Without any extra workarounds.
So it more like the systemctl --user is unstable, sometimes it times out and sometimes it doesn't start.
Looks like the socket comes and goes, and there are a lot of the "podman2 system service" spawned.

Also, using the -r flag runs locally. Need to use --remote to run remotely.
  -r, --remote                    Access remote Podman service (default false)

Now it seems like podman --remote works, but that podman-remote stopped working ?

They are both working for me?

It was running locally for me with 2.0.1 but will a new issue if I can reproduce

@rhatdan
Seems to be broken in the Ubuntu 20.04 package, since it is not using make:
[  110s] GOPATH=/usr/src/packages/BUILD GO111MODULE=off /usr/bin/go generate ./pkg/varlink/...
[  110s] GOPATH=/usr/src/packages/BUILD GO111MODULE=off /usr/bin/go build -tags 'apparmor exclude_graphdriver_devicemapper seccomp systemd varlink' -ldflags '"-X main.buildInfo=1593196710"' -o bin/podman github.com/containers/libpod/cmd/podman
[  161s] GOPATH=/usr/src/packages/BUILD GO111MODULE=off /usr/bin/go build -tags 'apparmor exclude_graphdriver_devicemapper seccomp systemd varlink remoteclient' -ldflags '"-X main.buildInfo=1593196710"' -o bin/podman-remote github.com/containers/libpod/cmd/podman

https://build.opensuse.org/package/live_build_log/devel:kubic:libcontainers:stable/podman/xUbuntu_20.04/x86_64
Therefore it is still using "remoteclient" build tag, instead of the new "remote"
9263ed2ab1c87dd798a37ac260e3e81c00a59448

@lsm5 Poke - looks like we need a build update for the OBS podman-remote packages


getConnectedDevice returns No bluetooth device connected when device is connected.

When I connect to a bluetooth device using the connect() method in the app, getConnectedDevice  returns the connected device as expected.
But when I close the app and open it again, with the device still connected, the method returns No bluetooth device connected.

I'm using Android.

Ya, that's how things work currently.  Connected in terms of the library does NOT meant Connected in terms of the platform.  Connected in the library means there is currently RFCOMM session with open sockets available for communication.  When you close the app, this session is closed and therefore the device is no longer "connected" in the eyes of the application.
There is no way to maintain connection across Activity life cycles (that I'm aware of) as the objects required are not Serializable and therefore not Bundleable.
I get around this by:

Saving the most recently connected (RFCOMM) device
Upon start up I see if list().find(device) exists and automatically re-connect to it.

Remember:

PAIRED = Android (and to a lesser extend IOS) know about the device.  Devices are available with list()
CONNECTED = Library has an open RFCOMM (socket) with the device.  Device is available with getConnectedDevice()


Preview format

finally delivered implementation for #12

good job @superdyzio !
shall we add also an e2e test for this ?

@FrancescoBorzi sure, I'll do that!

thanks @FrancescoBorzi !
sure, but it will require adding demo for that feature, right now I have only unit-tested it and put into README - do you want me to add another example for that or incorporate that feature into one of existing demos? in the latter case - which one?

@superdyzio feel free to add a new instance of the ngx-duration-picker in the e2e tests ;)

I finally had time to do that, please review @FrancescoBorzi

@superdyzio great! I will review when I can

@FrancescoBorzi I changed all that clicks to setValueButton.click() and addressed your comment regarding units representation

merged, thanks a lot @superdyzio for your contribution!


[Font Awesome] ... Copy SVG copies [object Object]

Extension
https://www.raycast.com/dutzi/font-awesome
Raycast Version
1.77.1
macOS Version
No response
Description
When using the Copy SVG function, it copies [object Object] onto the clipboard instead of the SVG.
Steps To Reproduce
Search for a (Pro) icon. Command -> Copy SVG
Current Behaviour
[object Object] on the clipboard
Expected Behaviour
expected the SVG code

Thanks for the fix! Working now.


E1101:Module 'tensorflow.tools.api.generator.api.contrib' has no 'lite' member even though i'm using version 1.8.0

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug, a feature request, or a significant problem with documentation (for small docs fixes please send a PR instead).
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Python version:
Bazel version (if compiling from source):
GCC/Compiler version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.

Please provide details about what platform you are using (operating system, architecture). Also include your TensorFlow version. Also, did you compile from source or install a binary?
Could you also reference the code for the error.

It has been 14 days with no activity and the awaiting response label was assigned. Is this still an issue?

Automatically closing due to lack of recent activity. Please update the issue when new information becomes available, and we will reopen the issue. Thanks!


Fix import for ifpv

It turns out that urllib.request is depreciated and causes issues with imports from some websites & IFPV. I have moved to requests and seems to work better
Have also updated the readme and manifest to include more information on the new capability
The value parameter in the drop down selection needs to me a numeric number to work properly. The changes made forced it to only be able to use the download from file option.
You can use ifpv event 306 to test if you wish

Thanks again for the PR, I will test it soon

I added a bit more to the PR.
It now protects against:

Pilots with no heat in the csv being added to a heat (e.g. reserve pilots)
More pilots being added to a heat than nodes available on the timer. Also gives a warning in this case


ci: re-enable more python 3.12 testing

What does this pull request do?
Re-enable some python3.12 testing.
Related issues
None

/test matrix


How to freeze a last column in the angular slick grid

We have checked the angular slick grid documentation they given the columns freeze from top, bottom ,left and there is no option for the right.If any one facing the issue or have any solution for this,Kindly give your comment it's helpful for others also

This repo is dead. Please use as post issues to: https://github.com/6pac/SlickGrid/wiki
Or GhisCoding also has a number of extensions of the basic grid, notably Aurelia and Angular: https://github.com/ghiscoding/


Materials for Siphon

Need to create new materials to talk about Siphon. Steal liberally from the existing examples.

@jclark754 Notebooks look like a good start. Can you come up with some exercises to put in there? We want the students to get hands-on. It can just be derivative from what's there, but all of the other workshop notebooks explicitly call out something for them to try.

You got it. Sorry thought I'd provide those during the workshop. I'll take a look at another nb and see here in a second.
Best,
Jc

On Jul 14, 2015, at 15:20, Ryan May<EMAIL_ADDRESS>wrote:
@jclark754 Notebooks look like a good start. Can you come up with some exercises to put in there? We want the students to get hands-on. It can just be derivative from what's there, but all of the other workshop notebooks explicitly call out something for them to try.
—
Reply to this email directly or view it on GitHub.

No worries, it's just nice to provide the notebook as (relatively) stand-alone parts of material, in case those from the community, who can't attend the workshop, want to try to follow in the footsteps.

Doh, that makes sense. Sorry new to the workshop gig. I'll get on it right
away!
On Tue, Jul 14, 2015 at 3:53 PM, Ryan May<EMAIL_ADDRESS>wrote:

No worries, it's just nice to provide the notebook as (relatively)
stand-alone parts of material, in case those from the community, who can't
attend the workshop, want to try to follow in the footsteps.
—
Reply to this email directly or view it on GitHub
https://github.com/Unidata/unidata-python-workshop/issues/24#issuecomment-121403093
.

I think we're solid here.


Vagrantfile: support for unofficial libvirt provider

Support for an unofficial libvirt provider for Vagrant, "dongsupark/coreos-{stable,beta,alpha}".
See https://atlas.hashicorp.com/dongsupark/boxes.

We are going to be able to support the libvirt provider, and we cannot use an unofficial image. Thank you anyway.

@crawford I see. Thanks.


⚠ Bofrost.at has degraded performance

In 0049744, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 2102 ms

Resolved: Bofrost.at performance has improved in b35272c.


feat: Added shield as the provider

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 74.868%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
6098

Relevant Lines:
8145

💛  - Coveralls

@utsav14nov Can you create an issue also with details of this feature and link this PR?

@utsav14nov @rahmatrhd @mabdh @haveiss
was going through the code and calling shield using its HTTP endpoints feels that it's going to make it tightly coupled with shield, and also its version can only be documentation in this approach.
Can we use grpc client here for shield in here ?
Pros:

would be easier to upgrade shield provider
comparatively less maintenance overhead

Cons: cannot think of any now

@utsav14nov Can you create an issue also with details of this feature and link this PR?

https://github.com/odpf/guardian/issues/332#issue-1461167457

@bsushmith @utsav14nov So are we moving to GRPC client for this?

@bsushmith @utsav14nov So are we moving to GRPC client for this?

We'll be moving it to Grpc client in next Mr as there is a schema change Mr which needs to be merged and tested well.
Will take Grpc client with that change.


Adds P.Either.flipEither

! @erikd-ambiata @novemberkilo

Oh, thanks. Was just about to add this myself.
:+1:

Is this used in a few different places? Hesitant about adding it straight to P otherwise

I've got it cargo-culted in at least two places.


chore: migrate renovate secrets

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

v1.10.49
GitHub release

Your semantic-release bot :package::rocket:


Data callbacks

This a separate PR for my work on #443 .  More description at https://github.com/ITotalJustice/cpr/pull/1 .  Let me know if you'd like a rebase.
I'm realizing that my removal of ITotalJustice's custom structs makes it more difficult to add functionality to fill the Response fields simultaneous with using the callback functions.  That's unfortunate, but this is what I have implemented at this time.

The following needs to be fixed for the windows CI to run:
D:\a\cpr\cpr\include\cpr/callback.h(14,93): error C2614: 'cpr::ReadCallback': illegal member initialization: 'size' is not a base or member [D:\a\cpr\cpr\build\cpr\cpr.vcxproj]

Source: https://github.com/whoshuu/cpr/pull/446/checks?check_run_id=1144990491

It looks like the CI failure is from windows not having ssize_t.  I (or somebody) will have to evaluate the context of use again and either pick a different type or accommodate windows.  There's probably a type already used similarly in cpr in other places.  Makes sense to add the clarity suggestions at the same time.

Windows does not know the ssize_t type. I will push a quick fix for this.

Thanks for pulling in all this stuff com8, we can all celebrate.


Some training-related bug fixes

Caught by testing in the staging infrastructure

@jgd5 : we'll need to merge this, then I'll upload the updated Genie template pack to the staging server, and then you should be able to test.


question in meta op example

I visited this project web, and found the code:
shape = [N,H+Kh-1,W+Kw-1,Kh,Kw,C,Kc]
#  expansion of x.reindex
xx = np.zeros(shape, x.dtype)
for i0 in range(shape[0]):
    for i1 in range(shape[1]):
        for i2 in range(shape[2]):
            for i3 in range(shape[3]):
                for i4 in range(shape[4]):
                    for i5 in range(shape[5]):
                        for i6 in range(shape[6]):
                            if is_overflow(i0,i1,i2,i3,i4,i5,i6):
                                y[i0,i1,...,in] = 0
                            else:
                                y[i0,i1,i2,i3,i4,i5,i6] = x[i0,i1+i3,i2+i4,i5]

#  expansion of w.broadcast_var(xx)
ww = np.zeros(shape, x.dtype)
for i0 in range(shape[0]):
    for i1 in range(shape[1]):
        for i2 in range(shape[2]):
            for i3 in range(shape[3]):
                for i4 in range(shape[4]):
                    for i5 in range(shape[5]):
                        for i6 in range(shape[6]):
                            ww[i0,i1,i2,i3,i4,i5,i6] = w[i3,i4,i5,i6]
#  expansion of xx*ww
yy = np.zeros(shape, x.dtype)
for i0 in range(shape[0]):
    for i1 in range(shape[1]):
        for i2 in range(shape[2]):
            for i3 in range(shape[3]):
                for i4 in range(shape[4]):
                    for i5 in range(shape[5]):
                        for i6 in range(shape[6]):
                            yy[i0,i1,i2,i3,i4,i5,i6] = xx[i0,i1,i2,i3,i4,i5,i6] * ww[i0,i1,i2,i3,i4,i5,i6]
#  expansion of yy.sum([3,4,5])
shape2 = [N,H-Kh+1,W-Kw+1,Kc]
y = np.zeros(shape2, x.dtype)
for i0 in range(shape[0]):
    for i1 in range(shape[1]):
        for i2 in range(shape[2]):
            for i3 in range(shape[3]):
                for i4 in range(shape[4]):
                    for i5 in range(shape[5]):
                        for i6 in range(shape[6]):
                            y[i0,i1,i2,i6] += yy[i0,i1,i2,i3,i4,i5,i6]`

why the expanded code equals to the fellowing code? any writring mistakes?
shape2 = [N,H-Kh+1,W-Kw+1,Kc]
y = np.zeros(shape2, x.dtype)
for i0 in range(shape[0]):
    for i1 in range(shape[1]):
        for i2 in range(shape[2]):
            for i3 in range(shape[3]):
                for i4 in range(shape[4]):
                    for i5 in range(shape[5]):
                        for i6 in range(shape[6]):
                            if not is_overflow(i0,i1,i2,i3,i4,i5,i6):
                                y[i0,i1,i2,i6] += x[i0,i1+i3,i2+i4,i5]`

Thanks for reporting, the example is updated.
now:
shape2 = [N,H-Kh+1,W-Kw+1,Kc]
y = np.zeros(shape2, x.dtype)
for i0 in range(shape[0]):
    for i1 in range(shape[1]):
        for i2 in range(shape[2]):
            for i3 in range(shape[3]):
                for i4 in range(shape[4]):
                    for i5 in range(shape[5]):
                        for i6 in range(shape[6]):
                            if not is_overflow(i0,i1,i2,i3,i4,i5,i6):
                                y[i0,i1,i2,i6] += x[i0,i1+i3,i2+i4,i5] * w[i3,i4,i5,i6]

@wuzy361 @Jittor  New update
https://github.com/Jittor/jittor/pull/17


TextDocument.insert unintentionally moves cursor to end of file when ...

VSCode Version: 0.10.11
OS Version: Windows 10

Steps to Reproduce:
See: https://github.com/editorconfig/editorconfig-vscode/issues/40 for more info and a screenshot

Install editorconfig extension and create a .editorconfig file
set insert_final_newline = true
enable auto-save in vscode (using a delay)

This issue only occurs when the cursor is at last line, last character of the file when the 'TextEditor.insert' is called. After the insert, the cursor is moved to the end of the file (now with one more line, the last newline).
This does not happen when the cursor is at any other location in the file.
E.g. set auto-save delay to 5000 (easier testing).
Remove any content from the end of the file (so editorconfig will insert a newline) and (before auto-save kicks in) move the cursor a few places up.
the newline is added, and the cursor (and intellisense) are untouched.
I first tried fixing this inside editorconfig itself, by saving the current selection before any inserts, then restoring that selection after the save, but it does not have an effect.
Also, because this does not happen when the cursor is not at the end of the file, it looks like an issue with vscode.
And also, I don't think it's appropriate for an extension to fiddle with cursor positions after an edit/insert. This should be handled by vscode (Since intellisense could be visible at the time of the insert/edit).

Don't need to set auto-save to test this. Just make sure insert_final_newline is set to true in .editorconfig. Create a new file. Type in some lines and make sure the cursor is at the end of the file( the last position possible) and save the file. Cursor will jump to the next line.
// cc @alexandrudima

This might have something to do with the handling of the "virtual" last line. It's not a real line until it has content and it's own line ending. But from an editor's perspective, it is an empty line to render and show.

I will double check in this specific case, but the general idea is that the cursor moves when the document is edited from an extension.
e.g. if the cursor is at the second line and an extension inserts 20 lines at the top of the file, the cursor will go to the 22nd line.
(I call this side-editing):
https://github.com/Microsoft/vscode/blob/5ba4f734dfaca254fe40354a27f1cfcffc1b75ec/src/vs/editor/test/common/commands/sideEditing.test.ts#L54

@alexandrudima In that case, I understand that the cursor is moved. But I'm not quite sure about the use case of adding a new line at the end of a line. I wrote a test for it, but am having issues installing the npm dependencies of vscode.
test('insert at end of file', () => {
	testCommand(
		[
			'first',
			'second line',
			'third line',
			'fourth'
		],
		new Selection(4, 7, 4, 7),
		[
			EditOperation.insert(new Position(4, 7), '\n')
		],
		[
			'first',
			'second line',
			'third line',
			'fourth',
			''
		],
		new Selection(4, 7, 4, 7)
	);
});

This test will fail because the cursor will go to the 5th line, right? Maybe it's an idea that it should be possible to insert at line.length + 1. In this case new Position(4, 8). This indicates that it inserts AFTER the cursor and not in front of the cursor.
Another idea is of adding an API method for inserting an empty line.

Any feedback on this issue? I would be happy to look into it if we discussed on how to solve the issue.

I did a screencapture to see what it would look like if I put the cursor back into it's original position after the newline gets added.

Although it is a solution, it's not perfect.

@SamVerschueren
Indeed, given a selection at (x,y) there is no way in the API to hint insert text at (x,y), but also keep selection at (x,y).
i.e.:

we have TextEditorEdit.insert which moves the resulting selection to after the inserted text.
we have TextEditorEdit.replace which expands the resulting selection to contain the inserted text.

This is due to the different forceMoveMarkers values: https://github.com/Microsoft/vscode/blob/master/src/vs/workbench/api/node/extHostEditors.ts#L246
There remains only the option of explicitly setting the cursor position after the edit has applied (i.e. in the then callback) or optimistically immediately after the edit has been sent our way (i.e. below the textEditor.edit call, but not in the then of the returned promise).
Since recently, there is a new option, to create a save participant. Since that would go through the same code-path, I'm not sure if it would help terribly:
https://code.visualstudio.com/updates#_format-on-save

Another example (from #43000)

package.json

{
    "publisher": "alex",
    "name": "43000",
    "version": "0.0.0",
    "engines": {
        "vscode": "^1.0.0"
    },
    "activationEvents": [
        "*"
    ],
    "main": "index.js"
}

index.js:

const vscode = require('vscode');

exports.activate = function () {
	const editor = vscode.window.activeTextEditor;

	// Get the document last line.
	const lastLine = editor.document.lineAt(editor.document.lineCount - 1);

	// Select the last document char.
	editor.selections = [new vscode.Selection(
		lastLine.lineNumber,
		lastLine.text.length - 1,
		lastLine.lineNumber,
		lastLine.text.length
	)];

	// Insert 'ADDED_STRING' at the end of the editor.
	editor.edit((editBuilder) =>
		editBuilder.insert(
			new vscode.Position(lastLine.lineNumber + 1, 0),
			'ADDED_STRING'
		)
	);
}


Notification shouldn't be mutating

So here's a thought.  withSender() is currently a mutating function.  I think instead it should be functional where it returns a new instance.  The issue I'm hitting is my notifications are defined as 'static let' members of a global Notifications struct.
When I later try to do
Notifications.MyNotification.withSender(self).....

I get a compiler error because MyNotification is a 'let', whereas the withSender tried to modify it.
Thoughts?

Yah, it's definitely broken as-is.  If I make those 'var' and do posts, I'm getting incorrect objects posting.  If I locally make it return a new Notification, then everything posts as expected.

Doh. :confounded:
Very good point. Let's make this change as you suggest.
Unfortunately it's a breaking change. So we'll have to bump to 4.0.

Thanks @grosch ! :smile:

Hey @grosch - sorry this took so long. Just pushed 4.0.0 to cocoapods.
I know we had git troubles with your last PR, but please don't let this discourage you from contributing! :smile: You've got great ideas!


Tool/Function response messages with role='tool' not accepted

Describe the bug
I tried running the function calling code from the website...
https://docs.together.ai/docs/function-calling#multi-turn-example
... but using the Together.AI Python library and it was successful in selecting a function and providing arguments, however if I feed the result of the function call back to try and get another response it throws an exception that it doesn't accept the role='tool' in the message.
Failing Line:
function_enriched_response = client.chat.completions.create(
        model="mistralai/Mixtral-8x7B-Instruct-v0.1",
        messages=messages,

Exception thrown:
1 validation error for ChatCompletionRequest messages.
2.role
  Input should be 'assistant', 'system' or 'user' [type=enum, input_value='tool', input_type=str]

To Reproduce

Use the multi-turn example code here: https://docs.together.ai/docs/function-calling#multi-turn-example
Replace:

client = openai.OpenAI(
    base_url = "https://api.together.xyz/v1",
    api_key = os.environ['TOGETHER_API_KEY'],
)

with
client = Together(api_key=os.environ.get("TOGETHER_API_KEY"))

Run it

Expected behaviour
No exception is throw and the response is processed by the LLM and a response is returned.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: Docker with Linux
together v1.1.2

thanks for the detailed report @marklysze ! The fix has been pushed with v1.1.3

Perfect, thanks @orangetin!


Evaluate plop.js for auro templating

Action item from Thursday's Auro-Kit introduction!

Plop.js: https://plopjs.com/
Handlebars.js: https://handlebarsjs.com/

The current "update" script needs to be ported out from components and into the library. This presents us with an interesting opportunity to port to an external, well documented, and well-supported OSS library called Plop.js to handle our template building for us.
Plop.js uses an open source JavaScript-based templating language called "Handlebars" that's been around since ~2011. It's very easy to learn and well supported by every modern IDE through plugins or out of the box.
Tagging @DukeFerdinand and @jason-capsule42

Bumping this, I'm not sure if it's super required in library. This is a better tool to consider for WC-Generator since plop is mostly for copying files and filling in initial data!


Writing 0 to SIO's GPIO_OUT register does not turn outputs off

I've written the following program in Go that blinks the LED via raw writes to registers. Setting the GPIO_OUT of the LED (pin 25) on the pico turns the LED on, but when we write 0 to the register to clear all the bits it does not turn off.
Writing to GPIO_OUT_CLR does turn the LED off, and this is in effect what pico-sdk does to turn LEDs off. Is this an issue with the silicon?
package main

import (
	"time"
	"unsafe"
)

func main() {
	const ledPin = 25
	const addrIObank = 0x40014000
	const addrSIO = 0xd0000000
	const offGPIO = 0x14
	const offEnable = 0x20
	const offGPIOclr = 0x18
	const sizeIOPinBlk = 4 * 2
	const offIOPinCtrl = 4
	const fnIOGPIO = 5
	// Enable GPIO function in the pin Control IO bank.
	writeRegister(addrIObank+ledPin*sizeIOPinBlk+offIOPinCtrl, fnIOGPIO)
	// Enable digital output on that pin in the SIO.
	writeRegister(addrSIO+offEnable, 1<<ledPin)
	// Set Output ON.
	for {
		writeRegister(addrSIO+offGPIO, 1<<ledPin)
		time.Sleep(time.Second)
		writeRegister(addrSIO+offGPIO, 0) // This does not turn the LED off!
		time.Sleep(time.Second)
	}
}

func writeRegister(reg uintptr, value uint32) {
	ptr := (*uint32)(unsafe.Pointer(reg))
	*ptr = value
	// volatile.StoreUint32(ptr, value)
}

Please use forums for help: https://forums.raspberrypi.com/viewforum.php?f=143
but no, this is not a silicon bug; you are using the wrong register; 0x14 is the offset of the "SET" register which turns GPIO on per bit set, leaving the others unmodified (so if you write 0, you make no changes)

You are right- sorry for the noise. Using GPIO_OUT register works as expected.


Scheduling configuration priority

Tell us about your request
What do you want us to build?
Currently, we define the desired config in provisioner.
It will be nice to have set some priority like on type of instances, was region etc.
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
What outcome are you trying to achieve, ultimately, and why is it hard/impossible to do right now? What is the impact of not having this problem solved? The more details you can provide, the better we'll be able to understand and solve the problem.
Sometimes some class of EC2 instances are not available, like in my case, p3 was not able when I was trying to schedule, in that case would prefer to fallback to 2nd gen i.e. p2 series. Same can be for AWS region too, user may like to provision instance in their nearby location but if not available fallback to other regions.
Are you currently working around this issue?
How are you currently solving this problem?
Additional context
Anything else we should know?
Attachments
If you think you might have additional information that you'd like to include via an attachment, please do - we'll take a look. (Remember to remove any personally-identifiable information.)

Community Note

Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
If you are interested in working on this issue or have submitted a pull request, please leave a comment

Closing as a duplicate of https://github.com/aws/karpenter/issues/2024. I'm totally supportive of this feature.

It's similar but Ticket #2024 talks about weighted configuration, like if it is 80:20, out of 100 20 times it will create second configuration.
In my case, we want 100% of the time use first config if available, if not available use second config.

In my case, we want 100% of the time use first config if available, if not available use second config.

This is the semantic proposed in #2024

In my case, we want 100% of the time use first config if available, if not available use second config.

Design for allowing this priority is proposed in #2246 and being implemented in #2307

Thanks @ellistarn @jonathan-innis


Container does not run consistently across host/docker versions

Hello, I've run into a strange and somewhat troubling problem. I've managed (accidentally) to build an image that does not behave same when run. You can find the source for the image on my github account. The repo contains the source & docker file used to create the image. The running the image will create a container that either exists or hangs indefinitely. I have not been able to reproduce it 100% of the time. The same docker run command may succeed the first time, then fail on the second. It may fail consistently, or it may pass consistently. I've tried the image on different docker versions & different hosts OS. The results vary which is quite concerning to me.
You can test your setup by running: docker run --rm -it ahawkins/rebar-bug and see what happens.
I've tried this image on:

Ubuntu 14.04 hosts
Docker 1.2.0
Docker 1.3.1
With & without the --rm flag
With * without the -i & -t flag
Combinations of the above

All of these have different results. The image runs differently inside the same virtual machine as well.

what storage driver are you using, it is the same across hosts

closing as stale please ping me with exact steps to reproduce on the latest version and I will reopen

Hi,
I'm hit with the same bug. I'm happy to help out with steps to reproduce. I tested both aufs storage backend and devicemapper. With aufs I experienced this issue consistently, but switching to devicemapper I only experienced it ~2/10 times.
I posted additional details in ahawkins/docker-rebar-bug#1, including my Dockerfile and logs. I'm using
$ docker --version
Docker version 1.6.1, build 97cd073

as packaged by Debian (1.6.1+dfsg1-1). Is there anything else I can supply to help in investigating this?

we need clear steps to reproduce, docker version, and docker info

I currently don't have access to the host I used to play around with this, so
the info is somewhat stale, but as described in ahawkins' reproducer
repo, here's the steps I
was triggered the issue with:
Dockerfile:
FROM debian:jessie
RUN apt-get update
RUN apt-get install --no-install-recommends -y git make vim

RUN apt-get install --no-install-recommends -y \
    erlang-base \
    erlang-eunit \
    rebar
RUN groupadd ertorrent && useradd -g ertorrent ertorrent
RUN mkdir -p /home/ertorrent && chown ertorrent:ertorrent /home/ertorrent
USER ertorrent
RUN git clone git://github.com/orzen/ertorrent.git /home/ertorrent/src
WORKDIR /home/ertorrent/src
RUN git fetch -p
RUN git checkout topic/rebar
CMD /bin/bash

Building that docker image as ertorrent and running the following
sudo docker run ertorrent rebar compile eunit
triggered the issue every time for me when using aufs. When using devicemapper it went down to about 20% of the times.
I'll add docker version and docker info output as requested within a couple of days.
Thanks,

I noticed that the branch I mentioned in the above Dockerfile was removed from the
example repo, so I made a fork that I'll keep static for this issue:
FROM debian:jessie
RUN apt-get update && apt-get install --no-install-recommends -y \
    git \
    erlang-base \
    erlang-eunit \
    rebar
RUN mkdir -p /home/ertorrent
RUN groupadd ertorrent && useradd -g ertorrent ertorrent
RUN chown -R ertorrent:ertorrent /home/ertorrent
USER ertorrent
RUN git clone git://github.com/olof/ertorrent-rebar-docker-issue.git /home/ertorrent/src
WORKDIR /home/ertorrent/src
CMD /bin/bash

As I stated earlier, with devicemapper I do get this to pass the majority of
the times.
Noticed how I specified /bin/bash as CMD? I now tried changing that to rebar eunit,
and I fail to reproduce when running as docker run ertorrent (with ertorrent
being my tag for the image). But if I run it as docker run ertorrent rebar eunit
I can still trigger it.
 Interesting.

I have this same problem. This seems related to: http://erlang.org/pipermail/erlang-questions/2013-September/075385.html
Ports don't get the :exit_status message and just hang there.

I've setup an image (https://hub.docker.com/r/edevil/docker-erlang-bug/) to demonstrate the problem and the Dockerfile is here: https://github.com/edevil/docker-erlang-bug.
Can someone else test to see if the problem also happens for them?
$ docker run edevil/docker-erlang-bug erl -noshell -s test run -s init stop
FAILED # after 5 seconds

If you run the code inside the container via bash:
$ docker run edevil/docker-erlang-bug bash -c "erl -noshell -s test run -s init stop"
FAILED

However, if you redirect stdout to stdout (?) it works:
$ docker run edevil/docker-erlang-bug bash -c "erl -noshell -s test run -s init stop 1>&1"
SUCCESS

What is happening here is that the Erlang code calls an external executable, (ls) that finishes, but Erlang does not get notified for some reason. I have used both Docker 1.7.1 and 1.9.1. My Docker engine runs on Ubuntu 14.04.1 LTS. I don't even know where to start, is this an Erlang problem or a Docker problem?
I'm using the aufs driver.

Hi @edevil, really nice work. With devicemapper, I got two failures out of ten attempts, which is consistent with what I saw when I compared switching from aufs to devicemapper as described above. So, we have a much simpler way to reproduce now :)!
I don't know if this recent mail sent to the erlang-questions list is related, but sounds like it could be...

Today I observed that the processes spawned by RabbitMQ (like for
example EPMD in non-detached mode, system supervisor processes like
disk, etc.) are put in different process sessions / groups than the
"parent" Erlang VM process.

It could be related, anything that would cause a parent process to not be aware that a child has died can be related to this problem. It's a shame the email did not get any answers...

Possibly related issue: docker image has different behaviour when ran in ubuntu or mac

@edevil are you still having this issue? I'm unable to reproduce with your  on Docker 1.12.1, both on Docker for Mac, and on Ubuntu 14.04 (with aufs)

ping @justincormack any idea if there's anything to do here?

Sounds to me like the reparenting bug was fixed in Erlang 19 then, and it was a bug in the runtime. Grandchildren can get lost, and become zombies. 1.13 will have an optional init which might help by reaping them, or it might not make a difference for this case.
I don't think there is anything Docker can do for this, so I am going to close this, but feel free to continue discussion.


Feature request (already coded) to create more of a 'tab' experience

I've coded a custom segue that will rearrange the navigation stack so that the destination view controller rises to the top of the stack - instead of constantly pushing view controllers onto the stack.
Advantages:

each view is maintained and will be left as it was when the user returns to that view through the SideMenu
creates a 'tabbed' experience, changing view instantly after the segue is performed, without cluttered animations
more of a traditional sidemenu experience found in professional applications

How to use:

Link any of the cells in the SideMenu to whatever controller you'd like with the class of "ReplaceImmediate" (the class name can change to your discretion) and with the segue kind of "custom"
make sure the module selected with the segue is where you can find "ReplaceImmediate"
done

The code:
import UIKit
import SideMenu

class ReplaceImmediate: UIStoryboardSegue {
    override func perform() {
        let source = self.source
        let destination = self.destination

        if let nav = source.navigationController as? UISideMenuNavigationController,
            let presentingNav = nav.presentingViewController as? UINavigationController {
            presentingNav.dismiss(animated: true, completion: nil)

            // if the destination controller is already in stack, we will bring it
            // to the front of the stack while maintaining the items that are already
            // in the stack
            if(isInStack(navController: presentingNav, viewController: destination))
            {
                var storedController:[UIViewController] = []
                var theController:UIViewController!
                for controller in presentingNav.viewControllers {
                    if(controller.nibName == destination.nibName)
                    {
                        theController = controller
                    }
                    else
                    {
                        storedController.append(controller)
                    }
                }
                storedController.append(theController)
                presentingNav.popToRootViewController(animated: false)

                for controller in storedController {
                    if(isInStack(navController: presentingNav, viewController: controller))
                    {
                        continue
                    }
                    presentingNav.pushViewController(controller, animated: false)
                }
            }
            // if the destination controller is not in the stack, we will
            // simple push it to the stack
            else
            {
                presentingNav.pushViewController(destination, animated: false)
            }
        }

    }

    // simple function to determine whether the viewcontroller is in the stack or not
    private func isInStack(navController: UINavigationController, viewController: UIViewController) -> Bool
    {
        for controller in navController.viewControllers {
            if(controller.nibName == viewController.nibName)
            {
                return true
            }
        }
        return false
    }
}

It would be nice to see this implemented, or for an option within the SideMenu of 'MenuRearrangeNavigationStack = true' but the animation itself with the segue (I believe) can only be performed through a custom segue.

I understand the gist of what you're trying to accomplish here.
There are some disadvantages to this approach as well, most notably in the form of memory pressure. The key advantage is not needing to save and reload the visual state, and potentially faster performance from memory.
Animations are possible without segues. SideMenu uses custom transitions to animate, which makes it work regardless of if the app is developed using Storyboard or pure code. Segues are primarily targeted at developers using Storyboard. nibName is also specific to Interface Builder and potentially disregards developers that prefer not to use it -- I'd rely on something like class names (as already done in SideMenu's menuAllowPushOfSameClassTwice functionality).
I would simplify this logic and rely on the navigation controller's existing viewControllers property to retain the view controller stack. Simply inspect the viewControllers stack to see if the desired view controller is already present (using array's .filter method) and bump that to the end of the array.

I've got it optimized now using filter (instead of the silly logic I was using earlier)
But is it best done through a segue? Like you said, segues are primarily targeted at developers using storyboard. Perhaps a native integration with SideMenu would be best. What do you think?

@agates4 As a developer that uses storyboards, it may be best done through a segue for you. However, there are many developers that prefer not to use storyboards for various reasons, and my goal was to provide a library that works regardless of the project setup. This is why SideMenu uses custom transitions; they work regardless if storyboards are used or not.
As described in the guidelines for contributing, I've specifically stated that I am willing to accept pull requests from other developers wanting to add functionality from SideMenu. However, I personally am not adding requests made by developers at this time. Creating this library has taken a tremendous amount of my time, and maintaining it continues to eat up more and more of it, all for free. I need to prioritize other work that provides me with an income over making updates here.
If you would like to contribute to this repository, please read the guidelines for contributing and open a pull request with your proposed changes. For the greatest chance at having your changes accepted, I highly suggest that you take my recommendations in this thread into consideration as I am trying to ensure the best quality code to all developers relying on this library.
If you don't feel up to making the proposed changes, we can leave this issue open as a feature request for another developer to take a shot at when they have time.

Closing as this is not an active-issue. All feature requests have been tagged and are searchable in closed issues.

not working...


Support enums of different sizes

#[repr(u8)]
#[derive(Debug, Display, Copy, Clone, Eq, PartialEq)]
pub enum RainwayChannelMode {
    Unreliable = 0,
    Reliable = 1,
}

Take this perfectly innocuous looking enum in Rust. It generates this wonderfully correct C/C++ header definition via cbindgen:
enum RainwayChannelMode
#ifdef __cplusplus
  : uint8_t
#endif // __cplusplus
 {
  Unreliable = 0,
  Reliable = 1,
};
#ifndef __cplusplus
typedef uint8_t RainwayChannelMode;
#endif // __cplusplus

But then node-clangffi seems to think it is a bit confusing because it ends up generating
export enum RainwayChannelMode {
  Unreliable = 0,
  Reliable = 1,
}
export type RainwayChannelMode = number;
// ...
export const RainwayChannelModeDef = ref.types.int;
export const RainwayChannelModeDef = ref.types.uint8;

Basically we need the uint8_t typedef to override the size, but to only keep the enum definition.

Now that Bebop supports  varying enum sizes this might be a bigger priority


SAML Google Groups

Hello,
Running Bookstack version 0.30.2
I just successfully setup SAML via our GSuite domain but Bookstack isn't recognizing any GSuite groups so users do not get a role applied to their account when logging in.
Here are my SAML .env values:
AUTH_METHOD=saml2
SAML2_NAME=Google
SAML2_EMAIL_ATTRIBUTE=email
SAML2_EXTERNAL_ID_ATTRIBUTE=uid
SAML2_DISPLAY_NAME_ATTRIBUTES="firstName|lastName"
SAML2_IDP_ENTITYID="https://accounts.google.com/o/saml2?idpid=C"
SAML2_AUTOLOAD_METADATA=false
SAML2_IDP_SSO="https://accounts.google.com/o/saml2/idp?idpid=C"
SAML2_IDP_SLO="https://accounts.google.com/logout"
SAML2_IDP_x509="-----BEGIN CERTIFICATE----- -----END CERTIFICATE-----
SAML2_USER_TO_GROUPS=true
SAML2_GROUP_ATTRIBUTE=groups
SAML2_REMOVE_FROM_GROUPS=true
Any ideas on how to get Bookstack to recognize GSuite groups?
Thanks.

Hi @mcbmoreno,
Have you setup matching groups in BookStack?
You can try setting SAML2_DUMP_USER_DETAILS=true in your .env file and see if you're getting the expected group values on the expected attribute from google.

Hi @mcbmoreno,
Have you setup matching groups in BookStack?
You can try setting SAML2_DUMP_USER_DETAILS=true in your .env file and see if you're getting the expected group values on the expected attribute from google.

This is the output when SAML2_DUMP_USER_DETAILS=true was added.   Looks like it isn't passing groups?
{"id_from_idp":"mcbrown@eatontown.org","attrs_from_idp":[],"attrs_after_parsing":{"external_id":"jsmith@domain.com","name":"jsmith@domain.com","email":"jsmith<EMAIL_ADDRESS>

This is the output when SAML2_DUMP_USER_DETAILS=true was added.   Looks like it isn't passing groups?
{"id_from_idp":"mcbrown@eatontown.org","attrs_from_idp":[],"attrs_after_parsing":{"external_id":"jsmith@domain.com","name":"jsmith@domain.com","email":"jsmith<EMAIL_ADDRESS>

This is the output when SAML2_DUMP_USER_DETAILS=true was added. Looks like it isn't passing groups?
{"id_from_idp":"jsmith@domain.com","attrs_from_idp":[],"attrs_after_parsing":{"external_id":"jsmith@domain.com","name":"jsmith@domain.com","email":"jsmith<EMAIL_ADDRESS>

This is the output when SAML2_DUMP_USER_DETAILS=true was added. Looks like it isn't passing groups?
{"id_from_idp":"jsmith@domain.com","attrs_from_idp":[],"attrs_after_parsing":{"external_id":"jsmith@domain.com","name":"jsmith@domain.com","email":"jsmith<EMAIL_ADDRESS>

@mcbmoreno Looks like it.
I have no idea what configuration is available in Gsuite for this. This is probably the closest similar case I could quickly find:
https://www.dynatrace.com/support/help/how-to-use-dynatrace/user-management-and-sso/manage-users-and-groups-with-saml/saml-gsuite/

@mcbmoreno Looks like it.
I have no idea what configuration is available in Gsuite for this. This is probably the closest similar case I could quickly find:
https://www.dynatrace.com/support/help/how-to-use-dynatrace/user-management-and-sso/manage-users-and-groups-with-saml/saml-gsuite/

Went a different route.  In the Google Admin console when setting up the SAML connection you can choose some additional attributes to send.  Groups was not one of them but Department is.
Set SAML2_GROUP_ATTRIBUTE="department" in .env and if the value in the department matches the same name as a role in Bookstack everything applies fine.
Question though, say someone is a member of 2 departments so the department is passed via SAML as "IT,Staff".  Is there a format that value can be password that Bookstack will identify it as two separate values and place the user in both the IT role and Staff role? I tried so far passing the value as
IT, Staff
and
IT; Staff
but neither worked.

Went a different route.  In the Google Admin console when setting up the SAML connection you can choose some additional attributes to send.  Groups was not one of them but Department is.
Set SAML2_GROUP_ATTRIBUTE="department" in .env and if the value in the department matches the same name as a role in Bookstack everything applies fine.
Question though, say someone is a member of 2 departments so the department is passed via SAML as "IT,Staff".  Is there a format that value can be password that Bookstack will identify it as two separate values and place the user in both the IT role and Staff role? I tried so far passing the value as
IT, Staff
and
IT; Staff
but neither worked.

BookStack does support multiple SAML2 groups but it expects them as an array of group names; I'm not sure on the exact raw format but I'd guess you could not emulate it like so.
You can set multiple comma separated values in the "External Authentication ID" field of the role in BookStack. Therefore you could always do something hacky like have combined values listed in there, For example, for an "Staff" bookstack role:
Staff,IT; Staff,Admins; IT; Staff;

Of course not great to manage but a potential solution if there's only a few groups at play.

BookStack does support multiple SAML2 groups but it expects them as an array of group names; I'm not sure on the exact raw format but I'd guess you could not emulate it like so.
You can set multiple comma separated values in the "External Authentication ID" field of the role in BookStack. Therefore you could always do something hacky like have combined values listed in there, For example, for an "Staff" bookstack role:
Staff,IT; Staff,Admins; IT; Staff;

Of course not great to manage but a potential solution if there's only a few groups at play.

I think that will work but it looks like the External Authentication ID field in the Settings > Roles > select role, is not available when LDAP is not enabled?

I think that will work but it looks like the External Authentication ID field in the Settings > Roles > select role, is not available when LDAP is not enabled?

@mcbmoreno Should also show when SAML auth is active.

@mcbmoreno Should also show when SAML auth is active.

Hello, we have the same problem using lemonldap, the groups field parsed by bookstack shows an array with a single string of groups separated by ;. Is there a specific separator to use or a config available to tell bookstack to split that string?

Hello, we have the same problem using lemonldap, the groups field parsed by bookstack shows an array with a single string of groups separated by ;. Is there a specific separator to use or a config available to tell bookstack to split that string?

@bendem No way right now

@bendem No way right now


Add support for invokable rules

This pull request adds support for invokable rules, which were added in Laravel 9.18.

Looking good! Thanks!


How to track props update?

I have an application working with web sockets.
I need to authenticate user (async)
then connect to web socket (async)
  // with promises
  this.props.getCurrentUser().then(this.props.connectCable)

then make specific subscription.
but I need to make different subscriptions on different pages, I can't put promises in the state, so I can't do it with promises.
I am trying to track props change, but it works strange:
data:
const initialState = {
  rules: {open: false},
  currentUser: {},
  cable: {consumer: {}, connected: false},
  drower: {open: false},
  snackbar: {open: false, message: ''}
}

action:
    case CONNECT_CABLE:
      const consumer = Cable.createConsumer('ws://' + window.location.host + '/cable')
      return update(state, {cable: {consumer: {$set: consumer}, connected: {$set: true}}})

container:
  const mapStateToProps = (state) => { return merge(state.game, {
    cable: state.shared.cable,
    cableConnected: state.shared.cable.connected
  }) }

component:

  componentDidMount() {
    console.log('componentDidMount now ' + this.props.cable.connected)
    console.log('componentDidMount now ' + this.props.cableConnected)
    setTimeout(function(){
      console.log('componentDidMount later ' + this.props.cable.connected)
      console.log('componentDidMount later ' + this.props.cableConnected)
    }.bind(this), 3000)
  },

  componentWillReceiveProps(nextProps) {
    console.log('componentWillReceiveProps now this' + this.props.cable.connected)
    console.log('componentWillReceiveProps now next' + nextProps.cable.connected)
    console.log('componentWillReceiveProps now this' + this.props.cableConnected)
    console.log('componentWillReceiveProps now next' + nextProps.cableConnected)
    setTimeout(function(){
      console.log('componentWillReceiveProps later this' + this.props.cable.connected)
      console.log('componentWillReceiveProps later next' + nextProps.cableConnected)
      console.log('componentWillReceiveProps later this' + this.props.cable.connected)
      console.log('componentWillReceiveProps later next' + nextProps.cableConnected)
    }.bind(this), 3000)
  },

  componentWillUpdate(nextProps) {
    console.log('componentWillUpdate now this' + this.props.cable.connected)
    console.log('componentWillUpdate now next' + nextProps.cable.connected)
    console.log('componentWillUpdate now this' + this.props.cableConnected)
    console.log('componentWillUpdate now next' + nextProps.cableConnected)
    setTimeout(function(){
      console.log('componentWillUpdate later this' + this.props.cable.connected)
      console.log('componentWillUpdate later next' + nextProps.cableConnected)
      console.log('componentWillUpdate later this' + this.props.cable.connected)
      console.log('componentWillUpdate later next' + nextProps.cableConnected)
    }.bind(this), 3000)
  },

  componentDidUpdate(prevProps) {
    console.log('componentDidUpdate now this' + this.props.cable.connected)
    console.log('componentDidUpdate now prev' + prevProps.cable.connected)
    console.log('componentDidUpdate now this' + this.props.cableConnected)
    console.log('componentDidUpdate now prev' + prevProps.cableConnected)
    setTimeout(function(){
      console.log('componentDidUpdate later this' + this.props.cable.connected)
      console.log('componentDidUpdate later prev' + prevProps.cableConnected)
      console.log('componentDidUpdate later this' + this.props.cable.connected)
      console.log('componentDidUpdate later prev' + prevProps.cableConnected)
    }.bind(this), 3000)
  },

my output
componentDidMount now false
componentDidMount now false
componentDidMount later true
componentDidMount later false

can you explain what;s going on? why other callbacks don't shoot, why cable.connected changed but cableConnected not?
what should I do to achieve my goal?
thanks

lodash's merge doesn't create new object or smth like that, anyway problem was there. rubber duck problem solving


question about imagenet 1% logist regression

hello, I use the eval_logistic_regression.py (lambd=0.1) to evaluate the provided vit-small model but can only get 58.0 val top-1 acc with 1% data, but 65.9 in your paper.Thanks for your help!
Start the logistic regression.
Matrix X, n=12811, p=384
Switching to regular solver, problem is well conditioned

Catalyst Accelerator
MISO Solver
Incremental Solver with uniform sampling
Lipschitz constant: 0.25
Multiclass logistic Loss is used
L2 regularization
Epoch: 10, primal objective: 6.90561, time: 211.912
Best relative duality gap: 0.000430669
Time elapsed : 212.632
Logistic regression result: Acc: 0.58044

Hi,
Are you able to re-produce the results of the DINO models?

Close this for now. Feel free to re-open it.


x509: decryption password incorrect

$ klone kubicorn
  _  ___
 | |/ / | ___  _ __   ___
 | ' /| |/ _ \| '_ \ / _ \   V1.2.0
 | . \| | (_) | | | |  __/   Kris Nova ⚧
 |_|\_\_|\___/|_| |_|\___|<EMAIL_ADDRESS> --------------------------------------------
[klone]:  Kloning [kubicorn]
GitHub Username:
k4k
GitHub Password:
[klone]:  Auth [user/pass]
[klone]:  Successfully cached access token!
[klone]:  Successfully authenticated [k4k]
[klone]:  Found repository [k4k/kubicorn]
[klone]:  [ALREADY-FORKED] klone found [k4k/kubicorn] forked from [kris-nova/kubicorn]
[klone]:  Found Kloner [Go]
[klone]:  Attempting git clone
[klone]:  Cloning into $GOPATH [/Users/twood/go/src/github.com/kris-nova/kubicorn]
[klone]:  Clone: repository already exists
[klone]:  Register remote [origin]
[klone]:  Adding remote [origin][git@github.com:k4k/kubicorn.git]
[klone]:  Fetching remote [git@github.com:k4k/kubicorn.git]
[klone]:  Unable to complete klone. Klone does not clean up after itself, there might be incomplete work!
x509: decryption password incorrect

Further debuging with dtruss lead me to believe that the ssh key was being truncated. I've provided the dtruss output that lead me to this conclusion below (ssh key value here is obfuscated):
open("/root/.ssh/id_rsa\0", 0x1000000, 0x0)              = 9 0
fstat64(0x9, 0xC4203457C8, 0x0)          = 0 0
read(0x9, "-----BEGIN RSA PRIVATE KEY-----\nProc-Type: 4,ENCRYPTED\nDEK-Info: AES-128-CBC,XXXXXXXXXXXXXXXXXXXXXXXXXX9110C54\n\nBviQfrXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXb/STkXXXXXXXXXXXXXXXXXXXXnb1\nFXXXXXXXXXXhKq7P+jGT262/geCM/jy6A46sk7wtXBfVq5Lp/XXXXXXXXXXJ2owy\XXXXXXXXXXN5Dd", 0xEFE)               = 3326 0
read(0x9, "UXXXXXXXXXXXXXXXXXp/qXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXp+G2MaWMRK\nIfIfmWC9xJKykwCmnlm8XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX2GMGDVh/VSsAsX\nA0woi49jyS5RddS5Mmhw4/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\nOtC6TngF0qaDXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", 0x200)                 = 0 0
close(0x9)               = 0 0
write(0x1, "\033[32ml\XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXDIrXcvX2XXXXXXXXXXXXXXXXXXP+atm6Ha/7zakYpXXXXXXXXXXXXXXXXXXXXXXXXXSaP\noiTraiHdtwMsdqoX/MXXXXXXXXXXXXX2QHigh/zPPcx3tOlLhm1IXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXMynQJDHmi2uY2kHnEwygI9A6pcmVGDyK", 0x5)               = 5 0
write(0x1, "[klone]:  Unable to complete klone. Klone does not clean up after itself, there might be incomplete work!\n/J77pjZZurBzdXoJPmeFjs2xxIx/XXXXXXXXXXXXXXXXtNgRP+w+Vl4HQp0axFG\nTXhafgQEZPtfWKJdfFbB5zGbfoj0QN+sxBXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXq139Vj", 0x6A)          = 106 0
write(0x1, "\033[0m\0", 0x4)             = 4 0
write(0x1, "\033[31m\0", 0x5)            = 5 0
write(0x1, "x509: decryption password incorrect\n\0", 0x24)              = 36 0

The last part of the key I saw in the final write() was Xq139Vj. This is not the end of the ssh key file. This is using a 4096 bit key. I attempted to reproduce this with 2048 bit length key and it did not error out, further leading me to believe the key is being truncated.
I see where you're reading the file in pkg/auth/ssh.go with local.BGetContent(). I've confirmed that the value of bytes is the full value of OptPrivateKey so I suspect the issue with in the handoff to ssh.NewPublicKeys

I looked at https://github.com/kris-nova/kubicorn/issues/76 more this morning. I believe my initial assessment to be incorrect. I was digging through some of the libraries used and noticed a comment on ssh.NewPublicKeys which I had previously overlooked which explains this issue perfectly:
// NewPublicKeys returns a PublicKeys from a PEM encoded private key. An
// encryption password should be given if the pemBytes contains a password
// encrypted PEM block otherwise password should be empty. It supports RSA
// (PKCS#1), DSA (OpenSSL), and ECDSA private keys.
My 4096bit key was encrypted with a passphrase. I generated a 4096bit key without a passphrase and it works as expected. We should provide one or multiple of the following methods for this:

Support ssh-agent
Read password from flag
Read password from env
Detect presence of and prompt for passphrase


[1pt] Fix minor bugs in cahaba

Minor bugs were introduced recently (#206 and #230).
Current behavior

acquire_and_preprocess_inputs.py

FileNotFoundError: [Errno 2] No such file or directory: '/data/inputs/huc_lists/included_huc4.lst'

fim_run.sh

/foss_fim/fim_run.sh: line 143: [: : integer expression expected
parallel: Error: Parsing of --jobs/-j/--max-procs/-P failed.
Usage:
parallel [options] [command [arguments]] < list_of_arguments
parallel [options] [command [arguments]] (::: arguments|:::: argfile(s))...
cat ... | parallel --pipe [options] [command [arguments]]
-j n            Run n jobs in parallel
-k              Keep same order
-X              Multiple arguments with context replace
--colsep regexp Split input on regexp for positional replacements
{} {.} {/} {/.} {#} {%} {= perl code =} Replacement strings
{3} {3.} {3/} {3/.} {=3 perl code =}    Positional replacement strings
With --plus:    {} = {+/}/{/} = {.}.{+.} = {+/}/{/.}.{+.} = {..}.{+..} =
{+/}/{/..}.{+..} = {...}.{+...} = {+/}/{/...}.{+...}
-S sshlogin     Example<EMAIL_ADDRESS>--slf ..        Use ~/.parallel/sshloginfile as the list of sshlogins
--trc {}.bar    Shorthand for --transfer --return {}.bar --cleanup
--onall         Run the given command with argument on all sshlogins
--nonall        Run the given command with no arguments on all sshlogins
--pipe          Split stdin (standard input) to multiple jobs.
--recend str    Record end separator for --pipe.
--recstart str  Record start separator for --pipe.
See 'man parallel' for details
Academic tradition requires you to cite works you base your article on.
When using programs that use GNU Parallel to process data for publication
please cite:
O. Tange (2011): GNU Parallel - The Command-Line Power Tool,
;login: The USENIX Magazine, February 2011:42-47.

Causes/solutions:

acquire_and_preprocess_inputs.py: the directory /data/inputs/huc_lists is never created

fim_run.sh: defaultMaxJobs needs to be updated to default_max_jobs


nixos: installer.nix test: test ZFS install use case

Motivation for this change
NixOS works great with ZFS as the root filesystem, adding an installer test helps create documentation on how to do it, as proved-good instructions. Also helps to make sure we don't break it :)
Had to add support for extra installer-level config, to enable ZFS on the installation host.
cc @Mic92 who was also trying to make this work
Things done

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

[x] NixOS
[ ] macOS
[ ] Linux

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

@0xABAB what was your comment? I don't see it...

At some point it might make sense to start breaking up the installer tests nix file since it's getting pretty large and contains a bunch of disparate tests that are only united by some sort of affiliation with the installer 😄

Fixed @Mic92 @0xABAB

also @copumpkin

Heh:
https://github.com/jcumming/nixpkgs/commit/c4fbd8b3240f318fbcada1d9ea10bc3cf5899a06
I guess I could have created a PR for that?

Yeah, definitely :) although I would steer clear from swap on zfs being in the tests.

@grahamc Github is most definitely broken here, since I cannot add single line comments anymore, making reviews impractical. The printf comment refers to not using echo -n, but instead using printf %s, because MacOSX doesn't do 'echo -n'.

darwin also uses coreutils. So it does not make a difference, which one to use.

@Mic92 I just don't see the point of making code less portable, even if the current interpreter is bash. Now, if one actually needs bash features to implement a feature, sure. This comment shouldn't really block progress, though, but I would like to hear your point of view.


Adding check for a valid user

This is to guard against the orphaned visualization records. i.e. visualizations without any associated owners (users)

The root cause is that - we do have the visualizations in the db with no associated user.
I think - all visualizations should have an user associated with it. If that's the case, then these checks are just the guard against those 'inconsistent data records'. Without these checks flow just breaks some point later.
Deleting the orphaned records is way too destructive and also doesn't really guarantee that there won't be any future inconsistency, unless we add some database level integrity.
My suspicion is that, the user:deletion:by_username sometimes fails, at least for our flow with the fwd based data library.
I am keeping this 'fix' ready, since it solves the sync issue on QA,

I'd search the root cause of the orphaned visualisations then! How does this happen? It shouldn't.
If this is happening there is something off and it's better to take care of it now.

I had seen some issues, with the user:deletion:by_username, I will look into that as well. But my point is that - these changes are harmless if the user exists. The flow will continue & if user doesn't exists, then it's going to fail somewhere at a later stage.
Also, do you see any orphaned visulization records in your QA/Prod?

Yeah, in that sense this is ok, but only as a "debug trace". IMO this only makes sense as a step towards figuring out why this happens.

If this looks good, then I can merge it on to blp_dev.

Will review @vishalya

Looks ok..

+1 @tylerparsons finding the underlying issue is important (might be hiding a more serious problem)


Unable to collect docstrings from .pyi files

(not sure which repo this goes in, so creating it here for simplicity.)
Sorry, it's me again trying to push the limits of your amazing library.
Describe the bug
I have a library that's partly implemented in rust and I want to build docs from docstrings defined in a .pyi files which defines the python interface for the rust code.
To Reproduce
See _rust_notify.pyi, and the PR where tried to add docs from that file https://github.com/samuelcolvin/watchfiles/pull/104.
Currently I'm getting the following error while trying to build with a reference to the class in that file:
INFO     -  [14:19:37] Detected file changes
INFO     -  Building documentation...
INFO     -  running examples tests...
..............                                                                                [100%]
14 passed in 0.07s
WARNING  -  mkdocstrings_handlers: 1 aliases were still unresolved after 2 iterations
ERROR    -  mkdocstrings: Template 'alias.html' not found for 'python' handler and theme 'material'.
ERROR    -  Error reading page 'api/rust_backend.md': alias.html
alias.html

The mkdocstrings_handlers: 1 aliases were still unresolved after 2 iterations line refers to the following errors in verbose output:
DEBUG    -  griffe: Found watchfiles: loading
DEBUG    -  griffe: Loading path watchfiles/__init__.py
DEBUG    -  griffe: Loading path watchfiles/version.py
DEBUG    -  griffe: Loading path watchfiles/filters.py
DEBUG    -  griffe: Loading path watchfiles/cli.py
DEBUG    -  griffe: Loading path watchfiles/main.py
DEBUG    -  griffe: Loading path watchfiles/__main__.py
DEBUG    -  griffe: Loading path watchfiles/_rust_notify.cpython-310-x86_64-linux-gnu.so
DEBUG    -  griffe: Alias watchfiles.BaseFilter was resolved to watchfiles.filters.BaseFilter
DEBUG    -  griffe: Alias watchfiles.DefaultFilter was resolved to watchfiles.filters.DefaultFilter
DEBUG    -  griffe: Alias watchfiles.PythonFilter was resolved to watchfiles.filters.PythonFilter
DEBUG    -  griffe: Alias watchfiles.Change was resolved to watchfiles.main.Change
DEBUG    -  griffe: Alias watchfiles.arun_process was resolved to watchfiles.main.arun_process
DEBUG    -  griffe: Alias watchfiles.awatch was resolved to watchfiles.main.awatch
DEBUG    -  griffe: Alias watchfiles.run_process was resolved to watchfiles.main.run_process
DEBUG    -  griffe: Alias watchfiles.watch was resolved to watchfiles.main.watch
DEBUG    -  griffe: Alias watchfiles.VERSION was resolved to watchfiles.version.VERSION
DEBUG    -  griffe: Alias resolution error for watchfiles._rust_notify.RustNotify -> builtins.RustNotify
DEBUG    -  griffe: Iteration 1 finished, 9 aliases resolved, still 1 to go
DEBUG    -  griffe: Alias resolution error for watchfiles._rust_notify.RustNotify -> builtins.RustNotify
DEBUG    -  griffe: Iteration 2 finished, 0 aliases resolved, still 1 to go
WARNING  -  mkdocstrings_handlers: 1 aliases were still unresolved after 2 iterations

Basically the same problem, but as a warning
Expected behavior
Since these files have python syntax, I imagine it might be quite easy to extract docstrings?
Information (please complete the following information):

OS: [e.g. iOS] Ubuntu
Browser: [e.g. chrome, safari] NA
mkdocstrings version: [e.g. 0.10.2]

black==21.12b0
mkdocs==1.2.3
mkdocs-material==8.2.6
mkdocs-simple-hooks==0.1.5
mkdocstrings[python]==0.18.1

Sorry,  I had the wrong error before due to a mistake my side, updated.

Sorry, it's me again trying to push the limits of your amazing library.

Fine by me :joy:
Indeed, support for .pyi files would be great. I believe it shouldn't be that hard to implement since, as you stated, .pyi files are using regular Python syntax. Needs a bit of thought of course.

Version 0.19.0 of Griffe is able to both load *.pyi stubs and merge the data back into their existing, counter-part *.py modules. Let me know if it works for you! Can reopen if it does not.

Thanks so much. I'll check, there's no .py file though, just a .so shared library.

Thanks so much, this is now (sort of) working, see https://github.com/samuelcolvin/watchfiles/pull/165. The next release of watchfiles will use this to generate docs for the rust interface.
However I've discovered a small bug with this:
watchfiles is now built using abi3 which creates a _rust_notify.abi3.so file alongside _rust_notify.pyi. If the _rust_notify.abi3.so file is present, and (I guess) dependencies are installed so mkdocstrings can try to load the package, I get the same error as before:
jinja2.exceptions.TemplateNotFound: alias.html

If _rust_notify.abi3.so is deleted or dependencies are not installed, mkdocs build works fine.

Hey @samuelcolvin, you might have seen from #451 that this error is triggered because an alias in your code cannot be resolved, and this in turn is triggered by the fact a compiled object tells its parent module is builtins (see https://github.com/oconnor663/blake3-py/issues/38#issuecomment-1353810913).  A probable solution is that you fix that the same way you suggested in the mentioned issue. I'll try again running mkdocstrings/Griffe on your code anyway, there were other bugfixes since then.

That's really helpful, thanks so much.

Take care to use the canonical path of the parent module when setting the __module__ attribute, i.e. the module where the object is actually defined within the whole tree of the package (not just the compiled modules), and not where the object is imported, even if this is the public path to the object.

Yup, it's fixed in pydantic-core, I'll fix it in watchfiles soon.

Can I ask how to get enable pyi?
I have the following doc page:
::: feishu.api.im.messages

And both .py and .pyi file.
But doc page only shows docstrings from .py file
http://feishu.danling.org/api/im/messages/

@ZhiyuanChen can you open a new issue please? In there, please also share what you see and what you would expect to see instead.

@ZhiyuanChen can you open a new issue please? In there, please also share what you see and what you would expect to see instead.

Thank you so much! I'll do that once I get back to work on Wednesday


unp in diablo

Hello.
Trying to use unp on my old Nokia n810.
unp from debian stretch repository.
`[3|user@/]perl -v
This is perl, v5.8.3 built for arm-linux-gnueabi-thread-multi
Copyright 1987-2003, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using man perl' or perldoc perl'.  If you have access to the
Internet, point your browser at http://www.perl.com/, the Perl Home Page.
[3|user@/]unp
Can't locate File/Basename.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.8.3 /usr/local/share/perl/5.8.3 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at /usr/bin/unp line 28.
BEGIN failed--compilation aborted at /usr/bin/unp line 28.
`
How to fix? Thanks.

nevermind, working now. after apt-get install --reinstall perl
thanx for silence, have a nice day:-)

@Sergei-Alekseev please consider closing this issue.


message_edit: Show typing indicator for message editing.

Previously, when a message was being edited, typing notification for it is not shown.
This commit adds typing indicators for message editing in stream as well as in Direct Messages, provided the send typing notification for corresponding is enabled.
Fixes #25719

Screenshots and screen captures:

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[ ] Each commit is a coherent idea.
[ ] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[ ] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

Thanks for working on this @roanster007! I posted a batch of comments that you can get started on while we finalize the API design for this.

@timabbott , I have updated the PR as per the comments, except for that preparatory PR. I explained the difficulty I am facing in that as a reply there.

Testing the PR, the dots are invisible in light theme.

Ah, sorry for the oversight! @alya , I have updated the PR, screencap. could you confirm if the dots are okay for dark mode or they need to be brighter. (they are now of same colour as the User is typing... notification)

It looks reasonable to me; we can let folks comment further when it's deployed on CZO.

@timabbott I think this is ready for you to take another look.

I addressed all the reviews.

@timabbott I have addressed all the reviews, and have fixed all the possible bugs which I figure out...Please do point out if you find something off regarding the logic.

Removed the conflicts... zulipbot didn't update the status

had a really tough time trying to put up the refactoring commit into this as the first commit due to some merge conflicts.... So I rather made the same refactoring in the pr #29066

@timabbott could you have another look at it?

addressed all reviews! Ready for another review.


feature: Ensure there is appropriate CI coverage for workloads

Feature Description
Ensure the new workloads repo has the right CI and bot integration in order to gate merges and ensure e2e functionality.
This may also include creation of new OWNERS files if they are not covered by other tasks

/transfer-issue contrib-tmc


Cascading3 module doesn't build when using thrift 0.9.0

The cascading-3 module pulls in 0.7.0 because it doesn't have an explicit dependency on libthrift, although it does require libthrift. This module should have a dependency on libthrift and use the thrift.version property.
Side note: I also noticed that it inherits SLF4J from thrift 0.7.0 and should instead have a dependency on slf4j-api and a test dependency on slf4j-simple.
Reporter: Ryan Blue / @rdblue
Assignee: Ryan Blue / @rdblue
PRs and other links:

PR #328

Note: This issue was originally created as PARQUET-540. Please see the migration documentation for further details.

Ryan Blue / @rdblue:
Merged #328. Thanks @piyushnarang and @danielcweeks for reviewing!


making page/snippet/layout/etc icons clickable

would there be any problem with making the icons clickable? i often find myself trying to click them since they (appear to be) a bigger target.
i think ideally the entire row would be clickable and unless you're targeting a specific action (expand, remove, etc) that it would go to the edit page.
thoughts?

This is something I find myself doing a lot, however, I'm not sure that the entire line being a link is the right solution. I quickly modified the HTML in webkit's dev mode just to see what it would feel like, and it just felt wrong to me (too easy to click, and it makes it hard to select the name of a page, if you want to copy and paste it somewhere for instance).
I threw together a quick commit with just the icon being in the link (CI tests here) and this feels better to me.


Ansible for checking and remediation

This is a WP:
Issues:
1: all cases where shell is being used for checking need to be updated to make sure
ansible change status get correctly set on --check. Is initial code status was set to no change, since the code
was not making a change, but for integration with ara we want change to be set to indicate that remediation
would result in a change.
2: Not all tests have meta.yml files
3: Existing tests need to be validated against current examples/generic-azure.yaml since that has changed since
since we started.

Hey @brett060102, this is quite a lot of new code for one batch and it would take really long for us to dig into it.
Since we only need to validate the integration with the Ansible runner right now, could you by any chance resubmit with just one single check?
We can add the rest of them later, possibly in groups.

@stefanotorresi and @arbulu89
I pre-popualated the meta files from the main files and did some of them so we could test that part, but stopped changing that
when  you said to leave that to you.  I can either delete those, or change the contents to:

name: Set Test ID
set_fact:
test_id: 'TEST_ID'

I can split, but let me do a separate PR for that. I think that It needs at least four test cases though.
I would propose the following:
1.1.1 (changed config file example)
1.1.2.runtime (all shell example, makes no changes, but does restart cluster)
1.2.1 (all shell example)
1.3.5 (shell example, manual remediation)
So, the new PR would have:
man and meta for cases above
ha-meta.yml for cases above
ha-remediation.yml for cases above
current:
vars/dev_env.yml
vars/azure.yml
How does that sound.

Closing this PR. A smaller change with just a few tests will be put up.


Fix for #1927

1. What does this change do, exactly?
This is a fix for #1927 .  Ensures that encoded / (%2f) in url is retained when the site definition includes a directory.
The problem turned out to be a call to strings.TrimPrefix which also decoded any encoded values in the string.  It has been replaced by code to simply perform the trim.
2. Please link to the relevant issues.
#1927
3. Which documentation changes (if any) need to be made because of this PR?
None
4. Checklist

[x] I have squashed any insignificant commits
[x] This change has comments for package types, values, functions, and non-obvious lines of code
[x] I am willing to help maintain this change if there are issues with it later

Sorry the PR is a complete mess, I'll update when I'm sure I have the correct behaviour.

No problem! Thank you for working on it! I will be happy to take another look when it is tested. I'm sure it'll clear things right up.


Structured3D Data preprocessing problem

Some data in Structured3D is lost, resulting in the failure of generating point cloud data. Have you used this tool to convert point clouds?
generate_point_cloud_stru3d.py

some  error or missing data：
/Structured3D_panorama_11/Structured3D/scene_02212/2D_rendering/1058346/panorama/full/rgb_coldlight.png
/Structured3D_panorama_11/Structured3D/scene_02212/2D_rendering/175980/panorama/full/depth.png
/Structured3D_panorama_01/Structured3D/scene_00206/2D_rendering/141/panorama/full/rgb_coldlight.png

Hi, yes, I used generate_point_cloud_stru3d.py to generate point clouds. If there is missing data, you may let the Structured3D team know.

Closed this issue for now. Feel free to let me know if you have further concerns.

Could you please share the lost data with me? Because you tried to use the tool to generate a point cloud, the data you downloaded should have the correct data.
missing data：
/Structured3D_panorama_11/Structured3D/scene_02213/2D_rendering/786544/panorama/full/depth.png
/Structured3D_panorama_11/Structured3D/scene_02213/2D_rendering/786544/panorama/full/depth.png
/Structured3D_panorama_11/Structured3D/scene_02212/2D_rendering/1058346/panorama/full/rgb_coldlight.png
/Structured3D_panorama_11/Structured3D/scene_02212/2D_rendering/175980/panorama/full/depth.png
/Structured3D_panorama_01/Structured3D/scene_00213/2D_rendering/22731/panorama/full/depth.png
/Structured3D_panorama_01/Structured3D/scene_00213/2D_rendering/22735/panorama/full/depth.png
/Structured3D_panorama_01/Structured3D/scene_00206/2D_rendering/141/panorama/full/rgb_coldlight.png
/Structured3D_panorama_13/Structured3D/scene_02608/2D_rendering/345/panorama/full/rgb_coldlight.png
/Structured3D_panorama_10/Structured3D/scene_02011/2D_rendering/2003/panorama/full/rgb_coldlight.png
/Structured3D_panorama_07/Structured3D/scene_01412/2D_rendering/143/panorama/full/depth.png
/Structured3D_panorama_09/Structured3D/scene_01815/2D_rendering/1429/panorama/full/depth.png
/Structured3D_panorama_09/Structured3D/scene_01815/2D_rendering/237/panorama/full/rgb_coldlight.png
/Structured3D_panorama_07/Structured3D/scene_01410/2D_rendering/176231/panorama/full/rgb_coldlight.png
/Structured3D_panorama_07/Structured3D/scene_01410/2D_rendering/180208/panorama/full/depth.png
/Structured3D_panorama_05/Structured3D/scene_01010/2D_rendering/1162/panorama/full/depth.png
/Structured3D_panorama_03/Structured3D/scene_00613/2D_rendering/794918/panorama/full/depth.png
/Structured3D_panorama_04/Structured3D/scene_00810/2D_rendering/1817/panorama/full/depth.png
/Structured3D_panorama_04/Structured3D/scene_00809/2D_rendering/3065/panorama/full/depth.png

@zhangzscn   Hi, the Structured3D Terms of Use states that Researcher shall not redistribute the downloaded data, in whole or in part, through other media, but shall refer to the Database website (https://structured3d-dataset.org).


How to start and stop record from an external button ?

Description
Briefly describe the issue.
Would like to record the video/audio using an external button which is outside the video control.

Figured out the answer: Leaving it here in case someone else is also wondering.
Call onclick on button
function startRecording() {
this.player.record().start();
}
function stopRecording() {
this.player.record().stop();
}


SharedTree: Summary upload sizes exceed service limits

Note: Unlike the similar Tinylicious issue (#5213), this is a known/intentional service limit.
Describe the bug
Bubblebench experiences periodic hangs of increasing length during summarization until the service rejects the summary upload due to length.  With two Bubblebench clients at ~30 bubbles the summary reaches the service limit within ~15 minutes.
To Reproduce
Steps to reproduce the behavior:
git checkout main && git pull
cd experimental/examples/bubblebench/sharedtree
npm run start:r11s -- --env.tenantId "..." --env.tenantSecret "..." --env.fluidHost "..." --env.production

Expected Behavior
Summary size is proportional to the document content, which at 30 bubbles is constant at ~2KB of data.
More Info
The unbounded growth of the summary is due to the edit log, which is summarized as a flat list of blobs.
One fix is to replace the flat list with a tree.  A tree allows previously serialized blocks of IFluidHandle[] to be reused in subsequent summaries.  The summary itself need only contain a reference to the root IFluidHandle (plus contents of blobs that have not-yet finished uploading.)
See the SharedLog DDS prototype for an example of a virtualizable B+Tree here.

The number above is for r11s.  Note that increasing the number of blobs infinitely also isn't scalable for some other services as well.
FYI @vladsud.

(FYI: @taylorsw04 - I believe this is known debt wrt. virtualizing the edit log.)

Yes, there are incoming PRs that will make the accrual incremental and significantly reduce the size of the upload. Additionally, we would like to see DDSs configurable such that, by default, SharedTree wouldn't even store history--I'm chatting with @DLehenbauer about that.

SPO is rather sensible to overall number of blobs in the system. So any strategy that relies on infinite growth (with user edits) is destined to fail eventually (at least with SPO), or have sub-par user experience.
That said, it would be great to get deeper understanding where r11s fails. I assume "constant at ~2KB of data" is addition per summary, right? Or something else? What kind of limit r11s is sensitive to? Reason I ask - we might have certain solutions already in place or in development that might help here

The summary itself is expanding at ~200kb a minute (my estimate / not measured).  @tanviraumi and company are looking at why r11s rejected the upload.  Currently they suspect it exceeded the Axios 'maxBodyLength'.
(I only mentioned the ~2kb to highlight that what the user thinks of as the "document" isn't growing...  just the summaries.)

@DLehenbauer @taylorsw04, please feel free to move to real milestone once we know when this will lend.


eww: set meta.broken on darwin

Motivation for this change
ZHF: #144627
eww doesn't have official support for darwin and hydra build is failing
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

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

[x] Fits CONTRIBUTING.md.

Hmm, they at least make an attempt to support macOS here: https://github.com/elkowar/eww/blob/70285e0ebf928df4d78725dfb02d9eae2273630c/crates/eww/src/config/system_stats.rs#L87
Maybe meta.broken would be more accurate? Build log for convenience: https://hydra.nixos.org/build/157316717/nixlog/1

Hmm, they at least make an attempt to support macOS here<EMAIL_ADDRESS>Maybe meta.broken would be more accurate? Build log for convenience: hydra.nixos.org/build/157316717/nixlog/1

Ewwdoes because it's always been an idea to support macos at some point. But frankly, not enough people care, and elkowar (the main maintainer) cannot develop for that platform.
It's at the point where you can say that it isn't supported on darwin - although I also agree that meta.broken is more fitting

Oh okay, makes sense. Looks good to me either way then.