fix(dom): calc position correctly with css transform()

This PR should fix the positioning of elements when applying transform: scale() to any element or any of its parents.
it's based on https://github.com/floating-ui/floating-ui/issues/1594#issuecomment-1086821366  but instead of passing the scale as a parameter I'm using it always. The scale formula is taken from https://github.com/rfrey-rbx/popper.js/commit/add166ea75be347081990674f346031575b3dac3
before (with scale(0.5) applied to the container of the app):

after:

Parent scale is already handled via the includeScale logic. What part does this fix, iframes? Can you add a test that fails without this change?

@atomiks I've studied the code a bit better and used the includeScale logic. I had to change a couple of things to get the correct results in my app (I force pushed the new commit, so you can see them by yourself).
However I've some troubles running the tests:
 (fix/css-transform) ~/d/floating-ui npm -w packages/dom run dev
Top hits for "packages/dom" "run" "dev"
————————————————————————————————————————————————————————————————————————————————
npm help config                                                    dev:24 run:30
npm help scripts                                                    dev:4 run:33
npm help install                                                    dev:19 run:6
npm help package-json                                               dev:9 run:10
npm help run-script                                                 dev:1 run:18
npm help doctor                                                     dev:1 run:12
npm help ls                                                          dev:6 run:4
npm help audit                                                       dev:4 run:5
npm help folders                                                     dev:1 run:8
npm help prune                                                       dev:1 run:8
————————————————————————————————————————————————————————————————————————————————
(run with -l or --long to see more context)

do I have to use a certain npm/node version?

I think you need to be on latest npm with workspaces. Otherwise you can cd into packages/dom and do npm run dev to see the visual tests. The Transform.tsx file/route is what you'd want to add onto for the failing test! To verify them just push to this PR and wait for CI to pass. If it fails you can click the Overview to download the snapshot diffs.

@atomiks tests pass again, but I still have to add my test, so the PR is not ready yet :) I'll continue tomorrow. Thanks for the help!

@atomiks I'm sorry to say this, but the test is done and not working... and if I fix the test my app doesn't work. So it seems the problem is more complex than just looking for scale < 1 and I have to yet understand what is causing all these problems. It still seems related to a scale < 1, but I suppose there are other variables at play tied to the html/css structure

I made the test using the current DOM structure and that's the one failing with my patch (and working without). The structure of my app is much more complex and the patch works perfectly or gives some small errors depending on where I apply the transform:. As soon as I've found the minimum required tree to replicate the behavior, I'll add another test to the suite and push it. Thanks!

@mishaaq no sorry, have been overwhelmed by work recently and i haven't had time yet to write and push the test where the problem appears.

@cvlmtg any luck here? I’m starting to hit into the same issues.

Hello, I would <3 to have this merged too. I don't see any failed tests, is there anything blocking?

Yes, last comment from OP:

I'm sorry to say this, but the test is done and not working... and if I fix the test my app doesn't work. So it seems the problem is more complex than just looking for scale < 1 and I have to yet understand what is causing all these problems. It still seems related to a scale < 1, but I suppose there are other variables at play tied to the html/css structure

It's not clear what DOM structure/transforms cause positioning issues. Parent transforms are already handled and tested for (and have been for a long time), so it's unclear what the right fix is.

Update:
I found and resolved two distinct issues with transforms that will be out in the next @floating-ui/dom release (1.0.8) thanks to #2003. You should see improved positioning when dealing with transforms.
There's still the following to be mindful of though:

If your floating element has a transform, this is not "negated". The floating element is positioned via layout, and a transform you apply in the CSS happens after the positioning is done. So if you scale or translate the floating element, the positioning doesn't adjust for it (which is usually a good thing especially with animations). You might be able to write a custom middleware to handle it, especially now with these fixes in preventing other issues.
Cross-document handling is still not properly supported, so if the floating element is attached to a reference element inside an iframe and the reference is scaled, the position will be off. I tried fixing this months ago but couldn't get the right solution, it seems difficult.

Provides a scene to scale the body to reproduce the bug
https://github.com/floating-ui/floating-ui/issues/2012

I found the cause (99% sure) and solution to this which is now merged, it will be out in @floating-ui/dom v1.0.9


how do u run the bot?

how do u run the bot? thanks

Try npm run run

inside your package.json, try changing & to && on the line that says tsc & node .and see if it works?

Closing for inactivity


Sometime i get wrong meta data. Need help

Hello. I need some help for get correct metadata that i send from freeswitch to my application. Here is example of im getting wrong metadata.
2024-08-21 15:09:36.354244 96.53% [DEBUG] mod_audio_stream.c:150 mod_audio_stream cmd: f3a35eb3-20dc-4622-b116-074976147811 start ws://<ADDRESS>:8000/pub/audiostream mono 16k {"field1":15,"field2":"beast","field3":"1234"}
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] mod_audio_stream.c:81 calling stream_session_init.
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] audio_streamer_glue.cpp:368 (f3a35eb3-20dc-4622-b116-074976147811) resampling from 8000 to 16000
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] audio_streamer_glue.cpp:379 (f3a35eb3-20dc-4622-b116-074976147811) stream_data_init
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] mod_audio_stream.c:87 adding bug.
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] switch_core_media_bug.c:976 Attaching BUG to sofia/internal/1000@<FREESWITCHSERVERADDRESS>
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] mod_audio_stream.c:91 setting bug private data.
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.354244 96.53% [DEBUG] mod_audio_stream.c:94 exiting start_capture.
f3a35eb3-20dc-4622-b116-074976147811 2024-08-21 15:09:36.614262 96.37% [DEBUG] audio_streamer_glue.cpp:135 sending initial metadata t

I received this "t" data 2 days ago, and today. After i receive, Channel hanging up.
Im really confused right now. Please help

@amigniter

