[BugFix] Not support scalar sub-query of array type

What type of PR is this：

[x] BugFix
[ ] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes # https://github.com/StarRocks/starrocks/issues/18419
Problem Summary(Required) ：

FE does not support array-typed scalar sub-query,  but it report "Unkwown error", now FE gives a clear error message "NOT support scalar correlated sub-query of type ARRAY<varchar(32)>". When rewriting scalar sub-query,  ScalarApply2JoinRule is used, it generates a AggregationNode who has aggregation any_value, any_value's argument type is the type of scalar sub-query, however, function signature any_value(array) not supported.
Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto backported to target branch

[x] 3.0
[ ] 2.5
[ ] 2.4
[ ] 2.3

@Mergifyio backport branch-3.0


Feature/theme builder

This PR also adds support for dark theme and theme switching at runtime (Although code to make the change is not yet done, we now have the ability to do so)


⚠ Bofrost.be has degraded performance

In 0dd5c6c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1537 ms

Resolved: Bofrost.be performance has improved in d7af35a after 6 minutes.


Update service connector section connect-managed-identity-to-azure-sql.md

In service connector section, remove "install CLI edge build notice" because CLI has released the feature in latest version.

Learn Build status updates of commit 3b9da3f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/spring-apps/connect-managed-identity-to-azure-sql.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

@KarlErickson
Can you review the proposed changes? IMPORTANT: When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

Thanks, @xfz11 !
#sign-off


Docs: Dead links to sample source directories

Links to sample source files point to docs.zephyrproject.org instead of github.com.
Example: https://docs.zephyrproject.org/latest/samples/net/gsm_modem/README.html
Link behind samples/net/gsm_modem points to:
https://docs.zephyrproject.org/blob/master/samples/net/gsm_modem
instead of:
https://github.com/zephyrproject-rtos/zephyr/blob/master/samples/net/gsm_modem

@utzig you recently made a change here (#28245), can you please take a look?

This seems to happen after the update to west==0.8.0; previously WestManifest.from_file().get_projects(['zephyr'])[0].url was None, now with 0.8.0 it is not anymore, so I'll check what changed there. Any tips @mbolivar-nordic?

Any tips @mbolivar-nordic?

Looks like you figured it out from the API changes documentation?


Handle common test changes

We shouldn't be failing builds if a PR doesn't bump task versions and only makes test changes

@stephenmichaelf here's an example where we are currently failing a PR that should succeed - https://github.com/Microsoft/azure-pipelines-tasks/pull/9899 (It shows as succeeding now, but only because I manually queued a build for it).
@vincentdass FYI


安卓报错

Phone model：

react-lazyload version:
"2.3.0" browser: the phone comes with browser
Specific circumstances: Sliding, the console error script error
Reproduce URL: https://dev-me.otosaas.com/shangcheng/activity/year? CustomerUserId = test & customerUserPhone =<PHONE_NUMBER>4

please attach the detailed error information, including error stacks.

I am sorry, I checked the code, I used the forEach method traversal dom array is not compatible with low version of the browser


Is this library support laravel 8 with PHP 7.4?

As stated in the README.md doc, support for this library starts from PHP8.0. If you're using a PHP version less than 8.0, I'd highly recommend upgrading as a high priority as PHP8.0 itself loses security support from January 2024 as detailed here:
https://www.php.net/supported-versions.php


[SERF-2635] Upgrade actions to avoid deprecated "set-output"

Description
This PR includes a series of action upgrades to avoid getting deprecated warnings

Upgrade job-notification to v1.1.0
Upgrade checkout to v3
Upgrade build-push-action to v3
Upgrade configure-aws-credentials to v2
Upgrade configure-aws-credentials to v2

Testing considerations
Making sure no more warnings are shown in the pipeline.
Checklist

[x] Prefixed the PR title with the JIRA ticket code
[x] Performed simple, atomic commits with [good commit messages][commit messages]
[x] Verified that the commit history is linear and commits are squashed as necessary
[x] Thoroughly tested the changes in development and/or staging
[ ] ~Updated the README.md as necessary~

Related links

SERF-2635

Closed in favor of #80


Session Store Tests Have No Coverage

Severity level (1-10):
7
Files/Directories Involved:
pkg/networking/session_store_test.go
Description:
For some reason when I run this test it says 0.0% statement coverage. I think it has something to do with the fact that I'm running tests on methods that are appended to a struct. I need some insight on this and/or some help.
Personal Comments:

The single test case looked passing to me. Which command did you use to get that 0.0% coverage?

Fixed in some pull request, accidentally didn't reference it.


When will be full release with tag?

When will be full release with tag? And will there be personal implementation (create account, unlock)?

When will be full release with tag?

We don't know.

And will there be personal implementation

Yes.

Yes.

It's brilliant.

We don't know.

Ok, try to use other package, but they almost all very bad(

@kyrychenko-dmytro You can always choose to contribute to this package. Here are a few contributions that may help you to get started: https://github.com/web3-php/web3/pulls?q=is%3Apr+is%3Aclosed.

Ok, maybe my qualification is enough:)


not able to debug rust with wls 2.0

OS: windows 10 build 19042.610
VSCode version:  1.50.1
Extension version: 1.6
Compiler: Rust, lldb
Build target: aarch64-linux-gnu
not able to debug rust with WLS 2.0 on Debian 9
I just installed :
vs code with extensions:
Rust
Rust-Analyzer
remote - WSL
codeLLDB

Hey.  Sorry for not getting back to you earlier.   Could you please provide more information about what isn't working?


[WIP] Add XboxLive sensor

Description:
This component has a different approach than the sensor.xbox_live.

sensor.xbox_live:

It uses XboxAPI.com to query Xbox live
You have to create an account in https://xboxapi.com/
You have to give your user/password to https://xboxapi.com/ (but it should be encrypted on their database)
Your are limited by the number of request you can do by hour

This new component

Query directly Xbox Live
Doesn't required external service
User/password saved on your local HA instance
No request limitation

Also, I would suggest to rename the * sensor.xbox_live component to sensor.xboxapi
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):
  - platform: xboxlive
    username: MYXBOXLIVEUSERNAME
    password: MYXBOXLIVEPASSWORD
    xuids:
    -<PHONE_NUMBER>3534764
    gamertags:
    - mygamertag
    - mygamertag2

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io
[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[x] New dependencies have been added to the REQUIREMENTS variable (example).
[x] New dependencies are only imported inside functions that use them (example).
[x] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[x] New files were added to .coveragerc.

I think we need not do approche for one solution. Replace the old xbox_live stuff with this new local thing :+1:

@titilambert I'm not sure if this will support accounts that have two factor authentication turned on. This other repo has a more evolved version of the xbox library you're using, which does support 2FA: https://github.com/tuxuser/py-xbox-webapi


chore: add missing deps

Fixes failure from CI during release: https://github.com/edmundhung/conform/actions/runs/9275930573/job/25521773327

@edmundhung if this is all sorted in main feel free to close, was just trying to help :)

Closing this as the missing package is already added. Thanks again :)


Changing edge type in advertising targeting to enable better control …

…over issue routing.

Can one of the admins verify this patch?

verified

Was this connection never used yet? Because removing older connection might create issues/confusion if it already used somewhere..

The edge type has been used for a few days in one customer instance. But because of issue routing problems, these edges need to be replaced by another edge type. So yes, these edges won't be used anywhere after this schema change.


Distributed scan initAndRun

Summary:
Replaced the following steps using a FileCallable:

Downloading the binary
Copying the script
Running the script

Replaced the following steps with Launcher:

Deleting the temporary script using rm command.

These ensure that all the processes take place at the remote agent, where the workspace is present.
A thread is created in the controller itself, so that the scan run can run in background. This new thread calls the agent in case of distributed builds.
Points to note:
We have the option of providing the path to the binary. The user will need to make sure that the binary is available at the remote agent.

Have we tested it with 2 agents 1 controller? We should see the behavior in that case.

From what I have seen, each project is completely run on only 1 machine.  For example, in the above case the initScan was run on the controller and the runScan was run on the agent. This throws error as the workspace is in the agent.

And why not make just one file callable for complete runAndInit scan and move all the logic of downloading, running scan and deleting file inside the invoke function of that?

Some steps are common, like copying the script and deleting the script. But some steps are not. The common steps can be separated out, as you said. Also I don't think we should make a class too big. Makes it difficult to debug and understand.


Feat/adding event detail view

Explanation
I have added an event detail view
Summary

Created a new DetailLayout component to reuse it on Product Detail and Event Detail
Refactored Product Detail
Refactored Product type (changed name from product -> Product)
Created EventDetail view
Created Storybook for DetailLayout
Created Storybook for Event Detail

Screenshots

Story

https://github.com/Azordev/did-app/issues/6

How to test
Integration:

Go to Netlify deployment
Select an event on the Home view page
Enjoy testing if all is ok with the integration!

Visual tests:
EventDetail:

Go to Storybook deployment
Search "Page/EventDetail"
Enjoy changing parameters and testing user cases!

DetailLayout:

Go to Storybook deployment
Search "components/DetailLayout"
Enjoy creating your own detail views with the detail layout component 😁

@victor-heliomar what's the script to run it?

@e-azocar quasar dev

@e-azocar quasar dev

Thanks bro


access to path utilities?

I'm working on a project where a section uses react-router, and section doesn't. For the other section, I'd like to extract queries out of the url, to store certain keys in localStorage.
react-router's Path utiil was great for this, but I feel a bit shy about directly requiring this, since it might change in the future.
Does it make sense to consider exposing some of the utility functions in the main React Router exports?

You can pull it in, just be mindful when you upgrade, I hear @mjackson say all the time he wants to kill that module.
Another option is to require qs, the dependency we use for parsing/serializing query strings. If you package supports deduping, you won't add any overhead to the project.


