support for node-20

Closes https://github.com/phoenix-actions/test-reporting/issues/43
This is a breaking change, see https://github.com/hashicorp/vault-action/issues/526

would love to have this merged

Can you please merge this ASAP
node 16 warning is so stressful!

@IanMoroney not sure why the build is failing on this, I opened a new branch with the exact same changes and the build succeeds...
I thought it was to do with GitHub permissions needed as it seems to fail here - https://github.com/phoenix-actions/test-reporting/blob/main/src/main.ts#L186-L195 and that says it needs the checks: write permissions, but I've had no luck

there is a permission now required @JakeTowers in the ci workflow.
permission:
  checks: write

Tested successfully in #47 . Merged to main, so will close the PR in favour of that one with successful CI builds


country-capital-city data is quite broken

It seems that cities with non-ascii symbols are cut off.
For example:
{"country" : "Brazil","city" : "Bras"},
{"country" : "Costa Rica","city" : "San Jos"},
{"country" : "Faroe Islands","city" : "T"},

Yeah, this one is messed up. I fetched the data from db, but the encoding was not right. I will try to check if I can fix this.

It would be better to keep this issue open until it's fixed.

fixed


Some plugins can break Vitest coverage report

Describe the bug
When using the plugin vite-plugin-conditional-compile and adding // #v-ifdef DEV and // #v-endif comments in my code, Vitest marks all code as 100% covered (istanbul).
This also happens if I use its upstream plugin unplugin-preprocessor-directives (vite-plugin-conditional-compile is a wrapper of this upstream plugin) and adding // #if and // #endif in my code.

If I remove the directives, the coverage works again:

Similar issues can be found at:

https://github.com/unplugin/unplugin-vue-components/issues/333
https://github.com/unplugin/unplugin-vue-components/issues/219 (maybe related, this is mentioned in the previous link)

This issue is also filed here: https://github.com/KeJunMao/vite-plugin-conditional-compile/issues/9
I'm not sure if this is a bug in the plugin or Vitest itself, but I'm wondering if someone can pin down the cause of this problem?
Reproduction
https://stackblitz.com/edit/vitest-dev-vitest-4tlh7n?file=src%2Findex.ts
System Info
System:
    OS: Linux 5.15 Ubuntu 22.04.3 LTS 22.04.3 LTS (Jammy Jellyfish)
    CPU: (16) x64 AMD Ryzen 7 4800U with Radeon Graphics
    Memory: 5.08 GB / 7.44 GB
    Container: Yes
    Shell: 5.1.16 - /bin/bash
  Binaries:
    Node: 20.6.1 - ~/.nvm/versions/node/v20.6.1/bin/node
    Yarn: 1.22.21 - ~/.nvm/versions/node/v20.6.1/bin/yarn
    npm: 10.1.0 - ~/trie/node_modules/.bin/npm
    pnpm: 8.12.1 - ~/.local/share/pnpm/pnpm
  npmPackages:
    @vitest/browser: ^1.1.0 => 1.1.0
    @vitest/coverage-istanbul: ^1.1.0 => 1.1.0
    @vitest/ui: ^1.1.0 => 1.1.0
    vite: ^5.0.10 => 5.0.10
    vitest: ^1.1.0 => 1.1.0

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

Any plugin that breaks source maps will break code coverage. There's nothing to do on Vitest's side. Plugin developers should add source map support to their plugins.

@AriPerkkio I see, thanks for the explanation. I'm closing this now.

@AriPerkkio Hey sorry to bother again but may I ask a silly question? Is there a way to prevent the coverage provider from source mapping to the original source code? i.e. I want the coverage provider to display the transformed code after all plugins but before sending into Vitest?

I can instruct how to debug the source maps and transformed code before Vitest's coverage providers handle it, if that's what you are looking for.

I'm very thankful for the offer. But I think I've found the problem which is this plugin is using magic-string to transform the source and generate sourcemaps, in which, if I understand correctly, all language information is lost and that's why the coverage provider can not do a proper mapping.
To get a valid coverage report, my first thought was making the code transformed by this plugin be treated as the original source, thus my previous question.
But now I think I can just switch to an AST transformation plugin that can properly generate sourcemaps and I'll implement the logic myself.

the plugin I mentioned is using magic-string to transform the source and generate sourcemaps, in which, if I understand correctly, all language information is lost and that's why the coverage provider can not do a proper mapping.

We have some test cases where we use magic-string to modify sources and then check coverage report is correct. It's easily reproducible there that if we don't handle source maps correctly in the plugin, the test cases of coverage will fail. These test cases use @ampproject/remapping to merge source maps of earlier transform steps.
https://github.com/vitest-dev/vitest/blob/039814bd0eb9ed7b7f6e649a1c3def38d5174a5d/test/coverage-test/vitest.config.ts#L12-L37
The third party Vite plugins should output source maps correctly.


Please refer to the code code example in the README.md file.

Please refer to the code code example in the README.md file.
Originally posted by @neilrackett in https://github.com/mesmotronic/air-ane-androidid/issues/2#issuecomment-512192475

I work with adobe flash and adobe animate:
Please check these steps and tell me that is something wrong:
---->For this line:
"Enables Adobe AIR 3.1+ for Android to access ANDROID_ID. That's it."
I can choose Air 23 for target.
---->For this:
Adds about 2KB to your app. Released under BSD license.
app.xml

com.mesmotronic.ane.androidid

I created a XML file and  added above content inside of it.  In adobe flash "purplish setting" ---> "General" tab I included my XML file.
---->Also I add ANE file as you showed in your video (YouTube)
-----> Last step I added following code:
import com.mesmotronic.ane.AndroidID;
trace(AndroidID.ANDROID_ID);
--------------------------------------------------------That 's it---------------------------------


Removed 3rd party telnet and replace with nodejs net

The 3rd party telnet hasn't updated in years so removed it and replaced it with node's net utility.
Runs nearly the same and the change to the code is minimal.
Also removed the require for express, not sure why it was there but the rest of the code had no reference to it.

It was there because, at the time, windows telnet could not connect to the game with the nodejs builtin. Is this still the case?

Would be odd if there is a problem. Let me get a vm spun up so I can test it and I'll get back to you on that.

If I recall correctly express was originally there because https://github.com/shawncplus/ranvier-webbuilder existed inside the core but I split it out later after deciding to implement a plugin system

Gotcha, so definitely no reason for it to be in there then.
Waiting for an iso to download so I can begin the testing for windows. Will be doing Windows 7 since that seems to be the most popular.

Took awhile, but seems you can't even run nodejs on Windows 10 without it blowing up. So not going to worry about that.
As for Windows 7, went without a hitch. Ran the server and connected to it locally without any errors or hang ups.

Honestly, I wouldn't remove the telnet server code. The telnet specification hasn't changed in years so having a library which hasn't updated lately is fine. Secondly, net is just a tcp connection. It doesn't interpret the data. The Telnet specification includes a fair amount of control sequences which aren't part of a tcp connection. Assuming the existing libraries handles those then removing would mean that you would now need to interpret those. I imagine that old telnet clients which send out those control sequences will either error out or will go into funky modes because acknowledgement sequences weren't received.
I imagine what will happen if these aren't handled is that you will get user input with a bevy of invisible/non-ascii characters before and after input which you will end up needing to filter out.

Yeah I'm slightly apprehensive as well. I remember running into weird issues like this one in particular https://github.com/shawncplus/ranviermud/blob/master/src/events.js#L78

Odd, I thought what hath is talking about was happening already because I saw that same line.


CASMINST-5357 Adding cubs tool

Adding cubs tool here in case we can't get the image change in.
Description

Checklist Before Merging

[ ] If I added any command snippets, the steps they belong to follow the prompt conventions (see example).
[ ] If I added a new directory, I also updated .github/CODEOWNERS with the corresponding team in Cray-HPE.
[ ] My commits or Pull-Request Title contain my JIRA information, or I do not have a JIRA.

backport /main


Error: Repository '@buildifier _prebuilt' is not defined

Hi, when I upgraded this repo from 0.2.1 to 0.4.0 I started getting the following build error:
INFO: Invocation ID: 3ac6f011-c75e-44e9-be22-5c78d2ade8f6
ERROR: /home/dummy/BUILD:27:
12: every rule of type mypy_test implicitly depends upon the target
'@mypy_integration//:mypy_config', but this target could not be foun
d because of: error loading package '@mypy_integration//': Unable to
 find package for @buildifier_prebuilt//:rules.bzl: The repository '
@buildifier_prebuilt' could not be resolved: Repository '@buildifier
_prebuilt' is not defined.
ERROR: Analysis of target '//dummy:test_mypy' fa
iled; build aborted: Analysis failed

I can fix the errors by patching this repo as follows. Obviously these lines are there for a reason and I am not saying you should comment them out, just hoping this might help pinpoint the error.
diff --git a/BUILD b/BUILD
index c25a0c6..b426456 100644
--- a/BUILD
+++ b/BUILD
@@ -1,18 +1,18 @@
-load("@buildifier_prebuilt//:rules.bzl", "buildifier")
+# load("@buildifier_prebuilt//:rules.bzl", "buildifier")

 package(default_visibility = ["//visibility:private"])

-buildifier(
-    name = "buildifier.check",
-    lint_mode = "warn",
-    mode = "diff",
-)
+# buildifier(
+#     name = "buildifier.check",
+#     lint_mode = "warn",
+#     mode = "diff",
+# )

-buildifier(
-    name = "buildifier",
-    lint_mode = "fix",
-    mode = "fix",
-)
+# buildifier(
+#     name = "buildifier",
+#     lint_mode = "fix",
+#     mode = "fix",
+# )

 licenses(["notice"])  # MIT

I'm affected by the same issue

Me too, any status on this?

Adding the snippet of the buildifier-prebuillt right before the mypy snippet inside the WORKSPACE fixed it for me:
http_archive(
    name = "buildifier_prebuilt",
    sha256 = "b3fd85ae7e45c2f36bce52cfdbdb6c20261761ea5928d1686edc8873b0d0dad0",
    strip_prefix = "buildifier-prebuilt-5.1.0",
    urls = [
        "http://github.com/keith/buildifier-prebuilt/archive/5.1.0.tar.gz",
    ],
)

load("@buildifier_prebuilt//:deps.bzl", "buildifier_prebuilt_deps")

buildifier_prebuilt_deps()

load("@bazel_skylib//:workspace.bzl", "bazel_skylib_workspace")

bazel_skylib_workspace()

load("@buildifier_prebuilt//:defs.bzl", "buildifier_prebuilt_register_toolchains")

buildifier_prebuilt_register_toolchains()

For others, this fix is in on main, and not in a cut release

@dmadisetti @alexeagle
Is this issue fixed in the latest release (0.4.0)?


