sendToChannel with Context

Make by analogy with the action/event in the moleculer so that params (payload) are inside the Context.
Thus, we solve the problem of event tracing with internal calls in handlers.
And we bring everything to a single view for all property transfer adapters inside the Context.
I understand this will cause breaking changes, but this is WIP. I don’t see anything critical for the project in this.

The initial decision of not implementing the Context was to allow this module to communicate with 3rd party libs/services and, thus, facilitate the integration of moleculer into already existing projects.
Maybe we can think on a way to support both the "raw" and Context-based payloads.

The initial decision of not implementing the Context was to allow this module to communicate with 3rd party libs/services and, thus, facilitate the integration of moleculer into already existing projects.

If I understand the argument correctly, then this should not break anything.
Let's discuss:
If the producer is external, it simply sends to sendToChannel without knowing anything about the context.
If the consumer is external, the handler works according to the library it uses and knows nothing about the context.
If a producer or consumer is from a moleculer-channel, then it is evident that he must be part of the moleculer ecosystem and be able to context.
By the same principle, he uses a broker, which already makes him dependent on the ecosystem.

I'll try to explain what I mean.
At the moment the broker.sendToChannel(<payload>) sends the  without performing any changes. In this case the producer doesn't make any assumptions about the consumer, so it can be a handler registered in channels: {} or an external service that expects the <payload> as is.
On the other hand, if the broker.sendToChannel adds, under the hood, the Context then the <payload> will be modified and it will looks similar to event packet. In this case, we already make an assumption about the consumer, because it should know the format of the message that it expects.
From the consumer point-of-view, registered in channels: {}, the presence of the Context also means that every message will have partenID, requestID, etc. In case of a message being sent from an external producer that's not always true.
Maybe we can add a native: true flag to the schema that would mean that the payload is not generated by moleculer and does not contains ctx fields, just the payload.

@AndreMaz thank you!
In all supported adapters, we have native headers (only in Redis, this is a custom implementation).
Moleculer-channels currently support and use them. We can pass parentID, requestID, etc. through headers, thus ensuring compatibility.
What do you think about this?

Just to confirm that I understood what you're saying.
The <payload> will be the message and the Context-related params (parentID, requestID, etc.) will be placed inside of the headers field. Then, upon message reception, the channel: {} will grab the data from the headers and recreate the ctx object
Is this correct?

@AndreMaz right!

Yeah, we can add context supporting without breaking, because we need to send id, parentID and requestID via headers to the consumer who can reproduce the Context from this data and continue the tracing. In this service, we implemented headers, where you can send extra meta info, and we can use it to put these values to the header...eg. with the common $ prefix to sign it's an internal field.

I think this would be a great feature to have!

Just to add my thoughts to this...I think this is a critical enough feature to warrant the channels feature to be a first class citizen of the molecular world, i.e. context support should be implemented. In fact, I would argue that this should eventually just replace the events feature. I view the argument of supporting third party access and gradual introduction of molecular to non-molecular projects as secondary goals. Both cases can be addressed by introducing an API shim layer or proxy similar to the molecular sidecar project. Also, I would never expose my message broker directly to a third party system to inject message directly to the bus. The only legitimate case is when the consumer is not a molecular service, but then that service can do the extra job of ignoring the molecular specific part of the payload. My projects are pure molecular and  I plan on writing a middleware to wrap localChannel and sendToChannel inject and extract/build the context.

I've just started to work on it.
Call with context:
broker.createService({
    name: "publisher",
    actions: {
        async publish(ctx) {
            await broker.sendToChannel("my.topic", { a: 5, b: "John" }, {
                ctx,
                headers: { myHeader: "123" }
            });
        }
    }
});

Context in handler
module.exports = {
    name: "sub1",
    channels: {
        "my.topic": {
            context: true,
            async handler(ctx, raw) {
                // Original `msg` in `ctx.params`
                this.logger.info("Processing...", ctx.params, raw.headers);
            }
        }
    }
}

Currently, it transfers the id, requestID, tracing, caller, level properties of ctx.
Open questions

Should we transfer the ctx.meta?
If yes, how we should serialize? The most adapters doesn't support nested objects in headers, only String. If we use Moleculer serializer, they are generate Buffer instead of String
Should we create tracing span when we create the context before calling channel handler? Should it be the same complex like in Moleculer actions and events? E.g. params, meta settings to add values to trace spans?

Please share your thoughts.

Yes, I would need ctx.meta since that is most commonly used to transport authorization. It will be a nested object indeed. If headers are transported as string, can we move the ctx.meta to be transported as part of the payload? However, that might be get complicated if payload is not an object. I thought headers could be an object per the documentation? I think we should create tracing spans just like action and event though this is les important to me personally.

Yeah, putting ctx.meta into the payload can cause other problems and breaks the current logic.
An alternative solution if we serialize the ctx.meta with Moleculer serializers into Buffer, but putting the binary data as a base64 string into the header (buf.toString("base64")), and vice versa in the receiver side.

I was about to suggest base64

Happy to test/contribute, since I need this feature! 😊

Base64 can work: https://github.com/moleculerjs/moleculer-channels/commit/8e41645941111a588a9b9a59640c68d001c2693d

@icebob I looked at the code. It looks great! I will give it a spin.

@icebob, this works well! When can it be released? :-)

I should add tracing logic, add more tests, update docs....etc

Any updates on this? Anything I can help with?

it looks like it's not as easy as I thought. Every adapter has different headers support, so I can't use the variable reading parts in the common code, I should change it and preprocess the headers before I call the channel handlers. It means I should change the current signature of the handlers as well, from handler(payload, raw) to handler(payload, headers, raw)

https://github.com/moleculerjs/moleculer-channels/pull/64

Awesome!

Tracing also works fine:

Woohoo! Well there be a new release soon?

Yeah, this week.

It' just released

Shuouldn't the context have a property called channelName just like eventName?

good idea, please open a separate issue about it, and we can add it later.


Duplicates image data for images that originally share the same buffer view

Really any objects that share the same resources (shared buffer view, shared data uri) will end up duplicating that resource when the embedded glTF is written out.
Test model: box-duplicate.gltf.txt
Found while testing https://github.com/AnalyticalGraphicsInc/gltf-pipeline/issues/302

Is anyone working on this? Just spent hours figuring out why some of my scenes actually increased in size after running through gltf-pipeline with Draco enabled.


Update README to prevent Warning: Unexpected input(s) failures

Updates Include:

[X] Change path-to-document to path-to-cla-document ( Received error that path-to-document was an invalid option and that path-to-cla-document was the valid option. )
[X] Remove use-dco-flag ( Received error that use-dco-flag is not a valid option and no alternative was provided as acceptable. )
[X] Added Note about not manually creating signature file, as this will actually cause the the workflow to fail.

Actual Error I Received: ( using<EMAIL_ADDRESS>)
Warning: Unexpected input(s) 'path-to-document', 'use-dco-flag', valid inputs are
[
  'path-to-signatures',
  'branch',
  'empty-commit-flag',
  'allowlist',
  'remote-repository-name',
  'remote-organization-name',
  'path-to-cla-document',
  'signed-commit-message',
  'signed-empty-commit-message',
  'create-file-commit-message',
  'custom-notsigned-prcomment',
  'custom-allsigned-prcomment'
]

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@manifestinteractive LGTM !. Thank you very much for your contribution :) . I really appreciate it ..  Could you please resolve the conflicts ??

@ibakshay done and done 👍


Unable to edit/upgrade installed apps after upgrading from 2.6.9 => 2.7.0

In this version, the upgrade page is blank.

When I click the yellow version label:

Additional data from the console log:

Rancher Kubernetes cluster: v1.23.12
AKS Kubernetes cluster with the apps: v1.24.6
Rancher version: 2.7.0
If i downgrade Rancher back to 2.6.9, this works again as it should.

@gaktive transferred this ticket to UI team to take a look as per the comments above

Hello UI Team,
any news?
Regards, termirg.

Related to (possibly duplicate of): #7808 and

@temirg if there is a SURE issue can you reference the number here please?
I think there's enough in this issue covered by both #7808 and #7787 to warrant closing this one. Once we have the SURE i'll link those two github issues to it

@richard-cox  sure, its 00500983.
Many thanks!
Regards, temirg.

@temirg sorry I may have misunderstood. You may need to contact your support representative for them to assist us  (dev) with our internal tracking.

ok, no problem.

The internal ticket is SURE-5732


Textual error in contents column

The contents entry for this page in the left column says "Conditional access evaluation" instead of "Continuous access evaluation", which seems wrong

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

ID: 5400b01e-9831-79bc-6b0b-df2ad5f3d39e
Version Independent ID: ad6cc61e-58e6-a1af-eefa-9ed9b6496db5
Content: Continuous access evaluation for workload identities in Microsoft Entra ID - Microsoft Entra
Content Source: articles/active-directory/conditional-access/concept-continuous-access-evaluation-workload.md
Service: active-directory
Sub-service: workload-identities
GitHub Login: @MicrosoftGuyJFlo
Microsoft Alias: joflore

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

Thanks that is a Table Of Contents where this article is also linked from that is owned by another team, but I am putting in a PR to fix that is linked above and should publish later today. Thanks! #reassign:@MicrosoftGuyJFlo


Pass req_opts from constructor args to request in oauth2client

This permits client code to pass options (e.g. proxy) directly to request (the transport library).

Could you write some docs on how I would use this?

Also, perhaps some simple tests to ensure the parameters are being passed correctly, and makes documenting much easier.

I'll do my best to add the tests later today.
My usage looks like this:
var oauthOpts = {
    req_opts: {
        proxy: 'http:/myproxy:80'
    }
};

var oauth2Client = new OAuth2(
    cfg.google.clientId,
    cfg.google.clientSecret,
    cfg.google.clientUrl,
    oauthOpts
);

//...

Do you want me to add this to any of the markdown docs or just leave it here and in the tests?

Oh hmm. Yeah that's a little messy. Can we instead just add support for a proxy value in the oauthOpts object, rather than munging all the opts together?

I liked the idea of being able to set arbitrary options on request because there are a few that I want set on all external API calls.  In my case, I'm setting a proxy and timeout.  The idea of munging all the opts seemed more in-line with https://github.com/google/google-api-nodejs-client/blob/master/lib/apirequest.js#L179, which allows arbitrary access to the request options.
That said, if you'd rather cherry-pick properties, I'm happy to make that change.  Mind if I add proxy and timeout?

Yeah, arbitrary request options are available on the API request level but I didn't think about at the transporter level itself. :( In either case req_opts should probably be better named and use camel case to fit with our conventions. Perhaps requestOpts is a more explicit name to consider.

You got it.  I'll update it to requestOpts and add some tests.

