Fix spelling mistake of word 'below'

The word 'below' was incorrectly spelled in various locations.

Coverage decreased (-0.2%) to 81.002% when pulling e21dd0aedda3f31168f0937224487c07e332e8fd on smilin-desperado:master into 2b237f483f305bb265980d9b2f272d99fb974c47 on airbnb:master.


Allows you to drag nodes around splits.

Should fix #243 .

I'm getting this error, just running it, and I can't do the intended task either I think(dragging tabs across split views).

Hrm. Interesting. That may've always been there, actually. I suspect it happens when you try to drag over the minimap. I've added in some extra checks.

I suspect it happens when you try to drag over the minimap. I've added in some extra checks.

It always happens, whether I'm clicking or just moving mouse at all over the app.

Huh. Interesting. Still happening even with the latest commit?

@adamharrison you are in charge to decide about this PR.

Aye aye. I'll do some more testing around mipmaps and stuff, but if everything looks good from the more recent commit, I'll merge.

I don't mean you have to merge, just you are in charge of deciding. Take more time if you need to check more things or put this is hold if there are some problems. It is better to leave out this functionality than introducing some bugs.

I don't mean you have to merge, just you are in charge of deciding. Take more time if you need to check more things or put this is hold if there are some problems. It is better to leave out this functionality than introducing some bugs.

Yeah, for sure; that's what I understood. Will do.

OK, I think quashed most bugs, and also tested with minimap. I'd love for you to take another pass @AqilCont , to see if it's still crashing for you (and if it is, please let me know exact steps to reproduce). But as far as I can tell, it looks good.

Ah, really sorry about the "problem" I reported. I hadn't updated the executable(because I don't know how to build on Windows) so I just copied the folder from your branch into my main Lite-xl installation. I just found out the same thing happens with the rootview from master so probably an executable related thing instead.

Aha, if that's the case, then I think we're good. I'm going to merge this.


Get Travis build running again

This gets the travis build running again.  JRuby was failing due to a lack of entropy in /dev/random.  The first commit here swaps that to /dev/urandom which should be fine since running CI for capybara-webkit isn't encryption/security sensitive.  The other commits are self explanatory and make a few more changes to get things running.  Note: the JRuby tests do have 2 failures, hopefully someone has a clue about whats causing them.

This is awesome, @twalpole! Thanks for taking the time.
I'm looking into the remaining jruby failures. I think they're issues with the tests and not the production code, and both are related to how jruby handles forks/shells.

I pushed a couple more commits to https://github.com/thoughtbot/capybara-webkit/tree/twalpole-travis-build which got jruby working locally. One of them relates to pipes and pids, which we've had trouble with on jruby.

Thanks again! The build is passing for the first time in quite a while.

@jferris  You're welcome - FYI when you go to test against Capybara 2.8+ you may run into some weird issues with JRuby.  The lazy evaluation of results added in 2.8 is behaving strangely under JRuby and appears to be evaluating extra elements in a separate thread which can cause multiple requests to be triggered on a driver at the same time -  Issue on selenium-webdriver with some details and a reproduction case: https://github.com/SeleniumHQ/selenium/pull/2880   Not sure yet if it's a JRuby bug (it does appear that way to me though) or an issue in the Capybara implementation.


Please don't spam
With love ❤  made with Ruby

Please don't spam
Originally posted in https://github.com/tensorflow/tensorflow/issues/61291#issuecomment-1637198403
By ❤with ruby

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Can I package Shard into my Node.js project by rollup or webpack?

I'm developing a VScode extension and my project needs Shard to complete some features, it runs normally in a development environment with node_modules.
But after I package my project with rollup, it encountered an error in a production environment like this:
Something went wrong installing the "sharp" module

The specified module could not be found.
\\?\c:\Users\Administrator\.vscode\extensions\wangyige.wangyige-0.6.7\dist\library\build\Release\sharp-win32-x64.node

At the beginning,  I tried to resolve it, but even if I packaged the sharp-**.node file for the production environment, it still encountered this error.
After that, I tried many more methods, like packaging sharp separately  into a single file and copying the Json files which were referenced by other sharp dependencies, but none of them worked. Until one time, I used npm install sharp in production environment, it worked.
So I want to confirm if Sharp can be packaged into a project or did I ignore some files? If not, which dependencies in node_modules do I need to publish along with my project? (Sharp is too quickly, so I do not want toreplace it with another plugin if possible.)

Did you see https://sharp.pixelplumbing.com/install#bundlers ?
For rollup use https://rollupjs.org/configuration-options/#external

I have already excluded sharp from the packaged files, my current issue is that I am unsure of which files within node_modules to publish. I have tried including sharp and it's dependencies such as color and detect-libc, but it's not worked.

\?\c:\Users\Administrator.vscode\extensions\wangyige.wangyige-0.6.7\dist\library\build\Release\sharp-win32-x64.node

I would expect to see .../node_modules/sharp/build/Release/... in this path so you'll need to work out why that's not present.

Hi @wangyige0701 , how you fix that problem ?

Hi @wangyige0701 , how you fix that problem ?

@chuongmep Sorry I just notice this message today, I don't know if these can still help you.
I encountered this peoblem because of that sharp whill download a .node file and some .dll files when installed by npm, the download script is  npm install in sharp's package.json, if I package shap in production environment, this script will not execute.
To address this, I also packaged the files which used to download files, they are: node_modules/prebuild-install/bin node_modules/sharp/install/dll-copy node_modules/sharp/install/libvips. In production environment, I use child_process.spawnSync to execute this three files, with the execution order being use-libvip then copy then bin.
There are also a few things to note, the .node file will be saved in ../build/Release and .dll files in ../vendor/, the .dll files are copied to Release folder after download. Therefore, you can delete all files in the vendor folder after download. Additionally, you should packaged the script files in a child directory of your project to prevent downloading files outside the root directory.

@wangyige0701 thanks you, it will help me alot, I removed everything relate but still facing with the issue long time.


Remove Currency Selection from alerts

Currently, on this screen:
https://app.zeplin.io/project/5d088205bff2d15de6a4397b/screen/6048de5cea4b5497a861c92c
pressing the down caret on the currency flag launches the currency selection; the caret was left in from a stock layout, and should be removed.

@JamesSmartCell
Sorry James, I didn't quite get what do you mean.
What is a stock layout?
Can you kindly give some snapshots?

Sure,

If I click the down caret after the 'AUD' here, it takes me to the currency selection screen.
The down caret should be removed as currency selection should only be set from the settings menu.

Here it just selects the currency for new price alert, do not effect the system settings.
Every time open this page, it is the same as system currency set from settings menu.
So I think it's useful.
@colourfreak What's your opinion?

It is useful, but a bit confusing - I clicked on it wondering what it would do in this context, and was confused why it popped up currency. After thinking about it, the ability to do this makes sense but maybe not on that UI component where we're used to using it to flip between crypto and fiat.

It is useful, but a bit confusing - I clicked on it wondering what it would do in this context, and was confused why it popped up currency. After thinking about it, the ability to do this makes sense but maybe not on that UI component where we're used to using it to flip between crypto and fiat.

I agree. @seabornlee remove the down caret and it should be fine.

Ok, got it.


Wrong metric description

Hi all,
thank you for your repo and research contribution.
I noticed that there are some mixups in the evaluation's output which can confuse, e.g. "Max" instead of "Mean" instance and class iou:

Thanks for sharing. Could you please create a PR to update this? Thanks for your contributions.


[plugin] Value must be assigned for boolean flags

With spf13/pflag library, you can just specify a boolean flags as --flagname to set the flag value to true. When a boolean flag is used in a kubectl plugin, this results in an error. Setting the flag to --flagname=true works as expected.
This is what the error message looks like:
$ kubectl plugin kubectl-plugin-demo env --analytics
Error: flag needs an argument: --analytics

Example plugin: https://github.com/tamalsaha/kubectl-plugin-demo
/kind bug

I have an open PR to address this gap https://github.com/kubernetes/kubernetes/pull/58768

/lifecycle frozen

/sig cli
/area kubectl

@carolynvs @juanvallejo If this issue is obsolete or has been addressed with the new plugin mechanism, let's close this.

/assign @juanvallejo

@seans3 Thanks for the reminder on this one. Yes now that kubectl is moving to the git plugin model, this is no longer an issue and is safe to close.
/close


Can't launch remote window from debugger

Version: 1.69.0-insider (Universal)
Commit: d8823e67a907b3fa176068ad802682ccd74f8083
Date: 2022-06-14T10:34:01.122Z
Electron: 18.3.2
Chromium: 100.0.4896.160
Node.js: 16.13.2
V8: <IP_ADDRESS>-electron.0
OS: Darwin x64 21.5.0
I have this launch config:
{
	"name": "Extension Remote",
	"type": "extensionHost",
	"request": "launch",
	"runtimeExecutable": "${execPath}",
	"args": [
		"--extensionDevelopmentPath=${workspaceFolder}",
		"--remote=tunneling+silly-grosbeak:8000"
	],
	"outFiles": ["${workspaceFolder}/out/**/*.js"],
	"preLaunchTask": "npm: watch-web"
}

That I would expect to open the extension host window in a remote window just as opening VS Code from the terminal does:
code-insiders --extensionDevelopmentPath=/Users/tanha/Documents/GitHub/vscode-server-basis-utility/extension/ --remote=tunneling+silly-grosbeak:8000

The terminal command works but the launch config doesn't.
For easier testing I tried also with SSH remote authority like this:
code-insiders --extensionDevelopmentPath=/Users/tanha/Documents/GitHub/vscode-server-basis-utility/extension/ --remote=ssh-remote+tanha

And
{
	"name": "Extension Remote",
	"type": "extensionHost",
	"request": "launch",
	"runtimeExecutable": "${execPath}",
	"args": [
		"--extensionDevelopmentPath=${workspaceFolder}",
		"--remote=ssh-remote+tanha"
	],
	"outFiles": ["${workspaceFolder}/out/**/*.js"],
	"preLaunchTask": "npm: watch-web"
}

Ah I see.

Usually the recommended approach here is to debug the extension in the remote workspace

Could you clarify here?

You can run/clone your extension on the remote machine and then debug normally from there; you'll get a second remote window when you do

Ah got it

Actually solved this, local development is okay. I'll close this for housekeeping since it only affects us and isn't a huge convenience imo 🙂


