helm list takes forever

When running helm list, it takes a long time to finally output results.
$ time helm list -v 6 -A
I0306 00:11:25.180435   46835 loader.go:395] Config loaded from file:  /Users/me/.kube/config
I0306 00:11:25.182434   46835 loader.go:395] Config loaded from file:  /Users/me/.kube/config
I0306 00:11:25.653012   46835 round_trippers.go:553] GET https://IP/version 200 OK in 463 milliseconds
I0306 00:11:25.659829   46835 loader.go:395] Config loaded from file:  /Users/me/.kube/config
I0306 00:11:27.611815   46835 round_trippers.go:553] GET https://IP/api/v1/secrets?labelSelector=owner%3Dhelm 200 OK in 1947 milliseconds
NAME                      	NAMESPACE                                       	REVISION	UPDATED                                	STATUS  	CHART                        	APP VERSION
cert-manager              	cert-manager                                    	307     	2024-03-05 20:09:13.559820811 +0000 UTC	deployed	cert-manager-v1.12.2         	v1.12.2
cert-manager-clusterissuer	cert-manager                                    	34      	2024-03-05 20:09:27.534770468 +0000 UTC	deployed	cert-manager-issuer-1.0.0
cert-manager-issuer       	app-ns-1	                                        286     	2024-03-05 20:09:33.4457531 +0000 UTC  	deployed	cert-manager-issuer-1.0.0
cloudsql-proxy            	app-ns-1	                                        266     	2024-03-05 20:09:52.16198548 +0000 UTC 	deployed	cloudsql-proxy-1.0.0
custom-deploy-dev         	custom-deploy-dev                               	34      	2024-03-05 20:09:38.181869442 +0000 UTC	deployed	custom-deploy-namespace-1.0.0
external-dns              	default                                         	282     	2024-03-05 20:08:35.059867491 +0000 UTC	deployed	external-dns-1.13.0          	0.13.5
external-secrets          	external-secrets                                	2       	2024-03-05 20:08:21.756050201 +0000 UTC	deployed	external-secrets-0.9.13      	v0.9.13
ingress-nginx-v1      	        ingress-nginx-v1                            	        296     	2024-03-05 20:08:42.420729959 +0000 UTC	deployed	ingress-nginx-4.10.0         	1.10.0
populate-sql-db-seed      	app-ns-1	                                        1       	2023-12-13 11:17:45.919242 -0500 EST   	deployed	populate-sql-db-seed-1.0.0
app1                      	app-ns-1	                                        257     	2024-03-05 20:10:33.409459642 +0000 UTC	deployed	app1-1.0.0
app1-secrets              	app-ns-1	                                        293     	2024-03-05 20:09:46.607289583 +0000 UTC	deployed	app1-secrets-1.0.0
app1-sqldb                	app-ns-1	                                        85      	2024-03-05 20:09:49.684035565 +0000 UTC	deployed	app1-sqldb-1.0.0

real	0m54.166s
user	0m9.870s
sys	0m2.121s

Compare that to using Kubectl to list the same secrets:
$ time (k -v 6 get secret -l owner=helm -A | sed -E 's/\.v[0-9]+//g' | awk '{print $2, $1}' | sort -k2 -k1 -V -u | tr ' ' '\t')
I0306 00:19:30.200283   47815 loader.go:395] Config loaded from file:  /Users/me/.kube/config
I0306 00:19:31.795780   47815 round_trippers.go:553] GET https://IP/api/v1/secrets?labelSelector=owner%3Dhelm&limit=500 200 OK in 1582 milliseconds
I0306 00:19:32.922421   47815 round_trippers.go:553] GET https://IP/api/v1/secrets?continue=LONGSTRING&labelSelector=owner%3Dhelm&limit=500 200 OK in 662 milliseconds
I0306 00:19:33.618866   47815 round_trippers.go:553] GET https://IP/api/v1/secrets?continue=LONGSTRING2&labelSelector=owner%3Dhelm&limit=500 200 OK in 219 milliseconds
I0306 00:19:34.254235   47815 round_trippers.go:553] GET https://IP/api/v1/secrets?continue=LONGSTRING3&labelSelector=owner%3Dhelm&limit=500 200 OK in 614 milliseconds
I0306 00:19:34.766573   47815 round_trippers.go:553] GET https://IP/api/v1/secrets?continue=LONGSTRING4&labelSelector=owner%3Dhelm&limit=500 200 OK in 415 milliseconds
NAME	NAMESPACE
sh.helm.release.cert-manager	cert-manager
sh.helm.release.cert-manager-clusterissuer	cert-manager
sh.helm.release.custom-deploy-dev	custom-deploy-dev
sh.helm.release.external-dns	default
sh.helm.release.cert-manager-issuer	app-ns-1
sh.helm.release.cloudsql-proxy	app-ns-1
sh.helm.release.populate-sql-db-seed	app-ns-1
sh.helm.release.app1	app-ns-1
sh.helm.release.app1-secrets	app-ns-1
sh.helm.release.app1-sqldb	app-ns-1
sh.helm.release.external-secrets	external-secrets
sh.helm.release.ingress-nginx-v1	ingress-nginx-v1

real	0m4.926s
user	0m0.206s
sys	0m0.132s

If I change options to use -v 9, then I see that actually a good chunk of the delay is the HTTP Response from the K8s API that is taking forever when Helm queries it. (The output is quite large and a lot to redact, but I can do that if it's useful)
Here is the curl equivalent displayed for the Helm command (with -v 9):
I0306 00:23:28.554127   48384 round_trippers.go:466] curl -v -XGET  -H "Accept: application/json, */*" -H "User-Agent: Helm/3.14.0" 'https://IP/api/v1/secrets?labelSelector=owner%3Dhelm'
I0306 00:23:31.410437   48384 round_trippers.go:553] GET https://IP/api/v1/secrets?labelSelector=owner%3Dhelm 200 OK in 2856 milliseconds
I0306 00:23:31.410480   48384 round_trippers.go:570] HTTP Statistics: GetConnection 0 ms ServerProcessing 2856 ms Duration 2856 ms
I0306 00:23:31.410487   48384 round_trippers.go:577] Response Headers:
.......
I0306 00:24:12.449503   48384 request.go:1212] Response Body: {"kind":"SecretList","apiVersion":"v1","metadata"

Here is the curl command shown from just Kubectl get:
I0306 00:23:49.345355   48550 round_trippers.go:466] curl -v -XGET  -H "Accept: application/json;as=Table;v=v1;g=meta.k8s.io,application/json;as=Table;v=v1beta1;g=meta.k8s.io,application/json" -H "User-Agent: kubectl/v1.28.3 (darwin/arm64) kubernetes/a8a1abc" 'https://IP/api/v1/secrets?labelSelector=owner%3Dhelm&limit=500'
I0306 00:23:50.784110   48550 round_trippers.go:553] GET https://IP/api/v1/secrets?labelSelector=owner%3Dhelm&limit=500 200 OK in 1438 milliseconds
I0306 00:23:50.784135   48550 round_trippers.go:570] HTTP Statistics: DNSLookup 0 ms Dial 29 ms TLSHandshake 296 ms ServerProcessing 1047 ms Duration 1438 ms
I0306 00:23:50.784142   48550 round_trippers.go:577] Response Headers:
.......
I0306 00:23:50.894681   48550 request.go:1212] Response Body: {"kind":"Table","apiVersion":"meta.k8s.io/v1","metadata":

It appears the Helm query is not optimal; perhaps there's some way to speed it up?
Thanks

Output of helm version:
version.BuildInfo{Version:"v3.14.0", GitCommit:"3fc9f4b2638e76f26739cd77c7017139be81d0ea", GitTreeState:"clean", GoVersion:"go1.21.5"}

Output of kubectl version:
Client Version: v1.28.3
Kustomize Version: v5.0.4-0.20230601165947-6ce0bf390ce3
Server Version: v1.27.8-gke.1067004

Cloud Provider/Platform (AKS, GKE, Minikube etc.): GKE

Thanks for the report. This to me is certainly a curiosity:
I0306 00:11:27.611815   46835 round_trippers.go:553] GET https://IP/api/v1/secrets?labelSelector=owner%3Dhelm 200 OK in 1947 milliseconds
NAME                      	NAMESPACE                                       	REVISION	UPDATED                                	STATUS  	CHART                        	APP VERSION
cert-manager              	cert-manager                                    	307     	2024-03-05 20:09:13.559820811 +0000 UTC	deployed	cert-manager-v1.12.2         	v1.12.2
...

real	0m54.166s

According to the above, the API server GET for the secrets took ~2s. Then Helm took another ~52s to then print the list. If you are able to determine what is happening in those 52s, that would be super useful please.
 From the above, that doesn't seem to be the issue. The API server query looks to be correctly filtering, and no more API server requests are made.
Which would imply the time spent is by Helm internally. But 52s is a lot of CPU time to decode some secrets. So something seems amiss there.
If you are able to investigate further. As above, that would be very useful. Helm project is a bit (very) time constrained at the moment.

@gjenkins8 it's not apparent from the output, but based on my watching the commands and my laptop, it looks like nothing at all is happening client-side during that 52 second gap.
If I run the Kubectl commands with an --output other than wide, it actually uses the same query type that Helm uses, and it takes almost as long. It appears that the query itself is telling the K8s API server to do something different on the backend, and whatever it's doing in the backend is what's taking up all that time. So it's effectively a server-side issue, but one that we can control, to determine whether the response is either fast or slow.
If you Google the response type kind for the Kubectl output, it looks like only a few commands and resources support this alternate style of query/output (table output). Not sure what K8s version it was introduced at, so might need to check server side K8s version before changing query type
If you let me know what kind of data you're looking for, I can go do some more research and come back with some summaries. I totally appreciate the time constraints; if a lot of people aren't facing this slowness, I'm fine with this issue taking a long time to be resolved :) I've made my own shell script wrapper to create a fake helm list output as a workaround