Greetings!  And thanks for the contribution.  Sadly - this PR has gotten really stale :(  We're taking steps to respond to these in a more timely fashion to prevent this from happening in the future.  Apologies!


Fix examples that require a login

[ ] framer
[ ] discord
[ ] airtable

working on checkly reminded me that it is fine to have an authentication step

This ticket has been moved to RUN-168


Add program args

Program args:
-NMS/-N copies the spigot API with NMS to a different folder after finishing
-SERVERS/-SERVER/-S copies the servers to a different folder after finishing
-KEEP/-K Keeps files that have already been made (useful if stuff has already been generated and want to use the previous flags but not recommended)

@CallumJohnson woo another pull request can u check this out?

also maybe make a new release


Infection successful but dll is not loaded

I complied the driver and created 2 x64/x86 dlls that just call to OutputDebugString on process attach.
I get injection successful message in DebugView but nothing is printed in the DebugView that indicates that the dll was loaded to the process. I also used procexp and I don't see the injdllx64  in the dll list. This behavior is on all the processes!
This is the message I'm getting for example from DebugView:
[injlib]: Injecting (PID: 15608, Wow64: FALSE, Name: 'ftp.exe')
[injlib]: InjpQueueApc successfull
[injlib]: Mark process: 15608 is injected
What could be the reason that it does not load the dll?
Thanks,
Rony.

What value of ForceUserApc do you use?

injlib.c:  CapturedInjectionInfo->ForceUserApc = TRUE;

Please, try setting it to FALSE and report back if it solved the problem.

It works!
Thanks a lot!
What does it mean changing it to FALSE?

It's explained in the README.md

The DLL is injected right after NTDLL, and since OutputDebugString is kernel32.dll function, it fails. The injection (as you probably know) works by queuing user-mode APC from the driver. The ForceUserApc controls WHEN this APC is actually triggered (executed).
ForceUserApc = TRUE means that the APC is executed on next transition from kernel-mode to user-mode.
ForceUserApc = FALSE means that the APC is executed before entry-point in the EXE is executed (at that point, usually all DLLs are loaded). The APC is triggered "naturally" by NtTestAlert in the NTDLL itself.

Read the whole readme, it's all explained there. If you still don't understand, then shoot a question :)

Thanks for the explanation. I understand it now. I will read the readme again to see that I did not miss anything.
Thank you again for the fast response!
Have a good day!

One more question.
I just noticed that it does not inject the DLL (injdllx86.dll) to 32 bit processes.
I'm running on x64 Windows 7 machine.
I see that it sees the new 32 bit processes with success message L, but the DLL is not loaded?
[injlib]: Injecting (PID: 1152, Wow64: TRUE, Name: 'MobaXterm.exe')
[injlib]: InjpQueueApc successfull
[injlib]: Mark process: 1152 is injected
Am I missing something?
Do I need to change something to allow loading x86 DLL?

Does it inject x64 DLL instead? What is your injection method? (Settings.Method)
On x64 it is by default InjMethodThunkless, which means it inject x64 DLL even into x86 processes. Use InjMethodThunk if you want to inject x86 processes with x86 DLL (again, it's all in the readme :)

No, it does not inject anything.
#if defined (_M_IX86)
Settings.Method = InjMethodThunk;
#elif defined (_M_AMD64)
Settings.Method = InjMethodThunkless;
#elif defined (_M_ARM64)
Settings.Method = InjMethodWow64LogReparse;
#endif
Settings.Method = InjMethodThunk; on x86

The driver is compiled for x64, though, doesn't it? Or are you trying it on Win7 x86?

The driver is compiled for x64. I'm running it on x64 Windows 7 machine

[injlib]: Current system is Windows 7
[injlib]: InjMethod: 'InjMethodThunkLess'

...then this branch applies: #elif defined (_M_AMD64)
Try to replace InjMethodThunkless with InjMethodThunk there.

Works like a champ!

Hi,
I got BSOD on Windows 10.
SYSTEM_SERVICE_EXCEPTION (3b)
An exception happened while executing a system service routine.
Arguments:
Arg1: 00000000c0000005, Exception code that caused the bugcheck
Arg2: fffff802bc932524, Address of the instruction which caused the bugcheck
Arg3: ffffe08f1ba66ae0, Address of the context record for the exception that caused the bugcheck
Arg4:<PHONE_NUMBER>000000, zero.
FAULTING_IP:
injdrv+2524
fffff802`bc932524 48394110        cmp     qword ptr [rcx+10h],rax
MODULE_NAME: injdrv
IMAGE_NAME:  injdrv.sys
This is the callstack:
0: kd> kp
Child-SP          RetAddr           Call Site
00 ffffe08f1ba66208 fffff802bd45b669 nt!KeBugCheckEx
01 ffffe08f1ba66210 fffff802bd45abbc nt!KiBugCheckDispatch+0x69
02 ffffe08f1ba66350 fffff802bd4533ad nt!KiSystemServiceHandler+0x7c
03 ffffe08f1ba66390 fffff802bd35b126 nt!RtlpExecuteHandlerForException+0xd
04 ffffe08f1ba663c0 fffff802bd35cc23 nt!RtlDispatchException+0x416
05 ffffe08f1ba66ab0 fffff802bd45b742 nt!KiDispatchException+0x1f3
06 ffffe08f1ba67160 fffff802bd4582c5 nt!KiExceptionDispatch+0xc2
07 ffffe08f1ba67340 fffff802bc932524 nt!KiPageFault+0x405
*** WARNING: Unable to verify timestamp for injdrv.sys
08 ffffe08f1ba674d0 fffff802bc9327f3 injdrv!InjFindInjectionInfo(void * ProcessId = 0x00000000000020ac)+0x34 [c:\working\tps\develop\endpointmonitor\injdrv\injlib.c @ 1093]  09 ffffe08f1ba674f0 fffff802bd7f2efe injdrv!InjLoadImageNotifyRoutine(struct _UNICODE_STRING * FullImageName = 0xffff91889adea688 "\Windows\System32\msvcrt.dll", void * ProcessId = 0x00000000000020ac, struct _IMAGE_INFO * ImageInfo = 0xffffe08f1ba676c0)+0x23 [c:\working\tps\develop\endpointmonitor\injdrv\injlib.c @ 1340]
0a ffffe08f1ba675b0 fffff802bd7f19f4 nt!PsCallImageNotifyRoutines+0x12e
0b ffffe08f1ba67610 fffff802bd7a1721 nt!MiMapViewOfImageSection+0x734
0c ffffe08f1ba67790 fffff802bd7a0e7b nt!MiMapViewOfSection+0x3c1
0d ffffe08f1ba678e0 fffff802bd45b143 nt!NtMapViewOfSection+0x12b
0e ffffe08f1ba67a10 00007ff9f867aea4 nt!KiSystemServiceCopyEnd+0x13
0f 00000070e8c7e6e8<PHONE_NUMBER>000000 0x00007ff9`f867aea4
Checking the source code I found that it is in:
PINJ_INJECTION_INFO
NTAPI
InjFindInjectionInfo(
In HANDLE ProcessId
)
{
PLIST_ENTRY NextEntry = InjInfoListHead.Flink;
while (NextEntry != &InjInfoListHead)
{
PINJ_INJECTION_INFO InjectionInfo = CONTAINING_RECORD(NextEntry,
INJ_INJECTION_INFO,
ListEntry);
if (InjectionInfo->ProcessId == ProcessId)
{
  return InjectionInfo;
}

NextEntry = NextEntry->Flink;

}
return NULL;
}
It only happened once.
What could be the cause of the problem?
Maybe the page fault while in the function for memory that should not be paged?


Langsmiths not giving api key for now and the example requires to have one

Langsmiths not giving api key for now and the example requires to have one

Hey, LangSmith is entirely optional, but if you want you can shoot me a DM on twitter and I can get you setup!


dracut: read guid to randomize in disk-uuid from kernel paramater

this makes coreos.randomize_disk_guid more general and capable of
re-randomizing a guid.
Previously the boolean implementation was always assuming that the
00000000-0000-0000-0000-000000000001 would exist when randomizing, this
change expects grub (or the user) to supply the appropriate guid to
expect to find and then randomize.

LGTM


BUG: The main node is the amd64 architecture, the child node is the arm64 architecture, and the installation machine reports an error

Sealos Version
4.2.3
How to reproduce the bug?

安装主节点(linux/amd64)
在主节点安装子节点(linux/arm64), 执行的命令:
sealos run labring/kubernetes:v1.25.0-arm64 --masters <IP_ADDRESS> -p 'soyuan.123' -f
安装报错
[1/1]copying files to <IP_ADDRESS>:22 100% [===============] (0/1, 0 it/min)2023-06-27T12:56:58 error Applied to cluster error: failed to copy rootfs default-kgxr5ehx: failed to copy entry /var/lib/containers/storage/overlay/e8256c18f8c615d79555eb05683232d0a8da2bd09aefbaab888ba303f054f8d9/merged/Kubefile -> /var/lib/sealos/data/default/rootfs/Kubefile to <IP_ADDRESS>:22: sha256 sum not match /var/lib/containers/storage/overlay/e8256c18f8c615d79555eb05683232d0a8da2bd09aefbaab888ba303f054f8d9/merged/Kubefile(bff4a29c3c8b73d35cb6b4a0f191a4ba2b2139aa078dccc723bb3b9dad9e5f7d) != /var/lib/sealos/data/default/rootfs/Kubefile(a8d525332e2ec14b73bd82d17c3dae86b647ac7fbbecb07eb61ddea779d4a357), maybe network corruption?

/var/lib/containers/storage/overlay/77bc6edbf85d490a16ef1c60285a6a3fe0d33d0e5f9a3a703d99d2d0f44cbc2a/merged/Kubefile
/var/lib/sealos/data/default/rootfs/Kubefile
比对一下把，这俩文件md5不一样。导致
What is the expected behavior?
安装arm架构子节点成功.
What do you see instead?
No response
Operating environment
- Sealos version:
- Docker version:
- Kubernetes version:
- Operating system:
- Runtime environment:
- Cluster size:
- Additional information:

Additional information
No response

暂时还不支持异构


Getopt:Std getopt generates wrong code if -M is active

Getopt:Std getopt generates wrong code if -M is active.  It assigns to opt_r_v instead of main.opt_r_v.

Fixed in v0.976


Running daily pipeline

At BAS, this is as easy as running run_daily.sh to produce a daily forecast

[x] Set up cron to avoid doing this manually
[x] Verify full operation to upload end...

Verified yesterdays run, leaving these going at 12:20 for the moment so I can check them after lunch...


Discussion: Add ink gestures

Is your feature request related to a problem?
Not really a problem, but several apps (eg Journal, MS To-Do) have added ink gestures to manipulate items. I think this would be a cool thing to have in Files.
Describe the solution
Add support for ink gestures for manipulating items in layout modes. Some gestures could be scribble to delete, circle to select multiple items, check to toggle selection.
Describe alternatives you've considered
N/A
Scope

Capability
Priority

This proposal will allow users to manipulate elements with a pen
Must

Additional comment
Example of how this could work:
https://user-images.githubusercontent.com/59544401/120905768-302a0e80-c609-11eb-82be-b462ba2a95d8.mp4

This is a really cool idea, but I do hope that implementing it doesn't push v2.0 any further...

I think it's a great suggestion! I would also add a gesture to scribble or draw a line over the path to go up a folder, for example:
Before: C:\Users\filesuser\Desktop\folder\Pics
Change: C:\Users\filesuser\Desktop~~folder\Pics~~
After: C:\Users\filesuser\Desktop\

I think it's a great suggestion! I would also add a gesture to scribble or draw a line over the path to go up a folder, for example: Before: C:\Users\filesuser\Desktop\folder\Pics Change: C:\Users\filesuser\Desktop\ strikethrough folder\Pics end of strikethrough After: C:\Users\filesuser\Desktop\

I think that drawing on the address bar would register as a click and enter the edit mode. It's something to look into if we decide to move forward with this proposal.

It looks like WinAppSdk doesn't have support for InkCanvas yet.

Unless it gets pushed off, WinAppSdk is supposed to be getting InkCanvas in 1.7.


Add filters to exports survey/poll/quiz data

Add user profile filters for current exports

linked to #860

@ChrisMarsh82 is it still relevant?


Fixed some issues with the Dutch translation

Hi,
I found some grammar and consistency issues in the Dutch translation.
Greetings,
Johan

Thank you


Develope clustering

Clustering Test Cases
DBSCAN algroithm

Hello @Rajjat,
Thanks a lot for your contributions :+1:
Could you please remove the unnecessary files such as the ones in the .settings/ folder and (maybe) the dbscan-on-spark_2.10-0.2.0-SNAPSHOT.jar which is included?

We are going to merge this PR with the develop branch and announce it as an experimental. We have to come back once more to the whole package and revise it and align it better.
Many thanks all for your contributions.


Add more ComputationsService tests

This adds the test cases for the following ComputationsService APIs:

AdvanceComputationStage
FinishComputation
ClaimWork
GetComputationIds
RecordOutputBlobPath
EnqueueComputation
RecordRequisitionBlobPath

This change is


User keybindings for profiles in the flyout should have priority over default keybindings

Example:
If I change the code for launching my Ubuntu instance from ctrl+shift+4 to ctrl+alt+u in the json, the UI still lists the original key combo in the UI.  I feel that if it's available for modification, it should also reflect the new value.

Oh, this is tricky.
With the v0.5 change, when you add a keybinding for
{ "command": "newTabProfile3", "keys": ["ctrl+alt+u"] },

It doesn't remove the default "newTabProfile3" keybinding, which is still bound to ctrl+shift+4. Then when we go look up the text for the keybinding, it finds the default one first, and uses that keybinding.
We should probably make sure that user-defined ones are found first, right? Not sure if that's possible, considering it's an unordered map.

This similarly affects the bindings we display in the command palette.


Allow rule templates from other cookbooks to be used by auditd_ruleset.

When a user is not satisfied with any of the provided templates and
does not want to drop new files into this cookbook (thus modifying it),
let them specify a rule template residing in a wrapper cookbook.

Often a handy thing. Thanks.


Fix typo

@earlbread i think CI was failed becauseCHANGES.rst wasn't changed.  Thank you!

@earlbread Thanks :)