install.sh gets stuck right after installing<EMAIL_ADDRESS>(IDFGH-11026)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
v5.1.1
Operating System used.
macOS
How did you build your project?
Other (please specify in More Information)
If you are using Windows, please specify command line type.
None
What is the expected behavior?
Copy these install instructions:
git clone --recursive https://github.com/espressif/esp-idf.git
cd esp-idf; git checkout v5.1.1; git submodule update --init --recursive;
./install.sh
cd ..
from this page:
https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html
Paste into a terminal
Hit enter
I expect it to install the tools
What is the actual behavior?
After this line of output in the terminal:
Extracting /Users/tpitman/.espressif/dist/openocd-esp32-macos-arm64-0.12.0-esp32-20230419.tar.gz to /Users/tpitman/.espressif/tools/openocd-esp32/v0.12.0-esp32-20230419
The terminal just hangs.
I hit Ctrl-C to stop it after many minutes, went into the esp-idf folder and ran ./install.sh and this was the output:
Detecting the Python interpreter
Checking "python3" ...
Python 3.11.4
"python3" has been detected
Checking Python compatibility
Installing ESP-IDF tools
Current system platform: macos-arm64
Selected targets are: esp32c2, esp32c3, esp32, esp32s3, esp32h2, esp32c6, esp32s2
Installing tools: xtensa-esp-elf-gdb, riscv32-esp-elf-gdb, xtensa-esp32-elf, xtensa-esp32s2-elf, xtensa-esp32s3-elf, riscv32-esp-elf, esp32ulp-elf, openocd-esp32, esp-rom-elfs
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
Skipping<EMAIL_ADDRESS>(already installed)
At that point it gets stuck again. I have waited for 10 minutes.
Steps to reproduce.
See the expected behavior above.
Build or installation Logs.
NA

More Information.
NA

Hi @tpitman. Could you please try to run the following command to narrow down and confirm my suspicion?
$IDF_PATH/tools/idf_tools.py install esp-rom-elfs

(please also share the output)
Do you have only one ESP-IDF copy on your computer? If there are multiple one, then is IDF_PATH set to the right one?

I have started over and used the shallow repo method. I am running into other issues at this point, but this one doesn't matter anymore...


Edit button missing for RTM journey

Hi There,
I am trying to understand why the edit button is missing.
Is there a way I can check the permissions needed or what is missing? I can see the edit button for some journeys, but the button is hidden for other journeys, or some user can see the edit button, but other users could not.
What are the exact conditions the Edit button will show or hide for RTM journey?

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: d898b867-5391-3885-4dd3-7a4e53da74c1
Version Independent ID: d898b867-5391-3885-4dd3-7a4e53da74c1
Content: Edit a live journey in real-time marketing (Dynamics 365 Marketing)
Content Source: ce/marketing/real-time-marketing-edit-journey.md
Service: dynamics-365-marketing
GitHub Login: @alfergus
Microsoft Alias: alfergus

Thanks for your comment, @jaimieji. This issue has been assigned to the doc author for review.

I assume you're using user profiles with customized security roles in your setup? It's hard to say what required permissions are missing for the custom profile without knowing the exact combination of security roles. I would post the question on the Dynamics 365 Marketing forum at https://community.dynamics.com/365/marketing/f/dynamics-365-for-marketing-forum.
You may also need to open a support ticket to resolve the issue.


Add a CodecProvider and refactor Stream

In a similar spirit to #21, this proposes a new CodecProvider type that could be used to support multiple encodings (not just proto.Message). The CodecProvider acts upon the Content-Type header value, and currently switches between Protobuf's JSON serialization (for Twirp), and the default Protobuf serialization (for gRPC). As a result of this, we can more generically represent the Stream interface so that it acts upon interface{} instead of proto.Message.
This is currently structured so that the CodecProvider is a concrete type, and must be instantiated with rerpc.NewCodecProvider. We might actually want to write this as an interface so that users can plug in their own encoding support, but they wouldn't actually be able to support a new Content-Type in practice because rerpc acts specifically on the Content-Type values encoded by the following:
// ReRPC's supported HTTP Content-Types. Servers decide whether to use the gRPC
// or Twirp protocol based on the request's Content-Type. See the protocol
// documentation at https://rerpc.github.io for more information.
const (
	TypeDefaultGRPC = "application/grpc"
	TypeProtoGRPC   = "application/grpc+proto"
	TypeProtoTwirp  = "application/protobuf"
	TypeJSON        = "application/json"
)

A pluggable interface would let users customize how each message is [un]marshled for each of the above Content-Type values, but if the user encodes something different than is what is expected between the client and server for any given Content-Type, then it's useless in practice.
There's a fair amount to unpack here, so let's discuss whether or not this is the right direction to take things.

A pluggable interface would let users customize how each message is [un]marshled for each of the above Content-Type values, but if the user encodes something different than is what is expected between the client and server for any given Content-Type, then it's useless in practice.

For a (potentially) future consideration, I stumbled upon some prior art in a dRPC's Protocol abstraction, which encapsulates the read and write logic specific to each Content-Type (rather than just the [un]marshaling logic). We might be able to do something similar here.

For a (potentially) future consideration, I stumbled upon some prior art in a dRPC's Protocol abstraction, which encapsulates the read and write logic specific to each Content-Type (rather than just the [un]marshaling logic). We might be able to do something similar here.

I like dRPC a lot! As a wire protocol, it's nice - super fast and simple. They're a little cavalier about the cost of dropping HTTP, though - they make it sound like pure overhead, but using dRPC throws away the last decade of features in proxies and LBs. No Envoy, no service mesh, no tracing/metrics/etc from sidecars, and no L7 load balancing. That's great for their problem domain, but it doesn't seem like a good tradeoff for most projects.

There's a fair amount to unpack here, so let's discuss whether or not this is the right direction to take things.

I like the idea of pluggable encodings, but I think that this approach ends up in an awkward middle ground. I'd prefer to do less or do quite a bit more.
Do Less
One approach is to do less and remove a few layers from your prototype. In this world, I think we could drop the CodecProvider and instead expose
func JSON(c Codec) Option { ... }
func Protobuf(c Codec) Option { ... }

We'd add fields to callCfg and handlerCfg, but NewCall and NewHandler wouldn't need to change. If the user doesn't supply one or both codec, we'd just use the implementations we've got today. Nice and simple! Of course, this doesn't let users bring new codecs - it just lets them choose new implementations for the two we've got.
Do More
In this option, we extend the Codec interface to include two new methods:
func TwirpSubtype() string // e.g., "protobuf"
func GRPCSubtype() string // e.g., "proto"

Users could then bring totally new codecs. I'd still get rid of the CodecProvider and add two map[string]Codecs to callCfg and handlerCfg (one for Twirp and one for gRPC). We'd need to special-case application/grpc to use whatever codec's registered for application/grpc+proto, but I'm pretty sure that's actually part of the spec (can't find the reference right now). If we're going to do this, I'd really like to actually use it for something - maybe we also ship a flatbuffer or capnp plugin in a separate module?
Do Lots More
The other option is to do quite a bit more. In that world, I think we'd go for something closer to dRPC's Protocol and let users bring their own HTTP-based protocols. We'd need to figure out how our protocol interface works with compression (dRPC doesn't support compression AFAICT, so they dodge the issue) and options like MaxReceiveBytes - ideally compression, protocol, and options would be orthogonal. Something like this might make sense?
type Compressor interface {
  Name() string // e.g., "gzip" or "snappy"

  // method set should make pooling really easy
  GetReader(io.Reader) io.Reader
  PutReader(io.Reader)

  GetWriter(io.Writer) io.Writer
  PutWriter(io.Writer)
}

type Compressors struct { ... }
func (cs *Compressors) Get(name string) (Compressor, bool) { ... }

type Protocol {
  ContentType() string
  Stream(w http.ResponseWriter, r *http.Request, *Compressors) Stream
}

I have no idea how we'd wire options into the protocols without exporting the callCfg and handlerCfg structs. Maybe all options are protocol-specific? I'm also not sure what the generated clients should look like - do they accept protocols as options? If so, what happens if I pass a flatbuffer-based protocol to a protobuf-generated stub? I worry that this approach leads to a package structure like YARPC or dRPC: everything's nicely decomposed, but the packages are so small that it's difficult for users to figure out how to put it all together.
Overall
I lean towards the "do less" option, of course - from what I can see, there's virtually no demand for other codecs.


An ability to view/add linked server

Issue Type: Feature Request
An ability to view/add linked server
SQL Operations Studio version: sqlops 0.31.4 (e026ab85a72c190cc4ccc834503aa9fe36dd6407, 2018-07-18T02:14:21.826Z)
OS version: Windows_NT x64 10.0.17134

This looks like a duplicate of https://github.com/Microsoft/sqlopsstudio/issues/1276.  Please add comments there or reactive if you think this is a different issue.

From, issue #1276, the ability to see link server exist from the tree? But I did not see the link server group from the tree.
Right click does not have option to create link server like database restore function.

@datauduong I'll reactive this issue to investigate.  Honestly, we have done any work specifically related to Linked Servers, so not sure what's the behavior.  Our Object Explorer code has been adapted from SSDT instead of SSMS, so that might explain differences that you're seeing relative to other tools.

When you add, remember put Active Directory with 2FA
(on SSMS is not possible use 2FA with Linked Servers or service principals)


or_ompl now prints which planners were found during build

You're not close()zing either file that you open. Can you switch to using context managers for this?

I'm also not a huge fan of directly embedding ASCII escape codes like they, because it tends to produce ugly results of you redirect the output to a file. However, I don't know of a good way of detecting whether that is the case or not without pulling in another dependency.
@psigen Know of any tricks?
If not, I suppose we can keep it the way it is now.

