Guidance on how to get started with Cake

So, these are potentially some quite a naive questions but here goes...
I have been lurking around the Cake project for a while now, but I have never actually used it in anger, but I would like to change that :smile_cat: With the recent inclusion of Mono support, I really feel that it would be a good time to start embracing it.
I have an existing open source project, namely GitReleaseManager that uses a psake script to orchestrate the build process, and I am looking for some guidance/best practices on how to get started using Cake.
I thought about asking these questions in the Gitter chat room, but then I thought that there might be too much info to put in there.  If you want me to move this discussion to somewhere else, happy to do so.
Looking through my psake build script (which you can see here https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1) these are some of the main questions that I have:

Should I be using the Cake Boostrapper to start the project?
The CI build for GitReleaseManager is currently done using AppVeyor, and prior to making the call to psake, I inspect the AppVeyor variables to decide what psake task should be executed, as you can see here:  https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/build.ps1#L27  Is this something that Cake has support for OOTB, or would this have to be created?  If the latter, are there any samples somewhere of the best approach for doing this?
As part of the build process, I invoke a number of exe's, for example OpenCover, NUnit, ReportGenerator, Coveralls, Coverity, etc.  This is typically as simple as running the exe with some command line arguments.  Am I right in saying that Cake has some "aliases" for doing this type of work?  Are these exe's already supported?  If not, can you provide a sample of the best approach for bootstrapping these exe's to make them Cake callable?  If I were to get these exe's working with Cake, would that be a PR into the main Cake repo, or should these aliases, assuming that is the correct term, live outwith Cake?  If so, is there a standard convention/naming, etc to be followed?
Related to the above, another exe that I call is GitVersion.  The main difference here is that this exe, depending on how it is invoked, returns some output to the command line, which I sometimes use within the build script, as you can see here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L421.  Again, if an alias is the correct term, can this alias return the output of the called exe?  And again, is there a sample of doing this?
As part of the build process, I install a number of tools using Chocolatey.  Is there a helper for doing this in Cake, in the same way that there is for calling into Nuget?
Speaking of Nuget, what is the best approach for pushing packages to Nuget Feeds, as I do here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L421
In my build script, I have a number of what I refer to as helper methods for creating directories, deleting folders, etc.  I think I am right in saying you get these for free in Cake, but again, any samples of best practices for how to use these, and chaining these as part of build process?
Am I right in saying that Cake can help with interfacing with AppVeyor REST API, or did I make that up?  Within the build, I like to push results of failed portions of the build to the AppVeyor test section, and also to push artifacts, as shown here:  https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L105 and here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L100  This is done using the AppVeyor PowerShell cmdlets.  Does Cake already have some help in this area?
Any help when it comes to XSL Transforms? https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L192
Is there anything in my current build script that you think can be achieved in a better way using Cake?  i.e. could the task dependencies be changed to improve the flow?

Thanks in advance!

Hi @gep13,
This kind of feedback is extremely valuable and I really appreciate you taking the time to write this down!
It's a lot of (interesting) questions that might be good to clarify in a future blog post/tutorial/FAQ on the website.

1. Should I be using the Cake Boostrapper to start the project?
The bootstrapper is just for convenience, so there's no need to use it if you don't want to. I however prefer to use it since I don't want to store any binaries in the repository and it also helps me remember all command line switches, but that's just me. :smile:
2. The CI build for GitReleaseManager is currently done using AppVeyor, and prior to making the call to psake, I inspect the AppVeyor variables to decide what psake task should be executed, as you can see here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/build.ps1#L27 Is this something that Cake has support for OOTB, or would this have to be created? If the latter, are there any samples somewhere of the best approach for doing this?
Yes, there's an alias for this available OOTB.
if(AppVeyor.Environment.ScheduledBuild)
{
	// Do stuff
}

3. As part of the build process, I invoke a number of exe's, for example OpenCover, NUnit, ReportGenerator, Coveralls, Coverity, etc. This is typically as simple as running the exe with some command line arguments. Am I right in saying that Cake has some "aliases" for doing this type of work? Are these exe's already supported? If not, can you provide a sample of the best approach for bootstrapping these exe's to make them Cake callable? If I were to get these exe's working with Cake, would that be a PR into the main Cake repo, or should these aliases, assuming that is the correct term, live outwith Cake? If so, is there a standard convention/naming, etc to be followed?
Alas, only NUnit is available as an alias at the moment, but I've actually been thinking about adding support for OpenCover, ReportGenerator and Coverity. I've never used Coveralls before, but if it's a well known tool I wouldn't have anything against including it in Cake. Otherwise it can always be written as an addin.
I can write a guide how to implement a custom tool, but that will be longer than any answer I can provide here. If you want to read about aliases I've written down some basic stuff at http://cakebuild.net/docs/fundamentals/aliases. If you want to see an existing tool, I recommend to take a look at the Cake.Common.Tools namespace. Let me get back to you on this.
4. Related to the above, another exe that I call is GitVersion. The main difference here is that this exe, depending on how it is invoked, returns some output to the command line, which I sometimes use within the build script, as you can see here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L421. Again, if an alias is the correct term, can this alias return the output of the called exe? And again, is there a sample of doing this?
There is an alias in Cake that starts processes, and it also encapsulates logic for retrieving the output from the process.
IEnumerable<string> lines;
StartProcess("./program.exe", new ProcessSettings(), out lines);
var output = string.Join("\n", lines);

Should probably add an API call that returns the output as a string. Need to check with @devlead about this since he wrote it and probably knows more than I do :smile:
5. As part of the build process, I install a number of tools using Chocolatey. Is there a helper for doing this in Cake, in the same way that there is for calling into Nuget?
Are you refering to the Powershell version of Chocolatey or choco.exe? I know that @SharpeRAD has written an addin to execute Powershell commands. If you mean choco.exe I would not have anything against adding support for it OOTB.
6. Speaking of Nuget, what is the best approach for pushing packages to Nuget Feeds, as I do here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L421
There is built in support for pushing packages to NuGet feeds in Cake.
// Get the path to the package.
var package = Directory("./artifacts") + File("Cake." + semVersion + ".nupkg");

// Push the package.
NuGetPush(package, new NuGetPushSettings {
    Source = "https://www.myget.org/F/cake/api/v2/package",
    ApiKey = apiKey
});

7. In my build script, I have a number of what I refer to as helper methods for creating directories, deleting folders, etc. I think I am right in saying you get these for free in Cake, but again, any samples of best practices for how to use these, and chaining these as part of build process?
Yes, I've added a lot of functionality for working with paths and the file system. Generally, all paths are represented by FilePath,DirectoryPath.FilePathCollection or DirectoryPathCollection.
var artifacts = new DirectoryPath("./artifacts");
var stuff = path.Combine(new DirectoryPath("stuff"));
var file = stuff.CombineWithFilePath(new FilePath("text.txt"));

These classes are kind of low level (for a build script), so I've also added aliases to combine them together. All functionality in Cake working with files or directories accepts a FilePath and/or DirectoryPath. Tools accepting paths also have a repsonsibility to make relative paths absolute to avoid errors.
var artifacts = Directory("./artifacts");
var stuff = artifacts + Directory("stuff");
var file = stuff + File("text.txt");

Which also can be written
var file = Directory("./artifacts/stuff") + File("text.txt");

I've also added implicit conversion operators from System.String so you can provide a string for methods that accept a FilePath or a DirectoryPath.
MethodThatAcceptsFilePath("./hello.txt");

8. Am I right in saying that Cake can help with interfacing with AppVeyor REST API, or did I make that up? Within the build, I like to push results of failed portions of the build to the AppVeyor test section, and also to push artifacts, as shown here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L105 and here: https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L100 This is done using the AppVeyor PowerShell cmdlets. Does Cake already have some help in this area?
Yes, there are methods built into Cake's utility library for doing this.
var file = File("./stuff.xml");
AppVeyor.UploadArtifact(file);

There is currently no support for reporting test results, but that wouldn't be difficult to add.
9. Any help when it comes to XSL Transforms? https://github.com/GitTools/GitReleaseManager/blob/develop/BuildScripts/default.ps1#L192
Yes! There is an alias for performing XSL transforms.
string result = XmlTransform("XSL content", "XML data",
    new XmlTransformationSettings() {
	    // These settings have a billion options ;)
})

10. Is there anything in my current build script that you think can be achieved in a better way using Cake? i.e. could the task dependencies be changed to improve the flow?
I can take a look tomorrow after work and get back to you on this.

As I said before, great questions. I hope I didn't ramble too much when trying to answer them. I will get back to you about the missing tool support to see if we can find a solution :smile:
/ Patrik

Wow! Thank you for such a detailed response, really appreciate it.  Let me dissect some of it, and follow up with more :smile_cat:

@patriksvensson said...
I can take a look tomorrow after work and get back to you on this.

I would really appreciate that.

@patriksvensson if you have time tomorrow, some further input on this would be preferred to the CakeTest issue that I was having :stuck_out_tongue:

@gep13 Absolutely. Sorry I've not answered this yet. Expect an answer tomorrow :smile:

@gep13,
I took some time on my lunch to convert the tasks (without content) to Cake tasks to better see how everything work together. I cannot see anything strange from the knowledge I have about your project.
https://gist.github.com/patriksvensson/b58652071427973a898b
if there's something I've forgotten about then tell me and I will answer as soon as I can.
Questions:
I see that you do a try-catch in some tasks (like ) and write some whether or not the task succeeded or failed. I see no rethrow though. Does this work as I think it do, or does psake fail the build if an error is written to stderr?
If you want to catch all errors you could either use a regular try-catch in the cake script as well, or use the HandleError task extension.
What I changed:

I've added a constraint to the __EchoAppVeyorEnvironmentVariables task to not run if Cake isn't running on AppVeyor.

Added the directories at the beginning of the script. This is to minimize the errors that might come with path manipulation in the tasks. I also output all paths as part as a task called "Show-Info". This is just for debugging purposes (and demonstration) and not crucial in any way. All tools supported by cake will make the provided path absolute, so you don't have to think about that. If you want to display the full path simply wrap the path in a MakeAbsolute call.

Optional things that can be done:
Well, everything I've written is optional, this is just more optional :smile:
The build script becomes kind of large, so you could divide them into several one for brevity.

build.cake
private-tasks.cake

and then load them with the #load directive.
#load "private-tasks.cake"

Was this helpful? Anything else you need answer to?