Add PushSecret config for Ceph RGW buckets for Thanos

I am manually syncing the s3 key and secret key secrets to 1Password, this can change if the below PR gets merged and a release is cut.
https://github.com/external-secrets/external-secrets/pull/2646
---
# yaml-language-server: $schema=https://kubernetes-schemas.pages.dev/external-secrets.io/pushsecret_v1alpha1.json
apiVersion: external-secrets.io/v1alpha1
kind: PushSecret
metadata:
  name: thanos-rgw
spec:
  secretStoreRefs:
    - name: onepassword-connect
      kind: ClusterSecretStore
  selector:
    secret:
      name: thanos-bucket-v2
  data:
    - match:
        secretKey: AWS_ACCESS_KEY_ID
        remoteRef:
          remoteKey: thanos-rgw
    - match:
        secretKey: AWS_SECRET_ACCESS_KEY
        remoteRef:
          remoteKey: thanos-rgw

Now running into https://www.github.com/external-secrets/external-secrets/issues/3130

Closing this issue out since I believe I can pre-set the secret and it can be used by both clusters.

This is still needed since I cannot pre-create the bucket secrets

Closing issue, looks like this was fixed in external-secrets. I just need to switch to the release image on helm chart update.


Add data selfie to public profile's public data

Data Selfie files aren't showing up on public profile pages when shared publicly.
Edits may be needed to: open_humans/templates/member/member-detail-content.html

Fix proposed with https://github.com/PersonalGenomesOrg/open-humans/pull/395


http request will be blocked in webportal https

在pylon里加个proxy_pass，把 /marketplace/* 的请求发给config的http url

has fixed in https://github.com/microsoft/pai/tree/mintao/marketplace-pylon


Generate Go structs based on YAML schemas

YAML schemas are in Open API format and it should be possible to generate Go representations from them.
Futher reading:
https://www.jvt.me/posts/2022/04/06/generate-go-struct-openapi/
Ideally, the Go code could be directly imported to a project (see fsil.go internal repo for related idea).

Go code is now generated and available as a Go module. See code/go/dse/README.md for details.


docs(config): add ESLint Stylistic in @nuxt/eslint-config

🔗 Linked issue
📚 Description
ESLint Module docs has a section on ESLint Stylistic.

https://eslint.nuxt.com/packages/module#eslint-stylistic

I thought it would be better to have a section for ESLint Stylistic in the @nuxt/eslint-config document with different ways to configure ESLint Stylistic.

Please review when the reviewer has a time 🙏

Thanks for merged ❤

Thank you!


Support Microsoft Edge

Win10 comes out July 29, and I'm almost sure the new UA is on MSDN.

@gabceb How do you think MS Edge should be handled? I would refrain from stuffing it under browser.msie. The EdgeHTML engine may be a fork from Trident, but it is so radically changed that grouping it with IE is unfair. How about browser.msedge or even (if possible) browser.edge?

Any progress on this?

browser.edge plz

I'm looking into this as I type this message, seems we already detect it but need a small bit of refactoring to expose it.
@gabceb My question above still stands with an addition: the "name" key. Because the browser name is officially Microsoft Edge, I think all IDs to it should be msedge. msie happened because of legacy UAs, hence why we use that. With Edge, we could possibly avoid that and simply use edge but I am reluctant to because msedge would be inline with the official name.
BTW, here is the resulting browser object for MS Edge:
{
    "version": "13.10586",
    "versionNumber": 13,
    "win": true,
    "desktop": true,
    "msedge": true,
    "name": "msedge",
    "platform": "win"
}

According to Wikipedia Microsoft Edge is a web browser developed by Microsoft so we can assume Microsoft is part of the name hence should be named msedge. Google Chrome is actually called Chrome as per Google's download page.

We also have this post on the official blog: "We’re excited to share Joe’s announcement that Project Spartan’s official name is Microsoft Edge.", so msedge it is. I'll finish up my changes and submit a PR ASAP. :)

Do it

Microsoft Edge is now supported in v0.1.0 under the key `

Microsoft Edge is now supported in v0.1.0 under the key browser.msedge. Enjoy. :)


Fixes the 'local variable 'length' referenced before assignment' error while resuming training.

While resuming training, self.means was not been assigned before calling self.clstr_loss_l2_cdist which was causing this error. Closses issue 41.

self.means was not been assigned before calling self.clstr_loss_l2_cdist bacuase of inconsistency in clustering start iteration. Please refer this. Do you still feel that this fix is required?

self.means was not been assigned before calling self.clstr_loss_l2_cdist because of inconsistency in clustering start iteration. Please refer this. Do you still feel that this fix is required?

Thank you,
It seems like the reason for this error in issue 41 was different and does not require this fix. However, I got this error at different stages, the culprit was the same (i.e. inconsistency in clustering start iteration) but the reasons were different. Details are below,

In case, for example in Task 1, if you want to start the clustering from the 0th iteration, so you need to set START_ITER: -1  in Base-RCNN-C4-OWOD.yaml. This will create the same error because in the 0th iteration we will attempt to access self.means entries which are all None at the moment. Hence, the current code has the constraint START_ITER: >= 0, which means at least 1 iteration before you start clustering.
Now, for example, consider somehow your training crashes in the middle of Task 4 training (t4_train.yaml). So, now if you resume the training, the code will load the last saved checkpoints and set the storage.iter > self.clustering_start_iter. Again, as it is the first iteration after resuming and self.means has not been set from feature_store yet, so it will initiate the same error.

In fact, for me, this error occurred when I resumed my Task 4 training after it crashed because of a CUDA out of memory error (CUDA memory error was not because of this codebase). Furthermore, the solution I implemented is one of the several possible solutions and it might not be the best. Please guide me if I am missing anything.
Thanks

in Task 1, if you want to start the clustering from the 0th iteration

There is a burn-in period before we do clustering. Please refer to the last paragraph of Sec 4.1 "We start computing the  loss only after a certain number of burn-in iterations (I_b) are completed". Hence this use-case doesn't come up.

if you resume the training

Even here, while restarting, we can give the iter from which we are restarting as the clustering START_ITER. But in such situation (premature termination), there is a bigger concern: feature_store will not be stored. The best option would be to redo again so that the prototypes for the newer classes would be intact.
Btw, there is a related point that I think would be nice to share:  clustering START_ITER need not be iter at which the last task terminates (i). It can be anything in between i and the next UPDATE_MU_ITER.
Hence, a quicker way to restart from a premature termination would be to set START_ITER just before the next immediate UPDATE_MU_ITER.
If this discussion confuses you, I would be happy to clarify more.

in Task 1, if you want to start the clustering from the 0th iteration

There is a burn-in period before we do clustering. Please refer to the last paragraph of Sec 4.1 "We start computing the loss only after a certain number of burn-in iterations (I_b) are completed". Hence this use-case doesn't come up.

if you resume the training

Even here, while restarting, we can give the iter from which we are restarting as the clustering START_ITER. But in such situation (premature termination), there is a bigger concern: feature_store will not be stored. The best option would be to redo again so that the prototypes for the newer classes would be intact.
Btw, there is a related point that I think would be nice to share: clustering START_ITER need not be iter at which the last task terminates (i). It can be anything in between i and the next UPDATE_MU_ITER.
Hence, a quicker way to restart from a premature termination would be to set START_ITER just before the next immediate UPDATE_MU_ITER.
If this discussion confuses you, I would be happy to clarify more.

Thank you, I understood your point.


Specify unit id in brazil soybean crop model

Previously assumed unit would be tonnes per hectare no matter the source. Here, I specified the unit to guarantee consistency.

excluding PS&D is not necessary.  compute_weights is robust to phase shifts


how to use account_balance_get?

When I use account_balance_get, set contract gets error as follow:
Error Details:
!"unresolvable": env.account_balance_get

Resolved by #2886.
Thanks for the issue. account_balance_get has been removed. You can access the eosio.token tables directly.


Add missing _rng functions

Description
In an ideal world, the Stan Math library would have both a random number generator (an _rng file) and a density (a _log, _lpmf or _lpdf) implemented for all its distributions. This will be particularly important if we want to (try to) automate generation of synthetic data from the model.
Currently, according to my search through the math library, all distributions which have an RNG also have a density.  Conversely, however, the following distributions which have a density are missing a random number generator (_rng form of distribution):
./stan/math/prim/mat/prob/bernoulli_logit_glm
./stan/math/prim/mat/prob/gaussian_dlm_obs
./stan/math/prim/mat/prob/lkj_cov
./stan/math/prim/mat/prob/matrix_normal_prec
./stan/math/prim/mat/prob/multi_gp_cholesky
./stan/math/prim/mat/prob/multi_gp
./stan/math/prim/mat/prob/multi_normal_prec
./stan/math/prim/mat/prob/neg_binomial_2_log_glm
./stan/math/prim/mat/prob/normal_id_glm
./stan/math/prim/mat/prob/poisson_log_glm
./stan/math/prim/scal/prob/binomial_logit
./stan/math/prim/scal/prob/normal_sufficient
./stan/math/prim/scal/prob/std_normal
./stan/math/prim/scal/prob/wiener

Example
For example, a first implementation of
./stan/math/prim/mat/prob/bernoulli_logit_glm_rng_hpp
(which is still missing the templating to allow for arguments that are scalars)
could do something like
#ifndef STAN_MATH_PRIM_MAT_PROB_BERNOULLI_LOGIT_GLM_RNG_HPP
#define STAN_MATH_PRIM_MAT_PROB_BERNOULLI_LOGIT_GLM_RNG_HPP

#include <stan/math/prim/scal/prob/bernoulli_logit_rng.hpp>
#include <stan/math/prim/scal/err/check_consistent_sizes.hpp>
#include <stan/math/prim/scal/err/check_consistent_size.hpp>
#include <stan/math/prim/scal/err/check_bounded.hpp>
#include <stan/math/prim/scal/err/check_finite.hpp>

namespace stan {
namespace math {
/**
 * Returns a draw from the Generalized Linear Model (GLM)
 * with Bernoulli distribution and logit link function.
 *
 * This is a convenience wrapper around
 * bernoulli_logit_rng(alpha + x * beta, rng).
 *
 * @tparam RNG Type of pseudo-random number generator.
 * @param x design matrix
 * @param alpha intercept (in log odds)
 * @param beta weight vector
 * @param rng Pseudo-random number generator.
 * @return Bernoulli logit glm random variate
 * @throw std::domain_error if x, beta or alpha is infinite.
 * @throw std::invalid_argument if container sizes mismatch.
 */