Not sure if it's related, but I've seen similar 'slowdown' issues when the client had issues writing the ~/.kube/cache/ content. Might worth checking if you have permissions to write that folder (and it's content) and whether the filesystem has sufficient space to write cache content.


bug: cannot claim flt on "done" page

Hi, I've prepared my proof and entered https://claim.fluence.network/done page.
The page shows the "Claim 5000.0 FLT" button, but it doesn't work after I pressed it.

After a long while, it shows "Request expired. Please try again."

I have the same problem


Add css code to adjust modal

4K

1440px

Mobile 425px

Mobile 320px

Yes, but I didn't find it suitable for our case.

The cross to close the modal is not aligned with the title.


benchmarks: fix regexp for parsing code size results

Accept a '.' in the benchmark name which is used for .o and .dylib files

@swift-ci smoke benchmark

@swift-ci smoke test

Build comment file:
No performance and code size changes

How to read the data
The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.
If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.
Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein).

Hardware Overview
  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

@swift-ci smoke test linux


Feature suggestions: Relative mode

Feature suggestions: Relative URL mode: It will ignore the heuristics described in the documentation and will instead treat user-entered URLs as relative to the current file if no scheme is specified. If it is a command-line argument, then it is relative to the current directory if no scheme is specified.

Hello @zzo38, thanks for the feature request!
Does prefixing the URL ./ works?  For example, with telescope foo:bar.gmi telescope assumes that the protocol is foo and fails because it can't speak it, but with telescope ./foo:bar.gmi it opens foo:bar.gmi as a file (in the current directory).  Similarly for absolute paths.

Your example describes the correct behaviour in the existing heuristic mode and in my suggested relative mode (although only if given as a command-line argument), since the URL includes (what has the correct syntax of) a scheme. Similarly, a absolute path (starting with /) which is "relative to the current directory" would have the same behaviour in both modes too. If a scheme is specified (whether or not that scheme is implemented) it would work like it already does.
However, other files (e.g. world.gmi), as well as loading when a document is already loaded (instead of command-line argument), would have different meanings. So, if the current file is gemini://example.org/example.gmi and you type / then you will get gemini://example.org/ but as a command-line argument (or if the current file is any local file) you would get file:/// instead.
If you intend to implement Gempub in future, then the jar: scheme should also be implemented; in this case, if you are currently viewing a Gempub file, then / would refer to the root directory of the ZIP archive, and not the root directory of the entire computer.
(I have modified Firefox to work like I described, and I think it would be helpful in other programs too; I find it much more convenient for my uses, and possibly some other people might prefer this too.)

@zzo38 Thanks for the in-depth explanation.  There is still one thing that I haven't understood however.
Suppose you're viewing the page gemini://example.org/example.gmi.  If then you press > (the default key binding for load-url), then / and press enter, telescope will interpret it as file:///.  So I'm not sure if this is the behaviour you'd like or if you prefer the opposite (i.e. loading gemini://example.org).
P.S.: adding support for gempubs is in my todo list.  There are a few 'big' things I'd like to implement first, but hopefully i'll get to it :)

I would prefer it to load gemini://example.org/ in that case, although maybe it should be a separate command such as load-url-relative (and perhaps load-current-url-relative). (A separate command would not help for command-line arguments though. So, perhaps a separate setting is better.)
For Gempub, some implementations do not use the jar: scheme (although my implementation in Firefox does use it), instead just adding the path directly after the file name. (Another alternative would be to automatically redirect the URL of the ZIP file to the corresponding jar: URL.) This has advantages and disadvantages, so you might or might not consider it.

Sorry for the delay, I thought a lot about this.  I think your proposed behaviour not only makes sense, but should even be the default.
I think that when loading an url from the command line the current heuristic works fine, but from inside the client using the current url as base as you're proposing makes a lot of sense.  Not sure if adding a couple of more commands is needed, I'd just add a toggle in the config (something like load-url-prefer-file which defaults to false.)

Actually while implementing it I noticed that this is still a bit rough to use.  For example, some users prefer that d.net would be interpreted as gemini://d.net, while if we disable the heuristic entirely (as in the draft I've just committed, please see 4bb6a4fa12277e60cec320dacf7968754b26db7d) would load the file d.net at the current URL.
For now I've committed an option that, if unset with set load-url-use-heuristic = 0 in the config file would disable the heuristics.
But maybe the problem is not in the heuristics used by load-url and just in the fact that telescope doesn't provide any command or easy way to navigate "up" one level in the path hierarchy, nor go to the "home" or "root" directory?

I know that some people would prefer the current behaviour which is why I suggested making it an option, like you are doing. (Which way should be the default is a different question of course. Probably, to avoid confusion, making the default what it already did before, is better, so that if you upgrade then it can be a "configuration-safe upgrade".)
I think that it is not necessary to do anything more complicated than simply enabling or disabling it entirely. Since, if I want gemini://d.net then I can just type that in; users who don't like that can enable the heuristic mode instead.
However, I do have one suggestion: This setting should affect command-line arguments too. If you type telescope file.gmi then it should load the file called file.gmi in the current directory (and, if it does not exist, then it is an error). (If you type telescope foo:bar.gmi then it is an error (since it has the format of a absolute URL but not a valid scheme), like it is now, whether or not a file called foo:bar.gmi exists; you can add ./ if necessary, which is how URLs are working anyways.)

I know that some people would prefer the current behaviour which is why I suggested making it an option, like you are doing.

At first I thought we could come up with an improved heuristic that would cover both use-cases, but adding a setting seems more robust.  I like heuristics when they're predictable and simple, adding too many cases may feel confusing.
This also helped me realize the usefulness of providing out-of-the-box the command up, home and root to ease the navigation.
I think i'll keep the heuristics as default though.

I think that it is not necessary to do anything more complicated than simply enabling or disabling it entirely. Since, if I want gemini://d.net then I can just type that in; users who don't like that can enable the heuristic mode instead.

Yes, fully agree.  It could be interesting to think of ways to maybe having telescope automatically fill in "gemini://" (or "gopher://", or ...) using some key-binding.  Just wondering.

However, I do have one suggestion: This setting should affect command-line arguments too.

Fully agree here too, it was confusing otherwise.  I've changed the meaning of load-url-use-heuristic to cover command-line arguments too.  I think that now it should behave as you suggested.
Thanks,

Telescope 0.9 is now available and includes the load-url-use-heuristic configuration knob.
One minor improvements is that now that setting is a boolean, so
set load-url-use-heuristic = false

should be used instead of setting it to 0.
I'm going to close this, but feel free to reopen (or file a new issue); thanks :)


Update to https://vega.xyz/use/

update the link for the nodes guru tile to

@rebeccajsimmonds - See attached proposed icon for this.


choose trial will be broken when click table pagination

Environment:

NNI version:
NNI mode (local|remote|pai):
Client OS:
Server OS (for remote mode only):
Python version:
PyTorch/TensorFlow version:
Is conda/virtualenv/venv used?:
Is running in Docker?:

Log message:

nnimanager.log:
dispatcher.log:
nnictl stdout and stderr:

What issue meet, what's expected?:
bug: 只能选择当页的trial来比较。
expected: compare trials 功能不会被表格分页影响。
How to reproduce it?:
Additional information:

This issue might be fixed in #2900. We can also make it "by design".

closed as it had been merged.


Display package configuration in Assets view

Maybe click a link to view/edit this info from the single-package display page.

Package configuration is deprecated, so closing.


Add level-method to represent CCTX state transition

This is a preliminary task in preparation of https://github.com/zeta-chain/node/issues/1800 and https://github.com/zeta-chain/node/issues/1801, this can also be directly implemented in one of the PR above.
We have currently directly manipulate with the CCTX object in the voteInbound/voteOutbound logic when adding for example adding new outbound parameter for regular outbound or revert. We should break down the general state transition of CCTX in small low level method that can be easily tested and reused.
These methods should be ideally stateless, only interacting with the CCTX object passed as argument, for reliable testing (in the types package)
We should remove the CreateNewCCTX currently in the keeper package
Example of methods:
func InitializeCCTX(inboundParameter) CCTX
func (cctx CCTX) AddOutbound(outboundParameter) CCTX
func (cctx CCTX) AddRevertOutbound(outboundParameter) CCTX
func (cctx CCTX) Abort(outboundParameter) CCTX

The logic can also be simplified in evm-hook.go when creating new CCTX upon observed events on ZetaChain.
Right now we call we create an artificial MsgVoteOnObservedInboundTx message by calling  NewMsgVoteOnObservedInboundTx to initialize the inbound, which is very dirty and confusing.

@kingpinXD did you start working on https://github.com/zeta-chain/node/issues/1800 and https://github.com/zeta-chain/node/issues/1801?
I think exploring this refactoring first might make more sense

Closing as resolved https://github.com/zeta-chain/node/pull/1853


Angled brackets not rendering in markdown

Angled brackets are used in plaintext to indicate placeholder text, as follows: (Example from Get-Help.md)
“To see a particular topic, type: Get-Help about_<topic-name>, such as Get-Help about_Comparison_Operators.”
The result lacks the content in the brackets:
“To see a particular topic, type: Get-Help about, such as Get-Help about_Comparison_Operators.”
(There is a separate issue about the underscore after the word “about”. I haven’t found that in other topics, yet, so I can’t describe exactly when it happens.)
The markdown is probably reading  as an XML tag.
Possible solution:
Replace angled brackets in text with < and >. (ampersand-l-t or g-t)
No change for angled brackets in code blocks – these work and shouldn’t be tinkered with.
I don’t know whether this will work and render correctly in the XML, but it works in atom preview mode.