On a separate note, argparse is capable of directly typing a FileType('w') (https://docs.python.org/3/library/argparse.html#type), so I would suggest doing that, and detecting either a None or setting a default of sys.stdout.

The Python developers advise against that because it does not properly
close the handle
http://bugs.python.org/issue13824
On Tue, Oct 6, 2015 at 3:40 PM Pras Velagapudi<EMAIL_ADDRESS>wrote:

On a separate note, argparse is capable of directly typing a FileType('w')
(https://docs.python.org/3/library/argparse.html#type), so I would
suggest doing that, and detecting either a None or setting a default of
sys.stdout.
—
Reply to this email directly or view it on GitHub
https://github.com/personalrobotics/or_ompl/pull/30#issuecomment-145859372
.

Oh well, then I guess a 'stdout' default is the only way to do it.
@cdellin: addressing the colorization issue, can you use isatty()?
http://stackoverflow.com/a/2893767

+1 for those suggestions, implemented.  Also prettified the cpp output a bit and changed the location of the generated cpp file to be in build/or_ompl/src instead of build/src to avoid collisions with other packages.

:+1: Thanks @cdellin!


CAMEL-18416: Upgrade to slf4j 2.0

upgraded sl4j version to 2.x

I think this is maybe something to wait for Camel 4 where major runtimes are upgraded. Lets keep 3.x as-is

I converted it as a draft to avoid merging it in Camel 3.x by mistake

@ramu11 Could you please, modify your commit message as suggested thanks to the command git commit --amend?

Let's have a PR when it's time.

closing the PR to open new one when camel has 4.x release


Allow at least one character after '@' to trigger.

Is there any way to show popup matching at least one character after @ symbol Or can we use regex/function return for specific match string to show popup?

We do this in the override for remoteFilter.When the query.length is less than two characters, execute callback and return empty results.
Check out the DEFAULT_CALLBACKS in jquery.atwho.js to see what they're normally doing and the wiki for a tiny bit of documentation.
$('#inputor').atwho({
	at : "@",
	data : ['Peter', 'Tom', 'Anne'],
	remoteFilter : function (query, callback) {
		if (query == null || query.length < 2)
			return callback([]);

		//otherwise do xhr and pass result to callback()
	},
	filter : function (query, data, searchKey) {
		if (query == null || query.length < 2)
			return [];
		//otherwise do filter
	}
})

@markdon  Thank you


Fix native crash in libz with compressed texture loader and some further improvement

Native crash was due to the concurrent unsafety in stream ops in GVRAndroidResource when sniffing compressed texture loader.
Simply the compressed texture loading in async resource loading by introducing a new Async Compressed Texture Factory/Loader. Each compressed texture load request that misses in the cache will now go through Throttler rather than directly processed to prevent redundant loading of different requests.
Simply and improve the initialization of all async classes.
Offload the texture creating convertion from glthread to the current background thread in AsyncLoader's last step in Throttler.

Looks good. Planning to merge after lunch.


Warn about merging in duplicate GUIDs

So I was editing a master logic file for my light dimmer logic (basically one common config to merge in that defines useful config references for panels to use.
Turns out I had saved the same file into the "common logic" file and also to the panel configuration I started to write after that. And I happened to reuse one of the config entries and just change the contents. But this kept the old GUID.
When I later merged in the "common logic" file, it resulted two lines with duplicate GUID.
This caused that config item from the common logic to not be selectable as a config reference, and likely might have other side effects too, as GUIDs are expected to be unigue I guess.
I think mobiflight should check for duplicates and warn the user in that case, but it should not regenerate the GUIDS upon merge, as that would break config references accross merged files.

Hi
I meanwhile agree after our discussion.  MF "should" be able to handle This automaticly....
BUT
I think it´s not so easy as it seems.
If we make the "check" after the Merge we get in trouble !
For sure i think Sebastian could easy include a logic that say " After MErge check if ID´s are identical..... If Yes regenerate them.
But..... All other Configs who use the problematic one as Refference/placeholder.....  How should Mobiflight NOW know wich is related to Original Config A or Merged Config B   ( Cause both got the same ID in all other Referenced Lines)
So.....  I think the Test logic must be done BEFORE the Merge.....
Like... IF a user Merge , then MF compare the current Config and the Imported Source together...... If there is a duplicated line it must regenerate ( wahtever in the original one or in the imported one).... AND it must also rework all refferences in THAT Config to the new generated ID.    And finally after that it merge.
Only this way ( i think) it is possible to avoid the duplicated ID  AND to get sure all other Configs a refferenced to the correct one ( same way as before the merge in each config individual) !

Depending on the order you merge, config references with duplicated GUIDs can break both ways. But I agree, the check needs to happen before the merge.
It is a pretty abnormal situation that only happens if you copy a config and save on a new file, and change the config items to  fit different switches etc, and I would argue it mostly happens by accident and not on purpose. It happened to me when I was doing configs for two very similar panels, and wanted to reuse part of the logic from the first one in the second one, without realizing the issue.
I am not quite sure what to propose - I mean, MobiFlight could mark duplicate GUIDs with a red exclamation mark for example. so you become aware of it before wasting time wondering why stuff works weird, and then have a right click menu to "regenerate GUID" but that would be just rarely used code to maintain, and something that is very confusing to users.
What if we just check for duplicate GUIDs when merging or loading config files, and of a duplicate is found, show a link to a wiki page that explains the issue and shows how to fix it (like using an online GUID generator and cut & paste.


Unable to create Automation Account Runas Account using bicep

Is it possible to create an automation account runas account using bicep? I heard that in ARM this was not possible and wanted to check if this behavior has changed now.
Even though I did this from the portal, I did not find a way to assign the AUA service principal access on a Keyvault. How can I refer to the runas service account using bicep?
resource acmeautomation 'Microsoft.Automation/automationAccounts@2020-01-13-preview' = {
  name: 'acme-aua'
  tags: tags
  location: resourceGroup().location
  dependsOn: [  ]
  properties: {
    publicNetworkAccess: true
    sku: {
      name: 'Free'
    }
  }
}

Thanks for your help @brwilkinson


left channel after join

I run this code in js console:
    window.Echo.channel('tickets')
            .listen('ticket.created', function(e){
                console.log(e.order.name);
            });

and see this in laravel-echo-server cli:
$ laravel-echo-server start

L A R A V E L  E C H O  S E R V E R

⚠Starting server in DEV mode...

✔ Running at localhost on port 6001
✔ Channels are ready.
✔ Listening for http events...
✔ Listening for redis events...

Server ready!

[18:04:10] - S8LMlDg5BngTibDtAAAB joined channel: tickets
[18:04:10] - S8LMlDg5BngTibDtAAAB left channel: tickets

laravel-echo-server.json:
{
	"appKey": "myAppKeyFrom.env",
	"authHost": "http://localhost/",
	"authEndpoint": "/broadcasting/auth",
	"database": "redis",
	"databaseConfig": {
		"redis": {
			"host": "localhost",
			"port": 6379,
			"db": 0
		}
	},
	"devMode": true,
	"host": "localhost",
	"port": "6001",
	"referrers": [
	],
	"socketio": {},
	"sslCertPath": "",
	"sslKeyPath": "",
	"verifyAuthPath": true,
	"verifyAuthServer": false
}

bootstrap.js
window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://localhost:6001'
});

i sent
{
  "channel": "tickets",
  "message": {
    "event":"ticket.created",
    "data": {
       "key": "value"
     }
   }
}

to localhost:6001/broadcast
and get next answer
{
  "message": "ok"
}

but not have any frames in websocket

If you are using http to broadcast you will need to setup referrers.

I change config and setup referers before use http broadcast
	"referrers": [
		{
			"host": "*",
			"apiKey": "zjhm1Mhedce5Jjci31t1i9Hi2behml1hiXep5m+Ld524aeqd5LPc8e8s=pnl"
		}
	],

But I not receive any information on client side. Client side code:
    window.Echo.channel('tickets')
            .listen('ticket.created', function(e){
                console.log(e.order.name);
            });

Until a new version of laravel echo is released to npm you will need to add a . at the beginning of your event name:  .ticket.created
There have been some PRs submitted to allow no namespace but this has not been officially released yet. The above will help for now.
https://github.com/laravel/echo/pull/64

I try add .  at the beginning of my event name. It did not help me.

@kashtanoff Every '.' in an event name gets replaced with a '' by the echo client lib.

Thank you. This solve my problem.

so i have been struggling with this issue for days now however i cans seem to solve it i am using redis to brodcast events same as above the server leaves the room immidiately after joining.. i have tried all the above but nothing helps could you please assist
here is my json
{
	"appKey": "rmph7cjfrnf22i4ai301j3bbcha2dab2bcj4m8s33oa4b2jk1485ub1s8jl5",
	"authHost": "http:app.dev",
	"authEndpoint": "/broadcasting/auth",
	"database": "redis",
	"databaseConfig": {
		"redis": {},
		"sqlite": {
			"databasePath": "/database/laravel-echo-server.sqlite"
		}
	},
	"devMode": true,
	"host": "app.dev",
	"port": "6001",
	"referrers": [
		{
			"host": "*",
			"apiKey": "hia5bijbj6rdt2r83388n3jhb9er7dphstfs92d87sfg3p1lc0333f01mor3"
		}
	],
	"socketio": {},
	"sslCertPath": "",
	"sslKeyPath": ""
}

and my bootstrap.js
window.io = require('socket.io-client');

import Echo from "laravel-echo"

window.Echo = new Echo({
    broadcaster: 'socket.io',
    host: 'http://app.dev:6001'

});

window.Echo.channel('channel-name.1')
    .listen('.SomeEvent', (e) => {
        console.log(e);
});

my event
<?php

namespace App\Events;

use Illuminate\Broadcasting\Channel;
use Illuminate\Queue\SerializesModels;
use Illuminate\Broadcasting\PrivateChannel;
use Illuminate\Broadcasting\PresenceChannel;
use Illuminate\Broadcasting\InteractsWithSockets;
use Illuminate\Contracts\Broadcasting\ShouldBroadcast;

class SomeEvent  implements ShouldBroadcast
{

    use InteractsWithSockets, SerializesModels;

   public $data;
    /**
     * Create a new event instance.
     *
     * @return void
     */
    public function __construct($array)
    {
        $this->data = $array;
    }

    /**
     * Get the channels the event should broadcast on.
     *
     * @return Channel|array
     */
    public function broadcastOn()
    {
        return ['channel-name.1'];
    }
}

Thanks for this wonderfull server

I run into the same issue, I don't why left channel after joined channel.
[1:31:38 PM] - xwuyyLDSOlciVRD8AAAA joined channel: chat-room
[1:31:38 PM] - xwuyyLDSOlciVRD8AAAA left channel: chat-room

    onDisconnect(socket: any, channel: string): void {
        socket.on('disconnect', () => this.leave(socket, channel));

        if (this.options.devMode) {
            Log.info(`[${new Date().toLocaleTimeString()}] - ${socket.id} left channel: ${channel}`);
        }
    }

Left channel notice is for onDisconnect function, not for disconnect function.  This line of notice may mislead understand server actions. I think we should put it in actual disconnect function.

Good call! See #97 for PR

Thanks, @barryvdh !


Clarify keyboard customization api capabilities

Clarify keyboard customization api capabilities

Docs Build status updates of commit 434d0ba:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/design/keyboard-shortcuts.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


[TRG 4.03] Set in deployment-backend.yaml and  deployment-frontend.yaml the property runAsUser properly

Introduction
One of the requirements from the TRG is that the container shall be executed in a non root user.
This need to be set additionally at the deployments files.
What needs to be done?

[ ] Set runAsUser: appuser in deployment-backend.yaml
[ ] Set runAsUser: 101 in deployment-frontend.yaml

This requirement is already fulfilled in PR https://github.com/eclipse-tractusx/digital-product-pass/pull/87

https://github.com/eclipse-tractusx/digital-product-pass/pull/87/files#diff-dd2c0eb6ea5cfc6c4bd4eac30934e2d5746747af48fef6da689e85b752f39557R65-R66

This is done


pull request for e2e test at 12/05/2016 05:26:03

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Remove bookmark from topic and search services lists and header picture

In response to the bookmarking bug we are facing in #1016, remove bookmarking from both the topic and search service lists. This will then only enable users to bookmark services from the service detail page.
After discussing this with @cherrielam, she recommends we remove the header image from the service detail page to make the bookmarking icon more obvious to the user. Please refer to the image below:

Acceptance Criteria

[x]  Bookmarking icon no longer appears in topic and search services lists
[ ] Header image no longer appears in service detail page

Steps for QA:

This also affect services on bookmark screen

Bookmarked services don't have the bookmark button.

Topic services don't have bookmark button

Search service don't have bookmark button

Service detail don't have icon banner.

Topic detail don't have banner icon


How to recognition only one face?

Good job and good project. Can you help me how to recognition only face?
I don't want to recognition many people at once.
Currently, the performance is not very good. I want to ask if it is possible to capture image from camera and send to server
and recognition on Python Server to ease the app. On the web I used SocketIO to do this. Do not know with Flutter can do this?

@doanbh For just single face, use map instead of multimap.
https://github.com/Rajatkalsotra/Face-Recognition-Flutter/blob/5ab50add873bb9ea20c031fe523ba81cee6a0725/lib/main.dart#L93

@doanbh As far as the performance is concerned, sending real-time images to server would make it slower and inference time of mobile face net model is quite low. The actual lag is due to the processes before it.

@Rajatkalsotra Many thank you for your help. In your opinion, it seems that using the face net model handled under the app is better than sending it to the server. But it cannot detect face anti-spoofing. Do you have any way?

@doanbh You're welcome. For anti-spoofing you can perform liveness detection by training your classification model and then convert it into tflite.

Can you tell me more specifically what should I do? I'm having a problem, if the user uses a photo for facial recognition, it's also being accepted.

@doanbh Train a simple classfication model (real /fake image) and convert it into tflite. Refer the following link:
https://www.pyimagesearch.com/2019/03/11/liveness-detection-with-opencv/

@doanbh For just single face, use map instead of multimap.
https://github.com/Rajatkalsotra/Face-Recognition-Flutter/blob/5ab50add873bb9ea20c031fe523ba81cee6a0725/lib/main.dart#L93

Many thank, but I use Map, it's not working. I want to identify only one person at a time. Let me know how?


Message status : "Unread" and "seen"

Does the package track message status like unread or seen? I think the demo chat by the Firebase team has some code for that https://firechat.firebaseapp.com/

In the documentation we provide an example for delivered status, but we didn't add the seen example because it requires a paid plan. We for sure want to add this in the future, it should be done inside cloud functions and may or may not require some additional events from this package. Right now we have some other priorities, but I will leave this one opened in case anyone will want to open a PR.

In the documentation we provide an example for delivered status, but we didn't add the seen example because it requires a paid plan. We for sure want to add this in the future, it should be done inside cloud functions and may or may not require some additional events from this package. Right now we have some other priorities, but I will leave this one opened in case anyone will want to open a PR.

Thank you so much for this package, tested the use of the delivered status, and i would like to add that the latency to get the delivered status and especially the last message isn't good. I don't know if I'm the only one with this problem but i was thinking if the plugin could could embed the delivered status instead of cloud firestore to trigger the changes, it could be done from plugin with the frontend in communication with firestore

can you elaborate a bit more please, I don't think I follow :( how frontend will set the delivered status if we are not sure it was actually delivered until server responds it was?

My solution to update "seen" status:

Store users online status every time they enter the room.
Update "delivered" messages by calling a cloud function or update directly from client.
Update the cloud function in example - lookup the user online status in Step 1 and check whether its necessary to update message status from "delivered" to "seen".

I'm not sure it's good way to do so, let me know if you have any better solutions.

Sounds good, can you share this cloud function?
Alternatively, if we store the last access time of the user, and the last message time to the user in the chat room meta data, we can compare if last access time by user was before the last message time to the user, and in that case the user has unread message(s). Got this idea from stackoverflow here https://stackoverflow.com/questions/22623879/managing-unread-messages-in-firebase-chat/64674829#comment57522035_22645372


when passing argument in Event chain, argument type is converted. (int->str)

Describe the bug
"int" type argument is converted to "str"in Event chain (but value is same when re-convert to int type)
TypeError: list indices must be integers or slices, not str
To Reproduce
I have written code while refer to https://pynecone.io/docs/state/events

App State

class State(pc.State):
    is_expanded_list: list[bool] = [False for _ in range(100)]

    def chain_b(self, index: int) -> None:
        print(index, type(index))
        self.is_expanded_list[index] = not self.is_expanded_list[index]

    def chain_a(self, index: int):
        return self.chain_b(index)

in a component keyword
on_click=lambda x: State.chain_a(current_index)

Expected behavior
arguments type must not be converted to other type during Event chain.
Screenshots

Specifics (please complete the following information):

Python Version: 3.11.0
Pynecone Version: pynecone-io = "0.1.13"
OS: WSL Ubuntu 22.04 distribution in Windows 11 Version 21H2 (OS Build 22000. 1455)
Browser (Optional): Edge Browser
Shell: Fish shell
Node Version: 18.12.1

Additional context
Add any other context about the problem here.

Seem like a similar issue to this https://github.com/pynecone-io/pynecone/issues/336


How to become member of node js community committee ?

Hi I'm working with node js from 2017 and I'm open source Contributor I'm looking forward to join node js community committee ? how can i join node js organization on github ?

The current process to becoming a member of the CommComm is by non-trivial participation in our initiatives: https://github.com/nodejs/community-committee#strategic-initiatives

I'm interested to become champion in how i got into node .

If you want to participate in work of the Community Committee, please see the above link and participate in an initiative 👍

Ok Thanks

Going to close this since it's been resolved with a proper answer.


Always pull the container image

Yes, we could query the registry client and compare the digest of the local manifest and the remote manifest. But that is more complicated than just letting Docker do that for us. It's also relatively quick (compared with overall Dependabot execution) when no newer image is available:
Fresh pull:
$ time docker pull docker.io/library/alpine:latest
latest: Pulling from library/alpine
4abcf2066143: Pull complete
Digest: sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
Status: Downloaded newer image for alpine:latest
docker.io/library/alpine:latest

________________________________________________________
Executed in    2.10 secs      fish           external
   usr time    1.21 millis    0.00 micros    1.21 millis
   sys time   16.02 millis  203.00 micros   15.82 millis

Cached pull:
 time docker pull docker.io/library/alpine:latest
latest: Pulling from library/alpine
Digest: sha256:c5b1261d6d3e43071626931fc004f70149baeba2c8ec672bd4f27761f8e1ad6b
Status: Image is up to date for alpine:latest
docker.io/library/alpine:latest

________________________________________________________
Executed in  894.23 millis    fish           external
   usr time    1.22 millis    0.00 micros    1.22 millis
   sys time   14.08 millis  240.00 micros   13.84 millis

I just tested this locally, since I build local ARM versions I'd have to remember to add --pull=false to test things I am building locally. Is it as this point we add a dependabot config command to set ~/.dependabot configurable defaults?

No, that's going to add too much complexity IMO. I'll have to do:

Exists locally
Doesn't exist locally

Exists remotely
Compare digest
Pull

Doesn't exist remotely
Continue with local image
🤷


dropOnPage not implemented?

🐜 If you've found a bug, please use the template below to report it.
I am initialising filepond with dropOnPage: true but it doesn't seem to do anything. Is this an oversight?

You need to set dropOnElement to false for it to work.

That's interesting, I'll add it to my use case.
dropOnPage is mostly there to catch everything dropped and prevent the browser from opening dropped images, which is almost always not what you want :-)


how to override controller name

this article shows how to override action name

You can override the action name by using the ActionName attribute.

but I didn't find any way to override the controller name.
please.

@QJesus  -Is this what you mean?
// Want the route to be /something but the controller to be name PublicController
[Route("something")]
public class PublicController : Controller

NO. I want an attribute like that override-controller-name-in-asp-net-core
will it be in the framework?

This issue is being closed because it has not been updated in 3 months.
We apologize if this causes any inconvenience. We ask that if you are still encountering this issue, please log a new issue with updated information and we will investigate.


docs: design documents and flow diagram

Hello,
This is a request not a issue. Can you please share the design doc /internals for this library. How the calls are hooked and how to learn to create this kind of library.
Thanks for the help.
Thanks.

Hey @loneshark99 I'd be happy to add that. It's of course going to be a little low on the priority list but I think it's reasonable to have to help encourage contributions.
I'm also in the middle of a big refactor to v0.3.0 to support streaming (#3) so I'll definitely need to wait for that to be released since everything would change so much from now to then.
Are you more interested in design docs for how this particular package works or how you could create a pytest plugin for any API such as Salesforce, Notion, Slack, etc.?

Hi @mharrisb1,
Thanks for the reply, Yes, I was just wondering the design of this particular package. Just some high level diagram with how you hook into other frameworks etc, would be very helpful. I am more from c# background and trying to get deeper into python development.
Thanks for sharing this package.


fix(pointcloud_preprocessor): fix output intensity value of  ring outlier filter

Description
Corrected the output intensity of ring-outlier-filter since its current output seems always zero like value.

Related links

Tests performed
I checked the output intensity is reasonable value.
(before)

(after: obviously intensity is included)

I checked the output pointcloud position is exactly the same in the before and after, but only the intensity is different.
(True in image below means "same", False means "not same")

Also I checked the processing time.
The average time is almost the same; 10.88 ms (before) and  10.95 ms (after) in my desktop PC.
The graph below shows the processing time for before and after applying this PR.

Notes for reviewers

Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

Is is the same problem than for pcl::PointXYZI?
https://pcl.readthedocs.io/projects/tutorials/en/latest/adding_custom_ptype.html#id3
Where the XYZ is stored on 4 floats instead of 3, so the XYZ data is SSE-aligned. As describe, operation such as dot product can leverage SSE optimization by setting the 4-th value to 0. Like this:
float dot(const T& p1, const T& p2) {
  p2.data[0] = 0;
  // optimized with SIMD instructions
  float sum0 = p1.data[0] * p2.data[0];
  float sum1 = p1.data[1] * p2.data[1];
  float sum2 = p1.data[2] * p2.data[2];
  float sum3 = p1.data[3] * p2.data[3]; // must be 0
  float res = sum0 + sum1 + sum2 + sum3;
  return res;
}

What is the state of this PR?
Just to clarify the issue, the root cause is that velodyne_convert_node output data layout is incompatible with autoware_point_types::PointXYZIRADRT. It seems that velodyne_convert_node use the same memory layout than PCL, which adds a 4 byte padding after xyz fields (see my previous comment).
struct PointXYZIRADRT
{
  float x{0.0F};           // offset: 0
  float y{0.0F};           // offset: 4
  float z{0.0F};           // offset: 8
  float intensity{0.0F};   // offset: 12
  uint16_t ring{0U};       // offset: 16
  float azimuth{0.0F};     // offset: 20
  float distance{0.0F};    // offset: 24
  uint8_t return_type{0U}; // offset: 28
  double time_stamp{0.0};  // offset: 32
}                          // sizeof(PointXYZIRADRT) == 40

We can see the extra padding here:
$ ros2 topic echo /sensing/lidar/top/pointcloud_raw --field fields
[sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=16, datatype=7, count=1), <-- jump here
sensor_msgs.msg.PointField(name='ring', offset=20, datatype=4, count=1)]