@SumyabazarBaatar
Good evening, I decided to change this variable to be immutable, in my case it resolved
m_initial_meta(initialMeta ? strdup(initialMeta) : nullptr),
audio_streamer_glue.cpp
AudioStreamer(const char* uuid,
const char* wsUri,
responseHandler_t callback,
int deflate,
int heart_beat,
const char* initialMeta,
bool globalTrace,
bool suppressLog,
const char* extra_headers):
m_sessionId(uuid),
m_notify(callback),
m_initial_meta(initialMeta ? strdup(initialMeta) : nullptr),
m_global_trace(globalTrace),
m_suppress_log(suppressLog),
m_extra_headers(extra_headers),
m_playFile(0) {

Hi. Thanks a lot for your response.
And i tried that way.
But in my case, it lost last 4 character.
2024-11-20 18:13:30.172694 98.97% [DEBUG] mod_audio_stream.c:150 mod_audio_stream cmd: 8d8a41d6-6bed-4e78-979c-c5796d6dd8e2 start ws://localhost:8000/pub/audiostream mono 16k {"channel_id":10,"call_type":"bot","interaction_id":"673a8ecdea82421b5f113591","open_interaction_ids":["673a8ecdea82421b5f113591"],"app_id":6,"bot_id":88,"call_uuid":"8d8a41d6-6bed-4e78-979c-c5796d6dd8e2"}
2024-11-20 18:13:30.172694 98.97% [DEBUG] mod_audio_stream.c:81 calling stream_session_init.
2024-11-20 18:13:30.172694 98.97% [DEBUG] audio_streamer_glue.cpp:368 (8d8a41d6-6bed-4e78-979c-c5796d6dd8e2) resampling from 8000 to 16000
2024-11-20 18:13:30.172694 98.97% [DEBUG] audio_streamer_glue.cpp:379 (8d8a41d6-6bed-4e78-979c-c5796d6dd8e2) stream_data_init
2024-11-20 18:13:30.172694 98.97% [DEBUG] mod_audio_stream.c:87 adding bug.
2024-11-20 18:13:30.172694 98.97% [DEBUG] switch_core_media_bug.c:976 Attaching BUG to sofia/internal/203@<IP_ADDRESS>:5061
2024-11-20 18:13:30.172694 98.97% [DEBUG] mod_audio_stream.c:91 setting bug private data.
2024-11-20 18:13:30.172694 98.97% [DEBUG] mod_audio_stream.c:94 exiting start_capture.
2024-11-20 18:13:30.172694 98.97% [DEBUG] audio_streamer_glue.cpp:135 sending initial metadata {"channel_id":10,"call_type":"bot","interaction_id":"673a8ecdea82421b5f113591","open_interaction_ids":["673a8ecdea82421b5f113591"],"app_id":6,"bot_id":88,"call_uuid":"8d8a41d6-6bed-4e78-979c-c5796d6dd0

I tracked the metadata in audio_streamer_glue.cpp. But i didnt find a thing that modifying my metadata.
I cant understand this loss. I  really need some help.
If you could help me, I would be very grateful.


Add navigation bar link to "update profile"

Navigation menu currently doesn't link to profile update page - it should be under "Hi, name".

@chrismedrela are you on it? If not, I'll add this now

Not yet.


Restructure ttnn::permute to match the new standard format

Ticket
#9746
Problem description
Permute is already in TTNN but needs to be restructured to the new file structure
What's changed
Moved the permute pybind and its op calls to its own file
TODO: move all tt_eager logic into the new folder structure
TODO: remove launch_with_autoformat call in that same tt_eager logic
TODO: need the transpose program creation calls moved as well since permute eventually calls those
TODO: create a custom struct for the op creation with its own validate
TODO: delete the tt_eager logic
Checklist

[x] Post commit CI passes
[x] Model regression CI testing passes (if applicable)
[x] New/Existing tests provide coverage for changes

https://github.com/tenstorrent/tt-metal/actions/runs/9749764357 demo test
https://github.com/tenstorrent/tt-metal/actions/runs/9749657851 post commit
https://github.com/tenstorrent/tt-metal/actions/runs/9767458973 frequent tests
https://github.com/tenstorrent/tt-metal/actions/runs/9767450986 device tests
https://github.com/tenstorrent/tt-metal/actions/runs/9767461270/job/26963465086 model tests


Ability to override error handler when extending \Slim\App

I do not like how Slim forces you to use ErrorExceptions, so I made this change to use late static binding when referencing the error handler so you can use your own if you extend \Slim\App.
Alternatively I could make a configuration option for the main \Slim\App class to just not set the error handler and back in run().

In addition to creating your own error handler, you can now completely disable Slim's error handling by removing the error handler from the container:
unset($app->getContainer()['errorHandler']);


[Feature request] Silently ignore error with 30X redirect

Currently I'm using my own fork to redirect malformed request to original site ( https://github.com/ttimasdf/imageproxy/commit/b060222298e4be638894216e39e925c4778d604e ), that ensure the site not breaking. I'm wondering whether it could be added as an command line option to be customizable by users.

Hmm, that's a really interesting idea.  I'm pretty behind on merging some existing PRs that might (?) interact with this a little (like #237).  So it will almost certainly take me some time to adequately think through this and get it merged in, but on the surface I like the idea.  Let's keep this issue open! 👍


Transactions

For built-in data structures, it might sometimes be useful to be able to atomically perform multiple operations. I'd need to give some thought to the best way to do this, but one idea is to have a Transactioned pseudo-data structure that wraps a state machine and accepts a Transaction update. Something like (not tested):
pub struct Transaction<T: Transition>(Vec<T>);

pub struct Transactioned<T: StateMachine>(T);

impl<T: StateMachine> StateMachine for Transactioned<T> {
    type Transition = Transactioned<<T as StateMachine>::Transition>;

    fn apply(&mut self, transition: Self::Transition) {
        for t in transition.0 {
            self.0.apply(t);
        }
    }
}

The more I think about it, the more I think transactions are the wrong approach. The need for transactions implies that a user intent could result in multiple state transitions, but the correct way to model that is for the user intent to represent one state transition that captures both actions.


How to force placeholder added style padding-top to 0?

I'm currently having a bit of a problem with the added padding-top computation, whenever a child of the sticky placeholder transitions.

Sticky element has a classname vue-sticky-placeholder, you can overwrite its style by css.


post-install/post-upgrade hooks work have inconsistent behavior based on the --wait flag

If a post-install or post-upgrade hook need to operate on a running deployment/statefulset/etc, those resources will only be available if helm is run with the --wait flag. If it's not, the hook is run before those resources are ready.
This is inconsistent and leads to surprises.
Relevant code: https://github.com/helm/helm/blob/76157c6d06f981a42bfbb9ec636bae5443cb2c8f/pkg/action/install.go#L382-L402
I think this should be changed such that if there are any post-* hooks, wait is automatically enabled at line 382.
Output of helm version:
version.BuildInfo{Version:"v3.11.0", GitCommit:"472c5736ab01133de504a826bd9ee12cbe4e7904", GitTreeState:"clean", GoVersion:"go1.19.5"}
Output of kubectl version:
N/A
Cloud Provider/Platform (AKS, GKE, Minikube etc.):
N/A

i would like to work on this kindly assign me

@joejulian see am new to this contribution,github thing i am just a good coder so dont expect a pr because i dont know how to do it
this code will mostly work -
if !i.Wait && !i.DisableHooks {
// Check if there are any post-* hooks
hasPostHooks := false
for _, hook := range release.Hooks {
if strings.HasPrefix(hook.Kind, "post-") {
hasPostHooks = true
break
}
}
// Enable wait flag if there are post-* hooks
if hasPostHooks {
	i.Wait = true
}

}
if i.Wait {
if i.WaitForJobs {
if err := i.cfg.KubeClient.WaitWithJobs(resources, i.Timeout); err != nil {
i.reportToRun(c, rel, err)
return
}
} else {
if err := i.cfg.KubeClient.Wait(resources, i.Timeout); err != nil {
i.reportToRun(c, rel, err)
return
}
}
}
if !i.DisableHooks {
if err := i.cfg.execHook(rel, release.HookPostInstall, i.Timeout); err != nil {
i.reportToRun(c, rel, fmt.Errorf("failed post-install: %s", err))
return
}
}
try if it don't work tell me i will see any other solution

@joejulian see am new to this contribution,github thing i am just a good coder so dont expect a pr because i dont know how to do it
this code will mostly work -
`if !i.Wait && !i.DisableHooks {
// Check if there are any post-* hooks
hasPostHooks := false
for _, hook := range release.Hooks {
if strings.HasPrefix(hook.Kind, "post-") {
hasPostHooks = true
break
}
}
// Enable wait flag if there are post-* hooks
if hasPostHooks {
	i.Wait = true
}

}
if i.Wait {
if i.WaitForJobs {
if err := i.cfg.KubeClient.WaitWithJobs(resources, i.Timeout); err != nil {
i.reportToRun(c, rel, err)
return
}
} else {
if err := i.cfg.KubeClient.Wait(resources, i.Timeout); err != nil {
i.reportToRun(c, rel, err)
return
}
}
}
if !i.DisableHooks {
if err := i.cfg.execHook(rel, release.HookPostInstall, i.Timeout); err != nil {
i.reportToRun(c, rel, fmt.Errorf("failed post-install: %s", err))
return
}
}
`
try if it don't work tell me i will see any other solution

I happened to see in the docs:

Hooks and the Release Lifecycle

The library loads the resulting resources into Kubernetes. Note that if the --wait flag is set, the library will wait until all resources are in a ready state and will not run the post-install hook until they are ready.

Strictly, it doesn't say helm will not wait, so I still think okay to enforce that. But a) including this as related to discussion b) if we do enforce waiting for post-install hooks, we will likely want to update this.


Redraw Navigator Example

I want update navigator's position while in fullscreen mode, but cannot find an example on how. Could anyone be kindly enough to help?

Looks like we may not have an API for that. In what way do you want the position changed?
You can take a look at the navigator code:
https://github.com/openseadragon/openseadragon/blob/master/src/navigator.js
...keeping in mind that the navigator is a subclass of the Viewer (in other words, it's a small viewer that's nested inside the big viewer).
You might be able to move it by changing the style of viewer.navigator.element.

Thnaks a lot!


[Usage]: slow inference for fine-tuned model

Your current environment
I am using SFT of huggingface transformers to fine tune model mistral 7b. https://github.com/huggingface/trl/blob/main/examples/scripts/sft.py
After fine-tuning, the model works well, by loading via langchain - vllm  (vllm version: 0.4.0)(https://python.langchain.com/docs/integrations/llms/vllm/),
from langchain_community.llms import VLLM
llm = VLLM(
    model="mistralai/Mistral-7B-Instruct-v0.2", # or drop-in replacement of fine-tuned model with local path
    trust_remote_code=True,  # mandatory for hf models
    max_new_tokens=128,
    top_k=10,
    top_p=0.95,
    temperature=0.8,
)

However, the inference latency is round 2-3 times slower than the original "mistralai/Mistral-7B-Instruct-v0.2".
May I ask is there any specific settings that i have missed for applying vllm on SFT model ?
Thanks.
How would you like to use vllm
run vllm on fine-tuned model.

this issue also exist in the original vllm inference api, not only exist for langchain api.


How to specify a path to app.json or app.config.js?

With expo build:android and build:ios i am able to pass a custom app.json by name. Is this not going to be possible in eas??

?

hi there! we deprecated the --config flag in expo-cli, more info here: https://expo.fyi/config-flag-migration


Change login.withServicePrincipalSecret()'s return type to ApplicationTokenCredentials

Is your feature request related to a problem? Please describe.
Previously login.withServicePrincipalSecret() returned an ApplicationTokenCredentials object. After some refactoring took place, the return type changed to TokenCredentialsBase, even though the return value is always an ApplicationTokenCredentials.
Describe the solution you'd like
It would be good if login.withServicePrincipalSecret() could go back to returning an ApplicationTokenCredentials. The easiest way to do this would be to cast the return value as an ApplicationTokenCredentials object.
Describe alternatives you've considered
You could also change AuthResponse to be a generic type where the type parameter is the type of the credentials property. That way all of the login...() methods could get accurate type information about their return value.

@daschult is this a fix we can make relatively soon? We're looking to migrate Event Hub libraries to the shiny new auth libs and this change will impact existing customers...

FYI, I have submitted a PR to fix this issue. Please see https://github.com/Azure/ms-rest-nodeauth/pull/50

This issue can be closed now as the PR #50 has been merged and version 0.9.2 of this library has the fix


workflows

add github workflows to manage ci/cd process

@rultor release, tag is 1.3.1

@rultor release, tag is 1.3.1

@l3r8yj OK, I will release it now. Please check the progress here

@rultor release, tag is 1.3.1

@l3r8yj Done! FYI, the full log is here (took me 1min)


Displaying of Details subsections

From Lauren McNicoll,
We noticed one inconsistency in presenting the ‘Summary’ and ‘Details’ paragraphs:
o	With a portfolio composed of exposures in different sectors, the narrative page includes four paragraphs for Metals and Mining
	Metals and Mining — Orderly transition — Summary
	Metals and Mining — Orderly transition — Details
	Metals and Mining — Low physical risk — Summary
	Metals and Mining — Low physical risk — Details
o	If the firm states that its only exposures are in ‘Metals and Mining’, only the below gets displayed. For consistency, ‘Details’ paragraphs could also be included.
	Metals and Mining — Orderly transition — Summary
	Metals and Mining — Low physical risk — Summary
o	This seems to also be the case if low exposure is selected, and it may be useful to footnote that more information is available as otherwise it is hidden from the user

This is the intended behaviour


Remove time-labels.target from partner configs

This PR removes price range label so we don't need the time-labels.target bot config
When this PR is deployed to production (i.e. bot version should be > 0.1.2) we should remove the time-labels.target from our partner projects

Looks like pricing is broken.

I'm not sure why the bot seems to be ignoring this issue.

ok it is related to range labels

@pavlovcik @rndquu To resolve this issue, this line from this org and other similar org should be removed ,right?

No, time-labels.target should be removed. I've checked all of the configs and the time-labels.target property is already removed from all of the configs so the current issue is no longer relevant.


feat: upgrade plugin and active unique-type-names rule

Can you remove the package-lock and add a .npmrc to disable it? Unless there's a reason for having it in this repo?

There might be a release for a broader fix soon, so I will wait and update this PR
https://github.com/dotansimha/graphql-eslint/issues/296


Remove Consul Dependency

The first primary use case of go-mysql-server is:

Stand-in for MySQL in a golang test environment, using the built-in memory database implementation.

When I imported it into my project, it errored due to an ambiguous import, as go-mysql-server imported a different version of Consul (???) than my project.  Here's the essential bits of the log:
go: downloading github.com/liquidata-inc/go-mysql-server v0.6.0
go: found github.com/liquidata-inc/go-mysql-server in github.com/liquidata-inc/go-mysql-server v0.6.0
go: downloading github.com/liquidata-inc/vitess v0.0.0-20200807222445-2db8e9fb6365
go: downloading github.com/hashicorp/golang-lru v0.5.3
go: downloading github.com/oliveagle/jsonpath v0.0.0-20180606110733-2e52cf6e6852
go: downloading github.com/mitchellh/hashstructure v1.0.0
go: downloading github.com/hashicorp/consul v1.4.0
# my/project
package my/project
	imports github.com/abronan/valkeyrie/store/consul
	imports github.com/hashicorp/consul/api: ambiguous import: found package github.com/hashicorp/consul/api in multiple modules:
	github.com/hashicorp/consul v1.4.0<EMAIL_ADDRESS>	github.com/hashicorp/consul/api v1.1.0<EMAIL_ADDRESS>
I imagine that go-mysql-server isn't actually using the Consul API anywhere, it's just an accident of the dependency tree, but I think it's a tad overboard.  If anything can be done to remove this dependency it would be appreciated.

Thanks for pointing out that this is causing you problems. That particular dependency is brought in by vitess, which implements the parser / server logic (as opposed to the execution engine that go-mysql-server provides).
We only use a small fraction of vitess, and we will be paring it down to get rid of this and other unused dependencies. In the meantime, you can solve this by introducing a replace directive in your project's go.mod.

Okay great, good to know.
Unfortunately I can't use a replace directive to rewrite one of those paths to the other; Go says something about not being able to have two different import paths point to the same package (sorry, I didn't save the error).  Of course, I may have done it incorrectly.  Either way, I appreciate it.

This is gone as of the the latest master. Haven't cut a release yet, waiting until I get triggers fully working.

Wow, great!  Thanks for hitting this ❤

Cool, let us know if you find any other problems!


Master

Any link with a class “ajax_load” will attempt to animate the loading
of the next page, the next page must contain a div .page-bg and an ID
of the page to set the background
The page must also include a .page-container with an id of the page,
such as index or cs.

Progress from master has been merged into the experimental branch so that work can begin on any Ajax related code that may break the site in the meantime


Fix KnowledgeBase item score

Display the overall rating as a float out of 10.

Thank you for this!


Add Knapsack Algorithm 0/1 in C++

Please follow the Contributing Guidelines & naming conventions in the guidelines accordingly. 🙂
Following naming guidelines is important to maintain consistency.😊
Please NOTE: In case, same implementation of an algorithm is submitted by someone else and it gets accepted, then your contribution won't be merged ( to avoid duplicates )

I am working on it

@prakharvk  I have already submitted a PR. Please check for other issues or open one.
Thanks!

@prakharvk I have already submitted a PR. Please check for other issues or open one.
Thanks!

Oh sorry I didn't see that, I have already made a PR for it now.

@prakharvk This will cause conflict. It would be great if you could add a solution in some other language say python.


UI: move c-capnp to c++

move to capnproto
all function and logic is strictly the same as C version.

Done, tested for a few miles.

use switch to handle enum values now.

Aside from that variable name, LGTM

I checked again and there should be no problem

I'm done with this

Sweet, LGTM


FancyZones - Cannot freely move layouts on secondary monitors, gets clipped to half of screen

Environment
Windows build number: 10.0.18362.418
PowerToys version: <IP_ADDRESS>
PowerToy module for which you are reporting the bug (if applicable): FancyZones

Steps to reproduce

Go to a secondary monitor and open the zone editor then Edit Selected Layout.
Expected behavior

I should be able to freely configure zones by dragging them anywhere and resizing and use the full extents of my display.
Actual behavior

The zone editor gets clipped/constrained to the second half of my screen. I'm on a triple  monitor setup and on the secondary monitors this happens. On the primary monitor everything works as intended, on the 1st (one to my left) it gets clipped to the left and on the 3rd (to my right) it gets clipped to the right.
Screenshots

You're right, three identical 4k monitors all at 150%.


Display disabled OTEL actions for resources

Description
Best reviewed with whitespace disabled.
Demo:

Fixes https://github.com/dotnet/aspire/issues/6286
Checklist

Is this feature complete?

[x] Yes. Ready to ship.
[ ] No. Follow-up changes expected.

Are you including unit tests for the changes and scenario tests if relevant?

[ ] Yes
[x] No

Did you add public API?

[ ] Yes

If yes, did you have an API Review for it?

[ ] Yes
[ ] No

Did you add <remarks /> and <code /> elements on your triple slash comments?

[ ] Yes
[ ] No

[x] No

Does the change make any security assumptions or guarantees?

[ ] Yes

If yes, have you done a threat model and had a security review?

[ ] Yes
[ ] No

[x] No

Does the change require an update in our Aspire docs?

[ ] Yes

Link to aspire-docs issue:

[x] No

Microsoft Reviewers: Open in CodeFlow

There should be a tooltip that says something like no telemetry for this resource.

There should be a tooltip that says something like no telemetry for this resource.


Clicking on dbt tests link from dashboard redirects to tests page but with source freshness NOT excluded

Describe the bug
When you click on the numbered links on dashboard screen, they take you to the test execution history, filtered to relevant section. This works as expected most of the time - e.g. if you click here:

... you get redirected here:

However, when you click on the numbered links below the "dbt tests" section of dashboard, source freshness is NOT excluded in the destination you are redirected to and so you see many more results than the number you clicked on.
Strangely, there is a filter active on the test name column even though everything is selected including source freshness?

To Reproduce
Obvious.
Expected behavior
Obvious.
Screenshots
Above
Environment (please complete the following information):

edr version: Most recent
dbt package Version: 0.14.1

Additional context
Add any other context about the problem here.

Hi @adamcunnington-mlg !
Currently this happens because technically "source freshness" belongs to both categories (being a dbt test and also a type of freshness).
That being said, we understand the confusion and it probably makes sense to only include it under the freshness category.
Regarding the filter - it filters on every test originating from dbt. If you had Elementary anomaly tests in your suite, they wouldn't be included in the filter.

Thanks for the response. Ok noted on the filter w.r.t excluding anomolies.
But yes, please do filter freshness out here - I think it makes sense and would ensure consistency between dash and the filters - as it is everywhere else.


Update sbt-ci-release to 1.7.0

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

⚙ Adjust future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "com.github.sbt", artifactId = "sbt-ci-release" } ]

Or, add this to slow down future updates of this dependency:
dependencyOverrides = [{
  pullRequests = { frequency = "30 days" },
  dependency = { groupId = "com.github.sbt", artifactId = "sbt-ci-release" }
}]

labels: sbt-plugin-update, early-semver-minor, semver-spec-minor, commit-count:1

Superseded by #1060.


Add AuthenticationType enum to typings

Got annoyed at the various copies of AuthenticationType values being duplicated everywhere - and this is something that extensions would find very useful when creating or using connection infos (especially since the values aren't really documented anywhere).
Purposely keeping it pretty generic though as just a list of well-known auth types since we don't really have a good way of telling the user what auth types a specific provider may or may not support. If that was something that ended up being useful I think adding functionality to the providers to say what auth types they support would be good.
This does mean we need to be extra careful when changing these values though - since they're runtime objects if we were to change the strings at all that could break a lot of stuff (but that's pretty much the same as what would happen now with changing the hardcoded string constants so it's not really that much different. The main difference here is that extensions using this would also then have their values changed which could be unexpected).

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

35 of 54 (64.81%)  changed or added relevant lines in 22 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.005%) to 42.391%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

extensions/azurecore/src/azureResource/providers/azuremonitor/azuremonitorTreeDataProvider.ts
0
1
0.0%

extensions/azurecore/src/azureResource/providers/kusto/kustoTreeDataProvider.ts
0
1
0.0%

extensions/azurecore/src/azureResource/providers/mysqlFlexibleServer/mysqlFlexibleServerTreeDataProvider.ts
0
1
0.0%

extensions/azurecore/src/azureResource/providers/postgresArcServer/postgresServerTreeDataProvider.ts
0
1
0.0%

extensions/azurecore/src/azureResource/providers/postgresServer/postgresServerTreeDataProvider.ts
0
1
0.0%

extensions/azurecore/src/azureResource/providers/sqlinstance/sqlInstanceTreeDataProvider.ts
0
1
0.0%

extensions/azurecore/src/azureResource/providers/sqlinstanceArc/sqlInstanceArcTreeDataProvider.ts
0
1
0.0%

extensions/cms/src/cmsResource/tree/cmsResourceTreeNode.ts
0
1
0.0%

extensions/cms/src/cmsUtils.ts
0
1
0.0%

extensions/sql-database-projects/src/models/dataSources/sqlConnectionStringSource.ts
2
3
66.67%

Totals

Change from base Build<PHONE_NUMBER>:
-0.005%

Covered Lines:
29237

Relevant Lines:
64179

💛  - Coveralls


changed headline, removing "sharing economy"

changed headline, removing "sharing economy"

Looks Good!


Support for Pyspark interactive

Create an extensibility point similar to this:

interface IKernelSpec {
    // Fields of a jupyter kernelspec.json
    // Maybe live id for an already running kernel?
}

interface IKernelProvider {
     getKernels(): Promise<IKernelSpec[]> // This is implicitly local. Maybe it needs something to say that?
}

interface IInteractiveWindow {
    executeCode(code: string, file: Uri | undefined = undefined, line: number = 0, silent: boolean = false);
    readonly kernel: IKernelSpec;
}

interface IPythonExtensionApi {
    registerKernelProvider(provider: IKernelProvider) : Disposable;
    openInteractiveWindow(kernelSpec: IKernelSpec, remoteUri?: string, bearerToken?: string): Promise<IInteractiveWindow>
}

This would be used to

Let an extension register its own set of kernels (works around Pyspark having to set the Jupyter interpreter to get their kernels listed)
Let an extension open an interactive window connected to a specific kernel and a specific remote URI (Pyspark needs this in order to run their code)
Let an extension send code to this interactive window (This would likely be useful for other language extensions)
Let an extension be able to tell what kernel is currently picked in an interactive window (Pyspark needs this to determine if an interactive window still has their kernel enabled)

Suggestions:

We might want to expose an API so other languages can provide the cell ranges
We might want to expose an API so other languages can provide the details of code blocks (e.g when hitting ctrl+enter, then where is the next line)
commenting/converting code blocks to comments

Such an api is sufficient for https://github.com/microsoft/vscode-jupyter/issues/273
This allows us to have a:

Unique command set for sending lines/codeblocks/cells to interactive window for all languages
Converting cells to markdown & vice versa will work for all languages
Majority of the commands will just work.
Else other languages will need to reimplement the same commands/features (lot more work) & it will no longer be consistent.

@zesluo, FYI, we recently fixed issue #411 to re-enable picking a kernel in the interactive window.

Thank you! I will try it then

we just found that we cannot have the place to change kernel even with previous version of ms-python. And we don't have any code changes. any ideas about it? Thanks in advance!

Please could you ensure you have the latest version of VSCode and both extensions.
If it didn't work, please could you provide the logs for the  console window (like likes an issue in VSCode, I know we had an issue and it was fixed).

with previous version of ms-python

Please install latest version. A change in new version of VSCode broke the old version.

Hello @DonJayamanne ,
Thanks for your reply! We notice some changes in the new view version.

it needs to install Jupyter extension and ms-python together at same time.
By using the command :
, it can now get the interactive window. Thanks for this support!
The problem is: when we try to change the kernel, it cannot succeed. The logs are attached. Please feel free to let me know if more information is needed. Thanks!
1126errorlogs.log

@DonJayamanne, @rchiodo , Feel free to let me know if more information is needed. Thanks^_^

The problem is: when we try to change the kernel, it cannot succeed. The logs are attached. Please feel free to let me know if more information is needed. Thanks!

@zesluo please could you file a separate issue for the kernel not starting up.

Sure! Here it is ,https://github.com/microsoft/vscode-jupyter/issues/4055. Thanks

@zesluo feel free to reopen this or create a new issue if its not fixed.


Testing Matlab PREP in our CI? Directly comparing with pyprep

This is not something to do right now, but as far as I heard it's now possible to test actual MATLAB in some CI services, see for reference: https://github.com/bids-standard/bids-matlab/issues/68#issuecomment-717187963
That could mean we can in our CI

download some lightweight data
run PREP on it (matlab), save outputs as build artifacts
run pyprep on it (python), save outputs as build artifacts
run another python script that compares the two build artifacts

Direct comparison during CI like this is a good idea, but I think we can probably do it without actually adding any MATLAB code to the CI: as long as the MATLAB PREP results are consistent with a random seed, we could run MATLAB PREP on a file locally, upload the resulting .set to Google Drive or a similar service that allows downloading files with curl/wget, and then have the CI just download it prior to running PyPREP tests.
Also, I remember @yjmantilla mentioning that PyPREP intentionally differs in some minor ways from MATLAB PREP because they do some weird things with medians or rounding or something. To make tests like this work, we'd need to add a special flag of some kind that would make PyPREP to do the same weird things for comparison purposes so that we can be sure the only functional differences are in those areas.

but I think we can probably do it without actually adding any MATLAB code to the CI: as long as the MATLAB PREP results are consistent with a random seed, we could run MATLAB PREP on a file locally, upload the resulting .set to Google Drive or a similar service that allows downloading files with curl/wget, and then have the CI just download it prior to running PyPREP tests.

agreed, that'd be a good first step
Having it properly implemented in CI however serves the additional purposes of:

having the MATLAB pipeline documented transparently and easily accessible
having the opportunity to be notified about upstream changes in MATLAB prep

because they do some weird things with medians or rounding or something.

yes, I think they didn't take the proper median for an even number of channels ... not sure if that has been fixed by now. We should check it out if we find the time. I did a quick search of autoreject issues and prep (matlab) issues and PRs, but couldn't find anything. @jasmainak originally detected that problem, maybe he knows where to find it again.

To make tests like this work, we'd need to add a special flag of some kind that would make PyPREP to do the same weird things for comparison purposes so that we can be sure the only functional differences are in those areas.

yes, that'd need some clever fixes ... such as flags. or preferably, selecting a test dataset where that specific median-difference doesn't matter between PREP and PYPREP.

I did a quick search of autoreject issues and prep (matlab) issues and PRs, but couldn't find anything

there are none. Autoreject used to be a private repo at the time the RANSAC in PREP was implemented and I didn't want to go into a rabbit hole fixing PREP. Had some ideas to improve RANSAC in PREP but never got around to them :)

yes, that'd need some clever fixes ... such as flags. or preferably, selecting a test dataset where that specific median-difference doesn't matter between PREP and PYPREP.

In this one I would go for the flag, that is , if someone wants to go with the matlab's prep way they can do it through it. I guess we should really open the issue there to see whats going on with that.
Also I don't know how easy it would be to find such a dataset... maybe is super easy but the flag would suffice in case it is hard to find.
With #45 the CI comparison should become easier.

yes, would be fine with me. I guess the first job would be to go back to MATLAB PREP and find the ominous false-median-computation.
... and then all other points in code where pyprep and prep deviate. THEN we can think about how best to allow users to change pyprep from "best practice in our opinion" to original PREP.

jasmainak reported these lines in #21

@sappelhoff I've never used it, but there's a promising-looking package called oct2py that lets you run MATLAB functions via Octave through Python, passing and receiving data as numpy arrays.
If we can get it working with the basics of PREP, it could be handy for both CI and for our validation efforts since it would  let us substitute individual PyPREP functions with their MATLAB PREP equivalents to compare things like interpolation directly between packages.

@sappelhoff @yjmantilla A quick update I thought you'd be interested in: during my recent burst of PyPREP debugging I spent a few hours hacking away at things and got EEGLAB + PREP (somewhat) running via oct2py:

Most of the work was figuring out how to convert MNE Raw objects into the EEGLAB format, which now seems to be working well enough for PREP to not error out immediately. A quick rundown of some problems to eventually overcome:

PREP is not natively Octave-compatible: it relies on a couple odd MATLAB-only functions that I needed to substitute or comment out. Fine for testing locally, but would require workarounds for CI usage.
The findNoisyChannels bit that does the channel correlations before RANSAC is slooooooooooooowwwwwwww, like 4-5 hours per iteration slow. Guessing this is an Octave issue as well? At its current pace, it's going to take a full day to do robust referencing on a file that takes maybe 6-10 minutes for the same via PyPREP.

In other words, it seems to work, but there seem to be some changes needed to the MATLAB code itself before CI comparison is doable.

nice, thanks! :sunglasses:
Now did you by any chance do your changes by

forking PREP
making a new branch on your fork and adjusting for octave

?
Because then you could push that branch up to GitHub and open a PR to your own fork --> that'll let us inspect the git diff, so we can better see the extent of the adjustments :-)
it's surprising that it's so ultra slow now. Perhaps profiling the function would be a good idea, to see exactly where this slowing comes from. :thinking:

@sappelhoff I'll get to doing a proper fork eventually: right now I'm still ironing out what's Octave-compatible and what isn't (which is made a lot more difficult by every change/fix taking half a day chugging along to test). This morning I woke up to this error after two successful iterations of findNoisyChannels so I guess that's the next thing to figure out:
oct2py.utils.Oct2PyError: Octave evaluation error:
error: structure has no member 'etc'
error: called from:
    pop_select at line 196, column 1
    eeg_interp at line 158, column 19
    interpolateChannels at line 49, column 12
    robustReference at line 80, column 19
    performReference>doRobustPost at line 118, column 22
    performReference at line 76, column 5

Because I'm lazy and don't know MATLAB too well, I'm going to try "print-by-line" profiling here to get a better sense of what's going on with the correlation speed. That said, if you know of a better/easier way of profiling MATLAB code that's Octave-compatible, please let me know!

I see - and I think there's a very high chance to get lost by not following the workflow of:
fork, then clone, then checkout a new branch, and then adding your changes/adjustments incrementally with new commits that you then push go GitHub (on your fork), using meaningful commit messages
... so just a recommendation to start with that better early than late :)
apart from that I don't have good advice unfortunately :-(