We are trying to follow CommonMark spec, and it allows us to do escaping with \< instead of &lt.
Atom / VSCode has an issue with their markdown preview. One of the industry-wide challenge is markdown variations. We supporting CommonMark, because it has a really good spec and set of tests for implementations. Also it's mostly compatible with GitHub Flavored markdown.
When you call New-Markdown in PlatyPS, we inject escaping for < and > in the form on \< and \>. Same goes about [ ] ( ) and back-ticks.

Per JP's suggestion, I looked at the topic in GitHub. The brackets escape correctly, as expected from the spec. Let's mark this issue closed.


Combination Sum Problem

💥 Proposal
Hi, I'm a GSSoC Participant and I want to contribute the code for Combination Sum Problem in C++.
Problem Statement:
Given an array of integers and a target value, the unique combination of values in array should sum up to the target value. The same number can be chosen multiple times.
For Example:
Input: array = [4,2,8,6], target = 8
Output: [2,2,2,2], [4,4], [2,6], [8], [2,2,4]
Constraints:

The array should have distinct elements.
1 <= target <= 500
1 <= arr.size() <= 50
1 <= arr[i] <= 200

It would be very helpful if this issue is assigned to me.
Thanks!
@HarshCasper
@bhav09
Have you read the Contributing Guidelines on Pull Requests?
Yes.

/assign


GCC specific urls for endpoints

now that PowerAutomate/Apps has has it's split for GCC they land here
gov.flow.microsoft.us
make.gov.powerapps.us
apps.gov.powerapps.us
do we need to update the doc to reflect this since it is still showing GCC/Worldwide or should we split them?

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

ID: 66bd8666-3566-a901-b25b-eb6baba6264a
Version Independent ID: e9f6310f-2207-8c81-d31a-3d5a80beb26b
Content: Office 365 URLs and IP address ranges - Microsoft 365 Enterprise
Content Source: microsoft-365/enterprise/urls-and-ip-address-ranges.md
Service: o365-administration
GitHub Login: @kelleyvice-msft
Microsoft Alias: kvice

@LauraWi Please help us in resolving this issue. Thanks

@LauraWi Gentle reminder.

Any ideas when this might be updated? many of our customers won't even consider unblocking something if it isn't in this list.

This is still sitting with engineering. I will ping them again. This topic is autogenerated and cannot be updated manually by writers, so updated info needs to flow through an internal process/tool.

Thanks for the update @LauraWi let me know if there is anything i can do to help.

Thanks for reaching out. It appears that all of the endpoints you mentioned have been removed from the web service entirely. I will follow up with the engineering team to find out why, and they will have to determine whether this is an actual issue or the result of a deliberate decision. In the meantime, I am closing this issue as we cannot resolve it directly. -Kelley


Using Sync as a prefix

What is the purpose of using Sync as a prefix for few classes ?

Those classes are using owlapi for their functionalities and the idea of "Sync" is that those are synchronizing classes in a sense that nothing is actually implemented in our package and when you are calling a method in python, the actual processing is happening in some java library. Basically its "syncing" our framework with another framework. This naming is not my original idea and is based on a previous naming in owlapy which I believe is based on the naming in owlready2 for a similar functionality.

Yes I thought so. I guess we can start thinking about omitting this prefixing.
I guess we need some refactroing in the owl_reasoner.py

Move AbstractOWLReasonerEx into AbstractOWLReasoner (unclear why these inconvenience needed to be seperated) and
Implement OWLReasoner class

A reasoner should be created as
reasoner= OWLReasoner(reasoner="Hermit | Pellet .... | FastInstanceCheckerReasoner")
We might even need to rename FastInstanceCheckerReasoner
Does user need to know this concept of syncing?

Thank you for your explanations :)
I do agree with the aim of encouraging developers implement new reasoners that inherits from AbstractOWLReasoner.
In the following parts, I tried to adress few things.

For example FastInstanceCheckerReasoner and SyncReasoner are very different ones, because the former operates under CWA (or partial CWA, still not clear where it stands) and the latter under OWA.

The used underlying assumption behind a reasoner (whether CWA or OWA) does not differ the funtionality/interface of a reasoner but only the generated results, e.g. reasoner.instances(..) or reasoner.subclass(..)

We also have other reasoners in ontolearn like TripleStoreReasoner or Luke's neural reasoner.

Any other reasoners should also implement abstract methods---instances(), subclass() etc.

I understand that we can still have this distinction if we implement the suggested OWLReasoner class but we cannot put in the same choice list 'HermiT'/'Pellet'/... and FastInstanceCheckerReasoner. There is also the difference in libraries used to implement those reasoners. Therefore, i think its better to leave the structure as is.

Does the argument for not putting the HermiT'/'Pellet'/... and FastInstanceCheckerReasoner into the same choice list stem from the OWA and CWA distrinction or there is something else?

Another thing you point out is naming. The reasoner-related classes has gone through some heavy renaming over the past few months and i feel like they are losing their significance.

I am not quite sure what does losing their significance mean ?
Let's move the discussion into a call :)

All tasks that emerged during this issue are completed.
For the record: During the call it was decided that renaming of "Sync" classes will not happen for the moment, hence considering this issue closed. A new issue can be opened if there is a change of decision.


Undocumented checks prevent PublishEventRequest metadata fields to reach the pubsub.azure.servicebus component

Expected Behavior
When we set metadata fields on a PublishEventRequest field, they should be received and processed by the pubsub.azure.servicebus component.
Actual Behavior
It seems like the fields are set properly (when we log the PublishEventRequest object before publishing it we can see them), but they do not reach the component (visible when inspecting the events in the Azure Portal).
Steps to Reproduce the Problem
Tested with dapr-sdk version 1.3.1 and dapr-runtime 1.4.3

Create a PublishEventRequest
Set a metadata field, e.g., with eventRequest.getMetadata().put(“MessageId”, id); and eventRequest.getMetadata().put(“ScheduledEnqueueTimeUtc”, “Wed Jan 19 11:06:00 GMT 2022”)
Log the PublishEventRequest, the output might look like so: publishing event with metadata: ScheduledEnqueueTimeUtc=Wed Jan 19 11:06:00 GMT 2022;MessageId=time-trigger;1642590360;Europe/Berlin;0;1000
Publish the event via Dapr
Observe the event in the Azure portal, the events do not have a message id and are also available immediately.

Release Note

RELEASE NOTE:

We digged some deeper into this and found a lot of undocumented errors that prevented us from using it, e.g.,

use wrong date format -> message appears immediately -> property is not shown
use date in past  -> message appears immediately -> property is visible
use date too far in future -> message appears nowhere -> gives the impression, nothing worked
typo in property name ->  -> message appears immediately -> property is not shown
time must be given in GMT -> 10:17 CET (Berlin) == 09:17 CET

Date in correct format that works is e.g. Wed, 19 Jan 2022 09:04:00 GMT. 2022-01-19T18:30:17.001453Z does not work

Thanks for digging into this, I'll see if we can make this a little easier 👍.

@MoeweX Are you seeing this issue only with azure servicebus component ?


python3 -m badger stalls

Choosing to ignore this for now. I found many packages without a __main__.py.


if_then_else support via "conditioned" data frames

Adds a new S3 class (cnd_df) for represented conditioned data frames, i.e. data frames that carry metadata about what records should be used for derivations

Adds support for basic pretty printing of cnd_df objects

Adds a user-facing function for creating such cnd_df objects: condition_by

Adds experimental "mutate"-version function for these conditioned data frames: derive_by_condition()

Thank you for your Pull Request! We have developed this task checklist from the
Development Process
Guide
to help with the final steps of the process. Completing the below tasks helps to
ensure our reviewers can maximize their time on your code as well as making sure
the oak codebase remains robust and consistent.
Please check off each taskbox as an acknowledgment that you completed the task
or check off that it is not relevant to your Pull Request. This checklist is
part of the Github Action workflows and the Pull Request will not be merged into
the devel branch until you have checked off each task.

[ ] Place Closes #<insert_issue_number> into the beginning of your Pull z
Request Title (Use Edit button in top-right if you need to update)
[ ] Code is formatted according to the
tidyverse style guide. Run
styler::style_file() to style R and Rmd files
[ ] Updated relevant unit tests or have written new unit tests, which should
consider realistic data scenarios and edge cases, e.g. empty datasets, errors,
boundary cases etc. - See
Unit Test Guide
[ ] If you removed/replaced any function and/or function parameters, did you
fully follow the
deprecation guidance?
[ ] Update to all relevant roxygen headers and examples, including keywords
and families. Refer to the
categorization of functions to tag appropriate keyword/family.
[ ] Run devtools::document() so all .Rd files in the man folder and the
NAMESPACE file in the project root are updated appropriately
[ ] Address any updates needed for vignettes and/or templates
[ ] Update NEWS.md if the changes pertain to a user-facing function (i.e. it
has an @export tag) or documentation aimed at users (rather than developers)
[ ] Build oak site pkgdown::build_site() and check that all affected
examples are displayed correctly and that all new functions occur on the "Reference" page.
[ ] Address or fix all lintr warnings and errors - lintr::lint_package()
[ ] Run R CMD check locally and address all errors and warnings - devtools::check()
[ ] Link the issue in the Development Section on the right hand side.
[ ] Address all merge conflicts and resolve appropriately
[ ] Pat yourself on the back for a job well done! Much love to your accomplishment!

Still work in progress.

@ramiromagno -
A couple of items

the condition_by is not working when applied at the target variable
Also, can you show me how to apply condition_by when involving both source and target?

Here is the sample code.