template <class RNG>
inline std::vector<int>
           bernoulli_logit_glm_rng(const Eigen::Matrix<double, -1, -1> &x,
                                   const Eigen::Matrix<double, -1, 1> &alpha,
                                   const Eigen::Matrix<double, -1, 1> &beta,
                                   RNG& rng)

  const size_t N = x.col(0).size();
  const size_t M = x.row(0).size();

  check_bounded(function, "Vector of dependent variables", y, 0, 1);
  check_finite(function, "Weight vector", beta);
  check_finite(function, "Intercept", alpha);
  check_consistent_size(function, "Vector of dependent variables", y, N);
  check_consistent_size(function, "Weight vector", beta, M);
  if (is_vector<T_alpha>::value)
    check_consistent_sizes(function, "Vector of intercepts", alpha,
                           "Vector of dependent variables", y);
  Eigen::Matrix<double, -1, 1> theta = (x * beta) + alpha;
  check_finite(function, "Matrix of independent variables", theta);

  return bernoulli_logit_rng(theta, rng);
}
}  // namespace math
}  // namespace stan
#endif

Expected Output
A solution to this issue would add the files
./stan/math/prim/mat/prob/bernoulli_logit_glm_rng.hpp
./stan/math/prim/mat/prob/gaussian_dlm_obs_rng.hpp
./stan/math/prim/mat/prob/lkj_cov_rng.hpp
./stan/math/prim/mat/prob/matrix_normal_prec_rng.hpp
./stan/math/prim/mat/prob/multi_gp_cholesky_rng.hpp
./stan/math/prim/mat/prob/multi_gp_rng.hpp
./stan/math/prim/mat/prob/multi_normal_prec_rng.hpp
./stan/math/prim/mat/prob/neg_binomial_2_log_glm_rng.hpp
./stan/math/prim/mat/prob/normal_id_glm_rng.hpp
./stan/math/prim/mat/prob/poisson_log_glm_rng.hpp
./stan/math/prim/scal/prob/binomial_logit_rng.hpp
./stan/math/prim/scal/prob/normal_sufficient_rng.hpp
./stan/math/prim/scal/prob/std_normal_rng.hpp
./stan/math/prim/scal/prob/wiener_rng.hpp

containing appropriate C++ code to generate draws from the distribution
whose density is given in the files
./stan/math/prim/mat/prob/bernoulli_logit_glm_log.hpp
./stan/math/prim/mat/prob/gaussian_dlm_obs_log.hpp
./stan/math/prim/mat/prob/lkj_cov_log.hpp
./stan/math/prim/mat/prob/matrix_normal_prec_log.hpp
./stan/math/prim/mat/prob/multi_gp_cholesky_log.hpp
./stan/math/prim/mat/prob/multi_gp_log.hpp
./stan/math/prim/mat/prob/multi_normal_prec_log.hpp
./stan/math/prim/mat/prob/neg_binomial_2_log_glm_log.hpp
./stan/math/prim/mat/prob/normal_id_glm_log.hpp
./stan/math/prim/mat/prob/poisson_log_glm_log.hpp
./stan/math/prim/scal/prob/binomial_logit_log.hpp
./stan/math/prim/scal/prob/normal_sufficient_log.hpp
./stan/math/prim/scal/prob/std_normal_log.hpp
./stan/math/prim/scal/prob/wiener_log.hpp

respectively.
Current Math Version
v2.18.0

I have implementations and tests for four of the RNGs requested. But I would like a second perspective on a few things before preceding further.
The changes are here:
https://github.com/peterwicksstringfield/math/commit/adb72255083a25aa295d02a9a4c927f1f75458cd
I think I can turn that changeset into a pull-request somehow if that would make it easier to view. Not sure how.
Tests can be run like this:
runTests test/unit/math/prim/mat/prob/multi_normal_prec_test.cpp test/unit/math/prim/mat/prob/bernoulli_logit_glm_rng_test.cpp test/unit/math/prim/mat/prob/gaussian_dlm_obs_rng_test.cpp test/unit/math/prim/mat/prob/matrix_normal_prec_rng_test.cpp test/unit/math/prim/mat/err/check_pos_semidefinite_test.cpp
Some specific concerns:

In test/unit/math/prim/scal/prob/util.hpp we have utility functions for testing RNGs. By partitioning the range of the random variable into a set of bins, sampling from the RNG, counting samples in each bin, and comparing to expected counts with a chi-squared test. Previously, the bins were equi-probable. To test bernoulli_logit_glm_rng I extended the interface to allow for non-equi-probable bins. The names assert_matches_quantiles and assert_matches_cutpoints could use some work.

gaussian_dlm_obs_lpdf takes three covariance matrices as input (plus some other inputs) and allows 2 of them to be semi-definite rather than strictly definite. gaussian_dlm_obs_rng allows all 3 to be semi-definite. This seems harmless, and it made it easier to test.

The precision parameterized matrix_normal_prec_rng and multi_normal_prec_rng could use matrix inversion instead of backsolving if desired. I actually wrote it both ways and neither is much more complicated than the other.

I put the tests for multi_normal_prec_rng in multi_normal_prec_test.cpp with the lpdf tests, because that's how multi_normal_rng and multi_normal_lpdf do it. I'm not crazy about this organization.

I'm not 100% sure I understand the error behavior for Eigen::LDLT.

PR submitted. (What I did was I forked the stan/math repo and pushed my changes to a branch on the fork. github has no problem making a PR across forks.)
The automated testing process appears to have stopped with the clang auto format. At least you can see the code now though.

I've revised the naming of the chi-squared helpers.

Waiting for policy decision.

Cool.

I split the tests. Can revert that if needed easily.

No, I guess I don't have a specific question.

Thanks.  That all sounds good and I pinged @syclik about policy on semi-definiteness.  @bgoodri might weigh on on that one, too.

@peterwicksstringfield, thanks for the PR. I just needed a couple days to think about it. My preference is for the random number generators to match the probability distribution functions and the cumulative distribution functions. As far as I know, that's our current behavior across all of our lp{d,m}f / rngs now. (I'll just use rng and lpdf to to keep things short.)
There are two motivations for having the rngs match the lpdfs:

consistency. If that's what we're doing everywhere else, I think it makes sense to continue to do the same until a bump in major version.
parallelism across lpdf / cdf / rng code. I know it's not a guarantee, but if someone isn't as careful as you are to doc that the conditions are relaxed, then it'll be really easy for someone to be confused and change it so it matches (since that's what the rest of the code base does).

If you have a really good reason for allowing them to be different, I'd like to hear it. I know enough of this codebase where I value consistency a lot. I'm asked to drop into places I haven't been in years and when it doesn't behave similarly like other parts, it takes me quite a bit longer to get familiar than something that looks like everything else.
I haven't looked at in depth at the lpdf, I'm just responding to the policy. But here's a simple example of where we keep the lpdf and rng together when we don't strictly need to and I think it's the right decision: normal.
I expect this to throw an error: normal_lpdf(x, mu, 0); (where x and mu are some valid numbers). We don't need to throw an error -- we could have actually returned -inf, but the use case that we're designing for is for Stan. We want to provide useful error messages as soon as possible. If this returns -inf and that just propagates, we end up with an iteration being rejected with no indication to the user that the problem is in the evaluation of the normal distribution.
Now... we could have different bounds on the rng and expect normal_rng(mu, 0); to return mu, but right now it throws an exception. I'm perfectly happy with that. If someone actually passes in a 0 for the standard deviation, I think it's either a user not realizing they're just asking for mu back (in which case the error seems perfectly reasonable) or the user is trying to do it intentionally to either roll the base rng forward or do something really clever. Clever developers can find other ways to do that... I'd rather help the dev that doesn't know that they're doing something nonsensical.

@peterwicksstringfield and @bob-carpenter, I'll post back when I put this up on the wiki.

No particular reason for the rng to be different than the lpdf here. I have changed gaussian_dlm_obs_rng to throw domain_errors in response to positive semi-definite C0s, just like gaussian_dlm_obs_lpdf.
I have not pushed that change to the PR yet.  And since it seems like I'm on the right track, I plan to do the other rngs on this ticket too.
Not ready for review. Will push changes soon and comment here again. I can close the PR in the meantime if that helps.
bob-carpenter, syclik thank you for the help.

Thanks for the status report---it's really helpful.
I'd suggest working depth first to get a couple functions fully
through review.
It's easier on the reviewers and less rewriting for you if basic
structure needs to change.

On Dec 18, 2018, at 2:18 AM, Peter Wicks Stringfield<EMAIL_ADDRESS>wrote:
No particular reason for the rng to be different than the lpdf here. I have changed gaussian_dlm_obs_rng to throw domain_errors in response to positive semi-definite C0s, just like gaussian_dlm_obs_lpdf.
I have not pushed that change to the PR yet.  And since it seems like I'm on the right track, I plan to do the other rngs on this ticket too.

Not ready for review. Will push changes soon and comment here again. I can close the PR in the meantime if that helps.
bob-carpenter, syclik thank you for the help.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.

The pull request with the first four RNGs is now ready for review.
https://github.com/stan-dev/math/pull/1083


Runtime Crash

Are you referring to crash in #7?

Yes I referred, but still not solved.
On Tue, May 19, 2020 at 2:02 AM Paras Sidhu<EMAIL_ADDRESS>wrote:

Are you referring to crash in #7
https://github.com/sidhuparas/Coronavirus-Tracker/pull/7?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sidhuparas/Coronavirus-Tracker/issues/8#issuecomment-630600796,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AE3ILJXH5AR7R2UZTE4WKNDRSIOGHANCNFSM4NEPVWCA
.

--

      Thanks & Regards*

Build Config Error

@JaydeepMotisariya I would suggest you to go through updated README.

Fixed in #7


XML-JS Empty xml files being made after conversion from .json file

I'm currently using "yarn" to issue my command instead of npm.
After using xml-js to convert my files, it makes the xml file but does not retain the information within the .json file.
Command Prompt Line used:
yarn xml-js C:\Users\Solis_a\Selenium-Tests\results-2023-06-27T13-31-20.567Z.json --spaces 4 --out C:\Users\Solis_a\Selenium-Tests\results-2023-06-27T13-31-20.567Z.xml
Am I entering the line improperly or is it a file issue?

