Android: Expandable/Collapsible State #30841

Summary

fixes https://github.com/facebook/react-native/issues/30841
Changelog

[Android] [fix] - Android: Expandable/Collapsible State
Test Plan

https://user-images.githubusercontent.com/24992535/183081987-198d3fc3-bb70-42a2-b819-7c1a740ef394.mp4

[] - review impact on https://github.com/facebook/react-native/pull/33690

using accessibilityActions it is possible to add an action for expand/collapse, but these are treated as custom actions and must have their own label defined, rather than using Android built-in expand/collapse actions, which Talkback has predefined labels for.

https://user-images.githubusercontent.com/24992535/183358727-aaa3d1b8-c872-4ed0-8a45-906ce3850d53.mp4

PR Branch - using accessibilityActions it is possible to add an action for expand/collapse, but these are treated as custom actions and must have their own label defined, rather than using Android built-in expand/collapse actions, which Talkback has predefined labels for.

https://user-images.githubusercontent.com/24992535/183358727-aaa3d1b8-c872-4ed0-8a45-906ce3850d53.mp4
https://user-images.githubusercontent.com/24992535/183359244-9ff11682-a625-48f5-810b-d198aa173cce.mp4
solved with https://github.com/facebook/react-native/pull/34353/commits/d58a2dbe88ee63bc55dd6c908770c98000b573d4

extended/collapsed is announced on state change on Paper

https://user-images.githubusercontent.com/24992535/185028855-17791b9d-a586-420e-9c10-29673ba224e2.mp4

extended/collapsed is announced on state change on Fabric (PASS)

https://user-images.githubusercontent.com/24992535/185082749-0cb2ad4d-59de-4338-a22c-b3563d0a98b8.mp4

announce the visible text on Paper (FAIL)

https://user-images.githubusercontent.com/24992535/185088735-4d559be8-7183-444f-b140-7ebc262128ee.mp4

Button which keeps control of extended state in JavaScript with onAccessibilityAction, accessibilityActions and accessibiltyState (Paper)

https://user-images.githubusercontent.com/24992535/188535897-b24609ec-d134-4987-ba83-138984403e0d.mp4

TouchableWithoutFeedback keeps control of extended/collapsed state in Android Widget (Paper)

https://user-images.githubusercontent.com/24992535/188540174-5bc19b96-da72-43de-ad7c-e9dbebd1b68b.mp4

TouchableWithoutFeedback keeps control of extended/collapsed state in Android Widget (Fabric)

https://user-images.githubusercontent.com/24992535/188542275-9ea6e531-0a84-48a3-a2a5-f1d8aa90d033.mp4

TouchableOpacity announces visible text and triggers expanded/collapsed with onPress and accessiblity menu (Fabric)

https://user-images.githubusercontent.com/24992535/188542974-83e23b4c-6c99-4594-b30c-622bc8a36170.mp4


containerd-shim processes are leaking inotify instances with cgroups v2