So far the changes are minimal, but of course you're right: I'll start tracking things more formally as I go.
Also, found the cause of the slowness: the calculation of the correlation coefficients for each 1-second window of the file takes 2-to-3 seconds per window for some reason?
windowCorrelation = corrcoef(eegPortion);

Since the file is about 2700 seconds long, that adds up to several hours. No clue why it's so slow here (I'm assuming it's faster in regular MATLAB, since it's massively faster in PyPREP), but I'll look into it!

@sappelhoff Just a quick status update: I've given up on oct2py for the time being given how horribly slow Octave seems to be at findNoisyChannels, but I realized I've got a site licence for MATLAB from my institution so I installed it and got MatPREP working smoothly using @yjmantilla's script they shared a few months back.
In doing so, I noticed that MatPREP retains a lot of debug info regarding the findNoisyChannels process that PyPREP doesn't: e.g. the full matrices of regular correlations and RANSAC correlations for each channel/window, the HF noise z-scores for each channel, the fractions of "bad" RANSAC windows for each channel, etc. What I did yesterday was:

Write a Python script to import and parse the PREP debug info .mat files into Python/csv format
Adapt PyPREP to collect most of the same debug information
Modify the MatPREP script to only perform CleanLine and save the resulting data for each participant to a .set/.fdt
Modify my PyPREP script to import the .set/.fdt files, apply the EEGLAB montage, and perform robust re-referencing, saving the debug info to pickle files for later parsing. This theoretically allows for the closest comparison between PyPREP's NoisyChannels and MatPREP's possible, and also saves a ton of time waiting for cleanline during testing.

