Antrea supports pass-through/policy-only mode

Antrea now may be used in chaining with third party primary CNI to provide network policy enforcement.
Design is at https://github.com/suwang48404/antrea/blob/cloud/docs/policy-only.md.
Also added scripts to create aks/eks cluster which may be used for cloud based feature dev, and CI workflow.

/test-all

@tnqn @abhiraut @antoninbas @jianjuns
hi guys, can u please help review this PR? much appreciated.
For some reason, I cannot modify the reviewers field for this PR.

@tnqn @abhiraut @antoninbas @jianjuns
hi guys, can u please help review this PR? much appreciated.
For some reason, I cannot modify the reviewers field for this PR.

Updated reviewers list. Thanks Su.

@suwang48404 : thanks for the work.
Sorry, I did not finish review of the PR, but mostly looked at yamls and pass-through.md.
Three general comments:

I feel it would be much helpful if you can explain the difference between no-Encap, and passthrough. And we might revisit if we should keep both of them.

===> in nutshell, in noEncap PodCIDR is allocated by Antrea, it therefore controls Pods's IPAM as well as network connectivities; In pass-through mode, podCDIR is allocated by primary CNI, antrea does not know IPAM allocation scheme, and how Pod are connected by primary CNI, and constraints of underlay network.

I feel CNI chaining (mainly about CNI config file changes?), no-IPAM (IPAM by other CNI), and passthrough should be three different behaviors, even they are all required for cloud. And in code we should not bind them together.
===> we will discuss??

For AKS, I would suggest to discuss with AKS team first before merging AKS specific code.

====> design is not AKS or EKS, it mean to be generic. open to any CNIs.

And a question - wonder why you chose Terraform but not other technologies (like Ansible) for AKS/EKS deployment?
======> it just simpler to me to use. It is intention based, a lot of resource on the web to get help and tools

For AKS, I would suggest to discuss with AKS team first before merging AKS specific code.

====> design is not AKS or EKS, it mean to be generic. open to any CNIs.

I mainly meant the documentation and Terraform part. And I still need to understand if the implementation can really be applied to multiple CNIs without changes.
If we want to document the generic implementation, maybe one way is to treat it as design/architecture doc, but create a separate user doc ideally with details for each supported/validated clouds.

/test-all

@jianjuns @tnqn @abhiraut @antoninbas
per request, removed l2 CNI policy only support.
Changes in detals:

removed all references to l2 CNI support.
removed all logic and support for auto detect CNI topology.
removed all test cases pertaining to l2 CNI and auto CNI detection.
renamed traffic mode from passThrough to networkPolicyOnly.

Thanks @suwang48404 for the adjustment!

@tnqn thx for review. comments addressed.

@jianjuns Thx for review. I should addressed all ur comments. As there are many inputs, please let me know if I missed any.
thx, Su

There is merge conflict, will do an final merge and validation once all reviewers are happy with the PR.

@suwang48404 : actually I also suggest to move policy-only.md to a separate PR - it is long, and might take some time to finish review.

per JianJun's request. also removed policy-only.md associated assert policy-only-cni.svg

@tnqn @jianjuns @wenyingd @abhiraut @antoninbas
Hi guys, I am hoping to get this merged before 0.5, which is early next week. I'd appreciate if u let me know if there are remaining issues with this PR u'd like me to address
thx

@suwang48404 0.5 is in 2 weeks, we will merge this in time

@tnqn @wenyingd : do you have other major comments on this PR? Esp. please share if you have better ideas on ClusterIP Services with external endpoints.

/test-all

@jianjuns @tnqn @abhiraut @antoninbas
If there is no other comments, can anyone help approve and merge the PR, as I have no write privilege to Antrea repro.

@susanwu88: I will take another look today. A question - is the poliy-only yaml can be applied to EKS cluster directly? If so, I would merge an antrea-eks.yml to the repo, and publish it in every release. We can make a separate PR for that though.

@susanwu88: I will take another look today. A question - is the poliy-only yaml can be applied to EKS cluster directly? If so, I would merge an antrea-eks.yml to the repo, and publish it in every release. We can make a separate PR for that though.

@abhiraut asked same questions. Unfortunately no. Because user would need to change MTU and serviceCIDR in Antrea-agent.conf. The detail is described in policy-only.md coming in after this PR.

per offline discussion with @jianjuns, he wanted

a ./build/yamls/antrea-eks.yml for EKS
a doc/eks-installation.md describing antrea deployment to EKS.

/test-all

LGTM. Some minor comments on the documentation.

/test-all

/test-all

/skip-all

/test-all

/test-all

/test-e2e

/test-e2e


Add google tests

This adds googletest to the build and adds liftover_test program that currently just tests some of the bitvector functionality in sdsl-lite.

done


take_while snippet

Added take_while snippet as promised. I hope it is fine, based on filter snippet, nothing complicated.

Hi @Ravirael, I'm your friendly neighborhood Microsoft Open Technologies, Inc. Pull Request Bot (You can call me MSOTBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
The agreement was validated by Microsoft Open Technologies, Inc. and real humans are currently evaluating your PR.
TTYL, MSOTBOT;

Thank you! Looks great!
FYI - Your master has diverged from the official master. You should clean up your local master and make a new branch from master for each pr.


mat: Add Cholesky.RawU()

This is a suggestion to add
// RawU returns the direct Triangular matrix used to store the Cholesky decomposition of
// the original matrix A. If returned matrix is modified, the decomposition is invalid and should
// not be used.
func (c *Cholesky) RawU() Triangular

Then, types like Normal can save the work of extracting the decomposition. For example, *Normal.transformNormal can have
dstVec.MulVec(n.chol.RawU().T(), srcVec)

and the entire lower field can be eliminated altogether, saving time, memory and code complexity.

SGTM


Building every time

Is there a way not to build every time? it's consuming 1 minute for every action I run. This has impact in my billing as I run a lot of actions per month

@mrrobot47 I think we should build a Docker image.

That'd help!

This has already been covered in this issue: https://github.com/rtCamp/action-slack-notify/issues/16#issuecomment-614026575
Use: rtCamp/action-slack-notify@master that has the docker image usage inside it.
Also, there is a planned release on Monday, which will release a new stable tag with the docker image usage. But, you can keep using the @master tag as that will always have the latest stable release.

Perfect @mrrobot47. Now it takes ~4s here haha. Thanks! Maybe update the README so other people know?
Thanks!


setuptools_scm_git_archive is obsolete since setuptools_scm version 7

setuptools_scm version 7 and newer supports Git archives by itself. The migration guide is available in the Readme of the project.
The problem is, that the plugin is not compatible with setuptools_scm 8, and the incompatibility might break your builds.

Can you send a PR? I'll gladly merge that, thanks

Ah I just saw there is already one, but it doesn't follow the instructions from their Readme that you linked above:
https://github.com/fonttools/pyclipper/pull/49


Fix repeat not working

@heliocosta-dev I didn't manage to reproduce it. Do you have a reproduction example/repository? That would be great.

Managed to reproduce it. Reopening
Tested the changess. Good job 👍 Thank you


Add rviz_camera_stream to noetic

Please Add This Package to be indexed in the rosdistro.
noetic
The source is here:
https://github.com/lucasw/rviz_camera_stream
Checks

[x] All packages have a declared license in the package.xml
[x] This repository has a LICENSE file
[x] This package is expected to build on the submitted rosdistro

It's failing on
AssertionError: ["In file '''/home/runner/work/rosdistro/rosdistro/noetic/distribution.yaml''': Could not validate source entry for repo rviz_camera_stream with error [[[Could not validate repository with url https://github.com/lucasw/rviz_camera_stream.git and version 1.0.1 from entry at line 8059. Error reason: Tags are not valid, but a tag 1.0.1 was found. Re: https://github.com/ros/rosdistro/pull/20286]]]"] is not false

Did I enter the version into bloom incorrectly?

I'm not sure why it shows different versions for the docs and release, maybe try redoing this? Also, is there any reason that you didn't use bloom?

Also, is there any reason that you didn't use bloom?

I got tripped up with the github authentication, couldn't figure out why I couldn't use<EMAIL_ADDRESS>for urls involved with pushing instead of https://... and having to jump through extra authentication steps.  But I can try it again.  (It would be really nice if it were possible to specify all the options in a config file instead of the interactive bash script- or maybe it is but the main documentation steered me away from that?)

I'm not sure why it shows different versions for the docs and release

I figured it out from the other entries in the distibution.yaml, the version for doc and source is the branch name, not a tag like it is with release.

You should be able to use the SSH URL. Have you tried this? http://wiki.ros.org/bloom/Tutorials/GithubManualAuthorization
We recommend using Bloom, and it would be good for future releases if you get it set up correctly now.

You should be able to use the SSH URL

I ran into this initially
https://github.com/ros-infrastructure/bloom/blob/cca7ec80c0cb2234e280bb23741b5fe02345db0d/bloom/commands/release.py#L179-L190
but then later in the process it asks about a push url, and I thought the early url goes through validation and has to be https as required by the above code, but then the push url could be<EMAIL_ADDRESS>but it didn't work, possibly something else I manually typed in tripped it up.  Does a file get saved after all the interactive steps, I could look at a working example or show what I already tried, or even better just hand edit that and avoid the text entry altogether?

Bloom by default pushes with HTTPS, which is what the page I linked above does; it reroutes HTTPS through SSH.
When you say initially it didn't work, which step on that page did you run into an error, and what was the error message?


Update contractDataKeySizeBytes for unlimited.json

This is a value I'd like to be able to test as an unlimited size along with the rest of the bytes related values

My original goal with unlimited was to allow unbounded CPU usage, while retaining any other limits so that it was easy to work on contracts that did too much work, like what happens when someone tries to use crates from the Rust ecosystem that weren't built for use in minimal resource environments.
I intentionally didn't increase things like the contract data key size, because I thought it'd be too easy to do things like use the wrong type for a contract data key that would just never work in pubnet.
But if this is needed for testing out there ideas, it makes sense to add it to the unlimited limits, and not create yet another limits options.
This looks good to me on that basis.
@sisuresh @dmkozh Are there any other config items we should be expanding if the goal is to make it as unlimited as possible?

Yeah I think this is fine. If a user wants to test against realistic limits, they shouldn't be using unlimited.


ERROR: Condition "p_elem->_root != this" is true.