study_ct <- read.csv(system.file("cm_domain/cm_sdtm_oak_ct.csv",
                                 package = "sdtm.oak"))

# Read in raw data

cm_raw <-  read.csv(system.file("cm_domain/cm_raw_data.csv",
                                package = "sdtm.oak")) %>%
  #derive oak_id as the row number
  dplyr::mutate(oak_id = structure(seq_len(nrow(.))),
                patient_number = PATNUM,
                raw_source = "ConMed") %>%
  dplyr::select(oak_id_vars(), dplyr::everything())

# Create CM domain. The first step in creating CM domain is to create the topic variable

cm <-
  # Derive topic variable
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDRAW",
    tgt_var = "CMTRT"
  )  |>
  # Derive CMGRPID when CMTRT == "BABY ASPIRIN"
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID",
    #use condition_by function and fiter when CMTRT is "BABY ASPIRIN"
   ### This condition is not working. It results in an error
    tgt_dat = condition_by(.,CMTRT == "BABY ASPIRIN"),
    id_vars = oak_id_vars()
  )

**Error message**
Error in assign_no_ct(assign_no_ct(raw_dat = cm_raw, raw_var = "MDRAW",  :
  unused argument (assign_no_ct(raw_dat = cm_raw, raw_var = "MDRAW", tgt_var = "CMTRT"))

Can you give give an example on how to program this mapping?
  # Derive qualifier CMMODIFY -  If collected value in CMMODIFY
  # in cm_raw is different to CM domain CMTRT target variable then
  # assign the collected value to CMMODIFY in CM domain (CM.CMMODIFY)

@ramiromagno -
A couple of items
1. the condition_by is not working when applied at the target variable

2. Also, can you show me how to apply condition_by when involving both source and target?

Here is the sample code.
study_ct <- read.csv(system.file("cm_domain/cm_sdtm_oak_ct.csv",
                                 package = "sdtm.oak"))

# Read in raw data

cm_raw <-  read.csv(system.file("cm_domain/cm_raw_data.csv",
                                package = "sdtm.oak")) %>%
  #derive oak_id as the row number
  dplyr::mutate(oak_id = structure(seq_len(nrow(.))),
                patient_number = PATNUM,
                raw_source = "ConMed") %>%
  dplyr::select(oak_id_vars(), dplyr::everything())

# Create CM domain. The first step in creating CM domain is to create the topic variable

cm <-
  # Derive topic variable
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDRAW",
    tgt_var = "CMTRT"
  )  |>
  # Derive CMGRPID when CMTRT == "BABY ASPIRIN"
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID",
    #use condition_by function and fiter when CMTRT is "BABY ASPIRIN"
   ### This condition is not working. It results in an error
    tgt_dat = condition_by(.,CMTRT == "BABY ASPIRIN"),
    id_vars = oak_id_vars()
  )

**Error message**
Error in assign_no_ct(assign_no_ct(raw_dat = cm_raw, raw_var = "MDRAW",  :
  unused argument (assign_no_ct(raw_dat = cm_raw, raw_var = "MDRAW", tgt_var = "CMTRT"))

Can you give give an example on how to program this mapping?
  # Derive qualifier CMMODIFY -  If collected value in CMMODIFY
  # in cm_raw is different to CM domain CMTRT target variable then
  # assign the collected value to CMMODIFY in CM domain (CM.CMMODIFY)

Yeah, there are a couple of things at play here:

The placeholder . is for use with magrittr's pipe %>% and _ for use with R native pipe |>.
The usage of the placeholder in nested calls requires the use of braces, see https://magrittr.tidyverse.org/reference/pipe.html#using-the-dot-for-secondary-purposes. Not sure we want to surface this to the user.

So best approach might be that if we want to condition on the target data set, the one that is being passed along, we should perhaps move the condition_by() call one level up.
Here is a set of examples that hopefully illustrate the different variations:
library(sdtm.oak)
library(magrittr)
library(dplyr, warn.conflicts = FALSE)

study_ct <- read.csv(system.file("cm_domain/cm_sdtm_oak_ct.csv", package = "sdtm.oak"))
cm_raw <-  read.csv(system.file("cm_domain/cm_raw_data.csv", package = "sdtm.oak")) %>%
  #derive oak_id as the row number
  dplyr::mutate(
    oak_id = structure(seq_len(nrow(.))),
    patient_number = PATNUM,
    raw_source = "ConMed"
  ) %>%
  dplyr::select(sdtm.oak:::oak_id_vars(), dplyr::everything())

# Derive topic variable
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  %>%
  # Derive CMGRPID when CMTRT == "BABY ASPIRIN"
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID",
    tgt_dat = condition_by(., CMTRT == "BABY ASPIRIN")
  )
#> Error in `admiraldev::assert_character_vector()` at sdtm.oak/R/assign.R:189:3:
#> ! `id_vars` must be a character vector but is a data frame

# Derive topic variable
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  |>
  condition_by(CMTRT == "BABY ASPIRIN") |>
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID",
    tgt_dat = _
  )
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

# Derive topic variable
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  |>
  condition_by(CMTRT == "BABY ASPIRIN") %>%
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID",
    tgt_dat = .
  )
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

# Derive topic variable
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  %>%
  {
    assign_no_ct(
      raw_dat = cm_raw,
      raw_var = "MDNUM",
      tgt_var = "CMGRPID",
      tgt_dat = condition_by(dat = ., CMTRT == "BABY ASPIRIN")
    )
  }
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

# Derive topic variable
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  %>%
  {
    assign_no_ct(
      raw_dat = cm_raw,
      raw_var = "MDNUM",
      tgt_var = "CMGRPID",
      tgt_dat = condition_by(., CMTRT == "BABY ASPIRIN")
    )
  }
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

Created on 2024-06-07 with reprex v2.1.0

Thank you, @ramiromagno. I got it to work. Having it inline will make sense for the users. We will just put both options out there.

cm <-
  # Derive topic variable
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDRAW",
    tgt_var = "CMTRT"
  )  %>%
  # Derive CMGRPID
  {
    assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID",
    #use condition_by function and fiter when CMTRT is "BABY ASPIRIN"
    tgt_dat = condition_by(dat =., CMTRT == "BABY ASPIRIN"),
    id_vars = oak_id_vars()
  )
    } %>%
  {
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "CMMODIFY",
    tgt_var = "CMMODIFY",
    tgt_dat =  condition_by(. , CMMODIFY != CMTRT, .env = cm_raw),
    id_vars = oak_id_vars()
  )
  }

A couple of follow-up questions

We need to be explain in the documentation why we need {} when we use the condition_by function.
Can we rename .env parameter to something else more meaningful? We are comparing two datasets in this case, so can we rename it as .dat2

  {
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "CMMODIFY",
    tgt_var = "CMMODIFY",
    tgt_dat =  condition_by( dat = . , CMMODIFY != CMTRT,  dat2 = cm_raw),
    id_vars = oak_id_vars()
  )
  }
#option 2
  {
  assign_no_ct(
    raw_dat = condition_by(dat = cm_raw , CMMODIFY != CMTRT, dat2= .),
    raw_var = "CMMODIFY",
    tgt_var = "CMMODIFY",
    tgt_dat =  .,
    id_vars = oak_id_vars()
  )
  }

Hi @rammprasad:

The reason why we need braces {...} is explained here: https://magrittr.tidyverse.org/reference/pipe.html#using-the-dot-for-secondary-purposes. We could get rid of this requirement if tgt_dat was the first parameter, and I think we should, as it would simplify the overall piping syntax, making it easier on the user.

Renaming .env to .dat2 (I'm adding the dot) is fine but .env is more aligned with what is customary in the tidyverse ecosystem for scopes where to look for variables, be it an actual environment (env), or a data frame, tibble or simply a list.

Greate Job, @ramiromagno . I have added my comments. We can additional test cases and examples. Also, it will be good to change the way we compare two datasets, by adding an extra argument as suggested.

Thanks @rammprasad. I am not sure what was your take on relocating tgt_dat and make it a first argument. If you agree perhaps moving also tgt_var and make it the second argument would also make sense I reckon.

I thought we could circumvent the need for braces when using magrittr's pipe placeholder in nested calls if we moved tgt_dat to being the first argument but seemingly we cannot.
So I think we are left only with three options:

Move the condition_add() one level up and have it in the chain, i.e. not inline within the assign_no_ct()
Add braces around the assign_no_ct() call and use the placeholder where needed
Study the possibility of having another pipe operator whose behavior is equivalent to %>% {...}, but with the advantage of not needing the braces. I asked a question about this here: https://github.com/tidyverse/magrittr/issues/272.

In my opinion, the simplest and easiest for the user is option 1, i.e. moving condition_add() to an earlier position in the chain of commands.
library(sdtm.oak)
library(magrittr)
library(dplyr, warn.conflicts = FALSE)

study_ct <- read.csv(system.file("cm_domain/cm_sdtm_oak_ct.csv", package = "sdtm.oak"))
cm_raw <-  read.csv(system.file("cm_domain/cm_raw_data.csv", package = "sdtm.oak")) %>%
  #derive oak_id as the row number
  dplyr::mutate(
    oak_id = structure(seq_len(nrow(.))),
    patient_number = PATNUM,
    raw_source = "ConMed"
  ) %>%
  dplyr::select(oak_id_vars(), dplyr::everything())

# DOES NOT WORK (native pipe)
# assign_no_ct(raw_dat = cm_raw,
#              raw_var = "MDRAW",
#              tgt_var = "CMTRT")  |>
#   assign_no_ct(
#     tgt_dat = condition_add(_, CMTRT == "BABY ASPIRIN"),
#     tgt_var = "CMGRPID",
#     raw_dat = cm_raw,
#     raw_var = "MDNUM"
#   )

# DOES NOT WORK EITHER (magrittr's pipe)
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  %>%
  assign_no_ct(
    tgt_dat = condition_add(., CMTRT == "BABY ASPIRIN"),
    tgt_var = "CMGRPID",
    raw_dat = cm_raw,
    raw_var = "MDNUM"
  )
#> Error in `admiraldev::assert_character_vector()` at sdtm.oak/R/assign.R:191:3:
#> ! `id_vars` must be a character vector but is a data frame

# WORKS (native pipe)
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  |>
  condition_add(CMTRT == "BABY ASPIRIN") |>
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID"
  )
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