Refactor ContactPictureLoader

There should be no functional changes.

This does not yet cache the Uris, right? I am a bit confused by the @WorkerThread annotation of a function that only calls Glide. This does not make resolving the Uris faster (which is quite slow); I think they are still resolved on the UI thread.

Right. This doesn't change the way the code works ("no functional changes"). It's only a refactoring to make the code hopefully easier to maintain.


Upload accelerometer data for harrier datasets

No data for MH_WATERLAND, but it is available for the other two datasets. @milotictanja can you check if we can publish these data?

key_name
device_info_serial
acc

H_GRONINGEN
291
yes

H_GRONINGEN
634
yes

H_GRONINGEN
6064
yes

H_GRONINGEN
6065
yes

MH_ANTWERPEN
1603
yes

MH_ANTWERPEN
6329
yes

MH_ANTWERPEN
6330
yes

MH_WATERLAND
586
no

MH_WATERLAND
610
no

MH_WATERLAND
623
no

MH_WATERLAND
630
no

MH_WATERLAND
6058
no

MH_WATERLAND
6059
no

We may publish the accelerometer data from the MH_ANTWERPEN dataset, but I am still waiting for a response of the data owners of the H_GRONINGEN dataset

All numbers are now ok. @milotictanja can you ping again about uploading the data to Movebank.

All acceleration data are now uploaded to movebank.

Reopened because wrong timestamp field was used.

Solved.


Fixe duplicate in "uses of uses of" wording in Differential Testing section

In the Differential Testing section, remove duplicate wording in "uses of uses of this type of testing" .

@all-contributors add @scottt for maintenance


SAM Creates Permission by default for Test and Stage Why ?

I am seeing SAM is creating multiple aws lambda permission and not sure why
For every AWS::Serverless::Function defined in the YAML i am getting two permission which is taking away resource how we can avoid this ..
We have named our Stage to something else instead of STAGE and TEST so why would it create permission for stage and test
CreateClientModuleFunctionGetEventPermissionStage
CreateClientModuleFunctionGetEventPermissionTest

Hi @ashishusoni I have read on other posts that the "Test" permission is required by the "Test" button in API Gateway. There has been some discussion around an option for opting out... sorry I don't have the link at hand.
I also find it crazy that with a strict 200 resource limit in CloudFormation, why we are forced to accept extra resources that are not required.
Cheers,
Mike

@Michael1d is correct. The existing issue is #285. Please feel free to +1 it to help us prioritize adding an opt-out of creating the test permission. Closing this issue as a duplicate.


Projected graph crash due to UTM zone

Linux 19.04, Python 3.7.3, OSMnx 0.10, JupyterLab 1.0.4
plot_figure_ground returns an error when used with GProjected (projected graph):
CRSError: Invalid projection: +proj=utm +zone=51562 +ellps=WGS84 +datum=WGS84 +units=m +no_defs +type=crs: (Internal Proj Error: proj_create: Error -35: invalid UTM zone number)
plot_figure_ground works with the standard graph G.
plot_graph works with both with the graph G and the projected graph GProjected.
I tried with other locations (even South California, where Geoff is based) but it looks like there is an issue with geopandas and any location produces an error.
import osmnx as ox
import os
from IPython.display import Image

%matplotlib inline
ox.config(log_file=False, log_console=False, use_cache=True)

location_point = (50.6233696,12.3007474)

G = ox.graph_from_point(
    location_point,
    distance=802,
    distance_type='bbox',
    network_type="drive",
    clean_periphery=False,
)
GProjected = ox.project_graph(G)

fig, ax = ox.plot_graph(G, show=True, node_size=0, edge_linewidth=0.3, edge_color="#000000")
fig, ax = ox.plot_figure_ground(GProjected, show=True, smooth_joints=True, bgcolor="b", edge_color="w")

The plot_figure_ground function requires an unprojected graph. I will update the docstring accordingly.


MRG: Enforce ints for events

Fixes the six bugs we had not making events integers. Builds on #2411. Closes #2406.

I also included a few other small fixes for recent scipy, and to squash warnings during tests, since I needed those to get things passing again.

thanks heaps @Eric89GXL !


Automatic price updates

Based on your commits I am assuming that price updates are manual?

Yes, might look into doing it automatically

https://github.com/James-Sangalli/dot-staking-income/commit/b5bdfdb963435604145e36eee04f0ceed5b215b4


Add Support for retry when Sink fails to initialize

Description
Add Support for retry when Sink fails to initialize.
During dataprepper initialization, isReady() call is made to each pipeline to make sure each pipeline is ready before starting the source. Source is not started even if one of the pipelines is not ready.
Two new methods (initialzie isReady) are added to Sink interface. A retry thread is started if Sink is not ready. This retry thread periodically invokes initialize to initialize Sink until it is successful.
Issues Resolved
Resolves #936
Check List

[X ] New functionality includes testing.
[ X] New functionality has been documented.

[ ] New functionality has javadoc added

[X ] Commits are signed with a real name per the DCO

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Codecov Report

Merging #2198 (fff1ad8) into main (9009741) will decrease coverage by 0.04%.
The diff coverage is 67.18%.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
@@             Coverage Diff              @@
##               main    #2198      +/-   ##
============================================
- Coverage     93.99%   93.95%   -0.04%
- Complexity     1633     1767     +134
============================================
  Files           204      218      +14
  Lines          4729     5130     +401
  Branches        378      412      +34
============================================
+ Hits           4445     4820     +375
- Misses          194      215      +21
- Partials         90       95       +5

Impacted Files
Coverage Δ

.../org/opensearch/dataprepper/pipeline/Pipeline.java
80.48% <0.00%> (-8.71%)
:arrow_down:

...search/dataprepper/pipeline/PipelineConnector.java
85.71% <0.00%> (-3.65%)
:arrow_down:

...pensearch/dataprepper/plugins/sink/StdOutSink.java
86.66% <33.33%> (-13.34%)
:arrow_down:

...n/java/org/opensearch/dataprepper/DataPrepper.java
78.72% <50.00%> (-17.83%)
:arrow_down:

...pensearch/dataprepper/model/sink/AbstractSink.java
100.00% <100.00%> (ø)

.../opensearch/dataprepper/model/sink/SinkThread.java
100.00% <100.00%> (ø)

.../opensearch/dataprepper/plugins/sink/FileSink.java
82.97% <100.00%> (+4.40%)
:arrow_up:

...rwarder/discovery/AwsCloudMapPeerListProvider.java
92.68% <0.00%> (-2.44%)
:arrow_down:

...pper/peerforwarder/PeerForwarderConfiguration.java
87.71% <0.00%> (-1.52%)
:arrow_down:

...pensearch/dataprepper/model/metric/JacksonSum.java
100.00% <0.00%> (ø)

... and 38 more

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


Add missing Google SAML to docs sidebar

Add missing SAML auth docs for Google.

Pull Request Test Coverage Report for Build 7510edb6166bd0b49f311449bee68e91bb1f788c-PR-1712

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 70.679%

Totals

Change from base Build 2394bf07c52296a3e3efbc8616afd22a7d465651:
0.0%

Covered Lines:
1967

Relevant Lines:
2783

💛  - Coveralls


newrelic-bundle-newrelic-pixie: CreateContainerConfigError

Description
Events:
Type     Reason  Age                        From     Message

Normal   Pulled  4m56s (x30819 over 4d15h)  kubelet  Container image "newrelic/newrelic-pixie-integration:1.4.0" already present on machine
Warning  Failed  0s (x30842 over 4d15h)     kubelet  Error: secret "pl-cluster-secrets" not found
Expected Behavior
newrelic-bundle-newrelic-pixie Pod should be available
Troubleshooting or NR Diag results
Steps to Reproduce
Helm auto installer
kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/crd/base/px.dev_viziers.yaml &&
kubectl apply -f https://raw.githubusercontent.com/pixie-labs/pixie/main/k8s/operator/helm/crds/olm_crd.yaml &&
helm repo add newrelic https://helm-charts.newrelic.com && helm repo update &&
kubectl create namespace newrelic ; helm upgrade --install newrelic-bundle newrelic/nri-bundle
--set global.licenseKey=*********
--set global.cluster=dev-app-deployment
--namespace=newrelic
--set newrelic-infrastructure.privileged=true
--set global.lowDataMode=true
--set ksm.enabled=true
--set prometheus.enabled=true
--set kubeEvents.enabled=true
--set logging.enabled=true
--set newrelic-pixie.enabled=true
--set newrelic-pixie.apiKey=*********
--set pixie-chart.enabled=true
--set pixie-chart.deployKey=*********
--set pixie-chart.clusterName=dev-app-deployment
Your Environment
EKS Cluster : T3.medium
Additional context

Hi there,
Thanks for filing this report! From the looks of the issue, there migth be a problem with the Pixie Operator, which is in charge of creating the pl-cluster-secrets secret that then is mounted by newrelic-pixie-integration.
In order to help with this we would need the logs and events for the pixie operator chart. Could you attech those here?

Hi Roberto,
Thank you for responding. I am afraid I no longer can provide you the logs. I re-installed helm charts and it worked. You may close the issue :)
regards
Aakankshi Gupta

On 05-Oct-2021, at 9:14 PM, Roberto Santalla @.***> wrote:
Hi there,
Thanks for filing this report! From the looks of the issue, there migth be a problem with the Pixie Operator, which is in charge of creating the pl-cluster-secrets secret that then is mounted by newrelic-pixie-integration.
In order to help with this we would need the logs and events for the pixie operator chart. Could you attech those here?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub https://github.com/newrelic/helm-charts/issues/539#issuecomment-934527754, or unsubscribe https://github.com/notifications/unsubscribe-auth/AKQ6EGP4ZJSUE33YEF54BP3UFMMMJANCNFSM5FLHCKWQ.
Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Glad to see it worked in the end!
We'll take note and see if this pops up again, as we would expect it to work in the first try :)
Thanks!


show monitor.disconnect() async function example

show monitor.disconnect() async function example

LOL how did I fail Travis test?  Isn't that for code only?

This pull request looks good to me. The tests failed because of some other reasons, I'll look into it. Thanks for your contribution!

This ioredis code helps power my home based business and I'll contribute as much as possible and some.  Thank you @luin!


Fixes reference error on the override delete function