On the extended cloud, this cause paddings because of double alignment requirements for time_stamp field:
$ ros2 topic echo /sensing/lidar/top/pointcloud_raw_ex --field fields
[sensor_msgs.msg.PointField(name='x', offset=0, datatype=7, count=1),
sensor_msgs.msg.PointField(name='y', offset=4, datatype=7, count=1),
sensor_msgs.msg.PointField(name='z', offset=8, datatype=7, count=1),
sensor_msgs.msg.PointField(name='intensity', offset=16, datatype=7, count=1), <-- jump here
sensor_msgs.msg.PointField(name='ring', offset=20, datatype=4, count=1),
sensor_msgs.msg.PointField(name='azimuth', offset=24, datatype=7, count=1),
sensor_msgs.msg.PointField(name='distance', offset=28, datatype=7, count=1),
sensor_msgs.msg.PointField(name='return_type', offset=32, datatype=2, count=1),
sensor_msgs.msg.PointField(name='time_stamp', offset=40, datatype=8, count=1)] <-- second jump here

Because of the incompatible data layout, it is not possible to do things like:
PointXYZIRADRT p;
// extract point i
std::memcpy(&p, &input->data[i * input->point_step], sizeof(PointXYZIRADRT));

(Without this PR you can still do so but you will just end up with garbage data past the XYZ fields.)