# WORKS (maggritr's pipe)
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  %>%
  condition_add(CMTRT == "BABY ASPIRIN") |>
  assign_no_ct(
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID"
  )
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

# DOES NOT WORK (native pipe)
# assign_no_ct(raw_dat = cm_raw,
#              raw_var = "MDRAW",
#              tgt_var = "CMTRT")  |>
#   {
#     assign_no_ct(
#       tgt_dat = condition_add(_, CMTRT == "BABY ASPIRIN"),
#       raw_dat = cm_raw,
#       raw_var = "MDNUM",
#       tgt_var = "CMGRPID"
#     )
#   }

# WORKS (maggritr's pipe)
assign_no_ct(raw_dat = cm_raw,
             raw_var = "MDRAW",
             tgt_var = "CMTRT")  %>%
  {
  assign_no_ct(
    tgt_dat = condition_add(., CMTRT == "BABY ASPIRIN"),
    raw_dat = cm_raw,
    raw_var = "MDNUM",
    tgt_var = "CMGRPID"
  )
  }
#> # A tibble: 14 × 5
#>    oak_id raw_source patient_number CMTRT                         CMGRPID
#>     <int> <chr>               <int> <chr>                           <int>
#>  1      1 ConMed                375 BABY ASPIRIN                        1
#>  2      2 ConMed                375 CORTISPORIN                        NA
#>  3      3 ConMed                376 ASPIRIN                            NA
#>  4      4 ConMed                377 DIPHENHYDRAMINE HCL                NA
#>  5      5 ConMed                377 PARCETEMOL                         NA
#>  6      6 ConMed                377 VOMIKIND                           NA
#>  7      7 ConMed                377 ZENFLOX OZ                         NA
#>  8      8 ConMed                378 AMITRYPTYLINE                      NA
#>  9      9 ConMed                378 BENADRYL                           NA
#> 10     10 ConMed                378 DIPHENHYDRAMINE HYDROCHLORIDE      NA
#> 11     11 ConMed                378 TETRACYCLINE                       NA
#> 12     12 ConMed                379 BENADRYL                           NA
#> 13     13 ConMed                379 SOMINEX                            NA
#> 14     14 ConMed                379 ZQUILL                             NA

Thank you, @ramiromagno. Regarding the condition_add options, let's stick with options 1 and 2. We will add examples for both scenarios.

Move the condition_add() one level up and have it in the chain, i.e. not inline within the assign_no_ct()
Add braces around the assign_no_ct() call and use the placeholder where needed

Let me know once it is ready for the final review.

Maybe we can add this as the third option. This looks sleeker than using {}

@rammprasad and @edgar-manukyan:
I think we are pretty close to having the code for conditioned data frames near completion.

A new pipe operator has been introduced %.>% check the docs for the details. This should allow to create chains of commands with less clutter, namely the usage of braces (%>% {...} can now be replaced simply with %.>% ...).
I've added more documentation across functions and examples.
I also added quite significant number of unit tests to most functions, but not all.
A new vignette has been created introducing conditioned data frames. It is currently incomplete because it has only one usage example with condition_add(). We should add those cases Ram mentioned where conditioning involves either the raw data set, the target, both independently, and both interdependently. For the most complicated case, both interdependently I reckon we will need to resort to using the sdtm_join() function explicitly by the user.

Take a look and give me your feedback!

Simply brilliant @ramiromagno, thank you so much 🙏 🙏 🙏 for all your time and effort. I am sure the SDTM community is going to appreciate this. I also feel that admiral might grab your idea of conditioned data frames data as well 😉

It looks good to me. Lets merge this to main, and I can take care of the documentation updates.

@rammprasad and @edgar-manukyan : please do not merge yet as I am now doing styling and linting fixes.


Remove redundant fields from cluster package configuration

There are a bunch of fields in cluster.Config that we don't need any more. We should remove them.

Fixed via #6604


Custom field validators

This feature add the possibility to create and assign custom validations to field.
These custom validations may enable the user to hold a better control on the inputs (I added an example in the ComplexForm sample).
Does that feature/implementation suits you?

Thanks @aveuiller for your contribution! Custom validators is quite useful. I've added some feedback in the implementation. Overall, I like your approach.

I pushed the two corrections.
Regarding the RequiredFieldValidator, I put the equal/hashcode implementation on top of the re-use of a unique instance in the LabelledFieldController.
This, for a very limited cost, enables to keep the consistency whichever the usage of validators may be.

Looks good overall. Can you update your branch with master? Also, there's a new controller that was added (TimePickerController), which might need your changes.

Rebased and new constructor added for TimePickerController.


docker tensorflow python - FileNotFoundError: [WinError 3] The system cannot find the path specified: ''

getting below error while running following command on docker. kindly assist..
$ python retrain.py \

--bottleneck_dir= tf_files/bottlenecks
--how_many_training_steps=500
--model_dir=tf_files/inception
--summaries_dir=tf_files/training_summaries/basic
--output_graph=tf_files/retrained_graph.pb
--output_labels=tf_files/retrained_labels.txt
--image_dir=tf_files/images/
Looking for images in 'cat'
Looking for images in 'dog'

Traceback (most recent call last):
File "retrain.py", line 1063, in
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
File "C:\Users\Sharjeel.Riaz\AppData\Local\Programs\Python\Python35\Lib\site-packages\tensorflow\python\platform\app.py", line 43, in run
sys.exit(main(sys.argv[:1] + flags_passthrough))
File "retrain.py", line 809, in main
jpeg_data_tensor, bottleneck_tensor)
File "retrain.py", line 434, in cache_bottlenecks
ensure_dir_exists(bottleneck_dir)
File "retrain.py", line 316, in ensure_dir_exists
os.makedirs(dir_name)
File "C:\Users\Sharjeel.Riaz\AppData\Local\Programs\Python\Python35\lib\os.py", line 241, in makedirs
mkdir(name, mode)
FileNotFoundError: [WinError 3] The system cannot find the path specified: ''

I apologize but I am having a hard time understanding what the problem is, where the problem is, and what version it affects. Please resubmit and pay attention to the issue template (https://github.com/tensorflow/tensorflow/issues/new) . Please provide all the information it asks. Thank you.


Update workflow matrix

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

Coverage data is based on head (d6397e9) compared to base (8352e73).
 Consider uploading reports for the commit 91c8169 to get more accurate results

Additional details and impacted files
@@             Coverage Diff             @@
##              master       #18   +/-   ##
===========================================
  Coverage     100.00%   100.00%
  Complexity       122       122
===========================================
  Files             11        11
  Lines            373       373
===========================================
  Hits             373       373

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


 If target repo is in github or other git repos, I just set HTTP_PROXY, HTTPS_PROXY and GIT_PROXY to make it work great. But if target repo is in golang.org/x, seems that it must fetch meta data first and use a different method to download code. For example, I always failed at:
Fetching https://golang.org/x/crypto/openpgp?go-get=1
https fetch failed.
Fetching http://golang.org/x/crypto/openpgp?go-get=1
import "golang.org/x/crypto/openpgp": http/https fetch: Get http://golang.org/x/crypto/openpgp?go-get=1: dial tcp <IP_ADDRESS>:80: i/o timeout    // The error msg shows that it uses golang builtin net package
package golang.org/x/crypto/openpgp: unrecognized import path "golang.org/x/crypto/openpgp"

Is there a way i missed to set  proxy for it or it just a problem? Thanks

go get uses net/http.DefaultTransport, so setting proxies with
$HTTP_PROXY should be effective.

Yes, it's my mistake...works great now


Add example to download each file attachment

This change makes the example a bit more clear on how you can interact with the msg file's attachments.
I can provide code for another example that involves loading the msg file from a specified remote url, if anyone think it will be helpful.

LGTM
Thanks!


[BUG]: (Planetscale Serverless) TypeError: fetch failed, code: 'UND_ERR_CONNECT_TIMEOUT'

What version of drizzle-orm are you using?
0.30.2
What version of drizzle-kit are you using?
No response
Describe the Bug
Unhandled error TypeError: fetch failed
at node:internal/deps/undici/undici:12345:11
at processTicksAndRejections (node:internal/process/task_queues:95:5)
at runNextTicks (node:internal/process/task_queues:64:3)
at process.processImmediate (node:internal/timers:449:9)
at process.topLevelDomainCallback (node:domain:160:15)
at process.callbackTrampoline (node:internal/async_hooks:128:24)
at async postJSON (/workspace/node_modules/@planetscale/database/dist/cjs/index.js:132:22)
at async Connection.execute (/workspace/node_modules/@planetscale/database/dist/cjs/index.js:87:23)
at async PlanetScalePreparedQuery.execute (/workspace/node_modules/drizzle-orm/planetscale-serverless/session.cjs:51:22)
at async /workspace/lib/Transactions/transactionAPI.js:889:26 {
cause: ConnectTimeoutError: Connect Timeout Error
at onConnectTimeout (node:internal/deps/undici/undici:7492:28)
at node:internal/deps/undici/undici:7448:50
at Immediate._onImmediate (node:internal/deps/undici/undici:7480:13)
at process.processImmediate (node:internal/timers:478:21)
at process.topLevelDomainCallback (node:domain:160:15)
at process.callbackTrampoline (node:internal/async_hooks:128:24) {
code: 'UND_ERR_CONNECT_TIMEOUT'
}
}
Expected behavior
No response
Environment & setup
Google cloud functions
Node 20
"@planetscale/database": "^1.16.0"

This error comes from planetscale database.js driver, so I guess this issue should be created in that repo: https://github.com/planetscale/database-js


Article added for N-Queens Problem

Have you read the Contributing Guidelines on Pull Requests?
YES
Description
Added the article for N-Queens Problem. The basic layout for the article is:
What is the N Queens Problem?
Explanation for N Queen
Algorithmic Steps
Code in C++ and Python
Sample I/O
Time & Space Complexity
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[ ] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Issue: Content: N-Queens #20

@HarshCasper Kindly review my PR.

@HarshCasper I have not copied, I have read several articles and then written everything in my own words. Still I will do the necessary changes.

@HarshCasper I have not copied, I have read several articles and then written everything in my own words. Still I will do the necessary changes.

Yeah, please. I understand your point but here some of the parts are too obvious. We don't want to bring any negative impression on the project.

@HarshCasper I have made the necessary changes. Kindly review my PR and let me know if any further changes are to be made.

@HarshCasper Kindly review now, I have made all the changes.


Refactor reporting for GitLab

Fixes #899
TODO:

[x] Fix tests

Pass base project (where the branch resides) too

Add property that returns project where the commit is present, i.e.
project from which we can set the status

Change getting and setting statuses to use project_with_commit

Add logging to caught GitLab exception when setting status

Signed-off-by: Matej Focko<EMAIL_ADDRESS>

missed f-prefix on one formatting string


Update setup.py so python package is included

Fixes issue #2, this means the python package on pypi will have the actual code

Gah! Thanks. Just saw this.


Correct whitesource.config defaults

This moves randy's suggested UA config into its own file (whitesource_rg.config), and updates the whitesource.config file with the real defaults. This allows us to maintain a whitesource.config file that reflects the true defaults for repo integrations
The values in whitesource.config are based on the documentation and cross checked against the defaults used by the GHE integration v<IP_ADDRESS>

@sharkness as part of the upcoming migration from the whitesource-ft GH org to the new mend-toolkit org, I've incorporated both your and Randy's changes into one file in the new org (see https://github.com/mend-toolkit/mend-examples/pull/2).
I'm therefore closing this PR.
Please PM me if you have any questions.


Update sbt-scala-native, scala3lib to 0.4.15

About this PR
📦 Updates

org.scala-native:sbt-scala-native
org.scala-native:scala3lib

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

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

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "org.scala-native" }
}]

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