With the detailed debug information for both implementations saved such that they can be directly compared, hopefully I can get to the bottom of the NoisyChannels differences!

That's great that you got your hands on a MATLAB license! Looking forward to what you may find :-)

@sappelhoff Okay, so once #70 is merged and I dig a bit more into #55 to see if it's an easy fix, I think we'll be at the point where we can start adding MATLAB comparison for NoisyChannels, removeTrend, and potentially Reference into the CI! I guess the question now is what's the best way to do it.
Since Oct2Py seems to have been a dead-end in terms of PREP compatibility, here's my current rough proposal:

Create a separate Git repository with a MATLAB script for running all stages of PREP on a given file and saving the resulting .set/.fdts following each stage (plus a .mat containing the extra info described in #68).
Set up CI for the above repository to run the script and save all the output files as GitHub Release artifacts.
Set up PyPREP to (optionally?) automatically grab the latest release artifacts from that repository during pytest and use the data for comparison

The advantages of this approach (in my mind) would be that we wouldn't need to re-run MATLAB PREP every time we run a CI job, and we also wouldn't need to depend on PyPREP's CI service (or anyone running unit tests locally) as having a properly-configured MATLAB environment. Separate .set/.fdt sets after each major step (post-cleanline, post-detrend, post-rereference, post-interpolation) would mean that a difference in an earlier part (e.g. CleanLine) won't automatically result in comparisons of later parts (e.g. NoisyChannels) failing, since we could load the relevant .set/.fdt before each to make sure PyPREP's starting with the same data for each stage.
I've already got a Python script that reads MATLAB PREP's extra info (saved into a .mat) and transforms it into a useful Python dict, so that part's already done, and my local MATLAB script for testing could be quickly adapted for the purposes described above. I think the main headache will be automating the setup of the MATLAB environment within a CI context: that said, apparently GitHub Actions and Travis CI both have some form of MATLAB support, so I guess we'll see.

+1 for using Matlab in GitHub actions ... let's resort to Travis only when GH actions turns out to be difficult
re: separate repos: I think I would prefer everything to live in one (this) repo
why not setup a matlab CI flow that installs EEGLAB and a recent version of PREP and then runs on a dataset of a dataset of our choice, and then the results are passed on to the next step in the CI where we run pyprep and then compare results?

Let me explain what I mean with a brief circleci example:

in this CI step, we build the docs, and "store" the results: https://github.com/mne-tools/mne-bids/blob/7a4e65f9847ba6e94d1cd469e8472f024f6329e8/.circleci/config.yml#L35-L37
in a later CI step, we get back our stored results and continue working on them: https://github.com/mne-tools/mne-bids/blob/7a4e65f9847ba6e94d1cd469e8472f024f6329e8/.circleci/config.yml#L68-L69
I don't know what these are called in GH actions from the top of my head, but this concept exists for all serious CIs

Separate .set/.fdt sets after each major step

I think that's a nice idea, my only concern is that we also start testing IO roundtrip accuracies there and I hope that won't trip us up. --> sidenote: Let's only use .set and not the set+fdt combo (I personally find the one file approach nicer, and with the new EEGLAB set style of storing the matlab EEGLAB data at the "root"  of the set file (which is a mat file) instead of an EEG "struct", one can also access metadata without loading the full binary data. FYI: https://github.com/mne-tools/mne-python/issues/8864#issuecomment-779375469

why not setup a matlab CI flow that installs EEGLAB and a recent version of PREP and then runs on a dataset of a dataset of our choice, and then the results are passed on to the next step in the CI where we run pyprep and then compare results?

Two questions on this:

Would the caching of build artifacts like this mean that it'd only re-run the MATLAB script any time it was changed, instead of every time the CI tests are run?
Would the artifacts be accessible from all the different CI bots, (Windows/macOS/Linux) or just the one it was run in? I ask because MATLAB via both GitHub Actions and Travis CI are both Linux-only. I guess the MATLAB PREP comparison could be its own separate runner in the CI matrix.

My main rationale behind the separate-repo-artifacts approach was that it would get around potential issues 1) and 2) easily, and also allow for running of local unit tests of MatPREP vs. PyPREP without a full MATLAB/EEGLAB/PREP install (using urllib or similar to just download the artifacts to a temporary folder for local tests). If 1 & 2 aren't issues, then doing everything in a single repository definitely makes sense.