@VRichardJP I'm sorry I haven't been able to handle this PR due to a lack of time.
I think the root cause is that this filter is forcibly casting from PointXYZIRADRT to PointXYZIR without reading the PointField in the header.
Since autoware_point_types/types.hpp does not guarantee the memory alignment/order of the member (xyzir...) in the pointcloud2, it should read PointField and parse the offset of each variables.
Even this PR does not guarantee the the alignment of variables but I believe that adding padding, as done in this PR, can resolve the issue because this memory layout is commonly observed in many environments.

@VRichardJP
We recently are re-designing the pointcloud fields in autoware and discussing here.
Once it's finalized, I think all pointcloud nodes must be modified to follow this design.
When we do this, you may propose your "pointcloud formatter" to be in ther first position of the pipeline. Or maybe we don't need formatter anymore? :thinking:

I'll review later🙏


📚 Documentation: The "Getting Started" page has an invalid npm install

💭 Description
npm install @appwrite.io/pink doesn't work. It yields the following error:
+ npm install @appwrite.io/pink
+             ~~~~~~~~~
The splatting operator '@' cannot be used to reference variables in an expression. '@appwrite' can be used only as an argument to a
command. To reference variables in an expression use '$appwrite'.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : SplattingNotPermitted

This is also true of the repository's readme. Fortunately, all you need to do to fix this is enclose the package name in quotes as follows: npm install<EMAIL_ADDRESS>I'll make a pull request with this change for your convenience.
👀 Have you spent some time to check if this issue has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

This is curious, as I've tested it on different shells (fish, bash, etc.) and it works. Would you mind sharing your shell and/or Operating System?
Regardless, the quoted version also works, so a PR is more than welcome :smile:


DeveloperGuide: use labeled list for glossary

The glossary uses literal blocks for formatting definitions, which looks
strange because literal blocks are usually used for preformatted text
such as source code.

Instead, let's use a labeled list, which has a formatting that is more
in line with a glossary definition list.

Convert the paragraph anchors into inline anchors[1], so that the items
are joined into one single labeled list with two items, rather than
being chopped into two separate labeled lists with one item each.

[1] See http://asciidoctor.org/docs/user-manual/#anchordef for the
    difference between a paragraph anchor and an inline anchor.

@damithc

I assume the links to items in this list from elsewhere in the document are still working?

Yup I've tested it.


Supercharging search

Currently have super slow search because we are hitting cold-cache on top of SubSquid.
To prevent this we will be looking make slick experiment with CF-D1 & CF-workers to speedup this for users experience caching collection name and ipfs cid and for items name, which collection belong and ipfs cid
Wait till we get endpoint for this
https://user-images.githubusercontent.com/5887929/232612567-bcb8ca72-6b20-449a-9c3e-13a4d0727a5f.mov
Ref

https://github.com/kodadot/workers/issues/76

Worker up for review

https://github.com/kodadot/workers/pull/81

Continue to

https://github.com/kodadot/nft-gallery/issues/5795


Too many sequences in header of input sam file

When the number of sequences inside SAM/BAM file is larger than 32768 samblaster will exit on the following location in the source(samblaster.cpp):
if (count >= (1 << 15))
        {
            fatalError("samblaster: Too many sequences in header of input sam file.  Exiting.\n");
        }

How can this error be caught when it is used piping with bwa mem and sambamba view/sort? In this scenario execution finishes fine(without an error), while the output BAM file is corrupted (contains 1.5MB, while input fastq files are ~50GB).

From what environment are you calling samblaster with the pipes? From bash? From within Python? It seems that some process in the piped list is ignoring SIGPIPE. This is a known problem in older versions of Python.
Can you send the entire piped command?
Thanks,
Greg

Hi Greg!
No python involved, it is called from bash command line.
It ended in ~2 minutes. True, there is a message on stderr, but the execution finished successfully.
Here is the command line:
/opt/bwa-0.7.13/bwa mem -M -R '@RG	ID:1' -t 30 reference.fa 001.fastq.gz 002.fastq.gz | **/opt/samblaster/samblaster -r -i /dev/stdin -o /dev/stdout **| /opt/sambamba_v0.6.0 view -t 8 -f bam -l 0 -S /dev/stdin | /opt/sambamba_v0.6.0 sort -t 8 -m 10GiB --tmpdir ./ -o out.bam -l 5 /dev/stdin
Thanks in advance,
Vladimir

So, what were you hoping for. Did the entire pipe not return an error, such
as non-zero error code? Is that what you need?
Thanks,
Greg
On Wed, Mar 30, 2016 at 5:32 AM, vladimirkovacevic<EMAIL_ADDRESS>
wrote:

Hi Greg!
No python involved, it is called from bash command line.
It ended in ~2 minutes. True, there is a message on stderr, but the
execution finished successfully.
Here is the command line:
/opt/bwa-0.7.13/bwa mem -M -R '@RG https://github.com/RG ID:1' -t 30
reference.fa 001.fastq.gz 002.fastq.gz | **/opt/samblaster/samblaster -r
-i /dev/stdin -o /dev/stdout **| /opt/sambamba_v0.6.0 view -t 8 -f bam -l
0 -S /dev/stdin | /opt/sambamba_v0.6.0 sort -t 8 -m 10GiB --tmpdir ./ -o
out.bam -l 5 /dev/stdin
Thanks in advance,
Vladimir
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub
https://github.com/GregoryFaust/samblaster/issues/19#issuecomment-203345299

Yes, I need non-zero error code from the entire pipe or last tool in the pipe (sambamba), which did not receive any data from its stdin, so it should throw an error. As I said, this issue is not related to samblaster, it is for sambamba. Thanks for the answers and clarification.