[Bug] Network request over HTTPS

Describe the bug
Hi, I was following the book and using reqwest blocking to request a url over HTTPS.
The app launches and crashes instantly with this error :
Invalid argument(s): Failed to load dynamic library 'libnative.so': dlopen failed: cannot locate
symbol "SSL_do_handshake" referenced by
"/data/app/fr.cerclo.Cerclo-FpPF8zqv3_KY6JL-J0lH3w==/lib/arm64/libnative.so"...

I've already tried to add native-tls or rustls feature to reqwest, to no avail.
How do you usually fix this ?
Thanks :pray:
Codegen logs with RUST_LOG=debug environment variable
-

To Reproduce
Just follow the avoid async section inside Async in Rust chapter, and call any url over https://
Expected behavior
No response
Generated binding code
No response
OS
MacOS M1
Version of flutter_rust_bridge_codegen
1.38.1
Flutter info
[✓] Flutter (Channel stable, 3.0.5, on macOS 12.4 21F79 darwin-arm, locale en-TH)
    • Flutter version 3.0.5 at /Users/romain/Development/sdk/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f1875d570e (2 weeks ago), 2022-07-13 11:24:16 -0700
    • Engine revision e85ea0e79c
    • Dart version 2.17.6
    • DevTools version 2.12.2

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /Users/romain/Library/Android/sdk
    • Platform android-33, build-tools 30.0.3
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
    • Xcode at /Applications/Xcode-beta.app/Contents/Developer
    • CocoaPods version 1.11.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2020.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)

[✓] VS Code (version 1.69.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.44.0

[✓] Connected device (3 available)
    • SM G955F (mobile) • ce061716aaf37cd40d • android-arm64  • Android 9 (API 28)
    • macOS (desktop)   • macos              • darwin-arm64   • macOS 12.4 21F79 darwin-arm
    • Chrome (web)      • chrome             • web-javascript • Google Chrome 103.0.5060.134

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

Version of clang++
13.1.6 (clang-13<IP_ADDRESS>.5)
Version of ffigen
6.0.1
Additional context
No response

I guess it wants to use that function in system? That does not sound like a problem with frb itself, but rather a general question with Rust: How to run https calls on Android/iOS with Rust? Maybe ask that in Rust/Android/iOS/reqwest community

Yes you're correct.
By the way I got it fixed by using native-tls-vendored feature from reqwest.
I guess it's either this or setting the certificate / security context on the client (but not sure where to grab it in the context of Flutter).

Feel free to close it 👌


fix label issue with digest images

When tring to set a digest to the image tag the helm chart fails with the following error:
Upgrade "sonarqube" failed: cannot patch "sonarqube-sonarqube" with kind Deployment: Deployment.apps "sonarqube-sonarqube" is invalid: [metadata.labels: Invalid value: "lts-community@sha256:3596d14feb065a31ce84cef60cc3ecfb7b47233ef860fd85c0d4e465f676c9f7": must be no more than 63 characters, metadata.labels: Invalid value: "lts-community@sha256:3596d14feb065a31ce84cef60cc3ecfb7b47233ef860fd85c0d4e465f676c9f7": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue',  or 'my_value',  or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')]
This change escapes all non word characters (especially @ in this case) and truncates the label to 63 characters.
Please ensure your pull request adheres to the following guidelines:

[x] explain your motives to contribute this change: what problem you are trying to fix, what improvement you are trying to make
[x] Document your Changes in the CHANGELOG.md file of the respected chart as well as the Chart.yaml

@jCOTINEAU is there anything I should do to move this forward?

Hello @jan-kantert Sorry for the small delay, i will trigger the tests on the CI while testing manually.
On my side, when checking out your branch and running
helm template  -n sonarqube --set deploymentType=Deployment .
i get the following error:
Error: template: sonarqube/templates/deployment.yaml:16:60: executing "sonarqube/templates/deployment.yaml" at <regexReplaceAll>: wrong number of args for regexReplaceAll: want 3 got 4
I am guessing it is because the initial | inject the version onto the regexReplaceAll which end up having the version as an extra args ?
Could it be something like that instead ?
{{ regexReplaceAll "\\W+" (tpl .Values.image.tag .) "_" | trunc 63 | trimSuffix "-" | quote }}

Hello @jan-kantert Sorry for the small delay, i will trigger the tests on the CI while testing manually.
On my side, when checking out your branch and running helm template -n sonarqube --set deploymentType=Deployment .
i get the following error: Error: template: sonarqube/templates/deployment.yaml:16:60: executing "sonarqube/templates/deployment.yaml" at <regexReplaceAll>: wrong number of args for regexReplaceAll: want 3 got 4 I am guessing it is because the initial | inject the version onto the regexReplaceAll which end up having the version as an extra args ?
Could it be something like that instead ? {{ regexReplaceAll "\\W+" (tpl .Values.image.tag .) "_" | trunc 63 | trimSuffix "-" | quote }}

Yes that looks better. I will apply that.

While i understand the reasoning why the chart should be sure to produce valid yaml, triming all field would be cumbersome, is it something that could be fixed when passing the problematic value ?

I am not completely sure if we actually need this label at all. Might be useful in some cases but it also just mirrors the image field of the container.

In that case and if you are fine with it, if we do not see a very strong and clear need for adding that feature considering what we said, i will close the PR

In that case and if you are fine with it, if we do not see a very strong and clear need for adding that feature considering what we said, i will close the PR

@jCOTINEAU  Its still broken the way it is. It is not possibe to use LTS tags. Should we fork the chart locally instead?
Solution should be either:

Make sure the label is not getting too long
or: Remove the label

Doing neither does not solve it.

I might have overlooked the issue and not understood correctly the issue.
Can you give us the sample value file with every sensitive stuff removed?
Does the issue occurs because you use image:  with the image sha and not the tag ? Was this working before or is this a first start ?

I might have overlooked and not understood correctly the issue, may you excuse me
Can you give us the sample value file with every sensitive stuff removed? Does the issue occurs because you use image:  with the image sha and not the tag ? Was this working before or is this a first start ?

This is working without a sha. However, we would like to set explicit image versions so we added a sha. Especially since there is only one lts tag (and no 9-lts, 10-lts etc). Otherwise, we might end up installing a major update over night.

That is indeed a very fair use case considering we do not provide lts version specific tags.
Considering we have a lot of app.kubernetes.io/version: iterations, could you factorize everything under a template like in charts/sonarqube/templates/_helpers.tpl and propagate also on the dce chart ?
Huge thanks for you contributions.

Hello @jan-kantert, huge thanks again for contributing to our helm chart.
As it has been quite a while, I will close the PR and create an hardening ticket on our backlog
When we will work on this task, we will reuse your work and acknowledge you as a contributor.


Please provide permalink for latest stable and edge builds

I don't ever want to go to a website to download a new version of the binary.
I would like to use a script of my own that downloads from a permalink (cf cli permalinks) or homebrew (cf cli homebrew instructions).
Thanks!

@shalako cloudfoundry/homebrew-tap is automatically updated: https://github.com/cloudfoundry/homebrew-tap/blob/master/bosh-cli.rb

Great news, thank you! I don't know how anyone would have known that so I've provided a PR to document it. I also recommend updating docs at https://bosh.io/docs/cli-v2.html

PR pulled in. Better docs installation section is upcoming as I write up GA CLI docs.


react native analytics from segmentio

Segment published a library for react native https://github.com/segmentio/analytics-react-native

yeah this should be noted somewhere on the main README page I think, just out of deference to the authors of the original software... I was sitting here scratching my head trying to figure out why we were using this fork of a 3rd party lib before realizing it was because the official API is fairly new!


Only allow highlighted dropdown item to be selected using ENTER.

This addresses issue #623, which is specific to tagging.  I verified the change against the basic demo.html file and there is no impact.
I also checked this change against the various Plunker in #520 and their respective issues are no longer there.

:+1:

:+1:


Regression in v2.26.0 causing undefined local variable or method collection_parameter'` error