my only concern is that we also start testing IO roundtrip accuracies there and I hope that won't trip us up.

From my local testing, the EEG float values seem to be identical in an MNE-imported .set vs the same .set in EEGLAB (other than the volts/microVolts conversion) so this thankfully shouldn't be an issue!

Let's only use .set and not the set+fdt combo

Ah cool, didn't even know that was possible! Single-file is definitely much cleaner to work with. The MATLAB/EEGLAB world is still very foreign to me...

Would the caching of build artifacts like this mean that it'd only re-run the MATLAB script any time it was changed, instead of every time the CI tests are run?

no, that'd be an "every time" approach instead of computing once per release. Why would that be a problem? The results should stay the same if all versions are properly pinned, and a seed is set, right?
The only issue I could potentially see is (a) waiting time, (b) computation is expensive and pollutes the environment

Would the artifacts be accessible from all the different CI bots, (Windows/macOS/Linux) or just the one it was run in?

no, pretty sure that the "artifacts" (in the way we talk about it currently) are only available to the current CI "bot" (matrix).
But I think comparing PREP and PyPREP for equivalence would be fine enough to do only under one specific set of parameters, as long as we continue to run all other unit tests under more diverse conditions.

and also allow for running of local unit tests of MatPREP vs. PyPREP without a full MATLAB/EEGLAB/PREP install

