Implement fetching meetings via calendar hybrid service

This is just a small update to Uday's approved PR https://github.com/ciscospark/spark-js-sdk/pull/383  to add a bump parameter to sauce connect in order for tests to run on Sauce via tunneling. Also updated code to work on latest sdk master.
@ianwremmel Please Review
There's some WIP work for updating this to use the new Whistler endpoint, but that's being blocked by a decryption bug in Calendar. Will add that to another PR when that is fixed.

Addressed comments and moved calendar folder to new location @ianwremmel


splitting output scripts' order issue in html

build.ts
import html from "bun-plugin-html";

await Bun.build({
  entrypoints: ["./index.html"],
  outdir: "./out",
  root: ".",
  naming: {
    // default values
    entry: "[dir]/[name].[ext]",
    chunk: "[dir]/[name]-[hash].[ext]",
    asset: "[dir]/[name]-[hash].[ext]",
  },
  plugins: [
    html(),
  ],
  splitting: true,
});

input
    <script src="a.ts"></script>
    <script src="b/c.ts"></script>
    <script src="b/d.ts"></script>

result
    <script src="./b/c-y944y4y3.js"></script>
    <script src="./b/d-g6std08f.js"></script>
    <script src="./a-e05yzwsk.js"></script>

here's the demo
demo.zip

I'm purposely changed the scripts to be chunks, because they technically are chunks from the perspective of the html file. I can make it so that they are treated as entry points instead. Maybe add an additional option to do so?
What do you think makes most sense?

chunks works great. the only issue is that: the original order is a->c->d in html script tags, but output is  c->d->a

Should be fixed in v2.1.4! Thank you for the bug report!

it seems the splitting: true not working properly in v2.1.4

Let me look into that, thanks for the pull request, I'll merge it shortly!

v2.1.5 should now fix this issue! Thank you so much for your contributions.
If you have any other issues, please let me know!


Tests fail with rb_thread_call_with_gvl: called by a thread which has GVL on OSX

It seems that V8 5.2.361.43 causes a bug in mini_racer.
Full log: https://travis-ci.org/discourse/mini_racer/jobs/147846400

Haha, this is totally what was being fixed by the latest commit: https://github.com/discourse/mini_racer/commit/ff543d24e8a69f4a4012f848cbd857d8188dafcd

Did you try with the updated version of libv8?

Nope. Hadn't :)
I can confirm failure after update of libv8.
There are other issues with the fix as well, but I don't know enough about the threading model to propose a fix for them yet.