Superseded by #268.


Drop TBB dependency for Tracy

Tracy itself doesn't depend on it. It is to enable parallel STL implementations. Enabling tbb here requires pulling in tbb on foreign platforms like aarch64 and Apple M1.

upgrading to latest manylinux will let us live with this


Add missing fontFeatures dependency, update requirements to match

Extracting from a OTF will not work without the fontFeatures dependency. Additionally, the requirements.txt had dependencies which are only used in tests.

ah thanks


Dragging window in minimal example causes high CPU usage

Just compiled a minimal Hello World program on Windows using the current "~master". When I drag the window, its framerate becomes extremely low while CPU usage spikes to 30% on my machine (for reference, dragging around a window of Notepad2 uses about 5%). I suppose redraws aren't quite optimized yet...?

Fixed


In the all page "LPDS" and "SPDS" button is not working.

It's done now.

It's not working now, please check again


Wrong values returned from getRadius(Vector2) methods for Slice, Capsule, Ellipse, and HalfEllipse

Issue reported for Slice: http://forum.dyn4j.org/viewtopic.php?f=3&t=287
Investigation revealed that there was also an issue with the Capsule, Ellipse and HalfEllipse getRadius(Vector2) methods.

This was fixed in version 3.2.3

Hello William,
in the org.dyn4j.geometry.HalfEllipse class in the getRadius method you say:

in the half ellipse case, if the point is on the side of the flat edge
then we do the ellipse code, else we can just return the farthest of the
two points that make up the flat side

But this should be only true if the height isnt greater than half the width:

Greetings
Andreas


Update dependencies for develop

Description
Update dependencies with latest changes on develop, to allow running go generate, install required dependency by go mod.

@NetanelBollag waiting for you to add the line we discussed from here: https://github.com/otterize/otterize-cli/pull/66/files#diff-7bcd67b905c9f25f165149b6db885a16a088b5b1abfeb45885c8eecbe3bff4f5R3


Not able to run PS script