yes, that is a fair point. Needs to be balanced against the increased amount of infrastructure (a whole separate repo). How would you want to do the new repo? under your user account? mine? a new pyprep GH account that we then also transfer sappelhoff/pyprep to?

I think comparing PREP and PyPREP for equivalence would be fine enough to do only under one specific set of parameters

Agreed, I definitely think it would be overkill to multiple test files/configurations: setting up just one will be hard enough! I only mentioned artifacts across CIs to wonder if comparison tests could be on macOS/Windows runners too given that the MATLAB CI only works on Linux instances. I guess there'd be no reason to expect differences between OSes in terms of MATLAB differences, though.

that'd be an "every time" approach instead of computing once per release. Why would that be a problem?

From my reading into the MATLAB GitHub Actions, it looks like it needs to download & install MATLAB on the instance every single time it's run, so I'd imagine it would slow down CI considerably if the results can't be cached for future runs.
Based on your thoughts/feedback, here's my current proposal: for now, I'll try and set up a MATLAB PREP script with CI and artifact saving in a new repository of my own, just to see what it's like in terms of speed/functionality. If it's pretty quick/painless and wouldn't add much time to the PyPREP CI, I'll take my work and make it into a PyPREP PR so everything's in one repository. If it's excessively slow and/or messy, we'll keep it as a separate repository that rarely needs to be run. If that happens, I can transfer the repository to you or a separate PyPREP organization (if you'd prefer control), but I'm also happy to keep it as my own if you'd prefer not to be responsible for its maintenance. Does that sound like a reasonable plan?