Description
containerd-shim processes are leaking inotify instances when setup with cgroups v2. The following is the count of the instances held by the shim processes (other processes have been filtered out from the output). The count only goes up as time progresses. With cgroups v1 there are no inotify instances being held by the container-shim processes. I suspect that this could be due to a runc PR to listen to oom events which uses the inotify mechanism. but that code is cleanly handling the inotify instances and closing them. Since I have not much insight into the containerd-shim and runc interaction, I suspect this could be due to some corner case in the interaction that's causing this.
To add more context, this is running on a kubernetes node with containerd as the runtime. Pods which are crash looping are contributing more to the problem.
$ find /proc/*/fd -lname anon_inode:inotify |    cut -d/ -f3 |    xargs -I '{}' -- ps --no-headers -o '%p %U %c %a %P' -p '{}' |    uniq -c |    sort -nr | grep root
COUNT PID USER     COMMAND         COMMAND                        PPID
46 3276111 root     containerd-shim /usr/local/bin/containerd-s       1
15 1585532 root     containerd-shim /usr/local/bin/containerd-s       1
14   19306 root     containerd-shim /usr/local/bin/containerd-s       1
14   19279 root     containerd-shim /usr/local/bin/containerd-s       1
7 2937840 root     containerd-shim /usr/local/bin/containerd-s       1
3   28459 root     containerd-shim /usr/local/bin/containerd-s       1
3   19232 root     containerd-shim /usr/local/bin/containerd-s       1
2 3251811 root     containerd-shim /usr/local/bin/containerd-s       1
2   19200 root     containerd-shim /usr/local/bin/containerd-s       1
2   19156 root     containerd-shim /usr/local/bin/containerd-s       1
1 3602946 root     containerd-shim /usr/local/bin/containerd-s       1
1 3171279 root     containerd-shim /usr/local/bin/containerd-s       1
1  213009 root     containerd      /usr/local/bin/containerd         1

Steps to reproduce the issue:

Setup containerd on linux machine with cgroups v2
List the inotify instances held by the containerd-shims and observe over a period of time

Describe the results you received:
The inotify instances are increasing in an unbounded manner causing concern that the fs.inotify.max_user_instances would be breached over time. The impact on containerd-shim when the limit breaches is not known to me right now. If this were in kubernetes, 'kubectl logs -f' to tail logs on any pod on that node would fail unable to create a new inotify instance.
Describe the results you expected:
The number of instances should be bounded and should not increase/leak.
What version of containerd are you using:
$ containerd --version
containerd github.com/containerd/containerd v1.5.0 8c906ff108ac28da23f69cc7b74f8e7a470d1df0

Any other relevant information (runC version, CRI configuration, OS/Kernel version, etc.):

runc --version
$ runc --version
runc version 1.0.0-rc93
commit: 12644e614e25b05da6fd08a38ffa0cfe1903fdec
spec: 1.0.2-dev
go: go1.16.3
libseccomp: 2.3.3

uname -a
$ uname -a
Linux sparrow-hyd-playground-1-fk-prod-nodes-4-8340279 5.10.0-0.bpo.3-cloud-amd64 #1 SMP Debian 5.10.13-1~bpo10+1 (2021-02-11) x86_64 GNU/Linux

@AkihiroSuda @Random-Liu Can someone help me debug this?

Thanks for reporting, seems happening around here https://github.com/containerd/cgroups/blob/616d4347a49f244931740491cac6fedf8d2dd873/v2/manager.go#L551-L640
Do you know whether the issue is specific to Kubernetes? How long minutes does it take to hit the issue?

@ak

Thanks for reporting, seems happening around here https://github.com/containerd/cgroups/blob/616d4347a49f244931740491cac6fedf8d2dd873/v2/manager.go#L551-L640
Do you know whether the issue is specific to Kubernetes? How long minutes does it take to hit the issue?

Not sure if this is specific to kubernetes. It doesn't take long to observe this issue since we have very many number of pods running per node. However I have noticed that  when a container crashes the count goes up by 1 suggesting that the previous inotify instance is not reaped.

https://github.com/containerd/cgroups/blob/616d4347a49f244931740491cac6fedf8d2dd873/v2/manager.go#L578-L579
order of operations for defer.. close is first... I wouldn't think we can remove the watch after the fd has been closed because the fd can be reused once closed..?

https://github.com/containerd/cgroups/blob/616d4347a49f244931740491cac6fedf8d2dd873/v2/manager.go#L578-L579
order of operations for defer.. close is currently first (because golang processes them in reverse order)... I wouldn't think we can remove the watch after the fd has been closed because the fd can be reused once closed..?

Quoting from the inotify man page:
"When all file descriptors referring to an inotify instance have been closed (using close(2)), the underlying object and its resources are freed for reuse by the kernel; all
associated watches are automatically freed."
@mikebrow Good catch. But considering the above info shouldn't the watches be freed automatically as the fd is closed thus making the first defer statement redundant?
In fact the observation is that the FDs are getting leaked.

"When all file descriptors referring to an inotify instance have been closed (using close(2)), the underlying object and its resources are freed for reuse by the kernel; all
associated watches are automatically freed."

nod..

@bharathguvvala  How are you running containerd with cgroup v2? I did not find a good documentation around that. Trying to repro this issue on my setup.

Hi, I tracked this issue down: it's not specific to k8s but any situation where a long-running containerd-shim
restarts containers. Every container restart is one more leaked inotify instance, because the goroutine does not currently detect container exits. This does not happen on cgroup1 because the associated eventfd is signalled when container exits and released here https://github.com/containerd/containerd/blob/main/pkg/oom/v1/v1.go#L124-L130.
This is easy to reproduce on current Flatcar releases because we switched to cgroup2. Run k8s and start a crashing container that gets auto-restarted (the manifest from https://github.com/containerd/containerd/pull/6323 is enough).
I've prepared a fix here https://github.com/containerd/cgroups/pull/212, which mirrors what we do for cgroup1 (get notified when container exits). I'll be happy to prepare a PR here to update containerd/cgroups when that's merged.  We'll also need this change to gracefully handle exits:
commit 6d2d2e7ba3eb3f25d7c4f6c10b025a7636428559 (HEAD -> jepio/fix-cgroupv2-oom-event)
Author: Jeremi Piotrowski<EMAIL_ADDRESS>Date:   Fri Dec 3 13:53:19 2021 +0000

    cgroup2: handle EventChan closure gracefully

    EventChan() now terminates when the cgroup exits, and closes the errorChannel.
    This is expected so check the error and skip logging when error is nil.

    Signed-off-by: Jeremi Piotrowski<EMAIL_ADDRESS>
diff --git a/pkg/oom/v2/v2.go b/pkg/oom/v2/v2.go
index c0717eb99..8b3e0d387 100644
--- a/pkg/oom/v2/v2.go
+++ b/pkg/oom/v2/v2.go
@@ -102,10 +102,12 @@ func (w *watcher) Add(id string, cgx interface{}) error {
                                i.ev = ev
                                w.itemCh <- i
                        case err := <-errCh:
-                               i.err = err
-                               w.itemCh <- i
-                               // we no longer get any event/err when we got an err
-                               logrus.WithError(err).Warn("error from *cgroupsv2.Manager.EventChan")
+                               if err != nil {
+                                       i.err = err
+                                       w.itemCh <- i
+                                       // we no longer get any event/err when we got an err
+                                       logrus.WithError(err).Warn("error from *cgroupsv2.Manager.EventChan")
+                               }
                                return
                        }

It should be fixed by #6498. Thanks @jepio! I'm going to backport that to 1.5.x.

#6961 will fix the issue in 1.5.x.

Resolving.


fix(android): Add support of namespace property to support Android Gradle Plugin (AGP) 8

Description
This PR adds support of namespace property to support Android Gradle Plugin (AGP) 8. Projects with AGP < 4.2 will not supported anymore. It fixes the following error :

See flutter/flutter#125181.
Checklist

[x] The title of my PR starts with a Conventional Commit prefix (fix:, feat:, docs:, chore: etc).
[x] I have read the Contributor Guide and followed the process outlined for submitting PRs.
[x] I have updated/added tests for ALL new/updated/fixed functionality.
[x] I have updated/added relevant documentation and added dartdoc comments with ///, where necessary.
[x] I have updated/added relevant examples in example.

Breaking Change

[ ] Yes, this is a breaking change.
[x] No, this is not a breaking change.

Migration instructions
You can (and you should !) upgrade your Android project to use AGP 8. In your build.gradle :
buildscript {
  // ...

  dependencies {
    classpath 'com.android.tools.build:gradle:8.0.1'
    // ...
  }
}

Also don't forget to add a namespace in the android section of app/build.gradle :
android {
  // ...
  namespace 'your.namespace'
}

Related Issues

https://github.com/flutter/flutter/issues/125621#issuecomment-1525995461
https://github.com/flutter/flutter/issues/125181

Note : there's a way to still support AGP 4.2. All we have to do is :
if (project.android.hasProperty("namespace")) {
  namespace 'xyz.luan.audioplayers'
}

But I'm not sure that it's the best idea as AGP 4.2 is old. As you want, I can adapt my PR if you ask to 🙂

As far as I remember the namespace feature didn't work with flutter < [3.7.12](https://github.com/flutter/flutter/releases/tag/3.7.12) (after clearing the gradle cache). Do we have to raise the minimum Flutter version in pubspec.yaml in order to make it working?

Not needed, because we're checking if namespace is available first :
if (project.android.hasProperty('namespace')) {
  namespace 'xyz.luan.audioplayers'
}

@vbuberen That's what I did first, but I reverted it in https://github.com/bluefireteam/audioplayers/pull/1503/commits/42d3150ee040e4cf5399c74e2e31ac096121ce9d as I thought it was not my role to take such a decision.

Hi, any eta on when this will be merged and released? I just upgraded my flutter project to AGP 8 and I believe audioplayers missing the namespace parameter is the last thing blocking my project from building for android. Thanks

@cian-bayer Feel free to use the fork. In your pubspec.yaml :
audioplayers:
  git:
    url: https://github.com/Skyost/audioplayers.git
    path: packages/audioplayers/

Changing AGP version fails, due to flutter/flutter@3a6c4eb is not released yet. Then we also need to move to flutter 3.10.0 first, which depends on flame-engine/flame@b41622d to be released.

There is no need to bump to AGP 8.0 with this PR. The suggested change is only to add a namespace property which is required by projects that already migrated to AGP 8.0, thus, add a compatibility for those that decided to jump on this version already.

@Gustl22

started another PR to consider the AGP only without testing it.

Thanks !

Otherwise we are blocked by: flutter/flutter@3a6c4eb We then can leave the PR for example open until flutters fix in integration tests is released.
Edit: already started another PR to consider the AGP only without testing it.

I think there is some misunderstanding from your side on what is needed to support AGP 8. Only adding namespace property (which appeared since AGP 4.2 as I shared in one of comments above) is needed and there is no need to bump AGP in the package to 8 for now, like you did in another PR. Thus, there is nothing blocking from adding this support and still having integration tests working.
Here is an example of a similar change, but without bumping to AGP 8: https://github.com/fluttercommunity/plus_plugins/pull/1698/files

there is no need to bump AGP in the package to 8 for now, like you did in another PR.

@vbuberen Is there a reason to not upgrade the build gradle tools in audioplayers_android package? I think it just works as before.

Only adding namespace property (which appeared since AGP 4.2 as I shared in one of comments above) is needed

Here is an example of a similar change, but without bumping to AGP 8

Why should we adding the namespace in the example without removing it in the AndroidManifest.xml. Then it doesn't have any benefit in my opinion and we should wait changing it, until the integration tests also support the namespace property.

Why should we adding the namespace in the example without removing it in the AndroidManifest.xml. Then it doesn't have any benefit in my opinion and we should wait changing it, until the integration tests also support the namespace property.

Because adding namespace would allow people who already moved their projects to AGP 8 to build their projects fine without errors saying that one of their dependencies is missing namespace property. Having package id in AndroidManifest has no effect on namespace, so shouldn't be considered as benefit/no benefit, but allows integration tests to work till the integration_test package supports the new namespace property.
Thus, having both allows to have a broader compatibility in the end without being blocked because integration_test don't understand namespace property as of now.

Is there a reason to not upgrade the build gradle tools in audioplayers_android package? I think it just works as before.

I had some build issues with AGP 8 back then. Maybe it is not the case anymore as there were quite a few updates to Flutter and tooling in last 3-4 weeks.

Because adding namespace would allow people who already moved their projects to AGP 8 to build their projects fine without errors saying that one of their dependencies is missing namespace property. Having package id in AndroidManifest has no effect on namespace, so shouldn't be considered as benefit/no benefit, but allows integration tests to work till the integration_test package supports the new namespace property.

I think we are discussing two different things. I did not mean to change the AndroidManifest in audioplayers_android. Changing something in the example doesn't have any consequences for the package user / app developer. But example is used to do the integration tests. So I propose to nothing change there yet, like done in #1514.
At some day in the future we should removing the namespace from AndroidManifest in both the example and the audioplayers_android package.

I had some build issues with AGP 8 back then. Maybe it is not the case anymore as there were quite a few updates to Flutter and tooling in last 3-4 weeks. And my statement in previous comments meant that adding a namespace doesn't require to bump to AGP 8 as well.

I think the AGP version in audioplayers_android is overriden by the one of the user's app anyways (here example) so it wouldn't matter bumping it, maybe (?), but leaving it for now as done in flutter packages

FWIW, I tried building for android from @Skyost 's branch like this:
  audioplayers:
    git:
      url: https://github.com/Skyost/audioplayers.git
      path: packages/audioplayers/

and got this error:
Launching lib/environment/main_dev/main_dev-local-release.dart on sdk gphone64 arm64 in release mode...
main_dev-local-release.dart:1

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':audioplayers_android'.
> Could not create an instance of type com.android.build.api.variant.impl.LibraryVariantBuilderImpl.
   > Namespace not specified. Please specify a namespace in the module's build.gradle file like so:

     android {
         namespace 'com.example.namespace'
     }

     If the package attribute is specified in the source AndroidManifest.xml, it can be migrated automatically to the namespace value in the build.gradle file using the AGP Upgrade Assistant; please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 7s

and I made sure to run flutter pub get, and my pubspec.lock was pointing to the correct, most recent push in their fork: ebc4e86293412e93084337b8d8b82ce07687ef1d
Flutter doctor:
XXXX@XXXX project-directory % flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.7.12, on macOS 13.3 22E252 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 14.3)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.2)
[✓] VS Code (version 1.78.2)
[✓] Connected device (3 available)
[✓] HTTP Host Availability

• No issues found!


Wrong link on the project homepage

The demo button on the https://rowanzellers.com/grover/ page links to https://http//grover.allenai.org/, note the extra http, should've been https://grover.allenai.org/

thanks for the note!! fixed 😄


OpenGL acceleration for 32 bit apps

Is your feature request related to a problem? Please describe.
When running 32bit graphical applications under WSL2, for example older games through Wine (which ironically runs better than native in Windows 11), Mesa (built with d3d12 driver) will fallback to llvmpipe software rendering.
Describe the solution you'd like
32bit mesa should also be able to use the d3d12 driver with hardware OpenGL acceleration
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Output from 32bit Mesa glxinfo:
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Mesa/X.org (0xffffffff)
    Device: llvmpipe (LLVM 13.0.1, 256 bits) (0xffffffff)
    Version: 22.0.1
    Accelerated: no
    Video memory: 96570MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.5
    Max compat profile version: 4.5
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.2
OpenGL vendor string: Mesa/X.org
OpenGL renderer string: llvmpipe (LLVM 13.0.1, 256 bits)
OpenGL core profile version string: 4.5 (Core Profile) Mesa 22.0.1
OpenGL core profile shading language version string: 4.50
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.5 (Compatibility Profile) Mesa 22.0.1
OpenGL shading language version string: 4.50
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.2 Mesa 22.0.1
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.20

vs native Mesa
name of display: :0
display: :0  screen: 0
direct rendering: Yes
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Microsoft Corporation (0xffffffff)
    Device: D3D12 (NVIDIA GeForce RTX 3080) (0xffffffff)
    Version: 22.1.0
    Accelerated: yes
    Video memory: 75576MB
    Unified memory: no
    Preferred profile: core (0x1)
    Max core profile version: 4.2
    Max compat profile version: 4.2
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Microsoft Corporation
OpenGL renderer string: D3D12 (NVIDIA GeForce RTX 3080)
OpenGL core profile version string: 4.2 (Core Profile) Mesa 22.1.0-devel (git-e6d7a6a3b7)
OpenGL core profile shading language version string: 4.20
OpenGL core profile context flags: (none)
OpenGL core profile profile mask: core profile

OpenGL version string: 4.2 (Compatibility Profile) Mesa 22.1.0-devel (git-e6d7a6a3b7)
OpenGL shading language version string: 4.20
OpenGL context flags: (none)
OpenGL profile mask: compatibility profile

OpenGL ES profile version string: OpenGL ES 3.1 Mesa 22.1.0-devel (git-e6d7a6a3b7)
OpenGL ES profile shading language version string: OpenGL ES GLSL ES 3.10

You may need to raise an issue with Mesa to see if they support enabling that gallium driver. It's possible no plumbing was done for it and is intended for 64-bit. Having 32-bit support from Mesa would be cool though.

Mesa related issue in their GitLab project:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/6708
A comment from within that issue:
but you won't be able to *run* a 32-bit arch library in WSL2. The architecture for the GPU virtualization requires D3D12 drivers to be loaded into your Linux/WSL processes, and the Windows GPU vendors don't provide 32-bit versions of those drivers. Similarly, there's no 32-bit `libd3d12.so` provided in WSL.

libd3d12.so is provided by the WSL package itself from what I can tell, and is currently 64bit only.  A 32bit version of that is needed for Mesa's Gallium driver to work with (and possibly vendor drivers to match?).
It would be great if this could happen, and enable numerous 32bit 3D Linux applications to work as well as 64bit ones.

I've been trying to debug an issue with no GPU acceleration while developing a game for ages and now I finally have my answer! +1 for adding support for this, it's super important for gaming!

Really wish there were 32-bit accel.


Ran into exception while running validator: is_module_hosted_on_github

Hi!
Thanks for your repo!
The first time I try it failed. Don't know why
╰─$ cookiecutter gh:notsatan/go-template
You've downloaded /Users/mac/.cookiecutters/go-template before. Is it okay to delete and re-download it? [y/n] (y):
  [1/12] project_name (example-project): sqlite_saver_go
  [2/12] project_description (SqliteSaverGo is a Go application created using https://github.com/notsatan/go-template):
  [3/12] go_module_path (github.com/example/sqlite_saver_go): github.com/HaveF/sqlite_saver_go
  [4/12] license_owner (example): havef
  [5/12] base_branch (master): main
  [6/12] contact_email ():
  [7/12] github_specific_features (y):
  [8/12] private_project (n): y
  [9/12] use_codecov (y):
  [10/12] use_precommit (y):
  [11/12] Select go_version
    1 - 1.21
    2 - 1.20
    3 - 1.19
    Choose from [1/2/3] (1):
  [12/12] Select license
    1 - MIT
    2 - BSD-3
    3 - GNU GPL v3.0
    4 - Apache Software License 2.0
    Choose from [1/2/3/4] (1):

Ran into exception while running validator: `is_module_hosted_on_github`
Stacktrace: `ValueError: Attempt to enable Github-specific features when module path does not belong to github`

go-template is still under development, if you feel that the error is incorrect, you are encouraged to raise an issue at:
	https://github.com/notsatan/go-template

ERROR: Stopping generation because pre_gen_project hook script didn't exit successfully
Hook script failed (exit status: 246)

I also checked the issues, but without luck.
Thanks for your help again!

Hi, thanks for reaching out. The issue seems to be with the regex pattern being used — it is not expecting an underscore
https://github.com/notsatan/go-template/blob/e146f9e1dd6951a53cfb1306897df407b354852a/hooks/pre_gen_project.py#L13-L14
Seems to be a bug — the regex should also allow for underscores in user/repository names since they are valid on Github. Will verify and push a fix if needed!

This is indeed a bug. Since I am already making changes to the regex, should be able to simplify the pattern to
^github.com\/[\w\-]+\/[\w\-]+\/?$

Should be fixed with this push. You can go through the same steps again to generate a new project — make sure you answer "Is it okay to delete and re-download" with a yes (that's the default)
Let me know how it goes!

@notsatan nice! it works now 🎉🎉🎉

@notsatan another small issue:
prompt message:
7) Upload initial code to git:
    $ git add -a
    $ git commit -m "Initial commit!"
    $ git remote add origin https://github.com/HaveF/sqlite_saver_go.git
    $ git push -u origin --all

If you have any suggestions, or encounter any issue, please raise an issue;
    https://github.com/notsatan/go-template

git commit -m "Initial commit!" should be git commit -m 'Initial commit!'
double quotes would have problem, like this:

I use zsh in Mac, gpt says it also effect the bash, I don't know. Maybe Use Single Quotes is a good choice

Not sure about the single/double quotes — double quote works on my end, default Mac and the original Linux system I tested it on. Will leave it as is for now, hopefully users with other shell(s) will be able to switch as needed
I'll look into modifying the instructions printed in case this becomes a more widespread issue. Thanks for the heads up!


Driver initialized in BeforeClass doesn't close after class tests have finished.

Driver initialized in @BeforeTest should be closed after completing all tests from current .
Driver initialized in @BeforeClass should be closed after all tests from class are complete.
Test code introduced in comments in https://github.com/qaprosoft/carina/pull/1304

@DimaGrinevich could you please verify and close this ticket


requesting your review of RFP with deadline 10/27

@tvol @cablegreen will you review and we can discuss? I'm thinking about a few possibilities related to OPN, OER, or other affiliate related work in developing countries you may be working on or aware of could be a fit: http://www.international.gc.ca/development-developpement/partners-partenaires/calls-appels/techno-platforms-plateformes-techno.aspx?lang=eng
@Scott-CC can you confirm eligibility of minimum 50K cash match from Canadian sources (if we went in for $1M ask over 3-5 years)?

@rebeccalendl @Scott-CC  do you know if CC is definitely eligible to submit an application?

happy to talk about it ... timeline would be very tight with the Summit right around the corner


Memory (and Handle) leak on Windows Server 2016

I'm running grok exporter on Windows Server 2016 and seeing a memory leak:

It's leaking 75MB a day, which is about 1 GB every two weeks.
Here's my config (sanitized):
---
global:
  config_version: 3
input:
  type: file
  paths:
  - ../../../../afolder/*.log
  - ../../../../anotherfolder/*.log
  - '../../../../Program Files/PostgreSQL/11/data/log/postgresql-*.log'
  readall: false
  fail_on_missing_logfile: false
  poll_interval: 10s
grok_patterns:
- removedToSanitizeFile
metrics:
- type: counter
  name: removedToSanitizeFile
  help: removedToSanitizeFile
  match: removedToSanitizeFile
  paths:
  - ../../../../removedToSanitizeFile
  labels:
    error_message: '{{.message}}'
    logfile: '{{base .logfile}}'
- type: counter
  name: removedToSanitizeFile
  help: removedToSanitizeFile
  match: removedToSanitizeFile
  path: ../../../../removedToSanitizeFile
  labels:
    error_message: '{{.message}}'
    logfile: '{{base .logfile}}'
- type: counter
  name: postgres_errors
  help: Number of postgres errors per error type.
  match: '%{POSTGRES_DATE} %{POSTGRES_CODE}:
  %{POSTGRES_USER},%{POSTGRES_DB},%{POSTGRES_APP},%{POSTGRES_CLIENT}
  %{POSTGRES_ERROR_MESSAGE:message}$'
  paths:
  - '../../../../Program Files/PostgreSQL/11/data/log/postgresql-*.log'
  labels:
    error_message: '{{.message}}'
    logfile: '{{base .logfile}}'
server:
  protocol: http
  port: 3903

Please can you let me know if there's anything I can do to investigate this memory leak further and pinpoint the cause of it?  Would pprof help...? https://github.com/google/pprof

Yes, pprof is the right tool, but you need to add it to the source code and recompile grok_exporter in order to use it. If you do that, could you use the built-in-metrics-improvement branch? I'm currently rewriting the built-in metrics to make debugging memory and slow patterns easier, and it might help in addition to the pprof data to see the new built-in metric values.
If you cannot compile grok_exporter from source, either I can compile grok_exporter with pprof for you, or you might be able to give me an example logfile so I can try to reproduce it myself.

Thanks, I'd like to do it so I can help fix any future issues. I'm guessing it's only an issue on Windows as it's a handle leak, how do I build the Windows exe from source?  There's only details for Mac or Linux on the README.

I'm building the Windows release on a Linux machine using ./hack/release.sh windows-amd64. This will run the fstab/grok_exporter-compiler-amd64 Docker image which contains a cross-compiler for creating the Windows executable.
Alternatively, you could try to run the Docker command directly, like this:
docker run -v ~/go/src/github.com/fstab/grok_exporter:/go/src/github.com/fstab/grok_exporter \
    --net none \
    --rm \
    -ti fstab/grok_exporter-compiler-amd64:v1.0.0-SNAPSHOT \
    ./compile-windows-amd64.sh -ldflags -X github.com/fstab/grok_exporter/exporter.Version=1.0.0-SNAPSHOT -X github.com/fstab/grok_exporter/exporter.BuildDate=2020-12-24 -X github.com/fstab/grok_exporter/exporter.Branch=built-in-metrics-improvement -X github.com/fstab/grok_exporter/exporter.Revision=0f46c8f -o dist/grok_exporter-1.0.0-SNAPSHOT.windows-amd64/grok_exporter.exe

Hi, I can't pull the docker image:
Unable to find image 'fstab/grok_exporter-compiler-amd64:v1.0.0-SNAPSHOT' locally docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.
I've tried for three days now :(  Usually this limit is reset after 6 hours.  Do you have an automated process that is using it up every day?

Hi, I can't pull the docker image:
Unable to find image 'fstab/grok_exporter-compiler-amd64:v1.0.0-SNAPSHOT' locally docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.
I've tried for three days now :(  Usually this limit is reset after 6 hours.  Do you have an automated process that is using it up every day?

Oh, sorry, copy-and-paste error. The latest image is fstab/grok_exporter-compiler-amd64:v1.0.0.RC5. The v1.0.0-SNAPSHOT version is wrong.

Oh, sorry, copy-and-paste error. The latest image is fstab/grok_exporter-compiler-amd64:v1.0.0.RC5. The v1.0.0-SNAPSHOT version is wrong.

Same issue unfortunately:
Unable to find image 'fstab/grok_exporter-compiler-amd64:v1.0.0.RC5' locally docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.

Same issue unfortunately:
Unable to find image 'fstab/grok_exporter-compiler-amd64:v1.0.0.RC5' locally docker: Error response from daemon: toomanyrequests: You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit.

When I saw an error related to v1.0.0-SNAPSHOT I assumed it's the wrong tag causing the problem, but now I see that it's about Docker's new pull rate limit and not about the wrong tag.
I've never hit this limit, it's actually the first time I'm seeing this. My understanding is that this is a limit per client, so if you hit that limit there must be something pulling more than 100 images every 6 hours on your machine, not on my machine. I just removed the image locally and pulled it again with docker pull fstab/grok_exporter-compiler-amd64:v1.0.0.RC5 and it worked without any issues.
Meanwhile I'm working on a long running load test for grok_exporter. If I'm lucky, I find a way to reproduce this in a test setup.

Hi, here's a couple of heap snapshots (run go tool pprof -http=:8080 heap.out for a cool UI), you can also 'diff' the two.  I've also captured a dump of the goroutines goroutine.out: link to wetransfer.  Hopefully they'll help.  I've got a sneaking suspicion that it could be this problem: https://blog.detectify.com/2019/09/05/how-we-tracked-down-a-memory-leak-in-one-of-our-go-microservices/  But please let me know what you find out.  Btw, where does grok_exporter log to for windows?

Hi, here's a couple of heap snapshots (run go tool pprof -http=:8080 heap.out for a cool UI), you can also 'diff' the two.  I've also captured a dump of the goroutines goroutine.out: link to wetransfer.  Hopefully they'll help.  I've got a sneaking suspicion that it could be this problem: https://blog.detectify.com/2019/09/05/how-we-tracked-down-a-memory-leak-in-one-of-our-go-microservices/  But please let me know what you find out.  Btw, where does grok_exporter log to for windows?

Ok, I've taken another look and it seems that the memory leak may not be in your code, it could be in the prometheus client library for go: https://github.com/prometheus/client_golang/releases (according to pprof)
So it could be this issue: https://github.com/prometheus/client_golang/pull/784
You're using version 0.7.0 (pre the above issue) so I'm going to try rebuilding the code with version 0.9.0 and see if the leak goes away.

Ok, I've taken another look and it seems that the memory leak may not be in your code, it could be in the prometheus client library for go: https://github.com/prometheus/client_golang/releases (according to pprof)
So it could be this issue: https://github.com/prometheus/client_golang/pull/784
You're using version 0.7.0 (pre the above issue) so I'm going to try rebuilding the code with version 0.9.0 and see if the leak goes away.

Thanks a lot for your work on this. I took a look at the heap snapshots, but as you said there's nothing pointing to a memory leak there. I'll take a deeper look into this as well and keep you updated.

Thanks a lot for your work on this. I took a look at the heap snapshots, but as you said there's nothing pointing to a memory leak there. I'll take a deeper look into this as well and keep you updated.


feat: Verify Noir circuits

Write a verifier in python for Honk proofs based on this repo : https://github.com/Maddiaa0/honk-verifier/tree/master
how to :

use garaga's python classes : PyFelt for modular arithmetic operations.
use / add (if needed) Elliptic curves information from definitions.py
write the verifier in a single python file under src/precompiled_circuits/honk.py.
Do not write a ModuloCircuit class yet, only the verifier inside a function.
You can copy paste and re-use the code here for EC scalar multiplication https://github.com/feltroidprime/zk-ecip-py/blob/main/src/curve.py when the solidity is using the ECMul/EcADD precompile
You can use the gnark CLI backend when the solidity is using the EcPairing precompile
add some python functions to parse and map the honk proof into a proper python dataclass inside honk.py

Looking for contributors

I am willing to contribute to this feature.


Fix for the M1 Apple version.

otool's output format seems to vary across XCode versions as well as the type of chip that it is running on, Intel vs M1.

I'll merge once the CI has finished.


Where is the apk file? Reupload on anywhere and let us to test

Plz share apk file, upload file here or anywherr and update or share download link, thanks

The apk was removed from the appstore lately. Apparently beacuse of some issues with the ads system. Anyway, this project is getting discontinued for a better, more complete approach. This was more like an experiment than a proper, good implementation.
I've learned a lot from this project and will hopefully integrate all that knowledge in my next project so stay tuned because this next thing will have its dedicated app! And one that doesn't suck!


ios connect much faster than android

my ios teammate connecting to the device much faster than our android app..
for android it takes 6 sec
iphone 0.5 sec
how is it possible?

Hello,
There may be a multitude of causes of this behaviour starting with availability of Service Changed characteristic, attributes caching, scan settings (time window, frequency of windows), chip used and so on.
The topic is very broad and not connected to the library itself therefore I am closing.
Best regards


Reset Password? Email Confirmation? = Problems?

Hey guys, i currently have this issue where it confirms the email random amount of times... and all the time when you register sucessfully, it first alerts me saying Username is Dupe(Which its not), and then confirms email...???
Here is Github Repo JS : https://github.com/amanuel2/ng-forum/blob/master/controllers/authCtrl.js
Section Code Registering! :
 $scope.regissterForm = function() {

            $scope.isUsernameDupe = false;
            refService.ref().child("UserAuthInfo").on("value", function(snapshot) {
                snapshot.forEach(function(childSNap) {

                    var key = childSNap.key();
                    var childData = childSNap.val();

                    if (childData.Username == $scope.register.username) {
                        $scope.isUsernameDupe = true;
                        return;
                    }

                })

                if ($scope.register.terms && $scope.isUsernameDupe != true) {
                    refService.ref().createUser({
                        email: $scope.register.email,
                        password: PASSWORDRESET(16)
                    }, function(error, userData) {
                        if (error) {
                            switch (error.code) {
                                case "EMAIL_TAKEN":
                                    alertify.error("The new user account cannot be created because the email is already in use.");
                                    break;
                                case "INVALID_EMAIL":
                                    alertify.error("The specified email is not a valid email.");
                                    break;
                                default:
                                    alertify.error("Error creating user:", error);
                            }
                        } else {
                            refService.ref().child("UserAuthInfo").on("value", function(snapshot) {
                                refService.ref().resetPassword({
                                  email: $scope.register.email
                                }, function(error) {
                                  if (error) {
                                    switch (error.code) {
                                      case "INVALID_USER":
                                        console.log("The specified user account does not exist.");
                                        break;
                                      default:
                                        console.log("Error resetting password:", error);
                                    }
                                  } else {
                                    alertify.success("Confirmaton Sent to " + $scope.register.email);
                                  }
                                });
                                refService.ref().child("UserAuthInfo").child(userData.uid).set({
                                    Username: $scope.register.username,
                                    Email: $scope.register.email,
                                    UID: userData.uid,
                                    Image: 'http://cs624223.vk.me/v624223037/2b1bb/GRTKddkmXiw.jpg',
                                    Moderator: false,
                                    BronzeBadge: 0,
                                    SilverBadge: 0,
                                    GoldBadge: 0,
                                    PlatinumBadge: 0
                                });

                            })

                        }
                    });
                } else if ($scope.isUsernameDupe == true) {
                    alertify.error("Username already in use");
                } else {
                    alertify.warning("You Must Accept Terms and Services Before Procceding!")
                }
            })
        }

HTML For Register Github : https://github.com/amanuel2/ng-forum/blob/master/views/auth.html
I also posted the same issue here.. https://github.com/amanuel2/ng-forum/issues/28

Please reduce this code to a simple repro (we can't debug your app, sorry, we need the minimal code in a runnable state), include version info, and steps to reproduce. See creating an mcve.

@katowulf i cant put it more simpler.. like i dont udnerstand.. Here is the website : http://ng-forum.site88.net

Sorry, we can't parse an entire app to help you debug. It needs to be reduced to the minimum problem set that still reproduces the error. See creating an mcve.


Fixes to Docker scripts for DSpace 8

References
Backend Fixes related to https://github.com/DSpace/dspace-angular/pull/2966
Description
This PR includes some important bug fixes to the DSpace 8 Docker scripts.  Namely:

Fixes bug where if pgcrypto is already installed, an error was thrown
Fixes bug where using Entities test data resulted in startup failure because ignored migrations were not run.
Minor updates Docker READMEs for DSpace 8.

Instructions for Reviewers
Assuming this build succeeds in GitHub CI, I plan to merge this immediately as this PR is required for https://github.com/DSpace/dspace-angular/pull/2966

Merging immediately as these fixes are required to fix the bug described in https://github.com/DSpace/dspace-angular/pull/2966  (This bug currently blocks anyone from freshly installing our Entities Test data set in a local Docker.)


Fix/tiller helm flags

Addresses: #1072
Notes

Did a run through of the help flags and commands. Lowercasing first letter and removing ending punctuation.
Added extra spaces for consistency with programming style.
Added f := cmd.Flags() where missing for consistency.
Removed the from the beginning of messages.

This change is

Wow. Fabulous. Thank you.


Bring Back File Tree

It would be great to have an option to turn the file tree back on like it was in the 5x release. My workflow was pretty dependent on adding files trough that interface. While it's possible to work with the new ux, it slows me down to the point that i just downgraded.
On the topic of the file tree, a "Reveal in Finder" or "Show in Folder" option would be great when right clicking folders or documents.

I used that a lot myself, particularly for adding links by drag-and-drop, and while I miss this particular feature, I think the asset manager is better than the file tree. We still have the same right-click context menu for uploading files and folders in the asset manager.
The only thing is that Import from Computer, New File, New Folder buttons should be visible always (they disappear when you start to navigate).
What really should be useful and fast, is if the Editor could notice when files are copied to the repository folders. Then it should be super easy to just copy the files and start working on/with them in the Editor.

@nagim I know it's there, but having to click a button is a pain. I'm constantly adding files, i'd be happy with the asset manager if it was always visible.

Using the 'files' or 'assets' manager was a big part of my workflow, and I don't see myself upgrading to v6 until it's back in a permanent place - having to open a modal every time is going to be a massive pain.

Thank you for the feedback.
The goal of the "Files" dialog was to provide a better UX for working with files (preview, more spaces, etc), I'm still trying to understand why the Files Tree is important for you when editing, it seems to me that you should have to use it only a few times for manipulations (create a new folder, upload some files, etc).
We are looking for a solution, we'll maybe add it back
In the mid-time, the last release 6.0.4 includes a keyboard shortcut to open the file dialog.

@SamyPesse I work with a bunch of images. The file tree is helpful, because when i start writing i right click on a folder and upload all my images. But i don't recall the image names off the top of my head. With the tree open, as i'm writing (I write in markup, don't really use the WYSIWYG features for much more than preview) i can just look to see the file names.
Same thing when i'm using gitbook to write documentation, having a quick glance at a list of .md files i can link to without opening a modal dialog lets me do this much faster.
It would be nice to have an option to hide or show the file tree. I get how it's not useful in everyones workflow, but for me it's a must have.
Thanks for taking the time to reply!

The last release 6.1.0 includes a new Files Tree in the sidebar.
Let us now what you think!
PS: @gszauer it also includes an option Reveal in Finder.

I love it! Including the file explorer as a tab is great!

Ah brilliant, this release is just what I was looking for. Thanks for the effort guys!

Great to see the file tree back! Thanks!
However, it seems that the drag and drop linking should work in raw mode, too (the banner appears at the bottom), but it has no effect. It works in document mode.
Also, Reveal in File Explorer has no effect on Win 7 64bit.


Skip evaluating archived GitHub repos in an org

TL;DR
I would like to be able to set a flag to skip analyzing archived repos in my GitHub organization so I don't have to comb through results of repos that are out of scope. Maybe making that a default behavior would be welcome.
Detailed design
No response
Additional information
No response

Added support here: https://github.com/Legit-Labs/legitify/commit/c4118c9fe69c57474d08bc2b4396211d7b07e4bc


iced.rs website doesnt work with darkreader

Clicking the 'next' button does nothing but print this console error
dodrio/change-list.js:90 Uncaught TypeError: Cannot read property 'firstChild' of null
    at Array.pushFirstChild (dodrio/change-list.js:90)
    at ChangeList.applyChangeRange (dodrio/change-list.js:231)
    at ChangeList.applyChanges (dodrio/change-list.js:220)
    at imports.wbg.__wbg_applyChanges_80aff4692bcb5634 (tour.js:281)
    at /tour/tour_bg.wasm:wasm-function[125]:0x63f2d
    at /tour/tour_bg.wasm:wasm-function[305]:0x8715e
    at /tour/tour_bg.wasm:wasm-function[638]:0x96d16
    at __wbg_elem_binding2 (tour.js:27)
    at real (tour.js:444)

Same issue as #541

totally.


Application detail panel is not responsive

Describe the issue:
The application detail panel is not responsive, the "Info" menu item is not displayed. If a user did not know about an "Info" menu item, he cannot find the menu, the "Shared Access" is also not displayed properly.

How to reproduce:

Download a latest IS pack
Create an application (SPA)
Check the application detail menu items

Expected behavior:
Either all of the menu items should be visible at the same row, or it should be intuitive that there are more menu items using three dotted button or an arrow.

Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: IS 7.0.0-beta6
OS: Mac
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

As an inspiration, the following screencast shows how Github repo tab bar handles responsiveness.
https://github.com/wso2/product-is/assets/41533942/56b7512e-79a7-45ad-bf0b-c936aa34472a

As an inspiration, the following screencast shows how Github repo tab menu handles responsiveness. We too may be able to do something similar.
Screen.Recording.2024-01-31.at.10.18.57.mov

+1. Or we can migrate the tabs to @oxygen-ui/tabs. MUI already has scroll support (https://mui.com/material-ui/react-tabs/#forced-scroll-buttons)


Animation doesn't work well in IE / Edge

Hi,
Love the plugin, but somehow this animation that we did, doesn't work well on IE / Edge :(
The linked letter images look broken, otherwise looking awesome in all other modern browsers!
Just wondering if you could take a look at the demo.html and perhaps give me some pointers..? Thank you so much.
animation.zip

I guess you're using some kind of stroke as mask, is that right?
can you share the .ae file so I can take a look?
by the way, it's best if you convert your letters to shapes, so they get exported as vectors and don't break when resized

Hi There!
I'm the animator working on this piece with the OP - I've attached the collected project for you to have a look at.
Have tried to keep the setup simple: all the letters & numbers have been converted to shapes in AI (no live text in AE) and the masking has been created with generic masks or alpha track mattes.
Any advice you could give would be greatly appreciated.
animation_collection.zip

The missing lines in Edge are related to using alpha masks that have only strokes and not fills on them. Edge doesn't handle that case correctly. If you can correct those masks and use fills it should be fine.
By the way, you should convert those .ai layers to shapes in AE because they'll get exported as vectors and not rasterized pngs (right click on each ai layer and select Create Shapes from Vector Layer). The problem in your case is that since you already added masks, you'll need to adjust them again because AE messes masks up when converting to shapes.

Hi,
We were able to solve the issue by re-animating it!
Thanks very much for your help. Here's our final file if anyone's interested
anim_update.zip


Fontawesome update to 4.7.0

see issue #1490

I have implemented this in pending pull #1495

As mentioned before, font-awesome is not used in w2ui core, just in demos. So, updating it does not change core library. :)


Allow passing openjpa and underlying datasource (DBCP2) properties

This is a little bit of POC referencing my last mail in thread "OpenJPA pool with DBCP".
It fixes:

configuring openjpa.Multithreaded (with defaulting to true unless configured otherwise)
configuring additional openjpa properties: originally it used  openjpa.ConnectionFactoryProperties but as configuration (https://openjpa.apache.org/builds/3.2.2/apache-openjpa/docs/index.html#ref_guide_dbsetup_config) indicates it's only for internal DataSource (and MaxTotal would not even be considered here) - used openjpa.ConnectionProperties instead

Added passing all openjpa.* and datasource.* properties from james-database.properties file to openjpa or to DBCP2 (via openjpa.ConnectionProperties) respectively. I left existing connectionProperties (TestOnBorrow, ValidationTimeout, ValidationSQL and MaxTotal) though they could probably be removed altogether at this point.

Should be documented:

I didn't add documentation earlier as I wasn't sure if the change is good/desired. I just pushed updated documentation and corrected formatting.


Branch route labels

My suggestion is to introduce the ability to assign labels to routes. These labels could be simple indicators such as ‘yes’, ‘no’, or any other appropriate descriptor for the route.
To illustrate, consider a scenario where we have a condition node that leads to a branch node, which in turn connects to two additional nodes. In this case, I would like to have the option to label the left node as ‘yes’ and the right node as ‘no’. This feature would enhance the clarity and understanding of the flow structure.
Sample image, the label position can be anywhere, not necessarily where it is in this image.

I was able to do this using a css and a custom node by adding a label property to the data.
Sample:
return (

{node.label}

<div className={`other-node ${node.configuring ? 'node-configuring' : ''} ${node.validateStatusError ? 'node-status-error' : ''}`}>
{node.name}

CSS:
.node-label {
  text-align: center;
}


Unrecoverable when in Remote View

When near a rail line (or waterway, if you're using Cargoships) in remote view, accidentally or intentionally pressing the bound key for equipping the RMC causes an unrecoverable crash as it attempts to mount the player to the rail line remotely.
The mod Railway Motor Car (0.5.0) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event railway-motor-car: railway-motor-car-key (ID 254)
The mod Railway Motor Car (0.5.0) caused a non-recoverable error.
Please report this error to the mod author.
Error while running event railway-motor-car:on_player_driving_changed_state (ID 29)
railway-motor-car/scripts/use_equipment.lua:237: attempt to index field 'vehicle' (a nil value)
stack traceback
railway-motor-car/scripts/use_equipment.lua:237: in function <railway-motor-car/scripts/use_equipment.lua:210>
stack traceback
[C]: in function 'set_driver'
railway-motor-car/scripts/use_equipment.lua:145: in function 'mount'
railway-motor-car/scripts/use_equipment.lua:203: in function <railway-motor-car/scripts/use_equipment.lua:193>

Thanks for the report, fixed with 0.5.1


Continue comment when enter is pressed

VSCode Version: 1.12.1
OS Version: Arch Linux

Steps to Reproduce:

Open editor in a language that supports comments (say foo.c)
Type a line that starts with //
Press enter
Next line should automatically be started with // (or at least this should be possible to configure). Instead, the next line is empty.

+1 this would be nice

This should be implemented in a C extension by customizing enter rules. We may want to update our internal C extension.

Hi, can I jump in? :) new to this repo

@rebornix If you can point me in the right direction for where to make these changes I'm happy to submit a PR for this. I like to start new files with comments laying out the code I'm going to write, so I'd get a lot of use from this.

Is there a way to enable this with a keybinding, for all languages?
Say, if the cursor is inside a line comment and you press enter, perform 1. enter; 2. line comment.

for now u can try https://marketplace.visualstudio.com/items?itemName=ctf0.auto-comment-next-line

There should be a configurable editor option to do this, if it's not default.
Very annoying to have to start comment on every line.

This feature is provided by https://marketplace.visualstudio.com/items?itemName=kevinkyang.auto-comment-blocks

Thanks @Typz. Just tried it however it doesn't work with javascript when auto-comment-blocks.singleLineBlockOnEnter is set to true (which is the behavior being requested here), and it doesn't look to be supported anymore (last commit was 3 years ago).
This functionality is common in other editors so it'd be great to see it added to vscode as well.

The above extensions weren't working for me so I made a new one to add inline comments to onEnterRules of existing languages: https://marketplace.visualstudio.com/items?itemName=val.vscode-continue-inline-comments

@valeriangalliat very nice! I have been wanting something like that for years. I tested it briefly with a TypeScript React file and it worked great.
I have enjoyed another great extension, Rewrap, but it does not always handle new comment lines the way I want it to when using TSDoc, for example.
Both extensions have use cases though, and therefore a place in my toolbelt, so thanks for creating it 🙌

The above extensions weren't working for me so I made a new one to add inline comments to onEnterRules of existing languages: https://marketplace.visualstudio.com/items?itemName=val.vscode-continue-inline-comments

Seems to work fine for most languages, but go doesn't work. Just FYI.

To get this as a built-in editor setting, or language setting, a common LSP-supported approach is probably needed. The LSP server should understand the concept of a block comment to be able to extend that block on new line if inserted before the end of the block and after the start of the block.
Perhaps the reason this has not yet been made available as an option is because it has been overlooked, or it could very well be because the LSPs implementations don't agree on a common API that would be able to provide this.
I've never done LSP work, but from my understanding of them, it seems like this would be an LSP-centred feature.
I took would like this feature but don't know if I can find the time to learn LSP stuff (don't have too much free time right now).

Possible dup of #180551, which is currently in the October 2023 Milestone.

It seems that this has been implemented now and is on by default. How do I turn it off?

It seems that this has been implemented now and is on by default. How do I turn it off?

I'll tell you, when you tell me how I can switch it on 8) – Seriously though, are we talking about the same here?
// when I press enter here, the next line is no comment :'(
const person = 'Homer Simpson';

Same for me. I'm quite confused tbh :D @cyanophage are you sure that that's not a feature of a particular language-extension you're using?

Not just continue comment, but when I press "Join lines" shortcut, it should remove the comment prefix from the joined line.
I remember having both of these in SublimeText and I still miss it even after yeas of vscode usage :(

Not just continue comment, but when I press "Join lines" shortcut, it should remove the comment prefix from the joined line.
I remember having both of these in SublimeText and I still miss it even after yeas of vscode usage :(

You got me there! I have this feature in Vim with a comment plugin, and it's super convenient. Every time I break a long comment line or join comment lines in VS Code, I think about this feature. I assumed there might be a configuration in VS Code, and finally stumbled upon this discussion.
Hope VS Code will support this feature soon.

Related(?) on Stack Overflow: How to configure VSCode to auto insert comment chars on multi line comments

Hi everyone, I have the following PR which should fix this issue for the following languages that use the double-slash line comment:
cpp
csharp
go
groovy
java
json
less
objective-c
php
rust
swift
TypeScript and JavaScript already have this fix. This will add a line comment on the next line when pressing Enter only if the cursor is NOT followed only by whitespaces. This was decided as per a request from users after the fix came out for TypeScript/JavaScript. In other words, in the following case where | represents the cursor position, pressing enter will not add a line comment on the next line:
// some comment |
But in the following case it will
// some | comment
I have not added this change for C because we do not have a language configuration file for C and do not support auto-indentation natively for C. If there are other languages you'd like me to cover, with potential, other types of line comment syntaxes, please file a new issue.

This will add a line comment on the next line when pressing Enter only if the cursor is NOT followed only by whitespaces. This was decided as per a request from users after the fix came out for TypeScript/JavaScript.

Can you clarify what the purpose of this is and why it makes sense to apply to the general feature? This seems like a non-obvious special case that will confuse people, but maybe I’m missing something.

this is as a result of the following issue https://github.com/microsoft/vscode/issues/233186 as well as comments in https://github.com/microsoft/vscode/issues/180551 and generally feedback I have received in standup about not wanting to add a line comment on the next line if the cursor is at the end of the line followed only by whitespaces

I think this tells me why it was implemented this way (user feedback) but it’s still not obvious to me why people gave  this feedback. What are the motivating use cases that make adding this exception better than not doing so?

The thought is that generally when one wants to write a multi-line comment, they'd probably use the multi-line format /* */.