Seems like a regression error after a refactoring.
Got a reference error on http. Using @http instead.

:+1: Supposing this is breaking the ability to delete schedule overrides?

Released in v2.1.13


Prepend kubevirt_ to recording rules and metrics

Some metrics and recording rules are difficult to find, this patch will
add a kubevirt_ prefix to those, making them more visible.
Signed-off-by: Yuval Turgeman<EMAIL_ADDRESS>
What this PR does / why we need it:
Generally, every component that ships metrics/alerts, names them with a common prefix, this helps the user search for those in the monitoring UI.
This PR renames and adds the kubevirt_ prefix to the following recording rules and metrics:
num_of_running_virt_api_servers -> kubevirt_up_virt_api_servers_total
num_of_running_virt_operators -> kubevirt_up_virt_operators_total
num_of_running_virt_handlers -> kubevirt_up_virt_handlers_total
num_of_running_virt_controllers -> kubevirt_up_virt_controllers_total
num_of_ready_virt_controllers -> kubevirt_ready_virt_controllers_total
num_of_ready_virt_operators -> kubevirt_ready_virt_operators_total
num_of_leading_virt_operators -> kubevirt_leading_virt_operators_total
leading_virt_controller -> kubevirt_leading_virt_controller
ready_virt_controller -> kubevirt_ready_virt_controller
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
it's just a follow up of #4636 since I don't have update rights there.
Release note:
Added a kubevirt_ prefix to several recording rules and metrics

kubevirt_up_virt_api_servers_total

Should they be named kubevirt_virt_api_servers_up_total? For example, we would also call metrics request_latency_seconds and not latency_request_seconds. I am also slightly unsure if we should not go with kubevirt_io_ to be fully consistent with e.g. labels and annotations which belong to us.

kubevirt_up_virt_api_servers_total

Oh and the servers seems to be there without a good reason. Consider removing servers from virt_api_servers.

kubevirt_up_virt_api_servers_total

Should they be named kubevirt_virt_api_servers_up_total? For example, we would also call metrics request_latency_seconds and not latency_request_seconds. I am also slightly unsure if we should not go with kubevirt_io_ to be fully consistent with e.g. labels and annotations which belong to us.

@sradco what do you suggest?

kubevirt_up_virt_api_servers_total

Should they be named kubevirt_virt_api_servers_up_total? For example, we would also call metrics request_latency_seconds and not latency_request_seconds. I am also slightly unsure if we should not go with kubevirt_io_ to be fully consistent with e.g. labels and annotations which belong to us.

@sradco what do you suggest?

I agree that we should use
kubevirt_virt_api_servers_up_total.
Like the kubevirt_hco_out_of_band_modifications_count metric. The operator name comes after the kubevirt prefix, Except for vmi metrics that start with kubevirt_vmi_ prefix.

The operator name comes after the kubevirt prefix

So should we modify all them according to this schema?

num_of_running_virt_api_servers -> kubevirt_virt_api_servers_up_total
num_of_running_virt_operators -> kubevirt_virt_operators_up_total
num_of_running_virt_handlers -> kubevirt_virt_handlers_up_total
num_of_running_virt_controllers -> kubevirt_virt_controllers_up_total
num_of_ready_virt_controllers -> kubevirt_virt_controllers_ready_total
num_of_ready_virt_operators -> kubevirt_virt_operators_ready_total
num_of_leading_virt_operators -> kubevirt_virt_operators_leading_total
leading_virt_controller -> kubevirt_virt_controller_leading
ready_virt_controller -> kubevirt_virt_controller_ready

Is there any other change?

The operator name comes after the kubevirt prefix

So should we modify all them according to this schema?

num_of_running_virt_api_servers -> kubevirt_virt_api_servers_up_total
num_of_running_virt_operators -> kubevirt_virt_operators_up_total
num_of_running_virt_handlers -> kubevirt_virt_handlers_up_total
num_of_running_virt_controllers -> kubevirt_virt_controllers_up_total
num_of_ready_virt_controllers -> kubevirt_virt_controllers_ready_total
num_of_ready_virt_operators -> kubevirt_virt_operators_ready_total
num_of_leading_virt_operators -> kubevirt_virt_operators_leading_total
leading_virt_controller -> kubevirt_virt_controller_leading

kubevirt_virt_controller_leading_total

ready_virt_controller -> kubevirt_virt_controller_ready

kubevirt_virt_controller_ready_total

Is there any other change?

num_of_running_virt_api_servers -> kubevirt_virt_api_servers_up_total

This one should be kubevirt_virt_api_up_total

So should we modify all them according to this schema?

Yes

Is there any other change?

Yes, servers from virt-api should be dropped.

So should we modify all them according to this schema?

Yes

Is there any other change?

Yes, servers from virt-api should be dropped.

done

/retest

leading_virt_controller -> kubevirt_virt_controller_leading

kubevirt_virt_controller_leading_total

ready_virt_controller -> kubevirt_virt_controller_ready

kubevirt_virt_controller_ready_total

They way like that for a specific reason, we should keep omitting the _total suffix otherwise we are not able to distinguish what before the rename was ready_virt_controller from what was num_of_ready_virt_controllers.
The same for leading_virt_controller.

/retest

/approve
the direction works now for me. You can put lgtm once you are ready.

/lgtm


Close vulnerabilities created by the bot

the bot found multiple vulnerabilities that need to be closed by updating the version.
Please go to the main package.json and the one inside example folder and try to upgrade all the packages one by one.
Please follow the following instruction to create the new branch:
git checkout release/0.7
git pull
git checkout -b 'feature/vulnerabilities'

closed by #446


replace base image centos7 by ubuntu:22.04

upgrade sonar_scanner version to <IP_ADDRESS>1
upgrade jdk version to 1.17
upgrade git version to 2.46.0

fix: kubesphere/project#4784

this pr is not finished but need merge now, i will fix it later


Accessing layers

Is there any way to simply access a layer/path of a Lottie animation in JS like you would in CSS?

does this help?
https://github.com/airbnb/lottie-web/wiki/SVG-and-HTML-ids-and-classes-to-reference-via-css-or-select-via-Javascript


⚠ Bofrost.at has degraded performance

In b10bf49, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 1484 ms

Resolved: Bofrost.at performance has improved in ec149ce after 15 minutes.


README typos

it is govered by physical first principles, these first principles do not describe the whole system.
and the acutal physics i

Thanks! https://github.com/SciML/HelicopterSciML.jl/commit/64a4934024432277e4817420cf1c8b72ac2f32ff
yeah... oops! haha


Mocked client disconnects instantly

Summary
A mocked RxBleClient disconnects automatically right after a connection has been made.

Preconditions
Using  "com.polidea.rxandroidble:mockclient:1.0.2"

Steps to reproduce actual result

Create a RxBleClient mock, as shown in the example.
Connect to a device using the mocked client.

Actual result
08-23 16:01:20.738 D/test: RxBleConnectionState{DISCONNECTED}
08-23 16:01:20.743 D/test: RxBleConnectionState{CONNECTING}
08-23 16:01:20.743 D/test: RxBleConnectionState{CONNECTED}
08-23 16:01:20.743 D/test: RxBleConnectionState{DISCONNECTED}

#### Expected result
```
08-23 16:01:20.738 D/test: RxBleConnectionState{DISCONNECTED}
08-23 16:01:20.743 D/test: RxBleConnectionState{CONNECTING}
08-23 16:01:20.743 D/test: RxBleConnectionState{CONNECTED}
```

Code for reproducing the problem
public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
//        RxBleClient rxBleClient = RxBleClient.create(this);
        RxBleClient  rxBleClient = setupMock();
        String macAddress = "D4:31:1D:1F:2F:97";
        RxBleDevice device = rxBleClient.getBleDevice(macAddress);

        device.observeConnectionStateChanges()
                .subscribe(connectionState -> {
                    Log.d("test", connectionState.toString());
                });
        Subscription subscription = device.establishConnection(this, false).subscribe(rxBleConnection -> {});
    }

    public RxBleClient setupMock() {
        return new RxBleClientMock.Builder()
                .addDevice(new RxBleClientMock.DeviceBuilder()
                        .deviceMacAddress("D4:31:1D:1F:2F:97")
                        .deviceName("Test")
                        .scanRecord(testScanRecordBytes())
                        .rssi(56)
                        .addService(
                                UUID.fromString("e7d713f0-a65b-4d1b-9fce-300c6ad8f751"),
                                new RxBleClientMock.CharacteristicsBuilder()
                                        .addCharacteristic(
                                                UUID.fromString("e7d73a7e-a65b-4d1b-9fce-300c6ad8f751"),
                                                new byte[] {2,3},
                                                new RxBleClientMock.DescriptorsBuilder().build()
                                        ).build()
                        ).build()).build();
    }

    private static byte[] testScanRecordBytes() {//same byte[] that was retrieved from a real scan of the device previously}
}

Simply uncomment the line  RxBleClient rxBleClient = RxBleClient.create(this);  and it works and stays connected to the real device "D4:31:1D:1F:2F:97".

Thank your for reporting. I've reproduced the issue and it's now waiting for the review https://github.com/Polidea/RxAndroidBle/pull/62


Fix compatibility issues with profiles.schema.json

This fixes two issues with profiles.schema.json:

The $schema should not end in a #
$defs is the official reserved keyword for schema re-use

See: http://json-schema.org/draft/2020-12/json-schema-core.html
PR Checklist

[x] I work here
[x] Tests added/passed
[x] Schema updated

Validation Steps Performed
The previous schema didn't pass https://jschon.dev/, the new schema does.

I suggest reviewing the two commits seperately.

@miniksa Actually I didn't check it with VS Code. Let me do that now, but I'm certain it'll work since it works with any of the online JSON schema testers out there.


TypeError from passing invalid arguments when there's more than one query present

A query such as:
query {
  requiredArgs(count: x) {
    scalar
    complexScalar
  }
  nonNullItem {
    scalar
    complexScalar
    variableScalar(count: 10)
  }
}

results in complexityMap, being undefined, and the error TypeError: Cannot convert undefined or null to object arising from this call.
Here's a reproduction https://github.com/dburles/graphql-query-complexity/blob/bug/src/tests/QueryComplexity-test.ts#L800-L821. Running this test will result in the error being thrown.
GraphQL should be reporting "Argument \"count\" has invalid value x.".