Godot version
v3.4.4.stable.mono.official.419e713a2
System information
Linux (Fedora), Intel Graphics
Issue description
I am getting this error, which appears to be a recurring problem now and again. It is not clear when it starts occurring or what causes it explicitly.
You can see my entire game client here:
https://github.com/redhat-gamedev/srt-godot-client
There are many closed issues related to this error:
https://github.com/godotengine/godot/issues?q="p_elem->_root+!%3D+this"+is%3Aclosed
The two that are potentially the most closely related are the following:
https://github.com/godotengine/godot/issues/22565
https://github.com/godotengine/godot/issues/20085
These both mention threading and node manipulation. The second one explicitly mentions the use of "add_child".
In the game client, there are really only two places where add_child is meaningfully used:
https://github.com/redhat-gamedev/srt-godot-client/blob/main/Scenes/MainScenes/Game.cs#L134
https://github.com/redhat-gamedev/srt-godot-client/blob/main/Scenes/MainScenes/Game.cs#L165
Neither seems to reliably produce the error.
Steps to reproduce
Unfortunately I have no reliable reproducer.
Minimal reproduction project
N/A

I don't think add_child is related, because the game client was sitting and doing nothing (no ships or missiles were created) and it suddenly started spewing the error.

This is still present in 3.5.1.
I noticed that the issue cropped up while I was sending player move commands in the client. Here's the client send command method:
https://github.com/redhat-gamedev/srt-godot-client/blob/main/Networking/ServerConnection.cs#L123-L143
Here's some output from the logs:
[12:58:06 DBG] Game.cs: Got move command
ERROR: Condition "p_elem->_root != this" is true.
   at: remove (./core/self_list.h:80)

Not sure this is related, but this is when it happened.

Is there anything I could do to get additional debug data to help with testing, @Calinou ?

Is there anything I could do to get additional debug data to help with testing, @Calinou ?