When using with_collection_parameter, errors are raised when rendering these view_components. I've traced this back to #638. When removing that change, everything seems to work fine.
Steps to reproduce
A minimal sample application that reproduces the error is here: https://github.com/mejackreed/test-view-component-regression
And you can see a minimal view_component that causes the issue in https://github.com/mejackreed/test-view-component-regression/commit/2cedf0cc1d929c577e3bcb156580f94b2ed5b7f9
Expected behavior
view_components should be able to render
Actual behavior
errors are raised
undefined local variable or method `collection_parameter' for ProductComponent:Class

System configuration
Rails version: v6.1.3
Ruby version: v2.7.2
Gem version: v2.26.0

@mejackreed Thanks for the report! Would you mind opening an issue with a failing test? Sadly we didn't have test coverage for this scenario, and I can take a look sooner if I can pull in an already failing test.

Thanks @BlakeWilliams . I've looked into creating a failing test for this, but unfortunately it passes 😢 .
My guess here is that something in the test harness is calling compile at which point the error is no longer raised.
https://github.com/github/view_component/compare/main...mejackreed:failing-test?expand=1
I don't have much experience with the view_component internals or how are the tests are setup. Any direction you could point me on this would be appreciated.

This occurs when using MyComponent#with_collection as well

@mejackreed Ah, I think I see what's going on. Since everything is precompiled before the tests run it will be hard to reproduce by defining a component before the test suite runs.
I think it may be necessary to define a component directly in the test. e.g.
def test_collection_parameter_compile
  my_component_klass = Class.new(ViewComponent::Base)

  render_inline my_component_klass.new
end

Thanks for the pointer @BlakeWilliams . You can get a failing test now from here: https://github.com/github/view_component/commit/77411a045fc0f122ae9b44994df633b8391992a5

Seeing this as well : )

Thanks again for the report!
2.26.1 was just released which should have the fix for collections included.

Thanks so much @BlakeWilliams


Factory refactor + testing, define Locale and Provider constants

Wanted to make Faker\Factory a bit more SRP-friendly...broke out separate Locale objects and associated factory, as well as an object to handle locale qualification.  Full unit tests included (code coverage report attached).  These are injected into the Faker\Factory via a new init.php, required from Faker/Factory.php.  Also pulled Locale and Provider ID constants out into const.php.  Unit tests make use of the Mockery engine, which has been included in composer.json.
No actual functionality changes should result, Faker creation and usage is exactly as before.  Ran multi-thousand iteration comparison runs, no appreciable performance impact.

Bah forgot to squash the last merge, will correct

Sorry, I fail to see that as an improvement. I know you put a lot of effort into it, but I especially fly away from overengineering.
Feel free to reopen if you think you can illustrate a significant improvement in usage for Faker (not in code style, which is subjective).


JsonschemaPlugin

This PR hardcodes __version __ in the jsonschema package. This fixes #1108.

Did you see the pkg-resources plugin, doesn't it do that for you?

Did you see the pkg-resources plugin, doesn't it do that for you?

Yes, but pkg-resources did not solve the issue (see #1108).
Let me know if you want to merge this PR, and I will fix the Python 2.7 f-string issue.

Superseded by #1110.


Container is not booting BUG:

name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: ''

Describe the bug
A clear and concise description of what the bug is.
Link to the blitz that caused the error
https://stackblitz.com/edit/node-bxeuqr
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Version of webcontainer
Hash: 7286dbe8d47d3473cde7be488b7d048fb59b05f2
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):
Browser name  = Chrome
Full version  = 90.0.4430.212
Major version = 90
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
performance.memory = {
totalJSHeapSize: 65061278,
usedJSHeapSize: 58711870,
jsHeapSizeLimit:<PHONE_NUMBER>
}
Additional context
Add any other context about the problem here.

The web container seems to load for me. I see a check next to Booting WebContainer and I was able to run the script in the terminal like the following screenshot shows:

Do you see different behavior?

This may be worth keeping open. I agree that the screen does not seem to make it clear that everything has finished loading. The title Booting WebContainer makes it sound like it is still working.

Yup why not
On Fri, May 21, 2021 at 10:31 AM Milan Raj @.***> wrote:

This may be worth keeping open. I agree that the screen does not seem to
make it clear that everything has finished loading. The title Booting
WebContainer makes it sound like it is still working.
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/stackblitz/webcontainer-core/issues/24#issuecomment-845654302,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASYVK3LPNS4NVECEFBDYLXTTOXSKNANCNFSM45IMH4ZQ
.

It's a good point. We should stop the spinner and mark it in red if that happens just to let the user know that something happened and is not waiting indefinitely 👍 .

That screen is indeed misleading 🙂

We dramatically adjusted the webcontainer loading states. Thanks again for the feedback!


error_message() does not work

running
job = backend.retrieve_job(ran_job.job_id())

on a previous job that had an error. Followed by
job.error_message()

returns no message

This must be fixed in the IBMQConnector module.

I would like this fixed in 0.8. @diego-plan9 can i assign this to you.

Yes - I think somebody else inspected the root cause when the issue was created and might be able to provide more info: maybe @delapuente ?


Added Azure.VM.AMA

PR Summary
Fixes #1868
Added Azure.VM.AMA rule.
PR Checklist

[x] PR has a meaningful title
[x] Summarized changes
[x] Change is not breaking
[x] This PR is ready to merge and is not Work in Progress
Rule changes

[x] Unit tests created/ updated
[x] Rule documentation created/ updated
[x] Link to a filed issue
[x] Change log has been updated with change under unreleased section

Other code changes

[ ] Unit tests created/ updated
[ ] Link to a filed issue
[ ] Change log has been updated with change under unreleased section

@BernieWhite
Could you brainstorm on this one with me.
It all started with #1868
Currently there is no proper way of configuring this programmatically. The only real option seems to be Auto-deploy Azure Monitor Agent. I've requested the docs team to update accordingly. I feel it's a bad idea to point customers to manually configure each virtual machine from the portal. With this option also Azure Security Agent (ASA) extension is installed which is needed for Defender for Cloud and specific data collection rules and assignments. These collection rules are not available programmatically, only the basic ones.
Hence, the change in the rule. The rule instead focus towards customers installing the agent for general usage for collecting monitoring data.
It will then be supported by additional rules like Azure.VM.AMADataCollectionRule/Azure.VM.AMADCR and Azure.VM.AMADataCollectionRuleAssignment/Azure.VM.AMADCRAssignment that checks for that at least one rule is configured and that at lest one assignment is configured.
When documentation and steps are available programatically for the Defender for Cloud part, we introduce an additionally rule like Azure.AMADefender that checks for that the agent is installed, ASA extension is installed, correct data collection rules and assignments are configured.

@BenjaminEngeset Having a look at this the AMA is deployed via Azure Policy via an assignment Default Defender for Cloud provisioning Azure Monitor agent. My guess is there won't will be an auto provisioning configuration similar to previous Log Analytics Agent configuration because Microsoft Defender for Cloud is mostly already configured via policy and Microsoft.Security/autoProvisioningSettings was more an artifact of before policy was the primary mechanism to configure MDfC.
So making the rule aligned to OpEx is a good approach. Not entirely sure on the DCR rules, but let's have a look at those in a separate PR. Either way it's still a good rule to have.

@BenjaminEngeset Having a look at this the AMA is deployed via Azure Policy via an assignment Default Defender for Cloud provisioning Azure Monitor agent. My guess is there won't will be an auto provisioning configuration similar to previous Log Analytics Agent configuration because Microsoft Defender for Cloud is mostly already configured via policy and Microsoft.Security/autoProvisioningSettings was more an artifact of before policy was the primary mechanism to configure MDfC.
So making the rule aligned to OpEx is a good approach. Not entirely sure on the DCR rules, but let's have a look at those in a separate PR. Either way it's still a good rule to have.

Thanks for the great feedback @BernieWhite and information.

@BernieWhite
Ready for review.


Support Timestamp to Time decoding

Addresses QLDB driver issue https://github.com/awslabs/amazon-qldb-driver-go/issues/56.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Codecov Report

Merging #183 (d08edb5) into master (beaf154) will increase coverage by 0.03%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master     #183      +/-   ##
==========================================
+ Coverage   74.63%   74.67%   +0.03%
==========================================
  Files          25       25
  Lines        4929     4935       +6
==========================================
+ Hits         3679     3685       +6
  Misses        744      744
  Partials      506      506

Impacted Files
Coverage Δ

ion/unmarshal.go
68.72% <100.00%> (+0.40%)
:arrow_up:

Continue to review full report at Codecov.

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


fix bug in homepage prototype

Fix bug that allowed guest users to see the go-to-userpage button, as well as a bug that threw an error if a user tried logging out, back in, and logging out again (due to a typo in the function name).

It's good practice to have each of these fixes in a separate PR. It seems like additional work, but it prevents any feedback on one change from holding back the push of the other. No need to change for this PR but having multiple, small PR's is preferred.

My bad! I'll do this moving forward, thanks!


[WIP] Feature/claude 3

Issue #, if available:
#125
Description of changes:

Add claude v3 sonnet option
Multi modal input including text and image

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

This branch gives me the following console error when trying to chat with any of the versions of claude including the new 3.

Thanks for the quick development!
I'm really looking forward to the release of this feature.
I tried the current pull request(b26b602e8787d45012dc89e0175e9e1feee6b4c7), but I feel that RAG (Bot function) is not working properly. It seems that knowledge is not loaded.
Is it correct that the RAG function is not yet supported in Claude3?
I tried checking the return value of compose_args_for_anthropic_client in backend/bedrock.py using breakpoints, etc., but it didn't seem to be searched for knowledge if it was local, so I couldn't understand it.

@rexsilex @Taikono-Himazin
This feature is work in progress. Please wait until merged into main branch, thank you!

I'm sorry for making noise from the side.
I look forward to seeing this merged!

Thanks for your quick work!


Coordinate with other databases on migrating mappings to obsoleted ECs

We recently created procedures to ensure that we map to the most up to date ECs. This is in principle good, but in practice if we are too ahead of other databases, this is detrimental.
For example, 2 years ago in

#23533

we noticed EC:<IP_ADDRESS> (DNA helicase) has been transferred to:

[EC <IP_ADDRESS>] DNA 5-3 helicase
[EC <IP_ADDRESS>] DNA 3-5 helicase

This is reflected in enzyme-database.org: https://www.enzyme-database.org/query.php?ec=<IP_ADDRESS>
However, expasy.org has no indication that this EC is retired, **despite it being at least 2 years since **: https://enzyme.expasy.org/EC/<IP_ADDRESS>
Furthermore, UniProtKB still has quarter of a million annotations to this EC:
https://www.uniprot.org/uniprotkb?query=ec:<IP_ADDRESS>
This is perhaps not surprising: just as it is expensive to re-annotate a do-not-annotate GO term to a choice of two more specific terms, this would be the same for EC.
Note that this means since 2022 we are missing propagations for 277k genes. In many cases there is not an equivalent annotation as granular.
Proposal:

We retain mappings to obsoleted ECs, if other databases have not migrated. We can of course still tag the mapping as to an obsolete entry (we do this in mondo all the time for analogous situations).

exceptions can of course be made if we feel the annotations that would be propagated will be redundant, too high level, etc

We coordinate with uniprot, expasy.org, and even EC themselves on migration policies, timing, announcements

cc @sjm41

Hi @kaxelsen
Do you know why UniProt and expasy do not yet reflect these changes? The EC has been updated 2 years ago (see https://github.com/geneontology/go-ontology/issues/23533)
Thanks, Pascale

The reason is that EC <IP_ADDRESS> was transferred to two different new EC numbers and was associated to 2700 Swiss-Prot entries. As there are two new EC numbers the update of the Swiss-Prot entries is not just a simple search and replace, but a job that requires update of every single family of helicases, and this work has been on-going since June 2022 and STILL is!!!
The two new EC numbers are already available and I suggest that you already now start citing those and stop using EC <IP_ADDRESS>. I should of course have asked you to do that 2 years ago, but it is never too late.

The two new EC numbers are already available and I suggest that you already now start citing those and stop using EC <IP_ADDRESS>. I should of course have asked you to do that 2 years ago, but it is never too late.

@kaxelsen in fact we did this 2 years ago and that is precisely the problem. We did this ahead of other database and now we are lacking propagations (it turns out that in this particular case the propagations would be incorrect as there are many misannotations of uniprot IDs to EC:<IP_ADDRESS> but we would not expect this to be true more generally)

So, in this case, I guess we have the option of adding back the EC:<IP_ADDRESS> mapping to the parent term GO:0003678 DNA helicase activity, and thus have all three mappings in the GO (for now):
GO:0003678 ! DNA helicase activity [ EC:<IP_ADDRESS> ]
    |_GO:0043138 ! 3'-5' DNA helicase activity [ EC:<IP_ADDRESS> ]
    |_GO:0043139 ! 5'-3' DNA helicase activity [ EC:<IP_ADDRESS> ]

That solution would allow EC2GO mappings for proteins in UP annotated to either the old EC:3 term or the new EC:5 terms (I see there is a mixture right now).
Would that be the 'correct' solution here, for the time-being?
A more general point is whether GO should use ExplorEnz or EXPASY as it's 'source of truth' for EC (as discussed before) - in this case, ExplorEnz tells us that EC:<IP_ADDRESS> is 'deleted/transferred' (since 2021), whereas EXPASY tells us it's still valid (as Chris said).  I think this is an unusual case though.

From @kaxelsen

The helicases are a very special one-of-a-kind case of the reasons I told you about. If there had been a one-to-one transfer of the EC number, it would have been easy just to make a search and replace, but it is not possible in this case, as there are two new EC numbers. Part 2 is that there are exceptionally many cross-references to Swiss-Prot and many of the entries there have not been updated for a very long time, so that is why it has taken so long to find out which of the two new EC numbers they should be annotated with.

So, be assured, this is a one-off, that is if you include RNA helicases that will result in the same messy situation.

You bet there is a check. That is why we did not delete EC <IP_ADDRESS> yet, from ENZYME. Don’t forget this EC number is not obsolete in our system. If I had deleted it, the result would have been fatal errors that before has resulted in complete crashes of nightly Swiss-Prot updates. To clarify, as long as EC <IP_ADDRESS> is used in UniProtKB it will still be active in ENZYME (and NOT obsolete). I am looking very much forward to the day I can delete EC <IP_ADDRESS>.
Cheers,
Kristian

@cmungall Do you want to add the old EC:<IP_ADDRESS> to the parent DNA helicase term as Steven suggests? Or would that create too many false positive annotations?

Do you want to add the old EC:<IP_ADDRESS> to the parent DNA helicase term as Steven suggests? Or would that create too many false positive annotations?

The main thing I want out of this ticket is an agreed on SOP for GO EC mapping management. I believe we have that:

we use enzyme-database.org as SoT for new EC terms, and map to these prospectively (even if they have no annotations yet)
we are conservative in removing EC mappings, and use expasy as SoT for determining if an EC is "effectively still active"

While it seems expasy vs enzyme-database differences are rare I think it's still good to have a firm SOP here.
Should we take the DNA helicase specific case over to

https://github.com/geneontology/go-annotation/issues/5261

I think the best solution here is to fix the uniprot-EC and uniprot-KW annotations at source and restore the mapping
But I am tending towards restoring the mappings anyway because it's not like it brings in new false positives as we are already getting misannotations from the KW!


Inconsistent definitions of Data and Target classes

Hi all,
I came across some inconsistencies between the styles used in data.py and target.py, which make the integration of new subclasses unnecessary complicated.
While data.py is rather consistent and adheres to the proposed usage of getter and setters, target.py could be improved such that the user can experience a common interface across different target classes.
In my opinion, the biggest problem is that Target does not mark its variables as private (leading underscore), which makes it cumbersome to implement proper getter/setter functions to perform type checking. I'd propose to change Target to the code below and add default setter/getters as has been done in the Data class.
class Target(BaseTarget):
    def __init__(self):
        super().__init__()
        self._data = None
        self._confidence = None
        self._action = None

Hi @vniclas,
You are correct.  Target should implement setters/getters as you describe. I have opened #98 where I implemented setters and getters for the base classes, as well as for a few more used by AUTH. I think this resolves the main issue (i.e., having these fields as private variables in the Target class). Let me know what you think.

Hi @passalis,
thanks for looking into the issue. I directly commented on your PR.


JDBC support

Hi, I have looked into this. Ideally, we would want to have something like https://github.com/xerial/sqlite-jdbc for libsql. I tried using the same jar with some modifications to support libsql, but I don't think that is viable, especially because libsql also runs in standalone mode.
I would be interested in writing a driver. I think we should first start with a POC for the sqld server, and figure out an embedded version later. I am experienced with Java and SQL databases, however, not with database internals, so would require some help on that front.

Thanks @manakbisht. If you want you can start with the http only libsql jdbc driver. It would translate JDBC calls into http requests to sqld.
Here's the sqld http api specification:
https://github.com/libsql/sqld/blob/main/docs/HTTP_V2_SPEC.md
https://github.com/libsql/sqld/blob/main/docs/HTTP_V1_SPEC.md
https://github.com/libsql/sqld/blob/main/docs/HRANA_3_SPEC.md
https://github.com/libsql/sqld/blob/main/docs/HRANA_2_SPEC.md
https://github.com/libsql/sqld/blob/main/docs/HRANA_1_SPEC.md
Please let me know if you have any questions.

@haaawk sqld supports both HTTP/1.1 & /2. However, the server timeouts when I try to use HTTP/2. Here's an example snippet -
HttpRequest request = HttpRequest.newBuilder()
        .uri(new URI("http://localhost:8080/v2"))
        .timeout(Duration.of(10, ChronoUnit.SECONDS))
        .GET()
        .version(HttpClient.Version.HTTP_1_1) // replacing with HTTP_2 causes an HttpTimeoutException
        .build();

HttpResponse<String> response = HttpClient.newHttpClient()
        .send(request, HttpResponse.BodyHandlers.ofString());

System.out.println(response.statusCode());
System.out.println(response.body());

This is the sqld server log -
ERROR sqld::h2c: http2 connection error: http2 error: connection error detected: unspecific protocol error detected
Took me a while to figure out because 2 is the default. Does this have to do with Java or sqld? Am I missing some config?

v1 and v2 in the path are not versions of HTTP protocol but versions of HRANA protocol. It's an aplication level protocol that we use.

Regarding support for HTTP/2. I believe sqld should support it so it's worth investigating why it does not work for you.

Is sqld printing any logs?

This must be something specific to your local setup. I tried curl to the managed instance and it works using HTTP/2:
╰──> curl -v https://tests-haaawk.turso.io/v2
*   Trying <IP_ADDRESS>:443...
* Connected to tests-haaawk.turso.io (<IP_ADDRESS>) port 443 (#0)
* ALPN: offers h2,http/1.1
* (304) (OUT), TLS handshake, Client hello (1):
*  CAfile: /etc/ssl/cert.pem
*  CApath: none
* (304) (IN), TLS handshake, Server hello (2):
* (304) (IN), TLS handshake, Unknown (8):
* (304) (IN), TLS handshake, Certificate (11):
* (304) (IN), TLS handshake, CERT verify (15):
* (304) (IN), TLS handshake, Finished (20):
* (304) (OUT), TLS handshake, Finished (20):
* SSL connection using TLSv1.3 / AEAD-AES256-GCM-SHA384
* ALPN: server accepted h2
* Server certificate:
*  subject: CN=tests-haaawk.turso.io
*  start date: Aug 29 11:42:48 2023 GMT
*  expire date: Nov 27 11:42:47 2023 GMT
*  subjectAltName: host "tests-haaawk.turso.io" matched cert's "tests-haaawk.turso.io"
*  issuer: C=US; O=Let's Encrypt; CN=R3
*  SSL certificate verify ok.
* using HTTP/2
* h2 [:method: GET]
* h2 [:scheme: https]
* h2 [:authority: tests-haaawk.turso.io]
* h2 [:path: /v2]
* h2 [user-agent: curl/8.1.2]
* h2 [accept: */*]
* Using Stream ID: 1 (easy handle 0x7f9082810a00)
> GET /v2 HTTP/2
> Host: tests-haaawk.turso.io
> User-Agent: curl/8.1.2
> Accept: */*
>
< HTTP/2 200
< content-type: text/plain
< content-length: 44
< access-control-allow-origin: *
< vary: origin
< vary: access-control-request-method
< vary: access-control-request-headers
< date: Mon, 16 Oct 2023 06:55:15 GMT
< server: Fly/55f8eaa0 (2023-10-09)
< via: 2 fly.io
< fly-request-id: 01HCVM8XHVFXEPNP1QNMFSSDRY-waw
<
* Connection #0 to host tests-haaawk.turso.io left intact
Hello, this is HTTP API v2 (Hrana over HTTP)%

v1 and v2 in the path are not versions of HTTP protocol but versions of HRANA protocol. It's an aplication level protocol that we use.

I understand that. I was not referring to the HRANA protocol. HttpClient.Version.HTTP_1_1 & HttpClient.Version.HTTP_2 in the Java code refer to the HTTP protocol. The documentation section I linked mentions the following,

Hrana over HTTP runs on top of HTTP. Any version of the HTTP protocol can be used.

This according to me implies, both HTTP/1.1 and HTTP/2. Am I misunderstanding this?

Took me a while to figure out because 2 is the default.

I was referring to the Java HttpClient here.

This must be something specific to your local setup.

Possibly. I am unable to use HTTP/2 with curl as well. So, the Java code is not the problem here.
$ curl --http1.1 http://localhost:8080/v2
Hello, this is HTTP API v2 (Hrana over HTTP)%
$ curl --http2 --max-time 10 http://localhost:8080/v2
curl: (28) Operation timed out after 10005 milliseconds with 0 bytes received

The only difference I see here is that I am running the instance locally.

You also run http vs https but it might be some flag on the sqld that you're missing. I will check if there's any relevant flag we're using on turso platform.

Hi,
We just released JDBC driver for LibSQL/Turso: https://github.com/dbeaver/dbeaver-jdbc-libsql (Apache license)
It is a general purpose JDBC, in version 1.0 it supports most basic JDBC features. Currently we use it in DBeaver and CloudBeaver for LibSQL but perhaps it worth mentioning in the list of community SDKs.


Adjust GLIBCXX test guarding use of std::atomic_load(ptr)

I didn't realize that the prior number I picked inadvertently included
a 4.9 version that did not in fact support this feature.
Changing to the new value will not have any more "false positives" (error
by incorrectly thinking the feature is present), but does make a "false
negative" (avoid the feature even though it's supported) for gcc 5 and
gcc < 6.2, even though it would work there. That will still behave
correctly, though at a very slight performance penalty, but VFXPlatform
skips from gcc 4.8 to gcc 6.3, thus leapfrogging over those false
negative cases. So I'm going to not care that we get less than maximal
performance from some compiler+library versions that we are unlikely to
use.

I can verify it works.


Triggered arm limits when too close to stage

Created a trigger that checks whether the robot has moved into the
danger zone around the stage and should limit the arm, removing these
limits when it clears the same radius.

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

#16  👈
#15
#14
#10
#13
#9
#8
#11
#5
#12
main

This stack of pull requests is managed by Graphite.

Merge activity

Feb 25, 10:04 AM EST: @BruceMcRooster started a stack merge that includes this pull request via Graphite.


making tests pass since cl-async-future compat changes

Note that this requires the latest git version of cl-async-future.

Is this ever going to get in?


Tooltip doesn't work on iOS (14.4)

Bug report
The Tooltip component isn't working on iOS.
Current Behavior
Tapping on a tooltip component doesn't show the content
Expected behavior
Content shows when tapping a Tooltip component
Reproducible example

Load up this page on iOS (14.4 is what I used):

https://www.radix-ui.com/docs/primitives/components/tooltip

Tap the + in the example.

Suggested solution
Content should show on tap events
Your environment
Below is my env, but it's also not working on whatever your website env is.

Software
Name(s)
Version

Radix Package(s)
@radix-ui/react-tooltip
0.1.1

React
n/a
17.0.2

Browser
Safari iOS
14.4

Assistive tech
n/a

Node
n/a
v14.17.3

npm/yarn
npm
6.14.13

Operating System
iOS
14.4

oops, wrong repo


Gantt (re)calculations any time after the named day

I am making this a separate request related to a comment made on the Gantt-past-midnight suggestion: allow Gantt CHART modification to take place on any day, so that revisions to the schedule on a note of one day can be calculated in the chart after that midnight, or many days later. Days go well past 24:00, and being away from the desktop without a mobile version of Obsidian makes it impossible for the Gantt Chart to ”catch up” when back at the desk, even if the source schedule has been modified in a mobile app. (If validation of data-entry date is needed, for teams or other work purposes, then the latest ”calculated-on” time-stamp could be added automatically at the bottom of the G-chart.)

Mermaid is no longer supported.


[Suggestion]

Because KC3 Kai cannot translate equipment and ship text on the API screen, this means that makes it difficult for those who are trying to look for that one ship quickly in the the list.
However Strategy Room has the translations and also a better sort order function. Could a column be included under ship and equipment list with the original japanese names on it so that we can search from strategy room, and then just cross reference it with our game screen?

The technical difficulty for translating equipment/text is that KC3 can't tell what ship or equipment are currently displayed on your screen. Including a column of this would then simply show all the ship/equipment name that you can simply look up from other site.

I get that, and that is exactly what I currently do, using Strategy Room to sort my ships, pick the one i'm looking for, then googling the Japanese name, then going back to the Game screen and looking for that character.
Just thought the extra column could eliminate the extra step and streamline things. ATM, it's easier to use KCT whenever I need to do anything other than sortie-ing, resupply and repairs, rather than KC3 Kai + Google + KC Wiki when I want to Modernize/Organize Fleet/Equipment etc.

Actually, if you navigate to the "Equipment List" tab, all equipment is listed there, along with their Japanese name, their stat boost, who are currently equipping it, it's modding level (the blue stars) and how many are in reserves (not equipped):

The equipment itself was categorized by their type, which you can tell from the image in:

Actual game's Refitting room, by looking the equip image icon on the left of each equipment
"Ship List" tab in the Strategy room, which shows also the category image of each equipment
Admiral Panels, which shows what equipment are being equipped by each ships in the fleets. By default they show only the category image, but if you hover above them, the equipment name itself will appear as tooltip.

My suggestion for your suggestion is we can simply add a tooltip to the equipments in the "Ship List" tab, showing the name of each equipment being used by a certain ship.

Sorry if this sounds really really demanding.
Actually my main goal is to make selecting ships in modernization easier, because it is the only menu where they do not show you a portrait summary before you insert it into a modernization slot. Meaning if I want to use a particular one of my various Level 1 Chiyodas, I can't tell which is which.
It is also because the Strategy Room's Ship List is already so good at sorting that I always refer to it to find out what ships I have are duplicate that are fodder, but once I know which one I want to throw into the modernization bin, picking them out from the Game Screen is a tougher ordeal because I cannot read.
Thanks for your suggestion.

Well, One thing you can do is switch to Japanese
you can still easily find ships on the list via their face
and see the japanese characters beside the icons
just switch back to english when you're done


Fix handling of Artifacts for users without file permissions

This seems like the simplest solution to fix https://github.com/CliMA/ArtifactWrappers.jl/issues/12. I thought about making artifact_dir  optional, but then users can run into this problem even if they are simply not developing Insolation.jl, too.
This PR should make Insolation artifacts more useable by dependents.
We haven't run into this issue in ClimaAtmos, but I suspect that that is because we have file permissions on central, which do not exist in the GHA runners.

bors r+


Introduce proper entity removal mechanism

We use proxy style to handle non-number data associated with a component.
// Add component somewhere
addComponent(world, Foo, eid);
FooProxy.get(eid).allocate(new foo());

// Remove component somewhere
removeComponent(world, Foo, eid);

// Release the associated resource in a system
const exitFooSystem = exitQuery(defineQuery([Foo]));

export const fooSystem = (world: IWorld): void => {
  exitFooSystem(world).forEach(eid => {
    const proxy = FooProxy.get(eid);
    proxy.foo.close();
    proxy.free();
  });
};

A problem is that (if I'm right) exit query doesn't work if entity is removed with removeEntity(). This non resource release problem can cause memory leak. Also it can cause a problem when an entity id is recycled.
It's nice if we can introduce a mechanism for entity removal with releasing associated components' data properly.

An idea
// src/components/removal.ts
import { defineComponent } from "bitecs";

export const EntityRemoval = defineComponent();

// src/utils
import {
  addComponent,
  getEntityComponents,
  IWorld,
  removeComponent
} from "bitecs";
import { EntityRemoval } from "../components/removal";

export const removeComponentsAndEntity = (world: IWorld, eid: number): void => {
  for (const c of getEntityComponents(world, eid)) {
    removeComponent(world, c, eid);
  }
  addComponent(world, EntityRemoval, eid);
};

// src/systems/remove_entity.ts
import {
  defineQuery,
  getEntityComponents,
  IWorld,
  removeEntity
} from "bitecs";
import { EntityRemoval } from "../components/removal";

const removalQuery = defineQuery([EntityRemoval]);

export const removeEntitySystem = (world: IWorld): void => {
  removalEntity(world).forEach(eid => {
    if (getEntityComponents(world, eid).length === 1) {
      removeEntity(world, eid);
    }
  });
};

Done


How to save and restore a model with dynamic embeddings?

Hi,
I am training a model with dynamic embeddings (specifically HvdAllToAllEmbeddings). I am saving the model to disk with de.keras.models.de_save_model and I see that it appears my dynamic embedding variables are saved to disk.
However, when restoring from this directory it appears only the dense weights get restored. I am restoring with model.load_weights(FLAGS.model_dir) as shown here
Am I supposed to restore a KVCreator too?

The same to me!
When I load trained model from disk for incremental training, it will failed when fit(train_dataset)
I load model by model = tf.keras.models.load_model(FLAGS.model_dir)
the error log is
Traceback (most recent call last):
  File "/apdcephfs/dd_model/recommenders-addons-0.7.2/demo/dynamic_embedding/movielens-1m-keras/movielens-1m-keras.py", line 247, in <module>
    app.run(main)
  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/absl/app.py", line 308, in run
    _run_main(main, args)
  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/absl/app.py", line 254, in _run_main
    sys.exit(main(argv))
  File "/apdcephfs/dd_model/recommenders-addons-0.7.2/demo/dynamic_embedding/movielens-1m-keras/movielens-1m-keras.py", line 237, in main
    train()
  File "/apdcephfs/dd_model/recommenders-addons-0.7.2/demo/dynamic_embedding/movielens-1m-keras/movielens-1m-keras.py", line 147, in train
    model.fit(dataset, epochs=FLAGS.epochs, steps_per_epoch=FLAGS.steps_per_epoch)
  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/utils/traceback_utils.py", line 70, in error_handler
    raise e.with_traceback(filtered_tb) from None
  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/tensorflow/python/eager/execute.py", line 53, in quick_execute
    tensors = pywrap_tfe.TFE_Py_Execute(ctx._handle, device_name, op_name,
tensorflow.python.framework.errors_impl.InvalidArgumentError: Graph execution error:

Detected at node Adam/ResourceScatterAdd_3 defined at (most recent call last):
  File "/apdcephfs/dd_model/recommenders-addons-0.7.2/demo/dynamic_embedding/movielens-1m-keras/movielens-1m-keras.py", line 247, in <module>

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/absl/app.py", line 308, in run

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/absl/app.py", line 254, in _run_main

  File "/apdcephfs/dd_model/recommenders-addons-0.7.2/demo/dynamic_embedding/movielens-1m-keras/movielens-1m-keras.py", line 237, in main

  File "/apdcephfs/dd_model/recommenders-addons-0.7.2/demo/dynamic_embedding/movielens-1m-keras/movielens-1m-keras.py", line 147, in train

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/utils/traceback_utils.py", line 65, in error_handler

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/engine/training.py", line 1807, in fit

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/engine/training.py", line 1401, in train_function

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/engine/training.py", line 1384, in step_function

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/engine/training.py", line 1373, in run_step

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/engine/training.py", line 1154, in train_step

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 544, in minimize

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 1223, in apply_gradients

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 652, in apply_gradients

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 1253, in _internal_apply_gradients

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 1345, in _distributed_apply_gradients_fn

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 1342, in apply_grad_to_update_var

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/optimizer.py", line 241, in _update_step

  File "/root/miniconda3/envs/py39tfra072/lib/python3.9/site-packages/keras/src/optimizers/adam.py", line 185, in update_step

indices[0] = 0 is not in [0, 0)
         [[{{node Adam/ResourceScatterAdd_3}}]] [Op:__inference_train_function_3810]
2024-08-08 16:21:52.222686: W tensorflow/core/kernels/data/cache_dataset_ops.cc:858] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.
2024-08-08 16:21:52.232673: W tensorflow/core/kernels/data/cache_dataset_ops.cc:858] The calling iterator did not fully read the dataset being cached. In order to avoid unexpected truncation of the dataset, the partially cached contents of the dataset  will be discarded. This can happen if you have an input pipeline similar to `dataset.cache().take(k).repeat()`. You should use `dataset.take(k).cache().repeat()` instead.

Sorry, TFRA is hard to support tf.keras.models.load_model API. Because load_model will create trainable variable object from TensorFlow, but TFRA trainable wrapper is not in TF code.


Add Jupyter support

Once installed, then inside a Notebook or Console using the IPython kernel, one can type
%run -m github_app_user_auth.jupyter

resulting in:

This doesn't modify the existing usage at the terminal, though it does add support for also calling the CLI entry point as python -m github_app_user_auth if desired.
This builds on the discussion from #7.

With this, it then becomes possible to make a convenient magic alias:
%alias_magic ghauth run -p "-m github_app_user_auth.jupyter"

and simply run
%ghauth

which is, for me, about as convenient as it's going to get, til we build a full UI :)

And for completeness, that magic alias can be permanently registered by putting in /home/jovyan/.ipython/profile_default/ipython_config.py this:
# Configuration file for ipython.

c = get_config()

c.InteractiveShellApp.exec_lines = ['%alias_magic ghauth run -p "-m github_app_user_auth.jupyter"']

and voilà! I now only need to type %ghauth whenever I log into our hubs, paste the code, and done :)
Thanks so much for getting this going! I need to switch gears and can't work on a Lab UI component now, but this will smooth out the experience for the students a lot.

cc @consideRatio - if Yuvi merges this, we may want to update the JMTE hub as well and mention this to the others :)

Thanks for the review @consideRatio! This is obviously a very simple iteration - if we like where this is going, I'm happy to later refactor the code a bit to make it more robust, and better separate the CLI functionality from the jupyter one, instead of using if statements. But I figured I'd do the minimal possible now to see if we like this pattern...

Thanks for the PR, @fperez! Sorry it took a while to review :) I'm going to make some additional modifications - primarily to see if I can just implement the magic directly, and then make a release.

@fperez @consideRatio I've added support for the IPython line magic directly in the code in https://github.com/yuvipanda/github-app-user-auth/pull/10. I've also simplified it a little and added a note to the docs.

Wonderful, thanks so much @yuvipanda!!

BTW, curious why you removed the opening of the other page on Enter? With the current version, it requires reaching over from the keboard, to the mouse (to click on the link), then again to the kbd...  I'd been using the other workflow daily since February and found it very smooth, curious why you decided to change it?

@fperez so Firefox always blocked the new window opening for me as an unwanted popup, so it was just confusing - I would press enter and nothing would happen. Plus a textbox that acted as an 'enter' felt a little weird on the web.

I'll see if I can cook up some other js to prevent need for mouse use.

Ah, yes - you have to allow popups for that domain for it to work, correct... After that it worked well for me, but happy to explore other solutions :)

BTW - I think it's doable with a GUI popup too that has a keyboard-usable button, and would be probably more elegant. I just didn't have the time to find how to make that work, given my awful web skills.


Sporadic "VERSION_EXISTS" Error - Possible Fix?

Occasionally, I get a "VERSION_EXISTS" error saying something like user.1 tried to update record unread_counts.1&2 to version 3 but it already was 3. Due to the nature of my code, this record will get updated quite frequently. I assume that this is happening because when the update is sent, the client has not yet received the updated version from, in my case, user.2.
Without knowing enough about how the server manages version numbers, would it be possible to handle version increments on the server side in order to prevent this? I can't see how a client jumping from version 1 to version 3 of a document could cause any serious issues if updates are processed so quickly.

 Users are not stored in the DS Storage at all, and is only used as an identifier to the user object in my application's database.

Improving version conflict handling / supporting more sophisticated merge strategies is currently at the very top of our priority list. Please see #7 for updates.

Closing this issue as a duplicate of #7


Dialogue Manager 2.0.1 doesn't work with latest Godot 4 alpha release

Describe the bug
*Disclaimer: I suck balls as a programmer (I think that's the technical term) so this may be an easy fix on my part. *
I'm unable to activate Dialogue Manager 2 in Godot 4.
I'm on Windows 10.
To Reproduce
Steps to reproduce the behavior:

Download a fresh copy of Godot v4.0.alpha15.official [432b25d36]
Download Dialogue Manager 2.0.1
Copy the addons folder into a new godot project for desktop folder.
Go to the project settings and to the plugins tabs to activate the plugin.
Get this error: "Unable to load addon script from path: 'res://addons/dialogue_manager/plugin.gd'. This might be due to a code error in that script.
Disabling the addon at 'res://addons/dialogue_manager/plugin.cfg' to prevent further errors."

Expected behavior
Get Dialogue Manager as an addon and fail to make use of it due to my own lack of skills and knowledge.
Screenshots

Godot is blaming the dialogue_label.gd "which is loaded but not compiled". The dialogue_label.gd in turn complains about the "percent_visible" identifier not being declared in its current scope, and that's where I walked away from the problem and I can't give any more real useful information.

They renamed a bunch of things in the latest alpha (as well as a few other hard to pin down breakages). It should be working again in Dialogue Manager 2.0.2.

Thanks! Now I can try to learn how to use your addon which seems to have all the features I need for my little projects.
Unrelated question: BTW is there an example somewhere where I could see some actual implementation besides the examples you provided?  Either way, thanks a million for your work!


Convert more to TypeScript

As the title says :)

If I want to help with this topic, should I just pick some files to convert? ☺

@sebjulliand yes! Try to keep PRs to one large file or a couple small files at a time though, please.


Web - Infinite loop on timezone page after reload on timezone selection page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open the app
Open settings
Open profile
Open timezone
Unselect automatic timezone selection and click on Timezone
Reload the page
Select any other timezone
Use browser back, observe it takes us again to timezone selection page instead of profile page (Also observe that it highlights older value instead of new value)
Again select any timezone
Again click back and observe that it will continue in infinite loop if we keep on making selection change

Expected Result:
After timezone selection, app should take us to profile page on click of back
Actual Result:
After timezone selection, app again takes us to timezone selection and continuing the same in infinite loop
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[x] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: 1.3.39-5
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/8bbfef71-f803-4296-ae8f-fce2cc7d4c1b
https://github.com/Expensify/App/assets/93399543/e3865217-5528-44b9-9473-9d40c2ef1878
Expensify/Expensify Issue URL:
Issue reported by: @dhanashree-sawant
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1689174580648689
View all open jobs on GitHub

I have not been able to recreate this, as whatever option I select seems to stick
2023-07-13_10-22-18 (1).gif.zip
Are they still able to experience this @kbecciv?

Bump @kbecciv ^^^

Hello @CortneyOfstad Checking in latest build

Issue is still reproduced on v1.3.42-26
https://github.com/Expensify/App/assets/93399543/407ac299-1d12-4125-9b8d-281e13a853fa

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Infinite loop on timezone page after reload on timezone selection page
What is the root cause of that problem?
Because of Navigation.navigate after select timezone https://github.com/Expensify/App/blob/16a83ac373c2103add1e416d2b33b2365ab1b87f/src/libs/actions/PersonalDetails.js#L321
When refreshing on the select timezone page, this will be upper routes than the Setting timezone page.
So when clicking Back Button on the select timezone page, Setting timezone page is shown.
What changes do you think we should make in order to solve the problem?
https://github.com/Expensify/App/blob/16a83ac373c2103add1e416d2b33b2365ab1b87f/src/libs/actions/PersonalDetails.js#L321
we can replace with this.
Navigation.goBack(ROUTES.SETTINGS_TIMEZONE);

Proposal
Please re-state the problem that we are trying to solve in this issue.
Infinite loop for back click when we access direct timezone selection page
What is the root cause of that problem?
Currently, we are just going back here on back click.
https://github.com/Expensify/App/blob/16a83ac373c2103add1e416d2b33b2365ab1b87f/src/pages/settings/Profile/TimezoneInitialPage.js#L48
What changes do you think we should make in order to solve the problem?
We can pass shouldEnforceFallback to true here within goBack call to land on SETTINGS_PROFILE page on back.
onBackButtonPress={() => Navigation.goBack(ROUTES.SETTINGS_PROFILE, true)}

Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Infinite loop on timezone page after reload on timezone selection page
What is the root cause of that problem?
RCA for this issue is here
https://github.com/Expensify/App/blob/6d1f1f59f00cd12b305c4d579f90eae2eb5c387e/src/libs/actions/PersonalDetails.js#L321
Basically we're doing navigation wrongly.
When we're in TimezoneInitial Page and clicking on Timezone MenuItem we're navigating user to TimezoneSelectPage which is correct flow.
But if we observe https://github.com/Expensify/App/blob/4e7c9e04127d6fd20b2b81f7afa87c0f7633f8c2/src/pages/settings/Profile/TimezoneSelectPage.js#L98 and https://github.com/Expensify/App/blob/6d1f1f59f00cd12b305c4d579f90eae2eb5c387e/src/libs/actions/PersonalDetails.js#L321 here.
After selecting the timezone we're navigating to the back screen TimezoneInitialPage but it should be going back because it's a previous screen.
Cause of this navigation whole navigation state is getting broken.
This expected flow works well in case of no redirection, but if it's a redirection we get lost of the previous navigation state and navigating to the previous screen there is a PUSH event happens to navigation.
And https://github.com/Expensify/App/blob/4e7c9e04127d6fd20b2b81f7afa87c0f7633f8c2/src/pages/settings/Profile/TimezoneSelectPage.js#L117 because of this line we're going back to the screen which we started TimezoneSelectPage because TimezoneInitialPage is navigated instead of going back.
What changes do you think we should make in order to solve the problem?
Replacing this line
https://github.com/Expensify/App/blob/6d1f1f59f00cd12b305c4d579f90eae2eb5c387e/src/libs/actions/PersonalDetails.js#L321
with
    Navigation.goBack(ROUTES.SETTINGS_TIMEZONE);

What alternative solutions did you explore? (Optional)
NA
Result
yy.webm

@allroundexperts Any thoughts on the proposals above?

I am heading OoO until 8/14 and since this needs payment — reassigning BZ to get that handled.
@dhanashree-sawant and @hoangzinh have both been offered contracts in Upwork, so that is set there.
Assignment took place on July 20 and PR was accepted on July 23rd so should qualify for the 50% bonus for @hoangzinh.

@dhanashree-sawant report $250 - paid ✔
@hoangzinh fix + bonus $1500 - paid ✔
@allroundexperts review + bonus $1500 - if you haven't already, please request via NewDot

Reviewed the details for @allroundexperts. Approved for payment in NewDot based on the BZ payment summary above.


bug for apollo reference hardware page

the hardware page shows here http://apollo.auto/platform/hardware.html
the can card image is

the page wrote model C.2045.02 while the real model is C.2045.04

Already made the correction and updated the website. Thank you very much for pointing it out!

I saw the update. But it make me confused that the page update to this one CAN-PCIe/402-B4 part # C.2045.08 while the installation_guide.md refers to CAN-PCIe/402. Which one is the real?
the hardware page:

the installation guide:

@YangHan101

@Wsine They both should work. What matters is how many CAN channels you need. The CAN card in the top image is a 4-channel version. The one at the bottom is a single channel version.
Back in Apollo 1.0, we only needed one CAN channel to communicate with the vehicle CAN bus. So we used the one at the bottom. It was cheaper, too.
Later on, we added the radar which is also a CAN device. So we used the multichannel version from ESD.
In short, you can pick the right number of CAN channels for you.

Closing the issue, and feel free to reopen if I missed anything.


The JSON-RPC layer is overly permissive about the number formats it accepts

These are all being accepted by EDR right now:
send("eth_getBlockByNumber", [0, false])
send("eth_getBlockByNumber", ["0", false])
send("eth_getBlockByNumber", ["0b0", false])
send("eth_getBlockByNumber", ["0o0", false])

send("eth_getStorageAt", ["0x63689f2aE7c74Db7A9D5523d5a1463a0F5bF0cf4", "0"])
send("eth_getStorageAt", ["0x63689f2aE7c74Db7A9D5523d5a1463a0F5bF0cf4", "0b0"])

Curiously, the last two are also accepted by geth, but that's clearly an error.
The full scope of this is not clear, but my guess is that fixing those (and any other examples that come to mind) will already uncover some issues. No need to do a thorough investigation.

eth_getStorageAt is a historically complex case, because different libraries (e.g. ethers) expected different formats at different points in time. See the last version of Hardhat without EDR, it's treated as a special case: https://github.com/NomicFoundation/hardhat/blob/5f0e42d5fdef3fb1f3b5592758f828f03612b8b2/packages/hardhat-core/src/internal/hardhat-network/provider/modules/eth.ts#L711-L719
While in that same file you'd find that eth_getBlockByNumber use a block tag, which is a eventually a strict rpc quantity.

Also note that only eth_getStorageAt accept that weird type.

@alcuadrado can you clarify exactly which of these cases you think we should support? Because to me supporting 0b and 0o prefixes is clearly wrong. I do see that supporting decimal numbers (stringified or not) might make sense in some scenarios (although I would happily remove support for those too).

Alloy has a crate with serde helpers to handle this nicely.


sn icon is broken

XL Release 7.0.2
plugin version v4.1.12
The SN icon is broken.

As a temporary workaround you might add the icon under ext

I've fixed it on the master branch.

Any plans to create a new release?

Done. See v4.1.13


Refine log parsing in gathering transaction details

          I'm still a bit uncomfortable with this.  A single transaction can have multiple transfer events.  For example, some ERC20 tokens will transfer a fee to the token creator every time a token is transferred, as well as transferring to the designated recipient.  In this code we are blindly assuming that the first transfer event (log) is the one we care about, but there is no guarantee in the standard that that is the case.

Do we know who the expected sender/recipient is when we are calling this?  If so, we should filter on those.  If we don't, we may want to consider just presenting all of the events to the user rather than just the first one.
Note: If it is a lot of work to do these, we can file issues for them and address them in a separate PR.
Originally posted by @MicahZoltu in https://github.com/DarkFlorist/lunaria/pull/89#discussion_r1140943571

for now scan only transactions coming from the active account

Log parsing is no longer necessary after #111


Proposal: Add config for Just, to add require hook (Like babel/register)

It would be great to be able to use Just with TypeScript, through @babel/register.
I propose making a config file for Just, for e.g. specifying configuration like require hook.
This would be very similar to .gulp files.
What do you think?

@kenotron Thoughts on this?


SyntaxError: 'yield' inside list comprehension

I try the python3.7 rather than python3.8 as the requestment.txt, which avoid the bug totally.

Hello!
Thank you for your interest.
Did you solved the problems?
Or any other bugs need to be solved?

I'm surprised to hear from you so soon, thank you very much!
Yep, I have done！ It works well on python3.7.
Your note request python3.8, but we know the problem cause by the version 3.8+, which may need correction.
By the way, I have a puzzle that I hope to get your answer, please.
I want to realize your demo now. But I don't know several details yet. What kinds of your training set in your demo when you need to face identification？ Do you used the Gallery set only or using the TinyFace dataset with Gallery set?
What's more, may I share the demo code, please?

------------------ 原始邮件 ------------------
发件人:                                                                                "gist-ailab/teaching-where-to-look"                                                                                @.>;
发送时间: 2023年2月3日(星期五) 上午10:05
@.>;
<EMAIL_ADDRESS>主题: Re: [gist-ailab/teaching-where-to-look] SyntaxError: 'yield' inside list comprehension (Issue #7)
Hello!
Thank you for your interest.
Did you solved the problems?
Or any other bugs need to be solved?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Hi!
Sorry for the inconvenience.
I'll revise the readme.md (python 3.8 -> 3.7).
To construct the demo, I utilized the Son's (famous soccer player from Korea) video downloaded from the youtube.
Also, the gallery images are downloaded from the Google (other soccer players).


[azservicebus/azeventhubs] Enable custom endpoints, which allows our library to be used with TCP proxies

This is a feature that .NET has, and it's handy for when you need to route your TCP traffic through a proxy. It also enables some testing scenarios.
APIViews:

azservicebus: https://apiview.dev/Assemblies/Review/0579bbe5a2324f17a48f1a2bca2ff383?revisionId=e548a02147214107802f26ba47e2a9bf&diffOnly=True&doc=False&diffRevisionId=868bd2a67e9641a3bad83fb66cde2dc4
azeventhubs: https://apiview.dev/Assemblies/Review/e1445c654ad0416c821be30b02dc445c/3c935256189a453ead108bc9fd3ec9f2?diffRevisionId=51318a1ab3b44f2486db3d3f860834f1&doc=False&diffOnly=True

/azp run go - azeventhubs

/azp run go - azservicebus


[Feature request]: Webm support for videos

Which project is this feature idea for?
@ducanh2912/next-pwa
Describe the feature you'd like to request
Is it possible to add webm support for video's? I tried to open a PR but I don't have permisson.
Describe the solution you'd like
Add webm to the url pattern for videos.
Describe alternatives you've considered

Is it possible to add webm support for video's? I tried to open a PR but I don't have permisson.

I thought everyone can open a PR in my repo?
Also, you can add workboxOptions.runtimeCaching and extendDefaultRuntimeCaching to support webm files.
const withPWA = require("@ducanh2912/next-pwa").default({
  extendDefaultRuntimeCaching: true,
  workboxOptions: {
    runtimeCaching: [
      {
        urlPattern: /\.(?:webm)$/i,
        handler: "CacheFirst",
        options: {
          rangeRequests: true,
          cacheName: "static-webm-assets",
          expiration: {
            maxEntries: 32,
            maxAgeSeconds: 24 * 60 * 60, // 24 hours
          },
        },
      },
    ],
  },
});

I couldn't push a feature branch to open as a PR :).
I found that one out too! Thank you!!

@katiasmet-93 well you are supposed to fork the repo then create a PR from that fork back to my repo :)


Updated readme adding my name and link alphabetically

added my name in alphabetical order as per readme
Related issue

What changes does this PR do?
Screenshots (If any)
Questions

@Tokio3012 thank you for the feedback i have added my name above kelvin parmar and made a new commit


Display and update extra data

rollup allows storing arbitrary extra data attributes. from the readme:
$rollout.set_feature_data(:chat, description: 'foo', release_date: 'bar', whatever: 'baz')

however, rollout-ui does not display the extra data (in this case, :release_data and :whatever) or allow updating it. in this PR, we enable both. it looks like this:

when updating, we try to keep the type of extra data the same -- if it was an integer, it will remain an integer, if it was a boolean, it will remain a boolean, and otherwise it will be a string.

would love to see this PR merge 👍

would love to see this PR merge 👍

@igor47 @reneklacan Our team would love to see this PR merged as well
We would be happy to push the requested changes to unblock merge @igor47 if you don't mind


fix: 🐛 docker compose expose ports to host

Removing the make docker-run from the docs. If not required in dev, might too just be removed to avoid confusion  ( https://github.com/fleek-network/ursa/commit/c9dcab850001f7fc23468a251024255d1552ccca ).


FIX to -> Username or password is incorrect (LoginException('BadAuthentication'))

If you are having issues with the login error above on Windows and you're using Python 3.10.x or 3.11.x please try this technique on Windows 10 or Debian 11 (otherwise try the Docker image here -> https://github.com/djsudduth/keep-it-markdown/issues/72#issuecomment-1793495242:
The easiest fix is to install a fresh version Python 3.9.1, run KIM and then upgrade to >= 3.10.x once the Google token is saved in your keyring.
To do this execute a fresh install of 3.9.1, run pip install urllib3==1.25.1 and pip install gpsoauth==1.0.2, and then run KIM. Once that is done, then upgrade to a higher version of Python.
But, if you've already installed 3.10.x or 3.11.x do this:

This assumes you already had default system install of Python 3.10.x or 3.11.x
For Windows, install pyenv-win and then install Python 3.9.1 using the command pyenv install 3.9.1 (if you have a Mac or Linux - see this page for installation instructions -> https://github.com/pyenv/pyenv )
Set the Python version with pyenv global 3.9.1
Run the kim install -> pip install -r requirements.txt
Run pip install urllib3==1.25.1 and pip install gpsoauth==1.0.2 (or, pip3 if that is your Python 3 standard)
Generate a new Google app password
Run python kim.py and login so you can save the Google Keep token to the keyring
Uninstall pyenv by deleting the .pyenv directory in your Users/User/folder (see online instructions on how to delete)
Run the kim install -> pip install -r requirements.txt for your default Python >3.10.x install from step 1 if you haven't already

Now kim.py will work in Python 3.10.x and 3.11.x when it loads and gets the Google token from keyring

How to install pyenv for Windows:
https://github.com/pyenv-win/pyenv-win

Sorry unfortunately this wasn't successful for me. Debian 12. After installing from source python 3.9.1, setting my virtual python environment to python3.9, and install the pip packages you recommended - LoginException persisted. Bummer.
Also this url doesn't exist anymore:
Login attempt failed
 Technical Error Message: LoginException('BadAuthentication', None)
Please start your browser and copy-paste this URL in the address bar: https://accounts.google.com/DisplayUnlockCaptcha - then, try logging in again.

Hmmmmm...darn. Did you happen to try and run it under sudo?
I'll try a fresh Debian 12 install.

under sudo, NoKeyringError - no backend available.
If you can think of anything to try just let me know. Thanks for the attention, this is a cool idea of a project.

@chrisbrasington  - Debian 12 setup. Will test KIM tonight

@chrisbrasington - no luck on Debian 12 (python 3.8, 3.9, 3.11) - I'm suspecting the updated linux OpenSSL 3.0 is causing the issue. I was able to get Debian 11 to work. If you can find an older image on Windows or Linux you can retrieve the API key once logged in and then save it directly in the keystore on Debian 12 as noted in the README

@djsudduth kind of you to attempt, that's pretty cool of you. nice to know of the token flag, I'm sure I can work around it.

@chrisbrasington I think the best answer will be creating a Docker image of Debian 11 with the right python version and KIM. The other solution that I'm working on is a way to pull the notes directly from the web page (TBD on that)

Ok @chrisbrasington - here is one fix for you.  I was able to setup a Docker container and get the Keep key. Then transfer this key to Debian 12.  Here is the Dockerfile (just a text file) needed:
FROM ubuntu:20.04
RUN apt update
RUN apt install -y python-is-python3 python3-pip
RUN apt-get install -y curl
RUN apt-get install ca-certificates
RUN curl -L -o tmp/keep-it-markdown-0.5.2.tar.gz https://github.com/djsudduth/keep-it-markdown/archive/refs/tags/0.5.2.tar.gz
RUN tar -zxvf tmp/keep-it-markdown-0.5.2.tar.gz
RUN pip install -r keep-it-markdown-0.5.2/requirements.txt
RUN pip install requests==2.23.0
RUN pip install gpsoauth==1.0.2
Steps:

Install Docker on any PC (find the online instructions)
Startup Docker (or it will autostart on reboot)
Save the Dockerfile steps above in file on your PC as "Dockerfile"
Go to the command line and run docker build -t kim .  in the directory where you saved the Dockerfile (it will take about 5 min to create the image)
Run the image with docker run -it kim
Change the directory to Kim cd keep-it-markdown-0.5.2
Create a temp app password on Google
Run python keep-test.py -t to log in and display the Keep token (keep token will appear be very long - almost 2 lines)
Copy the token by highlighting the entire string and hitting enter
Save the token somewhere safe
Exit the Docker image with exit
Now run KIM in your current OS with the -t switch to save it in the keystore (python kim.py -t <long token here> (you may need a new Google app password to do this

A lot of steps but that should do it. I'll be creating a version 0.5.3 to add the Dockerfile and instructions. I'm stuck on getting the keyring to work in Docker to actually run KIM directly without having to copy the key. More research is needed there.
Let me know if this works!

@djsudduth that's brilliant. I'll give it a shot and report back later, ty

@djsudduth Good news, that worked. No issues once that token is in keystore. Cool project, thank you.
If you're musing on future development, I run more than half my applications nowadays as flatpak. It's one reason why I chose the stability of debian 12 as my current OS but when I need apps to be more up to date than their stable branch, I go with flatpak. Well any sort of containerization, docker or flatpak of the entire app - it's a useful tool to avoid dependency hell.
Once again, thanks for going out of your way to provide a solution to me in my obsidian/note-taking journey.

That’s great!!  I was eventually able to get the keychain to work using a Debian 11 image vs Ubuntu 20.04.  I’ll post that and try flatpak.  - DonOn Nov 4, 2023, at 6:11 PM, chrisbrasington @.***> wrote:
@djsudduth Good news, that worked. No issues once that token is in keystore. Cool project, thank you.
If you're musing on future development, I run more than half my applications nowadays as flatpak. It's one reason why I chose the stability of debian 12 as my current OS but when I need apps to be more up to date than their stable branch, I go with flatpak. Well any sort of containerization, docker or flatpak of the entire app - it's a useful tool to avoid dependency hell.
Once again, thanks for going out of your way to provide a solution to me in my obsidian/note-taking journey.
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Hi!  I'm also using your implementation with the master token.  Looks like a couple weeks ago I started getting the username and password error as well.  I've followed your instructions and run the docker container to get the token and am getting a failed login attempt and asking me to navigate to https://accounts.google.com/DisplayUnlockCaptcha
Navigating there then just shows a dead page that google no longer supports.  Has google changed things?  Or am I somehow following the instructions incorrectly?
Also, I just wanted to express my gratitude for your work, it's been working brilliantly and I very much appreciate it.

@TheGreatestAlan - hi! Be sure you download version 0.5.3 - that removed the captcha prompt. My guess is you need to setup a new Google App pw and try that again. Reboot and be sure you're only logged into your primary Google acct in your default browser. Then try your id and one-time pw. That should work with the Docker image.

@djsudduth thanks for the response.  After some deeper poking around, I figured out the issue.  The issue wasn't with the actual login.  Unfortunately when the gkeepapi logs in, it also loads the notes.   Looks like google has changed something and begun adding a source that says something along the lines of "migrated by google assistant" or something like that.  In the backend in gkeepapi it attempts to load the source as a weblink, and assumes that a title and description must exist.  Looks like assistant does not include those things, so it throws an exception, which throws all the way out.  So from this piece of code it looks like an error logging in, but it's actually a note parse exception.
I confirmed this by going into google keep and removing those "migrated by google assistant" sources in google keep, and lo and behold, my original implementation began working again.  I may see if I can PR the gkeepapi code, but I don't have a lot of time, and this is a bigger issue with it's deserialization of the gkeep objects.

I've set up the Docker container, and I'm still getting "BadAuthentication" in there. Is there something else I still need to tweak? Looks like it's using Ubuntu 22.04.3 & Python 3.10.12 yeah?

@Tinqerer you have to use the one-time Google App password to log in each time you run the Docker image and/or get your Keep token and save it so you can log in from your PC without Docker. See the README on the steps.

Yep I'm using a Google App password, not sure why it still isn't happy.

@Tinqerer hmmmmm....I just ran it yesterday with Docker on windows. Be sure the app pw doesn't have spaces or dashes. What OS are you running?

@djsudduth Yeah strange. I've been triple checking everything, can't see any mistakes I might be making. I'm on Windows 11, with a fresh install of Docker Desktop.

@Tinqerer - darn - yes! There's definitely a problem. Seems Google made an auth change and now we're caught in a circle. The auth used to work on python 3.9.x but then started failing a few weeks ago. The gkeepapi was updated for the fix but only works on 3.10+ and that won't auth.
I need to try more testing. I'm trying to pin other versions but no luck yet. Sorry for the trouble.

@djsudduth No worries! Hopefully you can find a solution :)

@Tinqerer - it took some work and help from other owners of the underlying packages.  Here's how you can get the token.
Here's the new Dockerfile (build it with the name 'kim'):
FROM ubuntu:22.04
RUN apt update
RUN apt install -y python-is-python3 python3-pip
RUN apt-get install -y git
RUN apt-get install -y curl
RUN apt-get install ca-certificates
RUN curl -L -o tmp/keep-it-markdown-0.5.4.tar.gz https://github.com/djsudduth/keep-it-markdown/archive/refs/tags/0.5.4.tar.gz
RUN tar -zxvf tmp/keep-it-markdown-0.5.4.tar.gz
RUN pip install keyrings.alt
RUN pip install git+https://github.com/simon-weber/gpsoauth.git@8a5212481f80312e06ba6e0a29fbcfca1f210fd1
After creating the docker image - log in with docker run --mount type=bind,source=<your keep path>/mdfiles,target=/keep-it-markdown-0.5.4/mdfiles -it kim
Then, run this python script:
python -c 'print(__import__("gpsoauth").exchange_token(input("Email: "), input("OAuth Token: "), input("Android ID: ")))'
you will be prompted for your Google email account name, OAuth token, and AndroidID
Here's the tricky part - to get the OAuth token - follow the "First way" instructions here:
https://github.com/rukins/gpsoauth-java?tab=readme-ov-file
The AndroidID can just be a Mac address like: 00:00:5e:00:53:af
So, when you get the prompt when running the script:
Email:
OAuth Token: oauth2_4/......rest of token
Android ID: 00:00:5e:00:53:af
A lot of data will print out -> the Keep token is at the top - it should look like:
"aas_et/FKcp.................................................BjQ="
Copy that token and exit the Docker image. Then run Kim on your PC with: python kim -t <token here>
You should be good from that point on!

That works! Thanks so much!
I did have to use the "Second way" on those linked instructions (couldn't find first way in my browser), but now I'm all set! Amazing.

How to get your Keep token - Jan 2024 (I believe you will need Python 3.10+ from now on)
Build a Docker image and call it 'kim':
FROM ubuntu:22.04
RUN apt update
RUN apt install -y python-is-python3 python3-pip
RUN apt-get install -y git
RUN pip install git+https://github.com/simon-weber/gpsoauth.git@8a5212481f80312e06ba6e0a29fbcfca1f210fd1
After creating the docker image - log in with: docker run -it kim
Here's the tricky part - you need to get your OAuth token from a Google cookie. To get the OAuth token - follow the "Second way" instructions here:
https://github.com/rukins/gpsoauth-java?tab=readme-ov-file
Copy the token
Then, run this python script by just copy and paste into the Docker image terminal:
python -c 'print(__import__("gpsoauth").exchange_token(input("Email: "), input("OAuth Token: "), input("Android ID: ")))'
you will be prompted for your Google email account name, OAuth token, and Android ID
The AndroidID can just be a random Mac address like: 00:00:5e:00:53:af
So, when you get the prompt when running the script:
Email: your google ID
OAuth Token: oauth2_4/......rest of token
Android ID: 00:00:5e:00:53:af
A lot of data will print out -> the Keep token is at the top - it should look like:
"aas_et/FKcp.............lots of characters.....................BjQ="
Copy that token and exit the Docker image. Then run Kim on your PC with: python kim.py -t <token here>
You should be good from that point on!

Version 0.6.0 released.  Dockerfile updated and step by step instructions in INSTALL.md

NOTE: AS OF JAN 2024 THIS NOTE WAS UPDATED TO USE UBUNTU VS DEBIAN TO FIX A NEW ISSUE
Ok @chrisbrasington - here is one fix for you. I was able to setup a Docker container and get the Keep token/key. Then transfer this key to Debian 12. Here is the Dockerfile (just a text file) needed:
FROM ubuntu:22.04 RUN apt update RUN apt install -y python-is-python3 python3-pip RUN apt-get install -y curl RUN apt-get install ca-certificates RUN curl -L -o tmp/keep-it-markdown-0.5.4.tar.gz https://github.com/djsudduth/keep-it-markdown/archive/refs/tags/0.5.4.tar.gz RUN tar -zxvf tmp/keep-it-markdown-0.5.4.tar.gz RUN pip install -r keep-it-markdown-0.5.4/requirements.txt RUN pip install requests==2.23.0 RUN pip install gpsoauth==1.0.2 RUN pip install keyrings.alt
Steps:

Install Docker on any PC (find the online instructions)
Startup Docker (or it will autostart on reboot)
Save the Dockerfile steps above in file on your PC as "Dockerfile"
Go to the command line and run docker build -t kim .  in the directory where you saved the Dockerfile (it will take about 5 min to create the image)
Run the image with docker run -it kim
Change the directory to Kim cd keep-it-markdown-0.5.4
Create a temp app password on Google
Run python keep-test.py -t to log in and display the Keep token (keep token will appear be very long - almost 2 lines)
Copy the token by highlighting the entire string and hitting enter
Paste and save the token somewhere safe
Exit the Docker image with exit
Now run KIM in your current OS with the -t switch to save it in the keystore (python kim.py -t <long token here> (you may need a new Google app password to do this)

Let me know if this works! cc @ooker777

I found this thread incredibly useful, and appreciate all the valuable comments that went into it.
To help anyone out in the future who needs to get a gkeep token in an ad-hoc manner, I've made this docker image that will let you do it via cli in 1 line.
Just thought I'd leave it here in case it helps anyone else in the future.

Thx @davidlang42!  As newer versions appear, I'll add this.

Changes to gpsoauth module deprecated these issues. No longer valid.