Can't access API and Stage objects in Go

Hello!

Vote on this issue by adding a 👍 reaction
To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already)

Issue details
When creating a RestAPI, the outputs contain Api and Stage but neither of these properties are correctly typed. This means we can't access the output properties in order to depend on them for other resources.
Steps to reproduce
restAPI, err := apigateway.NewRestAPI(ctx, "api", &apigateway.RestAPIArgs{...}
ctx.Export("api-id", restAPI.Api.ID()) // restAPI.Api.ID undefined (type apigateway.RestApiOutput has no field or method ID)
ctx.Export("api-stage", restAPI.Stage.StateName) // restAPI.Stage.StateName undefined (type apigateway.StageOutput has no field or method StateName)

This appears to be due to the output types being empty:
type RestApiOutput struct{ *pulumi.OutputState }
type StageOutput struct{ *pulumi.OutputState }

This actually affects all languages. Even though the typings are available in Typscript and Python doesn't error because the type is Any, there is no output values for api and stage in the stack outputs. The only output property that's available is the URL of the endpoint


Updated the TTL for banner and video bids

Thanks for improving the documentation 😃
Please give a short description and check the matching checkboxes to help us review this as quick as possible.
🏷 Type of documentation

[ ] new bid adapter
[x ] update bid adapter
[ ] new feature
[ ] text edit only (wording, typos)
[ ] bugfix (code examples)
[ ] new examples

📋 Checklist

[ ] Related pull requests in prebid.js or server are linked
[ ] For new adapters check submitting your adapter docs

@bretg updated the TTL for video and banner. Kindly review.


Stripe element gets focus if error occurred in createToken(...)

I'm using CardElement component. When I'm trying to call stripe.createToken(...) and get error (user didn't enter cvc for example) component is autofocused. I do not expect such behaviour, cause stripe input is the last one, and there are inputs that needs to be focused instead stripe if there was an error.
Does someone have thoughts how I can disable autofocus?

🤔I can definitely see the value in this, but we don't currently have a direct way to disable this behavior.
For now, I would listen to focus events and conditionally send the focus to the desired input.
<CardElement
  onFocus={() => {
    if (hasMoreImportantError) {
      moreImportantInputRef.current.focus();
    }
  }
/>

Let me know if this approach will work for your case.

@zhdanouskikh, it looks like you should be able to override this behavior by sending the focus wherever you like after createToken has resolved. Take a look at this example:
https://codesandbox.io/s/trusting-worker-ehxnv?fontsize=14&hidenavigation=1&theme=dark
Let me know if this doesn't work for you.

Closing this as this project has migrated to React Stripe.js. If you believe this is still important, please re-open it there.


Sphinx 8 compatibility

Describe the bug
context
When I update Sphinx to Sphinx 8, sphinx-design is causing a locking failure.
expectation
I expected the lock to succeed.
bug
Resolution fails
problem
Issue is sphinx<8 in the pyproject.toml of this project.
Reproduce the bug
Try to install Sphinx 8 and sphinx-design in the same venv
List your environment
No response

done in #212


Add stack integration

Is this common practice? I thought stack init working from a cabal setup was good enough for stack users.

Asking especially because this adds new things to take care of, like the lts resolver version.

Right, this is a good question. Take a look at this thread in which the question was discussed.
In particular I find that this comment and its descendants make a point.
However, if you decide against stack.yaml inclusion, adding it to .gitignore may be a good thing for those who use it.

However, if you decide against stack.yaml inclusion, adding it to .gitignore may be a good thing for those who use it.

I'd have no problem with it if the resolver wasn't stuck at some arbitrary version. The fact that it needs some maintenance (even if it's ok if it's not kept up to date) I'm not very comfortable with. Not saying that what cabal does is better, but I'd rather use one method than maintain two different ones at once.

I don't think adding stack.yaml to .gitignore makes much sense either - it might come across as some sort of hate for Stack. Seems to me like it's just an attempt on our part to help people who don't know how git add works. So I wouldn't add it.


Fenghj/webpartal/job

Coverage decreased (-7.3%) to 46.033% when pulling e6e2f2b7d8f43c3542dab82a807ea90b59a6ac65 on fenghj/webpartal/job into f977af531a65a7413e1855cedbceed83ae3973d0 on master.


Issue in using the generated Fine-tuned weight file

I followed the document to set the library code. I generated my custom dataset as provided in the sample CSV file.
I used the groundingdino_swint_ogc.pth pre-trained model for the finetuning purpose and its corresponding config file. I ran the train.py provided in this code for training and the new weights were saved in my machine.
However, the issue appeared when I tried to test the model using the test.py file provided in this code. I configured the model path to the generated fine-tuned model while trying to predict a test image.
The Error is as below:
File "Grounding-Dino-FineTuning\groundingdino\util\inference.py" in Line number 37:
model.load_state_dict(clean_state_dict(checkpoint["model"]), strict=False)
KeyError: 'model'
Let me know how this issue can be rectified. Could the train.py script be missing something?

Hi @tarunsk1998  thank you for pointing it out should be fixed now see this commit
https://github.com/Asad-Ismail/Grounding-Dino-FineTuning/commit/757928cf0c94a55b6290bf92165d84453cf2363f#r138678714

Hi @Asad-Ismail,
I tried the latest code, but faced a follow up issue while running the test.py file.
The below is the error,
C:\venv\lib\site-packages\transformers\modeling_utils.py:993: FutureWarning: The device argument is deprecated and will be removed in v5 of Transformers.
warnings.warn(
Traceback (most recent call last):
File "C:\Grounding-Dino-FineTuning\test.py", line 124, in
process_video(model_weights=model_weights, model_config=model_config,
File "C:\Grounding-Dino-FineTuning\test.py", line 90, in process_video
boxes, logits, phrases = predict(
File "C:\Grounding-Dino-FineTuning\groundingdino\util\inference.py", line 76, in predict
outputs = model(image[None], captions=[caption])
File "C:\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "C:\Grounding-Dino-FineTuning\groundingdino\models\GroundingDINO\groundingdino.py", line 303, in forward
self.set_image_tensor(samples)
File "C:\Grounding-Dino-FineTuning\groundingdino\models\GroundingDINO\groundingdino.py", line 212, in set_image_tensor
self.features, self.poss = self.backbone(samples)
File "C:\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "C:\Grounding-Dino-FineTuning\groundingdino\models\GroundingDINO\backbone\backbone.py", line 151, in forward
xs = self0
File "C:\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "C:\Grounding-Dino-FineTuning\groundingdino\models\GroundingDINO\backbone\swin_transformer.py", line 716, in forward
x = self.patch_embed(x)
File "C:\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "C:\Grounding-Dino-FineTuning\groundingdino\models\GroundingDINO\backbone\swin_transformer.py", line 491, in forward
x = self.proj(x)  # B C Wh Ww
File "C:\venv\lib\site-packages\torch\nn\modules\module.py", line 1501, in _call_impl
return forward_call(*args, **kwargs)
File "C:\venv\lib\site-packages\torch\nn\modules\conv.py", line 463, in forward
return self._conv_forward(input, self.weight, self.bias)
File "C:\venv\lib\site-packages\torch\nn\modules\conv.py", line 459, in _conv_forward
return F.conv2d(input, weight, bias, self.stride,
RuntimeError: Input type (unsigned char) and bias type (float) should be the same
Let me know if this is a known issue and how I can rectified this issue.


Doubles UU: Ban Aggronite

npm test......

Link to the announcement post?

all new stones start in OU and i have to ban them manually since it doesn't automatically checks that for doubles


Search not working on DMP Templates table

I can't search the DMP Templates table - nothing I input produces any results
https://roadmap-stg.cdlib.org/public_templates

this is working now. closing.


Ref slices need to be handled as interface

@gra-moore I've currently replaced the string slice with interface as that is what you get when querying datahub, but I guess we might want to handle string slice as well in case someone uses this with manually created entities in code. (Like the tests were doing)
Thoughts?


[AIRFLOW-766] Skip conn.commit() when in Auto-commit

Dear Airflow Maintainers,
Please accept this PR that addresses the following issues:

https://issues.apache.org/jira/browse/AIRFLOW-766

Please make sure to add unit tests to this that tests all flows.

Current coverage is 66.90% (diff: 66.66%)

Merging #2002 into master will decrease coverage by 0.04%

@@             master      #2002   diff @@
==========================================
  Files           138        138
  Lines         10531      10533     +2
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits           7050       7047     -3
- Misses         3481       3486     +5
  Partials          0          0

Powered by Codecov. Last update b56cb5c...b602f26

added unittest, ad build finished. Should this PR also merged to 1.8?

The current unit tests only test happy flow. Can you add tests that execute this on the database as well (more integration tests like)? Thanks. Will consider for 1.8 then.


Use Codspeed for continous benchmarking

Summary

Test Plan

Current dependencies on/for this PR:

main

PR #6896   👈

This comment was auto-generated by Graphite.

@boshen you might enjoy this


Add support for spark 3.2.1

Feature
Add support for spark 3.2.1

If not fully completed, it can be solved with #32


Sync: Optional agentUserId

In case of an invalid authentication token, the agentUserId won't be available.
In such cases I expect a valid response to only include:
{
  requestId: body.requestId,
  payload: {
    errorCode: 'authFailure',
    devices: []
  },
}

but this currently throws an error when running typescript in strict mode as agentUserId is not optional.
The property is also documented as optional here https://developers.google.com/actions/smarthome/create#actiondevicessync

Going to wait for @Canain to merge it in

Looks good, we can merge it 👍


Added boolean option 'animationLoop' to disable _startAnimationLoop

Improves iOS scroll performance when used in conjunction with Zynga Scroller (possibly Scrollability too, untested)

You're right about it breaking parallax, assuming you want to use the browser's scroll event. Unfortunately on iOS the scroll position isn't continuously reported, as I'm sure you're aware.
Scroller has its own implementation of requestAnimationFrame that I've been able to hook up to Stellar, but things were noticeably choppy. It became obvious this infinite loop to blame, and disabling it smoothed things out considerably.
I'd rather not serve Scroller to traditional browsers since it forces an unintuitive click-drag analog to touch. This seems like the sane approach to controlling how scrolling is managed without having to serve two different versions of Stellar.
I'm sure a demo would make things more clear, but I'm afraid all I have now is confidential work in progress. Maybe I can find time to throw something together to illustrate the issue once this deadline's out of my hair.

Yeah, a demo would really help.
What you're doing is really interesting, but it sounds like this option, when enabled, would require you to rewrite portions of Stellar.js in your own code, correct? If that's the case, I don't think this would belong in the plugin... if I can have a look at your demo, maybe we can figure out a way to better integrate Stellar.js with other scrolling libraries.
Having an option that just disables the main animation loop would confuse people and be very difficult to explain in the documentation.


Expand pdictng with support for upstash.com webdis

3x speedup over postgrest, 10k requests/day free!
Now schemaless, still strongly persistent, still $0 to get started! But now takes ~5min not ~15min to setup a new datastore.

maybe some notes about redis vs postgres consistency?

https://docs.upstash.com/redis/features/consistency
check this out

i really want to merge this but i also want pdictng_docs/README.md explaining pAUTH


Release @google-cloud/tasks v0.4.0

This pull request was generated using releasetool.

Release is at https://github.com/googleapis/nodejs-tasks/releases/tag/v0.4.0

The release build has started, the log can be viewed here. :sunflower:

:egg: You hatched a release! The release build finished successfully! :purple_heart:


KAFKA-12334: Add the KIP-631 metadata shell

The Kafka Metadata shell is a new command which allows users to
interactively examine the metadata stored in a KIP-500 cluster.
It can read the metadata from the controllers directly, by connecting to
them, or from a metadata snapshot on disk.  In the former case, the
quorum voters must be specified by passing the --controllers flag; in
the latter case, the snapshot file should be specified via --snapshot.
The metadata tool works by replaying the log and storing the state into
in-memory nodes.  These nodes are presented in a fashion similar to
filesystem directories.

I rebased this on trunk and created a JIRA for it

ran test manually and committed from command line


Add dependency metrics

What would you like to be added?
Add metrics for:

Requests to registry
Blob cache hits
Azure-specific

AAD token duration
ACR token duration
AKV certificate fetch duration

Anything else you would like to add?
No response
Are you willing to submit PRs to contribute to this feature?

[X] Yes, I am willing to implement it.

I'm wondering if we would need success rate and error code distribution for Requests to registry and Azure requests in the future.


Update sbt-scalajs, scalajs-compiler, ... to 1.10.0

Updates

org.scala-js:sbt-scalajs
org.scala-js:scalajs-compiler
org.scala-js:scalajs-library
org.scala-js:scalajs-test-bridge

from 1.7.1 to 1.10.0.
GitHub Release Notes - Version Diff
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-js" } ]

labels: library-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #269.

Superseded by #274.


Add next-signal option to concurrently

The next-signal option allows processes to be booted in serial, allowing us to add processes to Concurrently at runtime in a controlled way. This means we can avoid race conditions and unpredicatable outcomes in our scripts.
I recorded a video of me live-coding this feature in the context of another project:
https://www.youtube.com/watch?v=b10djzVmoaw

Thanks for the pull request, I especially enjoyed watching the screencast!
While I like the refactoring in this PR, I'm not sold to the idea of handling race-conditions with concurrently. This sounds like a bit hackish way to achieve reliable build-pipe. I would suggest that instead of using --next-signal option, you should make the underlying commands to be safe of race-conditions. For example in a web project:

Build task which makes sure the tasks are run sequentially.
Watcher task which watches for file changes and runs the build task on changes.
File serving task which just serves the files for browser

The you can use concurrently to run 2. and 3. tasks.
I can't find the other library which is very similar to concurrently, but also provides --sequential option. I liked the API in that library. If we are adding sequential support for concurrently, I'd go with a new option like that instead of relying to finding strings from process' stdout. What do you think?

Here's the other library I was talking about: https://github.com/mysticatea/npm-run-all

Inactive. Closing.


Clickables: Links that open in new tabs/windows should be tagged for assistive technology

Requirement:
Links that open in a new tab or a new window should either have an "aria-label" attribute or a screen-reader only element explaining to screen-readers that this opens in a new tab.
8 Failed Elements

[x] 1.

[x] 2.

420,703

[x] 3.

[x] 4.

454,892

[x] 5.

[x] 6.

1228

[x] 7.

[x] 8.

37,141

This appears to have also been fixed via #78!


Push Notifications,registerDevice and configuring APNS

Hi there! 👋 I am trying to use tdlib to handle push notifications using registerDevice and processPushNotification but I'm having issue even getting past configuring APNS certificates on my Telegram app.
On this screen: https://my.telegram.org/apps/apns_cert

What format is expected? I tried uploading .cer downloaded from the apple developer portal & password protected .p12's exported from the keychain.
Thank you in advance for the guidance / help. 👍

Closing. Just found https://github.com/tdlib/td/issues/421.
Sorry for the bother.


AdSense error when accessing a post directly

Fixed at https://github.com/wp-pwa/wp-org-connection/commit/d4e729e4dc2424d097eabd656822ba091cd64d2c.


refactor: migrate to TypeScript

Problem
Upstream applications rely on this package to interact with the MyInfo API. However, if those applications are implemented in TypeScript, they have to write their own types for MyInfo, since this package does not provide any types.
Solution
Implement this package in TypeScript.
Build changes
A build directory was added to contain the compiled files and type declarations. The main field in package.json was changed to point to the compiled build/index.js, and a types field was added to point to build/index.d.ts.
A .npmignore file was added so files in src do not get published.
Linting was added for TypeScript.
The test script now includes a build step before the tests are run.
Code changes
Most of the changes were purely to add types, but there were a few code changes as well:

According to the docs, mode is optional in the constructor and 'prod' would be used if it was not provided. However, the code did not contain any default for mode, so this default was added.
The jweResponse is now passed straight into the decrypt function from node-jose. There is no need for us to do the parsing since the library does it for us.

Backwards compatibility
No changes were made to the API, so these changes are backwards-compatible.

hey @liangyuanruo, requesting another review due to the following changes:

After much wailing and gnashing of teeth, I decided to abandon axios and go back to the request library. I tried console-logging the HTTP request in both cases, and the Authorization header was exactly the same. The MyInfo docs were also not very helpful because they didn't seem to line up with the existing code, probably because the examples are for V3 and not V2.
I added homeno to the list of default attributes to request when no attribute list is specified. Not sure why it was left out in the first place.


Exception in thread "main" java.lang.NoSuchFieldError: FN_AAPT2

Steps to Reproduce

...flutter doctor
...flutter doctor --android-licenses
...sdkmanager --update

`F:\Develop Work\flutter>flutter doctor -v
[âˆš] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [Version 6.1.7601], locale zh-CN)
â€¢ Flutter version 1.5.4-hotfix.2 at F:\Develop Work\flutter
â€¢ Framework revision 7a4c33425d (2 weeks ago), 2019-04-29 11:05:24 -0700
â€¢ Engine revision 52c7a1e849
â€¢ Dart version 2.3.0 (build 2.3.0-dev.0.5 a1668566e5)
[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
â€¢ Android SDK at D:\eclipse
â€¢ Android NDK location not configured (optional; useful for native profiling support)
â€¢ Platform android-Q, build-tools 28.0.3
â€¢ ANDROID_HOME = D:\eclipse
â€¢ Java binary at: D:\Program Files\Android\Android Studio\jre\bin\java
â€¢ Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for detailed instructions.
[âˆš] Android Studio (version 3.0)
â€¢ Android Studio at D:\Program Files\Android\Android Studio
â€¢ Flutter plugin version 23.2.1
â€¢ Dart plugin version 171.4424
â€¢ Java version OpenJDK Runtime Environment (build 1.8.0_152-release-915-b01)
[!] IntelliJ IDEA Ultimate Edition (version 2018.1)
â€¢ IntelliJ at F:\ä¸‹è½½ç›®å½•\ideaIU-2018.1.win
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
â€¢ For information about installing plugins, see
https://flutter.dev/intellij-setup/#installing-the-plugins
[!] Connected device
! No devices available
! Doctor found issues in 3 categories.

I reinstall sdkmanager

Did you upgarade or installed same version


Spinner size mixin

A mixin needs to be added for the spinner module to allow for different sizes of spinner-donuts. This update will be coming later in Fermion.

Implemented. Issue resolved.


add comment to wasm::no_std_bindings::panic() describing how 100% cpu on panic is avoided

Notes on JS side also need mention on rust side
https://github.com/samblenny/ime-engine/blob/17f70cfd437e7f0d801a8fb6aa942ab76a480369/src/wasm/no_std_bindings.rs#L15-L21
https://github.com/samblenny/ime-engine/blob/17f70cfd437e7f0d801a8fb6aa942ab76a480369/wasm-demo/ime-engine.js#L7-L15
Maybe mention how this relates to limitations of wasm32-unknown-unknown (link to rustc github discussion?)

My earlier research was wrong. core::arch::wasm32::unreachable() is a thing. It is available in stable now and can be used to generate a wasm32 unreachable trap instruction without pegging CPU as happens with loop {}.
See:

https://doc.rust-lang.org/core/arch/wasm32/fn.unreachable.html
https://webassembly.github.io/spec/core/exec/instructions.html#exec-unreachable

resolved in 49655e0 by switching to use of core::arch::wasm32::unreachable()

49655e0 broke parsing for Token::CiOpenChoice. Reverted it with 4b0eec6.
Need to try this again.
See #42

deba19d seems fine. Not sure what happened before...
Best guess is that I added an intermediate build of ime-engine.wasm for 49655e0 commit and function bindings in the .wasm binary did not match my changes to ime-engine.js.


remove extra line breaks in code samples and minor indention fixes

Issue #, if available:
Description of changes:
Minor clean up to code examples. The line breaks are not visible within github's markdown renderer but are more apparent on the https://aws.github.io/aws-amplify/ docs.

Removed extra line breaks on code examples
Few minor indention fixes
One minor syntax fix in one code example

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #504 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #504   +/-   ##
=======================================
  Coverage   88.98%   88.98%
=======================================
  Files          62       62
  Lines        3059     3059
  Branches      591      591
=======================================
  Hits         2722     2722
  Misses        322      322
  Partials       15       15

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 477af9a...8887850. Read the comment docs.


display the month picker

Version

Test Environment

Current Behavior

please any one can tell me  how to enbale the month changer ?
// Write example code

Expected Behavior

@nazihheni
Click the left and right arrow buttons to change the month.

Hi @jungeun-cho,
I think he means the arrows etc (what is in the black drawing) is simply not appearing.
I am looking for a solution myself.
Kind regards,

@haringsrob
Do you want to know the API used to change the month?
We support movable api.
https://nhn.github.io/tui.calendar/latest/Calendar#setDate
https://nhn.github.io/tui.calendar/latest/Calendar#prev
https://nhn.github.io/tui.calendar/latest/Calendar#next
https://nhn.github.io/tui.calendar/latest/Calendar#today
e.g.)
<calendar ref="tuiCalendar" style="height: 800px;"
...
>
this.$refs.tuiCalendar.invoke('setDate', new Date(e.date));
this.$refs.tuiCalendar.invoke('changeView', 'month', true);  // 'month', 'week' or 'day'


Package request: Lix

I think we should even go ahead and set it as the default Nix package in the repo!
Add a :+1: reaction to issues you find important.

I think this is better suited for adding to Core - nixpkgs does not have a great way to import Nix sources from an external location, and I would rather not duplicate Lix's expressions into our repos. Does mean we don't have a great way to use it at the moment, but packaging Lix should definitely be a goal.

I think this is better suited for adding to Core
Probably yes.
I would rather not duplicate Lix's expressions into our repos
Honestly, I think it is fine at this stage.

I think this is better suited for adding to Core

Probably yes.

I would rather not duplicate Lix's expressions into our repos

Honestly, I think it is fine at this stage.

we can take this as a opportunity to make auxolotl use flakes more. Nixpkgs approach was a "all in one repo", but here we could maybe link to to modules in different repos like Lix to integrate that.
Depends on whenever or not we are ready to move on from the pre-flake state of nix.

I currently believe the end goal of aux is to provide packages that are not in a mono repo so I think I agree with @Sorixelle and shall transfer this over to the core repo.


Export freezing up

I tried to export part of a world, but the export freezes up at about 60% with the following message in the console:

DevTools failed to parse SourceMap: https://localhost:3003/modules/adventure-import-export/lib/FileSaver.min.js.map

What items are you trying to export?  What's the total file size? Are you on the Forge or self hosting?  How much time did you give it?


feature: add nodeSelector, affinity and topologySpreadConstraint to Helm Chart

Fixes #16
Added the following config in Deployment template and to Chart default values.yaml:

affinity
nodeSelector
topologySpreadConstraint

And updated the version in the Chart.yaml and in the raw manifest files.

LGTM 👍

This looks good to me! Tested by running helm template . -f values-test.yaml with this values-test.yaml.
@mattray Is the version bump on the Chart.yaml correct here? Is each PR resulting in a version bump? Or are you batching multiple changes into a version bump?

@thomasvn I think we should bump with each change, in case one's breaking.

1.0.3 now I think. Matt did a manual bump to get the publish workflow to run without having to delete existing releases/tags it looks like.

Rebased and merged: https://github.com/opencost/opencost-helm-chart/commit/c5e6f86aef0637b151179eef38962c4e595517f2


Start of the plugin queue

In PHP-HTTP, we have the method signature public function handleRequest(RequestInterface $request, callable $next, callable $first);
Having the first delegate allows to restart the request. We use this for example with a plugin that handles redirect status codes - that plugin can simply restart the queue with a new request.
How would you feel about adding that to PSR-15 as well? I don't know if it makes sense on the server side - one use case i can think of would be a plugin that handles ESI and does the sub requests to resolve the esi fragments. But not sure if that is a good scenario. Maybe just another point for #20, to separate the client middleware from PSR-15

Anything that only makes sense in client middleware (or server) should probably be excluded at this point. I don't see this being viable for server dispatchers.

@shadowhand the only use case for server side i could think of was ESI handling as middleware. what do you think of that use case? or would you see a different solution to make this work in middleware?
if this PSR is mostly about generic middleware things and server side, but not client side, i think it would be good if the (meta?) document would explicitly say this to avoid confusion.

I think that passing $first as part of the middleware interface itself, to account for the eventual rare case such as ESI, is probably unnecessary?
In a case such as ESI, such middleware could simply receive the dispatcher itself, e.g. via constructor injection, ahead of time, and dispatch that internally.
Granted, interoperability in that case wouldn't be covered by this PSR, which makes me wonder again if we ought to have a Dispatchable interface - an idea that was previously rejected - e.g.:
interface Dispatchable {
    public function dispatch(RequestInterface $request): ResponseInterface;
}

However, as noted in that thread, such as interface seems orthogonal to this standard, as it's extremely general and not at all middleware-specific - it would require a dedicated (though humble) PSR, I think.
If such an interface were standardized at a later time, that would cover this use-case, I think? If so, this is likely not an immediately requirement that blocks us from moving forward with this PSR.

i agree that including a dispatchable interface into this PSR would be out of scope.
the middleware in that case would need a setter injection i think. or the middleware stack would need setters - if both only use constructor injection, you get a chicken-and-egg problem. but i agree that its an edge case, plus if the actual entry point is not the stack of middleware but some other client, having $first is actually misleading.


Development: Fix modernizer warnings

Checklist
General

[ ] I tested all changes and their related features with all corresponding user types on a test server.
[ ] This is a small issue that I tested locally and was confirmed by another developer on a test server.
[x] I chose a title conforming to the naming conventions for pull requests.

Server

[x] I followed the coding and design guidelines.

Motivation and Context
The modernizer tool currently shows some warnings:

Description
This PR fixes the last 3 warnings. The other 2 are needed by the API of a dependency and therefore mus stay.
Calling an explicitly ImmuteableSet from the Google Collections Library is not needed since the Set returned by Set.of() is already immuteable.
Steps for Testing
Code review
Review Progress
Code Review

[ ] Review 1
[ ] Review 2

Codecov Report
Base: 75.63% // Head: 75.63% // No change to project coverage :thumbsup:

Coverage data is based on head (34d2a9d) compared to base (b27d53d).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff            @@
##           develop    #5897   +/-   ##
========================================
  Coverage    75.63%   75.63%
========================================
  Files         1117     1117
  Lines        44289    44289
  Branches      8364     8364
========================================
  Hits         33499    33499
  Misses        5621     5621
  Partials      5169     5169

Flag
Coverage Δ

client
75.63% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Updated new Logo for ExamTime website

I have designed a beautiful logo for the Examtime Website updated the logo (favIcon)
Description

Designed the new ExamTime logo and have updated it in the favIcon.jpg to enhance the look of website logo

Resolves: [#131]
Checklist

Before submitting this pull request, kindly verify that the ensuing checkpoints have been reached.

[ ✓ ] Have you adhered to the repository's defined coding convention rules?
[ ✗ ] Have you updated the 'documentation.md' file with the method/function documentation?
[ ✓ ] Have you sent a message along with the result or response?
[ ✗ ] Have you used the try-catch technique?
[ ✗ ] Has the method/class been added to the documentation (md file)?

Screenshots

Uploading a screenshot illustrating the approach you developed for validation is required.

Additional Notes/Comments

Any additional remarks or suggestions concerning this pull request are welcome.

I certify that I have carried out the relevant checks and provided the requisite screenshot for validation by submitting this pull request.
I appreciate your contribution.

I have designed a beautiful logo for the Examtime Website updated the logo (favIcon)

@hereisSwapnil can you please review it sir?


Support case insensitive string contains

I can convert some of my existing projects to use CIString instead of my home rolled CaseInsensitiveString class if we can support contains.
I don't contribute as often as I'd like so please feel free to comment on anything

Thanks for the contribution!
@isomarcte is this something we'll continue to be able to support in your 2.x rewrite?

That should be quite doable.

Great! Let me know if you'd like me to port this anywhere

Great! Let me know if you'd like me to port this anywhere

I'll ping this ticket when the core changes in 2.x.x land.

@rossabaker I'm pretty sure this will hold if we define contains to be "Contained in the case folded string" by some specific case folding scheme. For example from my 2.x.x branch.
scala> FullCaseFoldedString("i").toString.contains(FullCaseFoldedString("I").toString)
val res3: Boolean = true

scala> TurkicFullCaseFoldedString("i").toString.contains(TurkicFullCaseFoldedString("I").toString)
val res4: Boolean = false

Oh sorry @armanbilge and @henricook I didn't realize this was a PR, I thought it was an issue only when I first read it.
Yeah, as @rossabaker points out, we can't really define this safely on 1.x.x because we don't actually have a full representation of the case folded value.

I think it can be supported in 1.x.  The definition of equality compares corresponding characters.  contains could use the same algorithm.  contains could work just like it does on String, but using the same character predicate as equalsIgnoreCase.  That's exactly what commons-lang does, if I'm not mistaken.

Thanks for these thoughtful comments all, i'm processing them. Why's the Turkey Test called the Turkey Test?

Do we know why I might prefer commons-lang3's regionMatches over the standard java String regionMatches? I've got the turkey test passing by using that but would be interesting to know if CL3's has an advantage or is just an implementation from before it was in Java standard

What do we think of https://github.com/typelevel/case-insensitive/pull/269/commits/c4a0a8f2b3844eeb4d0cced58026468b0bafc4a0 ?
Please note: I've force pushed this branch with a rewritten commit history as my author field was a work address accidentally

@rossabaker @henricook I'm good with this for 1.x.x, but note that we aren't doing a Unicode character contains, we are doing a UTF-16 char contains. So things like this won't work, but it should for most Unicode definitions of case folding.
scala> CIString("\u0041\u030a")
val res0: org.typelevel.ci.CIString = Å
scala> CIString("\u00c5")
val res1: org.typelevel.ci.CIString = Å
scala> res0.contains(res1)
val res2: Boolean = false

Though I suppose that is consistent with the equality behavior for 1.x.x.
Just please be aware of this caveat until 2.x.x is out.

Thanks both, is this good to go @rossabaker ?


versatile-data-kit: VEP-1418 on VDK connectors

VDK users need to be able to enlist the VDK database connectors available. Currently, the happy path is for the users to come up with the idea of manually browsing the vdk-plugins/* documentation and sources, then decide by their own what seems to be a database connector. By automating this lookup, we provide an instrument for connectors discovery, saving users time and efforts, and preventing human errors.
Added an issue https://github.com/vmware/versatile-data-kit/issues/1418 and initiated a VEP specification.
Opened a discussion https://github.com/vmware/versatile-data-kit/discussions/1420 in capabilities and implementation ideas.
Testing Done: N/A
Signed-off-by: ivakoleva<EMAIL_ADDRESS>

Closing the PR for now as there has not been activity for more than a month, and it's currently not in progress.
Feel free to re-open it when it's back on the table


Initial list of default reviewers in alpha order

Lets see how this goes for PRs going forward. If it gets too noisy maybe we can divvy up sections of the project.
Additions

Adds GitHub codeowners file.

Notes

https://help.github.com/articles/about-codeowners/

Dang we get little shields

It's like Zelda up in here.


Cannot set stored on SearchField

azure-search-documents:
11.6.0b2:
Windows:
3.11:
Describe the bug
Cannot set stored on SearchField from azure.search.documents.models
I can set this on azure.search.documents.indexes._generated.models.SearchField
To Reproduce
Steps to reproduce the behavior:
Try to import from the publicly named module, stored is not an attribute
Try to import from the generated module, it is an attribute
https://github.com/Azure/azure-sdk-for-python/blob/b605d0a3f4cdea2e3d7eca59e779b576ae056fa4/sdk/search/azure-search-documents/azure/search/documents/indexes/models/_index.py#L26
Stored is missing
https://github.com/Azure/azure-sdk-for-python/blob/b605d0a3f4cdea2e3d7eca59e779b576ae056fa4/sdk/search/azure-search-documents/azure/search/documents/indexes/_generated/models/_models_py3.py#L6749
Stored is present
Expected behavior
I don't need to refer to the generated module to import this class
Workaround
# Required to use the preview SDK
from azure.search.documents.indexes._generated.models import SearchField, ScalarQuantizationCompressionConfiguration
SearchField._to_generated = lambda self: self

@xiangyan99  as discussed offline - we have  workaround but ideally we can fix this one


tree_path_dependent warning, even when set explicitly.

Https://github.com/slundberg/shap/blob/master/shap/explainers/tree.py
Issue is on line 113
        if self.data is None:
            feature_perturbation = "tree_path_dependent"
            warnings.warn("Setting feature_perturbation = \"tree_path_dependent\" because no background data was given.")

In my case, data is None, but I set  feature_perturbation = "tree_path_dependent"
But the error fires because it is not specific enough, should be
if self.data is None and feature_perturbation != "tree_path_dependent":

Changed in Pull Request #1267


2-way audio is not working on Amcrest AD410 doorbell

I'm using Frigate as an NVR, and I have been struggling to get the 2-way audio on the AD410 for a while since it is recommended to use the #backchannel=0 for the button to work correctly, but I have been reading that having a separate stream with &unicast=true&proto=Onvif will allow the 2-way audio to work too. However, it doesn't work with these settings:
go2rtc:
  streams:
    doorbell:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif
      - ffmpeg:doorbell#audio=aac

go2rtc:
  streams:
    doorbell:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1&unicast=true&proto=Onvif#backchannel=1
      - ffmpeg:doorbell#audio=aac

go2rtc:
  streams:
    doorbell:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif#backchannel=1
      - ffmpeg:doorbell#audio=aac

Go2rtc probe info:
{
  "producers": [
    {
      "type": "RTSP active producer",
      "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0/",
      "remote_addr": "<IP_ADDRESS>:554",
      "user_agent": "go2rtc/1.9.2",
      "sdp": "v=0\r\no=-<PHONE_NUMBER><PHONE_NUMBER> IN IP4 <IP_ADDRESS>\r\ns=Media Server\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\na=control:*\r\na=packetization-supported:DH\r\na=rtppayload-supported:DH\r\na=range:npt=now-\r\na=x-packetization-supported:IV\r\na=x-rtppayload-supported:IV\r\nm=video 0 RTP/AVP 96\r\na=control:trackID=0\r\na=framerate:15.000000\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=recvonly\r\nm=audio 0 RTP/AVP 8\r\na=control:trackID=1\r\na=rtpmap:8 PCMA/8000\r\na=recvonly\r\n",
      "medias": [
        "video, recvonly, H.264 Main 5.0",
        "audio, recvonly, PCMA/8000"
      ],
      "receivers": [
        "96 H264, bytes=77299338378, senders=3",
        "8 PCMA/8000, bytes=589560960, senders=3"
      ],
      "recv":<PHONE_NUMBER>6
    },
    {
      "url": "rtsp://admin:pass@<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026unicast=true\u0026proto=Onvif"
    },
    {
      "type": "RTSP passive producer",
      "url": "rtsp://<IP_ADDRESS>:8554/5f402a2ba0414b1503dd4a4436f299bc",
      "remote_addr": "<IP_ADDRESS>:50082",
      "user_agent": "ffmpeg/go2rtc",
      "sdp": "v=0\r\no=- 0 0 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.2\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\na=tool:libavformat LIBAVFORMAT_VERSION\r\nm=audio 0 RTP/AVP 96\r\nb=AS:48\r\na=rtpmap:96 MPEG4-GENERIC/8000/1\r\na=fmtp:96 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=158856E500\r\na=control:streamid=0\r\n",
      "medias": [
        "audio, recvonly, MPEG4-GENERIC/8000"
      ],
      "receivers": [
        "96 MPEG4-GENERIC/8000, bytes=5827954, senders=2"
      ],
      "recv": 5902334
    }
  ],
  "consumers": [
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell?audio",
      "remote_addr": "<IP_ADDRESS>:56824",
      "user_agent": "FFmpeg Frigate/0.14.0-ec88752",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.2\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 0 RTP/AVP 96\r\na=rtpmap:96 PCMA/8000\r\na=control:trackID=0\r\n",
      "medias": [
        "audio, sendonly, ANY"
      ],
      "senders": [
        "96 PCMA/8000, bytes=589560960, receivers=1"
      ],
      "send": 619039008
    },
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell",
      "remote_addr": "<IP_ADDRESS>:51856",
      "user_agent": "FFmpeg Frigate/0.14.0-ec88752",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.2\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=control:trackID=0\r\nm=audio 0 RTP/AVP 97\r\na=rtpmap:97 MPEG4-GENERIC/8000\r\na=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=158856E500\r\na=control:trackID=1\r\n",
      "medias": [
        "video, sendonly, H264, H265",
        "audio, sendonly, MPEG4-GENERIC"
      ],
      "senders": [
        "96 H264, bytes=50452459903, receivers=1",
        "97 MPEG4-GENERIC/8000, bytes=171604900, receivers=1"
      ],
      "send":<PHONE_NUMBER>6
    },
    {
      "type": "WebRTC/WebSocket async passive consumer",
      "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",
      "medias": [
        "video, sendonly, H264, VP8, VP9, AV1",
        "audio, sendonly, OPUS/48000/2, G722/8000, PCMU/8000, PCMA/8000, L16, PCML"
      ],
      "senders": [
        "96 H264, bytes=0, receivers=1, overflow=28703699",
        "8 PCMA/8000, bytes=0, receivers=1, overflow=974582"
      ]
    },
    {
      "type": "probe",
      "remote_addr": "<IP_ADDRESS>, <IP_ADDRESS>:60768",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15",
      "medias": [
        "video, sendonly, ALL",
        "audio, sendonly, ALL",
        "audio, recvonly, ANY"
      ],
      "senders": [
        "96 H264, bytes=0, receivers=1",
        "8 PCMA/8000, bytes=0, receivers=1",
        "96 MPEG4-GENERIC/8000, bytes=0, receivers=1"
      ]
    }
  ]
}

Probe with the 2-way working, but the backchannel=0 removed:
{
  "producers": [
    {
      "type": "RTSP active producer",
      "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0",
      "remote_addr": "<IP_ADDRESS>:554",
      "user_agent": "go2rtc/1.9.2",
      "sdp": "v=0\r\no=-<PHONE_NUMBER><PHONE_NUMBER> IN IP4 <IP_ADDRESS>\r\ns=Media Server\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\na=control:*\r\na=packetization-supported:DH\r\na=rtppayload-supported:DH\r\na=range:npt=now-\r\na=x-packetization-supported:IV\r\na=x-rtppayload-supported:IV\r\nm=video 0 RTP/AVP 96\r\na=control:trackID=0\r\na=framerate:15.000000\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=recvonly\r\nm=audio 0 RTP/AVP 8\r\na=control:trackID=1\r\na=rtpmap:8 PCMA/8000\r\na=recvonly\r\nm=audio 0 RTP/AVP 8\r\na=control:trackID=5\r\na=rtpmap:8 PCMA/8000\r\na=sendonly\r\n",
      "medias": [
        "video, recvonly, H.264 Main 5.0",
        "audio, recvonly, PCMA/8000",
        "audio, sendonly, PCMA/8000"
      ],
      "receivers": [
        "96 H264, bytes=70882572, senders=2",
        "8 PCMA/8000, bytes=538560, senders=2"
      ],
      "recv": 72040308
    },
    {
      "url": "rtsp://admin:pass@<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026unicast=true\u0026proto=Onvif"
    },
    {
      "type": "RTSP passive producer",
      "url": "rtsp://<IP_ADDRESS>:8554/5f402a2ba0414b1503dd4a4436f299bc",
      "remote_addr": "<IP_ADDRESS>:51924",
      "user_agent": "ffmpeg/go2rtc",
      "sdp": "v=0\r\no=- 0 0 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.2\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\na=tool:libavformat LIBAVFORMAT_VERSION\r\nm=audio 0 RTP/AVP 96\r\nb=AS:48\r\na=rtpmap:96 MPEG4-GENERIC/8000/1\r\na=fmtp:96 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=158856E500\r\na=control:streamid=0\r\n",
      "medias": [
        "audio, recvonly, MPEG4-GENERIC/8000"
      ],
      "receivers": [
        "96 MPEG4-GENERIC/8000, bytes=101090, senders=2"
      ],
      "recv": 102254
    }
  ],
  "consumers": [
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell?audio",
      "remote_addr": "<IP_ADDRESS>:46928",
      "user_agent": "FFmpeg Frigate/0.14.0-ec88752",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.2\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 0 RTP/AVP 96\r\na=rtpmap:96 PCMA/8000\r\na=control:trackID=0\r\n",
      "medias": [
        "audio, sendonly, ANY"
      ],
      "senders": [
        "96 PCMA/8000, bytes=707200, receivers=1"
      ],
      "send": 742560
    },
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell",
      "remote_addr": "<IP_ADDRESS>:48792",
      "user_agent": "FFmpeg Frigate/0.14.0-ec88752",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.2\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=control:trackID=0\r\nm=audio 0 RTP/AVP 97\r\na=rtpmap:97 MPEG4-GENERIC/8000\r\na=fmtp:97 profile-level-id=1;mode=AAC-hbr;sizelength=13;indexlength=3;indexdeltalength=3; config=158856E500\r\na=control:trackID=1\r\n",
      "medias": [
        "video, sendonly, H264, H265",
        "audio, sendonly, MPEG4-GENERIC"
      ],
      "senders": [
        "96 H264, bytes=31072052, receivers=1",
        "97 MPEG4-GENERIC/8000, bytes=101090, receivers=1"
      ],
      "send": 31347359
    },
    {
      "type": "probe",
      "remote_addr": "<IP_ADDRESS>, <IP_ADDRESS>:59800",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15",
      "medias": [
        "video, sendonly, ALL",
        "audio, sendonly, ALL",
        "audio, recvonly, ANY"
      ],
      "receivers": [
        "0 ANY, bytes=0, senders=0"
      ],
      "senders": [
        "96 H264, bytes=0, receivers=1",
        "8 PCMA/8000, bytes=0, receivers=1",
        "96 MPEG4-GENERIC/8000, bytes=0, receivers=1"
      ]
    }
  ]
}

I got some assistance from Nick (Frigate contributor), who suggested I create an issue here since it appears to be a go2rtc problem. I would appreciate some help in getting it fully working.

And obviously, the two way audio doesn't work from the go2rtc dashboard either.

Why not simply:
streams:
  doorbell:
    - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif

?

Also, make sure Frigate is not consuming this stream during your test. I suggest you try with go2rtc standalone and later migrate your findings to Frigate.

If you really want to use the 2-way audio capable stream in Frigate as well, make sure to set ?backchannel=0 when consuming it in the Frigate detect or record roles, as realized in https://github.com/AlexxIT/go2rtc/issues/1134#issuecomment-2129496238.

In the following link you can see my frigate.yaml, and then you can see that I have one exclusive stream only for 2-way audio communication. This stream isn't used anywhere, except in my Home Assistant Frigate Card where I want the 2-way audio to happen.
https://github.com/felipecrs/dahua-vto-on-home-assistant/blob/164d142b7ee5e473e657e663848c2a140a8cd981/frigate/frigate.yaml
I know Amcrest is Dahua, but I don't know to how extent the same things apply. For example, I don't think you need to tinker with audio codecs (fix_vto_codecs.sh) like I do.

Probe can discover two way audio. It works fine. Are you sure you using HTTPS in your browser?

Just in case my first post was confusing. The 2-way audio should work with this configuration but it doesn't work when accessing the doorbell from go2rtc or frigate and both are behind a reverse proxy and using HTTPS.
New probe with go2rtc 1.9.3:
  streams:
    doorbell:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif#backchannel=1
      - ffmpeg:doorbell#audio=aac
    doorbell_sub:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1
      - ffmpeg:doorbell_sub#audio=aac

{
  "producers": [
    {
      "type": "RTSP active producer",
      "url": "rtsp://<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0/",
      "remote_addr": "<IP_ADDRESS>:554",
      "user_agent": "go2rtc/1.9.3",
      "sdp": "v=0\r\no=-<PHONE_NUMBER><PHONE_NUMBER> IN IP4 <IP_ADDRESS>\r\ns=Media Server\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\na=control:*\r\na=packetization-supported:DH\r\na=rtppayload-supported:DH\r\na=range:npt=now-\r\na=x-packetization-supported:IV\r\na=x-rtppayload-supported:IV\r\nm=video 0 RTP/AVP 96\r\na=control:trackID=0\r\na=framerate:15.000000\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=recvonly\r\nm=audio 0 RTP/AVP 8\r\na=control:trackID=1\r\na=rtpmap:8 PCMA/8000\r\na=recvonly\r\n",
      "medias": [
        "video, recvonly, H264",
        "audio, recvonly, PCMA/8000"
      ],
      "receivers": [
        {
          "codec": {
            "codec_name": "h264",
            "codec_type": "video",
            "level": 50,
            "profile": "Main"
          },
          "bytes": 238645074,
          "packets": 167643
        },
        {
          "codec": {
            "codec_name": "pcm_alaw",
            "codec_type": "audio",
            "sample_rate": 8000
          },
          "bytes": 1827200,
          "packets": 5710
        }
      ],
      "recv": 242556926
    },
    {
      "url": "rtsp://admin:pass@<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=0\u0026unicast=true\u0026proto=Onvif#backchannel=1"
    },
    {
      "url": "ffmpeg:doorbell#audio=aac"
    }
  ],
  "consumers": [
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell?audio",
      "remote_addr": "<IP_ADDRESS>:52644",
      "user_agent": "FFmpeg Frigate/0.14.0-b4384a1",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.3\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 0 RTP/AVP 96\r\na=rtpmap:96 PCMA/8000\r\na=control:trackID=0\r\n",
      "medias": [
        "audio, sendonly, ANY"
      ],
      "senders": [
        {
          "codec": {
            "codec_name": "pcm_alaw",
            "codec_type": "audio",
            "sample_rate": 8000
          },
          "bytes": 1827200,
          "packets": 5710
        }
      ],
      "send": 1918560
    },
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell",
      "remote_addr": "<IP_ADDRESS>:52550",
      "user_agent": "FFmpeg Frigate/0.14.0-b4384a1",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.3\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=control:trackID=0\r\n",
      "medias": [
        "video, sendonly, H264, H265",
        "audio, sendonly, MPEG4-GENERIC"
      ],
      "senders": [
        {
          "codec": {
            "codec_name": "h264",
            "codec_type": "video",
            "level": 50,
            "profile": "Main"
          },
          "bytes": 238645074,
          "packets": 167643
        }
      ],
      "send": 240835045
    },
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell",
      "remote_addr": "<IP_ADDRESS>:55744",
      "user_agent": "Lavf60.3.100",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.3\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=video 0 RTP/AVP 96\r\na=rtpmap:96 H264/90000\r\na=fmtp:96 packetization-mode=1;profile-level-id=4D0032;sprop-parameter-sets=Z00AMukAUAHjQgAAB9IAAOqcCAA=,aOqPIAA=\r\na=control:trackID=0\r\n",
      "medias": [
        "video, sendonly, H264, H265",
        "audio, sendonly, MPEG4-GENERIC"
      ],
      "senders": [
        {
          "codec": {
            "codec_name": "h264",
            "codec_type": "video",
            "level": 50,
            "profile": "Main"
          },
          "bytes": 190718412,
          "packets": 133957
        }
      ],
      "send": 192435861
    },
    {
      "type": "RTSP passive consumer",
      "url": "rtsp://<IP_ADDRESS>:8554/doorbell?audio",
      "remote_addr": "<IP_ADDRESS>:43602",
      "user_agent": "go2rtc/ffmpeg",
      "sdp": "v=0\r\no=- 1 1 IN IP4 <IP_ADDRESS>\r\ns=go2rtc/1.9.3\r\nc=IN IP4 <IP_ADDRESS>\r\nt=0 0\r\nm=audio 0 RTP/AVP 96\r\na=rtpmap:96 PCMA/8000\r\na=control:trackID=0\r\n",
      "medias": [
        "audio, sendonly, ANY"
      ],
      "senders": [
        {
          "codec": {
            "codec_name": "pcm_alaw",
            "codec_type": "audio",
            "sample_rate": 8000
          },
          "bytes": 2560,
          "packets": 8
        }
      ],
      "send": 2688
    },
    {
      "type": "probe",
      "remote_addr": "<IP_ADDRESS>, <IP_ADDRESS>:57832",
      "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Safari/605.1.15",
      "medias": [
        "video, sendonly, ALL",
        "audio, sendonly, ALL",
        "audio, recvonly, ANY"
      ],
      "senders": [
        {
          "codec": {
            "codec_name": "h264",
            "codec_type": "video",
            "level": 50,
            "profile": "Main"
          },
          "bytes": 670092,
          "packets": 470
        },
        {
          "codec": {
            "codec_name": "pcm_alaw",
            "codec_type": "audio",
            "sample_rate": 8000
          }
        }
      ]
    }
  ]
}

In the following link you can see my frigate.yaml, and then you can see that I have one exclusive stream only for 2-way audio communication. This stream isn't used anywhere, except in my Home Assistant Frigate Card where I want the 2-way audio to happen.
https://github.com/felipecrs/dahua-vto-on-home-assistant/blob/164d142b7ee5e473e657e663848c2a140a8cd981/frigate/frigate.yaml
I know Amcrest is Dahua under the hoods, but I don't know to how extent the same things apply. For example, I don't think you need to tinker with audio codecs (fix_vto_codecs.sh) like I do.

I must be failing to see something because I get wrong user/pass when following your advice.
  streams:
    doorbell:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
      - ffmpeg:doorbell#audio=aac
    doorbell_mic:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif#backchannel=1
    doorbell_sub:
      - rtsp://admin:{FRIGATE_RTSP_PASSWORD}@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1
      - ffmpeg:doorbell_sub#audio=aac

Probe:
streams: wrong user/pass

Info:
{
  "producers": [
    {
      "url": "rtsp://admin:pass@<IP_ADDRESS>:554/cam/realmonitor?channel=1\u0026subtype=1\u0026unicast=true\u0026proto=Onvif#backchannel=1"
    }
  ],
  "consumers": null
}

Thanks for your feedback. It looks like I read too much trying to set this up and overcomplicated things. It turned out the doorbell stream was giving wrong user/pass due to the "proto=Onvif" setting, but I removed it and now it seems to work. I'll do more testing tomorrow.

For future reference since I found a lot of conflicting information. The two-way audio works with these settings for the Amcrest AD410, go2rtc version 1.9.3, and Frigate version 0.14.0.
  streams:
    doorbell:
      - rtsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=0#backchannel=0
      - rtsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=0
      - ffmpeg:doorbell#audio=aac
    doorbell_sub:
      - rtsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=1
      - ffmpeg:doorbell_sub#audio=aac

Are you basically saying that your doorbell doesn't support proto=Onvif?

Are you basically saying that your doorbell doesn't support proto=Onvif?

II couldn't it to work with the "proto=Onvif" because it kept giving me wrong user/pass, even with VLC. So, it looks like the AD410 doesn't support it unless I'm missing something, but I'm not sure what else to do to confirm.

I think there's no secret. If:
rtsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=0

Is working in VLC but:
rtsp://admin:pass@ip:554/cam/realmonitor?channel=1&subtype=0&unicast=true&proto=Onvif

Is not, then I guess AD410 doesn't support it.
Fortunately, go2rtc's documentation doesn't suggest using unicast=true&proto=Onvif anywhere for Amcrest, so I don't think any documentation change is due.


Generated COM interface guid does not match winmd

See details in: https://github.com/youyuanwu/service-fabric-cs/issues/3
        var guidgen = typeof(IFabricQueryClient).GUID; //This does not work.
        var guid = Guid.Parse("c629e422-90ba-4efd-8f64-cecf51bc3df0");
        Debug.Assert(Debug.Equals(guid, guidgen), $"Not equal {guid} and {guidgen}");
        // Not equal c629e422-90ba-4efd-8f64-cecf51bc3df0 and 872b8dc7-d6af-3a59-9ecc-2edbb26e1ffc

The generated COM interface class IFabricQueryClient does not have the right guid that matches the COM definition.
The query interface failed.
Compile the program here to get repro:
https://github.com/youyuanwu/service-fabric-cs/blob/a8a890b3be9d1bb6a7c4c905509c1dcd158c54be/src/examples/Program.cs
It is likely that IID_Guid property of the generated interface is not present.

CsWin32 version: [e.g. 0.3.18-beta]

Your repro interface isn't in the metadata that CsWin32 generates from by default. But when I look at another COM interface like IFileIo that is included in the default metadata, I see this:
[Windows.Win32.Foundation.Metadata.Guid(295252374u, 4676, 18496, 171, 68, 72, 9, 117, 196, byte.MaxValue, 228)]
public interface IFileIo : IUnknown

The CsWin32-emitted code looks like this:
[Guid("11993196-1244-4840-AB44-480975C4FFE4"),InterfaceType(ComInterfaceType.InterfaceIsIUnknown),ComImport()]
[global::System.CodeDom.Compiler.GeneratedCode("Microsoft.Windows.CsWin32", "0.3.18-beta+dc807e7787")]
internal interface IFileIo

This is a correct guid.
Since CsWin32 doesn't discriminate metadata sources when generating guid attributes on interfaces, I can only speculate that the metadata you're drawing from doesn't define its guid the same way.
Can you review the attributes in the metadata for your interface as verify that it's using the same Metadata.Guid attribute? If so, can you include the ILSpy-decompiled form of it here for my review?

ILSpy for the cs dll:
// ServiceFabric, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
// Microsoft.ServiceFabric.FabricCommon.FabricClient.IFabricQueryClient
using System.CodeDom.Compiler;
using Microsoft.ServiceFabric;
using Microsoft.ServiceFabric.FabricCommon;
using Microsoft.ServiceFabric.FabricCommon.FabricClient;

[GeneratedCode("Microsoft.Windows.CsWin32", "0.3.18-beta+dc807e7787")]
public interface IFabricQueryClient
{
	unsafe void BeginGetNodeList(FABRIC_NODE_QUERY_DESCRIPTION* queryDescription, uint timeoutMilliseconds, IFabricAsyncOperationCallback callback, out IFabricAsyncOperationContext context);

	void EndGetNodeList(IFabricAsyncOperationContext context, out IFabricGetNodeListResult result);

ILSpy for winmd:
// Microsoft.ServiceFabric.winmd, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=null
// Microsoft.ServiceFabric.FabricCommon.FabricClient.IFabricQueryClient
using System.Runtime.InteropServices;
using Microsoft.ServiceFabric;
using Microsoft.ServiceFabric.FabricCommon;
using Microsoft.ServiceFabric.FabricCommon.FabricClient;
using Windows.Win32.Foundation;
using Windows.Win32.Interop;
using Windows.Win32.System.Com;

[Guid(3324634146u, 37050, 20221, 143, 100, 206, 207, 81, 188, 61, 240)]
public interface IFabricQueryClient : IUnknown
{
	unsafe HRESULT BeginGetNodeList([In][Const] FABRIC_NODE_QUERY_DESCRIPTION* queryDescription, [In] uint timeoutMilliseconds, [In] IFabricAsyncOperationCallback callback, [Out][RetVal] IFabricAsyncOperationContext* context);

	unsafe HRESULT EndGetNodeList([In] IFabricAsyncOperationContext context, [Out][RetVal] IFabricGetNodeListResult* result);

Your metadata apparently is using System.Runtime.InteropServices.GuidAttribute. That is not supported. You must use Windows.Win32.Foundation.Metadata.GuidAttribute, as I mentioned in my last message.


quickequip something doesnt work while you are in container

be in locker
take lantern
press Shift+E
lantern drops over the locker
try again via clicking on belt slot with lantern
it works

i had this happen outside of container too it dropped my tools on the floor, might be ping related when clicking and shift e close to eachother

fixed at some point


feat: add max voting power per pool

Summary by CodeRabbit

New Features

Introduced a new parameter, max_voting_power_per_pool, to manage voting power limits within pools.

Bug Fixes

Updated error message for ErrVotingPowerTooHigh to be more descriptive.

Refactor

Improved the logic for setting pool parameters in various test scenarios.
Updated the AssertPoolCanRun method to compare delegation based on voting power.

Tests

Added test cases to validate pool functionality under different voting power conditions.

Documentation

Added the max_voting_power_per_pool field to the API documentation.

Please also add the max voting per pool parameter in the x/bundles/keeper/msg_server_update_params_test.go test file

You mean in x/pool/keeper/msg_server_update_params_test.go ? There are no param changes in the bundles module... so not sure what to add there.

Please also add the max voting per pool parameter in the x/bundles/keeper/msg_server_update_params_test.go test file

You mean in x/pool/keeper/msg_server_update_params_test.go ? There are no param changes in the bundles module... so not sure what to add there.

Yep you're right, all good then


Electron version of app ending up at chrome-error://chromewebdata

When working on the electron version of the app, signing in redirects me eventually to https://qa-ims.bentley.com/?wtrealm=https%3A%2F%2Fqa-imsoidc.bentley.com%2F&wa=wsignin1.0&wreply=https%3A%2F%2Fqa-imsoidc.bentley.com%2Fsignin-wsfed&wctx=CfDJ8EX5Kg56z6hPiC8QAlcWdnN8ZtFl7paCO2Rt8vfBPVfBLFVPNinqWmua3OXo8swANKXStw4KoXijFTDe9ylzJ7V2ojchZCrKHf_cikOf-xmOaXS9NGtY-hPx9B1IE9y4uB1sf8YDQ28qoKAypfXBjuti0URv0PQRarhEIaCYnETU. From here the app attempts to load an invalid URL, which navigates to chrome-error://chromewebdata, but does not throw an error message. How can I fix this?
Edit* I've found that even when running as electron, in frontend/api/rpc.ts web app RPC is initialized, not electron. Is this intended behavior?
To reproduce:

Clone the repository
npm install, npm run build, npm run electron
Login and travel through the steps with console logging saved until it freezes on a blank IFrame.

For anyone else facing this issue, a fix is currently underway and will be pushed in the next couple of weeks.


Fix typo in RxStore

Two small changes to the KDoc in RxStore. One to avoid confusion between Coroutine Flows and RxJava Flowables. The other to fix an IDE warning about not being able to find persister because it is a function in another class.

The irony of having a typo in a PR addressing a typo is not lost on me...


Changes compute_image to prevent rebuilds

Changes compute_image from debian-cloud/debian-9 to projects/debian-cloud/global/images/family/debian-9 to prevent Terraform from constantly wanting to rebuild the nat instances.

I signed it!

Wrong commit user, closing.


Non-flasher images are not supported

So it cannot be used for Jetson Nano

[roman-mazur] This issue has attached support thread https://jel.ly.fish/#/support-thread~0ed38d20-8d0f-4d61-8288-36a3bd7739d0

That link above is to our forums, here https://forums.balena.io/t/flashing-jetson-tx2-via-usb/2472/48, just for reference, and at least 2 people asked about it.

@roman-mazur There is an updated version from @telphan that in theory should support the Nano production: https://github.com/balena-os/jetson-flash/tree/fix
But I am not getting it to work properly. The flash.xml file has to be replaced by mine: https://forums.balena.io/t/flashing-jetson-tx2-via-usb/2472/63?u=maxritter, but the device is not booting. Let me know if you have an idea what could be the reason.

Fixed by #14


Improve Advantage360 battery handling code

The current battery LED handling code has a couple of idiosyncrasies:

It has a bug where if the battery state of charge is exactly 80 then all of the indicator LEDs are extinguished.
It does not respect the CONFIG_ZMK_RGB_UNDERGLOW_BRT_SCALE like the rest of the code in rgb_underglow.c does (e.g. even the red right-module disconnected flashes), and so the LEDs always come on with full brightness.

I've added a routine which computes the correctly scaled brightness and simplified the code to use it; now there is a list of colors and thresholds which are easily configurable.
Let me know if you would like any changes! Happy to contribute (tested on a real Adv360 Pro).

Hi, thank you so much for the work you've done on these PRs! They look really well done and refresh a lot of the old code that hasn't been changed since the 360 pro was released. Thanks for targeting the latest Zephyr 3.5 branch too, as it will be good to get these changes in before releasing that update.

No worries at all! Will-do on the config PRs for the others. BTW the workflow had failure, but it looks spurious to me---or if not, are you able to tell from the logs there what the issue was (all I see is a non-terminal warning and then cmake exiting with code 1)?

Sorry for the delay sorting out the build failure, I had to get a ZMK dev environment set up. Building corne_right indeed does result in the compilation error
/home/khoek/code/zmk/app/src/split/bluetooth/service.c:54:41: error: storage size of 'update_led_data' isn't known
   54 | static struct zmk_split_update_led_data update_led_data;
      |                                         ^~~~~~~~~~~~~~~
compilation terminated due to -Wfatal-errors.

but I can pretty confidently say that that wasn't my doing! So evidently one of the shields is broken due to I guess some #include changing somewhere.

Thanks for looking into it, yeah it's probably some include somewhere, there have been issues with that before too. I might rework the build workflows to just build the 360 pro halves at some point. So long as most of trhe build workflowsa and pre-commit checks pass that's good with me

All tested, lgtm

Fixed the CI failure too, #6 got slightly muddled as i was rebasing to the latest ZMK, should all be sorted now


Update Solidity version in example

Woops, duplicate of #20 (which is better than this one :sweat_smile:)


Create aar files from kotlin_library jar rather than relying on android_binary

The primary goal this achieves is that it unlocks our ability to develop the Envoy mobile shim in kotlin rather than java.
The gist of this change is that android_library's implicit aar doesn't flatten its transitive dependencies. When using the kotlin rules, the kt_android_library rule creates a few underlying libraries, because of this the classes.jar in the aar we built was empty. This change separately builds the underlying *kt.jar file, and replaces the aar's classes.jar with the kotlin one.
https://github.com/lyft/envoy-mobile/issues/99
Signed-off-by: Alan Chiu<EMAIL_ADDRESS>For an explanation of how to fill out the fields, please see the relevant section
in PULL_REQUESTS.md
Description: Enable kotlin library development
Risk Level: low
Testing: ci, local
Docs Changes: n/a
Release Notes: n/a
[Optional Fixes #Issue]
[Optional Deprecated:]

Thanks @keith for the pair program to achieve this!
:)

@goaway I made a bunch of modifications so this PR would not have conflicts with your PR: https://github.com/lyft/envoy-mobile/pull/149
I'll have to make another PR to convert your API changes to Kotlin and do some clean up


clean_file_cache utility failing on files that are cleaned by other processes/threads

Traceback (most recent call last):
File "/web-apps/ResonantGeoData/django-rgd/rgd/tasks/helpers.py", line 11, in _safe_execution
func(*args, **kwargs)
File "/web-apps/ResonantGeoData/django-rgd-imagery/rgd_imagery/tasks/etl.py", line 87, in load_image
_populate_image_meta_models(image, image_meta)
File "/web-apps/ResonantGeoData/django-rgd-imagery/rgd_imagery/tasks/etl.py", line 36, in _populate_image_meta_models
with yeild_tilesource_from_image(image) as tile_source:
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/web-apps/ResonantGeoData/django-rgd-imagery/rgd_imagery/large_image_utilities.py", line 27, in yeild_tilesource_from_image
yield get_tilesource_from_image(image, projection)
File "/web-apps/ResonantGeoData/django-rgd-imagery/rgd_imagery/large_image_utilities.py", line 20, in get_tilesource_from_image
with image.file.yield_local_path(yield_file_set=True) as file_path:
File "/usr/lib/python3.8/contextlib.py", line 113, in __enter__
return next(self.gen)
File "/web-apps/ResonantGeoData/django-rgd/rgd/models/file.py", line 274, in yield_local_path
path = self.download_to_local_path()
File "/web-apps/ResonantGeoData/django-rgd/rgd/models/file.py", line 214, in download_to_local_path
clean_file_cache()
File "/web-apps/ResonantGeoData/django-rgd/rgd/utility.py", line 301, in clean_file_cache
paths = sorted(Path(cache).iterdir(), key=os.path.getmtime) # This sorts oldest to latest
File "/usr/lib/python3.8/genericpath.py", line 55, in getmtime
return os.stat(filename).st_mtime
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/rgd/file_cache/LC08_L2SP_187022_20190427_20211102_02_T1_T35ULA_SEA4.tif.aux.xml'

To mitigate this, we need to check out single files under a directory like we do for FileSets. An easy solution to this would be to make FileSet non-nullable

Actually, the real problem here is that clean_file_cache is not thread/proccess safe. Speciffically:
https://github.com/ResonantGeoData/ResonantGeoData/blob/7dd577eb089be437c420fa5ef34d00b33a205ded/django-rgd/rgd/utility.py#L301
The iter will grab a file and another thread could delete it before the sort evaluates os.path.getmtime


feat: .get() from the DAG API

So that the DHT can handle multiple block requests without blasting hundreds of requests. Needed for https://github.com/ipfs/js-ipfs/pull/856

Quick correction, this module uses the DAG API and therefore needs and function call there that can return multiple IPLD nodes.
This is intertwined with the GraphSync effort. @vmx do you already have code for this?

No, I haven't any code for this yet.

@achingbrain now that @vmx shipped getMany on IPLD, can you look into shipping this one? It is needed for the DHT effort https://github.com/ipfs/js-ipfs/pull/856

Just checking what the requirement is here - after chatting with @vasco-santos it doesn't sound like there's much to do from a DHT Endeavour perspective?
We can expose ipld.getMany as ipfs.dag.getMany (or perhaps just chain through if an array of CIDs is passed to ipfs.dag.get), and then this module can use it when exporting a  DAGNodes worth of DAGLinks which should be a nice performance improvement, but it doesn't sound like that would hold up the DHT effort.
@diasdavid have I missed something?  What changes did you have in mind that would resolve this issue?

It doesn't need to block the DHT effort but it will quickly be a issue if we do a DHT query for every single block we need to fetch. Using the .getMany is a first step towards a maintainable solution.

I've implemented this in the shiny new decomposed ipfs/js-ipfs-unixfs-exporter repo.


Don't display decimal places for Bytes or Percentages

@gauntface: Are you open to a PR that will remove the decimal places when outputting Bytes (we don't have to worry about fractional bytes, thankfully...) and Percentages (which don't have to be that accurate)?
I feel like it would clean up the display a bit.

Yeah please do. I'm going to warm you that the tests and code for that are not great, I just got it working and it's overdue a refactor so feel free to do any PR on this I just apologise in advance


checkSupport made static

What
Specify that checkSupport of GOVUKFrontendComponent is static instead of private.
Why
Change in approach to how we allow people to run their own function to check if a component is supported. This change means now components that extend GOVUKFrontendComponent can overload checkSupport (as can be seen in the tests).
Fixes https://github.com/alphagov/govuk-frontend/issues/5225#issuecomment-2360526691

@patrickpatrickpatrick I've rebased on public-js-api as the renaming of $module to $root had impacted this PR. While I was there I noticed that the isSupported method was no longer necessary (as we want people to override checkSupport so they can provide more details), so I added an extra commit to remove it. If it all looks OK to you, feel free to merge as it was already approved 😊


Avoid extra dependencies from a split vertex

This fixes #286.

@perrydv Thanks for working on this, I'm keen for this fix whenever it gets merged into devel.  I tried a few test cases on branch refactor-modelDef, and it works as I expected.

Thanks @danielturek.  There was a small bug revealed by the "exact results of RW_multinomial sampler" test.  New checks running now.

Great.
On Fri, May 12, 2017 at 4:05 PM, perrydv<EMAIL_ADDRESS>wrote:

Thanks @danielturek https://github.com/danielturek. There was a small
bug revealed by the "exact results of RW_multinomial sampler" test. New
checks running now.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/nimble-dev/nimble/pull/333#issuecomment-301173052,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AETW4eBzm4FeBLeXA7RNOYGDiFHvFB_kks5r5Lt0gaJpZM4NYRP7
.


Add logical types to the spec tests

The test_json_schema_spec.py test doesn't currently validate that logical types conform to their required attributes (e.g. decimal has precision and scale and is of type bytes). It probably should. The question is: how.
The most basic implementation would just validate the built-in logical types.
A more sophisticated version would validate other types. Unfortunately, we don't know what other (non-builtin) logical types might be defined. This is the whole point of logical types. I suppose we could make logical types pluggable such that Recap allowed you to define schemas, but this adds complexity, and I don't think it really adds any value aside from validation.
As such, I'm thinking just validating the builtin types is good enough.
Ranom thought: another way to think about this is as compile-time vs. runtime errors/validation. As long as the CST is parsable and conforms to the Recap spec, it's said to be (compile-time) valid. It makes no guarantees about the validity of logical types (and potentially alias references?). These would be considered runtime failures. This is a semantic distinction, but could let us get around this issue (and potentially strip  out the alias logic validation we currently have).
@mjperrone thoughts here?

I think validating the built-in logical types will be easy with a discriminated union, basically. Like I did with RecapType.oneOf
I think it makes sense to validate as much as possible with the JSON Schema. I think there should be another more detailed validation process that covers correctness fully. I think each validation method should be clear about what it does and does not check for in documentation.

SGTM!

Closing as dupe of #350


Only works on one account at a time?

I have two Office 365 accounts, one for work and one personal. I have separate Outlook windows open, one for each. I just noticed that the MHA icon is only open on one of them. I've noticed in the past that sometimes it's available, sometimes not, but I think this is the explanation.

Is the same true for other add-ins? MHA doesn't have any role in determining when the icon is active - that happens on Outlook's end.

Stephen,
Late last night I had to reboot for an unrelated reason and (not saying it’s necessarily because of this) since then, it shows up in both instances of outlook. On top is larry<EMAIL_ADDRESS>on the bottom is larry.seltzer<EMAIL_ADDRESS><EMAIL_ADDRESS>On the other hand, there are other add-ins on one and not the other. I’ve always found management of this stuff in Outlook confusing. For instance, I would like to uninstall the Send to Slack thing, but I don’t see it anywhere in any Outlook setting.
So consider the support contact closed, it’s obviously not anything wrong with MHA. But is there a way to get a big picture on all these Outlook add-ins?
Thank you
Larry Seltzer
<EMAIL_ADDRESS>973.378.8728
From: Stephen Griffin<EMAIL_ADDRESS>Sent: Monday, November 30, 2020 9:17 PM
To: stephenegriffin/MHA<EMAIL_ADDRESS>Cc: Larry Seltzer<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [stephenegriffin/MHA] Only works on one account at a time? (#243)
Is the same true for other add-ins? MHA doesn't have any role in determining when the icon is active - that happens on Outlook's end.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/stephenegriffin/MHA/issues/243#issuecomment-736171828, or unsubscribehttps://github.com/notifications/unsubscribe-auth/ABKOSUO2EHWVQVPHA2HDHVLSSRG27ANCNFSM4UIAYJ5A.


Fixing packages versions to last supported

CI runs were failing due to a possible external issue regarding gcloud packages obtained via apt-get.
To avoid this the versions of the last working artifacts were fixed

!ci-build-me

Closing, see here.


bctoolbox: 5.2.16 -> 5.2.30

Description of changes
The "update" doesn't contain any changes. Just the version number
changed, probably because to stay inline with the other libraries of the
ecosystem.
Things done

Built on platform(s)

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

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

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

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review 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/)
23.05 Release Notes (or backporting 22.11 Release notes)

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

[x] Fits CONTRIBUTING.md.

Well, I believe linphone is no longer maintained...

Well, I believe linphone is no longer maintained...

In that case I might be able to pick it up, depending on my employer, and if you other maintainers are ok with it. (There could be conflict of interest, I work for the company making Linphone)

Closed by #252773.


Inject Config instead of spawning new instances

First step to move from instantiating a Config() each time to reuse the same instance.
I think we can investigate a bit if all the places where we are using config is really required or can be handled in a different way or config was there only to instantiate other dependencies that can also be injected.
Next steps could be stop using dictionary base access to the config parameters and use class attributes, this will help to reduce possible discrepancies like config options renaming breaking stuff, but not sure if you want to do it or you like to stay with the dictionary based access @aeon0
Also, I see many tests failing but not sure why CI job is passing

I wanted to do something similar as well, my concern was the fact that the config is being used concurrently by several threads, there are only few lines of code (read: that I could find, I didn't spend much time on this tbh) that actually modify the config and those do not happen often, still they do happen.
In addition, there are currently some workflow within botty that might spawn additional threads without killing the old ones. That is something to be addressed, that is true. I'm also not sure whether these threads do actively modify the config or not.
My 2 cents here would be to also make the Config class accessible in a thread safe way. That would probably require to have a dedicated class to handle the config, whether you have it attribute or dictionary based I don't think really mind, personally. @aeon0 might have a stronger opinion on this though.
That said, I just wanted to give my opinion on this, and I acknowledge also the fact that race-condition with the current implementation would probably be extremely rare to happen, if ever.


Improvement of Spike Time Tiling Coefficient (STTC)

Improvement of Spike Time Tiling Coefficient (STTC) calculation by utilizing numpy function. (in spike_train_correlation.py )
Details:

use numpy.where to find overlapping tiles in run_T
some comments elaborated/changed

This enhancement was inspired by Thierry Nieus code: https://github.com/thierrynieus/Spike-Time-Tiling-Coefficient-

Coverage remained the same at 88.678% when pulling e45d1a7fee5c896e905cb0c7bd9d483078334a6b on INM-6:enh/accelerated_sttc into 8fd05f66f640e785a086fdcdb34bf9e254d1a358 on NeuralEnsemble:master.


Potential bug in Bernoulli spawning

In a private conversation, Prof. Jiang-Min Zhang (@wdlang06) pointed out that the Bernoulli spawning implementation does not seem right.
https://github.com/joachimbrand/Rimu.jl/blob/12b61c29b8914cfefcf2fbc5f01bb0f8676d4c40/src/StochasticStyles/spawning.jl#L322
where it should be rand() < prob.
I do know that the Bernoulli strategy is somewhat experimental, and WithReplacement() is the default spawning strategy (correct me if I am wrong). It is still worth checking though.

Thanks for pointing this out. It was indeed a bug. It was addressed in #233.


Fix/update main.zig

Tokenizer.next was renamed to Tokenizer.nextToken in 7a7b2b51e94fdf5aecf836e97989ca79dbb5efb5
Removes the ./ from the path to test.html to make it work on Windows
Formatting changes are coming from zig fmt

Tbh I need to just switch main.zig to the library file it's supposed to be and export things properly from it. I've been using it to test things and make sure they're working properly, but your other PR should make that mostly unnecessary.

Sounds good, closing since the nextToken thing has been fixed (the only real important thing in this PR)


Wallet: Pay to NIP-69 Nostr Offer STRings

Successor to LNURL-P and Bolt12 that uses Nostr as a transport, provides upgrade to Lightning Addresses for trust-minimization
https://github.com/nostr-protocol/nips/pull/1460

I was just reading that from Vitor’s note. Looks dope!


setMinimumDate & setMaximumDate when OnMonthChangedListener

How to set minimum date when month changed?
I tried to change minimum date by calling newState().edit().setMinimumDate but it's not working

Any process on this ? @dandc87 or @quentin41500 ? really not working. cv_calendar.newState().setMinimumDate(CalendarDay.from(2019, 8, 12))

Not working for me too. Neither newState() or state().edit()
To get it to work I had to do a downgrade in the implemented version


Allow running scaler with a fixed size instance buffer

This will help fleets where instance startup time is slow, by allowing them to configure enough free instances to handle a certain amount of load while new instances spin up.

Hi @moskyb - wondering if I could get a review on this to see if it is worth continuing to pursue?

i was literally just coming here to look for this, bump


Document the use of files.resin.io for building OOT kernel modules

We have a simple demo project that builds OOT kernel modules for devices here: https://github.com/resin-io-playground/kernel-module-build
This is related to https://github.com/resin-io/hq/issues/16
 Front conversations

An issue with the current approach is that if the module depends on other modules, insmod does not smartly load the dependencies, resulting in "Unknown symbol" errors. This can be work around by manually modprobe'ing the dependencies to force them to load, but hopefully there can be a cleaner, smarter process to handling this in the future.


Duplicate instance

Bug description
If Shotr is already open in the background and you attempt to open Shotr using the desktop shortcut you'll receive an error about trying to open a duplicate instance.
Steps to reproduce

Confirm Shotr is running in the background
Try to open Shotr using the desktop shortcut

Actual result: Message popup that says it's a duplicate instance.
Expected result: Shotr should recognize that it's already open and display the current instance.
Screenshots

Happening again

Happening again

https://github.com/shotr-io/shotr-3/pull/51


Handle thread interrupt in server client execute loop.

Handling mirrors ThriftServer while loop handling.
Issue found while running trino + accumulo.
Resolves: #2621

@nikita-sirohi Thanks for the explanation! It helps a lot.
(Note: I updated your markdown blocks in your comment above, so it looks better... in case you were curious why I edited your comment.)
I'll have to see where this pattern is being used elsewhere... it feels wrong, but if it's being done that elsewhere, I'm curious why. Ideally, if we know that this can manifest as ClosedByInterruptException when opening a socket, we should probably have a separate catch block just for that to handle it differently than other IOExceptions, so we don't retry forever and maybe the interrupt exception gets propagated instead.
I'm not sure I understand what you mean about wasn't sure if either createClientTransport or TTimeoutTransport.create had the appropriate information to special case this exception, but I suspect this will be obvious if we try to handle it differently.
I'm not familiar with trino. What circumstance with that caused you to see this? Does it just have a command-line interface and you hit Ctrl+C while it was opening a socket? Or does it interrupt Accumulo threads routinely by some other mechanism? I know I haven't seen this very often... these threads don't normally get interrupted while opening sockets, so this is a very strange edge case for me.

Re "What circumstance with that caused you to see this?":
Trino is a distributed SQL query engine: https://trino.io/ . Essentially, trino will spawn a number of threads to execute tasks against whatever the backing database/APIs are. If a query is aborted (ctrl+c as you asked about, etc), or a separate task fails, etc, the thread will be interrupted.
Most of the time I've seen this has been from ctrl+c called, but have seen this from queries failing/getting aborted in other ways as well (OOMs, or bad data).
Trino has some out of the box plugins, including one for accumulo, which from looking at the code I suspect will have this same problem, but have not tried it out. We (my employer) wrote an us-specific plugin that uses trino to talk to accumulo/do some other things; we found that over time, performance would degrade until eventually no queries were serviceable. We saw the endless loop of "WARN ThriftUtil: Failed to open transport..." and traced from there.
Not at all surprised this is such an edge case -- was surprised to see that opening sockets while threads are interrupted works this way.

Re "wasn't sure if either createClientTransport or TTimeoutTransport.create had the appropriate information to special case this exception" --
it looked to me like these functions were doing very specific things, and not doing much "logic" with exceptions beyond wrapping them as TTransportExceptions and handing them to the caller. I also wasn't sure if every caller would want to see this exception handled the same way. I also wasn't sure if there were other such exceptions that would need special casing.

Re "I'll have to see where this pattern is being used elsewhere... it feels wrong, but if it's being done that elsewhere, I'm curious why."
Honestly, beyond this and a bit of other debugging, I haven't spent a ton of time digging through accumulo internals. I saw the patch tracked in ACCUMULO-3030/77226b05bbfc204ec45e3aefb5ea580fb5b9b5af and did a best effort pattern match; not much more to it :) .
Let me know and will adjust the PR as needed. Thanks for all the conversation!

I'm thinking that this patch addresses only one case, but there could be other places where this might happen. For example, we have the same problem in ManagerClient.execute, ManagerClient.executeGeneric, and ManagerClient.cancelFateOperation. There are multiple places in ThriftUtil where the log message Failed to open transport to {} is logged. Two of those places are when calling TTimeoutTransport.create and the other two are when setting up TSaslClientTransport.
For the TTimeoutTransport.create case, I wonder if the right solution is to catch ClosedByInterruptException and throw a new InterruptedException. The Threads' interrupted state is already set when the ClosedByInterruptException is raised by the underlying Socket code. I think that ThriftUtil.createClientTransport should not handle the InterruptedException and should let  it be handled by the caller. In the ServerClient and ManagerClient cases, the InterruptedException should be handled outside of the while loop and Thread.interrupted should be called to reset the Threads' interrupt state.
For the TSaslClientTransport case, I don't think we have an opportunity to catch ClosedByInterruptException. Instead we would have to see if that might be the cause of one of the exceptions that it raises and then throw a new InterruptedException.

Thanks everyone for the feedback. Want to make sure I understand the salient points here:

If we go with the "Thread.currentThread().isInterrupted()" solution, we should reset the interrupted state -- this makes 100% sense to me, can/will fix.
Need to move the exception to the try/catch so that the finally executes (and add a bit more detail to the exception) -- again, makes total sense if we go with the while loop soln
This patch addresses only one case, but there could be other places where this might happen. Makes sense. Wanted to make sure I understand a few points though @dlmarion :

I think that ThriftUtil.createClientTransport should not handle the InterruptedException and should let it be handled by the caller.
That was my inclination as well.

In the ServerClient and ManagerClient cases, the InterruptedException should be handled outside of the while loop and Thread.interrupted should be called to reset the Threads' interrupt state.
Re-calling Thread.interrupted makes sense to me, but why handle this outside of the while loop as opposed to in the try/catch? Is the thought here surrounding the loops in a try/catch that checks for an InterruptedException and converts it to an AccumuloException? Or at that point, why check for the exception at all?

For the TTimeoutTransport.create case, I wonder if the right solution is to catch ClosedByInterruptException in TTimeoutTransport.openSocket and throw a new InterruptedException.
This seems like a good option; my only concern here would be that the original exception is explicitly thrown as an IOException and the InterruptedException is not thrown. We're essentially patching over that behavior. I don't understand well enough the reasoning behind the original behavior to know if this is a bad idea for some reason.

For the TSaslClientTransport case, I don't think we have an opportunity to catch ClosedByInterruptException. Instead we would have to see if that might be the cause of one of the exceptions that it raises and then throw a new InterruptedException.
That makes sense -- could just check for (and then reset) thread state interrupted the way I did in the original PR.

Re-calling Thread.interrupted makes sense to me, but why handle this outside of the while loop as opposed to in the try/catch? Is the thought here surrounding the loops in a try/catch that checks for an InterruptedException and converts it to an AccumuloException? Or at that point, why check for the exception at all?

I guess I was looking at how TTransportException was handled (logged) and it didn't break out of the loop. As long as you break out of the loop somehow I think that is sufficient.

This seems like a good option; my only concern here would be that the original exception is explicitly thrown as an IOException and the InterruptedException is not thrown.

It seems to me that ClosedByInterruptException is both an IOException and an InterruptedException as the reason it's thrown is the IO thread is interrupted by another thread, and then the interrupted state is set on the IO thread. I suggested throwing an InterruptedException in this case so that callers would know to handle the interrupted state appropriately.

could just check for (and then reset) thread state interrupted the way I did in the original PR

You could do that, but there may be a case where the parent class to ClosedByInterruptException is thrown ( I don't actually know if this is true). AsynchronousCloseException is the parent, has a similar description, but does not describe setting the interrupt state.
I went back and read what @ctubbsii wrote:

Another alternative to consider: everywhere we throw new TTransportException because of an IOException, we could check the IOException is an instanceof ClosedByInterruptException and instead of wrapping it with TTransportException, we throw UncheckedIOException and throw that instead. There's only a few such occurrences in our code.

If we changed it to the following, then I think we would handle more cases but be less intrusive:
Another alternative to consider: everywhere we throw new TTransportException in ThriftUtil.createClientTransport because of an IOException, we could:

check the IOException is an instanceof AsynchronousCloseException
check if the Thread is interrupted and if so reset the interrupt state
and instead of wrapping it with TTransportException, we throw UncheckedIOException instead.

👍 Sounds good. Thanks!
Will update the PR when I get a minute.

Updated with requested changes. Thanks for the feedback.

The other changes are suggestions, but I'm not 100% sure that's the solution we want to go with. I'm not super confident with handling this situation. @dlmarion WDYT?

Would it be best for us to jump on a quick call? Let me know.

I'm good with these changes, they fix the original problem. I'm working in the Thrift code in another branch and can consolidate into a utility method if needed.

Will do, thanks!


Django: Application Insights accepts TelemetryProcessor or TelemetryClient

fork django middleware from application insights repo.
django middleware now accepts a TelemetryClient that is aware of
telemetry processor.
enable test verifications for the middleware in django tests.

More descriptions are in #150 .

Wow, nice cleanup and refactor, much clearer!  Thank you!