This part feels a lot more like user preference than a safe assumption to make at the editor level. It’s not obvious to me that this is true generally for me at all.
I would guess instead that it probably depends on whatever the style happens to be in an existing codebase, and so maybe even something I may want to configure at a workspace level? It’s honestly difficult for me to be sure of without sitting down and listing out use cases for both behaviors, but at minimum, if that assumption doesn’t hold true for any user then this behavior will seem non-obvious (aka “random” in confused user speak) and so it seems like it will be really annoying to those users.

If however the cursor is within a line comment followed by non-whitespace characters, then we can assume the user wants to add a line comment on the next line.

Yes this part does seem like a safe assumption.

Yes essentially the feedback I got from the users I talked to was that they don't want a line comment to be inserted on the next line when pressing Enter from the end of a line comment. I think these users use the line comment to add single line comments (as generally the line comment was designed moreso for this purpose). For those users it can be disturbing to have to remove the double slash on Enter every time. I am open to discussion however and if a lot of people in this thread would like to add this functionality we can discuss it.

This issue will be closed. Feel free to open other issues if there is something else.


dart_service's test/flutter_analysis_server_test.dart is flaky

We thought it started flaking in https://github.com/dart-lang/dart-services/commit/040821acf3782b07d00617e739ba4d0a57d0a561 but if you check out earlier commits, like https://github.com/dart-lang/dart-services/commit/ef2b4140333e4db17e3cf57054ab7fcd724127c7, you can still get a flake with pub get ; pub run test test/flutter_analysis_server_test.dart.
The only test case that seems to fail is "Flutter SDK analysis_server with analysis servers Trigger lint with Flutter code" (both the null safe and the null unsafe versions).