I had the same issue: no output from a JSON->XML run, and no errors logged. Although, I'm not sure that is necessarily a problem with this package (although, an error or hint of some kind would be nice, when there is empty output).
I figured out my issue, which was that my input JSON was incorrectly structured. I used the CLI to validate manually by giving it good, expected XML, and got JSON out. I then compared the good JSON (expected) to my JSON (actual) and was able to find my structural errors. Specifically, my issue was that I mixed compact and non-compact in my JSON, which caused the empty output without errors—it seems that there are allowed/expected keys in non-compact that will just cause the parsing to break (understandably).
It would be cool if this package offered validation tooling, but I can see how that easily falls out of scope, especially if the "non-compact" and "compact" structures are standards. (I'm a bit unfamiliar with the XML <-> JS tooling, but after reading the README I expect those structures are sort of common or standards across similar APIs/tools?)


-cl-std=CL2.0 Build Option Hardcoded

The following tests (possibly not an exhaustive list) hard code the -cl-std=CL2.0 build option.  I wasn't sure if there was already a record of this issue.
I'm happy to start working on this immediately.  It seems like dynamically selecting the standard based on the device version should be straightforward, ideally doing this in a common place to reduce code duplication around create_single_kernel_helper_with_build_options.

I'm not sure I understand the problem. These tests should never run on a 1.2 implementation. As to 3.0, we'll need to decide whether we want to always compile with -cl-std=CL3.0 or test -cl-std=CL2.0 when supported as well.

Sorry, you are right, it didn't click that the majority of these are 2.0 features,. I think a couple of these tests are 1.2 features though, e.g. sizeof and wg_barrier, pragma_unroll? These should be straightforward to fix. For 3.0 the simplest thing is probably to always test the latest version supported by the device?


Feature request: Multi-select items on iOS

Is your feature request related to a problem? Please describe.
Currently when selecting items on iOS (ex: photos and files), the checkbox for each item just be individually tapped
Describe the solution you'd like
Have an option to select multiple items at once. This can be achieved via hold and swipe in a direction or double finger hold and move in a direction
Describe alternatives you've considered
No response
Additional context
No response

Approve & agree.  Will do a great convenience

Please consider this feature. Many people have asked for it on the App Store reviews. Thank you @Tienisto

Closing this in favor of #376

Bulk selection of photos on iOS can be achieved with the native Photos app (demo].

Once photos / videos are selected in the iOS Photos app, click the "share" icon in the bottom left corner:

Click the "Options >" button at the top

Select "Current". This ensures that the original file will be shared, rather than a transcoded version.

Back at the same screen from step 2, click the "More" button on the right side:

Select LocalSend from the list of apps with which to share the photo/video:

Done!

Unfortunately, I am not aware of a way to make "Current" the default in step 3.
See this issue for where I discovered this technique: https://github.com/localsend/localsend/issues/1830


Enable admin mode switch to "mine"

On the latest main branch I noticed this behaviour:

Drop Admin mode
Enable again; instead of showing all the dataset, now I only see my own. Refresh doesn't help either.

I see multiple request to the backend with mine flag fluctuated from false to true

Will check.

I think this is fixed.
I enabled admin mode. Instead of 11 pages, I now see 14 pages of datasets.
Dropped admin mode. Now I see 11 pages.
Enabled again. Bottom shows a total of 14 pages.
I noticed that the datasets on the first page did not change though.

https://github.com/clowder-framework/clowder2/pull/1104
This branch is what I checked.

This is addressed in #1104


Add SOC 2 controls for Azure

There is a well developed SOC 2 controls mod for AWS. Can we get a similar one for Azure?

Thanks @shanzack for raising the issue. It would be beneficial if you could provide a reference to the document.

Hey @shanzack, we're closing this issue as we haven't heard back from you, please feel free to reopen if you want to share anything. Thanks!


Add .perltidyrc, and format

I added a fairly standard .perltidyrc to the project and formatted the perl code. I think you use Emacs, so you should checkout this. Cheers.

I will gladly accept this pull request provided it is somewhat similar to sakisafecli's .clang-format:
https://github.com/rfc-2549/sakisafe/blob/master/sakisafecli/.clang-format

@rfc-2549 I changed tab-size, not exactly sure how to translate some of the other clang format stuff to perltidy tbh

Enough for me let's be honest
thanks for yet another contribution


Support new app: Affinity {Designer,Photo,Publisher}

BundleId of the app
com.seriflabs.affinitydesigner2
com.seriflabs.affinityphoto2
com.seriflabs.affinitypublisher2
Example window titles
Title follows the scheme:
{Application Name} - {Document Name} [Modified] ({Zoom %})
Examples:
Affinity Designer 2 -  (130.5%)
Affinity Designer 2 - Awesome Design [Modified] (20.5%)
Affinity Photo 2 - IMG_591 (10.5%)
Affinity Publisher 2 - My Book [Modified] (120%)

Implemented with #297.


Save dialog under Linux/GNOME does not show files that do not have an extension

Version: 1.68.1 ( 30d9c6cd9483b2cc586687151bcbcd635f373630, 2022-06-15T02:58:26.441Z )
OS: Linux x64 5.13.0-41-generic (Ubuntu Focal, running GNOME desktop)
Steps to Reproduce:

Press Ctrl+S on a new file or Ctrl+Shift+S on an open file
navigate to a folder with files that do not have extensions (eg: Dockerfile, Makefile)
The file dialog would not show the files without extension.

Note that this issue does not occur under KDE. I haven't tested it under other desktops.
Note 2: File open dialog does show all the files.

Duplicate of https://github.com/microsoft/vscode/issues/107246 ?

It seems related but I don't think this bug is same as that one. This bug occurs on save dialog whereas the 'hidden files reset' bug is on the open dialog. I don't see any Electron bug for this or the other bug. If it is indeed Electron issue I'm happy to open a bug report on their repo.

Unable to repro with latest stable 1.74


9.0.0 to 9.3.0 sendMulticastAsync vs sendEachForMulticastAsync. Server crashes when sending too many pushes

[REQUIRED] Step 2: Describe your environment

Operating System version: debian / grails / groovy / java 11
Firebase SDK version: 9.3.0
Library version: _____
Firebase Product: admin

[REQUIRED] Step 3: Describe the problem
We switched out the firebase admin version from 9.0.0 to 9.3.0 yesterday. Sending out a few pushes works fine, but we sometimes send out a few millions in a "batch". There never were issues with the old sendMulticastAsync
    ApiFuture<BatchResponse> apiFuture = FirebaseMessaging.getInstance().sendEachForMulticastAsync(multicastMessage)

    apiFuture.addListener({
        def batchResponse = apiFuture.get()
        if (batchResponse != null && batchResponse.failureCount > 0) {
            for (int i = 0; i < batchResponse.responses.size(); i++) {
                def response = batchResponse.responses.get(i)
                if (response != null && !response.successful && response.exception != null && (
                        (ErrorCode.NOT_FOUND == response.exception.errorCode && MessagingErrorCode.UNREGISTERED == response.exception.messagingErrorCode) ||
                                (ErrorCode.INVALID_ARGUMENT == response.exception.errorCode && MessagingErrorCode.INVALID_ARGUMENT == response.exception.messagingErrorCode))) {
                    UidRemovalJob.removalCandidates.add(new UidRemovalCandidate(phoneId: tokenList[i], os: 2))
                }
            }
        }
    }, executorServiceAndroidResponses)

Does this need to be switched to another implementation?

This is a known limitation in sendEach* methods (see #941). Should be addressed in #979

Could also be due to https://github.com/firebase/firebase-admin-java/pull/985, which will be fixed in the upcoming release.

Both of those changes are now available with the release of v9.4.0.
See our wiki for more information on HTTP Transport change.

https://github.com/firebase/firebase-admin-java/issues/1001#issue-2531678332


io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 65536 byte(s) of direct memory (used:<PHONE_NUMBER>, max:<PHONE_NUMBER>)

Our code uses fluxBody.buffer().map. (dataBuffers-> Processes the return body and uses DataBufferUtils.release(join) for the Databuffer. Manually release the memory. In the case of high-concurrency query on the live network, it is found that the non-heap memory keeps increasing until the OutOfMemoryError error is reported. Can you provide an explanation?

Is this still an issue with 4.1.2-SNAPSHOT?

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.


Make nested views properly introspectable

Currently, only the first level of a view is introspectable, which makes
nested views useless in contexts where proper introspection is
necessary, such as in GraphQL reflection.
Making schema views fully introspectable requires two changes: the names
of nested derived views must be unique and properly formed (i.e not use
the generic derived mangling), the target refs in of the derived
pointers in the view must be kept.
Also, DROP VIEW is currently broken when used on a view with nesting,
since it leaves behind the derived types created for nested views.  That
is also fixed by this commit.

For GraphQL we'd need to prefix nested persistent views with something other than __ since that is reserved for GraphQL special needs (https://graphql.github.io/graphql-spec/June2018/#sec-Reserved-Names). I'm tempted to go with a simple View__. This is something I can do once the main PR is committed, probably.

The reason I used __ is because it is reserved in EdgeQL also, so there's no risk of collision with regular types.

My point is that how we reflect the names into GraphQL is entirely arbitrary and doesn't have to block or dictate the naming convention for EdgeQL. The __ makes sense for EdgeDB.


Missing partial shared/views/ems_common/_orchestration_stacks

When trying to access the Orchestration stacks from the Openstack Infra provider Relationships I get the following exception:
Missing partial shared/views/ems_common/_orchestration_stacks with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :haml, :jbuilder, :rjs]}. Searched in: * "/home/admin/manageiq/app/views" [ems_infra/show]
Steps to reproduce:

Add Openstack infra provider
Go to the summary of the provider added in step 1
Click on Orchestration stacks in the Relationships section

I can't reproduce this problem in current ManageIQ master.
Is this still an issue?

Yeah, I tried this one and didn't see it. Maybe it was already fixed?


System.FormatException: Input string was not in a correct format.

Hello, first of all great work, this package is very addictive to use.
I got this error when accidentally trying to markup some json string.

actually this happened as accident my program accidentally attempted to parse already parsed json file.
the file text being fed into markup is this
{"Marker":{"fileMarker":"FacWalk V101 "},"Header":{"terrain":1,"outdoor":1,"flippable":1,"width":12,"height":12,"entryCount":105},"Entrys":[{"x":10,"y":10,"walkable":1},{"x":10,"y":9,"walkable":0},{"x":10,"y":8,"walkable":0},{"x":10,"y":7,"walkable":0},{"x":10,"y":6,"walkable":1},{"x":10,"y":5,"walkable":0},{"x":10,"y":4,"walkable":0},{"x":10,"y":3,"walkable":0},{"x":9,"y":3,"walkable":0},{"x":9,"y":2,"walkable":0},{"x":8,"y":1,"walkable":0},{"x":7,"y":1,"walkable":0},{"x":7,"y":0,"walkable":0},{"x":6,"y":0,"walkable":0},{"x":6,"y":1,"walkable":0},{"x":5,"y":1,"walkable":0},{"x":5,"y":0,"walkable":1},{"x":4,"y":0,"walkable":1},{"x":4,"y":1,"walkable":0},{"x":3,"y":1,"walkable":0},{"x":2,"y":1,"walkable":1},{"x":2,"y":2,"walkable":1},{"x":3,"y":2,"walkable":0},{"x":4,"y":2,"walkable":0},{"x":5,"y":2,"walkable":0},{"x":6,"y":2,"walkable":0},{"x":7,"y":2,"walkable":0},{"x":8,"y":2,"walkable":0},{"x":8,"y":3,"walkable":0},{"x":7,"y":3,"walkable":0},{"x":6,"y":3,"walkable":0},{"x":5,"y":3,"walkable":0},{"x":4,"y":3,"walkable":0},{"x":3,"y":3,"walkable":0},{"x":1,"y":3,"walkable":0},{"x":1,"y":4,"walkable":1},{"x":2,"y":4,"walkable":1},{"x":2,"y":3,"walkable":1},{"x":3,"y":4,"walkable":0},{"x":4,"y":4,"walkable":0},{"x":5,"y":4,"walkable":0},{"x":6,"y":4,"walkable":0},{"x":7,"y":4,"walkable":0},{"x":8,"y":4,"walkable":0},{"x":9,"y":4,"walkable":0},{"x":9,"y":5,"walkable":0},{"x":8,"y":5,"walkable":0},{"x":7,"y":5,"walkable":0},{"x":6,"y":5,"walkable":0},{"x":5,"y":5,"walkable":0},{"x":4,"y":5,"walkable":0},{"x":3,"y":5,"walkable":0},{"x":2,"y":5,"walkable":1},{"x":2,"y":6,"walkable":0},{"x":3,"y":6,"walkable":0},{"x":4,"y":6,"walkable":0},{"x":5,"y":6,"walkable":0},{"x":6,"y":6,"walkable":0},{"x":7,"y":6,"walkable":0},{"x":8,"y":6,"walkable":0},{"x":9,"y":7,"walkable":0},{"x":9,"y":6,"walkable":0},{"x":8,"y":7,"walkable":0},{"x":7,"y":7,"walkable":0},{"x":6,"y":7,"walkable":0},{"x":5,"y":7,"walkable":0},{"x":4,"y":7,"walkable":0},{"x":3,"y":7,"walkable":0},{"x":2,"y":7,"walkable":0},{"x":1,"y":7,"walkable":0},{"x":0,"y":7,"walkable":1},{"x":0,"y":8,"walkable":1},{"x":1,"y":8,"walkable":0},{"x":2,"y":8,"walkable":0},{"x":3,"y":8,"walkable":0},{"x":4,"y":8,"walkable":0},{"x":5,"y":8,"walkable":0},{"x":6,"y":8,"walkable":0},{"x":7,"y":8,"walkable":0},{"x":8,"y":8,"walkable":0},{"x":9,"y":8,"walkable":0},{"x":9,"y":9,"walkable":0},{"x":8,"y":9,"walkable":0},{"x":7,"y":9,"walkable":0},{"x":6,"y":9,"walkable":0},{"x":5,"y":9,"walkable":0},{"x":4,"y":9,"walkable":0},{"x":3,"y":9,"walkable":0},{"x":2,"y":9,"walkable":1},{"x":1,"y":9,"walkable":1},{"x":2,"y":10,"walkable":1},{"x":3,"y":10,"walkable":0},{"x":4,"y":10,"walkable":0},{"x":5,"y":10,"walkable":0},{"x":6,"y":10,"walkable":0},{"x":7,"y":10,"walkable":0},{"x":8,"y":10,"walkable":0},{"x":9,"y":10,"walkable":0},{"x":9,"y":11,"walkable":0},{"x":8,"y":11,"walkable":0},{"x":7,"y":11,"walkable":0},{"x":6,"y":11,"walkable":0},{"x":4,"y":11,"walkable":1},{"x":11,"y":8,"walkable":1},{"x":11,"y":5,"walkable":1}]}
the code supposed to log it is this:
public static void Log(string message, string severity)
{
    var year = DateTime.Now.Year.ToString("0000");
    var month = DateTime.Now.Month.ToString("00");
    var day = DateTime.Now.Day.ToString("00");
    var hour = DateTime.Now.Hour.ToString("00");
    var minute = DateTime.Now.Minute.ToString("00");
    var second = DateTime.Now.Second.ToString("00");
    var milliseconds = DateTime.Now.Millisecond.ToString("000");
    var timeStampFull = year + "/" + month + "/" + day + "-" + hour + ":" + minute + ":" + second + ":" + milliseconds;

    try
    {
        switch (severity)
        {

            case "success":
                AnsiConsole.MarkupLine($"[green]{timeStampFull}-{severity.ToUpper()}:[/] {message} [green]...[/]");
                break;
            case "debug":
                AnsiConsole.MarkupLine($"[grey]{timeStampFull}-{severity.ToUpper()}:[/] {message} [grey]...[/]");
                break;
            case "info":
                AnsiConsole.MarkupLine($"[white]{timeStampFull}-{severity.ToUpper()}:[/] {message} [white]...[/]");
                break;
            case "warn":
                AnsiConsole.MarkupLine($"[darkorange]{timeStampFull}-{severity.ToUpper()}:[/] {message} [darkorange]...[/]");
                break;
            case "error":
                AnsiConsole.MarkupLine($"[red1]{timeStampFull}-{severity.ToUpper()}:[/] {message} [red1]...[/]");
                break;
            case "critical":
                AnsiConsole.MarkupLine($"[red3_1]{timeStampFull}-{severity.ToUpper()}:[/] {message} [red3_1]...[/]");
                break;

            default:
                var ex = new Exception("Unsupported log severity!");
                AnsiConsole.WriteException(ex);
                break;
        }
    }
    catch (Exception e)
    {
        AnsiConsole.WriteException(e);
        throw;
    }
}

the place where its called:
        public FacWalk Read()
        {
            var obj = new FacWalk
            {
                Marker = MarshalUtils.ByteArrayToStructure<FacWalkMarker>(_reader)
            };
            AnsiConsoleExtensions.Log($"Parsed file marker: {obj.Marker.fileMarker}", "success");
...

So TLDR:
The json file gets marshaled according to FacWalkMarker structure is then fed into
AnsiConsoleExtensions.Log($"Parsed file marker: {obj.Marker.fileMarker}", "success");

which calls
 AnsiConsole.MarkupLine($"[green]{timeStampFull}-{severity.ToUpper()}:[/] {message} [green]...[/]");

and exception is thrown.
The code works just fine on the original game data

So I am rly thrilled to know what's wrong or why it cannot handle the mangled json string data.
Thanx

Thanks for the kind words about the library, @Bia10! Double check the version is the latest because this sounds like a bug that was just recently fixed.
If you are still seeing maybe it wasn't fully fixed 😯 but with your reproduction I could take a look early this week if the new version doesn't fix it

well I am using the latest release:

Ok, I see the issue. Looks like my hunch about not fixing the bug originally looks to be true.
So, the original issue was this: we always were calling string.Format even when there were no parameters to format. Since you are passing in json it is seeing the brackets and throwing the exception. I missed the helpers on the static AnsiConsole instance to include a few overrides to skip that string.Format.
I'll work on a fix.
Thanks for the thorough example and documentation, very much appreciated!


Still does not work on ARM?

#55 says that ARM support is coming soon... That was a year ago. Is it still going to happen or has this project been abandoned?

I have a Dockerfile for an earlier version here which can produce an arm64 image.

Hi @deepsu16,
Thanks for reaching out.
Unfortunately I worked on this for a while and concluded that there isn’t a straightforward way to create an ARM binary using GitHub Actions. (It’s possible, but it requires jumping through some hoops.)
In the interest of keeping things simple so that I can maintain them, I decided to not provide ARM binaries for now.
That said, Kill the Newsletter! should work in ARM just fine—it’s a matter of building it from source. There are pointers in the README for you to accomplish that.
Best.


How to name a tag wrapper

I was wondering whether a  tag element which is wrapping other content, is considered a block?
Let's consider this vanilla code:

Some random paragraph

Code below considers a tag as normal element.

Some random paragraph

While this code considers a tag as block that wraps p and img:

Some random paragraph

Which approach is better/valid and why?

Both variants are valid.
Here's the way to decide if an entity is a block or an element: https://en.bem.info/methodology/quick-start/#should-i-create-a-block-or-an-element

Thanks a lot.
You can close this issue :)


Label with Encrypt Only does not display in Mac outlook client

[Enter feedback here]

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

ID: e0836a95-d3b7-3c43-d56b-5fb4ceeb4765
Version Independent ID: 8a0d366b-5ff7-22de-7aba-6adbe0ea94ea
Content: Manage sensitivity labels in Office apps - Microsoft 365 Compliance
Content Source: microsoft-365/compliance/sensitivity-labels-office-apps.md
Service: o365-seccomp
GitHub Login: @cabailey
Microsoft Alias: cabailey

Hi @migoboy2001  Sorry to hear this label configuration isn't working for you in Outlook for Mac.  If per the information on this page you're running the minimum supported version (16.48+) and mode known as "the new Outlook for Mac", and you've waited at least 24 hours for the label to display, please open a support ticket for investigation.  It would be helpful to confirm that the same label configuration for the same user is displaying as expected on Windows.

@migoboy2001  Considering the nature of the issue, as advised, please open a service ticket in your tenant and follow with them for the resolution. We proceed to close it as here we are limited to documentation fixes and improvements only.
We will be very happy if you can share the outcome or resolution with us if you see documentation update is required. We will certainly update this documentation with that valuable information. Thanks again, for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


Feature Request: useLazyQuery

Add a simple wrapper function around the existing useQuery to set the lazy option to true.
$client.post.getPosts.useLazyQuery(<input>)

Equivalent to
$client.post.getPosts.useQuery(<input>, { lazy: true })

@wobsoriano If this is something that you think is worth adding I can open a PR based on this diff (Playground changes optional)

Yeah feel free to open a PR!

Released in https://github.com/wobsoriano/trpc-nuxt/releases/tag/v0.10.10
Thanks!


Fix new gfx target naming convention

This was introduced in recent xnack changes naming changes which affected our offload bundler. This patch will fix issues in HIP samples, ROCR tests, and others. Related to internal issues SWDEV-150756, SWDEV-149306. Also requires HCC PR https://github.com/RadeonOpenCompute/hcc/pull/692

Thank you Tony and Maneesh! I am making sure the same fix finds its way to HCC.

Hi Maneesh, I think that the old prefix code part doesn't work. I will revise and add new PR with changes.


Task count not rendering in messaging?

E.g. https://dispatch.bikebrigade.ca/campaigns/3235/messaging

Oops my bad that rider didn't have anything assigned!

[I removed the screenshot for privacy reasons]

Ugh sorry, not on my game this morning.


Sample code uses incorrect time settings

https://github.com/microsoft/MSRC-Microsoft-Engage-API/blob/7a041f670888192527d4fd22ca96166df7209e54/src/msrcCars/CsharpExamples/C%23Code.cs#L40
This needs to be changed to DateTime.UtcNow.ToString("HH:mm:ss") otherwise provided timestamps are inconsistent and are not in 24hr format. Other code samples may be affected and should be checked.

Hey @robeving, thank you for this. This API is being replaced with a new version with an updated data model. Documentation is available at https://msrc.microsoft.com/report/developer and there is more context at https://msrc-blog.microsoft.com/2021/02/01/new-and-improved-report-abuse-portal-and-api/


Can not scroll on iOS 9.2 safari when preventing passive touchmove event on window

Environment

Browser: ios 9.2 safari
Version of smooth-scrollbar: 8.4.0

Issue Summary

Can not scroll element when preventing passive touchmove event on window
Current Behavior

Can not scroll element when preventing passive touchmove event on window
Expected Behavior

Can scroll element when preventing passive touchmove event on window
Steps to Reproduce

open the demo in iOS 9.2 safari
Online demo

I'd better show you my code:
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <meta http-equiv="X-UA-Compatible" content="ie=edge" />
    <title>Document</title>
    <style>
      #s {
        border: 1px solid #333;
        width: 200px;
        height: 200px;
        font-size: 32px;
        overflow: hidden;
      }
    </style>
    <script src="./smooth-scrollbar.js"></script>
  </head>
  <body>
    <div id="s">
      Lorem, ipsum dolor sit amet consectetur adipisicing elit. Alias non beatae
      tempore natus ex atque cum repellendus illum. Nulla natus saepe quae. Odit
      tempora eaque similique eum officia pariatur porro.
    </div>
    <script>
      function disableScroll(e) {
        e.preventDefault();
      }
      window.addEventListener('touchmove', disableScroll, { passive:true });
      Scrollbar.init(document.getElementById('s'));
    </script>
  </body>