Hey @ivome, I've done some digging this morning, and I believe the underlying cause of this problem is that validation occurs in parallel. A query complexity rule cannot be used as if it were the last rule in the chain, as the rules are not ordered.
// Results in `TypeError: Cannot convert undefined or null to object`
validate(schema, document, [
  ...specifiedRules,
  createComplexityRule({ ... })
]);

I've updated the reproduction to show this occurring: https://github.com/dburles/graphql-query-complexity/blob/bd05756ddf52c57ddfa2ca4e65a528b05fa3480c/src/tests/QueryComplexity-test.ts#L822-L832
I believe then that you may need to make changes to accomodate complexityMap being undefined.

Thanks @ivome, this looks great! I'll have a look and see if there may be any additional test cases worth adding.

I've been thinking about adapting some test cases from the core GraphQL validator tests, and in reality I don't think it's scalable. Instead, the rule should be defensive and ensure that it's only acting on values that are present and are the expected type. There's an infinite variety of incorrectly formatted queries.

This is in a way what happens now. With the implemented fix, invalid values should raise a meaningful error message at least. This should be identical to the one that would be raised by the GraphQL library, since it uses the same function internally and just passes the error.
If you find any other invalid queries or edge cases that we need to address, feel free to open another ticket or PR. I'll close this here as the original issue is fixed.


refactor(types): vbyte -> storage score

Description of change

Renames (and refactors) the Rent trait to StorageScore and provides 2 fns: storage_score and rent_cost.
Renames RentStructure to RentParameters and changes its semantics to offsets.
Introduces the new RentStructure type which wraps a RentParameters and something unmemorable but has to do with the implicit account

Links to any relevant issues
Closes #1352
NOTE:
I turned this into a draft again, because the TIP isn't complete yet. So far this PR has implemented what was merged into iota.go here: https://github.com/iotaledger/iota.go/pull/537 (except for the closures that can be provided on some storage score implementors)

Closing in favour of https://github.com/iotaledger/iota-sdk/pull/1065


Birthday not being saved

@lcoenen
Before saving the birthday:

After saving the birthday:

Not saved.

This is confirmed. It should be an issue in src/containers/ProfileSettingsPage

Ok, I don't get how the values are correct in the first place when currentUser is null in ProfilePage.js

Ok, so the render function is executed several time (before and after loading), that's where those value came from. The system is now saving and retrieving the birthday correctly, but still not showing it inside the form.
Also, what will we do with the missing values? I guess the easier will be to ask for the birthday at signup.

The correct date is received by FieldBirthdayInput in this.props.value. Yet, this isn't shown correctly.

Everything have been fixed. The birthday is now asked at signup and the platform won't let you signup if you're not 18.


New execution host

This PR introduces a radically different IExecutionHost implementation AssemblyExecutionHost: instead of having a live "server" process for each document that accepts code to compile and run, RP compiles an EXE and runs it every time from disk. Output objects are delivered via stdout in JSON format. This means that RP processes are now very "pure". The only dependency is RoslynPad.Common which is a .NET Standard 2.0 assembly that has no other dependencies.
This aims to increase RP's compatibility with various libraries and scenarios. For example, there won't be a hard dependency on any assembly version that was used by the previous host (e.g. Newtonsoft.Json, Microsoft.CodeAnalysis, etc.) - it will mostly run your script code and a small bootstrapper that serializes dumped objects and exceptions. Also, getting a fresh process every run is much better IMO.
I invite you to test it out. Note it's still "alpha" - threre's no handling of assembly loading for example, so #r for local files won't work. This will be fixed before this feature is released.

I guess this also means our code won't be running on a UI thread? Would also be a win IMO...

The UI thread is a "feature" :) I think running single-threaded it can simplify a few scenarios (less chance of races), which might be why Roslyn's C# Interactive works this way. I can actually still support it by installing a sync context during init.
What's so bad about it? Forgetting ConfigureAwait can be a bug waiting to happen... :P