I thought it might be the package version of analyzer, but even at analyzer 2.0.0, I can get the test to fail.

Closing this as stale as these tests no longer exist in this form. Thanks!


feat: python 3.13 support

free threading is not yet supported

we have to wait for bleak

superseded by #71


ToolTask.cs replaces all backslashes with forward-slashes in response files

See https://github.com/Microsoft/msbuild/blob/xplat/src/Utilities/ToolTask.cs#L1598
From some comments in the file, it seems like this is just a temporary workaround to get things up and running x-plat (i.e. to quickly normalize all file paths): https://github.com/Microsoft/msbuild/blob/xplat/src/Utilities/ToolTask.cs#L1510
// This is a hack..!

I just wanted to point out that I think this is causing us some issues when compiling VB projects for us in the corefx repo. The VB response file has some define constants in it, and the values for those contain strings that are escaped with backslashes. For example:
-define: "CONFIG=\"Debug\"

When Tooltask runs, it normalizes it to this
-define: "CONFIG=/"Debug/"

This is no longer valid, and the VB compiler errors out. This is preventing us in corefx from building VB projects in x-plat builds. We only have one such project, so right now we just disabled the build for that when outside of Windows.

https://github.com/Microsoft/msbuild/issues/137 for VB only is a subset of this.

https://github.com/Microsoft/msbuild/pull/2114 provides two types of fix a mechanism for this: it avoids correcting slashes that precede a " character (which fixes the immediate VB define problem), and it provides a new method AdjustCommandsForOperatingSystem that an OS-aware ToolTask can override to either apply tool-specific heuristics or do nothing.
This doesn't fully solve the problem, but I don't know how much better we can do.
Please comment on this issue if you've found another tool that encounters this type of problem, or if you have an idea about how to make a fully general default implementation of AdjustCommandsForOperatingSystem.