</html>

the reaon why I prevent the passive touchmove event from window is to get rid of safari bounce scroll behavior

I found this issue is caused by the code here
https://github.com/idiotWu/smooth-scrollbar/blob/b8e4005e789c168bce446e8479c1186d6ee59d0e/src/utils/event-hub.ts#L52-L54
But I don't understand why check defaultPrevented here.


Increased version of blessed

blessed 0.0.44 fixed support for UTF-8 on Linux console, so now box borders are correctly drawn on virtual terminals.

thanks!

You are welcome ;-)


OCPBUGS-29354: Added error event for failed ingress to route conversion

This pull request adds error handling and event recording for failed Ingress to Route conversions. It ensures that any errors encountered during the conversion process are properly logged and recorded as events, improving the observability and debugging capabilities of the system.

/jira refresh

/jira refresh

Verified using pre merge method
C:\Users\HP\Downloads>oc get clusterversion
NAME      VERSION                                                   AVAILABLE   PROGRESSING   SINCE   STATUS
version   4.17.0-0.ci.test-2024-10-09-154506-ci-ln-9gs674t-latest   True        False         10m     Cluster version is 4.17.0-0.ci.test-2024-10-09-154506-ci-ln-9gs674t-latest
C:\Users\HP\Downloads>oc get ingresses.config/cluster -o jsonpath={.spec.domain}
apps.ci-ln-9gs674t-76ef8.aws-2.ci.openshift.org
C:\Users\HP\Downloads>oc create -f ingressToRoute.txt
service/myapp02 created