Actually, sambamba will receive all of the sam header up until the number of sequences goes over the samblaster limit. So, it will have what appears to be a valid sam file as input, one with lots of header information but no reads. BWA, on the other hand, should notice that its writes are failing and exit with a non-zero code. However, the following man page seems to indicate that the overall error code for a piped command is the return code of the last command, or sambamba in this case, which as indicated above isn't really in an error condition. http://www.tldp.org/LDP/abs/html/exit-status.html

Greg, just one notice for you. Currently there is the FDA Challenge currently open: https://precision.fda.gov/challenges/consistency
They are searching for the best pipeline to process offered data (fastq) and at the end of the contest they will publish it. Both samples they offer for processing contain more sequences in the header than samblaster support. This will probably eliminate samblaster from being present in this pipeline, which is a pity because it is a great tool! Just wanted to let you know so you maybe might consider in future to add support for more sequences, if possible.
Thanks,
Vladimir

The challenge states to use GRCh37. What version of GRCh37 are you using
that has more than 32K contigs?
On Mon, Apr 4, 2016 at 5:15 AM, vladimirkovacevic<EMAIL_ADDRESS>wrote:

Greg, just one notice for you. Currently there is the FDA Challenge
currently open: https://precision.fda.gov/challenges/consistency
They are searching for the best pipeline to process offered data (fastq)
and at the end of the contest they will publish it. Both samples they offer
for processing contain more sequences in the header than samblaster
support. This will probably eliminate samblaster from being present in this
pipeline, which is a pity because it is a great tool! Just wanted to let
you know so you maybe might consider in future to add support for more
sequences, if possible.
Thanks,
Vladimir
—
You are receiving this because you modified the open/close state.
Reply to this email directly or view it on GitHub
https://github.com/GregoryFaust/samblaster/issues/19#issuecomment-205206682


