[Suggestion] New rule to verify that record modifications has explicit permissions for it

We are going through "permission hell". A customer would like to run permissions which means we have to create roles for all the users and specify access to which objects/tables they should access to.
The problem we are having in our code and ISV:s code is that we and they forget to "declare" permissions for each record that is being modified in an object.
Example:
User A should not have direct access to TableA. A developer creates code in CodenitB which the user as access too. But the developer adds code that modifies data in TableA.
This means that user A runs CodeunitB he will get a run-time error. The only solution to solve it without changing code is if the user is given direct access to the TableA which it shouldn't have!
This is why we need that rule. As soon as the permission is declared in the object we can set so the user has indirect permissions.
Clarification. The rule shouldn't apply to temporary records.
I'm guessing it is hard to track if the record being passed as parameter to a function is temporary or not.

I understand the possible challenges when working with indirect permissions and having a rule in place for this is a good idea.
Permissions property
Example on Permissions Property
codeunit 50100 MyCodeunit
{
    Permissions = tabledata Customer = rimd;

    procedure MyProcedure()
    var
        Customer: Record Customer;
    begin
        Customer.Insert();
    end;
}

So in this example raise a rule if the Permissions = tabledata Customer = rimd part is missing. How detailed do we need to make this rule? For example if Permissions = tabledata Customer = ri is declared, and we execute a .Delete() statement, the rule should be raised? I then could use some help if there are cases when we also need to verify the 'r' permission?
Inherent Permissions
Example on Permissions Property
codeunit 50100 MyCodeunit
{
    [InherentPermissions(PermissionObjectType::TableData, Database::MyTable, 'i', InherentPermissionsScope::Permissions)]
    procedure MyProcedure()
    var
        MyTable: Record MyTable;
    begin
        MyTable.Insert();
    end;
}

In case of an object within the extension itself, it's also possible to apply the Inherent Permissions attribute on the method itself. So the rule should also consider if this attribute is set and possible combine this with the properties of the object itself to see if there are permissions missing?

I'm guessing it is hard to track if the record being passed as parameter to a function is temporary or not.

You're right at compile-time it's almost impossible to travel the path of the code to try to determine this. And impossible if this is (for example) a public method.
procedure MyProcedure(Customer: Record Customer)
procedure MyProcedure(TempCustomer: Record Customer temporary)

If the method doesn't have the record declared a temporary, then we must assume that non-temporary records are possible and that's why we need the permissions declared?
table 50100 MyTable
{
    TableType = Temporary;

The rule could be excluded when the TableType itself is temporary.
I'm probably missing still a few thing here, where I'm getting the idea this isn't going to be a simple and straightforward rule build. It would be helpful to gather some more insight here, so we can gather more information to have a solid rule which only raises on the right moments.


build: prevent creating runfiles tree during remote builds

Runfiles trees are not needed when building remotely as the trees
are actually created from in-memory manifests

CI looks unhappy


If I create a zip file that contain zero size files,the Windows 10 Explorer build-in zip viewer can't uncompress it.

English is not my native language; please excuse typing errors.
Thanks

Couple questions:  does anything else open it?  Maybe Windows 10 just doesn't like zero byte files.
Can you show me your code?

@adamhathcock 7zip can open it.
sample code:https://github.com/yinyue200/sharpcompressdemo
Here is the error message.The screenshot is created by the Chinese version of Windows 10, but I hope it can be useful.

a.zip

If you create a file like this with a zero byte entry in another application, can Windows 10 open that?
I'm saying it might be a failing (or security check) for Windows 10.

@adamhathcock I can create a zip file that contain zero size file by 7zip. And it can be opened by Windows 10. Here is the file.
a.zip

@adamhathcock Sharpziplib can't open the file that created by sharpcompress and contain zero file too
I hope it can help you.

I think it's because the entry is still marked as compressed even though it's zero bytes.  The 7Zip created file you gave has the entry marked as CompressionMethod = None.
I guess that's the difference.  I don't want to make SharpCompress smart enough to recognize that.  That's a user responsibility I think.

Found a bug while reviewing this though: https://github.com/adamhathcock/sharpcompress/pull/249

@adamhathcock Thanks


Performance issue

I did some performance test on nestedinputdemo:
            foreach (var workflow in workflowRules)
            {
                List<RuleResultTree> resultList = bre.ExecuteRule(workflow.WorkflowName, nestedInput);
            }

            Stopwatch sw = new Stopwatch();
            sw.Start();

            for (int i = 0; i < 10000; i++)
            {
                foreach (var workflow in workflowRules)
                {
                    List<RuleResultTree> resultList = bre.ExecuteRule(workflow.WorkflowName, nestedInput);
                }
            }

            sw.Stop();
            Console.WriteLine($"{sw.ElapsedMilliseconds}");

it shows it need 40ms to finish the 30000 times rule execution.
Is there any way to make it faster?

I'm not the developer! My user experience 😀
Faster? 😯
We had issues that it sometimes took 30-50 seconds or so. Although we couldnt find what caused it (we guess it was because all of the external things). But that was before we 'cached' the RuleEngine instance itself. After we cached it, it dropped to 160ms or so. But that is including some (external) startup code.
Remember that this is (I guess) all done with reflection and more dynamic code. So it will always be slower than hardcoded checks.
So 40 ms for 30.000 runs seems very nice (to me).

@niuzheng168 could you share more details on which version of RulesEngine are you using?

@niuzheng168 could you share more details on which version of RulesEngine are you using?

I am using 2.1.4.
I think the main time cost happened on
var resultTree = compiledRule.Rule.DynamicInvoke(new List<object>(inputs) { new RuleInput() }.ToArray()) as RuleResultTree;
as DynamicInvoke could do many reflection work.
In my scenario, my input type is fixed, do you  think supporing Generic Type like CompiledRule<T1, T2> can fix this issue?

@niuzheng168 can you try v3.0.0-preview.2 ? It has upto 35% performance improvements


automate pdf.js updates

this solves https://github.com/GrapheneOS/PdfViewer/issues/111

This will end up using the beta releases since they aren't distinguishing between them.
https://mozilla.github.io/pdf.js/getting_started/#download


feat: add Near.signAndSendTransactions

Added Near.signAndSendTransactions for support all types actions. The method is fully compatible with the wallet-selector format.  For example:
Near.signAndSendTransactions([{
    receiverId: "azbang.near",
    actions: [{ type: "AddKey", params: {  ... } }]
}])

Also added UI for confirmation modal.  You can test it on my gateway:
https://call-any-actions-near-social.surge.sh/#/azbang.near/widget/ExportAccount

@AZbang This is great! Would you be able to push this PR through the finish line?


What is highlight.min.js and why is it minified?

I see this file minified in every component. Minification is typically only for dist, so I'm curious as to what that file contains and why it's min'd.

Every component directory is a valid Electron app that contains documentation about the API of the component. In this context you'll find code examples and they are highlighted with highlight.js.
It's unnecessary for the framework


MAINT: Update action [skip azp]

The redirector has (finally!) been migrated to somewhere more official, should just work but let's see!

Appears to work!


Unable to tap action buttons on UIDocumentPickerViewController

OK found the problem :

Labels are white on white :

I will fix this issue asap
Originally posted by @isontheline in https://github.com/isontheline/pro.webssh.net/issues/641#issuecomment-1145185832

Available inside TestFlight :


repair link to keen-js

What does this PR do?
This PR repairs the Keen-JS link on the Keen Gem Example App page
Where should the reviewer start?
Check that the link now goes to "https://github.com/keen/keen-js" instead of "https://keen.io/docs/clients/javascript/usage-guide/" (because of Keen doc changes)
What should be manually tested?
Check that the link now goes to "https://github.com/keen/keen-js" instead of "https://keen.io/docs/clients/javascript/usage-guide/" (because of Keen doc changes)
Any background context?
Just repairing links!
Screenshots

Random Gif

:+1: :shipit:


What is the exact grammer or parser of selector expression?

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I intentionally remove or skip any mandatory* field

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I'm running yt-dlp version 2023.07.06 (update instructions) or later (specify commit)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
What is the exact grammer or parser of selector expression and where can I find it?
It was mentioned at
[FORMAT SELECTION](https://github.com/yt-dlp/yt-dlp#format-selection)

Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
No response

You pretty much answered your own question; this is the documentation:
https://github.com/yt-dlp/yt-dlp#format-selection
But also, here are some examples:
https://github.com/yt-dlp/yt-dlp#format-selection-examples

You pretty much answered your own question; this is the documentation: https://github.com/yt-dlp/yt-dlp#format-selection
But also, here are some examples: https://github.com/yt-dlp/yt-dlp#format-selection-examples

What I mean is that what is the precedence and combination order (associative property) of operators such like square brackets '[]', round brackets '()' and so on.
How do them match my requirement such as (bv*+ba)[vcodec!=h265][acodec!=ac3][ext=mp4], which in my understanding of the grammar, I have specified the vcodec without h265, but it still downloads the video coded with h265 sometimes.
Is it exactly the same as regular expression?

Review this section of the README:
https://github.com/yt-dlp/yt-dlp#filtering-formats

Is it exactly the same as regular expression?

No, only if you use ~=:

Also filtering work for comparisons = (equals), ^= (starts with), $= (ends with), *= (contains), ~= (matches regex) and following string meta fields:

I have specified the vcodec without h265, but it still downloads the video coded with h265 sometimes.

With format filtering, comparison with = or != needs to be an EXACT match.

Review this section of the README: https://github.com/yt-dlp/yt-dlp#filtering-formats

Is it exactly the same as regular expression?

No, only if you use ~=:

Also filtering work for comparisons = (equals), ^= (starts with), $= (ends with), *= (contains), ~= (matches regex) and following string meta fields:

I have specified the vcodec without h265, but it still downloads the video coded with h265 sometimes.

With format filtering, comparison with = or != needs to be an EXACT match.

So for me, it is better to write the expression like (bv*+ba)[vcodec!*=h265][vcodec!*=hevc][acodec!=ac3][ext=mp4]?

Probably yeah


[$500] [Distance] - Automatic Saving of Start or End Point and Redirection to Distance Page Renders Save Button Useless

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Click the plus sign and select "Request Money."
Go to the Distance page and input a start or end point. Observe that the app saves the location automatically without requiring the user to click Save. Furthermore, selecting a start point redirects the user to the Distance page instead of staying on the current page until saved.

Expected Result:
The Save button should either work correctly or be removed. When a start or end point is selected, the location should be chosen but not saved until the user clicks Save. The app should remain on the current page until the user decides to save and then redirect to the Distance page.
Actual Result:
Selecting a start or end point automatically saves the location and redirects to the Distance page, making the Save button unnecessary.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android / native
[ ] Android / Chrome
[ ] iOS / native
[ ] iOS / Safari
[ ] MacOS / Chrome / Safari
[ ] MacOS / Desktop

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
screen-capture - 2023-09-05T045157.755.webm
https://github.com/Expensify/App/assets/93399543/986956ef-dbf7-4560-86a3-a375ab16e34c
Expensify/Expensify Issue URL:
Issue reported by: @tewodrosGirmaA
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1693914355944309
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0110ac5e7e0555b43d
Upwork Job ID:<PHONE_NUMBER>162176000
Last Price Increase: 2023-09-10
Automatic offers:

DylanDylann | Contributor | 26660141
tewodrosGirmaA | Reporter | 26660142

Proposal
Please re-state the problem that we are trying to solve in this issue.
[Distance]Automatic Saving of Start or End Point and Redirection to Distance Page Renders Save Button Useless
What is the root cause of that problem?
When selecting the address, the App will redirect to Distance request Page by this logic
https://github.com/Expensify/App/blob/57b76067cd3d7b59e84c4a387d11ad33e6a97d05/src/pages/iou/WaypointEditor.js#L157
What changes do you think we should make in order to solve the problem?
We should hide the save button in the WaypointEditor Page
To do that
https://github.com/Expensify/App/blob/57b76067cd3d7b59e84c4a387d11ad33e6a97d05/src/pages/iou/WaypointEditor.js#L193
Here, we add
isSubmitButtonVisible={false}

and remove redundant props like submitButtonText, onSubmit...
What alternative solutions did you explore? (Optional)
when selecting option, we don't navigate back by removing this line
https://github.com/Expensify/App/blob/57b76067cd3d7b59e84c4a387d11ad33e6a97d05/src/pages/iou/WaypointEditor.js#L157

Wanted to contribute on this one... but I guess it's taken :(

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01436626654ff57e2c

Proposal
Please re-state the problem that we are trying to solve in this issue.
[Distance] - Automatic Saving of Start or End Point and Redirection to Distance Page Renders Save Button Useless
What is the root cause of that problem?
/App/src/pages/iou/WaypointEditor.js

What changes do you think we should make in order to solve the problem?
To address the problem, we should consider removing this line. Instead, we should implement the redirection behavior exclusively when the save button is clicked. This approach maintains consistency, especially since the save button is currently designed to function offline.
What alternative solutions did you explore? (Optional)
N/A
Result

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~01b5c31c1a719ec270

I think it will be fixed #27021

Not the same bug ,it is different

@abekkala I'm also a C+ on #27021. Chosen proposal does not contain removing the save button, as it should only address saving waypoints in offline mode. That's why I think we should fix this issue individually, but as this would contain only removing the submit button or removing redirect function, we can consider reducing the bounty due to simplicity of this issue

Thank you all for your proposals! 🙇🏼
Both proposals here correctly pinpointed the root cause and proposed the same solutions. As @DylanDylann proposal was the quickest I think you should be assigned to this issue.
Moreover as in issue #27021 we will probably remove the possibility of typing random waypoint in offline mode, the save button will become obsolete in every scenario as choosing waypoint from the list will trigger the redirect, so we should go with your main proposed solution - removing the submit button
Selected Proposal: Proposal
Contributor: @DylanDylann
🎀 👀 🎀 C+ reviewed

@robertKozik The PR is ready for review

Hello!
I'm following up on issue #27021. It seems that saving from the autocomplete dropdown should be an option for offline flows. Since I don't have access to the Slack conversation mentioned in this comment, could we please double-check whether this behavior is indeed a bug or if it's intended?
CC. @tgolen @abekkala

@thienlnam I see that you implement offline flow in distance request. So could you help to check this comment ?

@robertKozik I think everything is fine here. This issue is only about removing the save button because it functionally has no purpose since everything is automatically saved when you select a waypoint.
https://github.com/Expensify/App/issues/27021 Is about being able to select an invalid waypoint when you are offline.
Maybe I'm not quite understanding your question, but I don't see how these are directly related.

could we please double-check whether this behavior is indeed a bug or if it's intended?

Could you please clarify what "this behavior" is that you are asking about? I'm not sure what it's referring to.

Yeah, it's possible to enter in a waypoint offline - so I don't think this is a bug and we can close.
We could remove the save button while you're online? But I don't really see the need to update that flow

@tgolen @robertKozik Could you take a look at this comment ?

It's just so weird to leave a button there when it has zero functionality. I'd remove it.

@tgolen when offline, there are no suggestion address for user. So user only can enter address manually and click save button

It's just so weird to leave a button there when it has zero functionality. I'd remove it.

It is not required for the online flow, but is required for the offline flow. Are you suggesting removing it for just the online flow?

OK, I understand now. If it's needed for one of the flows, let's leave it
there for both flows and we can just close this.
On Mon, Sep 25, 2023 at 10:06 AM Jack Nam @.***> wrote:

It's just so weird to leave a button there when it has zero functionality.
I'd remove it.
It is not required for the online flow, but is required for the offline
flow. Are you suggesting removing it for just the online flow?
—
Reply to this email directly, view it on GitHub
https://github.com/Expensify/App/issues/27108#issuecomment-1732794032,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAJMAB7NVFZ4LU4XCNO6HW3X4DRIZANCNFSM6AAAAAA4SGZOIQ
.
You are receiving this because you were mentioned.Message ID:
@.***>

hello @abekkala , i get an offer but payment is not settled

@abekkala  Are we eligible for compensation? Contributors are already assigned and started on the PR. It's just due to the expectation changes and the solution becomes outdated.

based on this https://github.com/Expensify/App/issues/18664#issuecomment-1565898728
Sending payment offers to

@tewodrosGirmaA [$50]

@DylanDylann  [$500]

@robertKozik [$500]


Support entry format for date component

IMPORTANT: All PRs must be linked to an issue (except for extremely trivial and straightforward changes).
Fixes #1850
Description

supported entry format in questionnaire for date component .
If entry format not present in questionnaire then device locale date format is used

Alternative(s) considered
Have you considered any alternatives? And if so, why have you chosen the approach in this PR?
Type
Choose one: Feature
Screenshots (if applicable)
Checklist

[x] I have read and acknowledged the Code of conduct.
[x] I have read the Contributing page.
[x] I have signed the Google Individual CLA, or I am covered by my company's Corporate CLA.
[x] I have discussed my proposed solution with code owners in the linked issue(s) and we have agreed upon the general approach.
[x] I have run ./gradlew spotlessApply and ./gradlew spotlessCheck to check my code follows the style guide of this project.
[x] I have run ./gradlew check and ./gradlew connectedCheck to test my changes locally.
[x] I have built and run the demo app(s) to verify my change fixes the issue and/or does not break the demo app(s).

I did some tidying up:

reorganized MoreQuestionnaireItemComponents.kt file and put things in groups
added unit tests
merged to HEAD


chore: update the '@metamask/sdk' to version '0.20.5'

Description

Update the '@metamask/sdk' to version '0.20.5'
PLEASE NOTE- Checklist must be complete prior to review.
Checklist

[ ] Increment the version field in package.json of the package you have made changes in following semantic versioning and using alpha release tagging
[x] Check the box that allows repo maintainers to update this PR
[x] Test locally to make sure this feature/fix works
[x] Run yarn check-all to confirm there are not any associated errors
[x] Confirm this PR passes Circle CI checks
[x] Add or update relevant information in the documentation

Docs Checklist

[x] Include a screenshot of any changes (see docs README on running locally)
[x] Add/update the appropriate package README (if applicable)
[x] Add/update the related module in the docs demo (if applicable)
[x] Add/update the related package in the docs/package.json file (if applicable)

If this PR includes changes to add an injected wallet or SDK wallet module:
Please complete the following using the internal demo package.
To run this demo use the command yarn && yarn dev to get the project running at http://localhost:8080/
Tests with demo app (injected)

[ ] send transaction
[ ] switch chains
[ ] sign message
[ ] sign typed message
[ ] disconnect

Tests with demo app (SDK)

[ ] send transaction
[ ] switch chains
[ ] sign message
[ ] sign typed message
[ ] disconnect

Closing as this change has been implemented and available with the latest alpha version of @web3-onboard/metamask


Query regarding indexing of smem_delta_a

From what I understand, smem_delta_a is used to initialize the value of delta_a in shared memory in these lines:
https://github.com/state-spaces/mamba/blob/bc84fb1172e6dea04a7dc402118ed19985349e95/csrc/selective_scan/selective_scan_bwd_kernel.cuh#L266-L268
Regarding these lines, I have the following queries:

What is chunk?
Why is (chunk + 1 ) % 2  used for the last thread but not the last chunk (params.n_chunks - 1)? In particular, why is there a modulo 2?
In L268, why is 2 * MAX_DSTATE done, while indexing, when current thread is not the last thread?
1m

There's double buffering: we use 2 * MAX_DSTATE to store for even and odd chunk.
For the last chunk there's nothing to load, it's just 1.f.

You can print out all the values in smem_delta_a to debug / understand

Thanks for the help @tridao
Can you please also take a look at this question?
https://github.com/state-spaces/mamba/issues/598#issuecomment-2426704304


remove annotation

Not for merge, tests fail, needs to be fixed

First of all locally tests fail, but in GitHub all checks pass which is because I believe we don’t run tests on checks
And also could someone find errors in the Pr:
removing annotation from class doesn’t work for some reason. Another issue that I have is indentations in tests, you can take a look at removeAnnotationFromMethod test where I have to align a String to the left, so that test can pass.
Also I have issue with removing extra empty lines or spaces after removing annotations

I'm going to close this since there hasn't been any activity in a while and we've made major, incompatible changes to the core APIs. Would be happy to accept a 7.x compatible version.

I'm going to close this since there hasn't been any activity in a while and we've made major, incompatible changes to the core APIs. Would be happy to accept a 7.x compatible version.


List of cheatsheet for all monitor into Ubuntu 20 from scratch

⚠ Please verify that this bug has NOT been raised before.

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

🛡 Security Policy

[X] I agree to have read this project Security Policy

📝 Describe your problem
I want to documentation cheatsheet style for all monitor for Ubuntu 20 from scratch
🐻 Uptime-Kuma Version
Latest
💻 Operating System and Arch
Ubuntu 20
🌐 Browser
Chrome
🐋 Docker Version
No response
🟩 NodeJS Version
No response

Uptime Kuma is using SQLite, if you need some SQL, you can query the monitor list from the database (./data/kuma.db by default) and build it by any programming languages.

If you are asking how to monitor a server, just use one of the preexisting monitors. The pint monitor is the simplest, just put in the IP of the   server to monitor and it will tell you if it is up.
If you want to integrate Uptime Kuma with an external service, you can use the /metrics page with a client able to parse Prometheus metrics.

that way, im lost, sorry for noob questions

ok is working now, i change felipe with ip of host

If you want to integrate Uptime Kuma with an external service, you can use the /metrics page with a client able to parse Prometheus metrics.
Can u guide me for test prometheus

metrics page kuma:
https://gist.github.com/7fa71812948a2265fae7d22bd4d58f5b
metrics page prometheus
https://gist.github.com/231a812535776e290c33fc89b4cda9da
pls guide me for test all of them
for example which one client able to parse Prometheus metrics is better?

anyone?

You are missunderstanding the use of prometheus. You should set your uptime instance as a target in your prometheus config. Prometheus is the software that collects the data.
Here are some articles
https://prometheus.io/docs/introduction/overview/
https://www.howtogeek.com/devops/what-is-prometheus-and-why-is-it-so-popular/
https://www.digitalocean.com/community/tutorials/how-to-install-prometheus-on-ubuntu-16-04


direct Message

hi
How to direct everyone?
by numerical ID
I want to send direct messages to other people with some fake accounts and advertise my page.
$api->user->sendMessage();
You can only send direct messages to your followers with this function

Currently, this function is only available in the API.
I tested it and it worked with the same function when sending a message to a page I don't follow.

Yes, I also tested it and it worked
But it works for sending a message (to the desired follower).
It does not send anything to the second message.
For example:
First message: Hello
Second message: I can design a website for you.

I'm glad it was useful to you. I will soon add functions to send messages to people you do not follow in webapi. I'm working on the TikTok API these days, so I haven't looked at it much.


Mode: Ask if no rule applies

Hi, I believe this is easy to adapt and it really would fit the "learning" behaviour of it.
-> URL that doesn't fit any rule? -> Ask and add rule
-> URL that should always be asked -> Ask and do not add a rule

I assume you have tried this and it doesn't work for you?

I like the idea of adding rules that must always trigger the picker!

I also would like to have an option that shows the "Picker" by default (when no rule apply) , and the selecgted browser when one rule matches.
It's not very clear to me what "Conflict" means on "Ask on Conflict" , but I would see very usefull an additional option there like: "Ask when no rule"

I appreciate your feedback, it's very helpful. I agree that "ask on conflict" is not a clear or common option - it only pops up a dialog when there are multiple browsers/profiles that can open a certain URL. I think you're right that I should add another option like you suggested - "Ask when no rule matched". That would make it easier for users to choose the browser/profile they want when there is no rule defined. How does that sound?

I would also like an option like "Ask when no rule matched" in any case.
I used to use BrowserSelect which worked like that: Pop up the option to select a browser for all URLs, but if a rule is found, it will autopick the browser. (I switched away from that tool because it tended to add duplicate copies of each browser in the list when refreshing browsers, which got annoying after it happened a few times.)
Although now I decided to try using the "Also open on" feature in combination with "Ask on conflict" in BrowserTamer. Which does kinda solve my use case, as long as I remember to hold down the keyboard shortcut when clicking on links.

PS: I almost never remembered to hold down the shortcut keys when clicking on links. Additionally, holding down the keys would mess with some apps (specifically Outlook tends to act weirdly when I hold down certain keys and try to click.) So that did not really work out at all...
In the end I tried out other alternatives, but many did not support browser profiles well. Eventually I got to Switchbar which supports both "Ask if no rule applies" and browsers with multiple profiles. So other people with the same issue could consider trying that option. Do note that Switchbar has a free and a paid version, and the free version only supports 2 "favorite" browsers/profiles (but for me that was enough, for now at least.)
In any case, it would be great if BT could also get the option to show the picker only when no rules are matching.

This will be coming in v4, something like this:

done

Hi, thanks for your hard work!
Unfortunately I was unable to get the "On no rule" option to work properly. In fact, it is possible that even the "On conflict" option does not work anymore in v4.
I have tried:

Using only the "On no rule" option

This just opens in the default browser (unless there's a rule in effect)

Using just the "On conflict" option

Same as above, additionally even if there is a conflict, it just opens up in the first(?) browser that has the rule

Using both the "On no rule" and "On conflict" options

Same as above

Deleting (renaming) config.ini to get a completely "fresh" BT configuration

Did not seem to help

Uninstalling v4 and reinstalling v4 again

Did not seem to help

Also rolled back to v3.7.3 to doublecheck

"On conflict" seems to wwork properly there

This is on a Windows 10 22H2 PC.
Do not worry about prioritizing this bug in any case, I can understand that it's hard to take time for an opensource hobby project. And I hope it's not just me doing something wrong in my settings/usage...

Yes you're right, that slipped in. Hope to fix this today!

Thanks for the quick fix!
I tested a little bit now, and both "On no rule" and "On conflict" seems to work properly now.
And the integration with Firefox containers also seem to work great when using the rules!
👍


Is jblas support sparse vector?

hi!
i need to use sparse vector when i make my project,i want to know Is jblas support sparse vector?

Hey Robert114, no unfortunately not and it is also not planned at the time.


Observable.firstStartedOf fails due to off-by-one error

Reported by @clayrat: https://gitter.im/monix/monix?at=58cff9b9590d72c864e9248b
Unfortunately Observable.firstStartedOf is an older implementation that lacked tests for some reason that I don't remember, probably being sloppy.

@clayrat version 2.2.4 is out


Msatg inv2

Adds teacher guide content for Investigation 2

@eireland this work was so clean it was awe inspiring, thanks! I added Nathan's solutions for Inv2, this can be merged.


Bump Stackexchange.Redis to 2.2.88

Summary of the changes (Less than 80 chars)
Bump Stackexchange.Redis from 2.1.30 to 2.2.88
Closes #bugnumber (in this specific format)
I wasn't able to connect to a Redis Sentinel with the older version. Overriding with the newer version fixed it, so maybe this can be merged for the next version of HotChocolate 12.
More error details can be found here.

Can you search the repro if this is the only package reference to this package?

/Azf run

/AzurePipelines run

Looks good to me... will add it to the next rc for 12.6


[10.x] Update RedisTagSet now() to Carbon::now()

When I update my project to Laravel/Lumen-framework 10.X, I got this exception.  It seems there's not a function named now() registered in helpers.php.  I searched for this function declaration and found nothing.  I'd like to know if I could avoid using now() here (this patch worked for my project)
Key Stack Trace:
  #message: "Call to undefined function Illuminate\Cache\now()"
  #code: 0
  #file: "/data/source/path-to-my-project/vendor/illuminate/cache/RedisTagSet.php"
  #line: 20
  trace: {
    /data/source/path-to-my-project/vendor/illuminate/cache/RedisTagSet.php:20 {
      Illuminate\Cache\RedisTagSet->addEntry(string $key, int $ttl = 0, $updateWhen = null) …
      › {
      ›     $ttl = $ttl > 0 ? now()->addSeconds($ttl)->getTimestamp() : -1;
      ›
    }
    /data/source/path-to-my-project/vendor/illuminate/cache/RedisTaggedCache.php:39 {
      Illuminate\Cache\RedisTaggedCache->put($key, $value, $ttl = null) …
      ›
      › $this->tags->addEntry(
      ›     $this->itemKey($key),
      arguments: {
        $key: "a cache key here"
        $ttl: 1440
      }
    }

Don't forget to send an invoice to Tyler for doing work on this framework. As it is sponsored and makes money. You deserve to be paid for your work.


How to allow .html in URL in angular 18 like 'product/:slug.html'

Which @angular/* package(s) are the source of the bug?
router
Is this a regression?
Yes
Description
How do we allow .html in URL in angular 18 like 'product/:slug.html'  it is not working on refresh but it is working with the router. it shows like Cannot GET /product/abc.html
Please provide a link to a minimal reproduction of the bug
No response
Please provide the exception or error you saw
No response
Please provide the environment you discovered this bug in (run ng version)
Angular CLI: 18.0.4
Node: 20.14.0
Package Manager: npm 10.7.0
OS: darwin arm64

Angular: 18.0.3
... animations, cdk, common, compiler, compiler-cli, core, forms
... material, platform-browser, platform-browser-dynamic
... platform-server, router, service-worker

Anything else?
No response

@JeanMeche Although I appreciate your response, the information in https://github.com/angular/angular-cli/issues/27905 is unclear. way we are able to consent.HTML using a dynamic path. Could you give me a thorough explanation of it? We need to create a new URL since we had ones with.html in an earlier edition, so old SEO won't work.

@JeanMeche Is there any way we can allow .html in the URL so we can retain our old crowled pages.

This issue is separate from the server configuration. With the Vite-based builder, ng serve will return 404 errors for file-like requests if the files don't actually exist.
As explained in https://github.com/angular/angular-cli/issues/27905, it's generally recommended to avoid including file extensions in URLs. This simplifies server-level routing.
Possible solutions:

Make no changes, but be aware that refreshing the page will not work when using ng serve.
Remove .html extensions from URLs. To avoid affecting SEO, you can create a server rule that redirects .html URLs to the corresponding pages without extensions using a 301 redirect. This is the recommended long-term approach.


rbd: fix vol.VolID in cloneFromSnapshot()

Volume generated from snap using genrateVolFromSnap
already copies volume ID correctly, therefore removing
vol.VolID = rbdVol.VolID which wrongly copies parent
Volume ID instead leading to error from copyEncryption()
on parent and clone volume ID being equal.
Signed-off-by: Rakshith R<EMAIL_ADDRESS>

Logs

I0709 05:48:19.899510       1 identityserver-default.go:38] ID: 20 Using default GetPluginInfo
I0709 05:48:19.899585       1 utils.go:182] ID: 20 GRPC response: {"name":"rook-ceph.rbd.csi.ceph.com","vendor_version":"canary"}
I0709 05:48:19.903851       1 utils.go:171] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC call: /csi.v1.Controller/CreateSnapshot
I0709 05:48:19.904174       1 utils.go:175] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC request: {"name":"snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2","parameters":{"clusterID":"rook-ceph"},"secrets":"***stripped***","source_volume_id":"0001-0009-rook-ceph-0000000000000001-9c4c4997-e078-11eb-9aa0-0242ac110005"}
I0709 05:48:19.918382       1 omap.go:84] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.volume.9c4c4997-e078-11eb-9aa0-0242ac110005"): map[csi.imageid:116b87d2743c csi.imagename:csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 csi.volname:pvc-4dc3aa8b-1fea-4e78-9f85-9beecf39639a csi.volume.encryptKMS:user-ns-secrets-metadata-test csi.volume.owner:rook-ceph]
E0709 05:48:19.937789       1 omap.go:77] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 omap not found (pool="replicapool", namespace="", name="csi.snaps.default"): rados: ret=-2, No such file or directory
I0709 05:48:19.952186       1 omap.go:148] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 set omap keys (pool="replicapool", namespace="", name="csi.snaps.default"): map[csi.snap.snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2:43e1f4b4-e079-11eb-bda3-0242ac110005])
I0709 05:48:19.954816       1 omap.go:148] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 set omap keys (pool="replicapool", namespace="", name="csi.snap.43e1f4b4-e079-11eb-bda3-0242ac110005"): map[csi.imagename:csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 csi.snapname:snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 csi.source:csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 csi.volume.encryptKMS:user-ns-secrets-metadata-test csi.volume.owner:rook-ceph])
I0709 05:48:19.954834       1 rbd_journal.go:408] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 generated Volume ID (0001-0009-rook-ceph-0000000000000001-43e1f4b4-e079-11eb-bda3-0242ac110005) and image name (csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005) for request name (snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2)
I0709 05:48:19.954868       1 rbd_util.go:1142] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 rbd: snap create replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005@csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 using mon <IP_ADDRESS>:6789
I0709 05:48:20.162401       1 rbd_util.go:1199] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 rbd: clone replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005@csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 replicapool/csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 (features: [layering deep-flatten]) using mon <IP_ADDRESS>:6789
I0709 05:48:20.201395       1 rbd_util.go:1154] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 rbd: snap rm replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005@csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 using mon <IP_ADDRESS>:6789
I0709 05:48:20.423415       1 encryption.go:75] image replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 encrypted state metadata reports "encryptionPrepared"
I0709 05:48:20.498974       1 omap.go:148] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 set omap keys (pool="replicapool", namespace="", name="csi.snap.43e1f4b4-e079-11eb-bda3-0242ac110005"): map[csi.imageid:11c953ba8286])
I0709 05:48:20.529096       1 rbd_util.go:677] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 clone depth is (1), configured softlimit (4) and hardlimit (8) for replicapool/csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005
I0709 05:48:20.529362       1 utils.go:182] ID: 21 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC response: {"snapshot":{"creation_time":{"nanos":176795825,"seconds":1625809700},"size_bytes":1073741824,"snapshot_id":"0001-0009-rook-ceph-0000000000000001-43e1f4b4-e079-11eb-bda3-0242ac110005","source_volume_id":"0001-0009-rook-ceph-0000000000000001-9c4c4997-e078-11eb-9aa0-0242ac110005"}}
I0709 05:48:20.568957       1 utils.go:171] ID: 22 GRPC call: /csi.v1.Identity/GetPluginInfo
I0709 05:48:20.568997       1 utils.go:175] ID: 22 GRPC request: {}
I0709 05:48:20.569020       1 identityserver-default.go:38] ID: 22 Using default GetPluginInfo
I0709 05:48:20.569040       1 utils.go:182] ID: 22 GRPC response: {"name":"rook-ceph.rbd.csi.ceph.com","vendor_version":"canary"}
I0709 05:48:20.569539       1 utils.go:171] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC call: /csi.v1.Controller/CreateSnapshot
I0709 05:48:20.569608       1 utils.go:175] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC request: {"name":"snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2","parameters":{"clusterID":"rook-ceph"},"secrets":"***stripped***","source_volume_id":"0001-0009-rook-ceph-0000000000000001-9c4c4997-e078-11eb-9aa0-0242ac110005"}
I0709 05:48:20.570437       1 omap.go:84] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.volume.9c4c4997-e078-11eb-9aa0-0242ac110005"): map[csi.imageid:116b87d2743c csi.imagename:csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 csi.volname:pvc-4dc3aa8b-1fea-4e78-9f85-9beecf39639a csi.volume.encryptKMS:user-ns-secrets-metadata-test csi.volume.owner:rook-ceph]
I0709 05:48:20.596760       1 omap.go:84] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.snaps.default"): map[csi.snap.snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2:43e1f4b4-e079-11eb-bda3-0242ac110005]
I0709 05:48:20.597293       1 omap.go:84] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.snap.43e1f4b4-e079-11eb-bda3-0242ac110005"): map[csi.imageid:11c953ba8286 csi.imagename:csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 csi.snapname:snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 csi.source:csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 csi.volume.encryptKMS:user-ns-secrets-metadata-test csi.volume.owner:rook-ceph]
I0709 05:48:20.639290       1 rbd_util.go:1142] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 rbd: snap create replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005@csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 using mon <IP_ADDRESS>:6789
E0709 05:48:21.169785       1 utils.go:180] ID: 23 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC error: rpc error: code = Internal desc = snapshot not found: snap replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005@csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 not found
I0709 05:48:21.179357       1 utils.go:171] ID: 24 GRPC call: /csi.v1.Identity/GetPluginInfo
I0709 05:48:21.179534       1 utils.go:175] ID: 24 GRPC request: {}
I0709 05:48:21.179545       1 identityserver-default.go:38] ID: 24 Using default GetPluginInfo
I0709 05:48:21.179605       1 utils.go:182] ID: 24 GRPC response: {"name":"rook-ceph.rbd.csi.ceph.com","vendor_version":"canary"}
I0709 05:48:21.182207       1 utils.go:171] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC call: /csi.v1.Controller/CreateSnapshot
I0709 05:48:21.182402       1 utils.go:175] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC request: {"name":"snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2","parameters":{"clusterID":"rook-ceph"},"secrets":"***stripped***","source_volume_id":"0001-0009-rook-ceph-0000000000000001-9c4c4997-e078-11eb-9aa0-0242ac110005"}
I0709 05:48:21.189749       1 omap.go:84] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.volume.9c4c4997-e078-11eb-9aa0-0242ac110005"): map[csi.imageid:116b87d2743c csi.imagename:csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 csi.volname:pvc-4dc3aa8b-1fea-4e78-9f85-9beecf39639a csi.volume.encryptKMS:user-ns-secrets-metadata-test csi.volume.owner:rook-ceph]
I0709 05:48:21.227420       1 omap.go:84] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.snaps.default"): map[csi.snap.snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2:43e1f4b4-e079-11eb-bda3-0242ac110005]
I0709 05:48:21.227920       1 omap.go:84] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 got omap values: (pool="replicapool", namespace="", name="csi.snap.43e1f4b4-e079-11eb-bda3-0242ac110005"): map[csi.imageid:11c953ba8286 csi.imagename:csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005 csi.snapname:snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 csi.source:csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005 csi.volume.encryptKMS:user-ns-secrets-metadata-test csi.volume.owner:rook-ceph]
I0709 05:48:21.256230       1 rbd_journal.go:233] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 found existing image (0001-0009-rook-ceph-0000000000000001-43e1f4b4-e079-11eb-bda3-0242ac110005) with name (csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005) for request (snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2)
E0709 05:48:21.256484       1 utils.go:180] ID: 25 Req-ID: snapshot-bba33d6c-d407-4bfa-a6c9-e6238e6750c2 GRPC error: rpc error: code = Internal desc = BUG: "replicapool/csi-vol-9c4c4997-e078-11eb-9aa0-0242ac110005" and "replicapool/csi-snap-43e1f4b4-e079-11eb-bda3-0242ac110005" have the same VolID (0001-0009-rook-ceph-0000000000000001-9c4c4997-e078-11eb-9aa0-0242ac110005) set!? Call stack: goroutine 93 [running]:
github.com/ceph/ceph-csi/internal/util.CallStack(...)
	/go/src/github.com/ceph/ceph-csi/internal/util/util.go:349
github.com/ceph/ceph-csi/internal/rbd.(*rbdImage).copyEncryptionConfig(0xc000620540, 0xc0006208c0, 0x0, 0x0)
	/go/src/github.com/ceph/ceph-csi/internal/rbd/encryption.go:121 +0x551
github.com/ceph/ceph-csi/internal/rbd.cloneFromSnapshot(0x1fb9658, 0xc0006cf0b0, 0xc000620540, 0xc000666240, 0xc0004b0360, 0x0, 0x0, 0x0)
	/go/src/github.com/ceph/ceph-csi/internal/rbd/controllerserver.go:1001 +0x219
github.com/ceph/ceph-csi/internal/rbd.(*ControllerServer).CreateSnapshot(0xc00031e7a0, 0x1fb9658, 0xc0006cf0b0, 0xc000676af0, 0x0, 0x0, 0x0)
	/go/src/github.com/ceph/ceph-csi/internal/rbd/controllerserver.go:935 +0xc8c
github.com/container-storage-interface/spec/lib/go/csi._Controller_CreateSnapshot_Handler.func1(0x1fb9658, 0xc0006cf0b0, 0x1bb6cc0, 0xc000676af0, 0x0, 0x0, 0x1, 0xc0003a9040)
	/go/src/github.com/ceph/ceph-csi/vendor/github.com/container-storage-interface/spec/lib/go/csi/csi.pb.go:5820 +0x89
github.com/ceph/ceph-csi/internal/csi-common.panicHandler(0x1fb9658, 0xc0006cf0b0, 0x1bb6cc0, 0xc000676af0, 0xc0004b02a0, 0xc00000e7c8, 0x0, 0x0, 0x0, 0x0)
	/go/src/github.com/ceph/ceph-csi/internal/csi-common/utils.go:199 +0x96
github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1(0x1fb9658, 0xc0006cf0b0, 0x1bb6cc0, 0xc000676af0, 0xc0000e3980, 0x1, 0x1, 0x30)
	/go/src/github.com/ceph/ceph-csi/vendor/github.com/grpc-ecosystem/go-grpc-middleware/chain.go:25 +0x63
github.com/ceph/ceph-csi/internal/csi-common.logGRPC(0x1fb9658, 0xc0006cf0b0, 0x1bb6cc0, 0xc000676af0, 0xc0004b02a0, 0xc0004b0300, 0x1b7e8c0, 0xc0006cf0b0, 0x19e1f80, 0xc0003a8e40)
	/go/src/github.com/ceph/ceph-csi/internal/csi-common/utils.go:178 +0x206
github.com/grpc-ecosystem/go-grpc-middleware.ChainUnaryServer.func1.1.1(0x1fb9658, 0xc0006cf0b0, 0x1bb6cc0, 0xc000676af0, 0x19e8700, 0xc0003a8e50, 0x1fb9658, 0xc0006cf0b0)
	/go/src/github.com/ceph/ceph-csi/vendor/github.com/grpc-ecosystem/go-grpc-middleware/cha

Code change to simulate readyToUse being set to false (will happen when number of snapshots hits flatten limit)  https://github.com/Rakshith-R/ceph-csi/commit/2097d4fa87d7a91f9cb3ccad628cacb2b6fee384
Reproducible image: http://ghcr.io/rakshith-r/cephcsi:buggy-snap
Steps:

Create encrypted pvc
Create encrypted snapshot

Show available bot commands
These commands are normally not required, but in case of issues, leave any of
the following bot commands in an otherwise empty comment in this PR:

/retest ci/centos/<job-name>: retest the <job-name> after unrelated
failure (please report the failure too!)
/retest all: run this in case the CentOS CI failed to start/report any test
progress or results

@Rakshith-R just a question if this can be easily reproduced why didn't get caught in CI? can you see anything we are missing in CI and anything need to be added?

@Rakshith-R just a question if this can be easily reproduced why didn't get caught in CI? can you see anything we are missing in CI and anything need to be added?

yeah, interesting that it was not caught on r our e2e...
@Rakshith-R while you say will happen when number of snapshots hits flatten limit -> what is the limit you are mentioning ?

@Rakshith-R just a question if this can be easily reproduced why didn't get caught in CI? can you see anything we are missing in CI and anything need to be added?

Basically, most of our tests pass in one go in ci (a single request).
This can only be caught when snapshotting process either returns a readyTouse=false (have to flatten) or process is killed in between(in some precise step of the control flow) basically leaving some omap entry/snaps/clones to continue from.

@Rakshith-R just a question if this can be easily reproduced why didn't get caught in CI? can you see anything we are missing in CI and anything need to be added?

yeah, interesting that it was not caught on r our e2e...
@Rakshith-R while you say will happen when number of snapshots hits flatten limit -> what is the limit you are mentioning ?

Scratch number of snapshots , I meant what this function does https://github.com/ceph/ceph-csi/blob/b27d6319ca8b16004ecbc00f71393821594de712/internal/rbd/rbd_util.go#L663

https://github.com/ceph/ceph-csi/blob/devel/docs/design/proposals/rbd-snap-clone.md#rbd-cli-commands-to-create-snapshot
This step, which would trigger a follow up request from external-snapshotter
// check the depth, if the depth is greater than configured hardlimit add a
// task to flatten the cloned image, return snapshot status ready as `false`,
// if the depth is greater than softlimit add a task to flatten the image
// and return success
ceph rbd task add flatten <RBD image for temporary snap image>

Or can also be caused from a very well(or very ill) timed container restart.

https://github.com/ceph/ceph-csi/blob/680a7bf411b58858d88f56d5a5a045baa2e743bb/scripts/install-helm.sh#L176
--set provisioner.maxSnapshotsOnImage=3 --set provisioner.minSnapshotsOnImage=2

I think we are missing to rbdhardmaxclonedepth and rbdsoftmaxclonedepth to 1 or 2 and see this can be caught in CI?

Create PVC
Create PVC clone (if required create chain of  clones)
Create snapshot from clone -> this will cause the flatten to happen

can you see this helps?

https://github.com/ceph/ceph-csi/blob/680a7bf411b58858d88f56d5a5a045baa2e743bb/scripts/install-helm.sh#L176
--set provisioner.maxSnapshotsOnImage=3 --set provisioner.minSnapshotsOnImage=2

I think we are missing to rbdhardmaxclonedepth and rbdsoftmaxclonedepth to 1 or 2 and see this can be caught in CI?

Create PVC
Create PVC clone (if required create chain of  clones)
Create snapshot from clone -> this will cause the flatten to happen

can you see this helps?

Or creating a long chain of snapshot /& clones.
This ideally should trigger both soft and hard limit.
And as to snapshot limit, it is flattened at the very begining of request https://github.com/ceph/ceph-csi/blob/b27d6319ca8b16004ecbc00f71393821594de712/internal/rbd/controllerserver.go#L934 . I don't think it matters much. (referred to this instead of rbd image chain Depth by mistake :sweat_smile: )

https://github.com/ceph/ceph-csi/blob/680a7bf411b58858d88f56d5a5a045baa2e743bb/scripts/install-helm.sh#L176
--set provisioner.maxSnapshotsOnImage=3 --set provisioner.minSnapshotsOnImage=2

I think we are missing to rbdhardmaxclonedepth and rbdsoftmaxclonedepth to 1 or 2 and see this can be caught in CI?

Create PVC
Create PVC clone (if required create chain of  clones)
Create snapshot from clone -> this will cause the flatten to happen

can you see this helps?

Or creating a long chain of snapshot /& clones.
This ideally should trigger both soft and hard limit.
And as to snapshot limit, it is flattened at the very begining of request
https://github.com/ceph/ceph-csi/blob/b27d6319ca8b16004ecbc00f71393821594de712/internal/rbd/controllerserver.go#L934
. I don't think it matters much. (referred to this instead of rbd image chain Depth by mistake 😅 )

Yes that also helps. Can you please add it

Can you also add a commit to set hard and soft limit to lower values in helm? This will avoid creating larger chain to test this one

Or creating a long chain of snapshot /& clones.
This ideally should trigger both soft and hard limit.
And as to snapshot limit, it is flattened at the very begining of request
https://github.com/ceph/ceph-csi/blob/b27d6319ca8b16004ecbc00f71393821594de712/internal/rbd/controllerserver.go#L934
. I don't think it matters much. (referred to this instead of rbd image chain Depth by mistake sweat_smile )

Yeah, that clarifies it, :+1:

/retest ci/centos/k8s-e2e-external-storage/1.21

/retest ci/centos/mini-e2e-helm/k8s-1.21

/retest ci/centos/mini-e2e-helm/k8s-1.21

@Rakshith-R just a question if this can be easily reproduced why didn't get caught in CI? can you see anything we are missing in CI and anything need to be added?

Basically, most of our tests pass in one go in ci (a single request).
This can only be caught when snapshotting process either returns a readyTouse=false (have to flatten) or process is killed in between(in some precise step of the control flow) basically leaving some omap entry/snaps/clones to continue from.

If I had anything to say here, I would request a fix like this to be accompanied by a commit adding or expanding a test case to prove that the pre-fix state is wrong, in this very PR! 😄
More thoughts:

If there is no regular/deterministic way of creating a snapshot resulting in readyToUse = false, then we should create this possibility in the test code.
My gut feeling says it should be possible to cover this with a unit / subsystem test, should not require e2e test.

If I had anything to say here, I would request a fix like this to be accompanied by a commit adding or expanding a test case to prove that the pre-fix state is wrong, in this very PR!

Modified args
            - '--rbdhardmaxclonedepth=1'
            - '--rbdsoftmaxclonedepth=0'

Which will flatten all the clones/snaps/restores.

More thoughts:

If there is no regular/deterministic way of creating a snapshot resulting in readyToUse = false, then we should create this possibility in the test code.

This will surely result in readyToUse = false, :crossed_fingers: hope e2e does not timeout though

My gut feeling says it should be possible to cover this with a unit / subsystem test, should not require e2e test.

Needs interaction with ceph cluster, so not possible.

I don't really have a voice here, but I would request to add a test case (as a separate commit in this same PR) for this if possible.

We also add a task to flatten image(during snap/clone/restore), so cannot effectively guarantee depth of image to be a certain value(at a certain time).
But we can decrease the limit as I've done in helm_install.sh so it should act as e2e test.

I don't really have a voice here, but I would request to add a test case (as a separate commit in this same PR) for this if possible.

We also add a task to flatten image(during snap/clone/restore), so cannot effectively guarantee depth of image to be a certain value(at a certain time).
But we can decrease the limit as I've done in helm_install.sh so it should act as e2e test.

But this is not an explicit test for this error, right? An explicit test would check the vo-ids after cloneFromSnapshot function. Are we sure this will fail e2e tests without the code fix?

But this is not an explicit test for this error, right? An explicit test would check the vo-ids after cloneFromSnapshot function.
Are we sure this will fail e2e tests without the code fix?

yes, it will fail.
Tested with those arguments and here's the logs https://hackmd.io/7pDqtCupRtiZrRlrz_fHDw

/test ci/centos/mini-e2e-helm/k8s-1.20

@Rakshith-R can you please check PVC clones e2e.

But this is not an explicit test for this error, right? An explicit test would check the vo-ids after cloneFromSnapshot function.
Are we sure this will fail e2e tests without the code fix?

yes, it will fail.
Tested with those arguments and here's the logs https://hackmd.io/7pDqtCupRtiZrRlrz_fHDw

Tweaking the soft/hard  limits or both with allowed values would be one good to way to bring up the failure scenarios here. Looks like  we need to add few test cases here with different values which could help us to reveal the flow we are going wrong.

Both the following e2e is failing at validate clones in different pool e2e.
helm-1.21 ,
helm-1.20
Also https://github.com/ceph/ceph-csi/issues/1883 is hit at
I0715 11:13:56.839829       1 utils.go:171] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 GRPC call: /csi.v1.Controller/CreateVolume
I0715 11:13:56.840227       1 utils.go:175] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 GRPC request: {"accessibility_requirements":{"preferred":[{"segments":{"topology.rbd.csi.ceph.com/region":"testregion","topology.rbd.csi.ceph.com/zone":"testzone"}}],"requisite":[{"segments":{"topology.rbd.csi.ceph.com/region":"testregion","topology.rbd.csi.ceph.com/zone":"testzone"}}]},"capacity_range":{"required_bytes":1073741824},"name":"pvc-4e5cbe5f-1623-402e-982a-26a08b6da064","parameters":{"clusterID":"cd8b81d5-27be-44a3-8230-d3e1a2369def","csi.storage.k8s.io/pv/name":"pvc-4e5cbe5f-1623-402e-982a-26a08b6da064","csi.storage.k8s.io/pvc/name":"rbd-32741","csi.storage.k8s.io/pvc/namespace":"rbd-3274","imageFeatures":"layering","pool":"clone-test","thickProvision":"false"},"secrets":"***stripped***","volume_capabilities":[{"AccessType":{"Mount":{"fs_type":"ext4","mount_flags":["discard"]}},"access_mode":{"mode":1}}],"volume_content_source":{"Type":{"Snapshot":{"snapshot_id":"0001-0024-cd8b81d5-27be-44a3-8230-d3e1a2369def-0000000000000002-60e3ec6e-e55d-11eb-9cdd-5ef793f1116d"}}}}
I0715 11:13:56.840502       1 rbd_util.go:1067] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 setting disableInUseChecks: false image features: [layering] mounter: rbd
E0715 11:13:56.841579       1 omap.go:77] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 omap not found (pool="replicapool", namespace="", name="csi.snap.60e3ec6e-e55d-11eb-9cdd-5ef793f1116d"): rados: ret=-2, No such file or directory
W0715 11:13:56.841620       1 voljournal.go:672] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 unable to read omap keys: pool or key missing: key not found: rados: ret=-2, No such file or directory
E0715 11:13:56.841643       1 controllerserver.go:682] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 failed to get backend snapshot for 0001-0024-cd8b81d5-27be-44a3-8230-d3e1a2369def-0000000000000002-60e3ec6e-e55d-11eb-9cdd-5ef793f1116d: key not found: no snap source in omap for "csi.snap.60e3ec6e-e55d-11eb-9cdd-5ef793f1116d"
E0715 11:13:56.841725       1 utils.go:180] ID: 707 Req-ID: pvc-4e5cbe5f-1623-402e-982a-26a08b6da064 GRPC error: rpc error: code = Internal desc = key not found: no snap source in omap for "csi.snap.60e3ec6e-e55d-11eb-9cdd-5ef793f1116d"

/retest all

/retest all

resesting to capture more such fails.

@Rakshith-R PR need manual rebase

Removed commit to set hard and soft limit to lower values in helm, as this may trigger https://github.com/ceph/ceph-csi/issues/2327 and cause instability in our ci.
@nixpanic @humblec @Madhu-1 PTAL

/restest ci/centos/mini-e2e-helm

/retest ci/centos/mini-e2e-helm

/retest ci/centos/mini-e2e-helm

Aug  3 09:47:08.230: INFO: At 2021-08-03 09:37:17 +0100 BST - event for pod-run-as-non-root: {kubelet minikube} Failed: Failed to pull image "registry.centos.org/centos:latest": rpc error: code = Unknown desc = Error response from daemon: Get https://registry.centos.org/v2/: x509: certificate has expired or is not yet valid
https://jenkins-ceph-csi.apps.ocp.ci.centos.org/blue/organizations/jenkins/mini-e2e-helm_k8s-1.19/detail/mini-e2e-helm_k8s-1.19/2287/pipeline/
https://jenkins-ceph-csi.apps.ocp.ci.centos.org/blue/organizations/jenkins/mini-e2e-helm_k8s-1.20/detail/mini-e2e-helm_k8s-1.20/1880/pipeline/

@Rakshith-R is this PR also fixing https://github.com/ceph/ceph-csi/issues/1883 if yes please add Fixes to the PR description.

@Rakshith-R is this PR also fixing #1883 if yes please add Fixes to the PR description.

Done, PTAL @nixpanic @Madhu-1 @humblec

@Mergifyio rebase

/retest ci/centos/upgrade-tests-rbd

/retest ci/centos/upgrade-tests-rbd

failed due to #2264
logs

/retest ci/centos/mini-e2e/k8s-1.20

/retest ci/centos/mini-e2e/k8s-1.20

failed due to #2264
logs

@Madhu-1 ,This pr is waiting for your final review/approval PTAL
Thanks!

/retest ci/centos/mini-e2e/k8s-1.21

/retest ci/centos/mini-e2e/k8s-1.21

failed due to #2264
logs


Got an error while using property horizontal = {true}

I am running a sample app. In that i used Example 3 while using the scroll to entire Table and used horizontal ={true}.in Table View title columns and data columns got messed .please check the screenshot

Any solutions can be appreciated

Could you show me your code?


Isn't Array a subtype of Object?

If this is a bug, please try reproducing using https://flow.org/try/.
Error: src/main/views/pricing/packages/DetailedCountry/DetailedCountryView.js:357
357:            const currentAdditionalServices = flatMap(current.currentPricePackageCountries, x => x.additionalServices)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ array type. This type is incompatible with the expected param type of
554:     flatMap<T: Object, U>(
^^^^^^ object type. See lib: flow-typed/npm/lodash_v4.x.x.js:554

Hmmm, not sure of what you mean here^^ I guess the flow team considers that there are really few use cases where you'd want an object and accept an array. Could you perhaps provide us with an example?

Not enough info to repro


Implement readTree for GitlabReader (#3547)

Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[x] Tests for new functionality and regression tests for bug fixes
~- [ ] Screenshots attached (for UI changes)~

What

Based on #3547 this PR adds an implementation for readTree in GitlabUrlReader. As part of this change, I have also added a new field to GitlabIntegrationConfig for apiUrl -- the field was present in both Bitbucket and Github configurations, so I thought it would make sense as part of this change to add it in Gitlab too.
The changes are quite straightforward, other than providing the implementation in the reader and touching the config, I have added in tests (with the same scenarios found in GH/Bitbucket readers) and made some smaller changes in the class, such as adding the TreeResponseFactory as a private field.
How

The implementation is similar to the one in the Github reader (and Bitbucket reader branch suggested in #3547). The main distinctions are around the url for the archive and the archive format. From what I have noticed, Gitlab download urls (regardless of whether it is hosted) follow the same pattern: <protocol>://<host>/<org>/<repo>/-/archive/<branch-ref>/<repo>-<branch-ref>.<zip-fmt>.

When it comes to the format of the archive I have chosen to go with .zip. I'm not sure what the general consensus around this is; the Bitbucket example used zip and GH unpacks tarballs. I have added in a TODO to keep track of this -- I can remove it or make the change directly based on feedback received.

The final difference is in the path, Gitlab archives are named as repo-branch and contain the project tree, contrastingly, Github archives are named after a branch and have another directory inside with the repo name and the branch. Thought I'd put this in so it makes more sense when looking at the tests and the path.

Let me know of any feedback in terms of implementation details and code style. :)
I am also unsure if this should contain a changeset would appreciate any info related to it.
Signed-off-by: Matei David<EMAIL_ADDRESS>

I think this looks like a good start! If you can get the tests fixed (mainly the call to getRequestOptions) i think we can merge this.

I think this looks like a good start! If you can get the tests fixed (mainly the call to getRequestOptions) i think we can merge this.

Hi @hooloovooo, thank you for your comment and most of all apologies for the delay in pushing a fix! I have been away for a couple of days and did not get the chance to work on this.
I went ahead and fixed the call to getRequestOptions. I rebase off the latest upstream master, it seems the function got moved which made this much easier to reason with :). I also changed a test for the GitLab config class to add the default apiBaseUrl property.
Let me know what you think!

Hey @mateiidavid this needs a changeset :)
https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#creating-changesets

Hey @mateiidavid this needs a changeset :)
https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md#creating-changesets

@benjdlambert ah thanks for bringing that up! First time contributing and I was unsure whether this would warrant one.
I went ahead and created a changeset for both backend-common and integration (seeing as I have made changes to the config). I gave both a minor version bump since the API since both the config and readTree method are backwards compatible.
Lmk if I should amend anything :) will be super prompt about it. Thanks for your time!

Hey @mateiidavid perfect, one thing though. I think both of these changes can be patch changes, as we're below >1.0.0 then patch is essentially minor :)

Hey @mateiidavid perfect, one thing though. I think both of these changes can be patch changes, as we're below >1.0.0 then patch is essentially minor :)

That makes a lot of sense, should have probably clocked on to it @benjdlambert 😅.  I have manually changed it to be a patch now, let me know if there are any other changes or if I need to run yarn changeset again instead of manually changing the existing one.


use nzBackdrop to fix the selection dropdown menu, but it leads to hover effect of elements don't work

Reproduction link
https://stackblitz.com/edit/angular-8pfzib?file=src/app/app.component.ts
Steps to reproduce

multiple selection with nzBackdrop=true
open dropdown menu
select one of options
hover the selected item on input field

What is expected?
Hover effect of elements should always work, whether the menu is open or not.
Can remove the selected item by click remove icon.
Selection menu position should fixed when scrolling.
What is actually happening?
Hover effect of elements doesn't work.
Can't remove the selected item with menu open, that is, I have to close the menu first.
Hover effect of elements works if set nzBackdrop=false, but menu position is not fixed.

Environment
Info

ng-zorro-antd
11.4.0

Browser
chrome

related issue
Select/Datepicker/Cascader menu position not fixed when scrolling in some layout

Currently the solution is add cdkScrollable to your container.

what if, cdkScrollable does not work and the cdk dropdown is still floating?


Incorrect results for IDN .de domains

When looking up an IDN .de domain, node-whois is trying to convert it into punyname before sending the actual whois request:
"data": "Domain: xn--kche-0ra.de\nStatus: invalid\n",
"server": {
    "host": "whois.denic.de",
    "port": 43,
    "query": "$addr\r\n"
}

DENIC's whois server (whois.denic.de) however expects the domain in the normal unicode format:
"data": "Domain: küche.de\nDomain-Ace: xn--kche-0ra.de\nStatus: connect\n",
"server": {
    "host": "whois.denic.de",
    "port": 43,
    "query": "$addr\r\n"
}

For the result above I changed the following code:
-      return socket.write(server.query.replace('$addr', punycode.toASCII(addr)));
+      return socket.write(server.query.replace('$addr', addr));

I have no clue if this is a special case or if it's the general way to lookup IDN domains in whois servers. Can anyone shed some light in here?

Hi @frdmn .. I think we may need to selectively disable the use of punycode for some of these WHOIS servers. And then add an option to skip punycode conversation during invocation. Apparently some servers can handle unicode now.

I totally agree with the conclusion! 👍

Thanks a lot, Mahmud!

@frdmn No problem at all!

@hjr265 Would you mind bumping the NPM package to 2.1.6 so I can make use of the latest additions? :)

@frdmn Done :)


Document Form

It'd be good to have some documentation for how to use this, especially given we're at 1.0 and publicly available. To an outsider, it isn't easily understandable so needs some explanation. Also, since it's built to be flexible, some information on how to rig up a new binding to a third party control and an example.

@WebWalks is this something you can look at anytime soon? It'd be a big help to have something now we've got a few people using it. Plain text is aok, I don't mind adding it into the documentation site myself.


Bad url npm / readme

Bad url:
https://github.com/barthachijuu/circlemenu
Correct url:
https://github.com/barthachijuu/circularmenu

Now the issue is solved.


Under what license is this repo ?

Under what license is this repo ?

Hi!
Thank you! Really nice work!


New package: wl-std.WLDownloader version 1.3.6

Checklist for Pull Requests

[ ] Have you signed the Contributor License Agreement?
[ ] Is there a linked Issue?

Manifests

[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.6 schema?

Note: <path> is the directory's name containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

@microsoft-github-policy-service agree [company="{wl-std}"]

@microsoft-github-policy-service agree


Fix misleading appendix comment on substitution

In the appendix listing sample symbols,
the explanation about substitution was misleading
(it seemed backwards).  Make the order abundantly clear,
e.g., expressly note that [ y / x ] x = y.
Signed-off-by: David A. Wheeler<EMAIL_ADDRESS>

The expression "[ y / x ] x = y" may be confusing to a beginner, who might think it means ( [ y / x ] x ) = y (which it can't be because the 2nd x is not a wff) rather than "[ y / x ] ( x = y )" (theorem equsb1).  Is there a better example?  BTW [_ y / x ]_ x = y meaning ( [_ y / x ]_ x ) = x is also a theorem I think, but not in set.mm.

The expression "[ y / x ] x = y" may be confusing to a beginner, who might think it means ( [ y / x ] x ) = y (which it can't be because the 2nd x is not a wff) rather than "[ y / x ] ( x = y )" (theorem equsb1). Is there a better example? BTW [_ y / x ]_ x = y meaning ( [_ y / x ]_ x ) = x is also a theorem I think, but not in set.mm.

s.b. "[_ y / x ]_ x = y meaning ( [_ y / x ]_ x ) = y"

Good point.  The problem is that in the book we only refer to df-sb, not df-sbc, so I want to explain the symbols for df-sb.  Clearly a better example is needed though...!

At the least let's remove the misleading example.

We could add df-sbc to that appendix as well.
The df-sbc example could be:

( [_ y / x ]_ x u. (/) ) = y

Basically, do a union with `(/) to add the parens.

An example showing df-csb and df-sbc visual ambiguity, if you don't understand the distinction between a wff and a class, is sbcel1g (mentioned in ~ df-csb comment).  But are we bringing up df-csb anyway?  It is somewhat specialized and maybe not worth introducing just for this purpose.
Restricting ourselves to df-sb, a good unambiguous example might be elsb4 $p |- ( [ x / y ] z e. y <-> z e. x ) (where $d y z).  Since the y after the e. changes after substitution, the reader would know that [ x / y ] applies to the whole wff z e. y.

Theorem elsb4 is a great example.  We can easily clarify things to newcomers by using a few extra words instead of <->:
  $[ x / y ] z \in y$ is the same as $z \in x$.

They'll have to eventually understand the precedence, but not while they're learning.

Okay, I think this one works!


allow user to delete spec from dashboard

Pending demo to team and discuss use of breadcrumbs with Matt.
GovUK design statest breadcrumbs aren't to be used for transactions (e.g. deleting). Also we haven't used breadcrumbs elsewhere in the design.
Changes in this PR

added rails-ujs (handle delete method on link_to)
added destroy method to journeys controller
confirm_delete & delete views
updated locale files (nice way to handle links)
updated dashboard
tests - pending
updated changelog

Screenshots of UI changes
Before

After

@AndrewCowle could you pop an example of the path above the new screenshots please

@EdwinKruglov any comments?

Good comments, @peterdavidhamilton. The rest looks good to me!


worked once, refuses to work again – Windows 11 ARM

worked once on first try, refuses to work again, patch 1.34.5 (Steam)
Windows 11 for ARM, running via Parallels 16 on M1 MacBook Air
this is what I get after running the debug build first time after VM restart:
process name: eu4.exe
th32ProcessID: 0x6a0
th32ModuleID: 0x0
eu4.exe process found
Trying to find module eu4.exe
module name: eu4.exe
modBaseAddress: 0x7ff7e93e0000
modBaseSize: 0x2699000
eu4.exe module found
Trying to find memory patterns
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7E93E0000
RegionSize: 0x1000
PageSize: 0x1000
bytesRead: 2699000
pattern: 74 ?? C6 44 24 28 00 41 B8 35 00 00 00
offset: 0x1524a87
First memory pattern found
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7E93E0000
RegionSize: 0x1000
PageSize: 0x1000
bytesRead: 2699000
pattern: 74 ?? C7 04 25 00 00 00 00 39 05 00 00
offset: 0x1524c77
Second memory pattern found
Trying to apply patches
Trying to patch: 0x7ff7ea904a87:1
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7EA904000
RegionSize: 0x4c3000
PageSize: 0x1000
bytesWritten: 1
Patch applied successfully
Trying to patch: 0x7ff7ea904c77:1
processHandle: 0x0000000000000158
BaseAddress: 0x00007FF7EA904000
RegionSize: 0x4c3000
PageSize: 0x1000
bytesWritten: 1
Patch applied successfully
Press any key to continue . . .

this is what I get when I run the debug build again
process name: eu4.exe
th32ProcessID: 0x6a0
th32ModuleID: 0x0
eu4.exe process found
Trying to find module eu4.exe
module name: eu4.exe
modBaseAddress: 0x7ff7e93e0000
modBaseSize: 0x2699000
eu4.exe module found
Trying to find memory patterns
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7E93E0000
RegionSize: 0x1000
PageSize: 0x1000
bytesRead: 2699000
pattern: 74 ?? C6 44 24 28 00 41 B8 35 00 00 00
offset: 0x0
Pattern not found
First memory pattern could not be found, using fallback offset
First memory pattern found
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7E93E0000
RegionSize: 0x1000
PageSize: 0x1000
bytesRead: 2699000
pattern: 74 ?? C7 04 25 00 00 00 00 39 05 00 00
offset: 0x0
Pattern not found
Second memory pattern could not be found, using fallback offset
Second memory pattern found
Trying to apply patches
Trying to patch: 0x7ff7ea892a77:1
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7EA892000
RegionSize: 0x535000
PageSize: 0x1000
bytesWritten: 1
Patch applied successfully
Trying to patch: 0x7ff7ea892c67:1
processHandle: 0x000000000000015C
BaseAddress: 0x00007FF7EA892000
RegionSize: 0x535000
PageSize: 0x1000
bytesWritten: 1
Patch applied successfully
Press any key to continue . . .

in both cases doesn’t seem to do anything though (console says commands are disabled in ironman or whatever the message is)
when running the release build the window closes itself almost instantaneously, after “First memory pattern found” appears
patcher works fine on a regular x86 windows laptop

Sorry that i didn't respond in time. Its kinda weird that it worked first and then not anymore. Based on the output the memory pattern which should indicate the position of the required patches can not be found, e.g. the memory layout doesn't look as expected. The version when it worked and when not was the same?
Anyways, if you still want to use this tool, i didn't update the console application but provided 2 cheat engine tables for the latest version <IP_ADDRESS> which you could try. 1 with fixed offsets, which should work if the game version is the same, but will most likely only work exactly for <IP_ADDRESS> and another again with pattern scanning which may work for upcoming versions without the need of an update of the tables.

iirc the version when it worked and when it didn’t was identical. literally worked on the first try and refused to work again after restarting the game. no clue how and why it worked that one time though, or what prevented it from working again. I’m assuming the issue is caused by ARM and all the translation layers involved, as the Cheat Engine method also did not work on macOS nor on the Win11 VM for whatever reason
either way, thanks for responding. might try again and leave an update if I learn anything new


Flying works differently in CanaryMod

The "canonical" way if I get it right. Not as elegant as in CraftBukkit I'm afraid.

New one uploaded for ypgpm.md instead.


Terraform template_file limit hit when using several licenses

The terraform template_file has a limit of 16k characters. The default userdata.sh file is itself 6.5k characters and a single E+ license can be about 4k characters. In addition, SSL certs and other variables also push the character count up. This causes the terraform apply action to fail:
expected length of user_data to be in the range (0 - 16384), got #!/bin/bash ....

@jfrog-aparicio I think we can make License filed nonmandatory as we are using different endpoint for the health check. That will now allow the user to install license after Artifactory cluster is deployed.

Updated Terraform/variables.tf. Now, License inputs are not mandatory.

Confirmed with Arturo for closure on this request.


Proposal: make start() standard instead of suggesting to automatically pull.

I like being explicit in intent - I feel it would be better to not include default code examples that automatically start from sinks and rather just always include start(). (And no longer have start me an "extension")

Definitely agree with this. The Sink should be in complete control over when to start data flow.

To be clear - it already is, this is discussing making it less actually. I.e. making the outside code have to tell the sink to start explicitly.

Something like
Stream(source, transform, sink).start() could then invoke sink.start(), or, more verbosely:
sink.bindSource(source, err => {}).start()

Current extension reference: https://github.com/Fishrock123/bob/blob/master/reference-extension-start.js

Heh, sorry, wasn't being clear. In the uses I have in mind, the sink would call start but it wouldn't start automatically after bind. We're saying the same things but with different code calling start sometime after the bind has been performed.

If we make start() standard we can move the "bindCb" (the exit/error callback) to start() instead which would make bindSource() not have developer polymorphism. I think that would probably be a good idea. (or, have start return a promise) (or conditionally) (one or the other)


Order tests alphabetically

An argument could be made that Prometheus should always come first.
Signed-off-by: Richard Hartmann<EMAIL_ADDRESS>

The order in the map doesn't actually make a difference to the run order I've afraid - go map iteration is random order.
We should change this to a struct with proper ordering at some point...

Ah; the order in your email on -dev matched the order in main_test.go and I went from there.


Version bump

 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.Srinivas seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@solancer Please create a new PR with correct git user, we cannot merge this


Allow casted literal values in SQL functions accepting literals (Part 2)

Description
This is a follow-up to https://github.com/apache/druid/pull/15282. I missed a few instances of type checkers being used which internally used the OperandTypes.LITERAL, causing the same issue as described in the mentioned PR. This PR cleans up those usages as well, and unfortunately duplicates a fair bit of code from Calcite, to change a few calls which define whether or not casted literals can be used or not.
Release note

Key changed/added classes in this PR

MyFoo
OurBar
TheirBaz

This PR has:

[x] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

There would be a few code coverage failures, which seem expected, given that I have copied functions from Calcite. Adding a few negative tests might improve it but won't fix it completely, so I am favor of leaving them as is.

The following 5 actions are failing, and all of them are related to codecov in the newly added functions.
Merging the PR
https://github.com/apache/druid/actions/runs/6744567321/job/18335247194?pr=15316
https://github.com/apache/druid/actions/runs/6744567321/job/18335247344?pr=15316
https://github.com/apache/druid/actions/runs/6744567321/job/18337279442?pr=15316
https://github.com/apache/druid/actions/runs/6744567321/job/18337279628?pr=15316
https://github.com/apache/druid/actions/runs/6744567321/job/18337279877?pr=15316


fix(package.json): remove invalid bin field

If the bin field is present, it must point to a valid path within the package. Since the bin field was an empty string, it didn’t, so it should be removed. This was causing warnings when installing this package as a dependency.
This PR contains a:

[x] bugfix
[ ] new feature
[ ] code refactor
[ ] test update
[ ] typo fix
[ ] metadata update

Motivation / Use-Case
When using this as a dependency, yarn outputs the following line:
warning<EMAIL_ADDRESS>Invalid bin field for "webpack-hot-client".

This change fixes that.


Wait for the webserver in test

If we run into an exception in the main thread we're never terminating, blocking everything.

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

Coverage data is based on head (d97717c) compared to base (553b645).
Patch has no changes to coverable lines.

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #94   +/-   ##
=======================================
  Coverage   67.90%   67.90%
=======================================
  Files          10       10
  Lines         969      969
  Branches      170      169    -1
=======================================
  Hits          658      658
  Misses        253      253
  Partials       58       58

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

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

Yes, that is much cleaner, changed.


DbContext.ChangeTracker.HasChanges() not working as expected

We are not able to find any Added/Updated/Deleted entities from ChangeTracker.Entries(), but ChangeTracker.HasChanges() shows TRUE
Exception message: N/A
Stack trace: N/A

Steps to reproduce
using Microsoft.EntityFrameworkCore;
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;

namespace TestEntityFrameworkCore
{
    public class Booking
    {
        public int Id { get; set; }
        public Status Status { get; set; }
    }

    public class Status
    {
        public string Value { get; set; }
    }

    public class SqlDbContext : DbContext
    {
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            => optionsBuilder
                .UseSqlServer(@"Server=.;Database=dbname;Trusted_Connection=True;");

        protected override void OnModelCreating(ModelBuilder builder)
        {
            builder.Entity<Booking>(m =>
            {
                m.ToTable("Booking", "dbo");
                m.HasKey(x => x.Id);
                m.OwnsOne(x => x.Status, nav =>
                {
                    nav.Property(x => x.Value)
                        .HasColumnName("Status");
                });
            });
        }
    }

    public class Program
    {
        public static async Task Main()
        {
            using (var context = new SqlDbContext())
            {
                var booking = await context.Set<Booking>()
                    .FirstOrDefaultAsync(x => x.Id == 1897229);
                booking.Status = new Status() { Value = "Cancelled" };
                context.Entry(booking).State = EntityState.Unchanged;
                context.Entry(booking.Status).State = EntityState.Unchanged;
                // we expect there are no changes in context.ChangeTracker()
                if (context.ChangeTracker.HasChanges())
                {
                    // but context.ChangeTracker shows there are changes(), and we found ChangedCount of StateManager in ChangeTracker had value "1"
                    var test = context.ChangeTracker.Entries().Where(x => x.State != EntityState.Unchanged).ToList();
                    Console.WriteLine(test.Count); // output 0
                }
                await context.SaveChangesAsync(); // and will not execute any db command here
            }
        }
    }
}

Further technical details
EF Core version: 2.2.2
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10 Pro 1809
IDE: Visual Studio 2017 15.9.7

Note for triage: I was able to reproduce this.

@AndriySvyryd The issue here is that we create a special additional entry to handle owned type replacement--this is the state manager contents when HasChanges is called:
Booking {Id: 1} Unchanged
  Id: 1 PK
  Status: {BookingId: 1}
Status (Shared) {BookingId: 1} Deleted
  BookingId: 1 PK FK
  Value: 'S'
Status (Shared) {BookingId: 1} Unchanged
  BookingId: 1 PK FK
  Value: 'Cancelled'

So it's clear why HasChanges returns true. But if HasChanges is intended to indicate whether or not changes need to be made to the database, then this is wrong.
On the other hand, if HasChanges is intended to only indicate that there might be changes made to the database, then this is okay. Although HasChanges is then less useful.
Thoughts?

The way it's described I think it should return false. If you want to detect this case you'd need to use different API.

But perhaps the way to fix this is that setting the state to unchanged should detached the deleted shared entry and copy over the original values.


terms for chaperone mediated autophagy (CMA) receptor complex CC plus related processes

The chaperone mediated autophagy (CMA) translocation / receptor complex is cited numerous times in the literature
e.g. PMID: 24281265 (review) and https://en.wikipedia.org/wiki/Chaperone-mediated_autophagy
Consists of LAMP-2A (human UniprotKB P13473-1) "and a lysosome resident variant of hsc70 (lys-hsc70) ... only components of the translocation complex identified so far." (PMID:20797626).
Is localised to lysosomal membrane, dynamic and involves multimers of LAMP-2A plus changes in localisation to / from GO:0045121 membrane raft in the lysosomal membrane during CMA.
Assembly and disassembly of translocation / receptor complex multimers are key steps allowing CMA, so would like terms such as:
LAMP-2 complex
LAMP-2 complex assembly
LAMP-2 complex disassembly

Hi Paul,
Added
[Term]
+id: GO:0061742
+name: chaperone-mediated autophagy translocation complex
+namespace: cellular_component
+def: "A lysosomal membrane protein complex that enables the translocating a target protein across the lysosomal membrane as part of chaperone-mediated autophagy." [GOC:dph, GOC:pad, GOC:PARL, PMID:20797626]
+synonym: "chaperone-mediated autophagy receptor complex" RELATED [GOC:dph, GOC:pad, GOC:PARL]
+synonym: "CMA receptor complex" RELATED [GOC:dph, GOC:pad, GOC:PARL]
+synonym: "CMA translocation complex" EXACT [GOC:dph, GOC:pad, GOC:PARL, PMID:20797626]
+is_a: GO:0043234 ! protein complex
+intersection_of: GO:0043234 ! protein complex
+intersection_of: capable_of_part_of GO:0061741 ! chaperone-mediated protein transport involved in chaperone-mediated autophagy
+intersection_of: part_of GO:0005765 ! lysosomal membrane
+relationship: part_of GO:0005765 ! lysosomal membrane
+created_by: dph
+creation_date: 2015-10-23T07:39:04Z
If we need the assembly and disassembly terms, we can make them with TermGenie.


I can view the orders invoices

    Scenario: Seeing a new invoice related to the order
        When I browse orders
        And I view the summary of the order "#00000022"
        Then I should see an invoice related to this order

    Scenario: Seeing invoice details when clicking its id on order view
        Given I browse orders
        And I view the summary of the order "#00000022"
        When I click on first invoice's id
        Then I should see the summary of the invoice for order "#00000022"

Scenarios fulfilled

Thanks Bartek 🎖


Apply to whole type is not intuitive

 Issue by marktani
Thursday Jul 20, 2017 at 12:27 GMT
Originally opened as https://github.com/graphcool/ui-feedback/issues/68

When updating a permission, there is a big button which says "apply to whole type", so I click that, without realising it's already selected and I'm actually unselecting it. I do this every time - it doesn't look selected. Make this idempotent please!

This will be resolved by the file-based workflow


Purple border around walkers path and solids

Hi there,
Sorry if my question is stupid but I tried to fix it by myself and I just can't. When I use plot_walk_2d, I have a purple border around walkers path as well as around the solid in the image, as you can see in the following pictures.

I would like to know if it is possible to remove this purple border, because in the case of a porous media, the resulting image is really saturated.
Thanks in advance, and have a nice day.

I think this is easy to solve...when using plt.imshow(im) you have to add plt.imshow(im, interpolation='none').

I think this is easy to solve...when using plt.imshow(im) you have to add plt.imshow(im, interpolation='none').

Thanks for your reply. I'm not using plt.imshow directly in my code because the plot_walk_2d function dot it.. But I edited plt.imshow that are inside the plot_walk_2d function it worked, thanks a lot !


Add some example images to image filters reference

Here's the image filters reference as it is today: http://docs.wagtail.io/en/v1.0/topics/images/using_in_templates.html
I think it would really help people understand how these filters work by adding some example images that describe how cropping/resizing is performed with each filter.
This will be especially useful for describing the "fill" operation and how it works with focal points, "closeness", etc
For example: https://github.com/thumbor/thumbor/wiki/Crop-and-resize-algorithms

@kaedroho thoughts on these?
I have done my best to follow along with the example, using raw images of the same dimensions and showing how they would be cropped or resized. The green outlines maybe should be recoloured to something nicer, let me know if this is on the right track.
Maybe for the max/min I should use a lighter outline, because these represent the provided dimensions. For the fill I should not use a dashed line at all to differentiate between the min/max, showing that this will actually crop the image.

Image CC0 source: https://pixabay.com/en/white-wagtail-bird-branch-songbird-2786117/
Updated Docs Link: http://docs.wagtail.io/en/v1.13.1/topics/images.html

max-1000x500 with original 1000x2000

min-500x200 with original 2000x2000

fill-200x200

fill-200x200-c75 with focal shown

fill-200x200 with focal shown

@lb- These images are excellent!
I'm not too opinionated with regards to coloring/style of the lines, maybe someone in @wagtail/ux-design or @wagtail/documentation might have some thoughts on that.
The only thing I've spotted that isn't covered is the behaviour when the focal point is off centre. The cropping algorithm performs a google maps style zoom in towards the focal point rather than centering on it so the position of the focal point is the same in the final image.

Updates with some refinements, including more off-center example for focal point and lines to show center of image.
max-1000x500 with original 1000x2000

min-500x200 with original 2000x2000

fill-200x200

fill-200x200 with off center focal shown

fill-200x200-c75 with off center focal shown

Thanks again @lb-!
When the focal point is off-centre, the crop rect will not centre on it. So in fill-200x200 with off center focal shown, the red box should be moved left a little bit so the focal point in the final image is in the same position as it is in the source image.

@kaedroho like this?

Updated files location:
https://drive.google.com/drive/folders/1SOrsol5_ahFYnY-v6B4TjgSQMaEgnOk7?usp=sharing

@lb- Yep, that looks correct!

Updated files location: https://drive.google.com/drive/folders/1WGYv8JJgS7SVb1FEMzExzozcpdx36ftq?usp=sharing


Link the Security Policy in Bio from the SECURITY.md File

Purpose
Since now we have the Security Policy added to Bio in [1] it will be better to have a link to it from the SECURITY.md file in this ballerina-lang repo for easier maintainability.
[1] https://ballerina.io/security/
Fixes #21020
Approach

Describe how you are implementing the solutions along with the design details.

Samples

Provide high-level details about the samples related to this feature.

Remarks

List any other known issues, related PRs, TODO items, or any other notes related to the PR.

Check List

[ ] Read the Contributing Guide
[ ] Updated Change Log
[ ] Checked Tooling Support (#)
[ ] Added necessary tests

[ ] Unit Tests
[ ] Spec Conformance Tests
[ ] Integration Tests
[ ] Ballerina By Example Tests

[ ] Increased Test Coverage
[ ] Added necessary documentation

[ ] API documentation
[ ] Module documentation in Module.md files
[ ] Ballerina By Examples

Codecov Report

Merging #21021 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master   #21021   +/-   ##
=======================================
  Coverage   14.59%   14.59%
=======================================
  Files          51       51
  Lines        1398     1398
  Branches      214      214
=======================================
  Hits          204      204
  Misses       1178     1178
  Partials       16       16

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 94dc2ac...e48ae3c. Read the comment docs.


Exposing bintray functions

Would it be reasonable to make the privately scoped functions of https://github.com/softprops/bintray-sbt/blob/master/src/main/scala/Bintray.scala public and document them?
I'm presently extending sbt-bintray-bundle and require access so far to ensureLicenses, ensuredCredentials, saveBintrayCredentials and requestCredentials.
Thanks.

This looks like not needed anymore. Closing the ticket. Feel free to open a new one, if some APIs should be opened up.