/label qe-approved

/assign @alebedev87

I think that there are still quite some corner cases which don't result into error and may be hidden from the end user. Like:

Missing exact path match support.
Not existing service name.
Wrong port.
Missing or invalid tls secret.
Missing host field.

Those are not errors because 1 ingress may result into N routes so when the controller iterates over ingress rules it continues even if some rules don't follow "ingress-to-route convention". I think a normal event with a summary of which rules were not respected (in case no updates/creates/deletes were produced after a sync iteration) may be of a big help for the end user.

/test unit

/retest-required

Hi @alebedev87, I have resolved the review changes. Could you please take another look when you have a moment please? Thanks!

/test unit

/test unit

@Thealisyed : the unit test is failing due to a nil pointer dereference panic. Please run make test on your laptop and fix the test. Most likely the problem is in the test controller which does not initialize the eventRecorder field.

ci/prow/e2e-hypershift: Failing to destroy cluster, TLS handshake timeout, refused connection
ci/prow/e2e-aws-ovn:	KubeAPIErrorBudgetBurn should not be at or above inf
ci/prow/okd-scos-e2e-aws-ovn: Failed cluster bootstrap and install
/retest

/test images

Btw I found the pathType which works with an empty path: ImplementationSpecific. So the following ingress would work for a passthrough type:
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    route.openshift.io/termination: passthrough
  name: hello-openshift-class
spec:
  ingressClassName: openshift-default
  rules:
  - host: example.com
    http:
      paths:
      - backend:
          service:
            name: httpd-24
            port:
              number: 8080
        path: ""
        pathType: ImplementationSpecific
  tls:
  - {}

/lgtm

Failing unrelated to changes
/retest


🐛 Bug Report:  Auth login: target origin provided does not match the recipient window's origin

📜 Description
hi there, I set up an backstage on my aws eks. and its url is https://eu-west-1.backstage.aw.arm.com, and I also asked for another domain like: backstage.arm.com in my company to be redirected to aws one. and meanwhile we enabled sso login, microsoft-auth-provider.
the issue is:
so currently if I open https://eu-west-1.backstage.aw.arm.com, and click login in, I can successfully login.
but if I open https://backstage.arm.com, the login page is good, but if I click login, the popup window url starts with https://eu-west-1.backstage.aw.arm.com/api/auth/microsoft/handler/frame, and failed with Login failed: caused by PopupClosedError: Login failed, popup was closed.
error message:
use web debug tools on the poped up window, more error messages are:
Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://backstage.arm.com') does not match the recipient window's origin ('https://eu-west-1.backstage.aw.arm.com').
and my configs:
in app-config.yaml
backend:
  baseUrl: ${BACKEND_URL}
.....
  cors:
    origin:
      - ${FRONTEND_URL} #which is https://eu-west-1.backstage.aw.arm.com
      - https://backstage.arm.com

and output of "kubectl -n backstage get ingress backstage"
  rules:
  - host: eu-west-1.backstage.aws.arm.com
    http:
      paths:
      - backend:
          service:
            name: backstage
            port:
              number: 7007
        path: /
        pathType: Prefix
   - host: backstage.arm.com
    http:
      paths:
      - backend:
          service:
            name: backstage
            port:
              number: 7007
        path: /
        pathType: Prefix
  tls:
  - hosts:
    - eu-west-1.backstage.aws.arm.com
    - backstage.arm.com
    secretName: backstage-ca-tls

ssl-passthrough =false

why the issue is still there, maybe it's a bug, and I need to changes codes in
https://github.com/backstage/backstage/blob/master/plugins/auth-backend/src/lib/flow/authFlowHelpers.ts
or
https://github.com/backstage/backstage/blob/994506952c20d7708c2f8a5f6498b19132157166/packages/core-app-api/src/lib/loginPopup.ts
👍 Expected behavior
if I click https://backstage.arm.com, I can not only see the login page, but also successfully login.
👎 Actual Behavior with Screenshots
all in the Description above.
👟 Reproduction steps
all in the Description above.
📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

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

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
No, but I'm happy to collaborate on a PR with someone else

anyone can help on this?
besides: backend.cors, i also added "experimentalExtraAllowedOrigins" today,
auth:
environment: production
experimentalExtraAllowedOrigins:
- ${FRONTEND_URL}
- "https://backstage.arm.com"
but it doesn't work, still failed ti the same error.  if I tried login through https://backstage.arm.com, the pop up url still starts with app.baseurl and goes back to app.baseurl with message instead of https://backstage.arm.com

@Rugvip
do you have any idea on this, thanks
this issue has been blocking me for several weeks.

by the way, the auth provider I use is azure

Hmm, do you have app.baseUrl set in configuration to the url that the app is hosted at and applied to both the frontend and the backend?

yes, currently in my app config file:
${FRONTEND_URL} and ${BACKEND_URL}, they are set to be "https://eu-west-1.backstage.aw.arm.com/" which is app real url. and https://backstage.arm.com something I want let others to use which is easy to remember.
app:
  title: Engineering Portal
  baseUrl: ${FRONTEND_URL}

backend:
  baseUrl: ${BACKEND_URL}
  auth:
      dangerouslyDisableDefaultAuthPolicy: false
      keys:
      - secret: ${BACKEND_SECRET}
  cors:
    origin:
      - ${FRONTEND_URL}
      - "https://backstage.arm.com"
    methods: [GET, HEAD, PATCH, POST, PUT, DELETE]
    credentials: true
  csp:
    connect-src: ["'self'", "https:"]
    img-src: ["'self'", "https:", "data:"]
    style-src: ["'self'", "https:", "'unsafe-inline'", "https://fonts.googleapis.com"]
  reading:
    allow:
    - host: '*.arm.com'
  database:
    client: pg
    prefix: ${DB_PREFIX}
    connection:
      host: ${POSTGRES_HOST}
      port: ${POSTGRES_PORT}
      user: ${POSTGRES_USER}
      password: ${POSTGRES_PASSWORD}
      ssl:
        require: true
        rejectUnauthorized: false

##### authentication
auth:
  environment: production
  experimentalExtraAllowedOrigins:
    - ${FRONTEND_URL}
    - "https://backstage.arm.com"
  providers:
    microsoft:
      production:
        clientId: ${AZURE_CLIENT_ID}
        tenantId: ${AZURE_TENANT_ID}
        clientSecret: ${AZURE_CLIENT_SECRET}
        signIn:
          resolvers:
            - resolver: emailMatchingUserEntityProfileEmail

Hmm, sounds like https://backstage.arm.com/ is the real one. app.baseUrl should be set to whatever your users see in their address bar, and backend.baseUrl should be set to whatever address is called from the browser, which potentially is the same one.


JMLL-863 Create api endpoint for People Finder Webhook caller

Replaces https://github.com/uktrade/jml/pull/151

Codecov Report

Merging #179 (5dd16f8) into main (4f4fbef) will decrease coverage by 0.24%.
The diff coverage is 62.65%.

@@            Coverage Diff             @@
##             main     #179      +/-   ##
==========================================
- Coverage   75.55%   75.30%   -0.25%
==========================================
  Files         160      164       +4
  Lines        6010     6144     +134
==========================================
+ Hits         4541     4627      +86
- Misses       1469     1517      +48

Impacted Files
Coverage Δ

config/urls.py
100.00% <ø> (ø)

core/utils/staff_index.py
39.33% <10.81%> (-3.38%)
:arrow_down:

core/people_finder/utils.py
23.80% <14.28%> (ø)

core/api.py
76.47% <76.47%> (ø)

core/people_finder/interfaces.py
65.11% <85.71%> (+1.70%)
:arrow_up:

core/people_finder/client.py
41.25% <100.00%> (ø)

core/tests/test_api.py
100.00% <100.00%> (ø)

core/urls.py
100.00% <100.00%> (ø)

core/service_now/interfaces.py
34.22% <0.00%> (-1.07%)
:arrow_down:

Continue to review full report at Codecov.

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


catclock: init at 2015-10-04

Motivation for this change
Mission critical.
Things done

[x] Tested using sandboxing
(nix.useChroot on NixOS,
or option build-use-chroot in nix.conf
on non-NixOS)
Built on platform(s)

[x] NixOS
[ ] OS X
[x] Linux