Sounds great! Good luck and let me know if I can help.

I just took a look --> that looks awesome! Super clean / clear! I really like that you separated config/settings/setup and the .m script.
Choice of the data is up to you, I haven't worked with either of the datasets.
You could add a GH actions "badge" to the README that shows whether CI is passing and that acts as a link to the most recent run.

I just took a look --> that looks awesome! Super clean / clear! I really like that you separated config/settings/setup and the .m script.

Thanks! One of my biggest long-standing annoyances with scripting in the sciences is that people like to bury all the configurable setting switches throughout their scripts (or don't make key things configurable at all) instead of having it all in one clear and obvious place, so I always try to make a  separate settings.R/.m/.py script whenever it makes sense.
If you've got no strong preference on the test file I'll move along with S004R04.edf and see how things go on the Python end! The nice thing about the script setup is that the test file could be changed at any time and it wouldn't affect the Python side at all: since it's using 1_matprep_raw.set as its starting point, it'll always be starting with the same data as MATLAB PREP.

regarding the organization of repos etc., we could also:

leave pyprep under sappelhoff
leave matprep_artifacts under a-hurst

... but include matprep_artifacts in pyprep as a git submodule ... to keep a record of it within pyprep.
I thinking about this also in the direction of longevity of the project: For release 0.4 I'd want to switch on the Zenodo tracking  of the repo, i.e., to permanently store/archive a copy of the full code on an independent site. And it'd be cool if the matprep artifacts could be part of that archive, which I think they would via the git submodules solution. :thinking: :thought_balloon:  (but have never tested)
WDYT?
EDIT (even before sending off): Actually git submodules seem to not be included in the zenodo archive :confused: it's an open issue: https://github.com/zenodo/zenodo/issues/1036
So at least you know my thought process now. If anyone can come up with a good solution for proper archival and cross-referencing of "all things pyprep", that'd be great.

update, I added matprep_artifacts as a git submodule in ab07d85d8e52983118b2415513e23e789352be84 to "have it all in one place". Technically, nothing changes for future contributors and our general workflow. I'll just sleep more soundly to have a comprehensive (and tracked) cross-reference to that now-crucial part of the pyprep infrastructure within pyprep.
Cc @a-hurst @yjmantilla

@sappelhoff Sounds like a good idea to me! Apologies for never replying to your earlier post, I must have missed it somehow.
And the Zenodo archiving sounds good too, would be nice to have a proper DOI to cite for PyPREP!


Add verification of arbitrary claims

See https://github.com/SkyLothar/lua-resty-jwt/pull/26 and https://github.com/SkyLothar/lua-resty-jwt/issues/23 for details of this feature.

That's a lot of code!
Thank you 👍


Remove ocramius/proxy-manager fork

As discussed in https://github.com/SimpleBus/SimpleBus/pull/89#discussion_r540264108 when https://github.com/Ocramius/ProxyManager/pull/628 is merged we can remove this
https://github.com/SimpleBus/SimpleBus/blob/master/packages/symfony-bridge/composer.json#L28-L34

This is done.


Get a working neofetch test via git

Depends on #4

Unstalled thanks to #4 and #8

Done! We do need a new ASCII logo though :)


[Figma] Table of contents – horizontal

Resources