@patriksvensson this was more than enough information!  Couldn't have asked for much more! Thanks!


fix: filter / tree / pump interaction

fix: pump icon sizes
fix: hide pump tooltip when filter opens
fix: close filter on map click
fix: close filter on tree click
fix: close filter on pump click
refactor: move hovered / selected pumps in pump store
refactor: move hovered / selected tree in tree store

follow up ticket for missing link https://app.asana.com/0/1204152181784036/1206939171395016

when clicking on a pump on mobile the tooltip is opened but the pump does not get centered (only after double click)

@aeschi  fixed


External gw config always includes all nodes disregarding the type mentioned in the ConfigMap

Bug Report
In v1.12.4, the external gw config always includes all nodes disregarding the type mentioned in the ConfigMap.
I have 2 nodes, node-01 and node-02. I set the external gw only to node-01 with type centralized, but somehow node-02 is always annotated as external gw and bridge of br-external also created there.
Expected Behavior
External gw node should only be assigned to node-01
Actual Behavior
node-01 and node-02 become external gw node
Steps to Reproduce the Problem

Apply ovn-external-gw-config ConfigMap

apiVersion: v1
data:
  type: "centralized"
  enable-external-gw: "true"
  external-gw-addr: <IP_ADDRESS>
  external-gw-nic: eno2
  external-gw-nodes: node-01
  nic-ip: <IP_ADDRESS>/24
  nic-mac: 0c:c4:7a:00:ee:ff
kind: ConfigMap
metadata:
  name: ovn-external-gw-config
  namespace: kube-system

Observe the annotation on all nodes

$ kubectl get nodes node-01 -o yaml | grep ovn.kubernetes.io/external-gw
    ovn.kubernetes.io/external-gw: "true"

$ kubectl get nodes node-02 -o yaml | grep ovn.kubernetes.io/external-gw
    ovn.kubernetes.io/external-gw: "true"

Observe bridges on all nodes

$ kubectl ko vsctl node-01 list-br
br-external
br-int

$ kubectl ko vsctl node-02 list-br
br-external
br-int

Additional Info

Kubernetes version:
v1.26.12

kube-ovn version:
v1.12.4

operation-system/kernel version:
"Ubuntu 20.04.5 LTS"
5.4.0-170-generic

Possible Cause
I found that there's a change in the v1.12.4 to handle the external gw node (#3500), but it causes the gwNodes value in here always having all nodes as previously assigned here .

@oilbeater We found this node label has been fix in v.1.12.8
But the type: "centralized" is still not work.
we expect that all traffic go in and out by  "external-gw-nodes: node-01"
But it works like distributed, traffic go in and out just by the host node. Not the external-gw-nodes

@a180285  hi, thanks for your info.
in the case of you expect that all traffic go in and out by "external-gw-nodes: node-01":
how about trying to  delete the  node label, if you don't want the node to be the gw node.

$ kubectl get nodes node-01 -o yaml | grep ovn.kubernetes.io/external-gw
ovn.kubernetes.io/external-gw: "true"
$ kubectl get nodes node-02 -o yaml | grep ovn.kubernetes.io/external-gw
ovn.kubernetes.io/external-gw: "true"
delete the ovn.kubernetes.io/external-gw: "true" from the node-02.
then the gw should be only one node-01 .

should be fixed in https://github.com/kubeovn/kube-ovn/pull/3724


Message update

Add message editing ( #39 )

Hi guys! Is this going to be merged anytime soon?

@beevee as this breaks api I think this will be merged in v2 only, or never

May I ask, why did you omit ParseMode configuration in message edits?

@beevee my bug, fixed

I'd like to merge this in ASAP. Let's figure out how we should handle it.

Closing this in favor of v2 API


Replace fetch-from-biosample with NCBI Dataset CLI

Description of proposed changes
Originally I was going to update fetch-from-biosample to use the v2 NCBI Dataset API as described in https://github.com/nextstrain/ncov-ingest/issues/477. However, I remembered https://github.com/nextstrain/ncov-ingest/issues/420 and realized that we can remove the script entirely if we just download the BioSample report as part of the NCBI Dataset CLI command.
Related issue(s)
Resolves #477, #420
Checklist

[x] Checks pass
[x] Trial run

Trial run successfully completed!

Compared the uploaded biosample.tsv.zst from the trial run with the production run and found no difference 🎉

Download files from S3, specifically used older version from prod that was uploaded the same day as the trial run.

$ aws s3 cp s3://nextstrain-data/files/ncov/open/trial/update-biosample/biosample.tsv.zst data/new-biosample.tsv.zst
$ zstd -T0 -dcq data/new-biosample.tsv.zst > data/new-biosample.tsv
$ aws s3api get-object --bucket nextstrain-data --key files/ncov/open/biosample.tsv.zst --version-id HTrEUbLJK2Qpauj_qv11Ehrv3j40Zf3o data/old-biosample.tsv.zst
$ zstd -T0 -dcq data/old-biosample.tsv.zst > data/old-biosample.tsv

Sort records by BioSample accession

$ csvtk sort -t -k biosample_accession data/new-biosample.tsv > data/sorted-new-biosample.tsv
$ csvtk sort -t -k biosample_accession data/old-biosample.tsv > data/sorted-old-biosample.tsv

Diff files

diff data/sorted-old-biosample.tsv data/sorted-new-biosample.tsv > /tmp/diff

No difference between the files 🎉

I plan to merge this tomorrow morning if there's no feedback.


Added Norwegian translation

Added Norwegian translation based on the english .json-file in the lang directory.

Thanks @eger-heed !


splice.nix: inherit from lib

This may improve performance
For stdenv inheriting from lib improved performance c3c31aa798551a2808981d14537d04de8f51dff8
Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[ ] Fits CONTRIBUTING.md.

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

Eval failed and of course it's QT.... https://gist.github.com/GrahamcOfBorg/f132dfbaac921f6172f0728c8b4c13df

Had to stop returning of cross/always splice because they've been killing ofborg lol

@ofborg eval
Run 1

Looks pretty neutral

I think the remaining eval errors are resolved

I am loving watching this progress through the thicket of eval errors!

Hell yeah, a successful eval!

Hell yeah, a successful eval!

Yeah now gotta wait for a ofborg eval, github actions eval doesn't have perf stats.

I'm sort of assuming that you'll make separate PRs for each of these DONTDROP commits; they all look worth taking in some shape or form.

I'm sort of assuming that you'll make separate PRs for each of these DONTDROP commits; they all look worth taking in some shape or form.

https://github.com/NixOS/nixpkgs/pull/362546

Dang, ofBorg barfed on a log line.
https://gist.githubusercontent.com/GrahamcOfBorg/8546e456a1cef3658055c48d37902deb/raw/841f915c5b3e68493a309edee7d279edcdb9bdc7/Output%2520path%2520comparison

On dfd6a4a50f9021fcda82f5151642e5e13670d4f2 the eval succeeds, after rebasing to master the eval doesn't succeed :/

ofborg-eval-lib-tests fail
https://gist.github.com/GrahamcOfBorg/a2b431acc304bc74cdb3723cb560980f
       > /build/.attr-0l2nkwhif96f51f4amnlf414lhl4rv9vh8iffyp431v6s28gsr90: line 15: /nix/store/7pami0aqan88pykzki6rqswmm54kv9ir-nix-aarch64-unknown-linux-gnu-2.24.10/bin/nix-instantiate: cannot execute binary file: Exec format error
Fixed

https://gist.github.com/GrahamcOfBorg/458aadffab9d4c8d51dc191cff93c222
Seems to hit every branch on the way down!

That was fixed in https://github.com/NixOS/nixpkgs/pull/364542

https://gist.githubusercontent.com/GrahamcOfBorg/6627bea2a8da597c22b94008d04f29e2/raw/9fc4b15b83ebdfe7e163ecb1de33b3f9144e18c5/ofborg-eval-nixpkgs-unstable-jobset
qemu failure this time about darwin.

https://gist.githubusercontent.com/GrahamcOfBorg/ae93ea34c749ca2928e67324f8275b83/raw/cbf13286041a1c167ed81c360b15e4cd6bf3a3d6/ofborg-eval-darwin
darwin GHC assert this time


LLM Monitoring not working for Async OpenAI requests

Problem Statement
I just experimented LLM monitoring and could not make it work with AsyncOpenAI.
Below is my code
My sentry init is
sentry_sdk.init(
    dsn=os.environ.get("SENTRY_DSN"),
    integrations=[sentry_logging],
    environment=os.environ.get("ENVIRONMENT", "prod"),
    send_default_pii=True,
)

Function i am using:
@ai_track("Tracking Name")
@async_retry(retries=4)
async def func():
    client = AsyncOpenAI()
    with sentry_sdk.start_transaction(op="ai-inference", name="Structured Data Prompt"):
        response = await client.chat.completions.create(
            model=model,
            messages=messages,
            functions=functions,
            temperature=0.0,
            timeout=120,
        )

Versions
sentry-sdk==2.13.0
openai==1.37.1

Solution Brainstorm
No response
Product Area
Insights

Hey @AltafHussain4748 !
Your code looks good, I think the only thing your are missing that you need to enable tracing. (Setting tracing_sample_rate=1.0 in your init() call.)
You can check if data is sent to Sentry by setting debug=True to your init() call and then you see something like this message in your console:
Sending envelope [envelope with 1 items (transaction)] project:5461230 host:o447951.ingest.sentry.io

(The LLM data is in the transaction envelope)
Hope this help!

Hey, sorry I didn't notice this issue before and created a new one, but it doesn't work because of this: https://github.com/getsentry/sentry-python/issues/3496

Cool @vetyy , thanks for linking!

@AltafHussain4748
This is the configuration I am using
    sentry_sdk.init(
        dsn=dsn,
        release=release,
        environment=environment,
        send_default_pii=True,
        enable_tracing=True,
        integrations=[
            OpenAIIntegration(
                include_prompts=False,  # Exclude prompts from being sent to Sentry, despite send_default_pii=True
                tiktoken_encoding_name="cl100k_base",
            ),
            AnthropicIntegration(
                include_prompts=False,  # Exclude prompts from being sent to Sentry, despite send_default_pii=True
            ),
        ],
    )

Don't forget to specify tiktoken_encoding_name otherwise it will calculate 0 tokens.
    def count_tokens(self, s):
        # type: (OpenAIIntegration, str) -> int
        if self.tiktoken_encoding is not None:
            return len(self.tiktoken_encoding.encode_ordinary(s))
        return 0

and also make sure you have pip install tiktoken installed.

Hey @AltafHussain4748 !
Your code looks good, I think the only thing your are missing that you need to enable tracing. (Setting tracing_sample_rate=1.0 in your init() call.)
You can check if data is sent to Sentry by setting debug=True to your init() call and then you see something like this message in your console:
Sending envelope [envelope with 1 items (transaction)] project:5461230 host:o447951.ingest.sentry.io

(The LLM data is in the transaction envelope)
Hope this help!

Thanks for your reply even with this parameter i was not able to make it work

Hey @AltafHussain4748 !
With version 2.17.0 of the SDK we released a fix for async openai (and anthropic) requests. Could you try the newest version of the SDK and see if this solved your problem?

Since there's been no activity I will close this -- it should be fixed in SDK >= 2.17. If not, please open a new issue.


Drop use_local: true from CUDA 12 migrator

Recently PyTorch 2.4.0 was added to conda-forge: https://github.com/conda-forge/pytorch-cpu-feedstock/pull/250
Now conda-forge is in the process of migrating feedstocks to PyTorch 2.4.0: https://github.com/conda-forge/conda-forge-pinning-feedstock/pull/6324
The PyTorch 2.4.0 release includes a change updating its vendored pybind11 to 2.12.0, which in turn includes the fix for this compiler error
We had worked around this bug previously by switching to GCC 11 in the CUDA 12 migrator ( https://github.com/conda-forge/qsimcirq-feedstock/commit/8e991f45d9982c858ade95f10678f07e9bd84786 )  and adding use_local: true to leverage this workaround. Now that PyTorch 2.4.0 is including a fix for this behavior, think we can drop this use_local: true line and re-render as part of that migration (or soon after)
https://github.com/conda-forge/qsimcirq-feedstock/blob/0da0717d36e8ddaf9498700a1b78633404ed9513/.ci_support/migrations/cuda120.yaml#L5-L8

Oops missed issue ( https://github.com/conda-forge/qsimcirq-feedstock/issues/10 ). Also noting that this only uses pybind11 (not PyTorch) so this could be done now


crash

librealsense
2.50.0 RELEASE

OS
Windows

Intel RealSense Viewer / Depth Quality Tool has crashed with the following error message:
Program terminated due to an unrecoverable SEH exception:
Access Violation!

Hi @MartyG-RealSense  If you installed version 2.50.0 of the RealSense SDK using the Windows installer file Intel.RealSense.SDK-WIN10-<IP_ADDRESS>85.exe in the 'Assets' file list, do you experience the same error if you download and run the Intel.RealSense.Viewer.exe file from the same list?  This is a standalone version of the Viewer that should be run with a double-leftclick on the file in the folder location that it was downloaded to (not with the launch shortcut icon on the Windows desktop).
https://github.com/IntelRealSense/librealsense/releases/tag/v2.50.0

Case closed due to no further comments received.


feature/CONTROLLER Update controller

Added DEBUG Mode

Added types for selector

Added types for actions

Added types for subscribe

Update README

Update reducer store data to next model { connected: boolean; actual: I; initial: I; }

Remove named export for controller

Add checking for all input data

Add utils (isGeneratorFunction, isString, isBoolean, isArray, isObject)

Simplify record for useEffect in useReducerSubscribe and useSubscribe

Update documentation

Add comments

Create example

Update README.md (Changed examples, Describe API)

Update npm ignore

Create todo.md

Update tsconfig

Create different actions (all,actual,initial,connected)


Open selected tab via extension API

Currently, we have an API to close a tab with vscode.window.tabGroups.close(tab)
https://github.com/microsoft/vscode/blob/5e0c49cc9ece55017822d18720990be105412760/src/vs/workbench/api/common/extHostEditorTabs.ts#L250
Could be useful to also have a select/makeActive method on either
A) ExtHostEditorTabs to remain consistent with close
or
B) ExtHostEditorTabGroup as it's each TabGroup's responsibility to have its own active tab (as far as I can see).

A potential use case is described in this discussion https://github.com/microsoft/vscode-discussions/discussions/683 where a tab needs to be selected before running commands like workbench.action.closeEditorsToTheLeft
I'll be happy to draft a PR if the feature is approved.
cc @lramos15

I think you will find that open is a lot more complex than it seems, especially with custom editors but if you'd like to give it a try feel free!

This feature request is now a candidate for our backlog. The community has 60 days to upvote the issue. If it receives 20 upvotes we will move it to our backlog. If not, we will close it. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

Now I don't remember if I had an idea when I offered myself to draft a PR, but if you say it's more complex than it seems... probably I did not have any idea :D
I'll have a look and get back if I find something, thanks for the reply!

I would love to have a way to "select"/"activate" an existing tab from the tabs. @lramos15 Why would it be more complex? VS Code already does the work when a user selects a tab, wouldn't it be piggybacking on that?

I would love to have a way to "select"/"activate" an existing tab from the tabs. @lramos15 Why would it be more complex? VS Code already does the work when a user selects a tab, wouldn't it be piggybacking on that?

Selecting / activating a tab is probably simple since the tab already exists. It's more about taking some input that a user constructed and being able to open it. Some URIs are kind of arbitrary and not real editors behind the scenes so they cannot easily be opened but can be represented as a tab (take webviews, or the extension views as an example). My guess is open would probably support a subset of inputs compared to the broader tabs API.

Indeed, the initial request is just about activating an existing tab, which would already help a lot!
Opening a new one can be an improvement but probably also on a separate task.

This feature request has not yet received the 20 community upvotes it takes to make to our backlog. 10 days to go. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!

:slightly_smiling_face: This feature request received a sufficient number of community upvotes and we moved it to our backlog. To learn more about how we handle feature requests, please see our documentation.
Happy Coding!


iPad support, fix issue where positions wouldn't update

In this PR:

Added an iPad storyboard, same structure as iPhone, but it uses modal popovers for the login view and device/device info views
Fixed an issue where the device positions wouldn't update; and (related)
Fixed an issue where markers would not be added to the map (seems to depend on speed of network connection, both issues fixed by using NSNotification to broadcast message saying device and/or positions changed and views must update)
Instead of relying on viewWillAppear to check the login state, use NSNotification to tell subscribers when the user logs in, or logs out
Fix an issue where the web socket would try to connect over and over again when the connection failed
Round course (heading) to nearest degree
Remove markers from map on iPad when the user logs out (possible privacy issue?)

(Also, I'm getting a warning saying that this PR can't be automatically merged. I think I did something funky with the upstream merge to my fork, which complicated things. Sorry. I will try to find out what did, and how to fix it.)

See #8 for a clean merge.


Can't make a block matrix from d-dimensional vectors

This code fails to run:
P = [ Pa ; Pb ; Pc ; Pd ]
where
Pa: ℝ^d
Pb: ℝ^d
Pc: ℝ^d
Pd: ℝ^d

This is related to the arithmetic dimension #4  since we need infer the dimension for P

This code runs now. Is the problem fixed?

I partially fixed it. The dimension can be expressed with symbols.
We can't figure out m+n+n  is the same as  n+n+m now


Reduce size, serve production build

Reduce the size of the Docker image by only holding the production build of the UI. The files are served by Caddy server. For bundling, the production build files are still in /ui/build

Will solve issue #12
With the previous Dockerfile and resulting image, it contains the whole node_modules directory and the development server will be started, even though the production build is the one that should be served if you want to use it independent from the bundle.


Converted no-single-declare-module from TSLint to ESLint

Continues the work from #653. Ref: #648

Happens on master too. I'll merge and ship this in the morning.

Actually, uhhh, it's running out of memory on the initial
I checked the overnight run and on-demand test runs from yesterday, and no problems. I suspect this is to do with the use of TS ASTs though, now that there are two of them in the pipeline.
Or it could be the number of eslint rules all up, and adding two more has pushed some leak over the edge.

I'm going to try rewriting this rule to use the eslint tree and look generally eslinty, and see if that helps the problem.


TestTraffic/virtualservice/shifting-80 flakes

https://prow.istio.io/view/gs/istio-prow/pr-logs/pull/istio_istio/32254/integ-pilot-multicluster-tests_istio/1383959079608651776
@howardjohn Do you have any clue which pr causes this

Not exactly, there is some more info in https://github.com/istio/istio/issues/32208 though. Lets discuss there


added HRNet+OCR, minor changes

Thank you for submitting your PR and helping us with GDL.
Please read the template below, fill it out as appropriate, and make additional changes to your code as needed.
Please feel free to submit your PR even if it doesn't satisfy all of the requirements below.
If you need assistance or review from a maintainer, add the label Status: Help Needed or Status: Review Needed respectively.
After review, a maintainer will add the label Status: Revision Needed if further work is required for the PR to be merged.
Description
HRNet+OCR model architecture.
Fixes #543
Type of change
What types of changes does your code introduce? Put an x in all the boxes that apply:

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Other

How Has This Been Tested?
If the added changes are already cover by tests, skip that section.
Otherwise, please describe tests that you added to the pytest codebase (if applicable).
minor tweak to test_models.py  to accommodate auxiliary output
Screenshots (if applicable):
Checklist:
If you're unsure about any of these, don't hesitate to ask. We're here to help!

[x] My code follows the code style of this project
[x] I have performed a self-review of my own code
[x] My PR has a descriptive title
[x] My code follows PEP8 (most of it)
[x] My code have the proper documentation in the code
[ ] I have made corresponding changes to the documentation (if applicable)
[ ] My changes generate no new errors
[x] My code is covered by the existing tests (if applicable)
[x] My code includes tests that show that my feature works
[ ] My PR passes Travis CI tests

If your PR does not fulfill all of the requirements in the checklist above, that's OK! If you need help, @-mention a maintainer and/or add the Status: Help Needed label.

@CharlesAuthier do you mean the architecture paper?

yeah with a little resume in the https://github.com/NRCan/geo-deep-learning/blob/develop/docs/source/model.rst doc


shell-init broken for both bash and zsh in 0.8.0

% echo $SHELL
/opt/local/bin/zsh
% echo $ZSH_VERSION
5.0.5
 % eval $(/opt/chefdk/bin/chef shell-init zsh)
zsh: parse error near `then'
%
...
bash-4.3$ echo $BASH_VERSION
4.3.42(1)-release
bash-4.3$ eval $(/opt/chefdk/bin/chef shell-init bash)
bash: syntax error near unexpected token `('
bash-4.3$

What is it actually printing? Perhaps there's some warning that's getting printed to the stdout stream or something? This works for me on zsh 5.0.5 and bash 3.2.57(1)-release

% /opt/chefdk/bin/chef shell-init zsh
export PATH="/opt/chefdk/bin:/Users/mkeisler/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/Users/mkeisler/bin:/Users/mkeisler/packer:/Users/mkeisler/.gem/ruby/2.2.2/bin:/Users/mkeisler/.rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/bin:/Users/mkeisler/.rubies/ruby-2.2.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:/opt/local/bin:/opt/local/sbin"
export GEM_ROOT="/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
export GEM_HOME="/Users/mkeisler/.chefdk/gem/ruby/2.1.0"
export GEM_PATH="/Users/mkeisler/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
function _chef() {

  local -a _1st_arguments
  _1st_arguments=(
      'exec:Runs the command in context of the embedded ruby'
      'env:Prints environment variables used by ChefDK'
      'gem:Runs the `gem` command in context of the embedded ruby'
      'generate:Generate a new app, cookbook, or component'
      'shell-init:Initialize your shell to use ChefDK as your primary ruby'
      'install:Install cookbooks from a Policyfile and generate a locked cookbook set'
      'update:Updates a Policyfile.lock.json with latest run_list and cookbooks'
      'push:Push a local policy lock to a policy group on the server'
      'push-archive:Push a policy archive to a policy group on the server'
      'show-policy:Show policyfile objects on you Chef Server'
      'diff:Generate an itemized diff of two Policyfile lock documents'
      'provision:Provision VMs and clusters via cookbook'
      'export:Export a policy lock as a Chef Zero code repo'
      'clean-policy-revisions:Delete unused policy revisions on the server'
      'clean-policy-cookbooks:Delete unused policyfile cookbooks on the server'
      'delete-policy-group:Delete a policy group on the server'
      'delete-policy:Delete all revisions of a policy on the server'
      'undelete:Undo a delete command'
      'verify:Test the embedded ChefDK applications'
    )

  _arguments \
    '(-v --version)'{-v,--version}'[version information]' \
    '*:: :->subcmds' && return 0

  if (( CURRENT == 1 )); then
    _describe -t commands "chef subcommand" _1st_arguments
    return
  fi
}

compdef _chef chef
% /opt/chefdk/bin/chef shell-init bash
export PATH="/opt/chefdk/bin:/Users/mkeisler/.chefdk/gem/ruby/2.1.0/bin:/opt/chefdk/embedded/bin:/Users/mkeisler/bin:/Users/mkeisler/packer:/Users/mkeisler/.gem/ruby/2.2.2/bin:/Users/mkeisler/.rubies/ruby-2.2.2/lib/ruby/gems/2.2.0/bin:/Users/mkeisler/.rubies/ruby-2.2.2/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:/opt/local/bin:/opt/local/sbin"
export GEM_ROOT="/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
export GEM_HOME="/Users/mkeisler/.chefdk/gem/ruby/2.1.0"
export GEM_PATH="/Users/mkeisler/.chefdk/gem/ruby/2.1.0:/opt/chefdk/embedded/lib/ruby/gems/2.1.0"
_chef_comp() {
    local COMMANDS="exec env gem generate shell-init install update push push-archive show-policy diff provision export clean-policy-revisions clean-policy-cookbooks delete-policy-group delete-policy undelete verify"
    COMPREPLY=($(compgen -W "$COMMANDS" -- ${COMP_WORDS[COMP_CWORD]} ))
}
complete -F _chef_comp chef

This seems to get rid of the zsh error:
--- chef_orig.zsh       2015-09-28 12:38:52.000000000 -0500
+++ chef.zsh    2015-09-28 12:35:03.000000000 -0500
@@ -31,7 +31,7 @@
     '(-v --version)'{-v,--version}'[version information]' \
     '*:: :->subcmds' && return 0

-  if (( CURRENT == 1 )); then
+  if [ (( CURRENT == 1 )) ]; then
     _describe -t commands "chef subcommand" _1st_arguments
     return
   fi

You need quotes around the eval'd string for it to work correctly, as shown in the chef shell-init -h output, i.e. do eval "$(chef shell-init SHELL_NAME)" and don't do eval $(chef shell-init SHELL_NAME)

doh.  didn't need that for 0.7.0


Four oh four

Fix #14
Test URLs:

Before: https://main--elixirsolutions--hlxsites.hlx.live/
After: https://four-oh-four--elixirsolutions--hlxsites.hlx.live/

404 can't be check by psi, see https://four-oh-four--elixirsolutions--hlxsites.hlx.live/error


Spatial navigation

This change was kindly provided by @ianvollick.
To start Chrome with SpatNav enabled:
/Applications/Google\ Chrome\ Canary.app/Contents/MacOS/Google\ Chrome\ Canary --enable-spatial-navigation --enable-features=FocuslessSpatialNavigation,KeyboardFocusableScrollers,Vid
eoAutoFullscreen --enable-blink-features=FocuslessSpatialNavigation,KeyboardFocusableScrollers,VideoAutoFullscreen http://localhost:8080

Arrow keys now navigate the “interest”.
Worth testing the app a bit more with this navigational mode. The home screen is a bit odd, too.

Closing in favour of https://github.com/GoogleChromeLabs/proxx/pull/473


[release-1.23] manual cherry-picks

Please provide a description of this PR:

manual cherry pick https://github.com/istio/istio/pull/52680
manual cherry pick https://github.com/istio/istio/pull/52612
minimal changes required to tests to allow passing ds ambient tests

/test integ-ambient-dual

@ilrudie: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio_release-1.23
c9b20ed8e327292d609fbdf414c608d302e4a654
link
true
/test unit-tests-arm64

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

@ilrudie: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests-arm64_istio_release-1.23
c9b20ed8e327292d609fbdf414c608d302e4a654
link
true
/test unit-tests-arm64

unit-tests_istio_release-1.23
c9b20ed8e327292d609fbdf414c608d302e4a654
link
true
/test unit-tests

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

unit tests are failing because #52365 was not cherry-picked

/test integ-ambient-dual


Build wheels for Python 3.11

We have tabmat wheels for 3.11.

This fails to build as we are building  scipy from source in win32. I would propose to skip *-win32.
              Collecting scipy>=1.3.2
                Downloading scipy-1.10.1.tar.gz (42.4 MB)


Update atom to 1.16.0

After making all changes to the cask:

[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.
[x] The commit message includes the cask’s name and version.

Thank you for the contribution. It was merged directly as 15d02aa7b7a0693c01daf4336ea6b5ab5af6bac1 to keep commit history cleaner. Your contribution is still credited to you.


Docker container support

Building and running in docker would help speed up development and adoption with new developers. In addition to allowing fast deployment to kubernetes clusters.
I am working on getting a dockerfile working properly with G3 but in case someone already has one I wanted to create an issue.
If no one has one I will submit a PR once it’s done.

We didn't have one yet that can be used with official Docker, so a PR will be welcomed by us. I'm not quite familiar with Docker, we need to discuss further once submitted.

No problem. I will work on getting a docker PR for you then we can figure out how best to integrate. Thanks!


Resources are not supposed to have Resource in the module name

Thanks Travis. Do you have a better name for this project?

PackageManagement

This name is already taken.  PackageManagement (a.k.a OneGet)  is the package manager's aggregator, it's a Windows inbox component and upgrade-able from PowerShellgallery.com. it deals with package discovery and installation etc.
Here we are dealing with the package provider's DSC resources. So PackageManagement may not be a good name either.

Just to add an update here, the naming convention is discussed here: https://github.com/PowerShell/PowerShell-RFC/issues/10 and the DSC community calls seems to be leaning towards _ModuleName_Dsc
That would give, IMO, PackageManagementDsc
At least when converted to an HQRM resource.

My team has been attempting to use this resource and have run into a few bugs that we are fixing. So we are planning on fixing this as well as making the changes to bring it up to HQRM. So once that is done it might be worth renaming this resource at that point.

Can you please send Pull Request for a few bugs you are fixing so that we can integrate them?
Also we are considering merge this module to the PackageManagement, therefore won't have naming problem.

Hi @jianyunt - sure thing. I'll get the fixes up to you guys once we figure out a solution - the main problem we have is that registering a package source using DSC registers under the Local System account (I think) rather than for a specific user. This might be a case of running the LCM under a different context (using PSDscRunAsCredential), but that isn't available for WMF4.0.

This issue was moved to OneGet/oneget#262


Multipart communication protocol examples do not always contain a "@context" in their header

Is there any reason that the following header for the DescriptionResponseMessage does NOT contain the typical JSON-LD context?
I thought this was mandatory:
https://github.com/International-Data-Spaces-Association/IDS-G/blob/main/Communication/protocols/multipart/README.md
--msgpart
Content-Disposition: form-data; name="header"
Content-Type: application/json
Content-Length: 409

{
  "@type" : "ids:DescriptionResponseMessage",
  "issued" : {
      "@value" : "2019-12-21T13:11:14.596+02:00",
      "@type" : "http://www.w3.org/2001/XMLSchema#dateTimeStamp"
    },
  "issuerConnector" : {"@id" : "https://broker.ids.isst.fraunhofer.de/" },
  "correlationMessage" : {"@id" : "https://w3id.org/idsa/autogen/selfDescriptionRequest/b0731661-7df1-43e5-bb75-50f0709f31c9" },
  "modelVersion" : "4.1.0",
  "@id" : "https://w3id.org/idsa/autogen/selfDescriptionResponse/851e3218-2bb7-45f9-8795-7f99c1f19680"
}

There is at least a second example with the same missing context.

Hello @matgnt,
thanks for pointing this out! Even though JSON-LD can omit the context element if only full IRIs are used, some of the examples indeed use prefixes or base attributes and still miss the context declaration. I'll see that I will prepare a fix in the next days.

closed by #49


fix(helpers/multiline): fix force flushing with multiline

I found an issue with multiline and force flushing. If forcePeriod is low, then sometimes logs buffer (data) have been pushed without proper multiline detection (just force flushed).
In order to fix that issue, I changed the forceFlusher to be oriented on changes inside splitFunc. It uses two variables to track changes:

lastDataChange which keeps timestamp of last change (flush, new data, basically change in data)
previousDataLength which keep length of data with -1 as special variable (which means that data have been flushed, what prevents to force flush in case data changed but it length does not)

The splitFuncs are rather complicated, so I'm mostly relaying on unit tests

In order to reproduce the issue which started all of the changes
main.py
import time

LOG='Mar 14 22:00:14 ip-11-11-11-111 sadd[25288]: asdasdasdfadfdsgasdgb asd asd asd sad asd asd asd as s'

with open('test.log', 'w') as f:
    for i in range(10):
        for i in range(5):
            f.write(LOG)
            f.write('\n')
        f.flush()
        time.sleep(0.3)

config.yaml
receivers:
  filelog/syslog:
    start_at: beginning
    include_file_path_resolved: true
    include_file_name: false
    force_flush_period: 50ms
    max_log_size: 32MiB  # increase max_log_size to scrape long lines
    include:
      - ./test.log
    multiline:
      line_start_pattern: \w{3}\s+\d{1,2} \d{2}:\d{2}:\d{2}
    operators:
      - type: regex_parser
        regex: (?P<timestamp>\w{3}\s+\d{1,2} \d{2}:\d{2}:\d{2})
        preserve_to: $$body.log
        timestamp:
          parse_from: $$body.timestamp
          layout_type: gotime
          layout: Jan _2 15:04:05
      - type: restructure
        ops:
          - move:
              from: $$body.log
              to: $$body
    attributes:
      _a: syslog
      _b: syslog
      c: syslog
    resource:
      _d: otelcol
      e: otelcol
      f: otelcol
      g: otelcol
      h: otelcol
exporters:
  logging:
    logLevel: debug
service:
  pipelines:
    logs:
      receivers:
        - filelog/syslog
      exporters:
        - logging

Windows tests are failing due to time resolution issue. I'm thinking about another approach than reading from static string (as it not fully behaves like reading file)

@djaglowski I made some iteration over fixing/improving tests and not sure about something.
Should multiline_test.go be strictly unit tests or kind of integration tests. Strictly unit tests can be counterintuitive as now sometimes we do not expect all logs to be tokenized. In unit tests, if we got EOF and we didn't flushed everything it's fine.
This is fine, because if using file log receiver, after getting EOF, we are going to recreate scanner in some time and data will be flushed (as force flusher keeps state).
I have fixed myself on creating tests to be use case oriented, but it require them to be more like integration tests and then more complicated.

Also I refactored code and simplified the logic

@djaglowski I made some iteration over fixing/improving tests and not sure about something.
Should multiline_test.go be strictly unit tests or kind of integration tests. Strictly unit tests can be counterintuitive (but simple) as now sometimes we do not expect all logs to be tokenized. In unit tests, if we got EOF and we didn't flushed everything it's fine.
This is fine, because if using file log receiver, after getting EOF, we are going to recreate scanner in some time and data will be flushed (as force flusher keeps state).
I have fixed myself on creating tests to be use case oriented, but it require them to be more like integration tests and then more complicated. Overall I'm not sure if this is a good direction.

I'm in favor of writing tests that are more complex if that's what's necessary to validate the behavior.

I'm in favor of writing tests that are more complex if that's what's necessary to validate the behavior.

Bugs which I found are covered now, and I hope that they are rather understandable with comments
I consider work on this PR as finished, but have in mind some next improvements:

refactor flushAtEOF to be made in wrapper manner as force flusher now
integration tests for filelog input

@djaglowski WDYT?

@sumo-drosiek, thanks for your work on this. I apologize for the slow review. I'm taking this very cautiously because I have yet to master this area of the codebase, and because I haven't established confidence that we previously had sufficient test coverage to ensure no regressions. Taking another look now.

@sumo-drosiek, thanks for your work on this. I apologize for the slow review. I'm taking this very cautiously because I have yet to master this area of the codebase, and because I haven't established confidence that we previously had sufficient test coverage to ensure no regressions. Taking another look now.

@djaglowski This is completely fine. It took me time to get some understanding too. Also I performed some additional runs with custom builds to have more confidence that it behaves how I expect it

Create a custom implementation of io.Reader that behaves predictably in our test cases. Probably it takes a slice of timestamps and corresponding []byte that are written at those times.

That is similar to what I was thinking of.
I created an issue so we can track further changes there: #448


patch_open_code doesn't seem to work in Python 3.12

I have a program that imports Python modules dynamically and I use patch_open_code in my tests. I tried running it under Python 3.12 just for fun and found the tests are not working.
For example, this works in e.g. 3.11:
import importlib.util
from contextlib import redirect_stdout
from io import StringIO

import pytest
from pyfakefs.fake_filesystem_unittest import Patcher, PatchMode

@pytest.fixture
def fffs():
    with Patcher(patch_open_code=PatchMode.AUTO) as patcher:
        yield patcher.fs

def import_foo():
    spec = importlib.util.spec_from_file_location("bar", "/foo/bar.py")
    mod = importlib.util.module_from_spec(spec)
    spec.loader.exec_module(mod)

def test_foo(fffs):
    fffs.create_file("/foo/bar.py", contents="print('hello')")
    with redirect_stdout(StringIO()) as stdout:
        import_foo()
    assert stdout.getvalue() == "hello\n"

The test passes alright.
E   FileNotFoundError: [Errno 2] No such file or directory: '/foo/bar.py'

<frozen importlib._bootstrap_external>:1185: FileNotFoundError

Tested under Python 3.11.6 and 3.12.0, respectively, with pytest 7.4.0 and pyfakefs 5.2.4.

Thanks, I will have a look at it. It may be related to #836, which I hadn't yet managed to fix yet. Now that 3.12 is released, this gets a bit more important...

Let me know what I can do to help. For example, it doesn't look like this use case (i.e. importing modules) is covered with tests. I could open a PR to add the above code to pyfakefs. What are your thoughts on this?

Thanks - I can basically just use your code as a test, and I can reproduce the problem.
I think I already found a trivial fix, that hopefully also fixes the other problem.

I couldn't get it to work under Windows yet (only in the CI, locally in works), but it helped me to fix the other problem with patching open (this was indeed a trivial fix).
For some reason, your test works under Windows only with Python 3.9, not with 3.8 and 3.10-3.12. I suppose that it didn't work before either, at least in the CI (still have no idea what is different from my local setup). I will have another go some time later this week...

Should be fixed in main now - please check!

New version with the fix is released.

@mrbean-bremen thanks for looking into this. I can confirm it's working 👍


Fix for Email Button, Added Tooltips on Buttons, Added Active CSS Class to Button Itself, and More

First off, I'm not sure why your repository has a different version of share-button.js than the release does, so I cleaned this up in my repository.  I don't want to create a pull request since it will complicate your branch.
So, to illustrate my changes, I committed your release version, and then I inserted my changes into it.
https://github.com/own3mall/share-button/commit/1793428f4af63ec7ce44486da6c0cc4c12c9ac88
I fixed the email button not working, added an active CSS class to the share button itself, made it so that clicking on a social media button doesn't toggle the share button close event, and added tooltips to the social media buttons.  Hope this helps if any of my changes might make it into your branch.
Consider this an issue report for all of the things listed above except I've already fixed them in my own repo.

Downloaded your file, but the button is NOT displaying in Firefox nor Safari on El Capitan... :/
`  new share-button();

Uh what are you talking about?  The code you posted has nothing to do with how you're supported to use the share button... you need to load it Javascript side.

Put this somewhere on the page in the HTML:
<share-button></share-button>
Then in a Javascript script:
new ShareButton({ 				optionsHERE 			});

Yes, and none of ´em are working for me! Tried a couple diff solution... Still no share button or network is displayed! Please see my https://github.com/carrot/share-button/issues/302

You're right!  This share-button plugin is poorly written.  I looked through the code, and it is using questionable CSS for calculations and complicated markup when it can be a lot simpler.  As a result, a similar plugin was created which should provide the same functionality share-button provides in the form of a much simpler jQuery plugin.
Please see here:
https://github.com/earnolmartin/jquery_social_media_share_plugin
Could you help me test this version?  It should be in a decent state at the moment, and it works in IE9-11+, Firefox, Chrome, and Safari.


Support f16 and f128

Thanks for filing a feature request! Please fill out the TODOs below.
Feature
Add support for 16-bit and 128-bit IEEE floating point numbers.
Benefit
This will allow using these types with rustc_codegen_clif, as described at https://github.com/rust-lang/rustc_codegen_cranelift/issues/1461
Implementation
Unsure
Alternatives
Unsure, maybe it would be possible to stub out these types if adding them is difficult.

Adding the types is pretty easy, I think, and extending CLIF floating-point instructions to allow the new types is also pretty easy. Successfully compiling anything that uses the types is the hard part, I imagine.
I think the places to add the types are:

https://github.com/bytecodealliance/wasmtime/blob/e6f9ca5efa0c4bf59c9cf133d9abeaab63ec07bb/cranelift/codegen/meta/src/cdsl/typevar.rs#L646
https://github.com/bytecodealliance/wasmtime/blob/e6f9ca5efa0c4bf59c9cf133d9abeaab63ec07bb/cranelift/codegen/meta/src/shared/types.rs#L44-L73
various places in https://github.com/bytecodealliance/wasmtime/blob/e6f9ca5efa0c4bf59c9cf133d9abeaab63ec07bb/cranelift/codegen/src/ir/types.rs

Once the tests are passing again after that, I think you'll have a compiler that will accept f16/f128 instructions. But if you use them, then it will fail later: during lowering on all backends; in the interpreter; in compiletests and runtests; and in fuzzing.
I think this is a fairly large project, but if rustc needs these types, I think it's reasonable to add the types in one PR and then work on adding implementations for them everywhere over time.


chore: fix lib.rs code to make it Leptos v0.1 compatible

changed cargo.toml to leptos v0.1
ran cargo update
fixed lib.rs code to make it leptos v0.1 compatible

Thanks!


Issues installing npm packages - docusaurus version

When following the steps to start development, I get a hiccup at yarn. See below,
(oss) ~/Documents/git/ossinsight (main) $ yarn
yarn install v1.22.17
warning ../../../package.json: No license field
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
warning octokit > @octokit/oauth-app > aws-lambda > aws-sdk ><EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
warning octokit > @octokit/oauth-app > aws-lambda > aws-sdk > url ><EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
[2/4] 🚚  Fetching packages...
error<EMAIL_ADDRESS>The engine "node" is incompatible with this module. Expected version ">=16.14". Got "16.13.0"
error Found incompatible module.
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

I tried yarn install --ignore-engines and that worked fine:
(oss) ~/Documents/git/ossinsight (main) $ yarn install --ignore-engines
yarn install v1.22.17
warning ../../../package.json: No license field
info No lockfile found.
warning package-lock.json found. Your project contains lock files generated by tools other than Yarn. It is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files. To clear this warning, remove package-lock.json.
[1/4] 🔍  Resolving packages...
warning octokit > @octokit/oauth-app > aws-lambda > aws-sdk ><EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
warning octokit > @octokit/oauth-app > aws-lambda > aws-sdk > url ><EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
[2/4] 🚚  Fetching packages...
[3/4] 🔗  Linking dependencies...
warning "@docusaurus/core ><EMAIL_ADDRESS>has unmet peer dependency "react-loadable@*".
warning "@docusaurus/core > @docusaurus/utils ><EMAIL_ADDRESS>has incorrect peer dependency<EMAIL_ADDRESS>warning "@emotion/react > @emotion/babel-plugin ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning "@docusaurus/theme-search-algolia ><EMAIL_ADDRESS>has unmet peer dependency "@types/react@>= 16.8.0 < 19.0.0".
warning "@emotion/react ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency<EMAIL_ADDRESS>warning " ><EMAIL_ADDRESS>has unmet peer dependency "tslib@*".
warning " ><EMAIL_ADDRESS>has unmet peer dependency "<EMAIL_ADDRESS>[4/4] 🔨  Building fresh packages...
success Saved lockfile.
$ node prefetch.mjs && node _dirty_mutate.mjs
✨  Done in 63.39s.

I don't have much web development background, so I don't know how you want to tackle this: fixing the docusaurus version, updating the yarn on the documentation, or adding a note for yarn that fails to try this out. So just creating this so that you are aware of it.

We plan to add docker compose support to make it easier for developers to build a development environment

We plan to add docker compose support to make it easier for developers to build a development environment

Makes sense. Feel free to close this issue then

Expected version ">=16.14". Got "16.13.0"
@DidierRLopes  try node v16.14+

This engine version is required by a docusaurus plugin @docusaurus/plugin-client-redirects.
It would be fine if you just upgrade your nodejs to to required version

In fact, npm downloaded a higher version of plugin '@docusaurus/plugin-client-redirects', fixed in #447


[bug] inference.py mkdir

In inference.py def merge(), it uses os.mkdir()  to create intermediate folders, which python doesnt like.
use os.makedirs() instead.
https://github.com/modal-labs/llama-finetuning/blob/e675b16b902cef931bbf6490f960b228357d1495/inference.py#L20C1-L21C1

Thanks @leehanchung, closed by https://github.com/modal-labs/llm-finetuning/commit/562e6a4d5a47c241d58016896ad29bfb2e46ab0b


[stress] Stress deployment script should let you deploy to a specific namespace via a switch

Deploying to a separate namespace is a useful thing to do for one-offs or other experiments - for instance, the Python team (via @l0lawrence) created separate namespaces for different test scenarios when doing ad-hoc testing.
This feature is so intuitive that we actually thought we already had this but apparently it wasn't hooked up. @benbp would like to make it clear that this is not a "bug", but merely a feature gap.

Somehow we all (i.e. me) collectively forgot that this does exist and that we use it all the time.

For reference: https://github.com/Azure/azure-sdk-tools/blob/main/eng/common/scripts/stress-testing/deploy-stress-tests.ps1#L20

I trusted you and it was clearly unwarranted.


Implement the fallback mechanism for themes

What is the motivation/use case for changing the behavior or adding a new feature?

This is a requirement from our partner Vendic. I believe it's a requirement about theme fallback as it's available in Magento:

we have a custom theme
we have a default theme
components' not present in the custom are loaded from the default

So this is kind of inheritance intended to simplify the themes development and updateability.

Acceptance criteria

[ ] There will be a basic theme inherited by the default in the custom

I can take care of it but maybe we should do it during implementation of new default theme? RIght now it'll require to include all packaes that current default theme needs along with this fallback. It'll be much easier if we'll have this mechanism in mind while creating this new theme.

New theme z good chance to do it

@filrak and @pkarw hi - is there any news or will this really be implemented with the new theme? This is currently a small blocker in our implementation :-(

@dlandmann it will be implemented in new theme but you can easily have such capabilities just by using webpack and importing files from old theme into new one.
Please let me know in which way it's blocking you (what exactly you need to achieve) and i can propose a working solution for you.

Hey! As Filip said - I'd recommend you to start with your themes/{theme}/router.ts and just import the things you haven't overridden in the theme - directly from default. Take a look at how default theme is re-using some parts of default-amp (only the Product and Category pages for some specific URLs).
Another option is to use webpack aliases to virtually switch the components being used - kind of fallback can be implemented using this method

Very good! Thx for the suggestion!
The idea with the Webpack Aliases is interesting. I'll try that. Is there an example somewhere?
We have (in Magento) a main theme and derived from it a subtheme which has several "subsubthemes" ...

@filrak and @pkarw -  thanks for the ideas. we have found a very smart and nice and super simple Solution.
FYI -
We solved the "problem" that way. The Key is npm-config!
We start the build or dev process by setting two env variables. Client (mandant1, mandant2 etc.) and Environment. (development, production), Due to the inheritance of the config-files (npm-config), only the individual values have to be set for the clients and can then be easily stored in the pages / components, e.g. be queried via "v-if =" etc.
Overview Configfiles in / config, sorted by load order:

default.json // core file
local.json // our global settings
local-mandant.json // Change according to client
local-environment-mandant.json // Changes according to environment

This works very well in our case, as we do not adjust very many values from client to client.
We can use it to easily implement all our client pages with one theme!

Done with https://www.yireo.com/blog/2019-11-19-vue-storefront-theme-inheritance


How do I choose custom port to run server?

const simples = require('simples');

const server = simples(); // Your server is set up on port 80

// Serve static files located in the folder "static"
server.serve('static');

I wish to run the server on my specific port number. How do I do so?

If you want to use another port just use const server = simples(12345);, instead of 12345 you can put any valid port number. By the way, now I'm developing version 0.9.0 which has some changes related to the static files serving, please read the github repo documentation (not npm).


Unhanded rejection click on links.js example

Hi,
I need help. I'm trying to run the links.js example and I cannot get it to run. I'm getting the following error:
`horseman using PhantomJS from $PATH +0ms
horseman .setup() creating phantom instance 1 +15ms
horseman phantom created +534ms
horseman phantom version 2.1.1 +17ms
horseman page created +10ms
horseman phantomjs onLoadFinished triggered success NaN +16ms
horseman injected jQuery +35ms
horseman .userAgent() set Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0 +25ms
horseman .open() http://www.google.com +1ms
horseman phantomjs onLoadFinished triggered success 1 +2s
horseman injected jQuery +15ms
horseman .type() input[name='q'] horseman undefined +5ms
horseman .keyboardEvent() keypress h null +32ms
horseman .keyboardEvent() keypress o null +14ms
horseman .keyboardEvent() keypress r null +9ms
horseman .keyboardEvent() keypress s null +6ms
horseman .keyboardEvent() keypress e null +5ms
horseman .keyboardEvent() keypress m null +10ms
horseman .keyboardEvent() keypress a null +9ms
horseman .keyboardEvent() keypress n null +12ms
horseman .click() button:contains('Google Search') +2ms
0
horseman .close(). +13ms
Unhandled rejection click
evaluatePage
global code
evaluateJavaScript@[native code]
evaluate@phantomjs://platform/webpage.js:390:39
phantomjs://code/bridge.js:121:61
at /Users/mariobessa/Development/temp/horseman_test/node_modules/node-horseman/lib/actions.js:989:36
at tryCatcher (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/util.js:16:23)
at Function.Promise.fromNode.Promise.fromCallback (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/promise.js:179:30)
at Horseman. (/Users/mariobessa/Development/temp/horseman_test/node_modules/node-horseman/lib/actions.js:987:29)
at Horseman.tryCatcher (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/promise.js:510:31)
at Promise._settlePromise (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/promise.js:567:18)
at Promise._settlePromiseCtx (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/promise.js:604:10)
at Async._drainQueue (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/async.js:138:12)
at Async._drainQueues (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/Users/mariobessa/Development/temp/horseman_test/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:649:20)
at tryOnImmediate (timers.js:622:5)
at processImmediate [as _immediateCallback] (timers.js:594:5)`
The only difference between the example that I'm running and the one in this repository is that I'm passing PhantomJS path as as a configuration option when i'm creating a new instance of Horseman.
I'm running Node v6.9.4 on MacOS X 10.11.6 El Capitan.
Thanks in advance!

It is because the Google page changed and broke the script.


Proxy under Windows.

Sorry for asking this question again and again.
I have tried the following(enable_global_proxy.bat):
netsh winhttp set proxy proxy-server="socks=<IP_ADDRESS>:2000"
setx all_proxy socks5h://<IP_ADDRESS>:2000/
setx https_proxy http://<IP_ADDRESS>:2001/
setx http_proxy http://<IP_ADDRESS>:2001/

This USED to work about a month ago. But for now it does'nt work.
vcpkg strucks at the first invoke of install, when downloading
https://github.com/PowerShell/PowerShell/releases/download/v6.2.1/PowerShell-6.2.1-win-x86.zip
MyCode(Dockerfile):
FROM mcr.microsoft.com/windows/servercore:1809-amd64

# Choco
RUN powershell -ExecutionPolicy Unrestricted -Command $env:chocolateyUseWindowsCompression = 'true'; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

# Download the Build Tools bootstrapper.
RUN mkdir C:\\TEMP
COPY ./vs_community__1592069024.1584505823.exe C:/TEMP

# Install Build Tools excluding workloads and components with known issues.
RUN C:/TEMP/vs_community__1592069024.1584505823.exe --quiet --wait --norestart --nocache \
    --add Microsoft.VisualStudio.Workload.NativeDesktop \
    --add Microsoft.VisualStudio.Component.VC.CLI.Support \
    --add Microsoft.VisualStudio.Component.VC.ATLMFC \
    --add Microsoft.VisualStudio.Component.VC.ATL \
	--add Microsoft.VisualStudio.Component.Windows10SDK.18362 \
    --add Microsoft.Component.VC.Runtime.UCRTSDK \
	--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64	\
 || IF "%ERRORLEVEL%"=="3010" EXIT 0

# Enable Proxy
COPY ./proxy C:/proxy
RUN C:/proxy/enable_global_proxy

# Msys2
RUN choco install -y --accept-license msys2 --params "/NoUpdate /InstallDir:C:/msys64" || exit 0
RUN cd C:/Users/Administrator/AppData/Local/Temp\
  && del /S /Q *\
  && setx PATH "C:/msys64/usr/bin;%PATH%"
RUN pacman -S --noconfirm vim unzip nasm yasm

# Python3
RUN choco install -y --accept-license python3 --params "/InstallDir:C:\python3"\
  && cd C:/Users/Administrator/AppData/Local/Temp\
  && del /S /Q *\
  && cp C:/python3/python.exe C:/python3/python3.exe

# Git
RUN choco install -y --accept-license git --params "/GitOnlyOnPath /NoShellIntegration /NoGuiHereIntegration /NoCredentialManager"\
  && cd C:/Users/Administrator/AppData/Local/Temp\
  && del /S /Q *

# CMake
RUN choco install --force -y --accept-license cmake --installargs "ADD_CMAKE_TO_PATH=System DESKTOP_SHORTCUT_REQUESTED=0 ALLUSERS=1"\
  && cd C:/Users/Administrator/AppData/Local/Temp\
  && del /S /Q *

# vcpkg
WORKDIR C:/
RUN git clone https://github.com/microsoft/vcpkg\
  && cd vcpkg\
  && bootstrap-vcpkg.bat\
  && vcpkg integrate install

ENV VCPKG_CMAKE_TOOLCHAIN_FILE C:/vcpkg/scripts/buildsystems/vcpkg.cmake
ENV VCPKG_ROOT C:/vcpkg

# common libs
WORKDIR C:/vcpkg
RUN vcpkg --triplet x64-windows install --x-use-aria2 --clean-after-build\
    boost

RUN vcpkg --triplet x64-windows install --clean-after-build\
    openssl

RUN vcpkg --triplet x64-windows install --clean-after-build\
	spdlog

RUN vcpkg --triplet x64-windows install --clean-after-build\
	tbb yaml-cpp gtest range-v3 fmt date scnlib

RUN vcpkg --triplet x64-windows install --clean-after-build\
    --head cppzmq cli11

RUN C:/proxy/disable_global_proxy

# Clear C:/TEMP, C:\Users\Administrator\AppData\Local\Temp
WORKDIR C:/TEMP
RUN del /S /Q *

WORKDIR C:/
ADD ./call_vcvars64.bat C:/

# some tools
COPY tools/ C:/tools
RUN setx PATH "C:/tools;%PATH%"

ENTRYPOINT ["CMD.exe", "/S", "/C", "call C:/call_vcvars64.bat && powershell.exe -NoLogo -ExecutionPolicy Bypass"]

CMD ["powershell.exe", "-NoLogo", "-ExecutionPolicy", "Bypass"]

https://docs.docker.com/config/daemon/systemd/

setx https_proxy http://<IP_ADDRESS>:2001/
setx http_proxy http://<IP_ADDRESS>:2001/

setx https_proxy http**S**://<IP_ADDRESS>:2001/ ?

https://docs.docker.com/config/daemon/systemd/

setx https_proxy http://<IP_ADDRESS>:2001/
setx http_proxy http://<IP_ADDRESS>:2001/

setx https_proxy http**S**://<IP_ADDRESS>:2001/ ?

for the http schema:
I don't have a https proxy(which needs certificates).
I don't know if it is necessary to use a https proxy to access a https site. But I can use a http proxy to access https site in chrome.(And, you know, the proxy i'm using in chrome is just the one I set in this script.). So maybe it is not a problem.
I don't know much about how docker manager its network access.
I only know the proxy setting of docker daemon effects how docker pulls images,
Does it still effect how its container accessing network (by using WinHTTP)?

Maybe the script enabling proxy never works.
The reason I build image succeed a month ago is maybe just because I can access github without proxy at that time.

And finally I turn to another solution
To avoid vcpkg to download these and fails, download/install them manually is a better solution.
All the tools are listed in scripts/vcpkgTools.xml
And by just set environment variable VCPKG_FORCE_SYSTEM_BINARIES, Pre-download/install all the tools that vcpkg needs is possible. https://github.com/microsoft/vcpkg/issues/4501#issuecomment-507882978


Add test for duplicate path url but different methods

Test for issue https://github.com/sanic-org/sanic-routing/issues/43

@ahopkins Let me know if this is good

For the routes is it worth marking which methods they support and then when searching for paths to limit the search for current method only?
In the test case above I was seeing a  matcher overtake an  even though the  wasn't supposed to respond for the method being requested.

I am not sure I understand the question. The issue is (as you said) that the last route definition is taking priority for the methods

Replaced by #45


Doorbell notification support

It appears that the equivalent HASS plugin has figured out doorbell press notifications, would it be possible to add this so that we can get doorbell notifications? It should be possible to use HomePods as chimes if this can be implemented
https://github.com/XaF/qolsysgw/issues/102

Hi @ifeign,
I added the Doorbell sensor accessory to version 0.5.0-beta.0
I don't own a IQ Doorbell sensor myself, but I was able to add a simulated doorbell accessory to home app and get iOS notification on doorbell ring.
Please let me know if it works on your side.

Oh wow I’m a fool and missed that this requires the IQ sensor. I thought this would work with my ADC-VDB770. Guess I’ll pick up one of these sensors, thanks for adding this!

@ifeign
I just saw your new reply.
I don't own an HomePod yet.
Doorbell accessory doesn't look like its adding an accessory in Home App. I see the doorbell accessory in Homebridge but only doorbell notifications in Home App.
Was the example shown from your ADC-VDB770 accessory?
I will try to find out differences between doorbell accessory and video doorbell accessory.

@ifeign I just saw your new reply. I don't own an HomePod yet. Doorbell accessory doesn't look like its adding an accessory in Home App. I see the doorbell accessory in Homebridge but only doorbell notifications in Home App.
Was the example shown from your ADC-VDB770 accessory?
I will try to find out differences between doorbell accessory and video doorbell accessory.

The example is just a generic screenshot from an article on HomeKit doorbells

Just a couple added notes. The IQ Doorbell sensor is likely just a regular sensor configured to detect when the circuit for a door bell is completed, kind of like a water sensor. @EHylands I assume you simulated it by just using a regular contact sensor, and telling the IQ panel that it is a doorbell sensor? If not that should be possible to basically see it end to end, it is going to be a normally open sensor and when the contact is closed is the button press.
Due to how it works and how most doorbell cameras work, the sensor is likely not compatible with using a doorbell camera unless the camera is also using a power kit that bypasses the physical chime until the button is pressed. @ifeign if your VDB770 doesn't have the power kit you will likely need one for this to work.
I'll be curious to see how well this works. I've been using a IQ Remote to know when the doorbell is pressed in another part of the house.

Just a couple added notes. The IQ Doorbell sensor is likely just a regular sensor configured to detect when the circuit for a door bell is completed, kind of like a water sensor. @EHylands I assume you simulated it by just using a regular contact sensor, and telling the IQ panel that it is a doorbell sensor? If not that should be possible to basically see it end to end, it is going to be a normally open sensor and when the contact is closed is the button press.
Due to how it works and how most doorbell cameras work, the sensor is likely not compatible with using a doorbell camera unless the camera is also using a power kit that bypasses the physical chime until the button is pressed. @ifeign if your VDB770 doesn't have the power kit you will likely need one for this to work.
I'll be curious to see how well this works. I've been using a IQ Remote to know when the doorbell is pressed in another part of the house.

Considering that the sensor is battery powered, I’m not concerned about it drawing power away from my existing video doorbell. It attaches to the chime and behaves as you described, by notifying once the chime circuit is completed. I will report back once I receive the sensor on whether or not my video doorbell has power issues. I only want this sensor to be able to turn my HomePods into chimes…

@ifeign The compatibility issue between door bell cameras and the sensor is that the small constant current pull from the camera may be enough that the sensor will detect that as button presses, generating random phantom presses. This will depend on its sensitivity threshold. An inline resistor  on the sensor may help if that is the case. The reason the power kits can resolve this is that it  isolates the chime so that current only flows to the physical chime when the button is pressed (this is also why it is used to eliminate buzzing of the chime).
If you already have a power kit then just attach the IQ sensor only to the physical chime and it should work without issue.

From my understanding of the vdb770 user manual, the power kit is mandatory
anyway. I’ll investigate later today. Thanks your your insight, it’s very
helpful
On Wed, Jan 31, 2024 at 12:30 AM Charles Stearns @.***>
wrote:

@ifeign https://github.com/ifeign The compatibility issue between door
bell cameras and the sensor is that the small constant current pull from
the camera may be enough that the sensor will detect that as button
presses, generating random phantom presses. This will depend on its
sensitivity threshold. An inline resistor on the sensor may help if that is
the case. The reason the power kits can resolve this is that it isolates
the chime so that current only flows to the physical chime when the button
is pressed (this is also why it is used to eliminate buzzing of the chime).
If you already have a power kit then just attach the IQ sensor only to the
physical chime and it should work without issue.
—
Reply to this email directly, view it on GitHub
https://github.com/EHylands/homebridge-qolsys/issues/32#issuecomment-1918470514,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHWLHYDPJQGSQTADMHM2HCDYRHQIXAVCNFSM6AAAAABCGMIJX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMJYGQ3TANJRGQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

Just a heads up but I tried to get my hands on the IQ Doorbell sensor, and it sounds like they may no longer be in production. I'm going to try another vendor that might have old stock.

Just a heads up but I tried to get my hands on the IQ Doorbell sensor, and it sounds like they may no longer be in production. I'm going to try another vendor that might have old stock.

Just sourced one on eBay! Will report back once I have it. Canceled my AlarmGrid order because it was backordered

@ifeign yeah, it was AlarmGrid that got back to me and canceled the order to due to lack of availability. Currently I don't see any on eBay, so these may just be very hard to source going forward, which is unfortunate, but expected since doorbell cameras are a common install now.

I was shipped a faulty sensor, very disappointed. The LED on the sensor don’t light up at all, and it is never detected by the panel even after a battery swap. The search continues. Any luck? @cistearns

@ifeign Nope I never found one. Maybe grab a picture of the internals?  It's possible these are functionally just flood sensors, which are also a normally open sensor. Normally the panel doesn't really care if you force the sensor to a different type as long as the normal state is the same as needed for that type.

I ordered another one from a site called CommGear after confirming they had stock. Shipping was a bit steep, but I really want this damn sensor. Will try again next week once it gets in

Ahh, yeah it has 3 wires instead of two so it is different internals.

The third wire (white) is optional and is only for if you have a second
rear doorbell
On Thu, Feb 8, 2024 at 3:57 PM Charles Stearns @.***>
wrote:

Ahh, yeah it has 3 wires instead of two so it is different internals.
—
Reply to this email directly, view it on GitHub
https://github.com/EHylands/homebridge-qolsys/issues/32#issuecomment-1934997052,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHWLHYEX32DDZPGS3VMVFI3YSVC4DAVCNFSM6AAAAABCGMIJX6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZUHE4TOMBVGI
.
You are receiving this because you were mentioned.Message ID:
@.***>

Well I added the sensor, and it shows up in HomeKit like this

I also don’t get doorbell notifications. Did I do something wrong on my end @EHylands?

@ifeign can you confirm what version your HomeKit hub device is running? (ie 17.x)

It's the latest 17.x release, I always keep it updated.  I got it paired with my panel, but it wasn't doing anything, it wouldn't even notify of a tamper like any other sensor would.. so I unpaired it and now it refuses to pair with the Qolsys panel again. I am about to give up lol. There's basically zero documentation on this thing and I can't be sure how to factory reset it - nothing I've tried works

@ifeign S-Line sensors like this are basically dumb one way communication devices, they don't have a concept of factory reset, the panel can just learn them in when they are tampered due to the messages they send. Since these are old stock I'd assume the batteries are bad in them, even if the pull tabs are still in place. You can also directly learn them in using their identifier rather than autolearn though that info using gets covered up with the mounting tape.
Along with swapping out batteries you might try to tamper while not attached to the doorbell, in case there is something about the existing current at the doorbell that is messing it up. If it does install detached you should be able to test it by just touching the red and black wires or the white and black wires.
It's possible that these are just prone to failure.

I changed the batteries and tried your steps. No luck so far. I can’t even manually pair because I don’t seem to have the any ID that works. All of mine have letters in them which the panel does not let me type

So the problem is that it is being added at as a PowerG sensor, when it is an S-Line Sensor. I don't know how that is happening, but it won't work as a PowerG (345Mhz) sensor
The Source should be RF319 (it's a 319.5 MHz device. That is also why you couldn't enter a DL ID for it correctly.
Maybe confirm what sensor radios you do have?  The IQ2 comes in a few flavors and not all support S-Line sensors.
If you aren't sure look up the Part Number to System Configuration under Advanced -> About -> Hardware.

@ifeign Actually relooking at your screen shots, I'm almost certain your configuration is that of a PowerG+345. This means that it is configured to work with PowerG sensors as well as 2Gig / Honeywell sensors, but not S-Line or Interlogix (319Mhz). In which case this sensor won't work for you. The 'good' news is that if you can find a legacy 345Mhz 2Gig/Honeywell sensor that does the same thing you can try to use that.

Yes I have a PowerG + 345. If this sensor is incompatible, why is it able to connect? My issue might actually be from distance to the doorbell chime (it’s on the second floor). My signal strength is terrible

When adding it, was the sensor detected as a doorbell or did you have to change the type to doorbell?  It's entirely possible you are just picking up some other sensor from a distant neighbor that is in a trouble/broadcast state so the panel is trying to add it.
Either way I think you are unfortunately out of luck with this device.  There are a few hack approaches you can try, if you get your hands on a sensor that has auxiliary contact terminals to use to detect the doorbell being triggered. The PowerG PG9945 is an example, though you can probably get something cheaper in the legacy 2Gig/Honeywell sensors.

@ifeign did you get the daughter board?  I think installing it means pulling out the 345 board, so you will want to make sure you don't have any sensors on the 345.

@ifeign did you get the daughter board? I think installing it means pulling out the 345 board, so you will want to make sure you don't have any sensors on the 345.

It should get in tomorrow. I don’t have any 345 accessories, so I’m hoping this is the final hurdle. Tested my sensors with my Flipper Zero (idk why I didn’t think to sooner) and both are broadcasting at 915.5mhz, so I guess I have a spare now if you’d like it.
Anyway, will report back soon

It works perfectly! No extra accessories show up in the app, it just immediately works after restarting my Qolsys child bridge

Looks like I spoke too soon. I had to restart the server Homebridge is installed on yesterday, afterwards a “not supported” doorbell accessory appeared. Not a huge deal, @EHylands is it worth reopening this issue? Or is this just what has to happen to have a functional doorbell sensor?

Hi,
I'm glad to know the doorbell trigger mechanism works properly.
I have tried to properly set the accessory characteristics for the unsupported tile to disappear in Home app without success yet. I tried looking into other homebridge projects only using a doorbell without an associated video camera but couldn't find one yet.
The other option I found (on a version I did not publish yet) is to present the doorbell accessory in Home app as a stateless button. It allows to configure an automation or a scene when the doorbell is triggered through the native home app without resorting to a 3rd party app line Eve.
I could publish that version if you would like to try that second option.

Hi, I'm glad to know the doorbell trigger mechanism works properly.
I have tried to properly set the accessory characteristics for the unsupported tile to disappear in Home app without success yet. I tried looking into other homebridge projects only using a doorbell without an associated video camera but couldn't find one yet.
The other option I found (on a version I did not publish yet) is to present the doorbell accessory in Home app as a stateless button. It allows to configure an automation or a scene when the doorbell is triggered through the native home app without resorting to a 3rd party app like Eve.
I could publish that version if you would like to try that second option.

A stateless button would be amazing actually! I could have my TV pause when the doorbell is pressed for example. Only example non-video plugin I can think of is this one

@ifeign , I just published version 0.5.0-beta.1 with a stateless button.
Let me know if it works!

@ifeign , I just published version 0.5.0-beta.1 with a stateless button. Let me know if it works!

@EHylands it works perfectly! I just created a test action to turn off some lights, worked immediately.
I think this is ready for release

One final question @EHylands is this icon an option for buttons? Or did they change when they updated all the icons for iOS 16?

@ifeign I tried playing around with the accessory characteristics, but could not find a way to change the tile icon in Home app ...


(IOS) works great on simulator, but hard to swipe on iPhone

As the title says the swipe works poorly on iPhone. It is more sensitive for scrolling horizontal than swiping an item. Have compared it with several apps (Mail, Spotify) which works perfectly. Hope there is some kind of solution for this?

+1

I don't really know if it's your question, but you can disable the scroll of the ListView when you toggle swipeout buttons, by using the scroll props.

Why is this closed? Did you guys find a solution for this?


5.3.2 endpoints now have a capital letter

Just upgraded from 5.2.1 to 5.3.2 and now all my endpoints names in swagger have a capital letter on them.  I changed no code.   Is there something I have to set to get the endpoint names back to matching the endpoint definition?
        Get("/addresses/{enterpriseId}");

Name shows as Addresses in Swagger.  Name used to be addresses.

only the swagger groups/tags are capitalized right?
not the individual operations right?

Correct

somebody request them to be capitalized. that's why the default behavior was changed. guess I'll have to add a setting in the next version to let the user choose.

Yes, it's against our internal standards for some reason.
Thanks

with v<IP_ADDRESS>-beta you can choose the tag naming strategy like so:
https://github.com/FastEndpoints/FastEndpoints/blob/b746669a0915d64c6fa0ff69824cb8ecd69efce6/Web/Program.cs#L19-L27


Heading structure and title are wrong

The docs for each language are a single page but have two
s. Also, the <title> for each set of docs doesn't mention which API client those docs are for.
Both these are likely to fail an accessibility audit due to their effect on users of assistive technologies.
Multiple H1s
This section in the HTML5 spec explains that no assistive technologies support document outlines with multiple h1s:
https://www.w3.org/TR/html52/sections.html#creating-an-outline

This means the structure of these docs is currently broken.
This does help you orient yourself when reading the links in the nav.
The tech-docs-gem only adds a bold link for a
s. If we didn't use
s for the section headings, the nav would look like that in the WCAG Primer:

Generic text in the title element
The <title> element for the docs for each language is the same:
"Client documentation - GOV.UK Notify | Notify"
This matches an example of how to fail success criteria 2.4.2 in the WCAG docs:
https://www.w3.org/TR/2016/NOTE-WCAG20-TECHS-20161007/F25#F25-failex2

Hi @tombye
Thanks for this. I agree that this should be changed. There are 2 ways we can do this.

Add on a level to the headings
Keep headings as is but change the docs from single page to multipage.

Obviously option 1 is easier, but if we make the docs multipage and enable the search box, it might increase docs usability. We haven't had any negative feedback on moving other docs from single to multipage (e.g. PaaS, Pay). @quis @servingUpAces what do you think?

If I remember right there was something blocking us adopting multipage and search for our docs. I’m all in favour of using those features if they’ve been shown to work for other teams.
@tombye maybe you could spike multipage docs and see if problems still exist?

I think one of the issues before with switching the site to multi-page and enabling search was that if you search for how to send an email (for example) you will see results from all 6 client docs, when you probably only want to see the results for the client you're interested in. There may be a way round that though - I haven't tried it out recently

What about if we add another heading level, like Jon said, and re-style the table-of-contents so it keeps the bold style for
s and makes the
 the next text size up?
Like:

What about if we add another heading level, like Jon said, and re-style the table-of-contents so it keeps the bold style for
s and makes the
 the next text size up?
Like:

Note: I only mean for our docs. It wouldn't apply these styles upstream to the tech_docs_gem.

Discussing this with @quis, we reckon it's worth doing.

Best practice for the tech writer community is to minimise bespoke implementations of the tech doc template. Is there any way we can do this without tweaking the css?

Sorry @jonathanglassman, you're right of course :)
I looked at all the docs sites I could find that also had a single-page:

https://docs.publishing.service.gov.uk/
https://content-api.publishing.service.gov.uk/#gov-uk-content-api
https://gds-way.cloudapps.digital/
https://alphagov.github.io/wcag-primer/

Number 1. seems to have a table of contents like the one we have, visually at least, but with the right heading structure. It does this by not including a link to the h1 and having all the links to h2s as bold. I'm gonna look into this as an alternative.

The issue of generic text in the title element is now fixed - https://github.com/alphagov/notifications-tech-docs/pull/111. Multiple H1s still needs to be looked at.

This was fixed by https://github.com/alphagov/notifications-tech-docs/pull/136