I am running it in Powershell 7.
I created the GroupCreators.ps1 in PS ISE, and then tried to run it as admin in PS7, and all the commands fail saying unrecognized.
PS C:\powershell> Install-Module AzureADPreview
PS C:\powershell> .\groupcreators.ps1
Connect-AzureAD: C:\powershell\GroupCreators.ps1:4
Line |
4 |  Connect-AzureAD
|  ~~~~~~~~~~~~~~~
| The term 'Connect-AzureAD' is not recognized as a name of a cmdlet, function, script file, or
| executable program. Check the spelling of the name, or if a path was included, verify that the path is
| correct and try again.
Get-AzureADDirectorySetting: C:\powershell\GroupCreators.ps1:6
Line |
6 |  $settingsObjectID = (Get-AzureADDirectorySetting | Where-object -Prop …
|                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'Get-AzureADDirectorySetting' is not recognized as a name of a cmdlet, function, script file,
| or executable program. Check the spelling of the name, or if a path was included, verify that the path
| is correct and try again.
Get-AzureADDirectorySettingTemplate: C:\powershell\GroupCreators.ps1:9
Line |
9 |      $template = Get-AzureADDirectorySettingTemplate | Where-object {$ …
|                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'Get-AzureADDirectorySettingTemplate' is not recognized as a name of a cmdlet, function,
| script file, or executable program. Check the spelling of the name, or if a path was included, verify
| that the path is correct and try again.
InvalidOperation: C:\powershell\GroupCreators.ps1:10
Line |
10 |      $settingsCopy = $template.CreateDirectorySetting()
|      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| You cannot call a method on a null-valued expression.
New-AzureADDirectorySetting: C:\powershell\GroupCreators.ps1:11
Line |
11 |      New-AzureADDirectorySetting -DirectorySetting $settingsCopy
|      ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'New-AzureADDirectorySetting' is not recognized as a name of a cmdlet, function, script file,
| or executable program. Check the spelling of the name, or if a path was included, verify that the path
| is correct and try again.
Get-AzureADDirectorySetting: C:\powershell\GroupCreators.ps1:12
Line |
12 |      $settingsObjectID = (Get-AzureADDirectorySetting | Where-object - …
|                           ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'Get-AzureADDirectorySetting' is not recognized as a name of a cmdlet, function, script file,
| or executable program. Check the spelling of the name, or if a path was included, verify that the path
| is correct and try again.
Get-AzureADDirectorySetting: C:\powershell\GroupCreators.ps1:15
Line |
15 |  $settingsCopy = Get-AzureADDirectorySetting -Id $settingsObjectID
|                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'Get-AzureADDirectorySetting' is not recognized as a name of a cmdlet, function, script file,
| or executable program. Check the spelling of the name, or if a path was included, verify that the path
| is correct and try again.
InvalidOperation: C:\powershell\GroupCreators.ps1:16
Line |
16 |  $settingsCopy["EnableGroupCreation"] = $AllowGroupCreation
|  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| Cannot index into a null array.
Get-AzureADGroup: C:\powershell\GroupCreators.ps1:20
Line |
20 |  … ttingsCopy["GroupCreationAllowedGroupId"] = (Get-AzureADGroup -Search …
|                                                 ~~~~~~~~~~~~~~~~
| The term 'Get-AzureADGroup' is not recognized as a name of a cmdlet, function, script file, or
| executable program. Check the spelling of the name, or if a path was included, verify that the path is
| correct and try again.
Set-AzureADDirectorySetting: C:\powershell\GroupCreators.ps1:24
Line |
24 |  Set-AzureADDirectorySetting -Id $settingsObjectID -DirectorySetting $ …
|  ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'Set-AzureADDirectorySetting' is not recognized as a name of a cmdlet, function, script file,
| or executable program. Check the spelling of the name, or if a path was included, verify that the path
| is correct and try again.
Get-AzureADDirectorySetting: C:\powershell\GroupCreators.ps1:26
Line |
26 |  (Get-AzureADDirectorySetting -Id $settingsObjectID).Values
|   ~~~~~~~~~~~~~~~~~~~~~~~~~~~
| The term 'Get-AzureADDirectorySetting' is not recognized as a name of a cmdlet, function, script file,
| or executable program. Check the spelling of the name, or if a path was included, verify that the path
| is correct and try again.
PS C:\powershell> Uninstall-Module AzureAD
Uninstall-Package: No match was found for the specified search criteria and module names 'AzureAD'.

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

ID: 445c0a2e-1a22-d90f-0c73-0edf34f2b99a
Version Independent ID: d534ac69-134d-0198-fcb9-e19d1ed44d4b
Content: Manage who can create Microsoft 365 Groups
Content Source: microsoft-365/solutions/manage-creation-of-groups.md
Service: o365-administration
GitHub Login: @MikePlumleyMSFT
Microsoft Alias: mikeplum

As you will notice on the first line of what I sent you, I installed AzureADPreview.
I ran the install again, and it thought for a bit, and then gave me the prompt, so is up to date.
Did you run the the script on PowerShell 5 or PS7?   Was there anything else that needed to be run, after installing the preview, and before running the script, to install any other modules, because the link to how to install the AzureADPreview mentions installing other things farther down.

It still doesn't work for me.

@rconiv Thank you for the response. Could you please try Import-Module AzureADPreview -UseWindowsPowerShell and see if the Connect-AzureAD works?
Thanks
Sri

I get this when trying to install it.  I uninstalled and reinstalled the AzureADPreview.

@rconiv Thank you for the response. I was able to test in Powershell 7 and get an error. From what I see, The Azure AD module is supported on the following Windows operating systems with the default version of Microsoft .NET Framework and Windows PowerShell:
Windows 10
Windows 8.1 Pro
Windows 8.1 Enterprise
Windows 7 SP1
Windows Server 2016 TP5
Windows Server 2012 R2
Windows Server 2008 R2 SP1
So that could be the issue. Are you able to run the script on PS 5?
Thanks
Sri

@rconiv Thank you for the response. Could you please try the below steps in Powershell 5.0
Install-module Azureadpreview
Import-Module Azureadpreview
Connect-AzureAD
Thanks
Sri

It did what the instructions say it should do this time.  Azureadpreview must be pretty big, it took it a minute or so to install.

Not sure what was done, but the script doesn't fail out now.

The three modifications to the process that helped me:
Allowed the install of AzureADPreview without any errors

Install-Module AzureADPreview -AllowClobber

Added to the script at the beginning of line 4 calling "Connect-AzureAD". This stopped the "The term 'Connect-AzureAD' is not recognized as a name of a cmdlet," error.
AzureADPreview\Connect-AzureAD
If you have errors executing the scripts due to Execution Policies:

powershell -ExecutionPolicy ByPass -File scriptname.ps1

Thx, worked perfectly.


License?

I was thinking about including these sheets in a collection of style sheets that I'd probably publish under MIT. Is that possible?

sure, I just updated this Repo to MIT, feel free to go ahead!

https://github.com/nschloe/mplx


Unable to delete variable

After creating a variable I cannot delete it, the 'Del' button works but as soon as you save and re-open the macro in the editor the variable is back again.

Hey Mavmins,
It is something I am aware of. If you hit save on the variable screen and close it the reopen it will be gone but hangs around at the moment.  I haven’t been focused on it right now as at the end of the day, it’s a minor glitch compared to not being able to save.  I should have it fixed in the next build though.
TimothyLuke

On 20 Oct 2020, at 5:57 pm, Mavmins<EMAIL_ADDRESS>wrote:

After creating a variable I cannot delete it, the 'Del' button works but as soon as you save and re-open the macro in the editor the variable is back again.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

Awesome thanks, just figured I'd add it as an issue but like you say its extremely minor and doesn't break any functionality.

And having it hear means i wont forget it or it get lost in a thousand other posts


1696 debug report

Fixes #1

Please review your PR and remove all changes of files that only received formatting updates, and no real changes at all.


Upgrade docs to Docusaurus 3

NOTE: for some reason, this version of MDX (or something) has a few issues with certain characters in Markdown files (< and >), so there were a handful of places I had to swap those out with HTML entities.

Functionally all seems to be working on my end as well


Fields parameter (Solr5) should be parsed to "fl:" instead of "fields"

@diegobrum: I appreciate your awesome work. Thank you!
Here is my issue:
When performing a search, if we want Solr to return only certain fields in the docs:[] json, then the "fl" parameter should be populated in the query params. i.e. I don't want to fetch all the fields for the matching docs. For example: I need only the Unique Keys returned. Then using the keys I could access a data repository (for example, Database) to get more details about that document. By doing this the payload on the wire is significantly reduced. And, of course I don't store all the info in Solr and I do have to hit a repository after the search comes back.
Example: I have a Document with ProjectId as the unique key.
public class ProjectDocument : IDocument
{
        [SolrField("ProjectId", Indexed = true, Stored = true)]
        public int ProjectId { get; set; } // Unique Key
        [SolrField("ProjectNum ", Indexed = true, Stored = true)]
        public string ProjectNum { get; set; }
        [SolrField("ProjectTitle", Indexed = true, Stored = true)]
        public string ProjectTitle { get; set; }
}

And I search for matching documents based on Project Number field as:
var single = new Single<ProjectDocument>(p => p.ProjectNum, $"{projectNum}");
ISolrSearch<ProjectDocument> select = _projects
    .Select()
    .Fields(pd => pd.ProjectId) //Note: I only want the Unique Key i.e. ProjectId to be fetched from Solr
    .Query(single)
    .Page(50, 10);

select
    .Execute()
    .Document(out documents)
    .Information(out information) ;

The "documents" returned has all the Fields populated. i.e. the Fields(pd => pd.ProjecId) is not working as I expected. I expect only ProjectId to be populated in the documents list.
I have a fix in my local fork of the repo, the code is below, should I send a pull request?:
using Newtonsoft.Json.Linq;
using SolrExpress.Core;
using SolrExpress.Core.Extension.Internal;
using SolrExpress.Core.Search;
using SolrExpress.Core.Search.Parameter;

namespace SolrExpress.Solr5.Search.Parameter
{
    public sealed class FieldsParameter<TDocument> : BaseFieldsParameter<TDocument>, ISearchParameter<JObject>
        where TDocument : IDocument
    {
        /// <summary>
        /// Execute the creation of the parameter "sort"
        /// </summary>
        /// <param name="jObject">JSON object with parameters to request to SOLR</param>
        public void Execute(JObject jObject)
        {
            var jObj = (JObject)jObject["params"] ?? new JObject();
            foreach (var expression in this.Expressions)
            {
                var value = expression.GetFieldNameFromExpression();

                if (jObj["fl"] == null)
                {
                    var jArray = new JArray { value };
                    jObj.Add(new JProperty("fl", jArray));
                }
                else
                {
                    ((JArray)jObj["fl"]).Add(value);
                }
            }
            jObject["params"] = jObj;

            //var jArray = (JArray)jObject["fields"] ?? new JArray();
            //foreach (var expression in this.Expressions)
            //{
            //    var value = expression.GetFieldNameFromExpression();
            //    jArray.Add(value);
            //}
            //jObject["fields"] = jArray;
        }
    }
}

Hi @stanuku !
First of all, thanks a lot! :D
In Solr 5 I used JSON Request API feature, and some params had names changed from Solr 4 Default Request Handler (i.e. fl to fields).
But, I add some params in query using a class called SystemParameter (to add some params and make sure that query will work)... this works well in Solr 4, but not in Solr 5.
I created a issue to explain the problem (#175) and I will fix this ASAP.
Thanks for your feadback

@stanuku use version 4.0.7

@diegobrum 4.0.7 worked!, thank you.


string doesn't match example in step3

Hi,
In step 3. Removing the self-ligated and undigested fragments. You use the command:
grep -i -B 1 "CTTCTATCTGCAGAGA" mm10_hindiii_flanking_sequences_25_unique_2.fa

chr1:100025183-100025208
CTTCTATCTGCAGAGAAATATAGCC

Is this bait string "CTTCTATCTGCAGAGA" for example dataset "CD83"? I find the bait string for your example dataset different, "CTAGTTAGTCATGG". Which data set is "CTTCTATCTGCAGAGA" for then?
Thanks!

Hi,
That was just meant to be an example which is located on chr1. It is not for any dataset used in the paper. Sorry for the confusion.

Thanks for your explanation!


Provider does not track active state of network

When creating a libvirt network without autostart and rebooting the hypervisor, the network and the instances (domains) are inactive / stopped, as expected.
Running terraform plan in this scenario we get this:
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  ~ update in-place

Terraform will perform the following actions:

  # libvirt_domain.instance will be updated in-place
  ~ resource "libvirt_domain" "instance" {
        id          = "7dbfcef6-0dd3-4ee2-854e-0f31d3c30083"
        name        = "instance"
      ~ running     = false -> true
        # (10 unchanged attributes hidden)

        # (3 unchanged blocks hidden)
    }

Plan: 0 to add, 1 to change, 0 to destroy.

Changes to Outputs:
  - instance_ip = "<IP_ADDRESS>" -> null

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

  Enter a value: yes

libvirt_domain.instance: Modifying... [id=7dbfcef6-0dd3-4ee2-854e-0f31d3c30083]
╷
│ Error: error creating libvirt domain: Requested operation is not valid: network 'network' is not active
│
│   with libvirt_domain.instance,
│   on main.tf line 80, in resource "libvirt_domain" "instance":
│   80: resource "libvirt_domain" "instance" {
│
╵

This shows that provider is able to track if the libvirt_domain is running and try to bring it up again, but it does NOT! track the state of the network it is connected to and we manually need to run virsh net-start network before running terraform plan again in order to get a successful result.

// resourceLibvirtNetworkUpdate updates dynamically some attributes in the network
func resourceLibvirtNetworkUpdate(d *schema.ResourceData, meta interface{}) error {
	// check the list of things that can be changed dynamically
	// in https://wiki.libvirt.org/page/Networking#virsh_net-update
	virConn := meta.(*Client).libvirt
	if virConn == nil {
		return fmt.Errorf(LibVirtConIsNil)
	}

	network, err := virConn.NetworkLookupByUUID(parseUUID(d.Id()))
	if err != nil {
		return fmt.Errorf("can't retrieve network with ID '%s' during update: %s", d.Id(), err)
	}

	d.Partial(true)

	activeInt, err := virConn.NetworkIsActive(network)
	if err != nil {
		return fmt.Errorf("error when getting network %s status during update: %s", network.Name, err)
	}

	active := activeInt == 1
	if !active {
		log.Printf("[DEBUG] Activating network %s", network.Name)
		if err := virConn.NetworkCreate(network); err != nil {
			return fmt.Errorf("error when activating network %s during update: %s", network.Name, err)
		}
	}

in resourceLibvirtNetworkUpdate, which means resourceLibvirtNetworkUpdate is not called if the network is not update. Because we don't track the active property in resourceLibvirtNetworkRead.
But I am not sure what is the best way to track this. A computed attribute? Tell somehow terraform to foce the update even if no parameter from the schema is changed?

I think this is nice feature to have.

I think the overall network provider is messy because it deviated a lot from libvirt, due to its origin in supporting specific use cases for Kubernetes infrastructure.
I don't have an opinion on what is the best way. I think the best is to continue the v2 network resource that is 1:1 with libvirt (there is a branch for it).


Error log

I have ran PageSpeed and found there were error in your console log.

Hi - thanks for raising this issue. This appears to be related to a breaking change in leaflet 1.9.x.
I have fixed the issue in Release v2.0.1 - can you retry with the latest release and let me know if the problem still exists?


Putting dataType: 'json' to enable nested data in a enctype="multipart/form-data" always return value from input type="file" undefined

In my SvelteKit project, I'm using SvelteKit-Superforms to handle form submissions. The form includes a nested data structure and an image upload field, with enctype="multipart/form-data" set to handle file uploads. However, when I set dataType: 'json', the image field always returns undefined and the image never reaches the server. This issue occurs despite the correct configuration of the form and the expected behavior of handling multipart data.

Hi, that feature is tested and just confirmed to pass, so I'll need a MRE to see the difference. You can use one of the templates here, but please check with the test first if you've overlooked something.


Sponsor scroll overlay

Fixed the overlay issue with the main navigation and the sponsor carrousel.

:+1:

Passed QA; see also #520


Document common role / access / security patterns

HI All,
I had earlier created an admin user. And I created Dashboard with it.
Now, I wanted to share it with some other people, so I started testing for suitable user permissions by creating a new user and assigned  public group to it.
Now whenever I open localhost:8088 , it just says localhost redirected you too many times

Can anybody help me here? It seems I am stuck.
I checked the debugger logs

The way to resolve this is:-

Clear the cache
Login with Admin user
Update "test user" created in previous step, by removing "public" role to "alpha" or "gamma" role.
save it
Login as "test user" it works.

It seems issue occurs  when we create a new user and assign only public role to it.
By default, public role does not have permission listed in http://localhost:8088/roles/list/

Public isn't really usable, I should delete it.
Gamma works but you need to give access on a per-datasource basis. I'll try to take a moment to document it.

I've been looking into what permissions would be neccesary for the 'public' role to provide access to view dashboards.
So far, the permissions set:
[can show on DashboardModelView, can show on DashboardModelViewAsync, can dashboard on Caravel, can list on DashboardModelView, can list on DashboardModelViewAsync, can edit on DashboardModelViewAsync, can welcome on Caravel]

Solves the TOO_MANY_REDIRECTS error when logging in as a public user, and displays only a dashboard list page. Currently looking at what permission would make some/all dashboards visible to the user.

@gregroberts any progress on that so far? Would really love to see superset public dashboard view.

I'm afraid I haven't really made much progress on this, because the only way I can proceed is guesswork. The set of permissions I have on my Public role is as follows:
[
    can show on DashboardModelView,
    can show on DashboardModelViewAsync,
    can dashboard on Caravel,
    can list on DashboardModelView,
    can list on DashboardModelViewAsync,
    can edit on DashboardModelViewAsync,
    can welcome on Caravel
  ]

And what happens on the front end for non logged in users is as follows:
<domain>/caravel/welcome

shows the Dashboard list page, but it's empty. Looking at the network calls made, the page calls:
<domain>/dashboardmodelviewasync/api/read?_oc_DashboardModelViewAsync=changed_on&_od_DashboardModelViewAsync=desc

As it does for a logged in user, but no result rows are returned.
If the user is given a url for a dashboard, e.g.
<domain>/caravel/dashboard/17/

The dashboard loads and works perfectly fine.
If the user tries to access pretty much any other area of the site, e.g.:
<domain>/slicemodelview/list/

They are redirected to /login
This is pretty much all I need for now, and I'm not going to continue because I may be unwittingly poking holes where I don't want them.
I think this issue is really important, as it will allow users to really customise access across ~Caravel~ Superset.

@gregroberts Hi, I have a similar situation where I have to expose embedded dashboards to users without requiring authentication and I tried giving public role dashboard permissions but it doesn't seem to work. please let me if you were able to do this is in superset.

@carpediemy
I can't say anything definitively, and documenting of roles and their meanings is the subject of another open issue, however, if you set the Public role permissions as in my comment above, logged out users should be able to view dashboards if they have the url of the dashboard.

One requirement is to set PUBLIC_ROLE_LIKE_GAMMA = True in your superset_config.py , and then to add the Public datasources in the Public role.


the gnosis network don't have a logo

Hi, @travelfroggame!
I'm not sure I follow how the issue is connected to this repository. Would you mind expanding on this?
Thanks.

Hi, @travelfroggame! I'm not sure I follow how the issue is connected to this repository. Would you mind expanding on this?
Thanks.

I don't know where to add a LOGO to it

This repository has nothing to do with Gnosis, so I am not sure how we can help.

oh, After my observation, the problem on the rainbowkit side


Url parse

Since URL.parse returns punycode for unicode hostnames, I chose to make the build process create punycode json files rather than the lookup process convert back to unicode. This makes the browser file slightly larger but also less vulnerable to breaking due to encoding problems.
Fixes #53 and #54

Huge thanks @myndzi :-)


JavaScript single-line comments interpreted as regex

I am using highlight.js v9.11.0.
It seems certain word combinations cause the double slash of single-line comments to be interpreted as an empty regex, and then highlighting the comment body as strings and keywords.

A simple workaround I've found is to use /* ... */ multiline comment syntax, but what’s strange, is that by simply removing one of the "keywords" the comment displays correctly:

What is even more strange, is that on a different page of mine with a virtually identical comment... I don't have this same issue! (Even the syntax highlighting is slightly different!)

Please let me know what more information I can provide that may help anyone willing to help me troubleshoot this. Thank you!

All of these are due to failing language detection heuristics, and on small examples like these it's basically unsolvable, unfortunately.  (The last example is triggered into the correct detection by the string '100%' which does have a relevance weight, while numbers don't. Tuning it is a tricky business!)
One straightforward way to fix this is to specify the language explicitly which is done in highlight.js with class="language-js" on the <code> element (which is how HTML 5 recommends it). The data-language on <pre> does nothing for highlight.js so we just do auto detection.

I really appreciate the prompt reply @isagalaev
I tried adding the class name as you described, but I didn't observe any difference:

For what it’s worth, I don’t mind using the /* ... */ syntax... but if there is a way I can be explicitly declaring JavaScript, that does sound like a good idea. For reasons I don’t recall, I was under the impression that the data-lang attribute was doing just that.

Hm… I can't seem to reproduce the bug. Have a look: https://jsfiddle.net/yxcpLwt9/
Removing class="language-js" (and refreshing the result with the Run button in the top left corner) does indeed produce a broken highlighting due to misdetection, but language-js fixed it.
One thing I can think of is that may be your bundle of highlight.js doesn't have JavaScript in it? Try looking in the console at what hljs.getLanguage('javascript') returns. It should be a language object.

I think I‘ve found the problem.
I’m using gulp-highlight as a wrapper for highlight.js in my build process, and after inspecting the source, I see that it only uses the hljs.highlightAuto() method. I believe that explains why I can't explicitly set the language.
Thanks for your help @isagalaev.

Ah, that explains it… You can always call the highlighting function manually, it's just a one-liner:
Array.prototype.forEach.call(document.querySelectorAll('pre code'), hljs.highlightBlock);

Just a quick follow up to say thanks!
I was able to review the highlight.js source, and refactor gulp-highlight to support language class detection. I’ve submitted a PR, so hopefully this can be fixed for future developers. In the mean time, my local environment is the 💣

Glad to hear it! :-)


'CustomImagePrediction' object has no attribute 'setModelTypeAsResNet'

from imageai.Prediction.Custom import CustomImagePrediction
import os
prediction = CustomImagePrediction()
prediction.setModelTypeAsResNet()
why

im getting the same problem did u get the solution

its long time ago....i can't sure.   Maybe should     setModelTypeAsResNet50()

Same issue here. @OlafenwaMoses Any hints?

This has been updated to setModelTypeAsResNet50(), as @llsra  said. Read the documentation linked below for more.
https://imageai.readthedocs.io/


KAFKA 3514: alternate calculation for min timestamp [WiP]

This alternate calculation reduces the amount of buffering kept and is optimised for cases when out of order records are rare.

@dguy this is a PoC, not to be merged for now.

@guozhangwang if you get a chance, could you look at this WiP? Thanks.

Hi @enothereska , thanks for asking me for an opinion on this but with my limited experience with this codebase, I feel I have little to contribute at this point.
One thing that was bugging me about the MinTimestampTracker was that it's logic is tightly coupled to how it's being called while the abstraction provided by the interface implied some level of decoupling, which was just confusing.
If the logic is co coupled to how it's called anyway, then indeed it's better to get rid of the indirection and move the logic into the caller itself, which is what you've done. I think it simplified things.
:+1:


Make Anvil DNS default DNS

Currently having to program DNS calls into microservice code.  Have a mechanism to set the node's default DNS server to itself, that way the microservices can simply call "db.service/outbound/service/db" and it will resolve to a workable IP address

/etc/resolv.conf does not take nameservers with non-standard ports as entries.  This issue is not a primary concern for this project or the services that run within the system.  Closing with determination as unnecessary