yeah this is fixed, good catch ... shame I can't use https://github.com/discourse/mini_racer/commit/6bfefdb10f815fc626933dc39c91b880e06ca0b3
ruby_thread_has_gvl_p only works on ruby 2.3 it appears :(


Use channel closing rather than sending None explicitly

Rather than sending None when we want to close the channel, explicitly close the sending side with drop, which will automatically stop the iteration.

I can't remember why I didn't do this originally, I remember thinking about it, but I didn't get around to actually doing it.  Evidently not the happiest block of code I've ever written.
Thanks!


Update install-additional-r-packages-on-sql-server.md

https://github.com/Microsoft/sqlmlutils/tree/master/R/dist goes to an old sqlmlutils, not the releases tab. So, customers may download an old version.
Updating R.exe -e "install.packages('odbc')" to R.exe -e "install.packages('odbc', type='binary')" (to be consistent with the github readme https://github.com/microsoft/sqlmlutils and customer don't get dependency related errors)

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

@Aniruddh25 @guitarnana

@guitarnana Thank you for your review. In this repo, the article author or a PM should sign off before a pull request is merged.
@garyericson Could you take a look?
Thanks.


Add uConsole mapping

@carverdamien Great addition! Did you try raylib on uConsole? How did it work? Did it require some tweaks? I got the uConsole but I haven't tried it yet...

Thanks @raysan5!
I have the RPi-CM4 version and I'm using zig to write my games. Regarding tweaks, we already merged this change 3 months ago https://github.com/raysan5/raylib/pull/4049
So far, I've used a very narrow range of features from raylib. Mainly stuff from the 2d_camera example.
I've been focusing on my custom network code. I'm doing everything on the uConsole. My next step is to cross compile for Windows and see if two players can play together: one on the uConsole and the other on Windows.
I'll keep sending PR if I see any issue with raylib.

Shouldn't this be submitted upstream to glfw?

Shouldn't this be submitted upstream to glfw?

Yes. Can someone do it and post a link here?


Add support for more DSR queries.

Summary of the Pull Request
This PR adds support for more Device Status Report (DSR) queries,
specifically:

Printer Status (DSR ?15)
User Defined Keys (DSR ?25)
Keyboard Status (DSR ?26)
Locator Status (DSR ?55)
Locator Identity (DSR ?56)
Data Integrity (DSR ?75)
Multiple Session Status (DSR ?85)

Detailed Description of the Pull Request / Additional comments
For most of these, we just need to return a DSR sequence indicating
that the functionality isn't supported.

DSR ?13 indicates that a printer isn't connected.
DSR ?23 indicates the UDK extension isn't supported.
DSR ?53 indicates that a locator device isn't connected
DSR ?57;0 indicates the locator type is unknown or not connected.
DSR ?83 indicates that multiple sessions aren't supported.

For the keyboard, we report DSR ?27;0;0;5, indicating a PC keyboard
(the 5 parameter), a "ready" status (the second 0 parameter), and an
unknown language (the first 0 parameter). In the long term, there may
be some value in identifying the actual keyboard language, but for now
this should be good enough.
The data integrity report was originally used to detect communication
errors between the terminal and host, but that's not really applicable
for modern terminals, so we always just report DSR ?70, indicating
that there are no errors.
Validation Steps Performed
I've added some more adapter tests and output engine tests covering the
new reports.
PR Checklist

[x] Closes #16518
[x] Tests added/passed

I should note that I've also tried to verify these reports in Vttest, but there were some bugs in their DSR handler which have only just been fixed in the latest release, and even now the DSR ?23 report for UDK isn't identified correctly (this is probably my fault - I must have missed that one when I was reporting the other bugs). I didn't want to put this in the PR commit notes since it's likely just a short term issue.


What do served_dimensions and unrolled count mean exactly in memory_level class?

I am not sure about what technically served_dimensions and unrolled count mean in the memory level class linked below. Any help will be well appreciated.
https://github.com/KULeuven-MICAS/zigzag/blob/master/zigzag/classes/hardware/architecture/memory_level.py

Hi, you can find more information regarding the served dimensions here: https://kuleuven-micas.github.io/zigzag/hardware.html#memory-hierarchy
It specifies how the memory level connects to the lower level(s) in terms of the dimensions of the operational array. If you have more questions after reading the documentation, feel free to ask here!


Move calibration from commander to event framework

This patch moves all calibration routines out of commander to events framework and removes commander_low_prio_loop.
Includes following set of changes.

On receiving calibration request
i. commander does some minimal handling and move the arming state to ARMING_STATE_INIT.
ii. event framework waits until the arming state is moved to ARMING_STATE_INIT before timeout of 2secs.
event framework spawns a px4 task to handle the calibration and make sure only one calibration is active.
event framework sends a calibration_status orb message after the completion of the calibration.
Commander will move the arming state back to ARMING_STATE_STANDBY once it receives calibration_status.

This is one of the part of task mentioned in #8014

Cool, thanks! @bkueng @dagar More RAM!

Looks great! I resolved the conflicts, deleted some remaining low priority thread configuration, and rebased on px4 master. I'd like to get this in right after the v1.7.0 release.

TODO for @dagar

review commander stack requirements
review events stack requirements
tune usage (move to uORB?)
test everywhere (monitor memory usage)


New package: DiscreteEntropy v0.1.0

Registering package: DiscreteEntropy
Repository: https://github.com/kellino/DiscreteEntropy.jl
Created by: @kellino
Version: v0.1.0
Commit: 93ac03350e829115823600ba5e11d73b2320c7a8
Reviewed by: @kellino
Reference: https://github.com/kellino/DiscreteEntropy.jl/issues/1
Description: Estimation of Shannon Entropy for Discrete Random Variables

@JuliaRegistrator register


GithubActions checking out wrong commit sometimes

When I was iterating on a PR I definitely ran into:
https://github.com/actions/checkout/issues/299
I could tell because I was seeing what SHA was built with the binary due to some integration tests that read/manipulated output regarding the version.
I wanted to document it so that we can work around it or fix it as needed. I think I've hit this before but it just 'went away'.
Seems to be due mainly to a delay between when it tries to pull the merge commit and when that merge commit becomes calculated/available.
You can change to checkout the head, but then you dont find possible merge commits. I'm considering doing that since there are some other catches for those.

I actually dont think this is what we were hitting now so I'm closing, though its good that its in the history in case we do hit it.
What was happening was that this was for integration tests which means that it was checked out (using the merge commit that the action defaults to) and built, which sets the ldflag appropriately.
Later in the tests, I was referencing what was in code, which is actually, in this case, junk. It looked like v0.52.0 so it seemed like that had been set inappropriately or the sha had, but both were exactly as expected. We don't often compare static code to binary data though and this is one of the rare cases that we use the build flags to override the in-code value.


[TimeLine] connection between tasks

This PR closes #198

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

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Update contribution instructions

This PR explains how to validate registry.toml locally before submitting a PR.

@certik Great idea, I went ahead and pinned fpm-registry, stdlib-docs, and benchmarks as well. Perhaps it will help catch people's interest and make them contribute.

Perfect, thank you!


New package: FlexRadioSystems.SmartSDR version <IP_ADDRESS>63

Description

Resolve https://github.com/microsoft/winget-pkgs/issues/115470

Checks

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

There seems a step that the installer wants to install a device software on the system. This step will prompt users for authorization.

Switches available for this installer does not provide such option to supress the prompt. Is there any walkaround?

[Policy] Interactive Only

For an unavailable feature, this pull request is blocked.
Convert to a draft PR, waiting for the feature implementation, and also prevent other contributors from wasting time creating duplicate PRs.


Build failure: nvidia-vaapi-driver

Steps To Reproduce
Steps to reproduce the behavior:

nix-build /nix/store/wxz34yi2w55cy0yvk3avs8awd8n4d2g7-nvidia-vaapi-driver-0.0.11.drv
Somehow, nix build nixpkgs#nvidia-vaapi-driver builds fine though
This issue appeared after this commit

Build log
❯ nix-build /nix/store/wxz34yi2w55cy0yvk3avs8awd8n4d2g7-nvidia-vaapi-driver-0.0.11.drv --show-trace
this derivation will be built:
  /nix/store/wxz34yi2w55cy0yvk3avs8awd8n4d2g7-nvidia-vaapi-driver-0.0.11.drv
building '/nix/store/wxz34yi2w55cy0yvk3avs8awd8n4d2g7-nvidia-vaapi-driver-0.0.11.drv'...
Running phase: unpackPhase
unpacking source archive /nix/store/1i6xa5i78x6ls7c30y0k3lazl1cs8kmp-source
source root is source
Running phase: patchPhase
applying patch /nix/store/6i7fl1ip1j4byc0rhwwfj73aqj6g5sx4-0001-hardcode-install_dir.patch
patching file meson.build
Running phase: updateAutotoolsGnuConfigScriptsPhase
Running phase: configurePhase
no configure script, doing nothing
Running phase: buildPhase
no Makefile or custom buildPhase, doing nothing
Running phase: glibPreInstallPhase
Running phase: installPhase
no Makefile or custom installPhase, doing nothing
Running phase: glibPreFixupPhase
Running phase: fixupPhase
/nix/store/9idj7kdhvm2m5ly0d6mnsalgsnnfccla-stdenv-linux/setup: line 326: /nix/store/8ww1xd1vkm9m4xvi4gdxjr0qw7l78l50-nvidia-vaapi-driver-0.0.11/lib/dri/nvidia_drv_video.so: No such file or directory
/nix/store/9idj7kdhvm2m5ly0d6mnsalgsnnfccla-stdenv-linux/setup: line 327: read: : invalid file descriptor specification
/nix/store/9idj7kdhvm2m5ly0d6mnsalgsnnfccla-stdenv-linux/setup: line 328: fd: ambiguous redirect
error: builder for '/nix/store/wxz34yi2w55cy0yvk3avs8awd8n4d2g7-nvidia-vaapi-driver-0.0.11.drv' failed to produce output path for output 'out' at '/nix/store/wxz34yi2w55cy0yvk3avs8awd8n4d2g7-nvidia-vaapi-driver-0.0.11.drv.chroot/nix/store/8ww1xd1vkm9m4xvi4gdxjr0qw7l78l50-nvidia-vaapi-driver-0.0.11'

Additional context
You can reproduce this error by running nix flake update on my config and build the "zephyrus" target.
Notify maintainers
vcunat

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.1-zen1, NixOS, 23.11 (Tapir), 23.11.20240117.8bf65f1`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.1`
 - channels(root): `"nixos-23.11"`
 - nixpkgs: `/nix/store/ch82i0ka6gw80amas17rfy392yyidpsf-source`

Add a :+1: reaction to issues you find important.

My nix-store was corrupted. In the live iso, I mounted the partitions of the system, ran sudo rm -Rf /nix and nixos-install --flake repo#target, and reboot. Everything working now


[BUG] Make '@angular/elements' dependency optional

Environment
Please provide as many details as you can:

Hosting type

[x] Form.io
[ ] Local deployment

Version:

Formio.js version:
Frontend framework:
Browser:
Browser version:

Steps to Reproduce

Install a new angular application
Import this library
Try to compile and you will see the following error "Cannot find module<EMAIL_ADDRESS>
Description
I understand how to resolve this problem.... the issue is that all of our current documentation does not require that the user install this as a dependency. I believe this should only be required if they are wanting to create custom components.
Basically what I am saying is that It should allow you to just install the base library to render a form without having to include the @angular/elements dependency.

@merobal I believe you may have some insights on how to resolve this one.


Filter text / string attributes

Hi,
Is it possible to filter string values?
I get this error

Yes, you can surely filter text, just try "has value" instead of "==".
On Wed, 17 Jun 2020, 11:25 pm ManuelBanza<EMAIL_ADDRESS>wrote:

Hi,
Is it possible to filter string values?
I get this error
[image: Captura de ecrã 2020-06-17, às 18 53 50]
https://user-images.githubusercontent.com/53525022/84932387-1fb51700-b0cc-11ea-95e1-768ec01a9c8c.png
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/arunnbaba/pandas_ui/issues/5, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADRKCWQJQAXZC3S3Z5DCMZDRXD7STANCNFSM4OA2TD2Q
.

Hi @arunnbaba
I only have this options:

Hi,
You are correct "has values" is an option in update values not in filtering rows thanks for pointing it out.
But you can filter string values in "filter" itself. Please refer to the attached for further information.
Please let me know if I can help any further.

Hi,
I tried again two times and one time I got the same error in the image above:
Exception raised with the option selected, Please go BACK
The second time it worked however it filtered more that the option I filtered.

Please post the file and the options ur selecting and thanks for your contributions in this repository. :)

You can find for example this dataset:
https://www.kaggle.com/jessemostipak/hotel-booking-demand
Try for example filtering the column country with value PRT. I tried now and it gave me the same error.
Thank you for doing an amazing library!

I have tried the operation u have mentioned with the file you have given but am not getting any errors.
Please find the attached.

Please check whether u r environment is compatible with the tool. I hope it helps.

hi,
so if I use Google Chrome it works fine, but when I use Safari it doesn´t... But with Chrome everything is ok 👍

Glad it helped
On Fri, 19 Jun 2020, 2:50 am ManuelBanza<EMAIL_ADDRESS>wrote:

hi,
so if I use Google Chrome it works fine, but when I use Safari it
doesn´t... But with Chrome everything is ok 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/arunnbaba/pandas_ui/issues/5#issuecomment-646311434,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ADRKCWTP6GZTK7KWB25GWHDRXKAIVANCNFSM4OA2TD2Q
.


REPL fix to print blank records

Fix for a small issue I found while using REPL.
Table({Value:1}, Blank())

✅ No public API change.


feat(vechain): CW-9884 clean-up and refactoring

Task linked: CW-9884 [SDK] Review VeChain SDK PR - remaining


remove-ci.mgmt.yml-for-deviceupdate

close it as fixed in https://github.com/Azure/azure-sdk-for-js/pull/20704


Common Principles: Describe Inheritance Principle

Currently attempting to revive BEP016, after having had #1003 rejected via #1339 and alternative solution #1280 rejected also.
In #946 I rewrote the Inheritance Principle. Previous text sort of tried to both explain what it was and how it worked and why all together; with that change I focused on defining a set of rules that were both human-readable and actionable for software developers.
However it jumps out at me now that the specification goes straight into those systematized rules with zero introduction of what the Inheritance Principle actually is or why it exists. So here I've tried to give a very succinct explanation. It only needs to be a user-friendly introduction, so doesn't need to be hardcore optimized, happy to take on modifications.

+1 thanks for writing this!

Good catch @yarikoptic.
Re-running CI has overcome the prior failure due to a dead link.

@Lestropie Are you happy with the changes? I think both the current text and the proposed fix have been up long enough that there's been plenty opportunity to object.

Suggest a minor extension to contextualise why such an order is important, partly because it gives the opportunity to recommend against it. Happy for you to merge with or without b7a3ab625a7c1994d3984f3eb79c4811449e7e2b.

I would not add a recommendation here. That should be paired with a validator warning, and I'm not positive people would agree that it should be a warning. Nor am I sure how much work it would be to validate.

@Lestropie I did drop b7a3ab6 because that had not gotten general review and I think it was a non-trivial change. Feel free to propose it for separate review.


fix: check if func binaries exist before starting

Closes #38

@aaronpowell would you be able to validate this PR on a Windows machine? 🙏

WSL count 😝
I'll do it today
Get Outlook for Androidhttps://aka.ms/ghei36

From: Wassim Chegham<EMAIL_ADDRESS>Sent: Monday, February 8, 2021 7:20:27 AM
To: Azure/static-web-apps-cli<EMAIL_ADDRESS>Cc: Aaron Powell<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [Azure/static-web-apps-cli] fix: check if func binaries exist before starting (#69)
@aaronpowellhttps://github.com/aaronpowell would you be able to validate this PR on a Windows machine? 🙏
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/Azure/static-web-apps-cli/pull/69#issuecomment-774753799, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AADJ7XABORKSYEUMFOBIT2DS53YYXANCNFSM4XHZ4LCQ.

Thank you @aaronpowell.
For npx, I've tried different combinations of options, but each time, npx was causing some issues:

it tried to always download concurrently and http-server (adding 10+ seconds of starting time when running swa start ...).
curiously, when using flags with npx --quite, was causing these lines to break!

weird, with #24 I didn't experience any of those problems. Did you try --no-install on npx to see what will happen?

Yes, it still had to install the deps!  Would you mind giving it another try and report your results?
npx --quite --no-install http-server

sigh
Looks like on Windows we have a bigger problem, npx has a bug in handling command line arguments - https://github.com/npm/npx/issues/43
I think a better bet would be to programmatically use concurrently, rather than running it from spawn.

I've opened #71 which shows using concurrently programmatically and it can start http-server on Windows successfully. There's still some work to be done to get the api working, but I'll wait for a review of #71.

Closing in favor of #71


Behavior of Trainer::load()

In current implementation, Trainer::load() function automatically detects the type of Trainer. However, this behavior does not support user-defined trainers directly, because users should add code to detect their own trainer types in trainer.cc, and this is basically not desirable behavior.
To fix this, I am planning to modify Trainer::load() as below:

Change it from static function to usual member function.
It does only loading properties, does not "detect the trainer type".

After applying above, the usage of the trainer may change as below:
// Selects a trainer
// Currently this is implemented in Trainer::load().
std::shared_ptr<pr::Trainer> trainer;
if (a_condition_defined_by_user) trainer.reset(new pr::trainers::SGD());
if (another_condition) trainer.reset(new pr::trainers::Adam());

// Loads trainer's properties.
// If the file does not have appropriate properties then it fails.
trainer->load("/path/to/config.file");

Related to #18 and #34.


RancherOS on ESXi 6.5: Waiting for SSH

RancherOS Version: (ros os version)
v1.2.0
Where are you running RancherOS? (docker-machine, AWS, GCE, baremetal, etc.)
VMWare ESXi 6.5
I'm trying to launch RancherOS on ESXi 6.5 via the Rancher Web UI but I'm getting stuck on "Waiting for SSH". I've tried to launch an instance via docker-machine manually and get the same problem.
I believe the issue is that docker-machine is unable to inject its SSH keys into RancherOS, but I'm not sure where to go from there.
Does anyone have any ideas?
docker-machine command:
docker-machine -D create \
	--engine-registry-mirror "http://???"  \
	rancheros-test

docker-machine debug log:
Docker Machine Version:  0.14.0, build 89b8332
Found binary path at /usr/local/bin/docker-machine
Launching plugin server for driver vmwarevsphere
Plugin server listening at address <IP_ADDRESS>:37875
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(flag-lookup) Calling .GetMachineName
(flag-lookup) Calling .DriverName
(flag-lookup) Calling .GetCreateFlags
Found binary path at /usr/local/bin/docker-machine
Launching plugin server for driver vmwarevsphere
Plugin server listening at address <IP_ADDRESS>:39809
() Calling .GetVersion
Using API Version  1
() Calling .SetConfigRaw
() Calling .GetMachineName
(rancheros-test) Calling .GetMachineName
(rancheros-test) Calling .DriverName
(rancheros-test) Calling .GetCreateFlags
(rancheros-test) Calling .SetConfigFromFlags
Reading certificate data from /root/.docker/machine/certs/ca.pem
Decoding PEM data...
Parsing certificate...
Reading certificate data from /root/.docker/machine/certs/cert.pem
Decoding PEM data...
Parsing certificate...
Running pre-create checks...
(rancheros-test) Calling .PreCreateCheck
(rancheros-test) DBG | Connecting to vSphere for pre-create checks...
(rancheros-test) Calling .GetConfigRaw
Creating machine...
(rancheros-test) Calling .Create
(rancheros-test) Downloading /root/.docker/machine/cache/boot2docker.iso from http://releases.rancher.com/os/latest/rancheros.iso...
(rancheros-test) 0%....10%....20%....30%....40%....50%....60%....70%....80%....90%....100%
(rancheros-test) Generating SSH Keypair...
(rancheros-test) Creating VM...
(rancheros-test) Uploading Boot2docker ISO ...
(rancheros-test) adding network: vlan45-docker
(rancheros-test) Reconfiguring VM
(rancheros-test) setting guestinfo.cloud-init.data.url to https://???
(rancheros-test)
(rancheros-test) Waiting for VMware Tools to come online...
(rancheros-test) Provisioning certs and ssh keys...
(rancheros-test) DBG | Creating Tar key bundle...
(rancheros-test) Calling .GetConfigRaw
(rancheros-test) Calling .DriverName
(rancheros-test) Calling .DriverName
Waiting for machine to be running, this may take a few minutes...
(rancheros-test) Calling .GetState
Detecting operating system of created instance...
Waiting for SSH to be available...
Getting to WaitForSSH function...
(rancheros-test) Calling .GetSSHHostname
(rancheros-test) Calling .GetSSHPort
(rancheros-test) Calling .GetSSHKeyPath
(rancheros-test) Calling .GetSSHKeyPath
(rancheros-test) Calling .GetSSHUsername
Using SSH client type: external
Using SSH private key: /root/.docker/machine/machines/rancheros-test/id_rsa (-rw-------)
&{[-F /dev/null -o PasswordAuthentication=no -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=quiet -o ConnectionAttempts=3 -o ConnectTimeout=10 -o ControlMaster=no -o ControlPath=none docker@172.16.???.??? -o IdentitiesOnly=yes -i /root/.docker/machine/machines/rancheros-test/id_rsa -p 22] /usr/bin/ssh <nil>}
About to run SSH command:
exit 0
SSH cmd err, output: exit status 255:
Error getting ssh command 'exit 0' : ssh command error:
command : exit 0
err     : exit status 255
output  :
...
this repeats for a few minutes
...
Error creating machine: Error detecting OS: Too many retries waiting for SSH to be available.  Last error: Maximum number of retries (60) exceeded
notifying bugsnag: [Error creating machine: Error detecting OS: Too many retries waiting for SSH to be available.  Last error: Maximum number of retries (60) exceeded]

From Darren:

we really need ros working with docker-machine with the vsphere driver.  so ros works with docker-machine on your laptop and ros works on vsphere, but ros + docker-machine + vsphere does not work.  it provisions but fails to set the SSH keys (which is done through the vmtools).  I'd like to default vsphere driver in rancher to ros.  Currently it is boot2docker which is multiple levels of bad.

@Jason-ZW Please help to track this.

Same issue here (altought vSphere 6.7). Will be looking into this abit more and let you know if I find out anything more then what's been already posted.

To solve the docker-machine SSH problem, we also need to modify the docker-machine rancheros provision code.
When docker-machine using VMWare related driver, the open-vm-tools service is enable by default.
In order to solved Device or resource busy problem when rancheros provision restart user-docker container we need to add a logic to stop the open-vm-tools container in docker-machine rancheros provision.
@JacieChao We can refer to the following code to add a stop logic: https://github.com/docker/machine/blob/master/libmachine/provision/utils.go#L117

@xayangjing this issue is in progress, please be patient.

This PR will fix share-folder mount problem when machine-driver is vmwarefusion.
https://github.com/rancher/machine/pull/9
https://github.com/docker/machine/pull/4480

Fixed in rancheros v1.4.0-rc2, I have verified on ESXi 6.7 available


Add base class 'flash-message' to flash component

Closes #133

@jfelchner Thoughts on adding a quick integration test to assert that the class is present?

going to merge this and add an integration test as a separate PR.


Update default for PHP images to 8.1

Is your feature request related to a problem? Please describe.
PHP 7.4 is nearing its end of life (Nov. 28, 2022).
Describe the solution you'd like
Update the default PHP to be used with Den to 8.1
Describe alternatives you've considered
There aren't really alternatives, this is just a standard lifecycle event.
Additional context
PHP Supported Versions: https://www.php.net/supported-versions.php
Other Notes
While this isn't a high priority, it's something that should be done some time in November. The PHP 7.4 images can still be built and maintained, but they shouldn't be the default moving into December.
We should also find a way to properly announce this.

Makes sense! Would make sense to update composer version and potentially other dependencies as well.


Function writing style

Had a couple of students writing print ("Hello world") instead of the more accepted print("Hello world"). It might be a good idea to add a little section on what accepted styles are for this.

As long as we are consistent ourselves in using the second form, I think this is a non-issue.

I'm going to review and see if we can add a small comment about it. If anything it's quite fun that you can really do print ("test").

Switching to milestone for next year.


bot failing to understand the user input

Rasa NLU version ( 0.10.5):
Used backend / pipeline (spacy_sklearn):
Operating system (ubuntu 16):
Issue:
i want my bot to decide whether to proceed or not based on user input(confirm/cancel) but bot is consistently failing to distinguish between confirm and cancel.below is bot's intereaction:
Bot loaded. Type a message and press enter :
hi
Do you want to claim your expense?!
1: Confirm (confirm)
2: Cancel (cancel)
confirm
Choose your company
1: xyz (xyz)
2: xyz Tech (xyz Tech)
xyz
Please choose the expense type!
1: Meals and Entertainment (Meals and Entertainment)
2: Travels (Travels)
3: Food (Food)
4: Fuel (Fuel)
fuel
Please choose the expense mode!
1: Credit Card (Credit Card)
2: Debit Card (Debit Card)
3: Cash (Cash)
cash
Please enter the expense amount
45
goodbye :(
Do you want to claim your expense?!
1: Confirm (confirm)
2: Cancel (cancel)
confirm
goodbye :(
Do you want to claim your expense?!
1: Confirm (confirm)
2: Cancel (cancel)
cancel
Choose your company
1: xyz (xyz)
2: xyz Tech (xyz Tech)
The stories.md have the following:
Generated Story<PHONE_NUMBER>024715415

greet

utter_initial_user_input

confirm_operation

utter_choose_company

choose_company

utter_choose_expense_type

choose_expense_type

utter_choose_payment_mode

choose_payment_mode

utter_enter_expense_amount

enter_expense_amount

utter_goodbye

Generated Story -6951958864032763417

greet

utter_initial_user_input

cancel_operation

utter_goodbye

Content of configuration file (if used & relevant):
{
  "rasa_nlu_data": {
    "regex_features": [
      {
        "name": "expense_amount",
        "pattern": "[+-]?([0-9]*[.])?[0-9]+"
      }
    ],
    "entity_synonyms": [
      {
        "value": "ofs",
        "synonyms": [
          "XYZ",

        ]
      },
      {
        "value": "cancel",
        "synonyms": [
          "Cancel",
          "no",
          "nope"
        ]
      },
      {
        "value": "confirm",
        "synonyms": [
          "Confirm",
          "Yes",
          "yes"
        ]
      },
      {
        "value": "Credit Card",
        "synonyms": [
          "credit card",
          "Credit card",
          "credit Card"
        ]
      },
      {
        "value": "ofs tech",
        "synonyms": [
          "Xyz tech",
          "XYZ tech"
        ]
      }
    ],
    "common_examples": [
      {
        "text": "hello",
        "intent": "greet",
        "entities": []
      },
      {
        "text": "hello there",
        "intent": "greet",
        "entities": []
      },
      {
        "text": "hi",
        "intent": "greet",
        "entities": []
      },
      {
        "text": "confirm",
        "intent": "confirm_operation",
        "entities": [
          {
            "start": 0,
            "end": 7,
            "value": "confirm",
            "entity": "user_action"
          }
        ]
      },
      {
        "text": "cancel",
        "intent": "cancel_operation",
        "entities": [
          {
            "start": 0,
            "end": 6,
            "value": "cancel",
            "entity": "user_action"
          }
        ]
      },
      {
        "text": "xyz",
        "intent": "choose_company",
        "entities": [
          {
            "start": 0,
            "end": 3,
            "value": "xyz",
            "entity": "company_name"
          }
        ]
      },
      {
        "text": "xyz tech",
        "intent": "choose_company",
        "entities": [
          {
            "start": 0,
            "end": 8,
            "value": "xyz tech",
            "entity": "company_name"
          }
        ]
      },
      {
        "text": "fuel",
        "intent": "choose_expense_type",
        "entities": [
          {
            "start": 0,
            "end": 4,
            "value": "fuel",
            "entity": "expense_type"
          }
        ]
      },
      {
        "text": "food",
        "intent": "choose_expense_type",
        "entities": [
          {
            "start": 0,
            "end": 4,
            "value": "fuel",
            "entity": "expense_type"
          }
        ]
      },
      {
        "text": "credit card",
        "intent": "choose_payment_mode",
        "entities": [
          {
            "start": 0,
            "end": 11,
            "value": "credit card",
            "entity": "payment_mode"
          }
        ]
      },
      {
        "text": "debit card",
        "intent": "choose_payment_mode",
        "entities": [
          {
            "start": 0,
            "end": 10,
            "value": "debit card",
            "entity": "payment_mode"
          }
        ]
      },
      {
        "text": "cash",
        "intent": "choose_payment_mode",
        "entities": [
          {
            "start": 0,
            "end": 4,
            "value": "cash",
            "entity": "payment_mode"
          }
        ]
      },
      {
        "text": "1234",
        "intent": "enter_expense_amount",
        "entities": [
          {
            "start": 0,
            "end": 4,
            "value": "1234",
            "entity": "expense_amount"
          }
        ]
      },
       {
        "text": "1.23",
        "intent": "enter_expense_amount",
        "entities": [
          {
            "start": 0,
            "end": 4,
            "value": "1.23",
            "entity": "expense_amount"
          }
        ]
      },
      {
        "text": "123.4",
        "intent": "enter_expense_amount",
        "entities": [
          {
            "start": 0,
            "end": 5,
            "value": "123.4",
            "entity": "expense_amount"
          }
        ]
      },
      {
        "text": "google",
        "intent": "choose_company",
        "entities": [
          {
            "start": 0,
            "end": 6,
            "value": "google",
            "entity": "company_name"
          }
        ]
      },
      {
        "text": "meals & entertainment",
        "intent": "choose_expense_type",
        "entities": [
          {
            "start": 0,
            "end": 21,
            "value": "meals & entertainment",
            "entity": "expense_type"
          }
        ]
      },
      {
        "text": "travels",
        "intent": "choose_expense_type",
        "entities": [
          {
            "start": 0,
            "end": 7,
            "value": "travels",
            "entity": "expense_type"
          }
        ]
      },
      {
        "text": "46158",
        "intent": "enter_expense_amount",
        "entities": [
          {
            "start": 0,
            "end": 5,
            "value": "46158",
            "entity": "expense_amount"
          }
        ]
      }
    ]
  }
}

sorry lack of training data was the issue,for my use case input is very limited so initially i did provide only valid available training data, finally after i checked resturant bot training data i realised same text like "cheap" is given multiple times, i too did the same copied and pasted multiple times  my training data and bot is working properly now


Using GPT4 will require entering a verification code

I implanted chatopenai.com into the observer using a custom frame. When using GPT4, I am required to enter a verification code every time, but GPT3.5 does not know how to solve this small problem

Hi, can you elaborate on this issue please? What is the expected behavior from this website outside of Custom Frames, and what is different about it in Custom Frames?

Hi, can you elaborate on this issue please? What is the expected behavior from this website outside of Custom Frames, and what is different about it in Custom Frames?嗨，你能详细说明这个问题吗？在自定义框架之外，本网站的预期行为是什么，在自定义框架中有什么不同？

Since identifying this issue, I have been unable to replicate it, which suggests that the problem may be related to my network's performance.

Okay! Let me know if it happens again and I can reopen this issue :)

Okay! Let me know if it happens again and I can reopen this issue :)

thank you very much


Not working with iOS

I installed the package using command : npm install react-native-brightcove-player
then  cd ios && pod install
I got this error :
[!] Unable to find a specification for Brightcove-Player-Core depended upon by react-native-brightcove-player
You have either:
 * out-of-date source repos which you can update with pod repo update or with pod install --repo-update.
 * mistyped the name or version.
 * not added the source repo that hosts the Podspec to your Podfile.```

How to solve this issue ?

solved by adding
source 'https://github.com/brightcove/BrightcoveSpecs.git'
on podfile

solved by adding
source 'https://github.com/brightcove/BrightcoveSpecs.git'
on podfile


Update dependencies and fix tests

Describe the PR
Upgrade github.com/go-openapi/spec and golang.org/x/tools to latest
versions.
Upgrading github.com/go-openapi/spec v0.19.11 -> v.0.19.14 generates
empty "description" members for responses and empty "authorizationUrl"
members for securityDefinitions when they're missing. This causes tests
to fail. Fix by adding the missing empty definitions to expected test
results.
Additional context
Since travis-ci test builds always fetch deps and build before running tests,
they break because of the change in go-openapi/spec

I just can't figure out why it generates empty  members?

According to the spec description and authorizationUrl are required fields in those contexts. Apparently that's the reason they are now always included

According to the spec description and authorizationUrl are required fields in those contexts. Apparently that's the reason they are now always included

So where is it that the member description is set required?

So where is it that the member description is set required, I mean in source code?

Here's in spec the commit that always generates those two members. Apparently it's included in version 0.19.13 and onwards

So where is it that the member description is set required, I mean in source code?

Here's in spec the commit that always generates those two members. Apparently it's included in version 0.19.13 and onwards

OK I see.
But, as you memtioned that it's included in version 0.19.13,  however, I just upgrade it to v0.19.12, it still failed when running those tests.  Refer to https://github.com/swaggo/swag/pull/836/checks?check_run_id=1422025199

@akojo Thank you all the same.


[10.x] Real-Time Model Factories

Often times when I’m cranking on tests I get frustrated by the need to stop what I’m doing to make a factory for my model. This is especially true when I don’t really care what the model is populated with and I just want to test a relation or prove the correct models are being returned from an endpoint.
I was talking with @jbrooksuk about this en route to Laracon and so we started to explore the idea on the flight where we managed to prove the concept of what we're calling “Real-Time Model Factories” which we believe improves the DX of model factories.
To get started, all that’s needed is to replace the HasFactory trait on the model with HasRealTimeFactory.
- use Illuminate\Database\Eloquent\Factories\HasFactory;
+ use Illuminate\Database\Eloquent\Factories\HasRealTimeFactory;

class User
{
-     use HasFactory;
+     use HasRealTimeFactory;

    ...
}

Now, when calling the factory method of a model using this trait, the table definition is generated automatically using a combination of techniques.
First, it will attempt to guess the required data using the column name. For example, given a column called email or email_address, the real-time factory will automatically populate an email address.
If the column can’t be guessed, it will attempt to see whether the model is using a cast and, if so, will attempt to use it. This works for all supported built-in data types. For example, if the column is using the collection type, the column in the factory definition will return a collection. It doesn't support all custom casts as it’s not possible to know the required data format, but it does support enums and enum collections where the value is selected at random from the defined options.
Finally, if the value is still not populated, the column type provided by DBAL is used to infer a value. At this point, if the column is a primary or foreign key or if the column is nullable, the column in the factory definition will resolve null. In all other instances, a sensible value derived from the column type is used.
Under the hood, the values are generated using faker.
Given the following table and model definitions:
Schema::table('users', function (Blueprint $table) {
    $table->increments('id');
    $table->string('email');
    $table->integer('age');
    $table->enum('status', ['active', 'inactive']);
    $table->text('bio')->nullable();
    $table->timestamps();
});

class User
{
    use HasRealTimeFactory;

    protected $casts = [
        'age' => 'integer',
        'status' => Status::class
    ];

}

The properties would be assigned similar to the output below when using the real-time factory:
$user = User::factory()->create();

[
    'id' => null, // primary key so value is null
    'email' =><EMAIL_ADDRESS>// value guessed from column name
    'age' => 37, // integer value generated from cast
    'status' => 'active', // enum value selected at random from enum cast
    'bio' => null, // nullable field set to null
    'created_at' => '1973-12-19T11:07:50.000000Z', // date time value inferred from date cast
    'updated_at' => '1992-03-09T02:40:47.000000Z', // date time value inferred from date cast
]

Of course, it’s possible to override fields as with any other model.
$user = User::factory()->create(['email' => 'jane.doe@example.com');

[
    'id' => null,
-   'email' =><EMAIL_ADDRESS>+   'email' =><EMAIL_ADDRESS>    'age' => 37,
    'status' => 'active',
    'bio' => null,
    'created_at' => '1995-08-22T14:30:24.000000Z',
    'updated_at' => '2018-04-20T21:33:42.000000Z',
]

It’s also possible to utilize factory relationships:
$post = Post::factory()->hasComments(3)->forUser()->create();

dd($post->toArray(), $post->comments->toArray(), $post->user->toArray());

// Post
[
    'id' => 1,
    'user_id' => 1,
    'title' => 'rerum',
    'body' => 'Quis et libero non aut aut quia. Eos alias asperiores a quo totam ipsam qui. Mollitia et accusantium officiis sed occaecati qui blanditiis. Dolores id odit blanditiis sit aut.',
    'published' => true,
    'created_at' => '1987-01-24T18:34:06.000000Z',
    'updated_at' => '2010-10-14T23:48:40.000000Z',
]

// User
[
    'id' => 1,
    'name' => 'Alexanne Braun',
    'email' =><EMAIL_ADDRESS>    'created_at' => '1992-07-15T08:36:29.000000Z',
    'updated_at' => '1988-06-18T11:01:00.000000Z',
]

// Comments
[
    [
        'id' => 1
        'commentable_type' => 'Illuminate\Tests\Database\Post',
        'commentable_id' => 1,
        'body' => 'laborum',
        'created_at' => '1990-11-02T01:16:16.000000Z',
        'updated_at' => '1993-07-23T18:58:20.000000Z',
    ], [
        'id' => 2
        'commentable_type' => 'Illuminate\Tests\Database\Post',
        'commentable_id' => 1,
        'body' => 'minima',
        'created_at' => '2020-03-21T05:43:01.000000Z',
        'updated_at' => '2014-12-19T03:28:40.000000Z',
    ],[
        'id' => 3,
        'commentable_type' => 'Illuminate\Tests\Database\Post',
        'commentable_id' => 1,
        'body' => 'repellendus',
        'created_at' => '1974-05-02T14:50:21.000000Z',
        'updated_at' => '2012-08-24T11:36:09.000000Z',
    ]
]

In the above example, each related model is also using HasRealTimeFactory so you can see it’s very easy to build up models without needing to define values until it’s truly necessary.
Of course, when that time comes, simply define a factory for the model and replace HasRealTimeFactory with HasFactory and you are back in control of how the model should be generated.

A note on enum columns
It’s not possible to obtain the allowed values of an enum column with the doctrine/dbal package. When using an enum cast or when the column is nullable, this is not an issue. However, in all other cases, a random string is used which will error as an invalid value when the query is executed.

🔥 Love this

What a thinking brother...😘

This is super cool. I'm going to pitch something as your fellow bourbon drinker…
I feel the DX for this would be even awesomer if you didn't need to specify the trait. Having to jump into the model and add a trait doesn't feel "real-time" to me. At least not in the sense of the real-time facades (only adding a namespace prefix). This feels more like a "guessable factory".
I don't know the implications of this, but I wonder if it could simply be the case that the default for all models is a factory method which returns RealTimeFactory. That would avoid explicitly adding a trait and provide the developer immediate ability to use factories within their apps/tests. :fire:

This is super cool. I'm going to pitch something as your fellow bourbon drinker…
I feel the DX for this would be even awesomer if you didn't need to specify the trait. Having to jump into the model and add a trait doesn't feel "real-time" to me. At least not in the sense of the real-time facades (only adding a namespace prefix). This feels more like a "guessable factory".
I don't know the implications of this, but I wonder if it could simply be the case that the default for all models is a factory method which returns RealTimeFactory. That would avoid explicitly adding a trait and provide the developer immediate ability to use factories within their apps/tests. :fire:

This is super cool. I'm going to pitch something as your fellow bourbon drinker…
I feel the DX for this would be even awesomer if you didn't need to specify the trait. Having to jump into the model and add a trait doesn't feel "real-time" to me. At least not in the same sense as the "real-time" facades (only adding a namespace prefix). With the trait, this feels more like a "guessable factory".
I don't know the implications of this, but I wonder if the default for all models is a factory method which returns RealTimeFactory. That would avoid explicitly adding a trait and provide the developer immediate ability to use factories within their apps/tests. :fire:

Totally agree with this. Some great work in this PR but it just needs that extra Laravel magic 👍🏻

I really like this, but can we have it in HasFactory trait instead? So instead of having the option to  use 2 traits, we can get 1. If we need more control of the factory, we can still define it in their factory class without losing the guessing feature.

Yes yes yes! I really like this, defo agree with the above that it would be nice if it automatically did it, aside from that well done folks

@joedixon and I have addressed the "real-time" aspect of this feature. You can now simply use HasFactory, and if the class doesn't exist, Laravel will now switch to a real-time factory.
Of course, if you need any customization or additional states, you should generate a factory (e.g. php artisan make:factory PostFactory) and it will be switched automatically.
@taylorotwell if you'd keep the feature opt-in, you can revert the last commit.

@taylorotwell, if this were to be included in the framework, there is the potential to remove the UserFactory from the skeleton as part of your slimming exercise for v11.
We would have to add password as a guessableValue and would lose the unverified state, but perhaps some food for thought.

@joedixon, nice work. Not sure how deep down the rabbit hole you want to go, but I've had a "guesser" built into Blueprint for a while. Might want to pull a few of the name/type mappings.

Without this package it can not work right?
So it would be use internally or we need to install by default in skeleton?

Without this package it can not work right?
So it would be use internally or we need to install by default in skeleton?

You’d need to install dbal as a dev dependency.

Isn't there any better solution other than using 'doctrine/dbal'? Like PR #45598

Isn't there any better solution other than using doctrine/dbal? Like PR #45598

At the moment, this is the only way to reliably fetch this information.

Couple of suggestions for this feature:
Add a check if the method exists in faker, if so just call it. This removes having to map an email column explicitly to the email faker method.
There is the side effect that is now uses email instead of safeEmail but another check can be added for that specific scenario.
Guessing this way also allows the factory to use external providers added to ones project, e.g. productName()
/**
 * Guess the value of a column based on its name.
 */
protected function guessValue(string $column): mixed
{
    try {
        return fake()->{str($column)->camel()}; // convert to camel case for columns like phone_number
    } catch (InvalidArgumentException $e) {
        // faker method doesn't exist
    }

    $guessable = $this->guessableValues();
    return isset($guessable[$column]) ? $guessable[$column]() : null;
}

Use a match statement to return the faker method result. This will reduce duplication of callback functions and remove the need to check for a key in the guessable array.
Resulting factory would look something like this:
/**
 * Guess the value of a column based on its name.
 */
protected function guessValue(string $column): mixed
{
    try {
        return fake()->{str($column)->camel()}; // convert to camel case for columns like phone_number
    } catch (InvalidArgumentException $e) {
    }

    return $this->matchColumnToFakerMethod($column);
}

/**
 * Match column names with faker method
 */
protected function matchColumnToFakerMethod(string $column): mixed
{
    return match ($column) {
        'email', 'e_mail', 'email_address' => fake()->safeEmail(),
        'login', 'username' => fake()->userName(),
        // ...rest of columns
        default => null,
    };
}

You may use new native Schema methods on this instead of doctrine/dbal:

Schema::getColumns() #48357
Schema::getIndexes() #49204
Schema::getForeignKeys() #49264

Hopefully going to remove doctrine/dbal on #48864

@jbrooksuk @joedixon I can send a PR for this to use schema methods instead of doctrine dbal if you want, but it would be much easier if you target master instead of 10.x

@joedixon I think it will be helpful if you can kindly give a hint on why you closed this. I mean it seems like a very useful feature and already has very good contributions from @jasonmccreary  and @jbrooksuk, among others.
Thank you :pray:

@damms005 cool idea for sure, but not something for the framework at this time. We are exploring ideas to package this up.

Nice! Thanks for all you do 🙏


[Do not merge] Add Blob Inventory Support with Examples

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of “no breaking changes
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Please follow the link to find more details on PR review process.

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

/azp run automation - sdk

@HimanshuChhabra It looks like there is a breaking change in ErrorResponse in this api-version (but not in this PR).  You will need to address this before these api-changes are moved to a stable version


Not available via Internet?

Hello,
So I have the latest version of frigate docker image, latest version of HA and latest version of this lovelace integration.
Both frigate and the card integration are installed using HACS.
I have Homeassistant published to the world using the old port forwarding + reverse proxy combo.
Frigate is not published to the world, only internally.
When I am via Internet using the mobile app, the card does not show live view or captures and clips. Sometimes it even displays an error.
Thank you.

I don't think you're using the most recent version of the card, based on clues in your config.
There is a v1.0.1 pre-release which is the very latest. There are substantial changes to how media metadata & data are loaded which I believe will help, or entirely resolve, this issue.
Try that pre-release? You'll need to tell HACS to show you beta versions by clicking the 'Reinstall' option and then choosing v1.0.1.

Hello,
Thanks for the quick help. In fact I was using the lateste stable release. Updated the version to v1.0.1 but I am still unable to stream the live view from the Internet.

Make sure you have cleared your cache on your device, e.g. try to do it via an Incognito Chrome window? (Common problem)
Are you using the Frigate or WebRTC live provider? If the former can you see any camera live view from your HA instance (without use of the card) from outside your home network? If the latter, can you see the WebRTC live view using the native WebRTC card? (Trying to see if you have a general issue or something specific to this card)

Using Incognito Window does not fix it. I have the same issue.
Using a "normal" picture entity with the live view from the Firgate entity, it works okay. It was like this before trying this card.
Using a webrtc card also does not work. I am using the url to the camera RTSP feed that only works on the internal network. Can this be the issue?

If the WebRTC card doesn't work (which I think is what you're saying), your issue is not with the Frigate card as the Frigate card just 'wraps' the WebRTC card when you use WebRTC as your live provider.
Either:

Try to get the WebRTC card itself to work, then when it's working move the configuration into the Frigate card (see this section, or seek support from the authors of WebRTC itself).
OR: Don't use WebRTC as your live provider, just use 'Frigate' in the configuration for this card.

Hello,
First thank you so much for the tips and quick response.
The problem is solved. I was not aware the limitation of WebRTC on iOS when no ports were open. https://github.com/AlexxIT/WebRTC#webrtc-external-access
Awesome work. I am really loving this card.


Add a search engine to the docs

I love nginx-unit and the docs are good and clear; a search engine (such as https://docs.nginx.com/nginx/admin-guide/) would be a huge  improvement and allow more users.

I will support the initiative. I was just leafing through the document and thought about this.
I would probably like to see something like Algolia

We're currently using Coveo on docs.nginx.com. Happy to look into integration for the unit docs.

The search at the top of docs.nginx.com already returns results for Unit docs. The missing part of the implementation is to add the Search field to the Unit docs sphinx theme


polars Series.str.replace_all method does not work

A method of polars cannot work when the program built with Nuitka.

python -m nuitka --version

1.7rc2
Commercial: None
Python: 3.10.11 (tags/v3.10.11:7d4cc5a, Apr  5 2023, 00:38:17) [MSC v.1929 64 bit (AMD64)]
Flavor: CPython Official
Executable: C:\Users\CanvisMe\AppData\Local\Programs\Python\Python310\python.exe
OS: Windows
Arch: x86_64
WindowsRelease: 10
Version C compiler: C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.36.32532\bin\Hostx64\x64\cl.exe (cl 14.3).

How did you install Nuitka and Python

From git factory branch source, using python setup.py install --user.

python -m pip freeze

anyio==3.7.0
anytree==2.8.0
argon2-cffi==21.3.0
argon2-cffi-bindings==21.2.0
arrow==1.2.3
asttokens==2.2.1
async-lru==2.0.2
attrs==23.1.0
Babel==2.12.1
backcall==0.2.0
beautifulsoup4==4.12.2
bleach==6.0.0
certifi==2022.12.7
cffi==1.15.1
charset-normalizer==2.1.1
colorama==0.4.6
comm==0.1.3
contourpy==1.0.7
cycler==0.11.0
debugpy==1.6.7
decorator==5.1.1
defusedxml==0.7.1
exceptiongroup==1.1.1
executing==1.2.0
fastjsonschema==2.17.1
filelock==3.9.0
fonttools==4.39.4
fqdn==1.5.1
fsspec==2023.5.0
graphviz==0.20.1
huggingface-hub==0.15.1
idna==3.4
ipykernel==6.23.1
ipython==8.14.0
isoduration==20.11.0
jedi==0.18.2
Jinja2==3.1.2
json5==0.9.14
jsonpointer==2.3
jsonschema==4.17.3
jupyter-events==0.6.3
jupyter-lsp==2.2.0
jupyter_client==8.2.0
jupyter_core==5.3.0
jupyter_server==2.6.0
jupyter_server_terminals==0.4.4
jupyterlab==4.0.1
jupyterlab-pygments==0.2.2
jupyterlab_server==2.22.1
kiwisolver==1.4.4
MarkupSafe==2.1.2
matplotlib==3.7.1
matplotlib-inline==0.1.6
mistune==2.0.5
mpmath==1.2.1
nbclient==0.8.0
nbconvert==7.4.0
nbformat==5.9.0
nest-asyncio==1.5.6
networkx==3.0
nodejs-bin==18.4.0a4
notebook_shim==0.2.3
Nuitka==1.7rc2
numpy==1.24.3
ordered-set==4.1.0
overrides==7.3.1
packaging==23.1
pandocfilters==1.5.0
parso==0.8.3
pickleshare==0.7.5
Pillow==9.5.0
platformdirs==3.5.1
polars==0.18.0
prometheus-client==0.17.0
prompt-toolkit==3.0.38
psutil==5.9.5
pure-eval==0.2.2
pycparser==2.21
Pygments==2.15.1
pyparsing==3.0.9
pyrsistent==0.19.3
PySide6==<IP_ADDRESS>
PySide6-Addons==<IP_ADDRESS>
PySide6-Essentials==<IP_ADDRESS>
python-dateutil==2.8.2
python-json-logger==2.0.7
pywin32==306
pywinpty==2.0.10
PyYAML==6.0
pyzmq==25.1.0
regex==2023.6.3
requests==2.28.1
rfc3339-validator==0.1.4
rfc3986-validator==0.1.1
Send2Trash==1.8.2
shiboken6==<IP_ADDRESS>
six==1.16.0
sniffio==1.3.0
soupsieve==2.4.1
stack-data==0.6.2
sympy==1.11.1
terminado==0.17.1
tinycss2==1.2.1
tokenizers==0.13.3
tomli==2.0.1
torch==2.0.1+cu118
torchaudio==2.0.2+cu118
torchvision==0.15.2+cu118
tornado==6.3.2
tqdm==4.65.0
traitlets==5.9.0
transformers==4.29.2
typing_extensions==4.4.0
uri-template==1.2.0
urllib3==1.26.13
wcwidth==0.2.6
webcolors==1.13
webencodings==0.5.1
websocket-client==1.5.2
zstandard==0.21.0

The basic func of python is valid, for

python .\pl_str_rpl.py

df: shape: (2,)
Series: '' [str]
[
        "abcabc"
        "123a123"
]
df_str: <polars.series.string.StringNameSpace object at 0x000001A13EC77010>
df_rpl: shape: (2,)
Series: '' [str]
[
        "-bc-bc"
        "123-123"
]

When run the exe built by Nuitka, it gets

.\pl_str_rpl.exe

df: shape: (2,)
Series: '' [str]
[
        "abcabc"
        "123a123"
]
df_str: <polars.series.string.StringNameSpace object at 0x0000020D3DC60490>
df_rpl: None

A Short, Self Contained, Correct, Example

import polars as pl

df = pl.Series(["abcabc", "123a123"])
print('df:', df)

df_str = df.str
print('df_str:', df_str)

df_rpl = df.str.replace_all("a", "-")
print('df_rpl:', df_rpl)

Provide in your issue the Nuitka options used

--mingw64 --nofollow-import-to=IPython --standalone
Trace back:
Nuitka-Options:INFO: Used command line options: --mingw64 --nofollow-import-to=IPython --standalone .\pl_str_rpl.py
Nuitka:INFO: Starting Python compilation with Nuitka '1.7rc2' on Python '3.10' commercial grade 'not installed'.
Nuitka-Plugins:INFO: multiprocessing: Injecting pre-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" load environment.
Nuitka-Plugins:INFO: multiprocessing: Injecting post-module load code for module 'multiprocessing':
Nuitka-Plugins:INFO: multiprocessing:     Monkey patching "multiprocessing" for compiled methods.
Nuitka-Plugins:INFO: delvewheel: Detected usage of 'delvewheel' version '1.3.3' in module 'matplotlib'.
Nuitka-Plugins:WARNING: Use '--enable-plugin=pyside6' for: Standalone mode support and Qt plugins.
Nuitka-Plugins:INFO: implicit-imports: Injecting post-module load code for module 'PySide6.QtCore':
Nuitka-Plugins:INFO: implicit-imports:     According to Yaml configuration.
Nuitka-Plugins:INFO: delvewheel: Detected usage of 'delvewheel' version '1.3.3' in module 'mpl_toolkits'.
Nuitka:INFO: Completed Python level compilation and optimization.
Nuitka:INFO: Generating source code for C backend compiler.
Nuitka:INFO: Running data composer tool for optimal constant value handling.
Nuitka:INFO: Running C compilation via Scons.
Nuitka-Scons:INFO: Backend C compiler: gcc (gcc).
Nuitka-Scons:INFO: Backend linking program with 477 files (no progress information available for this stage).
Nuitka-Scons:INFO: Compiled 954 C files using ccache.
Nuitka-Scons:INFO: Cached C files (using ccache) with result 'cache hit': 474
Nuitka-Scons:INFO: Cached C files (using ccache) with result 'cache miss': 2
Nuitka-Plugins:INFO: data-files: Included data file 'certifi\cacert.pem' due to package data for 'certifi'.
Nuitka-Plugins:INFO: matplotlib: Included 182 data files due to package data for 'matplotlib.
Nuitka-Plugins:INFO: matplotlib: Included data file 'matplotlib\mpl-data\matplotlibrc' due to updated matplotlib config file with backend to use.
Nuitka-Plugins:INFO: dll-files: Found 1 file DLLs from numpy installation.
Nuitka:INFO: Keeping build directory 'pl_str_rpl.build'.
Nuitka:INFO: Successfully created 'pl_str_rpl.dist\pl_str_rpl.exe'.

I did a bit of anti-bloat against the IPython import there.
I did see expr_dispatch and that it is working with code objects, checking arguments from them, and using callable() and so on, all pretty much Python that should work. But it has a _is_empty_method which probably is causing troubles for Nuitka. It has bytecode instructions as always empty, then. But if it wants to know if it's a function with just "None" return, then that's actually doable with __compiled_constant__ attribute being present and None value.

So, this will be a longer operation, my anti-bloat hates it using transformers.testing_utils  and sympy.testing.runtests and what not, I guess, it has a testing part, which includes all the other big packages testing frameworks just in case.

Seems that transformers and sympy are doing it themselves, taking a few iterations here, to get that resolved first, because I hate too big compilations. I wonder though, if this should be included at all by polars.

Thanks for your report, this is fixed on the factory branch, which is a development version under rapid development. You can try it out by going here: https://nuitka.net/doc/factory.html
Feedback if this is working is very welcome, just please do not share plans of doing it, but rather confirmations or denials of it working.

This could become part of a hotfix, if there will be a 1.6.3, but I also plan for a quick 1.7 this time.

Thanks for your work, the polar's method is fine now.

This is part of the hotfix release 1.6.3 that I just made.


MKV Formatting

When running the remuxing code against an MP4 as input and MKV as output, the media plays in VLC but the progress bar does not update. If I run ffmpeg -i input.mp4 -map 0 -c copy output.mkv, the file works fine in VLC. I've been going nuts trying to figure out what's missing to get VLC to play the output correctly. Any pointers?

I finally figured out the issue. I needed to set packet.flags |= AV_PKT_FLAG_KEY; - once I set that, the progress bar worked correctly.
while (1)
{
  AVStream *in_stream, *out_stream;
  ret = av_read_frame(input_format_context, &packet);
  if (ret < 0)
    break;
  in_stream = input_format_context->streams[packet.stream_index];
  out_stream = (*output_format_context)->streams[packet.stream_index];

  // Rescale PTS/DTS
  av_packet_rescale_ts(&packet, in_stream->time_base, out_stream->time_base);
  packet.flags |= AV_PKT_FLAG_KEY;
  packet.pos = -1;

  // https://ffmpeg.org/doxygen/trunk/group__lavf__encoding.html#ga37352ed2c63493c38219d935e71db6c1
  ret = av_interleaved_write_frame(*output_format_context, &packet);
  if (ret < 0)
  {
    fprintf(stderr, "Error muxing packet\n");
    break;
  }
  av_packet_unref(&packet);
}


Update constants.ts

added a bot

Could you update the manifold account's description to say it is a bot?
Also, there are merge conflicts after I merged the last PR adding a bot.

Updated the description and the conflict should be resolved.


fix(route): set transient_local for route subscriber

Description
Set transient-local for route subscribers.
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

I confirmed tutorial to work fine :+1:
before

after


Make error messaging consistent & add retry logic

These two errors appeared at the same time, but they say different things:

Sounds like this was an intermittent network issue from OpenAI:

We should probably have different error messaging for network issues vs explicit OpenAI API responses that the API key is invalid.

Also research/fix issues with inputting api key in the settings:

properly shows label of when it's not valid
not allowing new lines in input
ensure app always uses key that is provided


VISUALS (SPECS): IA

Verification Requirements:
Refer to previous visual story: VISUALS: IA, then:

Add "Settings" to the top level nav
Figure out reasonable layout
Figure out User icon, Area icon, etc
Add specifications to previous visuals work
Post new visual specs to InVision, review with UX team members
Link to InVision prototypes from this story
Tag story as "Ready for Development"

Posted mockups to InVision here: https://redhat.invisionapp.com/share/46B7T58G9

Adam has implemented first pass.  If we need to do a review we can add a new story.


title background-color (#F5F5F5)

Hi @sbouchy by title background-color did you mean the  with id="header"?

Title is div.object div.name (i.e. title of an entry in the response, in js notation).
#207 proposes to fix that.


Fix typos using codespell

Description

This is a mostly automated typo-fix via codespell
I looked through and fixed a few changes that were not really typos
Type of change

[X] Documentation/comments fix

References

codespell

Curious what @tlambert03 and @jni think

@jni is a grammar nazi and loves this! 😀 Thanks @hectormz!

Yes I also love this thanks!  Curious whether codespell can also find typos in non-comment code?  Like BaseLayre?

But documentation and occasional execution would be good

@hectormz given the enthusiasm can you make a one-line followup PR adding a link to the tool into this section of our developer resources https://github.com/napari/napari/blob/master/docs/source/developers/CORE_DEV_GUIDE.md#further-resources.
Something like:
codespell for automated typo-fixing
We could also add to our developer dependencies if we wanted, https://github.com/napari/napari/blob/master/requirements/development.txt, though we might want to keep those from getting bloated, as this is strictly optional at this point. Curious what @jni and @tlambert03 think about that too?

Sure, I can add that suggestion!
@tlambert03 from what I've seen with default settings, it doesn't look at non-comment code


Generated configs

Describe your changes :

adding suggested comments

Type of change :

[x] Improvement

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] I have added tests that prove my fix is effective or that my feature works.
[x] All new and existing tests passed.

Reviewers

UI test failures are unrelated to this change. Merging.


Implement linked account userCredentials for consumer management

This PR adds the functionality in the consumer controller to use the userCredentials specified in the Account resource.

We want to use NACK with multiple accounts in order to create Streams and Consumers, so this PR is important for us too
@wallyqs will it be possible to include this for the next NACK release?


Alternate .jscsrc for tests

Similar to how ember-cli provides an alternate .jshintrc for test files at tests/.jshintrc I would like to have a test file specific tests/.jscsrc.
The driving need in my case is working with a rails backend api that serialized data in snake_case, and the test fixtures we setup are built with corresponding snake_case object properties.  However in our main app code I want to enforce requireCamelCaseOrUpperCaseIdentifiers.  I know this can be overcome in individual files with: jscs:disable requireCamelCaseOrUpperCaseIdentifiers, but I'd like to do it once for the whole tests tree.

An alternative is to put all your fixtures in tests/fixtures/whatever.js and exclude that folder with   "excludeFiles": ["fixtures/**"] in your .jscsrc.
Personally, I've just disabled that rule globally.

Thanks fo the suggestions. We're using factories with ember-cli-mirage so we have fixture generation with snake_cases overrides in line in our acceptance tests.  I could ignore those files, but I like having style enforcement on them.
I also thought of disabling that rule altogether, but I do like enforcing that consistency in our app code.
I've arrived at a workable solution by updating our custom acceptance test blueprint to add the disable comment line at the top of the file (and a sed script to prepend all the existing ones).


Compilation on Arch - Missing libraries

I found that I was able to compile on Arch Arm if I added the following to LDFLAGS2 in Makefile:   -lpthread -lm
Thanks!

lpthread fix added in commit  [8b868f3]


Is it possible to record the webcam as an independent video?

Hi,
There is the possibility to capture the screen with the webcam as a picture in picture. But I would rather record both as a separate video. This would make the editing more beautiful. Is that possible? If so, how and if not, is it possible to do this with the plugin API?
Thanks for the help!

This would probably be an editing plugin. How would you access the recording afterwards? Also if you edit and crop the video how would that match the separate recording?
I was working on a plugin that actually overlayed the webcam over the selected cropper. It's click through and it gets opacity on hover but it still is present in the screen while you record. Was having some permissions issues but I might try to work on it again.

hi @karaggeorge, that sounds interesting. I'm sure I could use it. If you need any help, feel free to contact me!  I don't have a lot of time for Open Source right now but I would be happy if I can help

@skllcrn wanted to ask why the issue was closed?

Sorry @snics, that was accidental, thank you for pointing it out! @karaggeorge has been doing some really exciting experimentation related to this.

@skllcrn no problem, just thought I might have missed something and didn't follow the guidelines 😀
Yes, I am really curious, I will help you if I can help!


[BUG] List Example cant find SignalListItemItemFactory

In source code, about lists, the struct SignalListItemItemFactory can't be found.
    let factory = SignalListItemFactory::new();

@Hofer-Julian It's missing the gtk:: like in the actual code in the examples directory.

As discussed with @slomo not a bug, just symbol brought into scope

Yep, the issue was in the toml - config file. There was not gtk4 in features section. Put this info in dependencies fix the problem.


Command line ping single url

A few other changes but the main one is to give Phoneboy a command line single ping option --url
Additionally I added a new option to hive-watcher so you can give it a start time and date (it's very particular about the format).
And I added a --diagnostic option which lets you produce a list of (at the moment) startup events which are generated and written to the blockchain when a hive-writer.py starts up.
This answers: #38

All the changes in this are included in #40 as well.


added laravel 6 support

Updated dependencies and code for support of laravel 6+.

Please let me know if anything is missing or done wrong. I am just beginning with OSS! :D

Hi, Thanks a lot for your contribution. A new version (Version 1.3.0) supporting Laravel 6 has been released :
https://github.com/brozot/Laravel-FCM/releases/tag/1.3.0

Never mind I will try next time..😅😇


CI Configuration for Build-Variant Specific Properties

Followed the notes in the docs and created three files: test.properties, staging.properties, production.properties. They work properly locally.
Now, on the CI (Bitbucket, yml), I have a first step on pipelines that dumps the keys into each build variant file, like this:
- step: &Create-Test-properties
    name: Create-Test-properties
    script:
       - echo API_KEY=$MY_SECRET_VAR > test.properties
    artifacts:
       - test.properties

...

Problem is, the error seem to imply that the plugin will go to local.properties and ignore the build-variant files:
Failed to query the value of property 'buildFlowServiceProperty'.

> Could not isolate value () of type BuildFlowService.Parameters

   > A problem occurred configuring project ''.

      > Failed to notify project evaluation listener.

         > The file '.../local.properties' could not be found

Is there a step I'm missing? Configuration options only mentions defaultPropertiesFileName for CI but then it'll use the default file, not the specific ones.

We are also having the same problem... 🤔

yeah same here

It's been a while and I don't remember exactly how I made it work, but after some tinkering it did run on the CI properly. I added logs in the bash script to see if the flavour file was really being created or populated properly and it wasn't, so hopefully this will be a tip for people.
Leaving my setup, also, in case it helps:
build.gradle
    secrets {
        defaultPropertiesFileName = 'local.defaults.properties'
    }

I have three files in the project root directory: local.defaults.properties, test.properties, staging.properties, production.properties (The flavour ones are git ignored).
In my yml file:
- step: &Create-Test-properties
    name: Create-Test-properties
    script:
      - echo API_KEY1=$MY_SECRET_VAR1 > test.properties
      - echo API_KEY2=$MY_SECRET_VAR2 >> test.properties
    artifacts:
      - test.properties

(...)

pipelines:
  "{branch}":
    - step: *(...)
    - step: *Create-Test-properties
    - step: *(...)

Also closing this since it feels it was more of a yml configuration issue, not a plugin one.


add .idea folder to gitignore

What
add .idea folder to gitignore
Why
.idea is user-specific, hence it should not be in VCS

This is helpful for folks using IntelliJ Rust

Oops... I meant to fork https://github.com/emilHof/sling
:homerdisappear:


Scala arrays in isContainedIn check

On the Scala side the isContainedIn constrain check requires an Array[String]
  def isContainedIn(       column: String,       allowedValues: Array[String])
We need a iterable_to_scala_array() function in the jvm_conversions module to convert a list of strings in python to Scala array.

Have you fixed this problem? I try to use "sarray = gateway.new_array(gateway.jvm.java.lang.String,2,3)" but encountered an error: 'JavaPackage' object is not callable.

seems fixed it. isContainedIn() can work now.

Hi @liunan10 pls check out awslabs/python-deequ this project will continue there...


Add filter layers to tool [very easy]

Jocelyn to prep and style all data before turning over to Ryan.

Filters turned over to Ryan.


Add swig as a dependency

Latest commit compilation failed because of missing dependency. After installing swig using apt (I'm on Ubuntu), compilation proceeded but failed at later stage, for which I'll open another issue.
Anyway, you should add swig add the Ubuntu dependencies.

updated!


Update LAN to IOT comment.

Silly to just update a comment, but why not. Everything else looks good :)

Thanks for taking the time to submit the PR! :)


Analyzer Feedback from IntelliJ

Version information

IDEA AI-223.8836.35.2231.10811636
3.1.5
AI-223.8836.35.2231.10811636, JRE 17.0.6+0-17.0.6b829.9-10027231x64 JetBrains s.r.o., OS Mac OS X(aarch64) v14.1.2, screens 3360.0x2100.0  Retina

please help me with this issue

Sorry for the inconvenience, @kanishk1046! The first thing I'd do is make sure I'm on the latest version of Dart and the latest version of IDEA. If the issue persists, we'll need some more information. Anything you can tell us about what you were doing when server crashed? Can you reproduce it consistently? Failing easy steps, logs would be great. A few notes on capturing logs are here:
https://github.com/dart-lang/sdk/blob/main/pkg/analysis_server/doc/tutorial/instrumentation.md


Draft: Efficient RegexFSM Concatenation / Union, Enabling LALR(1), Multi-Terminal Tokens

(Rough Draft)
Seeking comments, questions, and critique for the design below.
This is a problem I came across early into contributing to Outlines and I've been thinking about it for a while. Here's an overview of my thought.
Problem
The goal of this design spec is to "complete" CFGFSM. That is to say we want Outlines to never be the bottleneck for CFGFSM generation, ensure the set of valid subsequent generated tokens is exactly equal to the set of subsequent strings legal within the grammar, ensure CFGFSM is LALR(1), and provide a path towards ambiguous grammars.
This design spec intends to ensure two criteria are met
1) Every sequence of tokens which can comprise a valid generation can be produced.
Fixes https://github.com/outlines-dev/outlines/issues/573
Consider the following grammar
start: a b
a: "A"
b: "B"

On main, even if "AB" is in the tokenizers vocabulary it cannot be generated, only "A" can be generated as the next token. The problem is that prior to this PR, Outlines constructed and filtered the tokenizers vocabulary based on a FSM for only the immediate next terminal, which "B" isn't a part of.
With this change-set, tokens can span multiple terminals, and the "AB" token can be generated.
2) the set of valid generations produced by a CFGFSM using grammar G matches the set of sequences deemed valid by under G with Larks LALR_Parser + ContextualLexer.
Fixes https://github.com/outlines-dev/outlines/issues/588
Consider the following grammar
start: "AABC"
       | "AA" "BD"

On main, if our current generation is comprised of "AAB", then it is impossible to generate "D". The problem lies in the fact that once "AAB" is generated, Outlines parsing logic decides that there is no need to consider that "AA" is a complete terminal because "B" is still valid within the existing FSM.
With this change-set,  both "AABD" and "AABC" can be generated.
Solution
(Note: I will be incorrectly referring to Larks lexical tokens as "terminals" throughout to avoid confusion with LLM tokens)
Lark Behavior
To achienve lookahead and multi-terminal LLM tokens we must first know which terminals may succeed the current terminal. We can speculate futures state by simulating the application of state transitions to the parsers automata.
Lark makes this simple:
new_interactive_parser = copy(interactive_parser)
new_interactive_parser.feed_token(terminal)
child_terminals = new_interactive_parser.accepts() | ignored_termsinals

We can construct the speculative terminal tree, and only need to update the tree when we consume a new terminal. Additionally, this is easy to cache using the push-down automata's (PDA) stack as a key.
RegexFSM Behavior
Every terminal has a corresponding RegexFSM, and each state within a RegexFSM has a precomputed set of legal LLM tokens. To determine the legal set of LLM tokens beyond the bounds of the current RegexFSM we need to merge the RegexFSM as we traverse the parser automata. This requires the implementation of two operations:

Concatenation: RegexFSM() + RegexFSM()
Union: RegexFSM() | RegexFSM()

combined_fsm = current_terminal_fsm + (next_fsm_0 | next_fsm_1 | ...)
combined_fsm.allowed_token_ids()

New RegexFSM Construction
Currently RegexFSM is unable to be concatenated or unioned. It has all states labelled with LLM tokens valid to complete or partially complete the current terminal, but it has no knowledge of LLM tokens which make be legal if concatenated. We must design an efficient index which doesn't rely on recomputing the allowed token cache from scratch on the combined RegexFSM.
RegexFSM currently precomputes:

for each state

the set of valid LLM tokens

RegexFSM must be updated to precompute:

for each state

the set of valid LLM tokens
the set of LLM token completing suffixes

for the initial state

the set of token suffixes

Formalism

Let P be the prefix set.
Let S be the suffix set
Let V be the vocabulary

The goal is to find V', a subset of V, consisting of strings formed by concatenating exactly one element of P, and one element of Sn for each S, such that the concatenation is in the set V.
$$V' = {v \in V \mid v = p + s_1 + s_2 + \ldots + s_n, p \in P,  s_j \in S_j}$$
New RegexFSM Merging
The naive approach is to take the cartesian product of P x S0 x S1 x ... x Sn
We can improve this approach with some precomputed vectors as follows.
Base Case: Only two RegexFSM concatenated
For RegexFSM construction, we calculate a prefix suffix vector from the vocabulary. This is calculated once for a vocabulary.
import numpy as np

# from transformers import AutoTokenizer
# tokenizer = AutoTokenizer.from_pretrained("mistralai/Mistral-7B-Instruct-v0.2")
# vocabulary = tokenizer.get_vocab()

vocabulary = {"hello": 0, "world": 1, "alice": 2, "bob": 3}
inverse_vocab = {v: k for k, v in vocabulary.items()}

# note: the size prefix_suffix_set is 128,956 with Mistrals 32,000 token vocab
prefix_suffix_list = sorted({(tok[:i], tok[i:]) for tok in vocabulary for i in range(1, len(tok))})

# print(sorted(prefix_suffix_list))
# [('a', 'lice'), ('al', 'ice'), ('ali', 'ce'), ('alic', 'e'), ('b', 'ob'), ('bo', 'b'), ('h', 'ello'), ('he', 'llo'), ('hel', 'lo'), ('hell', 'o'), ('w', 'orld'), ('wo', 'rld'), ('wor', 'ld'), ('worl', 'd')]

# create list and vectors corresponding to prefix_suffix_list
prefixes = [pair[0] for pair in prefix_suffix_list]
suffixes = [pair[1] for pair in prefix_suffix_list]

vocabulary_vector = np.array([vocabulary["".join(prefix_suffix)] for prefix_suffix in prefix_suffix_list])

For RegexFSM construction, we calculate the legal set of suffixes for a RegexFSM given its prefixes
legal_prefixes = ["al", "ali", "he", "wo"]  # generated by traversing the FSM

# (inefficient method, only for demonstration)
# create mask which is True at indices of prefix_suffix_list where legal_prefixes is found
# this will help us later when we're concatenating against another RegexFSMs prefix list
legal_prefix_suffix_pair_vector = np.array([prefix in legal_prefixes for prefix, _ in prefix_suffix_list])

# print([suffixes[i] for i in np.where(legal_prefix_suffix_pair_vector)[0]])
# ['ce', 'ice', 'llo', 'rld']

Additionally we must provide the set of suffixes the RegexFSM can produce
generatable_suffixes = ["ice", "rld", "e"]
generatable_suffix_vector = np.array([suffix in generatable_suffixes for _, suffix in prefix_suffix_list])

For RegexFSM concatenation, we calculate the set of legal tokens given each matched suffix
# when concatenating a RegexFSM which allows the prefixes ["al", "ali", "he", "wo"]
# with a RegexFSM which allows the suffixes ["ice", "rld", "e"]
# we get a legal vocab of set(["alice", "world"])
legal_vocab_mask = legal_prefix_suffix_pair_vector * generatable_suffix_vector
legal_token_ids = vocabulary_vector[legal_vocab_mask]

# print([inverse_vocab[token_id] for token_id in legal_token_ids])
# ['alice', 'world']

Extended Case: Concatenating more than two RegexFSM
We can extend vocabulary_vector such that all prefixes are also labelled. This doesn't increase the size of the vector.
Legal token IDs can be be determined by the vocabulary_vectors first N IDs, and the new legal prefix set can be determined by the IDs thereafter
legal_vocab_ids = vocabulary_vector[legal_vocab_mask]
valid_token_ids = legal_vocab_ids[legal_vocab_ids < len(vocabulary)]
valid_prefix_ids = legal_vocab_ids[legal_vocab_ids >= len(vocabulary)]

Analysis
Space Complexity (Construction)
Provided a FSM with S states and a tokenizer having vocabulary size V, RegexFSM space complexity was originally O(S * V).
Provided an word length L, the new RegexFSM worst case space complexity is O(S * V * L).
In practice, Mistrals tokenizer has an average word length of 5.029875. Will analyze further mitigation during implementation. Real world benchmarking will be critical as well.
Time Complexity (Construction)
Constructing the index requires that the vocabulary be traversed in its entirety. Construction will have the same theoretical time complexity, but because the entire vocabulary will be traversed, it will be worse.
This will be mitigated through the use of a DAFSA.
Time Complexity (Concatenation)
Concatenation requires multiplying two vectors. The vectors are the size of the set of (prefix, suffix) pairs for the vocabulary. O(S * V * L)
In practice, for Mistrals tokenizer generating and applying the concatenated vocab mask could be performed 44191 times per second on a single core of my i5.
Etc
Replaces https://github.com/outlines-dev/outlines/issues/588, https://github.com/outlines-dev/outlines/issues/573
Bonus:
After implementation, we can make subtle changes to the speculative terminal tree to convert it into a NDPDA. In other words, this implementation provides an easy path towards enabling context-free grammars!

Hi @lapp0,
Thanks for the detailed proposal. I took the time to try reading and understanding it and have a couple questions.

In the following code block, what does ignored_terminals reference ?

new_interactive_parser = copy(interactive_parser)
new_interactive_parser.feed_token(terminal)
child_terminals = new_interactive_parser.accepts() | ignored_termsinals

I really like the idea you have to combine RegexFSMs, without recalculating the whole index and this seems like an elegant solution.
 More precisely I am unclear on what the suffixes and prefixes correspond to.
Detailing on a simple example would really help clear things out, for example on : Grammar : start: "Happy" "New Year"  and vocabulary : {"Hap", "py Ne", "w Year"}.

Thanks so much for reviewing and helping me make it more clear! Please let me know if you have any other questions.

In the following code block, what does ignored_terminals reference ?

These terminals don't impact the parsing state and can be consumed at any time. They're not included in .accepts().  Think %ignore WS

I really like the idea you have to combine RegexFSMs, without recalculating the whole index and this seems like an elegant solution.
 More precisely I am unclear on what the suffixes and prefixes correspond to.
Detailing on a simple example would really help clear things out, for example on : Grammar : start: "Happy" "New Year" and vocabulary : {"Hap", "py Ne", "w Year"}.

Sorry it's not super clear yet. Here is an example and a prototype implementation.
Concatenation can't discover more than two tokens at a time (and I don't think it needs to), so here's an example of it concatenating "Hap" and "py Ne":
def log(name, pre_idx):
    print(name)
    vocab = sorted([vocab_index.vocabulary[i] for i, t in enumerate(pre_idx.legal_vocab) if t])
    pairs = sorted([vocab_index.prefix_suffix_list[i] for i, pm in enumerate(pre_idx.legal_pair_mask) if pm])
    prefixes = sorted(set([p[0] for p in pairs]))
    print("  vocab:", vocab)
    print("  legal next pairs:", pairs)
    print("  prefixes:", prefixes)

vocabulary = ["Hap", "py Ne", "w Year"]
vocab_index = VocabularyIndex(vocabulary)

# In practice, this would be calculated by crawling the FSM
def get_all_substrings(input_string):
    length = len(input_string)
    return [input_string[i:j+1] for i in range(length) for j in range(i, length)]
# get indexes for FSMs
happy_prefix_index = vocab_index.get_prefix_index(get_all_substrings("Happy "))
new_suffix_index = vocab_index.get_suffix_index(get_all_substrings("New "))

log("happy_prefix_index", happy_prefix_index)
happy_new_concat_index = vocab_index.concat(
    happy_prefix_index,
    new_suffix_index
)
log("happy_new_concat_index", happy_new_concat_index)

log output:
happy_prefix_index
  vocab: ['Hap']
  legal next pairs: [('H', 'a'), ('H', 'ap'), ('Ha', 'p'), ('p', 'y'), ('p', 'y '), ('p', 'y N'), ('p', 'y Ne'), ('py', ' '), ('py', ' N'), ('py', ' Ne'), ('py ', 'N'), ('py ', 'Ne')]
  prefixes: ['H', 'Ha', 'p', 'py', 'py ']
happy_new_concat_index
  vocab: ['Hap', 'py Ne']
  legal next pairs: [('py ', 'N'), ('py ', 'Ne'), ('py N', 'e')]
  prefixes: ['py ', 'py N']

Here is the prototype implementation:
from typing import List
import numpy as np

class SuffixIndex:
    def __init__(self, legal_pair_mask):
        self.legal_pair_mask = legal_pair_mask

class PrefixIndex:
    def __init__(self, legal_pair_mask, legal_vocab):
        self.legal_pair_mask = legal_pair_mask
        self.legal_vocab = legal_vocab

class VocabularyIndex:
    """
    Core data structure:
    - Prefix-suffix pairs for entire vocabulary of length L.
    - A vector of length L with integers where each integer a token ID or prefix ID.

    This data structure allows us to resolve PrefixSuffixIndex based on vector multiplication.

    Prefix IDs correspond to indices in the universe of valid vocabulary prefixes
    Valid prefixes for "apple" are ["a", "ap", "app", "appl", "apple"]

    self._vocab_length allows us to determine which integers are tokens and which are not
    """
    def __init__(self, vocabulary: List[str]):
        self.vocabulary = vocabulary

        # all valid prefixes for every token str in vocabulary
        prefixes = {s[:i] for s in vocabulary for i in range(1, len(s) + 1)}

        # Create a list of all possible unique prefix-suffix pairs from the vocabulary
        self.prefix_suffix_list = sorted({
            (tok[:i], tok[i:]) for tok in prefixes for i in range(1, len(tok))
        })

        # extend vocab to include prefix IDs
        prefix_vocabulary = sorted(set(prefixes) - set(vocabulary))
        self.extended_vocabulary = vocabulary + prefix_vocabulary
        inverse_extended_vocab = {
            token_str: token_id
            for token_id, token_str in enumerate(self.extended_vocabulary)
        }

        # create vector mapping, vector idx represents prefix-suffix, maps to prefix / token ID2
        self.concat_vector = np.array([
            inverse_extended_vocab["".join(prefix_suffix)]
            for prefix_suffix in self.prefix_suffix_list
        ])

        # create vector mapping , vector idx represents prefix-suffix, maps to the used prefix's ID
        self.concat_input_prefix_vector = np.array([
            inverse_extended_vocab[prefix] for prefix, suffix in self.prefix_suffix_list
        ])

    def get_prefix_index(self, legal_strings: List[str]):
        # get a boolean mask with indices corresponding to a legal_prefix marked True
        legal_pair_mask = np.array([
            prefix in legal_strings
            for prefix, _ in self.prefix_suffix_list
        ])
        legal_vocab = np.array([(token in legal_strings) for token in vocabulary])
        return PrefixIndex(legal_pair_mask, legal_vocab)

    def get_suffix_index(self, legal_strings: List[str]):
        # get a boolean mask with indices corresponding to a legal_suffix marked True
        legal_pair_mask = np.array([
            suffix in legal_strings
            for _, suffix in self.prefix_suffix_list
        ])
        return SuffixIndex(legal_pair_mask)

    def concat(self, prefix_index, suffix_index):
        assert isinstance(prefix_index, PrefixIndex)
        assert isinstance(suffix_index, SuffixIndex)

        # get legal concatenation pairs and their corresponding token ids
        legal_concat_mask = prefix_index.legal_pair_mask * suffix_index.legal_pair_mask
        legal_concat_ids = self.concat_vector[legal_concat_mask]

        # calculate new legal tokens
        legal_vocab = prefix_index.legal_vocab.copy()
        legal_vocab[legal_concat_ids[legal_concat_ids < len(legal_vocab)]] = True

        new_legal_pair_mask = np.isin(self.concat_input_prefix_vector, legal_concat_ids)

        return PrefixIndex(new_legal_pair_mask, legal_vocab)

vocabulary = ["hello", "world", "alice", "bob", "al", "ali", "alic"]
vocab_index = VocabularyIndex(vocabulary)

def log(name, pre_idx):
    print(name)
    vocab = sorted([vocab_index.vocabulary[i] for i, t in enumerate(pre_idx.legal_vocab) if t])
    pairs = sorted([vocab_index.prefix_suffix_list[i] for i, pm in enumerate(pre_idx.legal_pair_mask) if pm])
    prefixes = sorted(set([p[0] for p in pairs]))
    print("  vocab:", vocab)
    print("  legal next pairs:", pairs)
    print("  prefixes:", prefixes)