We need a minimal reproduction project, with the code isolated as much as possible, and in GDScript (to rule out C# being the cause of the bug).

Надіслано з iPhone

14 лист. 2022 р. о 20:43 Hugo Locurcio @.***> пише:

Is there anything I could do to get additional debug data to help with testing, @Calinou ?
We need a minimal reproduction project, with the code isolated as much as possible, and in GDScript (to rule out C# being the cause of the bug). We can't do anything about this otherwise.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.

@Calinou You are describing a bit of a chicken-egg troubleshooting challenge. I could create a reproducer if I knew what the problem was. But without additional debugging being spit out by Godot, I can't figure out what the problem is to create a reproducer. I don't even know where in the trace of my code path this error starts being generated or what part of Godot is causing it to continue to be generated.
Even if we could figure out more specifically where the problem lies, having to rewrite the reproducer in GDScript could potentially be impossible if the problem is being caused by C#. As this project uses various C# libraries that have no possible analogs in GDScript, this seems like a pretty huge uplift.
Put yourself in my shoes -- how would you begin to try to create a reproducer?

Even if we could figure out more specifically where the problem lies, having to rewrite the reproducer in GDScript could potentially be impossible if the problem is being caused by C#.

If the issue is caused by C# there's no need to rewrite it in GDScript, an MRP in C# would suffice. We ask for MRPs in GDScript because it's easier for contributors to test (not every contributor uses C#) so you are more likely to get attention. Also, if creating the the equivalent MRP in GDScript does not reproduce the bug, that is a clear indication that the bug is specific to C# so it gives us a hint as to where the issue may come from.

I could create a reproducer if I knew what the problem was. But without additional debugging being spit out by Godot, I can't figure out what the problem is to create a reproducer. I don't even know where in the trace of my code path this error starts being generated or what part of Godot is causing it to continue to be generated.

You mentioned that you get ERROR: Condition "p_elem->_root != this" is true. The only assert I could find with that condition is in SelfList<T>::List::remove(SelfList<T>):
https://github.com/godotengine/godot/blob/0803b4168df1cc47ff440dd2419b358e2fccea41/core/self_list.h#L80
Is this the only output you get in the console? Is there anything else that may indicate where the error comes from? Like previous messages that may indicate what was being executed immediately before the error.
You can try removing parts of your game until the error stops happening to try and find what causes it, you probably already have an idea of what part of the code is most likely the cause based on what you were doing when the error occurred so try with that first.
Since you seem to be using asynchronous methods, take a look at those because it's likely they are not synchronized with Godot's main thread. For example, you are calling AddChild as a response of some asynchronous event, see if adding the child with CallDeferred fixes your issue:
CallDeferred("add_child", missileInstance);

Alternatively, if you are willing to build Godot from source, you can try running the binary with gdb or lldb to get a full stacktrace that can indicate where the error comes from.

This PR switched everything to CallDeferred but apparently @roddiekieley still saw the error.

Is this the only output you get in the console? Is there anything else that may indicate where the error comes from? Like previous messages that may indicate what was being executed immediately before the error.

Other than what I've shared above, there is no indication of what is spawning the error. But, once it starts, it seems to spew forever until the client is stopped.
It sounds like building Godot from the source may be the only option to troubleshoot further because I can't imagine we will make much more progress without a full stack trace.

I took a quick spin of the docs and didn't see anything special related to generating debugging symbols. Does this happen automatically when building?

To build with debug symbols use the debug_symbols=yes argument in the SCons command.

OK well, I have it built, but I don't understand how to use gdb. It keeps pausing when nothing bad is happening.
What is the gdb magic so that it will only pause/backtrace/whatever when the ERROR: Condition "p_elem->_root != this" is true. happens?

@thoraxe I imagine you need this: https://www.cse.unsw.edu.au/~learn/debugging/modules/gdb_conditional_breakpoints/

@raulsntos unfortunately, ERR_FAIL_COND is a macro, and is not part of self_list.h. Per this StackExchange post GDB is not capable of debugging/breaking macros. This leaves me very few choices.
If I set the breakpoint at line 80, I get a PILE of breakpoints, and Godot effectively gets broken/paused constantly because gdb is doing some bizarre macro expansion or something.
(gdb) break ./core/self_list.h:80
Breakpoint 1 at 0x8f500d: ./core/self_list.h:80. (116 locations)

The above makes Godot unusable.
Do you have any other suggestions on how I can use GDB to only break/pause/etc when it spits out this error?

Would it be acceptable if I took the macro code and modified self_list.h in order to execute the same code? This would allow me to set a breakpoint on the actual condition/code in self_list. It wouldn't be exactly the same Godot, and there's a chance that a timing would be modified, but I'd at least be able to backtrace when I got to that point where the error is kicked.
WDYT?

AFAIK the macro is just a compile-time replacement so it should be the same, also feel free to make any modifications you need if they help you debug the issue such as using print_line or WARN_PRINT.

Yes, I'm going to swap the macro call for the code from the macro itself and put that in self_list.h so that I can set a breakpoint.
Alternatively, I have not tried to use VScode to build the Godot project, which could let me debug/backtrace directly in VScode. That may be my next step if I continue to struggle with GDB.

OK, I was finally able to get the debugger inside the game at the time the error condition is raised. Here's the stack at that moment:
SelfList<Node>::List::remove(SelfList<Node>*) (/home/thoraxe/Red_Hat/openshift/godot/core/self_list.h:82)
SceneTree::flush_transform_notifications() (/home/thoraxe/Red_Hat/openshift/godot/scene/main/scene_tree.cpp:187)
SceneTree::idle(float) (/home/thoraxe/Red_Hat/openshift/godot/scene/main/scene_tree.cpp:661)
Main::iteration() (/home/thoraxe/Red_Hat/openshift/godot/main/main.cpp:2298)
OS_X11::run() (/home/thoraxe/Red_Hat/openshift/godot/platform/x11/os_x11.cpp:3987)
main (/home/thoraxe/Red_Hat/openshift/godot/platform/x11/godot_x11.cpp:59)
__libc_start_call_main (@__libc_start_call_main:29)
__libc_start_main@@GLIBC_2.34 (@__libc_start_main@@GLIBC_2.34:43)
_start (@_start:15)

I don't know if this tells you anything.

@raulsntos FYI I took all of the async things that were happening when messages were received and put them into queues that are then processed during _Process on a node. This is what the server code already does and we've never seen this error on the server-side.
I did a quick test with a bunch of players and did not hit this error. We're going to do a deeper soak test later this week but this might have fixed it. Will report back accordingly.

Did it?

Since switching to using queues, we have apparently eliminated this problem. It no longer seems to be happening. I can't claim direct causation, but the correlation is strong. However, using standard C# Queue was also causing problems where sometimes threading would try to operate on elements already gone from the queue. We switched to  ConcurrentQueue to resolve those issues.
I am closing this as no longer an issue due to a lack of other evidence to show that it's still a problem.
Thanks, all, for the tips.


strange behavior of company ycmd

I use company-ycmd as the backend of C and C++. While when I type character such as :: and -> ,the completion begins automatically but I can't input any character because it always reminder me of "Matching input is required". So I have to call company-ycmd manually.

Do you see any output in the *ycmd-server* buffer that seems relevant? How about anything in *Messages*?
Also, what is the value of company-backends?

Here is the output of ycmd-server
https://guides.github.com/features/mastering-markdown/
2015-03-01 19:26:43,974 - DEBUG - Global extra conf not loaded or no function YcmCorePreload
serving on http://<IP_ADDRESS>:50660
2015-03-01 19:26:44,239 - INFO - Received event notification
2015-03-01 19:26:44,240 - DEBUG - Event name: FileReadyToParse
2015-03-01 19:26:44,240 - INFO - Adding buffer identifiers for file: /home/zzs/zzsweet/src/cfamily/cpp_study/study.cpp
2015-03-01 19:26:47,211 - INFO - Received event notification
2015-03-01 19:26:47,211 - DEBUG - Event name: FileReadyToParse
2015-03-01 19:26:47,212 - INFO - Adding buffer identifiers for file: /home/zzs/zzsweet/src/cfamily/cpp_study/study.cpp
2015-03-01 19:26:48,311 - INFO - Received completion request
2015-03-01 19:26:48,311 - DEBUG - Using filetype completion: True
output of Messages
Contacting host: <IP_ADDRESS>:50660
[yas] Loading for c++-mode', just-in-time: (lambda nil (yas--load-directory-1 (quote /home/zzs/.emacs.d/elpa/yasnippet-20150212.240/snippets/c++-mode) (quote c++-mode)))! [yas] Loading compiled snippets from /home/zzs/.emacs.d/elpa/yasnippet-20150212.240/snippets/c++-mode [yas] Loading for cc-mode', just-in-time: (lambda nil (yas--load-directory-1 (quote /home/zzs/.emacs.d/elpa/yasnippet-20150212.240/snippets/cc-mode) (quote cc-mode)))!
[yas] Loading compiled snippets from /home/zzs/.emacs.d/elpa/yasnippet-20150212.240/snippets/cc-mode
scroll-up-command: End of buffer [6 times]
Contacting host: <IP_ADDRESS>:50660 [2 times]
Matching input is required [3 times]
Beginning of buffer
Mark set [2 times]
Contacting host: <IP_ADDRESS>:50660 [3 times]
The value of company-backends is (company-ycmd company-yasnippet company-files)

@zhuzhongshu What's your value of company-require-match?

This value is 't' but when I set it to nil, the popup window will close no matter which key you  type.

Sounds about right.
And to be clear, what are the popup's contents? Take a screenshot if you can.

Nothing suspicious here, either.
Now, please update to the latest Company from MELPA, call M-x company-diag and post the results here. And also list all Company-related customizations included in your configuration.

Here is the results of company-diag
Emacs 24.4.2 (x86_64-unknown-linux-gnu) of 2015-01-01 on zzs-hd
Company 0.9.0-cvs
company-backends: (company-ycmd company-yasnippet company-files)
Used backend: company-ycmd
Prefix: ("" . t)
Completions: none
and here is my configuration of company
(add-hook 'after-init-hook 'global-company-mode)
(company-quickhelp-mode 1)
(custom-set-variables
'(company-require-match t)             ;设置为t时，如果输入错误补全窗口不会关闭，而是提示"matching input is required"
'(company-auto-complete nil)
'(company-auto-complete-chars (quote ignore))
'(company-idle-delay 0)
;; 由于在C++中启用输入::,.和->自动补全需要启用idle-delay并且要在company-begin-commands里设置self-insert-command。
注意补全函数不是采用company-complete系列而是采用company-other-backend，
;; 这样在当前后端没有合适的补全选项时会自动跳转到下一个后端。不会像company-complete系列命令那样强烈依赖于后端的排列顺序导致很多后端不能补全
(defun complete-and-filter ()
(interactive)
(company-other-backend)
(company-filter-candidates));;启动company补全的时候自动启用过滤功能，可以部分的实现不分大小写，但也有很多弊端，暂未启用
(defun indent-or-complete ()
(interactive)
(if (looking-at "\_>")
(company-other-backend)
(indent-according-to-mode)))
;; (defun complete-or-indent ()
;;   (interactive)
;;   (if (company-manual-begin)
;;       (company-other-backend)
;;     (indent-according-to-mode)))
(with-eval-after-load 'company
(define-key company-mode-map (kbd "") 'indent-or-complete)
(dotimes (i 10)
(define-key company-active-map (vector (+ (aref (kbd "C-0") 0) i))
`(lambda () (interactive) (company-complete-number ,i))))
(define-key company-active-map (kbd "M-n") nil)
(define-key company-active-map (kbd "M-p") nil)
(define-key company-active-map (kbd "C-n") #'company-select-next)
(define-key company-active-map (kbd "C-p") #'company-select-previous)
(define-key company-active-map (kbd "C-s") #'company-filter-candidates)
(define-key company-active-map (kbd "C-M-s") #'company-search-candidates)
(define-key company-active-map (kbd "") #'company-other-backend)
;;下面这两个绑定是在company-template里面仍然用tab触发补全，而用M-tab跳转到下一个展开点（field）
;;(define-key company-template-nav-map (kbd "") #'company-other-backend)
;;(define-key company-template-nav-map (kbd "M-") #'company-template-forward-field)
)
(require 'ycmd)
(ycmd-setup)
(set-variable 'ycmd-server-command '("python" "/home/zzs/ycmd/ycmd/"))
(set-variable 'ycmd-global-config "/home/zzs/ycmd/cpp/ycm/.ycm_extra_conf.py")
(set-variable 'ycmd-extra-conf-whitelist '("/home/zzs/ycmd/cpp/ycm"))
(require 'company-ycmd)
(company-ycmd-setup)
(add-hook 'c-mode-common-hook
(lambda ()
(set (make-local-variable 'company-backends)  (quote (company-ycmd
company-yasnippet
company-files)))))
Besides, I also encounter an error of "Symbol's value as variable is void: company-template-nav-map" when I update it to the latest version.

@zhuzhongshu It says "no completions". Did you call it from the same buffer position?

I call  M-x company-diag after the popup menu appears. The result seems always "no completions"

You can dismiss the popup first.

Symbol's value as variable is void: company-template-nav-map

This sounds implausible. I'll need a backtrace.

The output remains “no”...

@zhuzhongshu First of all, let me apologize for taking so long to look into this. I've got too much on my plate right now!
Is this still a problem for you, or has it been resolved? I've tried replicating it, but I haven't been able to do so.

@abingham  The problem still exits....
Here is  my company and ycmd configuration:
(add-hook 'after-init-hook 'global-company-mode)
(company-quickhelp-mode 1)
(require 'ycmd)
(ycmd-setup)
(set-variable 'ycmd-server-command '("python" "/home/zzs/ycmd/ycmd/"))
(set-variable 'ycmd-global-config "/home/zzs/ycmd/cpp/ycm/.ycm_extra_conf.py")
(set-variable 'ycmd-extra-conf-whitelist '("/home/zzs/ycmd/cpp/ycm"))
(require 'company-ycmd)
(company-ycmd-setup)
(add-hook 'c-mode-common-hook
(lambda ()
(set (make-local-variable 'company-backends)  (quote (company-ycmd
;; company-yasnippet
;; company-files
)))))

Huh. Now that I look at it, I'm also seeing behavior similar to what you describe. If I enter something like obj->, company will bring up a list of options. At this point, if I continue typing then company will narrow down the list of selection as expected.
However if – instead of entering more characters – I use the arrow keys to navigate the list and then I try entering characters, I get the Matching input required message for each character.
This behavior seems to be strongly related to company-minimum-prefix-length. I see the behavior described above when it's set to 3. However if I set it to 1 then typing characters seems to work naturally all of the time.
@zhuzhongshu If you set company-minimum-prefix-length to 1, does everything behave as you want?
@dgutov Does this makes sense to you? Is my explanation coherent enough?

@abingham More or less. I can't reproduce it with company-clang, though (which is a handy litmus test), and company-ycmd is currently broken in my Emacs (master).
Here's one change you should apply just because it makes sense:
@@ -272,10 +272,7 @@
        (or (not (company-in-string-or-comment))
            (company-ycmd--in-include))
        (or (and (not (ycmd-parsing-in-progress-p))
-                (let ((triggers-re "\\.\\|->\\|::"))
-                  (if (looking-back triggers-re)
-                      (company-grab-symbol-cons triggers-re 2)
-                    (company-grab-symbol))))
+                (company-grab-symbol-cons "\\.\\|->\\|::" 2))
            'stop)))

 (defun company-ycmd--candidates (prefix)

Though, to be honest, the code looks functionally equivalent to me.

Anyway, I'm looking into it.

@abingham I haven't managed to reproduce the behavior you describe with company-clang, even after adding no-cache t. However, if I set company-require-match to t, I get the reverse behavior: after typing ->, the popup appears but I can't continue typing (similarly to what's described in the first message here). However, navigating up or down the list allows me to type again, because that sets company--manual-action to t and thus switches to synchronous completion.
In short, (setq company-require-match t) is incompatible with company-ycmd, and and any other asynchronous backend that doesn't use cache. This appears to be a conceptual incompatibility: if to know the updated list of completions the backend needs to call the server, and we don't want to wait for the response (right?), at least not until the user has interacted with the popup somehow, we can't verify that the newly typed character hasn't narrowed the list of completions to nothing.
@zhuzhongshu All I can suggest at this point: change company-require-match back to the default.

Ugh. This morning I updated my work machine, and now I can't replicate the bad behaviour I was seeing yesterday. In fact, company-ycmd is behaving wonderfully. I get properly updated fuzzy-completion when the candidates list is displayed, it's fast, etc., etc. I'm really puzzled now.
@dgutov I'll integrate the change you mentioned above shortly.

@abingham yes, if I set this variable to 1, thiestrange behavior disappears and no more problems found yet...

@abingham
@dgutov
I update all my packages to the latest version, and then the problem goes away itself. Even if I set the variable company-minimum-prefix-length  to a very large number (say 100).

The magic of open-source development ;)
I'll close this defect, but let me know if you run into any more problems.

@abingham
Sorry to trouble you again, but it's observed that the problem appears again, even if I set company-minimum-prefix-length to 1.
I don't know  what's the difference between call company-ycmd manually and automatically, but the problem only exits in the latter case.

@zhuzhongshu Have you tried setting company-require-match back to the default value?

@dgutov Yes, this is a solution, while I don't think it's a good one....

Like I've described, it's conceptually impossible for company-ycmd to support the t value.
The other option would be to change company-mode to switch to synchronous interaction with the server, as soon as the popup is displayed. That will have certain performance penalty.

What a pity it is...

@dgutov  BTW, do you find the problem could appears even if  company--manual-action is set to t?  Sometimes it works well and sometimes not.

company--manual-action is an internal variable. There's no point changing its value, because it's reset to nil at the end of every completion.
But if that approach worked, that would be the second option I've mentioned above (synchronous completion, certain performance penalty).

OK, I set company-ycmd-enable-fuzzy-matching to nil to enables the company-mode internal cache feature.
@dgutov Does it possible for company-mode  to provide a native "fuzzy matching" function  without disable the internal cache feature (which will not conflict with company-require-match feature) in the future?

@zhuzhongshu It could, but that still wouldn't be an equivalent of what company-ycmd is doing: not only it delegates fuzzy matching to the server, the results also come back pre-sorted, I'm assuming with the best matches on top. Only a language-aware matcher can do a good job with this.
I'd rather make completion synchronous is your use case than introduce this kind of complexity and duplication.

What I really want is the case insensitive completion (treat anapple equals to anApple) and I don't care the order of candidates (sometimes the best match may not on top).  The  synchronous  completion is very slow on my computer, so I'd rather turn off  the fuzzy matching feature.
@dgutov  @abingham
Many thanks for you help!

The synchronous completion is very slow on my computer

How did you test it?

When I insert or delete characters, I can feel it's not as smooth. The difference is significant.

I see. Maybe we'll provide some "filter cached entries" callback, and you would be able to write your own wrapper around company-ycmd.
Fuzzy matching without weights is easy to implement, see here: https://github.com/emacs-mirror/emacs/blob/207f11935755236b21ca4d3fe6b19206e0a9ed33/lisp/ido.el#L3829-L3833

I've had some time to look at this a bit this morning. On the assumption, as @dgutov suggests, that asynchronous calls are a problem, I've created a branch that uses synchronous calls (from company's point of view, at least) to get candidates from ycmd:
https://github.com/abingham/emacs-ycmd/tree/synchronous-company

However, this doesn't appear to me to fix the basic conceptual incompatibilities. Even with synchronous calls I see the completion menu disappear/flicker with each new keypress.
It seems, instead, that the core problem is that emacs-ycmd disables company's cache, not that it makes asynchronous calls to ycmd.
@dgutov: Am I missing something important? Is asynchrony really a part of the problem and, if so, why do I still see issues when I fetch candidates synchronously?
@zhuzhongshu Can you try the synchronous branch and let me know if you see any improvement.
I know this is a pretty sticky defect, and I haven't had a lot of time to devote to it. Hopefully we can get it resolved to everyone's satisfaction (or at least understand it properly) soon.

@abingham As far as I can see, with this change, the company-require-match t problem is gone.
Flickering is a different issue. I'm guessing it happens because some I/O occurs during the execution of the command (triggering redisplay..?), and because the popup overlay is always hidden in pre-command-hook. The latter seems necessary, because otherwise it screws with row/column at point calculations (and there must be other commands that would be surprised to find an overlay hiding the ten lines after point).
Anyway, that's not something to fix in this package, and a different rendering method should help.

Even with synchronous calls I see the completion menu disappear/flicker with each new keypress.

@abingham  I can reproduce this by setting company-require-match to nil.

OK, it sounds like we can probably close this particular issue pretty soon. We might be able to just change company-ycmd to be synchronous all of the time, but I'm worried that this might cause problems for people working on large C++ projects.
@r4nt Can you try the synchronous-company branch (see above) on one of your larger llvm files? I worry that the purely synchronous mode will introduce so much blocking that company-ycmd will become unusable.

We might be able to just change company-ycmd to be synchronous all of the time

Why? company-require-match t is used pretty rarely. And like @zhuzhongshu described, the completion won't work as smoothly.

For good house-keeping I'm going to close this now. However, if anyone wants it open, the by all means re-open it.
If you do so, it might be a good idea to try to summarize the current state of the issue, at least from your point of view. As it is, it's all pretty confusing!

Sorry for reopen the issue, but I want to know whether this probelm is solved, or it's genetic and can't be solved:

Even with synchronous calls I see the completion menu disappear/flicker with each new keypress.

Many thanks.

@zhuzhongshu As I understand things, this is not something we can fix.

For posterity: in current company-mode master, this problem is not exactly solved, but should only appear when the asynchronous calls complete slower than the user is typing.
Also please follow https://github.com/company-mode/company-mode/issues/337.
BTW @abingham I've never seen the flickering problem appear with synchronous backends. If you show an example, we'll probably be able to fix it.


Make a signing out functionality

Make a condition that if someone is already logged in then signup button should change to signout text and the signing out functionality should happen in the navbar.
The functionaility is already given just needs to make some changes in the navbar section, such that the signup button changes to signout button and user can signout, below is the functionality that needs to be fixed.

Sure, go for it

@Jenis07 unassigning as the task is not completed by the contributing guidelines date

Can I give this a shot?

Go for ir

Still open?

sir please assign me this issue, if it is not closed yet


Add lower bounds validation for VkFramebuffer dimensions

If an application creates a VkFramebuffer with layers = 0, the validation layer for VulkanSDK <IP_ADDRESS> does not generate an error. Although the Vulkan spec does not state that this is an error, attempting to render to the VkFramebuffer will result in VK_ERROR_DEVICE_LOST on my GeForce GTX 980. Although I have not tested it I assume the same would occur if width/height were also 0.

This can be address in two ways, either we can add a check and change the spec (most likely) or add a CTS test and enforce that drivers can handle this. I don't have a strong preference.

@gfxguymatt, you'll need to open an issue with the spec in the Github/Vulkan-Docs repo.  Once there is clear language in the spec, we can reopen this issue or create a new one to add the new checks.


Use watcher removed function on deleted

Updated the node-sass cli script to use the watcher removed function instead of the 'deleted' function which is non-existent.

Thanks! Do you think you could add a test so we don't miss this if we change this next time?

Yes, sure thing!

Hey @nschonni, I have attempted to write a test to check that deleting a file in a watched directory works without error, but now I get a new error and I am not sure if it is how I have written the test, my environment, the timeouts used in the test or if it really is another error to be fixed. It looks like the watcher in lib/watcher.js tries to indirectly find the file again after it has already been deleted by using Graph.visitAncestors, according to the error I am getting, but I've probably messed up something else in the test itself I think.

@wclear I've updated this PR to remove the test. We currently don't have a good way to test the watcher. Apologies for sending you down that path.

@xzyfer no worries, thanks for the update.

Thanks for you work. This will land in 4.8.0


RFC: Change/deprecation in display API

I propose that the display API functions named display_blanking_{on,off} be deprecated and replaced with these functions and clarified semantics:
/**
 * @brief Turn the display off.
 *
 * This function turns off the display.  The expected result for
 * e-paper displays is that the displayed content is unchanged.  The
 * expected result for other displays is that the display will appear
 * blank.
 *
 * Drivers that control backlighting should turn it off.
 *
 * Drivers that support power control may power down the display.
 *
 * Display content in frame buffers held by the driver or device may
 * be lost as a result of this operation, whether or not the content
 * remains displayed.
 *
 * Use display_on() prior to any further interaction with the display
 * device.  Attempts to update the display while it is off produce
 * undefined behavior.
 *
 * @return a non-negative value on success, or a negative error code.
 */
static inline int display_off(const struct device *dev);

/**
 * @brief Turn the display on.
 *
 * This function turns on the display.
 *
 * If display content is not preserved by display_off() the driver
 * should ensure that the display is set to consistent content
 * (cleared to black, a distinct "no data" pattern, etc.) when this
 * operation completes.
 *
 * If backlighting is controlled by the display driver, backlighting
 * should be turned on consistent with the last backlighting
 * configuration.  (Not all displays may support backlighting; not all
 * displays that support it may allow control of it.)
 *
 * On successful return from this function the application may use
 * display_write() to provide new content.
 *
 * @return a non-negative value on success, or a negative error code.
 */
static inline int display_on(const struct device *dev);

There are several motivations for this, the primary one being that the existing names are counter-intuitive:

display_blanking_on() is implemented in three drivers as turning the display off (ili9340, sdl, ssd1306).  In one it is implemented to turn the display on (ssd16xx).
display_blanking_off() is implemented in three drivers as turning the display on.  In one it is implemented to turn the display off.
Three drivers don't support the operation, perhaps because it was unclear what the functions were supposed to do (dummy, framebuf, mcux_elcdif).

A second is that some displays, particularly e-paper ones, should be powered down when not in use.  The existing API does not address how that could be accomplished.  Porting the whole power management API to display drivers is a bigger step that IMO is not yet justified, so the proposed documentation ties power control to display state.
The existing drivers are inconsistent whether the display is turned on or off by driver initialization.  I am ambivalent on the desired behavior, but feel strongly that it must be specified.  I'm leaning toward display is on (i.e. applications that care should turn it off or write to it ASAP), because that is the most convenient approach for e-paper displays and should be consistent with existing drivers except perhaps sdl which turns it off (sorta).  Preferences?
Please provide design feedback here.  Based on that I will prepare a PR that updates the API to go along with the IL03xx e-paper driver I'm working on now.

The intention of the API is to only blank the display panel and not to control the power state of the display controller. To control the power states the power management API should be used, see comment on PR https://github.com/zephyrproject-rtos/zephyr/pull/7833#discussion_r217549066 . Note that in the initial API proposal the function where called display_on and display_off but to avoid the confusion that it would do power control they were renamed.

display_blanking_on() is implemented in three drivers as turning the display off (ili9340, sdl, ssd1306). In one it is implemented to turn the display on (ssd16xx).

The ssd16xx implementation is incorrect and should be swapped, the same issue occurred for the ssd1306 driver (#13609). I will raise an issue for this and fix it.

Three drivers don't support the operation, perhaps because it was unclear what the functions were supposed to do (dummy, framebuf, mcux_elcdif).

The dummy API was introduced to be able to run valgrind with the native posix target as the SDL implementation doesn't clean up its memory allocation as such the blanking API just returns "no error".
Can't comment on the 2 other driver but either they do not support hardware based blanking or it is just not implemented.

Porting the whole power management API to display drivers is a bigger step that IMO is not yet justified

Can you clarify why it is not justified to use the power management framework?

The existing drivers are inconsistent whether the display is turned on or off by driver initialization. I am ambivalent on the desired behavior, but feel strongly that it must be specified. I'm leaning toward display is on (i.e. applications that care should turn it off or write to it ASAP), because that is the most convenient approach for e-paper displays and should be consistent with existing drivers except perhaps sdl which turns it off (sorta). Preferences?

I would have picked off as the ILI display controller put the display panel off after reset, but I agree we should consolidate and document the behaviour.  My idea was that this gives the application time to prepare the initial buffer before enabling the display panel.

Can you clarify why it is not justified to use the power management framework?

Mostly because if "display off" was acceptable there would be no obvious need for other power management infrastructure.  The current API does not explain what "blanking" means, and the only use of the term I can find that is relevant to displays refers to the intervals when the electron flow is turned off during horizontal and vertical scanning in CRTs.  I don't understand why it's being used here, other than it was required for approval (referencing https://github.com/zephyrproject-rtos/zephyr/pull/7833#discussion_r218237670).
If the preferred understanding is that "blanking on" means the display shows nothing but can be immediately restored to its pre-blanking state through "blanking off" with no other operations, rather like screen save, that should be documented, along with the expected effect of blanking on any driver-controlled backlighting.  But that functionality makes little sense for e-paper displays, so I'll make those operations -ENOTSUP and either implement the driver power management, or just always turn the display off between writes.
Stepping back, I raised this issue because the display API does not describe behavior in sufficient detail for me to implement a driver for it, so I guessed (wrongly).  Explaining what blanking is, documenting the required effect of other operations (such as writing new data) while blanking is on, and specifying the blanking state of a newly initialized driver, would go some ways towards fixing that gap.

@pabigot thx for the info I will update the API documentation.

Created PR #17521 to correct ssd16xx driver


Data augmentation

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.0 out of 2 committers have signed the CLA.:x: ganyixian:x: wayangGitYou have signed the CLA already but the status is still pending? Let us recheck it.


Enable MPU background region for ARMv8-R AArch32

Use the default memory map as a background region for privileged software access to keep consistency with other ARM implementations. Also fix the sync barriers on MPU enable/disable operations.

When BR is enabled, it means EL1 has the accessibility in default. So it may cause some test cases to fail. You should check the current regions because we need EL1 data abort in some test cases.
If you want to enable BR, you could also think about removing these enable/disable things :)
https://github.com/zephyrproject-rtos/zephyr/blob/700de003e8494cdb7941962e8e87e48f5f391a17/arch/arm/core/aarch32/mpu/arm_core_mpu.c#L308-L310 https://github.com/zephyrproject-rtos/zephyr/blob/700de003e8494cdb7941962e8e87e48f5f391a17/arch/arm/core/aarch32/mpu/arm_core_mpu.c#L313-L315

Codecov Report

Merging #47760 (700de00) into main (90af622) will increase coverage by 0.04%.
The diff coverage is 85.48%.

:exclamation: Current head 700de00 differs from pull request most recent head c1f737d. Consider uploading reports for the commit c1f737d to get more accurate results

@@            Coverage Diff             @@
##             main   #47760      +/-   ##
==========================================
+ Coverage   50.03%   50.08%   +0.04%
==========================================
  Files         661      662       +1
  Lines       82186    82736     +550
  Branches    19383    19457      +74
==========================================
+ Hits        41125    41438     +313
- Misses      34216    34414     +198
- Partials     6845     6884      +39

Impacted Files
Coverage Δ

drivers/adc/adc_context.h
90.90% <ø> (ø)

drivers/flash/flash_shell.c
17.94% <ø> (ø)

drivers/gpio/gpio_emul.c
69.25% <ø> (ø)

include/zephyr/bluetooth/gatt.h
100.00% <ø> (ø)

include/zephyr/debug/coredump.h
20.00% <ø> (ø)

include/zephyr/drivers/gpio.h
71.21% <ø> (ø)

include/zephyr/drivers/spi.h
68.75% <ø> (ø)

include/zephyr/kernel.h
100.00% <ø> (ø)

include/zephyr/logging/log_msg.h
93.10% <ø> (ø)

include/zephyr/pm/device.h
100.00% <ø> (ø)

... and 52 more

Continue to review full report at Codecov.

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

When BR is enabled, it means EL1 has the accessibility in default. So it may cause some test cases to fail. You should check the current regions because we need EL1 data abort in some test cases.
I've tested with fvp_baser_aemv8r_aarch32 and qemu_cortex_r5. There's one test (syscalls) for the second board that is not generating the fault as expected when the BR is enabled, I will check on this.

If you want to enable BR, you could also think about removing these enable/disable things :)
https://github.com/zephyrproject-rtos/zephyr/blob/700de003e8494cdb7941962e8e87e48f5f391a17/arch/arm/core/aarch32/mpu/arm_core_mpu.c#L308-L310
https://github.com/zephyrproject-rtos/zephyr/blob/700de003e8494cdb7941962e8e87e48f5f391a17/arch/arm/core/aarch32/mpu/arm_core_mpu.c#L313-L315
Right. I will need to look into more details on why this was added for armv8-r (or why is not working without it).

@povergoing overall, do you consider ok to enable the BR?

@povergoing overall, do you consider ok to enable the BR?

No problem for me.

If you want to enable BR, you could also think about removing these enable/disable things :)

Hi @povergoing, I took a quick look into this and there seems to be problems with the current implementation for armv8-r aarch32 when reprogramming the dynamic regions with MPU enabled, even when using the BR. I'm kind of busy with other things at the moment, so I'll come back to it later in another pr. I propose to close this and I will open another pr for the fix in ae82198b2dec9be80a20ec52a3bf92f3c8907765

I'm kind of busy with other things at the moment, so I'll come back to it later in another pr. I propose to close this and I will open another pr for the fix in ae82198

Sure, take your time :)


Bloxstrap/Default Roblox client random crashes under 35m

This has been bugging me out, but when I play ANY game, I get crashes from 3-10m up to 30m of gameplay
I receive no error window, aka "An unexpected error occurred and Roblox needs to quit. We're sorry!" exit error.
This is one of the log files of the last game I have played before sending this issue:
0.591.0.5910633_20230824T183932Z_Player_835E9_last.log
No matter what I try, I deleted the entirety of Roblox, cleared the cache, installed RCO, updated graphics driver, restarted computer, tested Bloxstrap and default client; it won't work.
Anything needed for this operation I am happy to ablige and thank you for answering.

No matter what I try, I deleted the entirety of Roblox, cleared the cache, installed RCO, updated graphics driver, restarted computer, tested Bloxstrap and default client; it won't work.

Well, you seem to have already done the things that I would have suggested, so I'm not really sure what more I can tell you.
Just to confirm, you've tried without RCO flags too?

Thanks for still trying to help me, but this got fixed automatically today which I find it weird.


pytorch: debug news_encoder call

Traceback (most recent call last):
File "Example_pt.py", line 97, in
news_scoring = model.news_encoder(torch.from_numpy(news_title)) # ,verbose=0)
File "/home/rsim/FedNewsRec/code/model_pt.py", line 220, in news_encoder
news_vec = self.doc_encoder(news_word_vecs)
File "/home/rsim/anaconda3/envs/fedrec/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/home/rsim/FedNewsRec/code/model_pt.py", line 67, in forward
l_cnnt = self.phase1(x)
File "/home/rsim/anaconda3/envs/fedrec/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/home/rsim/anaconda3/envs/fedrec/lib/python3.7/site-packages/torch/nn/modules/container.py", line 141, in forward
input = module(input)
File "/home/rsim/anaconda3/envs/fedrec/lib/python3.7/site-packages/torch/nn/modules/module.py", line 1110, in _call_impl
return forward_call(*input, **kwargs)
File "/home/rsim/anaconda3/envs/fedrec/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 302, in forward
return self._conv_forward(input, self.weight, self.bias)
File "/home/rsim/anaconda3/envs/fedrec/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 299, in _conv_forward
self.padding, self.dilation, self.groups)
RuntimeError: Input type (torch.FloatTensor) and weight type (torch.DoubleTensor) should be the same or input should be a MKLDNN tensor and weight is a dense tensor


Still crashes on startup

Crash Report
the release STILL didn't fix the crash

this new mod version is only for MC 1.19.4


added vehicle-license-plate-detection-barrier-0123 model

Demo is working with IR.
Accuracy validation passed.
This model is already running in benchmark.

Other than the issues already pointed out by others, LGTM.

@elenash please address reviewer comment

Please, also extend security_barrier_camera_demo/README.md
Done

Jenknins please retry a build

Jenkins please retry a build

The link checker failed because of docs.openvinotoolkit.org being down, so I'm going to ignore it. Merging...


DiscoveryEnabledNIWSServerList Load balancer does not have available server for client: XXX

eureka-provider)application.xml
server:
  port: 8800/8801
spring:
  application:
    name: eureka-provider
eureka:
  instance:
    virtualHostName: eureka-provider-vip
    preferIpAddress: true
    metadataMap:
      instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}}
    statusPageUrlPath: ${management.context-path:}/info
    healthCheckUrlPath: ${management.context-path:}/health
  client:
    serviceUrl:
      defaultZone: http://localhost:8761/eureka/

eureka-provider)controller
@RestController
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/hello/{fallback}")
    @HystrixCommand(fallbackMethod="helloFallbackMethod")
    public String hello(@PathVariable("fallback") String fallback){
        LOGGER.info("execute method hello, fallback: {}", fallback);
        if("1".equals(fallback)){
            throw new RuntimeException("...");
        }
        return "hello";
    }

    public String helloFallbackMethod(String fallback){
        return "fallback :"+fallback;
    }
}

eureka-provider)application
@SpringBootApplication
@EnableEurekaClient
@EnableHystrix
public class ProviderApplication {

	public static void main(String[] args) {
		SpringApplication.run(ProviderApplication.class, args);
	}
}

eureka-server)application.xml
 server:
  application:
    name: eureka-server
  port: 8761
eureka:
  client:
    registerWithEureka: false
    fetchRegistry: false
zuul:
  routes:
    eureka-provider:
      path: /usersystem/**
      serviceId: eureka-provider
ribbon:
  eureka:
    enabled: false
eureka-provider:
  ribbon:
    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.WeightedResponseTimeRule
    NIWSServerListClassName: com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList
    UseIPAddrForServer: true
    DeploymentContextBasedVipAddresses: eureka-provider-vip
#    listOfServers: <IP_ADDRESS>:8800, <IP_ADDRESS>:8801

eureka-server)application
@SpringBootApplication
@EnableEurekaServer
@EnableZuulProxy
public class EurekaServerApplication {

	public static void main(String[] args) {
		SpringApplication.run(EurekaServerApplication.class, args);
	}
}

demo1)
use: listOfServers: <IP_ADDRESS>:8800, <IP_ADDRESS>:8801
url:http://localhost:8761/usersystem/user/hello/2
return:success
demo2)
use:NIWSServerListClassName: com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList
url:http://localhost:8761/usersystem/user/hello/2
return: Internal Server Error
server: Load balancer does not have available server for client: eureka-provider
need help?

Please provide more information, including a description of the problem.  Also instead of pasting code in an issue it is better to provide the complete working apps to reproduce the issue.

Why are you setting NIWSServerListClassName: com.netflix.niws.loadbalancer.DiscoveryEnabledNIWSServerList? It should be the default if you use the eureka starter. What are you dependencies?

@ryanjbaxter git：git@github.com:xiezhaofeng/demo.git
run：provider、eureka-server
use eureka-server(spring.profiles.active=demo2)：
http://localhost:8761/usersystem/user/hello/2           success
use eureka-server(spring.profiles.active=demo1)：
http://localhost:8761/usersystem/user/hello/2           failed
I need to dynamically discover the list of service providers and access them via zuul on eureka-server。

Use listOfServers too rigid

Use listOfServers too rigid

I would not make your Eureka Server app use Zuul as well.  I would separate them into two separate apps.  The reason things are not working is because your Eureka Server is not a Eureka Client.  I suppose you can make a server be a client as well but I dont see why you would want to.

Are eureka servers not supposed to be clients as well? This is how they form a cluster

You are right a eureka server is also a client but in this case Zuul was also involved.  I don’t remember the exact reason this was causing a problem but I still don’t see a reason to combine a eureka server and zuul

What I want to do is dynamically discover the provider instead of configuring the provider's IP in the yml file.

What is the “provider”?

the Eureka Server.

eureka server and zuul shouldn't be mixed.

Closing due to age of the question. If you would like us to look at this issue, please comment and we will look at re-opening the issue.


pool_escaping_innerpuz.clvm.hex not found ... when starting pool_server.py since the update of branch pools.2021-june-4

Not sure if this is a bug or the fact that i screw up de update.
Should i do a fresh install? of both? revert? (chia-blockchain & pool-reference)
If it is a bug, where can i find the instruction fill a proper bug report?
Thanks in adavance

I have followed the update process from https://github.com/Chia-Network/chia-blockchain/wiki/INSTALL#ubuntudebian on the chia-blockchain repo and then did the step #7 on the pool refrence side https://github.com/Chia-Network/pool-reference#install-and-run-testnet and when i run  sudo CHIA_ROOT="/home/user/chia-pools/.chia/testnet7" ./venv/bin/python pool/pool_server.py  i get :
Traceback (most recent call last):
File "pool/pool_server.py", line 21, in
from pool import Pool
File "/home/user/pool-reference/pool/pool.py", line 30, in
from singleton import create_absorb_transaction
File "/home/user/pool-reference/pool/singleton.py", line 20, in
POOL_ESCAPING_MOD = load_clvm("pool_escaping_innerpuz.clvm")
File "/home/user/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/load_clvm.py", line 37, in load_clvm
return Program.from_bytes(bytes(load_serialized_clvm(clvm_filename, package_or_requirement=name)))
File "/home/user/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/load_clvm.py", line 31, in load_serialized_clvm
clvm_hex = pkg_resources.resource_string(package_or_requirement, hex_filename).decode("utf8")
File "/home/lltuserpool-reference/venv/lib/python3.8/site-packages/pkg_resources/init.py", line 1156, in resource_string
return get_provider(package_or_requirement).get_resource_string(
File "/home/user/pool-reference/venv/lib/python3.8/site-packages/pkg_resources/init.py", line 1401, in get_resource_string
return self._get(self._fn(self.module_path, resource_name))
File "/home/user/pool-reference/venv/lib/python3.8/site-packages/pkg_resources/init.py", line 1616, in _get
with open(path, 'rb') as stream:
FileNotFoundError: [Errno 2] No such file or directory: '/home/user/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/pool_escaping_innerpuz.clvm.hex'

Also experiencing the same issue. Have upgraded to the recent release branch for the chia-blockchain
Traceback (most recent call last):   File "pool/pool_server.py", line 21, in <module>     from pool import Pool   File "/pool-reference/pool/pool.py", line 30, in <module>     from singleton import create_absorb_transaction   File "/pool-reference/pool/singleton.py", line 20, in <module>     POOL_ESCAPING_MOD = load_clvm("pool_escaping_innerpuz.clvm")   File "/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/load_clvm.py", line 37, in load_clvm     return Program.from_bytes(bytes(load_serialized_clvm(clvm_filename, package_or_requirement=__name__)))   File "/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/load_clvm.py", line 31, in load_serialized_clvm     clvm_hex = pkg_resources.resource_string(package_or_requirement, hex_filename).decode("utf8")   File "/pool-reference/venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1156, in resource_string     return get_provider(package_or_requirement).get_resource_string(   File "/pool-reference/venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1401, in get_resource_string     return self._get(self._fn(self.module_path, resource_name))   File "/pool-reference/venv/lib/python3.8/site-packages/pkg_resources/__init__.py", line 1616, in _get     with open(path, 'rb') as stream: FileNotFoundError: [Errno 2] No such file or directory: '/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/pool_escaping_innerpuz.clvm.hex'

Found this was removed in the commit:
https://github.com/Chia-Network/chia-blockchain/commit/e2bc9a7119e06bed6e9aa82e1399d62e74532d5b

Found this was removed in the commit:
Chia-Network/chia-blockchain@e2bc9a7

Do you think we can just copy the file or should we downgrade to this commit? (if that is doable)

I havent traced back why its actually causing a problem to the other branch. Looks like the PR to the new branch was after the rename so it looks like a regression issue.
What I have done is gone back to that specific commit with this sort of steps.
git clone https://github.com/Chia-Network/chia-blockchain.git -b pools.2021-may-25 --recurse-submodules
cd chia-blockchain
git checkout -b working-commit d72452c5c7c468df24a093d24617cf1e57dedf3e \

This is purely a work around and requires a rollback to a specific commit.

Thank you for your insight and providing the steps to rollback, i am still new to git.

No worries. This will leave your branch to the name working-commit so after the fix will have to change the branch back to the correct branch but will see what the update will be.

Not sure waht to expect butseems to be working fine so far. Waiting for the farmer wallet to sync so i can try to make a singleton

FileNotFoundError: [Errno 2] No such file or directory: '/home/user/pool-reference/venv/lib/python3.8/site-packages/chia/wallet/puzzles/pool_escaping_innerpuz.clvm.hex'

cd venv/lib/python3.8/site-packages/chia/wallet/puzzles/
wget https://raw.githubusercontent.com/Chia-Network/chia-blockchain/d72452c5c7c468df24a093d24617cf1e57dedf3e/chia/wallet/puzzles/pool_escaping_innerpuz.clvm
cd ~/pool-reference
sudo CHIA_ROOT="/home/user/.chia/testnet7" ./venv/bin/python pool/pool_server.py

Same Issue. I fixed with:
git clone https://github.com/Chia-Network/chia-blockchain.git -b pools.2021-may-25 --recurse-submodules cd chia-blockchain git checkout -b working-commit d72452c5c7c468df24a093d24617cf1e57dedf3e

I am currently creating plots, how do i know if it wokrs on testnet?
chia farm status report 15hours until rewards, i am still making plots ti reduce time
Making -k25 plots, is that enought for testnet?
I've been searching for those answers and have more questions, where can i ask them?

And lastly, as anyone made a bug report or pull request? if it's relevant
I would do it myself if i knew how. As for me, this close the issue.
Regards everyone,


APIs are not authorized.

https://github.com/bistecglobal/blockchain-certificates-issuer/issues/147

https://github.com/bistecglobal/blockchain-certificates-issuer/issues/147#issue-1843717235


Removed embedded BaseTagInfo in pat::Jet

PR description:
The interface to add an embedded object was removed in 2010 and the member data was only kept to read very old files.
PR validation:
Code compiles.

@nsmith- FYI

FYI I need write access to merge this. Also, we should rewind this repo's master to from-CMSSW_14_0_0_pre0 for simplicity (since the PRs all go against that)

FYI I need write access to merge this. Also, we should rewind this repo's master to from-CMSSW_14_0_0_pre0 or change the default branch for simplicity (since the PRs all go against that)

Or maybe to use some other branch in this repo than master to be more clear on what master means?

I switched to CMSSW_14_0_0_pre0_modified being the default branch. So we should base all work areas on CMSSW_14_0_0_pre0 for now.

will move to proper branch

You can just change the base by editing the PR


Deposit landing page mockups

Discussion here: https://github.com/MESH-Research/knowledge-commons-repository/discussions/203


cdata-section beaks esm import

Error [ERR_MODULE_NOT_FOUND]: Cannot find module '.../linkedom/esm/interface/cdata-section' imported from .../node_modules/linkedom/esm/shared/facades.js
The facades.js file needs the cdata import to have the '.js' extension.
https://github.com/WebReflection/linkedom/blob/6f21a9df53e12431a1a38f0974c69b4fb9ee57ce/esm/shared/facades.js#L3C74-L3C74

Having the same issue in 0.16.0. Version 0.15.6 is not affected by this issue.

damn it TS users ...

apologies I should've paid more attention, not even sure why tests pass there ... fixed now.

not even sure why tests pass there

FWIWI actually I know why, CJS does the same, it fallsback to .js so no problems whatsoever there ... bummer, this should've been caught earlier. Sorry again.

OK, this should never happen again.

Hey, no worries, thanks for the quick fix + tests!


Peer reader handles invalid frames

Fix #294

Codecov Report

Merging #297 into master will increase coverage by 0.1%.
The diff coverage is 30%.

@@            Coverage Diff            @@
##           master     #297     +/-   ##
=========================================
+ Coverage   53.16%   53.26%   +0.1%
=========================================
  Files         122      122
  Lines        6939     6948      +9
=========================================
+ Hits         3689     3701     +12
+ Misses       2756     2753      -3
  Partials      494      494

Impacted Files
Coverage Δ

pkg/p2p/wire/checksum/checksum.go
0% <0%> (ø)
:arrow_up:

pkg/p2p/peer/peer.go
65.95% <37.5%> (+5.5%)
:arrow_up:

Continue to review full report at Codecov.

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


python3Packages.fonttools: 4.38.0 -> 4.42.1

Description of changes
Version bump
Another few tests had to be ignored, as they depend on fs

Things done

Built on platform(s)

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

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

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

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

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

[X] Fits CONTRIBUTING.md.

@ofborg build noto-fonts-emoji

This appears to break the test suite of afdko.

#251389

Closing due to https://github.com/NixOS/nixpkgs/pull/251878


get_facts() not seeing asserted facts from a consequent

Linked to this issue: https://github.com/jruizgit/rules/issues/307
It looks like get_facts() is not getting facts asserted in a consequent.  I don't know if it is failing -- I get no error message, but the last "Third" print statement is not executed -- possibly a hint.
from durable.lang import *

with ruleset('test'):
    @when_all(m.subject == 'hello')
    def compute_thrashing(c):
        # consequent
        print("First")
        newdict = {"fact_type": "new"}
        print("Second")
        c.assert_fact(newdict)
        print("Third")

assert_fact('test', {"subject":"hello"})

print(get_facts('test'))

Result from running as script:
First
Second
[{'subject': 'hello'}]

when you add the following rule the fact gets added:
@when_all(+m.fact_type)
    def end(c):
        print("end")

I don't know why. You could put what you need into the state like so: c.s.fact_type = "new". Then you would see it in get_state

c.assert_fact(newdict) fails because of the fact ({"fact_type": "new"}) is not being observed, that is, there is no rule triggered by it.
That's why when you added a new rule triggered by this kind of fact (@when_all(+m.fact_type)) the fact is asserted.
Besides, exceptions raised inside a consequent are captured and not reraised. In this case, assert_fact fails silently.

Thank you both @reinoldus and @trankos !  To @trankos  point -- that means that c.assert_fact(new_dict) does not trigger anything?  I was assuming that asserting a fact and triggering a rule were the same thing -- but it isn't?  What is the difference between asserting a fact and triggering a rule?  Because I assumed that one outcome of a triggered rule was asserting a fact, and you could update the facts with just assert_fact.

As far as I know, assert_fact triggers the rule resolution process, that is, check if exists any rule, or rules, that can be triggered because of that fact  (its antecedent is true)  and, if any, execute its consequent. But it is possible that no rule be triggered if no rule antecedent is true.

That all makes sense to me.  The model in my mind though is that even if I asserted a fact that does not trigger any rule, that fact still exists in the ruleset.  So if I assert a fact that doesn't trigger any rules, that fact should still be in the session, and if I do a get_facts() on the ruleset, I should see that fact (that didn't trigger any rules) returned.  Am I missing something conceptually here?

Yes, that's how its works. But, coming back to your first comment, the fact only stays, if and only if it's observed and that means that can match some rule antecedent. In other case, the fact is ignored. This behavior is explained
here
IMHO, for the sake of simplicity and better performance, @jruizgit has taken some design decisions like this. In other inference engines, is mandatory explicitly define fact structure. @jruizgit  approach is simply and clever: rule antecedent define implicitly the structure of a fact, but only partially. A fact has to content, at least, a minimum of properties to be consider a "proper fact" and that properties are those that appear in rules antecedents, but could have more properties.

Thanks @trankos , this is clearing some things up.  Does the following make sense:
from durable.lang import *

with ruleset('test'):
    @when_all(m.subject == 'exists')
    def myassert(c):
        c.assert_fact({"fact_type": "new"})

assert_fact('test', {"subject":"exists"})
assert_fact('test', {"subject":"nonexistent"})

Returns an error, because the globally asserted fact does not match any rule antecedants:
C:\Users\IRINZN\tmp\durable_rules>python github-issue-350.py
Traceback (most recent call last):
  File "github-issue-350.py", line 10, in <module>
    assert_fact('test', {"subject":"nonexistent"})
  File "C:\Users\IRINZN\anaconda3\lib\site-packages\durable\lang.py", line 676, in assert_fact
    return get_host().assert_fact(ruleset_name, fact, complete)
  File "C:\Users\IRINZN\anaconda3\lib\site-packages\durable\engine.py", line 817, in assert_fact
    return self._handle_function(rules, rules.assert_fact, fact, complete)
  File "C:\Users\IRINZN\anaconda3\lib\site-packages\durable\engine.py", line 790, in _handle_function
    rules.do_actions(func(args), callback)
  File "C:\Users\IRINZN\anaconda3\lib\site-packages\durable\engine.py", line 343, in assert_fact
    return self._handle_result(durable_rules_engine.assert_fact(self._handle, json.dumps(fact, ensure_ascii=False)), fact)
  File "C:\Users\IRINZN\anaconda3\lib\site-packages\durable\engine.py", line 328, in _handle_result
    raise MessageNotHandledException(message)
durable.engine.MessageNotHandledException: {'subject': 'nonexistent'}

This worries me a bit because if I assert some facts that don't trigger any rules, it will give me an error.  It may optimize some things, but it seems like a potential stumbling block.  I can envision common use cases where I assert a bunch of facts, but only some of them trigger rules.

Indeed, it also seems to me that it is the only way to add a fact to the knowledge base (that can be used in the future).
For example, a rule like this:
   @when_all(+m.subject)
    def catch_all(c):
        pass

will catch every fact with a property named subject, and will be stored into knowledge base for future matches.
Is good or bad design decision to force a rule match to store a fact into knowledge base? Yes, it smells like a hack but:

It's a good practice to explicitly select, what fact can be useful in the future, to store it, and which not, to discard it. We have to keep in mind that durable-rules only knows about rules, so there's no other way to accomplish it.
This strategy fits with micro framework design. Simple and clear default behavior: discard facts that not match any rule.
Keeping small the knowledge base is good: the smaller the knowledge base, the faster the RETE algorithm.
Retract a fact is expensive: triggers rule resolution process.

Thank you, @mpettis, that has been a good point. I'm a newbie here and I wasn't sure about the better way to store facts but this discussion clear my mind.

I'm a newbie to rules myself, so this has been a very helpful discussion for me as well!


BREAKING CHANGE: xSQLServerScript: Unable to configure two instances on the same node

Details of the scenario you try and problem that is occurring:
xSQLServerScript cannot be used to configure two instances on the same node, using the same script.

Test-ConflictingResources : A conflict was detected between resources '[xSQLServerScript]SQL2008R2-RunSQLScript (E:\DSC\DSC-SQLTestConfig.ps1::562::17::xSQLServerScript)' and '[xSQLServerScript]SQL2012-RunSQLScript (E:\DSC\DSC-SQLTestConfig.ps1::562::17::xSQLServerScript)' in node 'sqltest2.company.local'. Resources have identical key properties but there are differences in the following non-key properties: 'ServerInstance'. Values 'sqltest2.company.local\SQL2008R2' don't match values 'sqltest2.company.local\SQL2012'. Please update these property values so that they are identical in both cases.

I suggest we change the parameter ServerInstance to be a Key as well. This will be a breaking change.
The DSC configuration that is using the resource (as detailed as possible):
Configuration SQLTestConfig
{
    Import-DscResource -ModuleName xSqlServer

    Node $AllNodes.NodeName
    {
        xSQLServerScript 'SQL2008R2-RunSQLScript'
        {
            ServerInstance = 'sqltest2.company.local\SQL2008R2'
            SetFilePath = 'C:\DSCTemp\SQLScripts\Set-RunSQLScript.sql'
            TestFilePath = 'C:\DSCTemp\SQLScripts\Test-RunSQLScript.sql'
            GetFilePath = 'C:\DSCTemp\SQLScripts\Get-RunSQLScript.sql'
        }

        xSQLServerScript 'SQL2012-RunSQLScript'
        {
            ServerInstance = 'sqltest2.company.local\SQL2012'
            SetFilePath = 'C:\DSCTemp\SQLScripts\Set-RunSQLScript.sql'
            TestFilePath = 'C:\DSCTemp\SQLScripts\Test-RunSQLScript.sql'
            GetFilePath = 'C:\DSCTemp\SQLScripts\Get-RunSQLScript.sql'
        }
    }
}

Version of the Operating System, SQL Server and PowerShell the DSC Target Node is running:
Windows Server 2012 R2, SQL Server 2008 R2 and SQL Server 2012, PowerShell 5.0
Version of the DSC module you're using, or 'dev' if you're using current dev branch:
Dev

The parameter ServerInstance was already required, so that means that there is no breaking change to make it a key. Changing the title to reflect that.


Descriptions needs to fit longer text

Descriptions are currently limited to 2 lines.  It needs to be 3 lines long.  Two lines is not adequate to describe to the user why the permission is needed.

I think what need do lines by content. Auto for 2-3-10 lines if it need.
I do it in next version. Maybe today.

I tested your request. While I can not implement it as the main branch - many users put the description in two lines. I would like to make an adaptive size, but this is not possible due to the multi-state button.
To solve the problem, I suggest you make a fork and set 3 lines (or more).


'list' object has no attribute 'to'

I'm just trying to catch up with the newest version of searge. Was working months ago.
Error occurred when executing SeargeMagicBox: 'list' object has no attribute 'to' ..../model_base.py", line 60, in apply_model     t = t.to(dtype) AttributeError: 'list' object has no attribute 'to'

Just leaving this here in case anyone else stumbles upon this issue. I found the fix on another github page here: https://github.com/comfyanonymous/ComfyUI/issues/1385
Basically I fixed it by changing the line:
context = c_crossattn
to
context = torch.cat(c_crossattn, 1)
In comfy/mode_base.py


Make docs generated responsive

It would be nice if the docs were mobile-friendly, and it would give Docz a big win over Storybook, which is still not responsive either.

First we need to discuss which is the best approach to make the default theme responsive, there is some options: https://github.com/emotion-js/emotion/blob/master/docs/media-queries.md

🎉 This enhancement is now included in version 0.3.2 🎉
The release is available on:

npm package (@latest)
GitHub release

Thank you!


Adds InRangeUnobstructed method to InteractionSystem

Closes #694
...And modifies ItemComponent and HandsSystem to use it.
Also adds CanPickup() to ItemComponent AND to IActionBlocker

I'll repurpose this PR tomorrow to add a standardized method for checking if an entity is within interaction range and not blocked by impassable entities (such as walls)
Do not merge until then

This is ready for review (and merge, if the review goes fine) now.


:sparkles: Environment variable: PUID and PGID (#240)

This PR fixes #240
Category

Feature

Issue Number

Related issue: #240

New Vars

PUID and PGID

Are you sure this works without any repercussions ? I'm pretty sure I or we have tried to implement this previously by using the base image of a famous set of Images (hotio base image)
We had made it so that the CI manually builds before creating the docker images so that it doesn't take like 15 minutes for the ARM VMs to build, and before that they couldn't even build the project because of errors in NextJS.
Can you document the PR more ? I'm not sure what a supervisor and the conf.d files are supposed to do

Must be works without any repercussion because i don't touch any homarr code, only added new features same as keep synced PUID, PGID and DOCKER_PGID.
PUID - Must be same UID on host user, under container this UID will applied to homarr user.
PGID - Must be same GID on host user group, under container this GID will applied to homarr group.
DOCKER_PGID - Is needed for work with host docker without any problem, under container docker GID must be same as host docker GID to interact with host docker.sock bind mount.
Added docker entrypoint:
All sh scripts in the /docker-entrypoint.d folder will be run on every container startup, this allows you to configure the custom details needed on many systems; In this case, I wrote a user configuration script.
00-user-setup.sh – This script ensures that permissions between the host and container remain the same UID and GID when binded mount volumes. It also changes the GID of the docker to maintain the homarr user's permissions to interact with the docker as a binded mount volume. PUID and PGID can be modified any time, this allow easy migrations and changes in host for any reason.
Persistence data is all under /app/data/configs, this must be volumed between host, path binded mount volume based or docker named volumes system. This path always keeps PUID and PGID. I think database too must be save here.
And yes, the Docker build of this image is a bit heavy task because i included homarr build process inside docker build image.
Thereby anyone can do git clone of this repo and build image directly doing:
docker build -t custom_homarr .
Without do anything more, building and all nedded actions was written in multi step Dockerfile.

Hi thanks for the pull request, seems a little confusing right now for me, but probably mostly knowledge issues on my site. We prefer to wait for one of our collegues to come back from vacations so we can discuss how we move forward.

One week ago I was about to open an issue about PUID but then I found that it is a well known issue... So I found this PR and I just wanted to thank the homarr team and @nyok1912 for this PR, this really saved me from a headache and I thought it deserverd the acknowledgement. Thanks!

I have to admit that I don't fully understand every line. Have you made tests using existing data / setups to ensure that it doesn't break? Would you also be willing to assist us on the upcoming version 1.0 (which requires a new dockerfile due to changed architecture).

Of course I can help in future versions, I love this project!


谁知道这个后台demo的源码在哪，找了半天没找到呢https://demo.laravel-admin.org/forms/form-2

Laravel Version: #.#.#
PHP Version:
Laravel-admin: #.#.#

Description:
Steps To Reproduce:

https://github.com/z-song/demo.laravel-admin.org


Added new interceptor that invokes a flow (or any kind of IS) service

This new interceptor can invoke an IS service instead of the one being intercepted. This allows to use a more complex business logic when compared to scenarios, while simplifying developers's workflow (since they don't need to learn how to define an scenario; they just need to know how to develop a plain old flow service).

Hi DiegoAlfonso2,
I don't quite understand. There already exists the ability to invoke any kind of IS service instead of the one being intercepted. See the wiki section "Intercept point - Invoke" here https://github.com/wmaop/wm-aop/wiki/Understanding-how-the-mocking-works#intercept-point---invoke
Is there something I am missing?

Hi @Geraden07
Clearly, I am the one who's missing something. I've been looking through the API for an endpoint that let me invoke an alternative IS service, but couldn't find it. The closest functionality I've found is an interceptor that can make REST calls, and it seems to be undocumented. That's why I've defined a new interceptor and it's corresponding REST resource in OrgWmAOP and wanted to share it.
Maybe you can give me a piece of advice? As far as I understand, the interceptPoint parameter can be one of BEFORE, AFTER or INVOKE, but I couldn't find the way to specify the service that should be called instead of the one being mocked. How can I accomplish that?
Thank you for your support and best regards

@DiegoAlfonso2,
Hmm, interesting. You're right. Now that I take a closer look, despite how that linked section of the wiki explains things, I don't see any way currently to actually specify another service to call instead of the intercepted service. I only see examples of specifying a response or set of responses directly.
@sysgen, Richard, maybe you can speak to this?

Will look to implement this fully within restful and scenario situations.


Update razor-pages-convention-features.md

Three bugs:
1)Navigate to the sample app localhost:5000/TheContactPage
The index page is loaded instead of localhost:5000/Contact when the optional route is left off with the TheContact. I stepped through the call stack starting from the loading of RazorPages from the pages directory and haven't found the point where the index is loaded yet so I don't know if this is a doc or core bug.
2)Navigate to the sample app localhost:5000/TheContactPage/TextValue
Mouse over the links in the top and you will see that every link has been replaced with the TheContactPage appended to every link.
A confusing point in the article: The notes all indicate that the order property determines which route comes first {globalTemplate?} vs {aboutTemplate?}. This wording makes it seem like the order of directories /GlobalRouteValue/OtherPagesRouteValue was determined by this number but stepping through the sourcelink provided .NET CORE source code shows that the order of the route order is determined by the order that options.Conventions.Add are called in the startup. This is because the model.Selectors.Add in the sample adds a new selector attribute route model template on top of the one that already exists. So each route added creates a route plus the old ie 1,2, 1/2, 3, 1/3, 1/2/3, 1/4, 2/4, etc... The example happened to create a conflict by appending templates rather than adding a new template and the selection of the template when one value is provided then gets resolved between {globalTemplate?} vs {aboutTemplate?} using the order. I think you could make this clear just by adding one line at the top note saying the order of routes is determined by the template. You can see an example by switching the call order in startup between snippets 1 and 3 options.Conventions.AddFolderRouteModelConvention("/OtherPages" and options.Conventions.Add(new GlobalTemplatePageRouteModelConvention() and then navigating to localhost:5000/OtherPages/Page1/GlobalRouteValue/OtherPagesRouteValue and observe that the html now displays
"Route data for 'globalTemplate' was provided: OtherPagesRouteValue
Route data for 'otherPagesTemplate' was provided: GlobalRouteValue"
in contradiction with the note stating that the order property decided the route order "The Order property for the AttributeRouteModel is set to 1. This ensures that the template for {globalTemplate?} (set earlier in the topic) is given priority for the first route data value position". Here there was no conflict between equally specific routes and was determined by the calls to the order.

See the link for #2. The contact page appears correct because it's a link to the default index with TheContactPage appended. Each of the links will still load the correct link but the url link and the url in the address bar once clicked have an erroneous TheContactPage, that seems to be tolerated by the routing.

Sorry ... I didn't understand the repro. Yes, I see it now. I updated "Issue 2" and show the markup generated.

@user135711 I'm working on this now. I ask the MVC/RP engineers about the behavior on https://github.com/aspnet/Mvc/issues/8385. After hearing back, I can proceed. They'll probably either say "by-design" or "bug." After Issues 1 and 2 are addressed here, I'll take a look at Issue 3.

@guardrex thanks for letting me know, I subscribed to the other thread.

@guardrex yes, I watched the solution as it unfolded :)

Best intentions at least. I don't want multiple samples for any of these topics (if possible). It's unlikely that a given dev would be required to implement several of these in one app, but it's best for the repo if ww restrict sample proliferation. I suspect that when I move the /TheContactPage page route UP! in the order that it will match and the whole sample will work.


Disable alwaysShow for addin items

What problem did you solve?
Closes #489
This PR sets alwaysShow: false to addin items so that it is easier for user to find the wanted addin command on type.
(If you have)Screenshot

(If you do not have screenshot) How can I check this pull request?

Attach an R session
Launch RStudio Addin
type a package name
Only matched items will show in the list

@MilesMcBain Is there a reason that alwaysShow: true was used?

Only because I seem to have misunderstood what it did.
LGTM


S2106 sdk topology

unpack .................................  25  (package unpacked successfully)
unpack_dir .............................  15  (unpack directory is magnetsdk2-1.6.5 as expected)
setup.py ...............................  25  (setup.py found)
install ................................  50  (package installed in /var/folders/33/4wk4yfl154n1f340d7kbwyk00000gq/T/cheesecakeRH1XMn/tmp_install_magnetsdk2-1.6.5)
generated_files ........................   0  (0 .pyc and 0 .pyo files found)
INSTALLABILITY INDEX (ABSOLUTE) ........ 115
INSTALLABILITY INDEX (RELATIVE) ........ 100  (115 out of a maximum of 115 points is 100%)
required_files .........................  30  (1 files and 0 required directories found)
docstrings .............................  57  (found 53/93=56.99% objects with docstrings)
formatted_docstrings ...................  10  (found 31/93=33.33% objects with formatted docstrings)
DOCUMENTATION INDEX (ABSOLUTE) .........  97
DOCUMENTATION INDEX (RELATIVE) .........  28  (97 out of a maximum of 350 points is 28%)
unit_tested ............................   0  (doesn't have unit tests)
pylint .................................  39  (pylint score was 7.66 out of 10)
CODE KWALITEE INDEX (ABSOLUTE) .........  39
CODE KWALITEE INDEX (RELATIVE) .........  49  (39 out of a maximum of 80 points is 49%)
=============================================
OVERALL CHEESECAKE INDEX (ABSOLUTE) .... 251
OVERALL CHEESECAKE INDEX (RELATIVE) ....  46  (251 out of a maximum of 545 points is 46%)


Bump actions/upload-artifact to latest version

This PR bumps workflow action actions/upload-artifact to its latest version, thus avoiding a deprecation warning seen e.g. here.
It also fixes a typo on the fly.

Hey @deining, thanks for the PR. Could you revert the Go version bump in go.mod(s)? We don't want to require a higher Go version just yet.

Hey @deining, thanks for the PR.

You are welcome.

Could you revert the Go version bump in go.mod(s)?

Done.
I also rebased my PR, it is now up to date with head of repo again.


Clippy practices

Crate
ibc
Summary
We have inconsistent practices regarding the use of clippy exceptions, in particular to too_many_arguments and large_enum_variant. We should decide on a standard.
Problem Definition
We sometimes annotate enums with #[allow(clippy::large_enum_variant)] to avoid clippy warnings:
https://github.com/informalsystems/ibc-rs/blob/12cb1d6187e878eee0e40295fe0b804ddef0b846/modules/src/ics02_client/msgs.rs#L13-L18
And sometimes we box large enum variants for the same reason (to avoid clippy warnings):
https://github.com/informalsystems/ibc-rs/blob/12cb1d6187e878eee0e40295fe0b804ddef0b846/modules/src/ics03_connection/msgs.rs#L29-L34
The too_many_arguments check also poses issues, for example this method has 11 arguments, but clippy issues warnings for anything larger than 7:
https://github.com/informalsystems/ibc-rs/blob/12cb1d6187e878eee0e40295fe0b804ddef0b846/modules/src/ics07_tendermint/client_state.rs#L34-L47
While we're at it, we should also consider doing a sweeping through the repo and clean other clippy exception, for example:
https://github.com/informalsystems/ibc-rs/blob/c32393a4f344877e34957d13a768e6623486c587/modules/src/tx_msg.rs#L15
Improvement proposal:

[ ] perhaps we can eliminate methods that have excessive number of arguments
[ ] use a repo-wide clippy configuration with larger thresholds than the defaults

Original discussion
I wonder if we can have a clippy config to parametrize the "too_many_arguments" threshold (default is 7) for this crate, since we're using this allow quite often. We are also cutting some corners with allowing large_enum_variant.
Originally posted by @adizere in https://github.com/informalsystems/ibc-rs/pull/355#discussion_r516654739
In future, I think this deserves a discussion about clippy in general, if we want to have a repo-wide configuration where we adjust the clippy parameters ... so we can remove the allow/clippy annotations altogether. I can open an issue to track this if that seems interesting.
Originally posted by @adizere in https://github.com/informalsystems/ibc-rs/pull/355#discussion_r516832986

For Admin Use

[X] Not duplicate issue
[X] Appropriate labels applied
[X] Appropriate milestone (priority) applied
[ ] Appropriate contributors tagged
[ ] Contributor assigned/self-assigned

I would strongly advocate not to override too_many_arguments. The example above is impossible to use without looking at the definition or using extra aids in the IDE. The call sites may be difficult to understand without IDE-provided hints or comments (what each of the three Duration arguments mean? There are two boolean flags as well, with another antipattern mixed in).
Instead, we should refactor the code to use:

struct parameters, to benefit from named field initializers and Default;
the builder pattern for constructing complex values, especially when many of the fields can be initialized with default values.

Closing this, we can open new ones with concrete proposal and following up with PRs.