[Bug]: Technology Platform field breaks on reading if it contains a (

Contact Details
No response
What happened?
Create assay with the following technology type:

Write to xlsx, all good:

Read again in Swate (breaks):

What did you expect?
No response
Host
Applies to All
Host Details
ARCitect 0.0.49 and Standalone SWATE
Swate version
recent

Found the error, can be moved to ARCtrl.
The problem is, that the "Technology Platform" is a single string field in the isa file. To depict this as an ontology term we do some parsing magic (including ()) which breaks for terms containing ()

Unfortunately still broken

Ah now it works!
Sry apparently the version went live just now


Search Api not working properly

I've just tried to use search feature and it seems it doesn't work as expected for the object records.
According to the docs :

Let's say the field's value for a cell is an object:
{ ... , fullName: {firstName: 'some-first-name', lastName: 'some-last-name'} },
Its getValue function for displaying the first and last name as a full name, would be:
getValue: ({value, column}) => value.firstName + ' ' + value.lastName
The returned value will be used for searching, sorting etc...

This seem to Work half way.
I have this object:
{
	name: 'abc'
	number: 123
	property: {
		abc: 'aaaa'
	}
}

	  // my column definition for the property.abc getter
   	  getProperty = (val) => val.abc
	   field: 'property',
      getValue: ({ value }) => getProperty(value),

Search will work fine for the name number values but for the property.abc it will work only for the first 2 characters and then it doesn't work further unless I flatten the object so all properties are on one level and the value is accessed via direct property name instead of getValue function

In order to use the abc property it should be:
getValue: ({ value: myObject }) => myObject.property.abc,

It doesn't work?

@NadavShaar  I've double checked and yes this works and my above example also works. Problem show up when there are at least 2 field props with same value.
for ex.
{
	name: 'abc'
	number: 123
	property: {
		first: 'aaaa',
		second: 'zzzzz'
	}
}

const columns = [
  {
    id: 1,
    label: 'First',
    field: 'property',
    getValue: ({ value }) => value.first,
  },
  {
    id: 2,
    label: 'Second',
    field: 'property',
    getValue: ({ value }) => value.second,
  },
];

I expected that if I don't pass the field property it should return the whole row object in the getValue so I could map it but it forces me to define two columns with same field: 'property' to access first and second and this breaks the search because there are two columns with field: 'property'

https://user-images.githubusercontent.com/9383657/204028626-0e1ec068-f268-4dd8-9cff-0ef6a8a4cacc.mov
columns={[
          generateColumn({
            id: 1,
            label: 'Name',
            field: 'name',
          }),
          generateColumn({
            id: 2,
            label: 'Number',
            field: 'number',
          }),
          generateColumn({
            id: 'first',
            label: 'First',
            field: 'property',
            getValue: ({ value }) => value.first,
          }),
          generateColumn({
            id: 'second',
            label: 'Second',
            field: 'property',
            getValue: ({ value }) => value.second,
          }),
        ]}
        rows={[
          {
            name: 'test',
            number: 1111,
            property: {
              first: 'bbbb',
              second: 'ggggg',
            },
          },
          {
            name: 'abc',
            number: 123,
            property: {
              first: 'kkkkk',
              second: 'zzzzzzz',
            },
          },
        ]}
        ```

Can you please create a live example?

@NadavShaar https://codesandbox.io/s/react-grid-table-usage-forked-p6j20m?file=/src/App.js
Try searching by X or Y values and see search is broken where it works fine for other column search values

Thanks, will look into it...

Fixed in V1.1.2


feat: Add Details Drawer to Resources Cards

Description
Add a details drawer to show most of the information about the resource

Very cool! Thanks. I just tested it, works perfectly. Merging.


Reset Value?

Is there a way to reset the value of the slider?  There seems to be an issue if I'm dynamically swapping out the min max values - see https://github.com/timarney/react-slider
Roughly this:
click:function(val){
        if(val === 'night'){
           this.setState({min:1,max:200});
        }else{
            this.setState({min:2000,max:4000});
        }
}

slider = Demo({
            min:this.state.min,
            max:this.state.max,
            defaultValue: [this.state.min],
            orientation: 'horizontal',
            withBars: true
            });

The min and max update but the value is messed up until you interact with the slider again... in which case the slider corrects itself.
If there was a way to reset to the default value I'm thinking that would work.

I modified my setup to use the slider as a controlled component ... that seems to do the trick.

This is intended behaviour. However there might be problems with controlled components as well. Feel free to open a new issue if you run into any.
btw: in your example you are not passing this.state.max to the component


Doxygen cpp nits

fixes some doxygen-unrecognized comments so far.
also misc fixes to grpc/docs and channel args
the last commit here tweaks the c header comments too to show up in doxygen, but PLMK if we don't want those - wasn't sure.
PTAL I think this is ready now

No significant performance differences

No significant performance differences

This PR is certainly an improvement, but we're still missing a lot of documentation that we need.  I've added some comments pointing out some of what we're missing, but the general rule is that we need to fully document anything that end users will directly use in their application code.
Please let me know if you have any questions about any of this.  Thanks!

Reviewed 25 of 28 files at r1, 14 of 15 files at r2, 33 of 33 files at r3.
Review status: all files reviewed at latest revision, 23 unresolved discussions.

doc/service_config.md, line 134 at r3 (raw file):

# Architecture

A service config is associated with a server name.  The [nameresolver](naming.md)

"name resolver" is two words, not one.  Please revert that change.

include/grpc++/health_check_service_interface.h, line 63 at r3 (raw file):

void EnableDefaultHealthCheckService(bool enable);

/// NOT thread safe.

Please add:
/// Returns whether the default health checking service is enabled.

include/grpc++/resource_quota.h, line 50 at r3 (raw file):

class ResourceQuota final : private GrpcLibraryCodegen {
 public:
  // \param name - a unique name for this ResourceQuota.

Need an additional slash here.

include/grpc++/generic/generic_stub.h, line 53 at r3 (raw file):

      : channel_(channel) {}

  /// begin a call to a named method

We need descriptions of individual methods to be much more comprehensive.  What are each of the parameters?  What are the semantics of the call?  What are the failure modes, and how does the application have to handle them?
Here's an example (I don't know if the description I'm giving here is actually correct -- please find out and document it accordingly):
/// Begins a call to the method named \a method using \a context.
/// When the call is ready, \a tag will be delivered to \a cq.
/// The return value may not be used until the tag is delivered to
/// the completion queue with ok==true.

include/grpc++/impl/server_builder_plugin.h, line 46 at r3 (raw file):

class ChannelArguments;

class ServerBuilderPlugin {

Please add a comment describing what this class represents and how it is expected to be used.

include/grpc++/impl/codegen/async_stream.h, line 144 at r3 (raw file):

template <class R>
class ClientAsyncReader final : public ClientAsyncReaderInterface<R> {

Please add a comment describing what this class is used for.  For example:
/// Used in the client async API for server-side streaming RPCs.
Same thing for all non-abstract classes in this file.

include/grpc++/impl/codegen/async_stream.h, line 158 at r3 (raw file):

  }

  /// always allocated against a call arena, no memory free required

It looks like Doxygen isn't generating documentation for the delete operator at all, so it's probably not necessary to add the extra slash for these functions.
As a general rule, what we're really after here is improving documentation that is useful to users.  Users probably don't need to care about the details of how we're doing memory allocation; what they do need to care about is how they are expected to use the class, what the failure modes are, etc.

include/grpc++/impl/codegen/async_unary_call.h, line 51 at r3 (raw file):

template <class R>
class ClientAsyncResponseReaderInterface {

Need documentation for this class and its methods, similar to what exists in async_stream.h.
As an example, compare what Doxygen currently shows for the ClientAsyncResponseReader class:
http://www.grpc.io/grpc/cpp/classgrpc_1_1_client_async_response_reader.html
to what it shows for the ClientAsyncWriter class:
http://www.grpc.io/grpc/cpp/classgrpc_1_1_client_async_writer.html

include/grpc++/impl/codegen/async_unary_call.h, line 59 at r3 (raw file):

template <class R>
class ClientAsyncResponseReader final

Please document what this class is for.

include/grpc++/impl/codegen/async_unary_call.h, line 74 at r3 (raw file):

  }

  /// always allocated against a call arena, no memory free required

Extra slash not needed for delete method.

include/grpc++/impl/codegen/async_unary_call.h, line 127 at r3 (raw file):

template <class W>
class ServerAsyncResponseWriter final : public ServerAsyncStreamingInterface {

Please document what this class is for.

include/grpc++/impl/codegen/client_context.h, line 154 at r3 (raw file):

}  // namespace testing

/// Gives access to client side RPC configuration.

Need a much more detailed description here.  For example, this should describe the fact that there needs to be one ClientContext per RPC and that ClientContext objects cannot be reused.  It should also give some examples of the sorts of things that are accessible via the ClientContext.

include/grpc++/impl/codegen/client_context.h, line 226 at r3 (raw file):

  }

  /// EXPERIMENTAL: Set this request to be idempotent

What is this used for?  What does it mean for a request to be idempotent?

include/grpc++/impl/codegen/client_context.h, line 229 at r3 (raw file):

  void set_idempotent(bool idempotent) { idempotent_ = idempotent; }

  /// EXPERIMENTAL: Set this request to be cacheable

Same here.

include/grpc++/impl/codegen/client_context.h, line 232 at r3 (raw file):

  void set_cacheable(bool cacheable) { cacheable_ = cacheable; }

  /// EXPERIMENTAL: Trigger wait-for-ready or not on this request

What does wait_for_ready do?

include/grpc++/impl/codegen/server_context.h, line 94 at r3 (raw file):

}  // namespace testing

/// Interface of server side rpc context.

Same comments as for ClientContext.

include/grpc++/impl/codegen/server_context.h, line 100 at r3 (raw file):

  ~ServerContext();

  std::chrono::system_clock::time_point deadline() const {

Please document every public method in this class.

include/grpc++/impl/codegen/server_context.h, line 109 at r3 (raw file):

  void AddTrailingMetadata(const grpc::string& key, const grpc::string& value);

  /// IsCancelled is always safe to call when using sync API

Please put a period at the end of each complete sentence.

include/grpc++/impl/codegen/server_context.h, line 114 at r3 (raw file):

  bool IsCancelled() const;

  // Cancel the Call from the server. This is a best-effort API and depending on

Each of the lines in this comment need an additional slash.

include/grpc++/impl/codegen/server_context.h, line 158 at r3 (raw file):

  }

  // Return the peer uri in a string.

Need additional slash.

include/grpc++/impl/codegen/server_context.h, line 166 at r3 (raw file):

  const struct census_context* census_context() const;

  // Async only. Has to be called before the rpc starts.

Need additional slash.

include/grpc++/impl/codegen/status_code_enum.h, line 144 at r3 (raw file):

  /// if the call is non-idempotent.
  ///
  ///

Please remove the extra blank line here.

include/grpc++/impl/codegen/sync_stream.h, line 152 at r3 (raw file):

template <class R>
class ClientReader final : public ClientReaderInterface<R> {

Please document all non-abstract classes in this file.

Comments from Reviewable

No significant performance differences

No significant performance differences

No significant performance differences

Haven't finished completely cleaning up yet but I'm not planning any more content changes.
I think the main content of this ok for another look.
A note on the header comments especially in the async_streams.h file:
There were a lot of (especially Finish) methods that didn't seem to have an umbrella interface.
I wanted to avoid having one class to refer to a sibling, so currently there's a good amount of duplicate documentation there.

The content here looks fantastic!  Thank you for doing this!
The vast majority of my comments are minor grammar or formatting issues.
I'm going to add Yang as a reviewer, to make sure that I haven't missed anything here.

Reviewed 16 of 17 files at r4.
Review status: 72 of 73 files reviewed at latest revision, 45 unresolved discussions, some commit checks failed.

include/grpc/slice.h, line 170 at r4 (raw file):

/** return the index of the first occurance of \a needle in \a haystack, or -1
 * if
 * it's not found */

Please merge this with the previous line.

include/grpc++/generic/generic_stub.h, line 53 at r4 (raw file):

      : channel_(channel) {}

  /// Begin a call to a named method \a method usign \a context.

s/usign/using/

include/grpc++/generic/generic_stub.h, line 54 at r4 (raw file):

  /// Begin a call to a named method \a method usign \a context.
  /// A tag \a tag will be deliever to \a cq when the call has been started

s/deliever/delivered/

include/grpc++/generic/generic_stub.h, line 57 at r4 (raw file):

  /// (i.e, initial metadata has been sent).
  /// The return value only indicates whether or not registration of the call
  /// succeeded (i.e. the call won't proceed if the return value is 0).

s/0/nullptr/

include/grpc++/impl/server_builder_plugin.h, line 47 at r4 (raw file):

/// A builder class for the creation and startup of \a grpc::Server instances.
/// This is interface is meant for internal usage only. Implementations of this

s/This is/This/

include/grpc++/impl/codegen/async_stream.h, line 68 at r4 (raw file):

  ///   * the client side has no more message to send (this can be declared implicitly
  ///     by calling this method, or explicitly through an earlier call to \a
  ///     WritesDone.

Missing a trailing ).

include/grpc++/impl/codegen/async_stream.h, line 68 at r4 (raw file):

  ///   * the client side has no more message to send (this can be declared implicitly
  ///     by calling this method, or explicitly through an earlier call to \a
  ///     WritesDone.

Maybe change this to refer to ClientAsyncWriterInterface::WritesDone, so that it's clear which method we're referring to?

include/grpc++/impl/codegen/async_stream.h, line 71 at r4 (raw file):

  ///   * there are no more messages to be received from the server (which can
  ///     be known implicitly by the calling code, or known explicitly from an
  ///     earlier call to \a Read that yielded a failed result

Similarly, I suggest changing this to refer to AsyncReaderInterface::Read().

include/grpc++/impl/codegen/async_stream.h, line 192 at r4 (raw file):

  }

  /// See the \a ClientAsyncStreamingInterface.ReadInitialMetadata method for

Prior to this change, it looks like Doxygen was automatically propagating the description from the base class to the subclass:
http://www.grpc.io/grpc/cpp/classgrpc_1_1_client_async_reader.html#a66e76c15ee94cf0c2892def9041210d1
Do you know what it will do if you add a description here?  Will this description replace the one from the base class, or will it be appended to the one from the base class?  If the former, then I wonder if it would be better to just put all of the documentation in the base classes and not override it in the subclasses, so that the user doesn't have to follow another link to see the description of the method.
Same thing for all override methods.

include/grpc++/impl/codegen/async_stream.h, line 267 at r4 (raw file):

};

/// Async API to on the client side for doing client-streaming RPCs,

s/to //

include/grpc++/impl/codegen/async_stream.h, line 390 at r4 (raw file):

/// Async client-side interface for bi-directional streaming,
/// where the client-to-server message stream has messages of type \a W,
/// abnd the server-to-client message stream has messages of type \a R.

s/abnd/and/

include/grpc++/impl/codegen/async_stream.h, line 537 at r4 (raw file):

  /// It is appropriate to call this method when:
  ///   * all messages from the client have been received (either known
  ///     implictly, or explicitly because a previous \a Read operation

As above, let's refer to AsyncReaderInterface::Read() here.

include/grpc++/impl/codegen/async_stream.h, line 558 at r4 (raw file):

  /// any point that the server would like to "fail" the call (though note
  /// this shouldn't be called concurrently with any other "sending" call, like
  /// \a Write.

Let's refer to AsyncWriterInterface::Write() here.

include/grpc++/impl/codegen/async_stream.h, line 558 at r4 (raw file):

  /// any point that the server would like to "fail" the call (though note
  /// this shouldn't be called concurrently with any other "sending" call, like
  /// \a Write.

Need a trailing ).

include/grpc++/impl/codegen/async_stream.h, line 562 at r4 (raw file):

  /// This operation will end when the server has finished sending out initial metadata
  /// (if not sent already), and status, or if some failure
  /// occurred when trying to do so.

The line wrapping is a little off here.

include/grpc++/impl/codegen/async_stream.h, line 681 at r4 (raw file):

  /// It is appropriate to call this method when either:
  ///   * all messages from the client have been received (either known
  ///     implictly, or explicitly because a previous \a Read operation

AsyncReaderInterface::Read()

include/grpc++/impl/codegen/async_stream.h, line 687 at r4 (raw file):

  ///
  /// This operation will end when the server has finished sending out initial metadata
  /// (if not sent already), repsonse message, and status, or if some failure

s/repsonse/response/

include/grpc++/impl/codegen/async_stream.h, line 749 at r4 (raw file):

  }

  /// See the \a AsyncWriterInterface.Write(const W &msg, WriteOptions options, void *tag) method for semantics.

Long line.

include/grpc++/impl/codegen/async_stream.h, line 830 at r4 (raw file):

  /// It is appropriate to call this method when either:
  ///   * all messages from the client have been received (either known
  ///     implictly, or explicitly because a previous \a Read operation

AsyncReaderInterface::Read()

include/grpc++/impl/codegen/async_stream.h, line 836 at r4 (raw file):

  ///
  /// This operation will end when the server has finished sending out initial metadata
  /// (if not sent already), repsonse message, and status, or if some failure

s/repsonse/response/

include/grpc++/impl/codegen/async_stream.h, line 907 at r4 (raw file):

  }

  /// See the \a AsyncWriterInterface.Write(const W& msg, WriteOptions options, void* tag) method for semantics.

Long line.

include/grpc++/impl/codegen/async_unary_call.h, line 51 at r3 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Need documentation for this class and its methods, similar to what exists in async_stream.h.
As an example, compare what Doxygen currently shows for the ClientAsyncResponseReader class:
http://www.grpc.io/grpc/cpp/classgrpc_1_1_client_async_response_reader.html
to what it shows for the ClientAsyncWriter class:
http://www.grpc.io/grpc/cpp/classgrpc_1_1_client_async_writer.html

Doesn't look like this was done.

include/grpc++/impl/codegen/client_context.h, line 157 at r4 (raw file):

///
/// - Add custom metadata key-value pairs that will propagated to the server
/// side.

Please either move this word to the end of the previous line or indent it two spaces.

include/grpc++/impl/codegen/client_context.h, line 195 at r4 (raw file):

  /// \param meta_key The metadata key. If \a meta_value is binary data, it must
  /// end in "-bin".
  /// \param meta_value The metadata value. If its value is binary, it must be

It's not the caller's responsibility to base64-encode it; we do that for them automatically if the key suffix is -bin.  (And we might wind up using a raw binary encoding if the HTTP2 settings allow it.)  So I don't think we need to say anything different than what we already said for the meta_key parameter.

include/grpc++/impl/codegen/client_context.h, line 246 at r4 (raw file):

  void set_idempotent(bool idempotent) { idempotent_ = idempotent; }

  /// EXPERIMENTAL: Set this request to be cacheable

Please add trailing ..

include/grpc++/impl/codegen/client_context.h, line 247 at r4 (raw file):

  /// EXPERIMENTAL: Set this request to be cacheable
  /// If set, grpc is free the GET verb for sending the request,

I assume you meant "free to use the"?

include/grpc++/impl/codegen/client_context.h, line 247 at r4 (raw file):

  /// EXPERIMENTAL: Set this request to be cacheable
  /// If set, grpc is free the GET verb for sending the request,

s/GET/HTTP GET/

include/grpc++/impl/codegen/client_context.h, line 251 at r4 (raw file):

  void set_cacheable(bool cacheable) { cacheable_ = cacheable; }

  /// EXPERIMENTAL: Trigger wait-for-ready or not on this request

Please add a trailing ..

include/grpc++/impl/codegen/client_context.h, line 252 at r4 (raw file):

  /// EXPERIMENTAL: Trigger wait-for-ready or not on this request
  /// See grpc/doc/wait-for-ready.md.

Will this be automatically linkified by Doxygen?  If not, let's specify a full URL, so that the reader knows where to look.

include/grpc++/impl/codegen/client_context.h, line 253 at r4 (raw file):

  /// EXPERIMENTAL: Trigger wait-for-ready or not on this request
  /// See grpc/doc/wait-for-ready.md.
  /// If set, if an RPC made when a channel's connectivity state is

s/RPC made/RPC is made/

include/grpc++/impl/codegen/server_context.h, line 99 at r4 (raw file):

///   to the client side.
/// - Control call settings such as compression and authentication.
/// - Access Initial metadata coming from the client.

s/Initial //

include/grpc++/impl/codegen/server_context.h, line 132 at r4 (raw file):

  /// \param meta_key The metadata key. If \a meta_value is binary data, it must
  /// end in "-bin".
  /// \param meta_value The metadata value. If its value is binary, it must be

It's not the caller's responsibility to base64-encode it; we do that for them automatically if the key suffix is -bin.  (And we might wind up using a raw binary encoding if the HTTP2 settings allow it.)  So I don't think we need to say anything different than what we already said for the meta_key parameter.

include/grpc++/impl/codegen/server_context.h, line 147 at r4 (raw file):

  /// \param meta_key The metadata key. If \a meta_value is binary data, it must
  /// end in "-bin".
  /// \param meta_value The metadata value. If its value is binary, it must be

Same here.

include/grpc++/impl/codegen/sync_stream.h, line 57 at r4 (raw file):

  ///
  /// It is appropriate to call this method when both:
  ///   * the calling code (client-side) has no more message to send (this can be declared implicitly

Long line.

include/grpc++/impl/codegen/sync_stream.h, line 59 at r4 (raw file):

  ///   * the calling code (client-side) has no more message to send (this can be declared implicitly
  ///     by calling this method, or explicitly through an earlier call to \a
  ///     WritesDone.

ClientWriterInterface::WritesDone()

include/grpc++/impl/codegen/sync_stream.h, line 61 at r4 (raw file):

  ///     WritesDone.
  ///   * there are no more messages to be received from the server (which can
  ///     be known implicitly, or explicitly from an earlier call to \a Read that

ReaderInterface::Read()

include/grpc++/impl/codegen/sync_stream.h, line 62 at r4 (raw file):

  ///   * there are no more messages to be received from the server (which can
  ///     be known implicitly, or explicitly from an earlier call to \a Read that
  ///     returned "false"

Missing trailing ).

include/grpc/impl/codegen/gpr_slice.h, line 37 at r4 (raw file):

/** WARNING: Please do not use this header. This was added as a temporary
 * measure

This should go on the previous line.

include/grpc/impl/codegen/grpc_types.h, line 166 at r4 (raw file):

#define GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH "grpc.max_receive_message_length"
/** \deprecated For backward compatibility. Use
   GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH

This should go on the previous line.

include/grpc/impl/codegen/grpc_types.h, line 276 at r4 (raw file):

#define GRPC_ARG_ALLOW_REUSEPORT "grpc.so_reuseport"
/** If non-zero, a pointer to a buffer pool (a pointer of type
   grpc_resource_quota*).

Same here.

include/grpc/impl/codegen/grpc_types.h, line 278 at r4 (raw file):

   grpc_resource_quota*).
    (use grpc_resource_quota_arg_vtable() to fetch an appropriate pointer arg
   vtable) */

Same here.

include/grpc/impl/codegen/grpc_types.h, line 295 at r4 (raw file):

  "grpc.use_cronet_packet_coalescing"
/** Channel arg (integer) setting how large a slice to try and read from the
wire

Same here.

include/grpc/impl/codegen/grpc_types.h, line 387 at r4 (raw file):

typedef struct grpc_metadata {
  /** the key, value values are expected to line up with grpc_mdelem: if
     changing

Same here.

Comments from Reviewable

Oh, looks like Yang is already listed as a reviewer, so I don't need to add him.

thanks!
Tried to respond to latest comments.
A couple things that are still in question:

a lot of the bad line lengths and bad line breaks seem to be introduced by clang format. I tried fixing these where there was an obvious format problem in the latest commit.

also for comment:

Prior to this change, it looks like Doxygen was automatically propagating the description from the base class to the subclass:

I've seen through doxygen output that if there's any description in the concrete class, that only that is used. In most recent commits, I removed the reference links from descriptions that only contained reference links. But I kept them in other places, like e.g. in async_stream.h:
196   /// See the \a ClientAsyncStreamingInterface.ReadInitialMetadata
197   /// method for semantics.
198   ///
199   /// Side effect:
200   ///   - upon receiving initial metadata from the server,
201   ///     the \a ClientContext associated with this call is updated, and the
202   ///     calling code can access the received metadata through the
203   ///     \a ClientContext.

where there was more info specific to the concrete class that seemed out of place in the interface.
PLMK if this seems ok

No significant performance differences

This is looking really good!  Remaining comments are all fairly minor.

Reviewed 1 of 17 files at r4, 11 of 11 files at r5.
Review status: all files reviewed at latest revision, 10 unresolved discussions, some commit checks failed.

include/grpc++/impl/codegen/async_stream.h, line 75 at r5 (raw file):

  ///     earlier call to \a AsyncReaderInterface::Read that
  ///     yielded a failed result
  ///     , e.g. cq->Next(&read_tag, &ok) filled in 'ok' with 'false').

At least part of this can be moved onto the previous line.

include/grpc++/impl/codegen/async_stream.h, line 817 at r5 (raw file):

  ///
  /// This operation will end when the server has finished sending out initial
  /// metadata

This can be moved to the previous line.

include/grpc++/impl/codegen/async_unary_call.h, line 51 at r3 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Doesn't look like this was done.

Still need a top-level comment documenting what this class is for.

include/grpc++/impl/codegen/client_context.h, line 253 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
s/RPC made/RPC is made/

Doesn't look like this was done.

include/grpc++/impl/codegen/client_context.h, line 195 at r5 (raw file):

  /// \param meta_key The metadata key. If \a meta_value is binary data, it must
  /// end in "-bin".
  /// \param meta_value The metadata value. If its value is binary, it must be

s/it must be/the key name must/

include/grpc++/impl/codegen/server_context.h, line 133 at r5 (raw file):

  /// it must end in "-bin".
  /// \param meta_value The metadata value. If its value is binary,
  /// it must be must end in "-bin".

s/it must be must/the key must/

include/grpc++/impl/codegen/server_context.h, line 147 at r5 (raw file):

  /// it must end in "-bin".
  /// \param meta_value The metadata value. If its value is binary,
  /// it must be end in "-bin".

s/it must be/the key must/

include/grpc++/impl/codegen/server_context.h, line 156 at r5 (raw file):

  /// Cancel the Call from the server. This is a best-effort API and
  /// depending :on when it is called, the RPC may still appear successful to

s/:on/on/

include/grpc++/impl/codegen/sync_stream.h, line 226 at r5 (raw file):

  ///   already received (if initial metadata is received, it can be then
  ///   accessed
  ///   through the \a ClientContext associated with this call).

This can be moved to the previous line.

include/grpc/impl/codegen/grpc_types.h, line 276 at r4 (raw file):
Previously, markdroth (Mark D. Roth) wrote…
Same here.

This comment still seems to be spread across way more lines that it actually needs.

Comments from Reviewable

Tried to address comments, I think this is ready for another look now, PTAL

addressed latest comments in last commit, should be ready again, PTAL

Reviewed 6 of 7 files at r6, 2 of 2 files at r7.
Review status: all files reviewed at latest revision, 2 unresolved discussions, some commit checks failed.

Comments from Reviewable

test failures:

linux PR: https://github.com/grpc/grpc/issues/11183
mac PR: https://github.com/grpc/grpc/issues/11116
windows PR failure was c_windows_opt_native.vsprojects/Release/concurrent_connectivity_test.exe, under issue https://github.com/grpc/grpc/issues/6319
tsan PR: https://github.com/grpc/grpc/issues/10936
ubsan PR: https://github.com/grpc/grpc/issues/11105
interop PR: https://github.com/grpc/grpc/issues/10839
performance PR: https://github.com/grpc/grpc/issues/11122

asan PR hasn't run yet


Add EuroDNS as a DNS provider

Docker Image for build 3 is available on DockerHub as jc21/nginx-proxy-manager:github-pr-868

Docker Image for build 4 is available on DockerHub as jc21/nginx-proxy-manager:github-pr-868