Additional test coverage for async rendering of native type templates

fixes #1806

Checklist:

[x] Add tests that demonstrate the correct behavior of the change. Tests should fail without the change.
[ ] Add or update relevant docs, in the docs folder and in code.
[x] Add an entry in CHANGES.rst summarizing the change and linking to the issue.
[ ] Add .. versionchanged:: entries in any relevant code docs.
[x] Run pre-commit hooks and fix any issues.
[x] Run pytest and tox, no tests failed.

PYTHONPATH=src pytest tests/test_nativetypes.py

Thank you both!


On WSL
find: cannot delete ‘/home/benjamin/.local/lib/python3.10/site-packages/setuptools’: Directory not empty
find: cannot delete ‘/home/benjamin/.local/lib/python3.10/site-packages/setuptools-70.0.0.dist-info’: Directory not empty
find: cannot delete ‘/home/benjamin/.local/lib/python3.10/site-packages/~etuptools’: Directory not empty
find: cannot delete ‘/home/benjamin/.local/lib/python3.10/site-packages/~etuptools-69.5.1.dist-info’: Directory not empty

rm -R ~/.local/lib/python3.10/site-packages/*entry*sdk*

Expected behavior
No response
pip version
Not read.
Python version
Not read.
OS
Not read.
How to Reproduce
Not read.
Output
No response
Code of Conduct

[X] I agree to follow the PSF Code of Conduct.


Documentation Update

System Information (please complete the following information):

Model Builder Version (available in Manage Extensions dialog): 16.6.0
Visual Studio Version: 2019

Describe the bug

On which step of the process did you run into an issue: Step "Create your App" on https://dotnet.microsoft.com/learn/ml-dotnet/get-started-tutorial/create

Clear description of the problem: When following the documentation, https://dotnet.microsoft.com/learn/ml-dotnet/get-started-tutorial/create , it suggest to "Choose the C# Console App (.NET Core) project template." but based on VS, that project name does not exist besides "Console Application" or "Console App (.NET Framework)". When choosing "Console App (.NET Framework)", and adding "Machine Learning", "Machine Learning Model (ML.NET)" does not appear in the installed.

Expected behavior

Screenshots
When searching C# Console App (.NET Core):

When adding machine learning on Console App (.NET Framework) project:

Related to https://github.com/dotnet/machinelearning-modelbuilder/issues/1511

FYI I was still able to add the Builder to my ,net mvc project after "add machine learning" i got a popup message at the top of the ui telling me to enable it in the options of VS which i did and then i was able to fully enable the machine learning for the mvc solution.

This is a duplicate. Closing.


Added a new article on hugo

A worth reading article on how to deploy websites using goHugo

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

We have moved the Hugo site source to its own repository, so we would appreciate if you could open this PR directly in hugoDocs:  https://github.com/gohugoio/hugoDocs/pulls


Full editor crash in Jupyter notebook after checking image output

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.58.2
OS Version: Windows 10 Pro 10.0.19043

Steps to Reproduce:

Create a simple Jupyter notebook with one cell and the following code (guess any other plotting library with the same underlying mechanism might work)

import matplotlib.pyplot as plt

plt.grid()
plt.show()

Run the cell. Click on the Expand Image at the upper left corner of the image:

In the new tab with the image expanded, click and move the image.

Close the tab, going back to the original Jupyter tab. Click and drag the image, and VSCode crashes.

VS Code version: Code 1.58.2 (c3f126316369cd610563c75b1b1725e0679adfb3, 2021-07-14T22:10:15.214Z)
OS version: Windows_NT x64 10.0.19043
Restricted Mode: No

System Info

Item
Value

CPUs
AMD Ryzen 7 5800X 8-Core Processor              (16 x 3800)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onrasterization: enabledskia_renderer: enabled_onvideo_decode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
31.94GB (20.41GB free)

Process Argv
--crash-reporter-id e0672b45-8b31-4560-b801-4fa7bfcbceaa

Screen Reader
no

VM
0%

Extensions (21)

Extension
Author (truncated)
Version

markdown-preview-github-styles
bie
0.2.0

vscode-markdownlint
Dav
0.42.1

gitlens
eam
11.6.0

vscode-dashboard
kru
2.3.2

vscode-docker
ms-
1.14.0

vscode-postgresql
ms-
0.3.0

python
ms-
2021.6.944021595

vscode-pylance
ms-
2021.7.4

jupyter
ms-
2021.8.1013163132

remote-containers
ms-
0.187.0

remote-ssh
ms-
0.65.7

remote-ssh-edit
ms-
0.65.7

remote-wsl
ms-
0.58.2

vscode-remote-extensionpack
ms-
0.21.0

cpptools
ms-
1.5.1

cpptools-extension-pack
ms-
1.0.0

vscode-yaml
red
0.21.1

unique-window-colors
stu
1.0.51

vscode-icons
vsc
11.5.0

vim
vsc
1.21.5

markdown-all-in-one
yzh
3.4.0

(2 theme extensions excluded)

I think I also encountered the same problem,https://github.com/microsoft/vscode-jupyter/issues/6763

@joyceerhl I've installed VS Code Insiders with the latest Python and Jupyter extensions, and now I fail to reproduce this issue (also refer to #6763).


Initial removal of Notify content

This PR captures the changes to the code to remove instances of Notify and replace with Emergency Alerts. This doesn't (yet) capture the removal of redundant content.
Critical changes so far:

“NotifyModules” has been renamed to “EmergencyAlertsModules” across the application (i.e., the class itself and any references to it). It seems to be working properly, with all unit tests passing.
“notify_client” (As well as NotifyAdminAPIClient and other clients used by the admin application) have been renamed to use Emergency Alerts (following respective naming conventions)
CSS class names
“data-notify-module” attributes have been renamed to “data-emergency-alerts-module”.
CSS classes containing “notify” have been renamed to emergency alerts
All instances of “Notify” in HTML text has of course been replaced with Emergency Alerts (grammar considered - I haven’t noticed anything off)
The package files (package.json and package-lock.json) have been updated such that the package reflects Emergency Alerts rather than Notify.

Considerations:

pytest.ini: Instances of Notify could be replaced here. However, as this is a test config file, it needs some investigation as to the implications of just changing the word “notify” to “emergency-alerts”. It seems safe, but we need to be sure.
config.py: The config.py file itself has been left for now. Most of the environment variables prefixed with “NOTIFY_” have been changed to “EMERGENCY_ALERTS_”, but some - in particular “NOTIFY_ENVIRONMENT”, have been left. This is because “NOTIFY_ENVIRONMENT” will also need to have its name changed in environment variables passed in.
the /docs/static-assets.md file needs changing if we’re keeping it. It displays how static assets are served but the PNG still references Notify.
Everything under /paas-failwhale hasn’t been changed because I imagine there is no reason for us to be removing this - and if we are keeping it for historical reasons, it seems more sensible to just leave everything as is from the Notify days.
/scripts/run_app_paas.sh also hasn’t been changed, for the same reasons as above.
/manifest.yml.j2 hasn’t been changed because it can probably be deleted later, like the other paas artefacts - it looks like this is an artefact from the paas days and there’s nothing we need to retain about this but worth double-checking on.
The README of course needs to be updated once we’re happy with everything.

The Makefile hasn’t been changed. This is one of the things that will need a closer review as we obviously still use it.

PR checks currently failing because this depends on changes being made to utils - a PR has been raised for this and should be merged to main shortly. That should allow the failing tests to pass once done.


Provide a command to make the application read and write a subdirectory under the juicefs mount path like a local operation

Juicefs provides the function of warm up to cache data to local . But we now have a scenario where our application will write data in a subdirectory, and when writing, it will call close() every time 64K is written. This caused us to have a lot of put calls to s3. So I think it is possible to provide a command similar to warm up, which can specify a directory. The reading and writing of this directory are local operations, not related to S3, which can reduce a lot of S3 costs and obtain optimal performance.
What would you like to be added:
Provide a command to make the application read and write a subdirectory under the juicefs mount path like a local operation
Why is this needed:
Reduce the cost of S3 and get the best performance。
**Why not simply use a local path **
We use the entire directory mounted by juicefs as the working directory for the application. The application will create a subdirectory under the working directory for writing operations. This subdirectory cannot be specified through configuration and commands.

There are two options that may be workable for you:

Mount juicefs with --writeback and --upload-delay 1h.
It will force juicefs to write all new blocks locally in the cache-dir, and upload them to S3 after a certain period (say, 1h). Within this period you can read corresponding files locally; or, if you remove the files, these blocks will be removed as well and never be uploaded to S3. The blocks may be uploaded in advance if local cache-dir is too full.
Create a symbolic link in juicefs, referring to a local directory out side of juicefs. e.g: ln -s /local/dir /jfs/dir, then most operations in /jfs/dir will be redirected to /local/dir

It sounds like the second method can solve our problem, thanks.

For the first solution, it may cause the disk to store the written data for 1 hour.

But I think this function can still be provided, because it can provide a direct solution to solve the behavior of a large number of put operations on S3 in the temporary directory when Juicefs is mounted

The second option is not feasible, because the Rename command called by our application will fail

It sounds like the second method can solve our problem. But, after test, we found that Our application cannot rename file because in java.io The rename operation might not be able to move a file from one filesystem to another,

Yes, rename is limited within the same filesystem; you have to do read then write in the application level, just like the mv command.

Run the following command three times to write a file
dd if=/dev/zero  of=/disk1/jfs/data/file2 bs=64K count=1 conv=notrunc oflag=append

Correspondingly, three 64KB blocks appear in the corresponding rawstaging directory

But the three blocks were not merged when finally uploaded to s3. Is this as expected?

cc @SandyXSD
/juicefs mount    -d    -o=allow_other    --metrics=<IP_ADDRESS>:9568    --io-retries=30    --writeback=true    --cache-size=100    --enable-xattr=false    --read-only=false    --log=/home/hadoop/logs/juicefs_disk1.log    --free-space-ratio=0.1    --buffer-size=4096    --entry-cache=5    --prefetch=6    --get-timeout=60    --attr-cache=5    --no-syslog=true    --put-timeout=60    --cache-partial-only=false    --max-deletes=0    --upload-limit=0    --dir-entry-cache=5    --max-uploads=120    --open-cache=10    --upload-delay=1m    --download-limit=0    --cache-dir=/disk1/jfs/cache    localhost/1     /disk1/jfs/data

Yes, it's expected. writeback with upload-delay only delays the upload of blocks(objects), but not triggers the compaction.

For now, creating a symbolic link in JuiceFS is workable.


SPA implementation issue

The doc says that the page structure for the SPA must match the routes defined. I used my component with routes as template for the parent page of the SPA however I cannot make the routing work because I am unsure what template should I use for the children pages. Currently, the root page has a template of the component where the routes are defined, and it renders properly.

Each page has to have the router component in the same path relative to its root. So in the cityfinder example the cities page has ist under jcr:content/par/city_finder.
And the subpages as well: hamburg
To make it possible to drop the cityFinder anywhere it locates the root route by looking at the depth property.
Hope that helps

Yes, this did solve the issue. For anyone referring to this, the problem without the depth attribute is that when accessing the root page, it goes one level higher instead of going to the intended path. For example I have this:
my-project
    - countries
        - usa
        - canada

Without setting the CountryFinder's depth to 0, accessing my-project/countries.html will match no routes because it would resolve to my-project.html.
TL;DR - Set the pages' depth attribute accordingly when using the SPA implementation.

Hello. I have encountered another problem in implementing SPA.
I have followed your example at aem-react-demo. The routes worked as expected except that the content cannot be fetched and instead returns the error that says:
Error: cannot find component for resourceType components/content/react/dashboard-section-view-component
However, it renders correctly when I refresh the page. What could be the mistakes that I need to fix?

Please provide more details. Is it an ajax call that fails? Does the component "components/content/react/dashboard-section-view-component" exist? Can you render the part of the page that is reloaded via simple http?

We actually solved this problem. The component and the file name simply didn't match but now it is fixed. Thanks!


The configuration/implementation of async gRPC may be not optimal

Enhancement
Configuration Issues
https://github.com/pingcap/tiflash/blob/d7e4e2995cebf0cf25e13a2a91adebada9390b66/dbms/src/Interpreters/Settings.h#L363-L364
The async gRPC server uses these configurations for EstablishMPPConnection.
async_pollers_per_cq is the number of threads per completion queue. (default 200)
async_cqs is the number of completion queues. (default 1)
The number of gRPC threads is async_pollers_per_cq * async_cqs = 200.
In my opinion, these default configurations have two issues.

The default thread number is too large. In view of the fact that async gRPC uses a non-blocking socket, in theory, there is no blocking point when doing RPC work. Therefore, the thread number should not exceed the number of CPU cores.
The default completion queue number is too small, which may introduce some unnecessary synchronization overheads.
For example, CqEventQueue uses an MPSC queue and it also uses a spinlock to support multiple consumers. In addition,
pollset_work is called when calling CompletionQueue::Next. A mutex is acquired during this call. Although sometimes this mutex is released, this overhead can not be ignored especially when the thread number is 200.

Actually, the official guide of gRPC performance says

If having to use the async completion-queue API, the best scalability trade-off is having numcpu’s threads. The ideal number of completion queues in relation to the number of threads can change over time (as gRPC C++ evolves), but as of gRPC 1.41 (Sept 2021), using 2 threads per completion queue seems to give the best performance.

At present, TiFlash uses v1.26 gRPC. The perf_notes from v.126 gRPC says

Right now, the best performance trade-off is having numcpu's threads and one completion queue per thread.

I guess using multiple threads per completion queue is good for load balance but the number should not be too large. We can carefully test it to gain the best performance.
Implementation Issues
The first issue is about notify_cq.
https://github.com/pingcap/tiflash/blob/d7e4e2995cebf0cf25e13a2a91adebada9390b66/dbms/src/Server/FlashGrpcServerHolder.cpp#L141-L157
From the code above, we can see there is a another gRPC thread pool for notify_cq. In fact, the default number gRPC thread for EstablishMPPConnection is 400(200 for cq, 200 for notify_cq), which is a scary number.
What is the difference between call_cq and notification_cq in gRPC?

Notification_cq gets the tag back indicating a call has started. All subsequent operations (reads, writes, etc) on that call report back to call_cq. For most async servers my recommendation is to use the same cq.
This allows fine-grained control over which threads handle which kinds of events (based on which queues they are polling). Like you may have a master thread polling the notification_cq and worker threads all polling their own call_cqs, or something like that.

This code tests when the notify_cq and call_cq is called.
I think we do not need to control which threads handle notification events so the notify_cq should be the same as call_cq then the default 200 threads can be removed totally.
By the way, grpc-rs also uses one completion queue both for call_cq and notify_cq. code here
The second issue is about combining different gRPC thread pools. Async gRPC client in TiFlash also has a gRPC thread pool.
https://github.com/pingcap/tiflash/blob/d7e4e2995cebf0cf25e13a2a91adebada9390b66/dbms/src/Server/Server.cpp#L1242-L1248 (good to see that its pool size is std::thread::hardware_concurrency).
Combining different gRPC thread pools can reduce the thread number and context switch. This also makes it easier to add new async RPC in the future.
It can be done with some class abstraction and refactor.

/cc @windtalker @bestwoody @yibin87

there is block behavior in EstablishMppTask，so the number of pollers should big enough to avoid that.  we need modify the findTaskWithTimeout before make the number of pollers small.

there is block behavior in EstablishMppTask，so the number of pollers should big enough to avoid that. we need modify the findTaskWithTimeout before make the number of pollers small.

Got it. The gPRC thread pool for notify_cq can not be removed now and the size should be big enough due to the blocking function findTaskWithTimeout. Seems it could easily become a bottleneck. Look forward to changing this function to non-blocking behavior.
But at least the number of gRPC thread pool for call_cq can be decreased to the number of CPU core and the completion queue number can be increased to a more suitable value.

there is block behavior in EstablishMppTask，so the number of pollers should big enough to avoid that. we need modify the findTaskWithTimeout before make the number of pollers small.

Got it. The gPRC thread pool for notify_cq can not be removed now and the size should be big enough due to the blocking function findTaskWithTimeout. Seems it could easily become a bottleneck. Look forward to changing this function to non-blocking behavior.
But at least the number of gRPC thread pool for call_cq can be decreased to the number of CPU core and the completion queue number can be increased to a more suitable value.

400 threads is not a big number for tiflash. the performance is not as true as what official gRPC says，since I tested the params. if you can some benchmark results to prove it，that will be better.


Could not load library msvcrt-ruby240.dll

I have install the last version of the x86 version of vim 8 and I have an issue whith the ruby integration.
My plugins like LustyExplorer can’t work and when I enter
:ruby –version
I got the following error :
E370: Could not load library msvcrt-ruby240.dll
E266 : Sorry, this command is disabled, the Ruby Library could not be loaded.
When I run
:version
I have : +ruby/dyn and
-DDYNAMIC_RUBY -DDYNAMIC_RUBY_VER=24 -
DDYNAMIC_RUBY_DLL="msvcrt-ruby240.dll"
Ruby is install in C:\Ruby24 and the bin folder containing the msvcrt-ruby240.dll is in %PATH%.
I also tried to put in my vimrc file
set rubydll="C:\Ruby24\bin\msvcrt-ruby240.dll"
but I got the following error :
E370: Could not load Library
E266 : Sorry, this command is disabled, the Ruby Library could not be loaded.
Both ruby and vim are x86.
I am working on windows 10. Thanks for your help.

Please try updating the PATH as I wrote in vim/vim-win32-installer#47.
It might be better to update the document something like this:
--- a/runtime/doc/if_ruby.txt
+++ b/runtime/doc/if_ruby.txt
@@ -221,6 +221,9 @@ for sure edit "gvim.exe" and search for
 If you want to build Vim with RubyInstaller 1.9 or 2.X using MSVC, you need
 some tricks.  See the src/INSTALLpc.txt for detail.

+If Vim is built with RubyInstaller 2.4 or later, you may also need to add
+"C:\Ruby<version>\bin\ruby_builtin_dlls" to the PATH environment variable.
+

 Unix ~

:ruby –version

If you want to see the version of if_ruby, use :ruby print RUBY_VERSION. (See :help :ruby.)

set rubydll="C:\Ruby24\bin\msvcrt-ruby240.dll"

This won't work as you expected. " is a start of a comment, so this makes 'rubydll' empty.
(See :help option-backslash.)

Adding C:\Ruby24\bin\ruby_builtin_dlls to the PATH solved the issue.
Thank you.


Fix Polygon overlaps2d for boost 1.71

Fixes: #115
Without this, lanelet2_routing fails to build with boost 1.71.

Thanks, and fixed with 84312718b1125bc8ccfce72e647b1e3b0f56467b


Make RAFS independent of daemon

Originally RAFS instances are always associated with daemons, or daemon owns RAFS instance. With introduction of tarfs, rafs may be independent of daemon. So refactor rafs and daemon related code to make RAFS independent of daemon.

/test


support nested register derive & cleanups

r? @ryankurte
(rust-highfive has picked a reviewer for you, use r? to override)

r? Emilgardis
Partially fixes #610

MB9AF10xN.svd
Now it is correct

bors r+


Add population data missing for locality in Province 6

Our data set for population is missing data for one locality in Province 6. The data are available in our "Federal Data" in https://github.com/Code4Nepal/data/.
Add the data to the population.sql file.  Please put the data in a logical place -- so that all data for the same district are in rows next to each other. That will make it easier to review in the future.

When you add them, you will add one row for female population and another row for male population. See the current file for examples.
You will need to update the totals for the district for that locality to include these additional data.
You will need to update the totals for Province 6 to include these additional data.
You will need to update the totals for Nepal to include these additional data.

Here are the localities whose data are currently missing.

geo_level
geo_code
name
parent_name
parent_level
parent_code

local
61002
Bheri
Jajarkot
district
27

"Bheri" in "Jajarkot" is "Bheri Malika Municipality" in the federal population data: https://github.com/Code4Nepal/data/blob/master/Federal Data/753 Local Unit Population and HouseHold/PRADESH 6/Jajarkot/Bheri Malika Municipality.csv

fixed with #45


GitHub Codespaces

Is this compatible with setting as GH Codespaces dotfile-repo?

what is administrator password ?


Using other data stores instead of local mdf and Entity Framework

How can I use saas-ecom without relying on a local mdf and EF?

My goal is to have membership implemented elsewhere as well. I want to use SQL Azure, for example.
What steps can I take to extricate this project from local mdf databases?

Hi @philoushka, if you want to use a SQL Server database, you can do so by just changing the connection string. On the other hand, if you need to use your custom authentication implementation, there's a bit of work involved on SaasEcom that I'm willing to integrate in the core library as it has been requested already. Would you be able to help to do this work?


Dynomite Manager in OpenStack

H @ipapapa i,
As I have been discussing in other thread, I am thinking to run Dynomite Manager in OpenStack/KVM/vCenter. I am not interested for cold bootstrap (warm up) feature only.
Any pointers on how can this be achieved ?
I am thinking of not to use the following features for the time being -

Token management for multi-region deployments
Automated security group update in multi-region environment
S3 backups and restores

Any idea how can I deploy  Dynomite Manager in OpenStack/KVM/vCenter and use only cold bootstrap (warm up) feature?
Please advice.
Thanks, Santos

First of all, let us agree on which thread we are going to work on. It seems we started with https://github.com/Netflix/dynomite-manager/issues/93 which I closed because of https://github.com/Netflix/dynomite/issues/529. I feel that this thread needs to be under here, hence I am going to continue on here since it is also the latest you have opened.
I am also confused on what you need. You mentioned
 I am not interested for cold bootstrap (warm up) feature only.

and then
Any idea how can I deploy Dynomite Manager in OpenStack/KVM/vCenter and use only cold bootstrap (warm up) feature?

Might you please clarify what you need?

First of I apologise for the confusion. Thanks for the reply. Yes, the last thread was getting complicated with many topics, hence created a new one.
Apologies for the typo. I am mainly interested for the cold bootstrap feature of the DM. But, as I said I have my own limitation. I can only run in private cloud. If you could help me or give me some pointers on how can I run the DM in Openstack with having the first feature being cold bootstrap (warm up) to begin with that would be helpful.
Looking forward for your kind reply and my apologies for the typo (lost a day :-))
Thanks, Santos

Adapting DM for another environment like OpenStack requires implementing a few of the interfaces. DM is not a software that can run in any environment unless folks in the OSS contribute these interfaces. Below, I provide a few guidelines on how to start:
The implementations that are AWS specific can be found in the AWS package. There are also two AWS specific implementations in the backups.
In your OpenStack environment, you need to develop these similar interfaces. T
In the Getting started you can find some information about what each interface does. If there is something that you do not see there and you want more information please let me know and I will be populating the Wiki.


[SPARK-39918][SQL][MINOR] Replace the wording "un-comparable" with "incomparable" in error message

What changes were proposed in this pull request?

Update the codegen error message for data type which can't be compared by replacingun-comparable with incomparable
Why are the changes needed?

Incomparable is the correct wording here
Does this PR introduce any user-facing change?

No
How was this patch tested?

Existing UT

This is trivial. I found it when working on https://github.com/apache/spark/pull/37337

Merged to master.