[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

I don't think we should merge this package. It serves no real utility and takes maintainer time away from other packages (e.g. the time spent to review this PR and any PRs that fix issues with or upgrade this package).

It's something of a classic... Maybe I should put it under games? But it's a utility
Maintenance wise, it went through all but half-a-dozen changes in the last 30 years or so...
Regardless, it's the first application you want to test when porting the motif package. Eventually the darwin people will realize latex has lesstif dependencies needing replacing with motif so they'll need this app to make sure everything working.
Besides, it keeps my cpu nice and toasty at 1.3-2% usage so what's not to like? ;)

Thanks!


Blog app: add devise authentication

Hi There 👋,
In this branch, My partner @Newtayo and I made the following changes ⬇

Removed the current_user method from ApplicationController.

Installed devise and make sure ⬇

Can register a new user.
User logs in with a combination of email and password.
Hashed passwords should be stored in the database.
Ask for confirmation by email.
Can reset password.

Modified the devise views according to the project wireframes.

Fixed linter errors from the project.

Thanks a lot for visiting our PR. If you have any questions feel free to ask 👍

HI @Omar-Muhamad ✋, Thanks a lot for your valuable suggestions. I will implement your suggestion before the next review. 👍


project_hidden should not show up in content assist

Repro steps:

Follow the instructions to set up a sample project within IDEA
Open the project's build.gradle.kts file
Place the cursor at the left margin of the file, outside the context of any block or function
Press CMD-SPACE to get a content assist window
Notice that _project_hidden_ is available for completion

_project_hidden_ is an implementation detail of the way our integration with Kotlin Scripting works, and should probably be hidden from users (as its name suggests!)

_project_hidden_ is no more in 1.1-M1 (and even in earlier builds in fact). But there is simply project now, which could be confusing as well. We are going to hide it some day, but that is probably another issue.

Superseded by #88.


Autofills the coin list from all available options.

There’s probably room for improvement with this like separating base currencies from each other with a linebreak.
I also ran into CH API limits today while testing this so you might want to bump up the timeouts a little.

@markrickert Yeah I noticed as well, I could have it wait for the button to show "Learn" and be enabled again. That would truly mimic a user, but it does take a lot longer.
About the prefill, I don't know about this. I agree with the idea of a prefilling, but Binance for example has a lot of coins including UP DOWN pairs. Sorting through this list is still a lot of work.
It might be more interesting to make this prefill optional. I was also thinking of adding a clipboard / browser storage export for a selected coins list in hopper config. Personally I'm only interested to train the pairs I'm planning to trade with my hopper.

Getting the coin list from a hopper is super doable on the config page we could add a button to do this:
const base = $('#collect_currency').val().toUpperCase();
$('#allowed_coins').val().map(coin => `${coin}/${base}`).join(', ');

Save that to browser storage or something and use that for a prefill.
I also thought of adding checks for already trained pairs (checking results table) to avoid double training, but this would prevent you from training a single strat after adding as well.

I'm going to close this, since it's not a good user experience. My idea was that subtractive editing is easier than inputting all the data. I answered a question today in the discord. Someone was trying to add them as BTC-USD.


workflows: fix external workloads GCP VM image

Seems like ubuntu-2010 got phased out and replaced by ubuntu-2104.
Switching to LTS image ubuntu-2004-lts.

Link to test run of workflow changes: https://github.com/cilium/cilium-cli/actions/runs/1074751361


Add jira component ID's to ci-test-mapping

TRT-1238
In order to automate any jira creation (i.e. via links from component readiness), we need to have the component ID from JIRA. This adds that data to the ci-test-mapping table.

/hold cancel

/lgtm


Add support of parquet files Encryption

We need to allow developers to encrypt data in two ways:

All data written by a connector
Column level encryption using for example an annotation @Encrypt (with an option to select the right key)

Also, we have to provide an option that help developers read Encrypted data (even if they implement a key rotation policy)
Useful links:
https://www.iteblog.com/sparksummit2018/efficient-spark-analytics-on-encrypted-data-with-gidon-gershinsky-iteblog.pdf
https://conferences.oreilly.com/strata/strata-ny-2019/cdn.oreillystatic.com/en/assets/1/event/300/Parquet%20modular%20encryption_%20Confidentiality%20and%20integrity%20of%20sensitive%20column%20data%20Presentation.pdf

How is everything going? Do you have any suggestions on the design of this feature?


fix tar dest in src

when i view the comment our new tar file is inside the directory being archived; skip it in function tarFile .
I found that when the dest is a relative path with prefix "./", it must not be equal with header.Name
Because the header.Name is always be a relative path without prefix "./".
So i test it, and find a method to fix it.  Just a amend all the path to be absolute path which will pass to function tarFile.
I think that is really a good idea to make all the path to be absolute path , because any of them will be compared with the standard format path from the WalkFunc.
Iam sorry for my poor english, it make me realy dot not how to describe this problem clearly. May you could understand me

I amend the document already. thanks

If I read this correctly, this puts absolute paths into the tar archive?
If so, this makes tar archives not portable to other locations within a filesystem, and likely not something we want to do.

I do not believe that this will be a feasible approach.


Text styles panel - focus on colour picker needs more padding

Bug Description
Focus around the colors (after adding a color) is getting cut off, needs some more padding
Expected Behaviour

Steps to Reproduce

Screenshots

Additional Context

Plugin Version:
WordPress Version:
Operating System:
Browser:

Do not alter or remove anything below. The following sections will be managed by moderators only.
Acceptance Criteria

Implementation Brief

Closing as this seems to be fixed now.


new menu items (line selection)

please add several options to this menu:

select the entire line from the cursor to the end
select the entire line regardless of the cursor position

Select the entire line from the cursor to the end : Shift+End / Alt+Shift+Right .
You can read Acode Key-bindings for more.

Shift+End - select the line to the end from the current cursor position (the first point is solved thank you)
Alt+Shift+Right - select the entire text to the end from the current cursor position
but there is a second:
I need to select only the entire line regardless of the current cursor position.

I have never heard about such shortcut.
But there is a solution which most o the people use.
Home or Alt+Left to go to the line start  and then select to line end.

I don't have a home button on my phone, so I won't be able to use your method quickly. please add an option:
select only the entire line regardless of the current cursor position.
this will help in the implementation in the future for this request https://github.com/deadlyjack/Acode/issues/296

Added features triple tap to select line.


Implement TableValuedFunctionExpression.

Implements usage of TableValuedFunctionExpression which allows for SQL like
SELECT * FROM OPENJSON(@json);
SELECT * FROM [Column] WHERE EXISTS(SELECT 1 FROM OPENJSON([Table].[Column]))
...

@ajcvickers - This is targeting release/2.2

@smitpatel @ajcvickers If you want, I can also create a PR for 3.x. However, I'm currently stuck on EntityFrameworkCore 2.x due to a dependency (OData) being stuck on .NET Core 2.x.

@bdebaere We are not taking any changes to the 2.x code, other than for high-priority bug fixes. We will consider PRs made against master.

@ajcvickers I can definitely understand the sentiment. Sadly this locks me in a custom EntityFrameworkCore version until OData upgrades to .NET Core 3.0. Thanks for your time anyways.


WIP: Upload partial segments

Add support for backing up partial segments to remote storage. Disabled by default, can be enabled with --partial-backup-enabled.
Safekeeper timeline has a background task which is subscribed to commit_lsn and flush_lsn updates. After the partial segment was updated (flush_lsn was changed), the segment will be uploaded to S3 in about 15 minutes.
The filename format for partial segments is ZZZ_XXX_skYY.partial, where:

ZZZ – the segment name, like<PHONE_NUMBER>00000000000001
XXX – flush_lsn in hex format {:016X}, e.g.<PHONE_NUMBER>6BC568
YY – safekeeper_id, like 1

Each safekeeper will keep info about remote partial segments in its control file. Code updates state in the control file before doing any S3 operations. This way control file stores information about all potentially existing remote partial segments and can clean them up after uploading a newer version.
Closes #6336

This PR is not yet polished, but I want to have a pre-review for the main upload algo (the important part) before finishing the PR. In other words, the following steps:

await the review for this draft version (the important parts)
fix the feedback, polish, undraft
quick review, merge, deploy to staging

So, waiting for review @arssher :)
(not urgent)

Hmm. During yesterday call I assumed that we always remove the previous version before uploading the next one (ever have max 1 uploaded); now looking at the code I see this is not the case. In this case, names clash (different file contents under same file name) is indeed not good, i.e. gc looks unsafe wrt to it. While it is fixable it is safer/simpler to just always have unique names by including term + flush_lsn there.
Having multiple segments offloaded is a bit more complicated but it gives kinda atomicity, i.e. we are never in the state where we don't have it at all (if it ever has been offloaded), which is good.

In this case, names clash (different file contents under same file name) is indeed not good, i.e. gc looks unsafe wrt to it. While it is fixable it is safer/simpler to just always have unique names by including term + flush_lsn there.

It is simple, but the filename becomes quite long, I'm afraid to hit S3 filename limit eventually. WDYT?

Thought note that upload up to flush_lsn is anyway something not reliable: 1) it might be from wrong term history

Is this any bad? For inactive timelines partial segment in S3 will match partial segment on disk eventually, even for uncommitted WAL.

in theory there might be multiple not committed segments.

True, but the number of such timelines should be very close to zero. I'd not fix this in this PR, and if it becomes an issue this can be fixed later.
Other than that, any more ideas for the first version of "partial segments upload"?

It is simple, but the filename becomes quite long, I'm afraid to hit S3 filename limit eventually. WDYT?

Should be ok, limit is 1024 in both s3 and azure blob storage. 2^64 in decimal is 10^19, enough space. So I'd at least have term + flush_lsn there, and if we reupload on commit_lsn change include commit_lsn as well.

Is this any bad? For inactive timelines partial segment in S3 will match partial segment on disk eventually, even for uncommitted WAL.

No, it's expected indeed.

True, but the number of such timelines should be very close to zero. I'd not fix this in this PR, and if it becomes an issue this can be fixed later.

Yeah, definitely not very important. We also may simply hold off partial upload if full is not done yet.

Other than that, any more ideas for the first version of "partial segments upload"?

Approach LGTM

After looking at S3 lifecycle rules (https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html), I realized that it might be useful to distinct full WAL segments from partial segments.
I think I'm going to add a special tag to partial segments, so we could select them in a lifecycle rule.

Ok, ready for review now.
Note that control file upgrade is not forward compatible, i.e. we cannot rollback safekeepers after deploy. Also, I tried to write a test for this PR, but faced problems with S3 inspection from python tests. Decided to test this on staging instead.

LGTM. Let's put PR description to wal_backup_partial.rs head comment.

@bayandin do you know how to make test_forward_compatibility pass? The breakage in forward compatibility is expected

The general answer for forward compatibility is to merge+release a change that knows how to read the new format, and then later merge+release a change that enables writing it -- this is what we do for pageserver stuff.

A bit of context: control file is the file where safekeepers store all the data about timelines (all but WAL itself). Due to historic reasons, this is a binary file which is serialized directly from struct TimelinePersistentState. It means that any change to this structure (and dependants) will require an upgrade.
The issue here is that control files in safekeepers have always worked that way, and upgrade was always breaking forward compatibility. It seems that the last control file upgrade was 18 months ago, so we never had this issue before because test_forward_compatibility was probably created after that...
I dislike that currently control file upgrade requires a breaking change, but I see only two fixes for this:

merge+release two times for the single change, and write 2x more code for handling control file rollback
overhaul control files completely and use key-value serialization format for control files (e.g. protobuf, json...)

Both options are not simple and I don't think I want to work on them right now. Also it seems fine to allow forward incompatibility for safekeepers – in case of something goes wrong issues can always be fixed without rollback. Unfortunately I see that there's no good way to omit test_forward_compatibility in our current CI.
I'm not really sure what should be done next here..

The last time in similar situation I just manually added exclusion to test_compatibility code.

@bayandin is it ok if I add @pytest.mark.skip to test_forward_compatibility for a week?

@bayandin is it ok if I add @pytest.mark.skip to test_forward_compatibility for a week?

If we do this, we won't catch any forward compatibility failures from other PRs.
Let me come up with a better solution for this.

Added @pytest.mark.xfail to test_forward_compatibility to unblock merge. Will remove it after the next release.