The way I use and view RP (and I suspect the vast majority of people) is as a quick and lightweight alternative to a VS C# console project, where I can just write some code and execute it real fast. If that code doesn't work for whatever reason that isn't easily apparent, I'm going to paste that code in a VS console app, and if it works there I'm going to assume it's some sort of issue in the way RP executes code - after all, it works just fine in VS right? I would then either report the issue or decide to use RP less because I don't trust it (even if I'm at fault, e.g. for forgetting ConfigureAwait).
IMHO this PR seems to go in a great direction, and installing some hidden SC during init would defeat the purpose. Besides, which SC would you install - WPF? What if I want to use WF or some other technology? Same questions about the assemblies you'd reference. And you'd have to make the thread STA, potentially creating differences far beyond the debugging ability of most devs.
Having said that, an optional feature like "run in WPF" context could be really cool (where you'd reference presentationframework.dll, make the thread STA, install the WPF SC, etc), as long as it's not the default.

which SC would you install?

Same as today, WPF for .NET Desktop, and Toub's SingleThreadSynchronizationContext for Core. Or perhaps Avalonia's.

What if I want to use WF

It would still work. The underline native API (i.e. message pump) is the same.
But I get your point, this could be configurable. It's a breaking change though - lots of RP users build UI elements and without a message loop they'd have to change their code.
Maybe I'll add an API, such as await SwitchToUIThread();.

Interesting that  DispatcherSynchronizationContext would work for WF, but surely there is a reason those are two different classes with what appear to be very different implementations?
I appreciate that the underlying message pump is the same WIN32 mechanism but certainly there are layers on top of it? For example maybe the shutdown mechanism works a little different so something like this could introduce weird bugs?

It's a fully supported scenario and was designed for it -- you can host WPF in WF and vice versa, and there can be only one message pump per thread.

Another nice advantage is that you get a directory with built executables you can just copy and use. It also handles dependencies (which was quite a bit of work to get right without using MSBuild...)
#r "nuget:Newtonsoft.Json/12.0.1"

using System.Runtime.InteropServices;

RuntimeInformation.FrameworkDescription.Dump();

Newtonsoft.Json.JsonConvert.SerializeObject(new { A = 1 }).Dump();

Run from shell:
PS> dotnet .\RoslynPad-Program1.dll
{"Children":null,"Header":null,"IsExpanded":true,"Type":"String (System)","Value":".NET Core 4.6.27317.07"}
{"Children":null,"Header":null,"IsExpanded":true,"Type":"String (System)","Value":"{\"A\":1}"}

Getting there....
TODO:

[ ] Fix exception results
[ ] Support for non-NuGet #r in .NET Core (add to depsfile)
[ ] Do not copy NuGet references in .NET Core


50 epochs usually way too much

Hi, I notice when doing the aggregated training, that usually after 1 or 2 epochs the best img, pixel AUROC is already reached. The many epochs after that only fluctuate around it and do not further improve. Is this something normal?

For example this is the training curves I get for tile with k=2:

You are correct. In aggregated training, as the aggregated training set is large enough, training several epochs is enough for some categories. In your case, as the detection result has reached >98% AUC after 3 epochs, it is fine to stop the training.

When we change the optimizer, for example to adam, the loss goes to -1 after one or two epochs already. It seems to me the model is collapsing to a trivial solution. By using SGD with the low learning rate, this collapse is maybe just delayed. What are your thoughts on this?

When we change the optimizer, for example to adam, the loss goes to -1 after one or two epochs already. It seems to me the model is collapsing to a trivial solution. By using SGD with the low learning rate, this collapse is maybe just delayed. What are your thoughts on this?

Also, when I include the test object in the training data, performance is actually worse. How could this be?


Add Resources section to README

Two changes:

Added a section of third-party resources to the README
Rearranged the official documentation options into a (hopefully) more readable bulleted list

refer: discussion #545

Good idea, agreed! The resources are probably a better place to get started as a beginner than DOC.md. I’ll tweak the README when I get home.
On Wed, Oct 12, 2022 at 15:41, L3MON4D3 @.***> wrote:

Nice, I like it 👍
Additionally, I think it might make sense to discourage heading straigh for DOC.md when starting out with luasnip.
WDYT about a redirection to the Resources-section near it/some kind of disclaimer?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

Just added a first attempt at a rewording, let me know what you think and feel free to change/rearrange!

Riiight, I can also push to your PR-branch.
I'll make some changes and summarize them here, easier to discuss I think:

split new users-section into lua and vscode/snipmate: If one only needs very simple snippets, it makes more sense to head to the snipmate/vscode-loaders
Replace linear approach (learn this -> this -> this) with basics -> several advanced/need to know topics: I think this makes more sense, after grokking the basics, there's no real order to the advanced stuff
Add note about ls.snippets =  to add_snippets-transition (tjs videos were recorded before we made that significant change)

Nice! I've added a few capitalization tweaks and upgraded the Getting Started section to its own heading but otherwise no major changes from your last commit and totally agree with the non-linear learning structure and Snipmate/Lua division.
I agree learning the advanced features in parallel makes more sense (instead of this -> this -> this), come to think of it this is how I learned myself haha. And good catch about the ls.snippets =  to add_snippets-transition in TJs video!

This looks perfect :+1:
Squash -> Merge?

This looks perfect +1 Squash -> Merge?

Great! Shall I squash locally and then force push upstream or do you want to take over from here and squash/merge this PR directly from GitHub?

Mhm I haven't tried github squash+merge yet, lemme see

Looks good I think.
Thank you very much👍👍


Add support for shared mailboxes

Adds support for creating an account that can be used to access a shared mailbox.
A new account configuration parameter called 'shared_mailbox' is used to specify the shared mailbox that the account will access.  The user authenticating must have permissions to access the shared mailbox.  The app registration will need the following additional permissions:
enable_update = false

Calendars.Read.Shared
Mail.Read.Shared
Tasks.Read.Shared

enable_update = true

Calendars.ReadWrite.Shared
Mail.ReadWrite.Shared
Tasks.ReadWrite.Shared

If shared_mailbox is specified, Calendar, Email, and ToDo features will use the mailbox specified by shared_mailbox.

As far as I know you can already access a shared mailbox, or at least I do with my current setup (unless of course what I have isn't a shared mailbox, pretty sure it is though).

Though when I look at this code it looks like you are setting the base as that shared mailbox, rather than accessing it as an extra mailbox to the primary one.

What value is set to 'shared_mailbox'? Is it email address or a guid?

As far as I know you can already access a shared mailbox, or at least I do with my current setup (unless of course what I have isn't a shared mailbox, pretty sure it is though).

The only way I see this possible is if the shared mailbox is associated with a user account with a valid license and you authenticate with this user.  In my case, I have several shared mailboxes but the user accounts associated with these do not have a license and cannot authenticate.  This helps reduce the number of required licenses keeping costs down.

What value is set to 'shared_mailbox'? Is it email address or a guid?

The shared mailbox primary email address.  When creating a shared mailbox, Exchange 365 creates a user account using the shared mailbox primary email address.

I use mailbox

As far as I know you can already access a shared mailbox, or at least I do with my current setup (unless of course what I have isn't a shared mailbox, pretty sure it is though).

The only way I see this possible is if the shared mailbox is associated with a user account with a valid license and you authenticate with this user. In my case, I have several shared mailboxes but the user accounts associated with these do not have a license and cannot authenticate. This helps reduce the number of required licenses keeping costs down.

It seems to allow me to create unlicensed users (I guess they may previously have been public folders), which I then set a password on. Then I can add them as extra users in my outlook config.

Just checked I create 'shared mailbox', then I think I added a password via the user panel, then I can add to outlook...

Ok, I'll look at it in the next few days. It needs some more work on permissions so that they are requested and checked correctly and some documentation adding.

The following has a Note regarding the usage of the shared mailbox user account.
https://learn.microsoft.com/en-us/microsoft-365/admin/email/about-shared-mailboxes?view=o365-worldwide
Thanks for looking at this, and thank you for continuing the maintenance for this integration!

Did you validate that this works for Tasks? When I enable it, it fails with the below
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url<EMAIL_ADDRESS>| Error Message: Invalid request

Also this error in Graph API
{
    "error": {
        "code": "invalidRequest",
        "message": "Invalid request",
        "innerError": {
            "code": "ErrorIncorrectRoutingHint",
            "date": "2023-05-04T10:06:52",
            "request-id": "6a30c992-f9ba-47ed-8317-d41901165bd2",
            "client-request-id": "94c535c3-62c7-5ae4-1dae-d5c3093a0f6b"
        }
    }
}

It seems even though there are permissions for it, it isn't supported.
https://github.com/microsoftgraph/microsoft-graph-toolkit/issues/1620

Please can you test the changes I have made.


Multiple clusters, one public IP and Letsencrypt

Hey everyone,
The question is pretty simple. Let's say we have 2 datacenters and we'd like to create a certificate for a domain name that points to a shared virtual IP accross these 2 datacenters (2 kubernetes clusters).
How would you proceed, because creating the same ingress on both datacenters you won't be sure where the challenge will be made? (Each time we add a new cluster, this certificate will be considered as a duplicate, does it ?)
Furthermore, as we have 2 cert-managers, we are not sure where the challenge will be made.
Note that we're using the http challenge.
Thanks for your help,
Smana

cert-manager doesn't really support operating in this mode. I'd recommend you have just one cluster responsible for issuing certificates, and have just this one cluster be responsible for updating/uploading the signed certificate to whatever load balancer is terminating TLS.
If there isn't a shared load balancer and you're instead using DNS based 'load balancing' or something, you'll need to set up some kind of a process to sync the Secret resource between clusters.
Multi-cluster/federation in Kubernetes has a fair few nuances and it may be worth looking at the 'federation v2' design to get an idea of the ways Kubernetes is making managing multiple clusters easier 😄


Remove redundant @[Dd]eprecated inside of deprecated class

Inspired by :
https://github.com/line/armeria/pull/2067#discussion_r325448418
Motivation :
@Deprecated annotations and @deprecated javadoc sentences on methods
of deprecated classes can be removed.
Modifications :
Remove @Deprecated annotations on methods of deprecated classes.
Remove @deprecated javadoc sentences on methods of deprecated classes.
Result :
Code clean-up.

@Deprecated annotations and @deprecated javadoc sentences on methods
of deprecated classes can be removed.

I'm not sure that this rule is applicable for previous codes. PTAL :bowing_man:

The @deprecated Javadoc tags in the methods provide some useful information which is not provided in the class-level Javadoc, so I guess it's better keeping them in this case?

had a chat with @trustin,
I agree that this kind of javadoc might be useful to users.
So, we better keeping them.
Thank you.

Thanks for your understanding, @jyblue !


Refresh the doc with github link

Hi Team,
We were checking this one of the customer where they mentioned that github link has been updated to the latest information about new version v1.2.0 also mentions about the managed identity Information.
Aslo wanted to document if the previous version v1.0.0 and v1.1.1 does not work with managed identity as we are seeing below errow while configuring managed identity with old plug-in
[ERROR][logstash.outputs.microsoftsentineloutput] Unknown setting 'managed_identity' for microsoft-sentinel-log-analytics-logstash-output-plugin
Can we update the document matching with Github link and also update the limitation with older version?
Github link: https://github.com/Azure/Azure-Sentinel/tree/master/DataConnectors/microsoft-sentinel-log-analytics-logstash-output-plugin

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

ID: 6e03e76d-fbbb-c86f-81c7-00ced202c9a7
Version Independent ID: fa3c76e9-c4f6-d314-bc24-5ed6fbc97311
Content: Use Logstash to stream logs with pipeline transformations via DCR-based API
Content Source: articles/sentinel/connect-logstash-data-connection-rules.md
Service: microsoft-sentinel
GitHub Login: @limwainstein
Microsoft Alias: lwainstein

@meetbhatt87
Thanks for your feedback! We will investigate and update as appropriate.

@meetbhatt87
Thank you for bringing this to our attention.
I've delegated this to content author @limwainstein, who will review it and offer their insightful opinions.

@limwainstein
Please review it and update the document as appropriate.

@cwatson-cat Is this your area?

#assign: @yelevin

Any update on this document update change?

@meetbhatt87 Thank you for your patience!
The documentation has been updated to reflect the information you requested. The changes should be visible on the Microsoft Learn website within the next 24 hours.
Thank you for your contribution!
cc: @batamig @cwatson-cat @Naveenommi-MSFT @PesalaPavan
#please-close

Is this the one updated recently??
Microsoft supports only the Microsoft Sentinel-provided Logstash output plugin discussed here. The current plugin is named microsoft-sentinel-log-analytics-logstash-output-plugin, v1.2.0. You can open a support ticket for any issues regarding the output plugin.
This version, v1.2.0, now supports Managed Identity authentication on both Azure VMs and Azure Arc-connected machines. For more version information, see the changelog. Older versions do not support managed identity.
Microsoft does not support third-party Logstash output plugins for Microsoft Sentinel, or any other Logstash plugin or component of any type.
See the prerequisites for the plugin’s Logstash version support.

Is this the one updated recently??

@meetbhatt87  Yes, this is the update I made in response to your request. Note the updated version number (first paragraph) and the statement about Managed Identity support (second paragraph).

Microsoft supports only the Microsoft Sentinel-provided Logstash output plugin discussed here. The current plugin is named microsoft-sentinel-log-analytics-logstash-output-plugin, v1.2.0. You can open a support ticket for any issues regarding the output plugin.
This version, v1.2.0, now supports Managed Identity authentication on both Azure VMs and Azure Arc-connected machines. For more version information, see the changelog. Older versions do not support managed identity.
Microsoft does not support third-party Logstash output plugins for Microsoft Sentinel, or any other Logstash plugin or component of any type.
See the prerequisites for the plugin’s Logstash version support.

Hi Can you please update the information on the github link as I see that below part still shows version 1.1.0
Microsoft Sentinel provides a new output plugin for Logstash. Use this output plugin to send any log via Logstash to the Microsoft Sentinel/Log Analytics workspace. This is done with the Log Analytics DCR-based API. You may send logs to custom or standard tables.
Plugin version: v1.1.0
Released on: 2023-07-23
Where as on the doc it shows:
Microsoft supports only the Microsoft Sentinel-provided Logstash output plugin discussed here. The current plugin is named microsoft-sentinel-log-analytics-logstash-output-plugin, v1.2.0. You can open a support ticket for any issues regarding the output plugin.
This version, v1.2.0, now supports Managed Identity authentication on both Azure VMs and Azure Arc-connected machines. For more version information, see the changelog. Older versions do not support managed identity.
Microsoft does not support third-party Logstash output plugins for Microsoft Sentinel, or any other Logstash plugin or component of any type.
See the prerequisites for the plugin’s Logstash version support.

@yelevin Let me know if you have received my update on this.

Hi Can you please update the information on the github link as I see that below part still shows version 1.1.0
Microsoft Sentinel provides a new output plugin for Logstash. Use this output plugin to send any log via Logstash to the Microsoft Sentinel/Log Analytics workspace. This is done with the Log Analytics DCR-based API. You may send logs to custom or standard tables.
Plugin version: v1.1.0 Released on: 2023-07-23
Where as on the doc it shows:
Microsoft supports only the Microsoft Sentinel-provided Logstash output plugin discussed here. The current plugin is named microsoft-sentinel-log-analytics-logstash-output-plugin, v1.2.0. You can open a support ticket for any issues regarding the output plugin.
This version, v1.2.0, now supports Managed Identity authentication on both Azure VMs and Azure Arc-connected machines. For more version information, see the changelog. Older versions do not support managed identity.
Microsoft does not support third-party Logstash output plugins for Microsoft Sentinel, or any other Logstash plugin or component of any type.
See the prerequisites for the plugin’s Logstash version support.

Hi Meet,
The GitHub link has the authoritative version. It was updated last month to 1.2.0, and you asked me to update the public documentation, which I did. It turns out that update was released in error and the current version has reverted to 1.1.0. I have now changed the documentation back to what it was at the beginning, reflecting version 1.1.0.
Thanks for your feedback.


Remove coreutils package from Alpine build dependencies

Because I think that it's not needed.
Refs https://github.com/hassio-addons/addon-base-python/issues/102
Refs https://github.com/hassio-addons/addon-base-python/pull/103

I suppose the CI can answer this question, so I would appreciate if someone could approve it so that the CI runs.

Ah, this is a historical quirk!  It used to be that BusyBox (and thus Alpine) didn't include nproc, so we had to install coreutils for it (or use getconf _NPROCESSORS_ONLN).  At some point that changed, and busybox now includes an nproc implementation! :smile: :partying_face:

Awesome! Thank you!


feat(51086): satisfies support in JSDoc

Fixes #51086

@typescript-bot pack this
@typescript-bot perf test this faster

The issue is still under discussion, it's just a POC, so maybe the behavior should be different...

@typescript-bot pack this

@DanielRosenwasser Could you take a look at these changes? I want to be sure about

We would like @satisfies to also work in declaration positions - enforce the assignability check on, and also contextually type, the initializer expression(s?).

@DanielRosenwasser Could you take a look at these changes? I want to be sure about

We would like @satisfies to also work in declaration positions - enforce the assignability check on, and also contextually type, the initializer expression(s?).

I think the specific use case we had in mind was a @satisfies tag before the declaration itself.
/** @satisfies {{ f: (x: string) => string }} */
let obj1 = { f: s => s.toLowerCase() }; // should work

/** @satisfies {{ f: (x: string) => string }} */
let obj2 = { g: "oops" }; // should error

similar to how an @type tag can be placed.

@typescript-bot pack this
@typescript-bot perf test this

@typescript-bot pack this

So we tried @satisfies a little bit today and here's what we noticed.

@satisfies is not currently offered in completions for JSDoc tag names for declaration positions.
There are no type name completions in the braces of /** @satisfies {$} */

Those are the two things I would want to get fixed with this PR.

Something minor that we noticed was that there are mismatches between what TypeScript does in annotation/assertion/satisfies positions, along with what the corresponding JSDoc equivalents are.
// TS file
let a: string = 123;
//  ~

let b = 123 as string;
//      ~~~~~~~~~~~~~

let c = 123 satisfies string;
//                    ~~~~~~

// JS file
/** @satisfies {string} */
let a = 123;
//  ~

let b = /** @type {string} */ (123);
//                 ~~~~~~

/** @satisfies {string} */
//              ~~~~~~
let c = 123;

let d = /** @satisfies {string} */ (123);
//                      ~~~~~~

These are not consistent, but to be honest, I don't want you to change what you have in this PR because it would end up dragging it on and it's a separate concern from the feature itself. I'd rather file a separate follow-up issue instead.


resolve lint error for register_email_layout.xml

Currently lint fails because an extra xmlns:android declaration is found in the register_email_layout.xml.  This pull request removes the extra declaration.

@wuman nice catch, thanks!


Add reviewers

Adding reviewer names to the website by introducing an additional "Reviewer: [name]" line on the individual project pages.
To make it clear that all micropubs were reviewed by someone, the pages of groups whose mentor reviewed their work now feature a line like "Mentor and reviewer: [name]".
All non-mentor reviewers were informed about their names being added to the website as our default step of action and were given an opportunity to object. None did.

Thanks for this update @zanemit! I'm wondering if we should wait till the final submission on zenodo or at least the seminars  before adding reviewer names?

Sure, postponing this until the content on those pages includes the updates/corrections requested by the reviewers makes sense. 👍


Create dataset-fixed.py

Closing because right now it didn't fix it, I have more issues than a box of tissues LOL


python38Packages.progressbar2: 3.53.1 -> 3.53.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from passthru.updateScript.
meta.description for python38Packages.progressbar2 is: "Text progressbar library for python"
meta.homepage for python38Packages.progressbar2 is: "https://progressbar-2.readthedocs.io/en/latest/"
meta.changelog for python38Packages.progressbar2 is: ""
Updates performed

Ran passthru.UpdateScript

To inspect upstream changes
Impact

Checks done (click to expand)

built on NixOS

Warning: a test defined in passthru.tests did not pass

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

found 3.53.2 with grep in /nix/store/wnzqwiq8d10shqw5lj09nhynyxgcp596-python3.8-progressbar2-3.53.2

found 3.53.2 in filename of file in /nix/store/wnzqwiq8d10shqw5lj09nhynyxgcp596-python3.8-progressbar2-3.53.2

directory tree listing: https://gist.github.com/123f2b163c6367d458a6c79edbbdc115

du listing: https://gist.github.com/7a514b66d771df20781155872749e37e

Rebuild report (if merged into master) (click to expand)

48 total rebuild path(s)

12 package rebuild(s)

12 x86_64-linux rebuild(s)
12 i686-linux rebuild(s)
12 x86_64-darwin rebuild(s)
12 aarch64-linux rebuild(s)

First fifty rebuilds by attrpath
portmod
python38Packages.angr
python38Packages.angrop
python38Packages.baselines
python38Packages.gradient
python38Packages.progressbar2
python39Packages.angr
python39Packages.angrop
python39Packages.baselines
python39Packages.gradient
python39Packages.progressbar2
truvari

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/wnzqwiq8d10shqw5lj09nhynyxgcp596-python3.8-progressbar2-3.53.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A python38Packages.progressbar2 https://github.com/r-ryantm/nixpkgs/archive/895592ae3b518489440d3e441f035f3f90dfbd00.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/wnzqwiq8d10shqw5lj09nhynyxgcp596-python3.8-progressbar2-3.53.2
ls -la /nix/store/wnzqwiq8d10shqw5lj09nhynyxgcp596-python3.8-progressbar2-3.53.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
nixpkgs-review took longer than 45m and timed out

Maintainer pings
cc @ashgillman @turion for testing.

Result of nixpkgs-review pr 137283 at 895592ae run on aarch64-linux 1

1 package marked as broken and skipped:

truvari

7 packages failed to build:

portmod
python38Packages.angr
python38Packages.angrop
python38Packages.gradient
python39Packages.angr
python39Packages.angrop
python39Packages.gradient

2 packages skipped due to time constraints:

python38Packages.baselines
python39Packages.baselines

2 packages built successfully:

python38Packages.progressbar2
python39Packages.progressbar2

1 suggestion:

warning: unused-argument
Unused argument: python.
Near pkgs/development/python-modules/progressbar2/default.nix:2:3:
  |
2 | , python
  |   ^

Note that build failures may predate this PR, and could be nondeterministic or hardware dependent.
Please exercise your independent judgement. Does something look off? Please file an issue or reach out on IRC.

This is a semi-automatic executed nixpkgs-review with nixpkgs-review-checks extension. It is checked by a human on a best effort basis and does not build all packages (e.g. lumo, tensorflow or pytorch).
Result of nixpkgs-review pr 137283 run on x86_64-linux 1

5 packages failed to build and already failed to build on hydra master:

portmod: log was empty
python38Packages.baselines: log was empty
python38Packages.gradient: log was empty
python39Packages.baselines: log was empty
python39Packages.gradient: log was empty

7 packages built:

python38Packages.angr
python38Packages.angrop
python38Packages.progressbar2
python39Packages.angr
python39Packages.angrop
python39Packages.progressbar2
truvari


pull request for e2e test at 11/13/2016 06:56:10

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

optest/docs/updated_at.md
:white_check_mark:Succeeded

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


HubPress does not parse alphanumeric gists

Would it be possible to adjust the replace regex to parse alphanumeric signs?

https://github.com/HubPress/hubpress-plugin-asciidoc/pull/1


Added Entity Attach & range functions

You probably should make all those "float x, float y, float z" and similar parameters vectors.


New contributions

Hi patrick, Thanks for the improvements made. I have two new contributions:

When I am in the last row I want the focus to go to the next column first row enter key.

Allow summary of columns setEditable(false); By pressing the enter key to the next column.
Example
Add code in method initGrid
grid.getColumn("col7").setEditable(false);
Add code in method printChangedRow
int sum = Integer.valueOf(ds.getItem(itemId).getItemProperty("col3").getValue().toString())
+ Integer.valueOf(ds.getItem(itemId).getItemProperty("col4").getValue().toString())
+ Integer.valueOf(ds.getItem(itemId).getItemProperty("col5").getValue().toString())
+ Integer.valueOf(ds.getItem(itemId).getItemProperty("col6").getValue().toString());
 ds.getItem(itemId).getItemProperty("col7").setValue(sum);

Thanks

This sounds natural and should not be hard to add that feature. Thanks for the hint.

This thing I think outside of the scope of this add-on. It is very application specific which columns should be added up (or performed other types of calculation etc.) Also from perspective of separation of concern this should be implemented in the Model (refer to MVP paradigm). So I would implement calculations directly in model class to the underlying container and just set the summary column not editable.

I added implementation 1. to version 0.5.4

Hi patrick, Thanks for implementation.


Fix linting

Closes #49

Nice. Can you turn on strict linting here (https://github.com/NebraLtd/hm-config/blob/master/.github/workflows/python-tests.yml)


refactor(layers/prometheus-client): provide consistent APIs

Which issue does this PR close?
Related issue: https://github.com/apache/opendal/pull/5069#discussion_r1736066873
Related PR: https://github.com/apache/opendal/pull/5072
Rationale for this change
Provide similar APIs for PrometheusLayer and PrometheusClientLayer
What changes are included in this PR?

support configurable params like PrometheusLayer
impl Default for PrometheusClientInterceptor and PrometheusClientLayer
add PrometheusClientLayer::register
fix metrics name
remove OperationErrorsTotalLabels
add more examples in doc

Are there any user-facing changes?
API breaking change

@Xuanwo maybe you can also take a look at this PR?

@Xuanwo maybe you can also take a look at this PR?

This PR appears to include many changes from https://github.com/apache/opendal/pull/5072. Perhaps we should merge https://github.com/apache/opendal/pull/5072 first?

@Xuanwo maybe you can also take a look at this PR?

This PR appears to include many changes from #5072. Perhaps we should merge #5072 first?

Yeah, I just want to give you more information about why I wrote this to provide similar APIs.


PVlib Forecast EXE

Hello everyone
First, I would like to introduce myself, I work on the O&M of PV plants, and I was looking in a way to forecast production so I found that PVlib has a forecast module, but even though I am very new at python I was able to make a .py that gives me the PoA forecast! However I would like to have this tool as an standalone application withouth needing to install python and pvlib and stuff on my work computer.
I made my program in Jupyter, then I converted it to .py (it runs very well) and finally I used pyinstaller to create an .EXE that I can run on CMD and get the resulting CSV file but, I get the following errors:
File "solar_FX_py.py", line 15, in
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in _load_unlocked
File "c:\users...\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.dict)
File "pvlib\forecast.py", line 5, in
from netCDF4 import num2date
File "", line 991, in _find_and_load
File "", line 975, in _find_and_load_unlocked
File "", line 671, in load_unlocked
File "c:\users...\anaconda3\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 493, in exec_module
exec(bytecode, module.dict)
File "netCDF4_init.py", line 3, in
File "include\membuf.pyx", line 16, in init netCDF4._netCDF4
AttributeError: type object 'netCDF4._netCDF4._MemBuf' has no attribute 'reduce_cython'
I have spent many days trying to figure out a fix for this but without success, I installed pvlib using the (optional) recommendation for forecast, and as I said, the .py file runs perfectly, but when I create the .exe it does not.
IS there a way to fix this? Or is there a better way to create a standalone application?
Thanks!!

I don't use pyinstaller, so this mostly guessing: it looks like pyinstaller is finding and installing netCDF4, otherwise there would be a different error at this line

File "pvlib\forecast.py", line 5, in
from netCDF4 import num2date

So I think the issue with netCDF4 and its dependencies, rather than pvlib.
Maybe this post reporting the same problem would be helpful.
There have been several issues reported here related to conflicts between netCDF4 and cftime version - you can search the Issues for cftime, maybe there are clues there that will help you.

Not a pvlib issue. I suggest asking this question on stack overflow. Good luck!


Use specialized prediction?

 Lightning permits one to define a predict_step method. If the user does not specify this, prediction is just the same as calling forward.
It seems to me from this that we could likely move some of that code (the squeeze, transpose, and max) into predict_step for the appropriate modules, making it so that there's less Torchyness, and so we don't need to pass around or switch on the arch string.

Approve of porting more logic to predict_step. Having model specific parts of evaluation is a personal annoyance (also my fault...)

Cool, I'm going to assign you. It looks like some can go in the base and some in the transducer and that would cover it?

Should work. Will make some of life easier anyhow. Will get to it later in the week.

Closed in #44.


FrameElement.reload() is currently useless

Hi, I came across the following issue using the reload method.
From the docs:
FrameElement.reload() is a function that reloads the frame element from its src.

When I let Turbo load the content of FrameElement from it's src attribute, the FrameElement from the fetch-response is expected not to have a src attribute set with the same value like the requesting Frame. If it does, this will result in following error in the browser console and the response frame is discarded:
Error: Matching <turbo-frame id="frame_id"> element has a source URL which references itself

So when omitting the src attribute on the response Frame, the requesting Frame gets replaced and the original src attribute is lost. Therefore calling FrameElement.reload() will have no effect, since there is no src value to fetch the content from.
In my opinion there are three possible solutions:

Remember the src url a frame was fetched from and keep it when the frame is replaced
Allow the response frame to have the src attribute set with the same value and omitting endless loading the frame from the same url
Remove the reload() method

I would happy if solution 1 or 2 get implemented because I like to have this feature ;-)

When thinking about it:
Why not store the original src value in a new field  e.g. loaded-from? in the fetched Frame?. Then reload() would basically  look like this:
this.src = this.loaded_from

Oh my bad! :man_facepalming:
I just encountered, that the frame causing this issue was replaced by a TurboStream and therefore the src attribute was gone...


setup.py: Install nomkl.

Make sure nomkl is listed in our build and install requirements even though it is required by openblas. This seems to improve behavior when adding other dependencies that make use of openblas.

Seems to be doing the right thing.


fix: bug with unaligned short read

So what's currently happening is when requesting an unaligned amount of bytes and the read is short, such that it crosses a word boundary, the guest will overwrite the last word with the lastword return from the host. This is a workaround to avoid changing the host.
Right now what this does is:
|----------request 15 bytes---------------|
|-----3x SyscallRecord words------|
00 01 02 03 04 05 06 07 08 09 0a 00

and then the last word writes over the end of the buffer, zeroing the bytes written in the last word until aligned:
                        |lastword-|
00 01 02 03 04 05 06 07 00 00 00 00

Alternative being the host doesn't statically set the guest memory based on #requested.floor_div(4), but instead only create a SyscallRecord with the full words written, and re-use this fill from last word logic.
|----------request 15 bytes---------------|
|--2x SyscallRecord---| |lastword|
00 01 02 03 04 05 06 07 08 09 0a

where currently what it does in this case (from changes in this PR) is just removing writing the lastword if a short read past a word boundary:
|----------request 15 bytes---------------|
|-----3x SyscallRecord words------|
00 01 02 03 04 05 06 07 08 09 0a 00

Note that with this proposed implementation, as well as the current implementation, if a lot more bytes are requested than available, there are more words in the SyscallRecord created than necessary, setting all of the buffer bytes to 0. Unclear to me how much of an impact this has on proving.
|---------------request 19 bytes------------------------|
|----------4x SyscallRecord words-------------|
00 01 02 03 04 05 06 07 08 09 0a 00 00 00 00 00

I don't know what is more ideal, but hope this workaround or at least one of these tests is helpful. Those tests were just created to help narrow down the issue, happy to change them if this PR actually comes through :)

After discussion, we confirmed this issue but clarified the expected behavior. When the guest requests more data than the host provides, the circuit constrains the copy-in will overwrite exactly as many words as the number of bytes requested, rounded down to the nearest multiple of WORD_SIZE=4. In the code adjusted with https://github.com/risc0/risc0/pull/1557/commits/2e41d84692579a48bff9de61ecca515bf266c8b9, the guest upholds the simple invariant that it will overwrite the entire region pointed to in the sys_read request. When the host has less data to send, any data in the tail past what the host provides will be filled with zeroes, up to and including any trailing unaligned writes. (If we are being very precise, the host always provides exactly as much data as the guest requests, but it will set this tail to zeroes and return the length of meaningful data in it's return registers from the ecall)

Looks like the Ethereum CI is failing with an issue on recursive checkout.
https://github.com/risc0/risc0/actions/runs/8514140789/job/23319263768?pr=1557#step:5:168
I am going to look into that issue. Also, I feel quite confident that this PR is not at risk of breaking the risc0-ethereum, so someone wants to hit the (red) merge button, feel free. I don't want to make that call by myself.


rbnotes show  crashes when a valid but non-existing timestamp is passed

Execute the following command:
> rbnotes show<PHONE_NUMBER>5960

Then, it crashes.  Ruby says:
/Users/mnbi/.gem/ruby/3.0.0/gems/textrepo-0.5.8/lib/textrepo/file_system_repository.rb:124:in `read': missing timestamp:<PHONE_NUMBER>5659 (Textrepo::MissingTimestampError)
	from /Users/mnbi/.gem/ruby/3.0.0/gems/rbnotes-0.4.13/lib/rbnotes/commands/show.rb:25:in `block in execute'
	from /Users/mnbi/.gem/ruby/3.0.0/gems/rbnotes-0.4.13/lib/rbnotes/commands/show.rb:25:in `map'
	from /Users/mnbi/.gem/ruby/3.0.0/gems/rbnotes-0.4.13/lib/rbnotes/commands/show.rb:25:in `execute'
	from /Users/mnbi/.gem/ruby/3.0.0/gems/rbnotes-0.4.13/exe/rbnotes:43:in `run'
	from /Users/mnbi/.gem/ruby/3.0.0/gems/rbnotes-0.4.13/exe/rbnotes:50:in `<top (required)>'
	from /Users/mnbi/.gem/ruby/3.0.0/bin/rbnotes:23:in `load'
	from /Users/mnbi/.gem/ruby/3.0.0/bin/rbnotes:23:in `<main>'

Textrepo::FileSystemRepository#read may raise an exception when a file does not exist which is associated to the given timestamp.  It works as designed.  However, Rbnotes::Commands::Show#execute does not handle the exception even if it call the method.  This is the cause of the symptom.

Fix will be:

catch Textrepo::MissingTimestampError at Show#execute,
raise Rbnotes::MissingTimestampError which has been already caught at the toplevel.


feat(router): add alternate-content option to route

feat(router): add alternate-content option to route
Description
Hey, I discussed this last week with @MGatner on slack. I was wondering if we could have the same route point to different controller methods depending on the user request. For example, a user might request a route with "application/json" to get json data or else be shown html.
Apparently, the router does not support this yet. I was invited to submit a PR, so here it is :)
With many hours trying to understand and tweak the Router, I've come up with a (debatable) solution to extend the route options. Basically, one would have to add an "alternate-content" option to any route with this format:
$routes->add('bar', 'TestController::default', [
    'alternate-content' => [
        'application/json' => 'AnotherTestController::json',
        'application/activity+json' => 'ActivityPubTest::actor',
        'application/ld+json; profile="https://www.w3.org/ns/activitystreams"' => 'ActivityPubTest::actor',
    ],
]);

Then, when handling the route, the router would check if there is any alternate content type to match to the request's accept header. If so, before parsing out the controller and method names + params, the "TestController::default" string would be replaced by the controller method string associated with the content-type. I've injected the code were I thought it would make sense and reused some of the negotiator service logic to match the content-types.
To finish, it's my first PR here and I do not have much experience with the CodeIgniter4 code base, so any feedback would be much appreciated, whether it is about the overall solution, tests, naming, style...
Thanks!
Checklist:

[x] Securely signed commits
[ ] Component(s) with PHPdocs
[ ] Unit testing, with >80% coverage
[ ] User guide updated
[ ] Conforms to style guide

It seems to me that header level routing is overkill.
Header-based business logic can also be implemented in a controller.

It seems to me that header level routing is overkill.
Header-based business logic can also be implemented in a controller.

Thank you for the PR. My initial impression is that it feels a little strange to "override" the $to portion in an option. Having not looked into this deeply, is there no way to create Routes with multiple criteria? (In this case it would be "verb - contentType")
One breaking change noted in-line. This would also need coverage in the User Guide but let's get the community to weigh in and figure out the best approach so you don't end up redoing/wasting work.

I thought of changing the routes array structure at first as you mentioned but was reluctant to it because of the breaking change. That's why I went with extending the options as it was a good way of introducing the change without too much hassle.

It seems to me that header level routing is overkill.
Header-based business logic can also be implemented in a controller.

That's what I actually did before looking for another solution. I'm working on a project that requires many routes to have different content based on the accept header, I was wondering if the router provided something as such. Now that I've dug a bit more into the code, I guess it could be done with a filter like @MGatner initially directed me to. I'll try it.
Thanks for the feedback!

Thank you for the PR. My initial impression is that it feels a little strange to "override" the $to portion in an option. Having not looked into this deeply, is there no way to create Routes with multiple criteria? (In this case it would be "verb - contentType")
One breaking change noted in-line. This would also need coverage in the User Guide but let's get the community to weigh in and figure out the best approach so you don't end up redoing/wasting work.

I thought of changing the routes array structure at first as you mentioned but was reluctant to it because of the breaking change. That's why I went with extending the options as it was a good way of introducing the change without too much hassle.

It seems to me that header level routing is overkill.
Header-based business logic can also be implemented in a controller.

That's what I actually did before looking for another solution. I'm working on a project that requires many routes to have different content based on the accept header, I was wondering if the router provided something as such. Now that I've dug a bit more into the code, I guess it could be done with a filter like @MGatner initially directed me to. I'll try it.
Thanks for the feedback!

I think a Filter is the way to go. It can return an altered Request to impose a new "route" based on the headers. I think it would be awesome to be able to do something like:
$routes->post('users/update', 'ApiController::user', ['content' => 'XMLHttpRequest']);
$routes->post('users/update', 'WebController::users/update');

But I don't think Routes can support this.
@yassinedoghri This is good work though, if you think you would still use this in your own project I would recommend releasing it as a module. Now that core Services can be overrides by third-party libraries it shouldn't be too difficult to support.

I think a Filter is the way to go. It can return an altered Request to impose a new "route" based on the headers. I think it would be awesome to be able to do something like:
$routes->post('users/update', 'ApiController::user', ['content' => 'XMLHttpRequest']);
$routes->post('users/update', 'WebController::users/update');

But I don't think Routes can support this.
@yassinedoghri This is good work though, if you think you would still use this in your own project I would recommend releasing it as a module. Now that core Services can be overrides by third-party libraries it shouldn't be too difficult to support.

I played a bit with the filters, correct me if I'm wrong but there's no way to change the controller / method that will be called after the "before" filter, right?
AFAIK, there would be currently no way (apart from doing it in each controller method somehow) of having one route serve multiple content types :/

$routes->post('users/update', 'ApiController::user', ['content' => 'XMLHttpRequest']);
$routes->post('users/update', 'WebController::users/update');

@MGatner This would be great, I might override some core services to make this work as you suggested.

I played a bit with the filters, correct me if I'm wrong but there's no way to change the controller / method that will be called after the "before" filter, right?
AFAIK, there would be currently no way (apart from doing it in each controller method somehow) of having one route serve multiple content types :/

$routes->post('users/update', 'ApiController::user', ['content' => 'XMLHttpRequest']);
$routes->post('users/update', 'WebController::users/update');

@MGatner This would be great, I might override some core services to make this work as you suggested.

@yassinedoghri You're right, the controller and method are set during routing and changing the request does not re-process these. This is something that should likely be changed, but for now it feels like you are backed into a corner and will either need to replace core services or work with redirects or something else less ideal.

@yassinedoghri You're right, the controller and method are set during routing and changing the request does not re-process these. This is something that should likely be changed, but for now it feels like you are backed into a corner and will either need to replace core services or work with redirects or something else less ideal.

@MGatner is this PR to be considered in the future or we can close this for now?


NLOHMANN_JSON_SERIALIZE_ENUM should not silently choose first value by default

What is the issue you have?

The automatic enum serialization, per the docs, chooses the first pair in the map if the json value does not map to an enum.
This doesn't make sense for many cases where the enum doesn't include an INVALID option.
It would be useful if there were another macro which throws an exception for invalid values instead.
Please describe the steps to reproduce the issue.

Use NLOHMANN_JSON_SERIALIZE_ENUM to generate to_json/from_json methods.
Try to deserialize an invalid value.
Deserialized value silently falls back to first defined pair.

Can you provide a small but working code example?

#include <iostream>

#include "json.hpp"

using namespace std;
using json = nlohmann::json;

enum class things { a, b, c };

NLOHMANN_JSON_SERIALIZE_ENUM(things, {{things::a, "a"},
                                      {things::b, "b"},
                                      {things::c, "c"}});

int main() {
  things a = json("a");
  things b = json("b");
  things c = json("c");
  things d = json("d");

  cout << json("a").dump(4) << " -> " << int(a) << endl;
  cout << json("b").dump(4) << " -> " << int(b) << endl;
  cout << json("c").dump(4) << " -> " << int(c) << endl;
  cout << json("d").dump(4) << " -> " << int(d) << endl;

  return 0;
}

Output:
"a" -> 0
"b" -> 1
"c" -> 2
"d" -> 0    <-- prefer to throw an exception

What is the expected behavior?

things d = json("d"); should throw an exception.
The existing macro's behavior is fine for certain cases -- I am proposing another macro or option.
And what is the actual behavior instead?

d is silently set to things::a with no way to see that it was an invalid value.
Which compiler and operating system are you using?

Compiler: Visual Studio 2019
Operating system: Windows

Which version of the library did you use?


app: createLinkClick handler

A future commit will add an automated end-to-end test to cover the actual XHR POST behavior, but confirmed manually that end-to-end behavior works.
Also establishes the convention of attaching a Promise to the click target as the done property to facilitate testing.

Coverage increased (+0.05%) to 98.114% when pulling b86c13466bc2bc719333ee3683773f042a395a04 on ui-create-link-handler into ad7b923bc9dfd1583037095330af6f387c8bbd40 on master.


My SBE appears to be confused about a Queue

I updated to the latest version - 4.1.113 - and I am still seeing these problems.  I checked the Queue in the Azure Portal and it lists 3 messages in the DLQ and 0 for all other counts of messages.
As for SBE:

it shows 3 messages as being in the DLQ, yet peeking at the DLQ messages returns 0.
peeking at regular messages returns all 3 of them.
purging regular messages reports that 0 messages have been purged.
purging the DQL messages takes forever - 364539 milliseconds - and does nothing: reports  that 0 messages have been purged.

Just for verification, can you delete the queue and re-create it, dead-letter a few messages and see if the behavior you see now is reproducible? Thanks.

Hi Sean,
Thanks very much for having looked into this issue!
I can easily foresee that on a new queue everything will work great.  The problem is that replacing Queues that operate in production is a rather costly endeavor, especially if we'll need to do it on some schedule.  Could you please suggest how we should go about diagnosing what may have gone wrong with this particular Queue and how to fix it?  On the Azure Portal the Queue looks good, there were neither warnings nor actionable items.
Thanks very much,  Eugen

Use Service Bus Explorer and change a property for the queue such as Batch operations and then update the queue. Change the property back and update again. That will recreate the backend for the end.
Is it a partitioned queue?

Thanks very much Erik, your trick got my Queue back to its senses.
Yes it is a partitioned Queue.  Why were you asking please?

Partitioned queue sources messages from different servers. Non-partitioned queue doesn't. It could be the issue with the count (assumption).
Updating or re-creating an entity forces a refresh on the broker side of things.

@eugen-nw , the reason I asked was that I think this happens more often on partitioned queues as they utilize 16 message brokers whereas non-partitioned only use one.


llvm build validation

Adding fixes to issues brought up in previous reviews.
Build now executes the python, pyqir, and qirlib tests which exercise various bits of LLVM including JIT compilation and IR reading/writing.
LLVM build now runs through normal build.ps1
LLVM builds are now accelerated with sccache

/azp run


Add more structure to UI

FastCS now supports creating sub screens for sub controllers. This should be implemented for Eiger to add some more structure and organisation to the UI, e.g. thresholds can appear on a subscreen.
Acceptance Criteria

Thresholds and other suitable sub groups split into sub controllers and appear on separate screens

Hoping to get more testing time with a real Eiger on tuesday so I can make a not of the JSON responses to putting to various fields - especially those with non-unique suffixes like "mode" so I can update the tickit sim. Since SIMPLON API returns a list of changed parameters, I need to check if it attempts to make these unique - currently fastcs-eiger doesn't handle these parameters properly in update() - they silently fail in the getattr. If they're not unique we may have to try and use context to determine which of the parameters it changed by considering which parameter we put to.

I have been making updates to the tickit sim while working on fastcs-eiger. There are two pending PRs:

https://github.com/DiamondLightSource/tickit-devices/pull/111
https://github.com/DiamondLightSource/tickit-devices/pull/112

What version of the tickit sim have you be trying?

I have been making updates to the tickit sim while working on fastcs-eiger. There are two pending PRs:

Update Eiger API tickit-devices#111
Add Eiger stream2 support tickit-devices#112

What version of the tickit sim have you be trying?

The eiger-stream2 branch

Yes I had noticed this and we can handle it because the changed parameters are always in the same subsystem, so we just need to check the subsystem of the put parameter. This would also be be made easier by splitting subsystems into their own sub controller, because then the attribute will always match the leaf of the URI, whereas currently we combine the last two so it is not as clear.

Okay great, I'll have a go at that then. I did some testing today so I have a record of what the list of responses are for each parameter (I wasn't sure if this list changes depending on the value but I assume not since some parameters like photon_energy return a list of ~10 parameters when setting the param to its current value), can maybe update the sim too based on these.

Draft here: https://github.com/DiamondLightSource/fastcs-eiger/pull/51
Relies on changes to the tickit-devices sim, addressing this https://github.com/DiamondLightSource/tickit-devices/issues/114


Nick: Watch watertogo.eu

Nick requests the watch of the watch_keyword watertogo\.eu. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

watertogo\.eu has been seen in 0 true positives, 0 false positives, and 0 NAAs.

Approved by Jeff Schaller in Charcoal HQ


Rethink Settings on iPad

Now a master-detail, but it doesn't use the detail at all. The only two "possibilities" use another way of showing that view: report a bug opens a sheet, accounts opens in master.
Suggested:
We should make more use of the detail view. This can tie into #323 for example, where we can clean up the settings too.
Open accounts detail in detail view (we should definitely do this)

Oh hmm ya I haven’t even thought about this. Should def work exactly the same as other master/detail setups.
Sent with GitHawk

Should show bug reporting in detail too. Bit more tricky:
Should remove cancel button when shown in detail (can we check this?), otherwise cancel should close the view itself.
Should fix that after submitting, the view is replaced with the issueVC.

Anyone wanna finish this? I'm going to remove 1.12.0. Seems like #648 took care of most of it?

Yeah, just the bug reporting left.