Figma kit v2
v2 design spec (part of Table of contents v2 spec file
Storybook v1

The Table of contents – horizontal underwent a visual overhaul in v2. The selection state was updated, styles such as border were changed, and the @md and @sm functionality revamped to align with Carbon tag updates.
v2 updates

[x] Updated color and type tokens to Carbon v11
[x] Bottom border for the full width ToC container instead of shadow
[x] Selected state updated
[x] Recommended max of seven menu items, or down to three. User should be able to show/hide up to seven

Known bug: when set to Focus state, the focus will now fully show through the surrounding border


Add Sandstorm topic

Please confirm this pull request meets the following requirements:

[x] I followed the contributing guidelines: https://github.com/github/explore/blob/master/CONTRIBUTING.md.
[x] I have no affiliation with the project I am suggesting (as a maintainer, creator, contractor, or employee).

Full disclosure: I am a community contributor, but I have some limited button-pushing permissions for non-production activities like issue maintenance, documentation, and dev tools.
Which change are you proposing?

[ ] Suggesting edits to an existing topic or collection
[x] Curating a new topic or collection
[ ] Something that does not neatly fit into the binary options above

Curating a new topic or collection

[x] I've formatted my changes as a new folder directory, named for the topic or collection as it appears in the URL on GitHub (e.g. https://github.com/topics/[NAME] or https://github.com/collections/[NAME])
[x] My folder contains a *.png image (if applicable) and index.md
[x] All required fields in my index.md conform to the Style Guide and API docs: https://github.com/github/explore/tree/master/docs

The Sandstorm platform has been around since 2014, and numerous apps, tools, libraries, etc. exist scattered around GitHub. The sandstorm topic is relatively well-used for it, but sandstorm-io has cropped up at least once, and I think it makes sense to establish the most used one "officially". The sandstorm topic is often listed on repos which have Sandstorm support, or are Sandstorm apps, but that in itself my not accurately inform a GitHub user of what Sandstorm is or why the topic is listed on the repo.

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

@octokatherine Thanks for kicking off the review. I have added punctuation!

Thanks so much for your first contribution!  You rock, @ocdtrekkie!


Describe how one application can start/stop/pause a workflow on another application via communication APIs

What content needs to be created or modified?
Currently there is a limitation that the workflow API (start, stop, etc) cannot be called directly from one app to another. Instead you have to either use Service Invocation or pub sub to act as a "trigger" message and then in the method of these start, stop the workflow
Describe the solution you'd like
Need to describe the work around to call remote workflows.
Where should the new material be placed?
In the Workflow section, probably as a new topic.
Additional context
See this Discord thread for example and details https://discord.com/channels/778680217417809931/1166296780443488266
@olitomlinson - Please add other details here from any other Discord thread.

Any suggestions on where it makes sense to add this content? I think most of our existing workflow content describes the workflow feature in isolation, but is there a place for describing how to incorporate workflows into the rest of your app? Do we need to add one? In addition to this, I image it would be useful to explain other integrations, such has how to use workflow activities to use other Dapr building blocks, like service invocation or pubsub (we have samples for this, but I don't think we have docs for higher-level microservice-oriented app patterns).


fix(replica): print http resp for bad status

Signed-off-by: Utkarsh Mani Tripathi<EMAIL_ADDRESS>

closing in favour  of #289


[BUG] SIPX509TokenExtractor does not work correctly

Describe the bug
Client authentication returns always 401. Code investigation shows that SIPX509TokenExtractor#extractClientCertificate(HttpServletRequest request) returns null, even if SSL handshake works.
To Reproduce

Set up Postman with client certificates that are trusted by trust store (or other)
Set up SIP adapter with sip-security module (security config below)
Try to access /actuator

Expected behavior
Actuator page is loaded
SIP (please complete the following information):

Involved components: Security

Additional context
Used configuration:
`sip:
security:
authentication:
enabled: true  #turn on/off all authentication functionality
auth-providers:
- classname: de.ikor.sip.foundation.security.authentication.x509.SIPX509AuthenticationProvider
ignored-endpoints: #a list of endpoints which are ignored by this specific authenticator
- /favicon.ico
- /actuator/env
- /actuator
validation:
classname: de.ikor.sip.foundation.security.authentication.x509.SIPX509FileValidator #FQCN o´f the validator to be used
file-path: classpath:client-certs.acl  # possible resource strings are classpath:, file:, http:, none
ssl:
client:
enabled: true
key-store: C:/ssl/keystore.jks # possible resource strings are classpath:, file:, http:, none
key-store-password: changeit # we recommend to use env_vars or sealed secrets
key-store-type: jks #possible options are pkcs12, jks, jceks
key-password: changeit # we recommend to use env_vars or sealed secrets
  server:
    key-store: C:/ssl/keystore.jks # possible resource strings are classpath:, file:, http:, _none_
    key-store-password: changeit # we recommend to use env_vars or sealed secrets
    key-store-type: jks #possible options are pkcs12, jks, jceks
    key-alias: localhost #the alias of the key to be chosen from the container
    key-password: changeit # we recommend to use env_vars or sealed secrets`

"sip.security.ssl.server.client-auth" configuration is added into "sip-security" module with default value "none". In order for
"SIPX509AuthenticationProvider" to work properly, this value must be set to "want" or "need".


Add single file watch mode clarification to Readme

Related to #5
Adds a clarification to the Readme that the known single file parameter issue also applies to when a single file is running in watch mode which seems obvious in hindsight, but I misunderstood when I first read it. 😄

Btw, you should totally rebrand this as a feature.
"How do I see the logs for a single file to try to fix any log-issues there?" - Just test only that file and they will show up! 🥳


GEOPY-825: prepare release of geoapps-0.9.2

GEOPY-825 - Release geoapps-0.9.2

closing this for now:
version set in https://github.com/MiraGeoscience/geoapps/pull/483 and tests fixed in https://github.com/MiraGeoscience/geoapps/pull/479


gomplate: 3.10.0 -> 3.11.2

https://github.com/hairyhenderson/gomplate/releases/tag/v3.11.0
https://github.com/hairyhenderson/gomplate/releases/tag/v3.11.1
https://github.com/hairyhenderson/gomplate/releases/tag/v3.11.2
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

On macos 10.15:
=== RUN   TestInputDir_RespectsUlimit
    inputdir_unix_test.go:49:
                Error Trace:    integration_test.go:57
                                                        inputdir_unix_test.go:49
                Test:           TestInputDir_RespectsUlimit
    inputdir_unix_test.go:49:
                Error Trace:    integration_test.go:58
                                                        inputdir_unix_test.go:49
                Error:          Not equal:
                                expected: ""
                                actual  : "{\"level\":\"error\",\"error\":\"failed to render template /private/tmp/nix-build-gomplate-3.11.2.drv-0/ulimittestfiles-1626002131/in/file_3: failed to open output file '/private/tmp/nix-build-gomplate-3.11.2.drv-0/ulimittestfiles-1626002131/out/file_3' for writing: open /private/tmp/nix-build-gomplate-3.11.2.drv-0/ulimittestfiles-1626002131/out/file_3: too many open files\",\"time\":\"2022-08-09T20:43:41Z\"}\n"

                                Diff:
                                --- Expected
                                +++ Actual
                                @@ -1 +1,2 @@
                                +{"level":"error","error":"failed to render template /private/tmp/nix-build-gomplate-3.11.2.drv-0/ulimittestfiles-1626002131/in/file_3: failed to open output file '/private/tmp/nix-build-gomplate-3.11.2.drv-0/ulimittestfiles-1626002131/out/file_3' for writing: open /private/tmp/nix-build-gomplate-3.11.2.drv-0/ulimittestfiles-1626002131/out/file_3: too many open files","time":"2022-08-09T20:43:41Z"}

                Test:           TestInputDir_RespectsUlimit
    inputdir_unix_test.go:53: assertion failed: 32 (numfiles int) != 23 (int)
--- FAIL: TestInputDir_RespectsUlimit (0.02s)

Could do a
  preCheck = ''
    ulimit -n 1024
  '';

as done in some other places


Hidden files are not listed

We could do this whole thing better using only Git.
Grab a list of all commited/changed/w/e files:
git ls-files --exclude-standard --directory --no-empty-directory -s | awk -F"\t" '{print $2}'

Switch that list option out for -o and drop the awk to list all untracked files.
That way we get everything directly related to Git and can still build a tree as we have the full paths.

Fixed in Release v0.0.2.


[Sensor] reset the orientation of a cubemap

Motivation and Context
This diff is to:

reset the orientation of a cubemap so it aligns to the official definition found here:
https://www.khronos.org/opengl/wiki/Cubemap_Texture
(It is a must-have change as I will use the cubemap heavily in the PBR IBL)
make changes in the fisheye shader and equirectangular shader accordingly;
fix 2 places that caused the compiler warnings;

Cubemap before and after:
They are the same if the orientation is ignored.
But when you do consider the orientation, one is just transformed by rotating the other cube 180 degrees around the Y-axis.
The one after this fix is the "standard, correct" cubemap that we should use in the system.

How Has This Been Tested

Types of changes

[ ] Docs change / refactoring / dependency upgrade
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have completed my CLA (see CONTRIBUTING)
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

Results are consistent and correct before and after this change.
Before:
fisheye:

equirectangular:

After:
fisheye:

equirectangular: