RSA sign/copy/verify sequence fails due to MPI representation inconsistency

Bug
Version: 2.16.1
OS version: any
Configuration: default (any with RSA enabled)
Compiler and options: any
There is a bug in the mbed TLS RSA and MPI library code on the topic of normalization. To be clear I am referring to an MPI as normalized if its mbedtls_mpi contains the minimal number of limbs required to represent the number in question (a normalized MPI will not have any extra limbs that would correspond to like leading zeroes in big endian representation). The bug is that if you do the following sequence it causes subsequent RSA operations to fail:

parse an RSA key
do any operation with it (say sign)
copy the original RSA key to a second key (with mbedtls_rsa_copy)
do any operation with the second key (say verify)

Those operations with the second key will all fail. A summary of why this happens is as follows:

the RSA op Montgomery code is sensitive to whether or not the modulus is normalized
the parse code does not produce a normalized modulus
the copy code normalizes the modulus but copies the Montgomery value (RN) as-is

To be more specific about the Montgomery code it is sensitive the value of N->n (aka the number of limbs in the modulus) meaning it will generate a different value of RN depending on whether or not N is normalized.
To be more specific about the parse code mbedtls_mpi_read_binary will produce an mbedtls_mpi that is not normalized if the big endian input has leading zeroes. It is very common to receive such an input from ASN.1 parsing where leading zero bytes are required in ASN.1 integers to be interpreted as positive when the high-bit of the first non-zero byte is set.
mbedtls_mpi_copy (used by mbedtls_rsa_copy) normalizes its output even if the input MPI was not normalized. When mbedtls_rsa_copy does this on all of its fields (in particular N) it is invalidating the existing value of RN (which is only correct relative to the previous un-normalized value of N). This causes the bug: a key structure with an RN that is not correct for its N.
There are many ways to fix this particular problem. One way is to skip leading zero bytes in mbedtls_mpi_read_binary. Another way is to not normalize the output MPI in mbedtls_mpi_copy.
Personally I think the library should make some more clear/consistent statements about what the invariant is supposed to be in an mbedtls_mpi structure (for example always assume minimal limbs and guarantee that all library functions end with minimal limbs in any output MPI values). Making mbedtls_mpi_read_binary actually produce properly normalized output is at least a start in this direction.
I have attached a test program that fails with the current library (2.16.1). It passes if mbedtls_mpi_read_binary is patched as described here. I can send you an actual patch if I can get my contributor agreement straightened out (I can't remember if I already did one; if not I need to check with my company's legal department). It is not a very complicated change (you can easily recreate it from the description above).
mpi_normalization_bug.c.gz

@inestlerode Thank you for your report!
We will look into this

ARM Internal Ref: IOTSSL-2846

Still an issue - not addressed by any of the bignum work to date


Attempt osx_arm64 build

Replace #21 after rebuild upstream.
Checklist

[x] Used a personal fork of the feedstock to propose changes
[x] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[x] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[x] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe/meta.yaml) and found it was in an excellent condition.

seems to be green, thanks! Let's proceed


Review RHEA mapping to GO:0047949

From @amorgat
Fyi, I just set the status of RHEA:12064 to obsolete. RHEA:12064 (NAD) has been replaced by RHEA:57832 (NADP, EC <IP_ADDRESS>)
RHEA:12064 was mapped to GO:0047949
See https://www.enzyme-database.org/query.php?ec=<IP_ADDRESS> comment
« The enzyme, characterized from multiple Pseudomonas strains, participates in L-lysine degradation. Unlike earlier claims, it prefers NADP+ to NAD+. »
Note that according to  http://amigo.geneontology.org/amigo/term/GO:0047949,  this GO term is annotated with Q9I6M5 (DAVD_PSEAE) whereas Q9I6M5 is using RHEA:57832 (see  https://www.uniprot.org/uniprotkb/Q9I6M5/entry).
Please could you remove (GO:0047949, RHEA:12064) from the mapping file.
Thank you
Anne

Dear all,
The proposal has been made to obsolete 'GO:0047949 glutarate-semialdehyde dehydrogenase (NAD+) activity', since this reaction has been shown not to be physiologically significant; see https://www.enzyme-database.org/query.php?ec=<IP_ADDRESS> comment "The enzyme, characterized from multiple Pseudomonas strains, participates in L-lysine degradation. Unlike earlier claims, it prefers NADP+ to NAD+.".
The term will be replaced by GO:0102810 glutarate-semialdehyde dehydrogenase (NADP+) activity. There is a single EXP to this term by UniProt (replaced), and a mapping to RHEA:12064, now obsoleted. This term is not in any subsets.
You can comment on the ticket: https://github.com/geneontology/go-ontology/issues/25447
Thanks, Pascale


fix/209: clean up redundant code

Codecov Report

Merging #145 (2104d8f) into master (9e35754) will increase coverage by 0.00%.
The diff coverage is 75.00%.

@@           Coverage Diff           @@
##           master     #145   +/-   ##
=======================================
  Coverage   71.87%   71.87%
=======================================
  Files         692      692
  Lines       12143    12136    -7
=======================================
- Hits         8728     8723    -5
+ Misses       3106     3105    -1
+ Partials      309      308    -1

Impacted Files
Coverage Δ

...ize-Subarray-Sum/209. Minimum Size Subarray Sum.go
81.81% <75.00%> (+4.04%)
:arrow_up:

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 9e35754...2104d8f. Read the comment docs.


Things to consider

I have used your library in building my controller app, and it is quite amazing. That being said, there are two things that I am uncertain about in your library.
The first is how you handle the very first touch event on the joystick. If I have selected the joystick to always be fixed to the center and I touch the joystick the first time at 320 degrees and a strength of 20, I would imagine the joystick should still read in 0, 0 because that was my first ever touch event, and should not register it as I have not yet shifted the joystick at all. However, that event is read in and processed. The reason I bring this up is if you have a dead band on the joystick so that there is no movement within a certain strength, then by touching the joystick the very first time greater than the created dead band will register the motion.
The second thing to consider is I have been trying to use the isActivated() function you have supplied, however it seems to me that it is never returning true. I assumed it would be true if I am moving the joystick around, thus activating it, but perhaps I am wrong in the interpretation of what that function returns. I am looking for a way to register when a user has touched your joystick and then also when a user has let go of the joystick.
Please let me know your thoughts, thanks!

I handled the first issue but implementing onTouchListener (Action Down) and mIsFirstInput variable, then using that variable to just ignore the first input


Update cloudflare with hono/context-storage external build fix

re: https://github.com/dai-shi/waku/pull/882#issuecomment-2378365279
Applies the same fix used for handling hono/context-storage with aws builds.

Actually, @aheissenberger was right. It was my bad.
#894 is good for waku start, but #898 was wrong.

Oh interesting. Either solution seemed to work from my perspective but I am not using waku start for any of my apps. Do I need to go back to importing importHonoContextStorage from waku/unstable_hono to get the context? I'll test and find out...

Oh, no... I'm going the circle... Let me check it too.

As far as I tried npm run build -- --with-aws-lambda with 08_cookies, the dist folder looks good to me.

Yeah, this did not work for me unless I update back to import from unstable_hone. Then it works fine. Either is ok with me. It was nice with the version I originally committed here. I was able to bring my own hono (tested with 4.6.3).

I will test AWS next. I only tested Cloudflare so far.

Same issue in my aws build. getContext fails if I import from 'hono/context-storage' instead of 'waku/unstable_hono'.

Maybe it's only --with-cloudflare issue. I'm not happy with importHonoContextStorage as a user facing api.

Hmmm? I think I miss something. Can you try 08_cookies example?

When I copy 08_cookies App and Counter components into an empty page on my app, I get a fatal error
Error - Context is not available
Stack Trace
getContext (file:///var/task/components/test/App.js:12:11)
InternalAsyncComponent (file:///var/task/components/test/App.js:25:43)
The issue is caused because the entry point ("serve js") for the deploy plugins loads getContext() from waku/unstable_hono with the latest change.
It worked better IMHO when the deploy plugins imported from hono/context-storage and let the deploy server bundle include the app's copy of hono/context-storage rather than waku's. Then my app server components received the same bundled version of hono that I supplied.

The issue is caused because the entry point ("serve js") for the deploy plugins loads getContext() from waku/unstable_hono with the latest change.

From my investigation, importHonoContextStorage and hono/context points to the same file after the build.
Let me try it again.
Using waku main 49d1ae7, and examples/08_cookies:
pnpm -r --filter='./packages/waku' run compile
cd examples/08_cookies
node ../../packages/waku/dist/cli.js build --with-cloudflare
npx wrangler pages dev

Actually I get a different error (unexpected):
⎔ Starting local server...
✘ [ERROR] service core:user:waku-project: Uncaught Error: No such module "node:path".

But, that brings me a question, how is your setup different?

Actually I get a different error (unexpected):

Ah, 08_cookies have node:fs. I just removed node related code in src/entries.tsx and replaced with const items: unknown[] = [];
npx wrangler pages dev is working fine.

You're right. It does work if I deploy from examples/08_cookies directly but I think it is a side-effect of being in the same monorepo. If you change the hono version in 08_cookies to 4.6.3, you will be able to reproduce the error.
I thought I already tested using 4.6.1 from my other apps and it didn't work, but I could try again. Even if it does work, it's probably not an ideal solution.
This fixes:
--- a/packages/waku/src/lib/plugins/vite-plugin-deploy-cloudflare.ts
+++ b/packages/waku/src/lib/plugins/vite-plugin-deploy-cloudflare.ts
@@ -17,16 +17,22 @@ import { DIST_ENTRIES_JS, DIST_PUBLIC } from '../builder/constants.js';
 const SERVE_JS = 'serve-cloudflare.js';

 const getServeJsContent = (srcEntriesFile: string) => `
-import { runner, importHono, importHonoContextStorage } from 'waku/unstable_hono';
+import { runner, importHono } from 'waku/unstable_hono';
+
+let contextStorage;
+try {
+ ({ contextStorage } = await import('hono/context-storage'));
+} catch {}

 const { Hono } = await importHono();
-const { contextStorage } = await importHonoContextStorage();

 const loadEntries = () => import('${srcEntriesFile}');
 let serveWaku;

 const app = new Hono();
-app.use(contextStorage());
+if (contextStorage) {
+  app.use(contextStorage());
+}
 app.use('*', (c, next) => serveWaku(c, next));
 app.notFound(async (c) => {
   const assetsFetcher = c.env.ASSETS;

^ same patch works for aws for me too.

I think it is a side-effect of being in the same monorepo.

I think I tried it standalone too.
Just double checking; Yes, it works without monorepo.

If you change the hono version in 08_cookies to 4.6.3, you will be able to reproduce the error.

Ah, that explains. Well, then I change my opinion. If you use a different hono version, import { getContext } from 'hono/context-storage' doesn't work, and from 'waku/unstable_hono' would be the right solution for now. Unless we make hono a peer dependency (which we decided not to), there wouldn't be other solutions. This actually makes me feel like #884 can be a better solution than #891. We should definitely revisit before v1.

We should definitely revisit before v1.

Or, I can revert it right away, because this hasn't been released yet.

#914
sorry for going the full circle. 😄 @rmarscher @aheissenberger

#914 sorry for going the full circle. 😄 @rmarscher @aheissenberger

I see. No problem! That works. Thank you so much.


Same link creates duplicates in location history

Hey,
When clicking same link, it creates duplicates in history so when you click back, you get to the same page.
Tested on basic example.
Click home -> about -> about -> about -> back. You would expect to go back to home, but you will stay on the same page. Default browser <a> tag doesn't create same page history duplicates.
This is a well know bug in history package (since v4) which was reported multiple times in react-router (RR#5500, check number of linked issues) and in history (H#507).
React-router guys tell this should be fixed in history while history guy one day tells it should be fixed in react-router, next day says it should fixed in history and wants a pr, next day closes pr with no comments (H#570).
Maybe at least one router will have links that work same way as browser ones.

So personally, I'd say this isn't a bug in history, but I do agree that it would be nice to solve it within the router. The reason I'd say that it isn't a bug in history is because this is how the browser's window.history works, and the history package should act as a thin wrapper around it.
The way to implement this I think is to add a condition to navigation.navigate(), that returns without navigating if all of the following conditions are true:

The new URL matches the existing URL
The existing URL has an empty state or no state object
The new URL has an empty state object or no state object

Would be happy to accept a PR for this.


Multiple jobs run in unexpected time interval

# go run hello.go
2017/06/07 19:54:19 Start
2017/06/07 19:54:29 @every 1m30s
2017/06/07 19:54:39 @every 1m30s
2017/06/07 19:54:49 @every 1m30s
2017/06/07 19:54:59 @every 1m30s
2017/06/07 19:55:09 @every 1m30s
2017/06/07 19:55:19 @every 1m30s
2017/06/07 19:55:19 @every 1m30s
2017/06/07 19:55:19 @every 1m
2017/06/07 19:55:29 @every 1m30s
2017/06/07 19:55:39 @every 1m30s
2017/06/07 19:55:49 @every 1m30s
2017/06/07 19:55:49 @every 1m30s
2017/06/07 19:55:59 @every 1m30s
2017/06/07 19:56:09 @every 1m30s
2017/06/07 19:56:19 @every 1m30s
2017/06/07 19:56:19 @every 1m30s
2017/06/07 19:56:19 @every 1m
2017/06/07 19:56:29 @every 1m30s
2017/06/07 19:56:39 @every 1m30s
2017/06/07 19:56:49 @every 1m30s
2017/06/07 19:56:59 @every 1m30s

# cat hello.go
package main

import "log"
import "github.com/robfig/cron"
import "time"

func main() {
        c := cron.New()
        c.AddFunc("@every 1m", func() {
                log.Println("@every 1m")
        })
        for _, v := range []string{"@every 10s", "@every 1m", "@every 24h", "@every 1m30s"} {
                c.AddFunc(v, func() {
                        log.Println(v)
                })
        }
        c.Start()
        log.Println("Start")
        time.Sleep(600 * time.Second)
}

As the above result and code, when multiple jobs are added, the first 10s-interval job executes the last 1m30s-interval task.

just change this code:
c.AddFunc(v, func() {
                        log.Println(v)
                })

to
temp := v
c.AddFunc(temp, func() {
                        log.Println(temp)
                })

Thx a lot, the issue is resolved!


Ability to disable deselect when in single select mode

**Is your feature request related to a problem?
Used this library to replace all my standard dropdowns with single select searchable dropdowns. It works great but there was one hack I had to do to mimic the behavior of 'standard' dropdowns. I needed to remove the ability to deselect, and enable the ability to reselect the same option.
Describe the solution you'd like A clear and concise description of what you want to happen.
I would like an option I could toggle to change this behavior without hacking the code.
Describe alternatives you've considered A clear and concise description of any alternative solutions or features
you've considered.
I hacked the code to get the behavior I want, but now I'm starting to use this library ALSO as a multiselect so I need to be able to toggle it. The hack I'm using right now is to just comment out the functionality the first time and now I'm just going to hack in a new option. The huge downside of this is I cant use libman etc for updates and I have to rehack it every update. There is one other hack I need but I will do a discussion for that one because it might be my weakness in vue causing that one.
Here is the hack that does the behavior I'm looking for (commenting out the section IS the hack):
  var addOrRemoveOptionForNonGroupOption = function addOrRemoveOptionForNonGroupOption(event, option) {
                option = option.originalOption;
                /*
                if (hasOption(normalizedModelValue.value, option, {
                    valueBy: normalized.valueBy
                })) {
                    normalizedModelValue.value = removeOption(normalizedModelValue.value, option, {
                        min: normalized.min,
                        valueBy: normalized.valueBy
                    });
                    context.emit('removed', option);
                } else {
                */
                if (!props.multiple && normalizedModelValue.value.length === 1) {
                    var removingOption = normalizedModelValue.value[0];
                    normalizedModelValue.value = removeOption(normalizedModelValue.value, normalizedModelValue.value[0], {
                        min: 0,
                        valueBy: normalized.valueBy
                    });
                    context.emit('removed', removingOption);
                }

                normalizedModelValue.value = addOption(normalizedModelValue.value, option, {
                    max: normalized.max,
                    valueBy: normalized.valueBy
                });
                context.emit('selected', option);
                //}
            };

Since for my new needs I need to be able to toggle it I just threw in an option for it
allowDeselect: {
                "default": true,
                type: Boolean
            },

    var addOrRemoveOptionForNonGroupOption = function addOrRemoveOptionForNonGroupOption(event, option) {
                option = option.originalOption;

                if (!props.allowDeselect && hasOption(normalizedModelValue.value, option, {
                    valueBy: normalized.valueBy

I would contribute a pull request of my solution but I am not familiar with these build tools/unit test environments.
Additional context Add any other context or screenshots about the feature request here.

Since for my new needs I need to be able to toggle it I just threw in an option for it
allowDeselect: {
                "default": true,
                type: Boolean
            },

    var addOrRemoveOptionForNonGroupOption = function addOrRemoveOptionForNonGroupOption(event, option) {
                option = option.originalOption;

                if (!props.allowDeselect && hasOption(normalizedModelValue.value, option, {
                    valueBy: normalized.valueBy


Unable to create secret type tls in kubernetes cluster

Creating a secret type of generic using action:azure/k8s-create-secret@v4 but seems to not have the feature of a secret type TLS. Could you make any suggestions? Please

@cloudat-tech this is something we should support. We will add it when we get the time or feel free to make a PR.


[klippa] subset gvar table

Looks like you're now getting the point of needing to manually assemble table binaries including offsets. That's fine for this PR but before you get further into the more complex tables like GSUB/GPOS we probably want to create something like hb_serialize_context_t from harfbuzz to assist in manually assembling tables like this.


Support preview snapshots of code for Open Graph links

When linking to a definition, instead of the default Open Graph image, we should show a preview of the source. If its a project (when those exist) it should have num stars and num downloads etc.
The challenge would be to create this image serverside—currently our routes serve up the same page and no server is involved.
It's possible to generate SVGs with React (and Elm) and use a node process to convert that to a PNG.
For share, these would be done on-demand, with some aggressive caching.

We should also update the description and title fields, this is probably a lower lift effort than the image portion.

Note that in Slack, it seems that code from GitHub is previewed directly as text that can be highlighted. This seems like a Slack specific thing and not an Open Graph thing.
Possibly the GitHub slack bot does this?

See https://api.slack.com/reference/messaging/link-unfurling. You can do this with a Slack App and perhaps this would be a nice thing to do once you have teams all in on using Unison, but perhaps not super high priority (as it would only work once you installed the App rather than in any Twitter/OpenGraph compatible thingy).

Nice thats a very helpful insight!


i18n(zh-cn): Update Keystatic

Description (required)

Related issues & labels (optional)

Closes #
Suggested label:

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

zh-cn/guides/cms/keystatic.mdx
Localization changed, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


Extra options for working with fields containing defaults

Thanks for this module, it has simplified my workflow considerably when defining APIs when combined with other modules.
As part of my project I have an API which defines a lot of default values on fields which are otherwise marked as optional (don't really want to force clients to fill in boilerplate cases). A middleware layer then fills in the defaults for anything not set by the client per the supplied schema.
As a result, it means a lot of the types generated include optional members which aren't really optional in the context the generated interfaces are referenced in.
In this PR I've added two new options to settings which, when enabled, do the following:

Include the default value in the output type (mostly just a visibility thing, happy to drop this if unwanted)
Mark fields which have a default value as required even if presence is not required

This has been released https://github.com/mrjono1/joi-to-typescript/releases/tag/3.1.0


Add file with FPT University

@tiensu fsb.txt: this request has an incorrect file path format, please ensure that you are familiar with     this repository rules located at the bottom of this page and change     your request accordingly. If you don't know how to change request, close it and open a new one.     If you are not able to make the pull request according the instructions, please send us an email to<EMAIL_ADDRESS>Please mention this request URL in the message.

@tiensu I am sorry, I have to close the request without merging, because you made a mistake in a request and did not specify any filepath. Please ensure that you are familiar with this repository rules located at the bottom of this page and make a new correct request. Thank you for the understanding!


README updated

@EnableSchedulerLock(defaultLockAtMostFor = "10m") makes an error as below
Caused by: java.time.format.DateTimeParseException: Text cannot be parsed to a Duration

So changed it to conform to the format.

Hi, can you please describe where it does not work (version, framework). It should work.

Oh. My bad. I used 2.x version.
Thanks for your fast answer! I'll close the comment :)


latch mode for switching between layers of the steps page

I've noticed that I often need to set a gate in the note layer and was wondering if we could implement a latch mode or a quick way to add a gate and comeback to the note layer? does that make sense? ie: holding the note then gate button would take you to the gate layer momentarily so you can add a quick gate and when you release the buttons you automatically return to the note layer. Now that I think about it implementing that for any layers would be really handy and a great workflow improvement :) thanks for considering

First, you can toggle gates in all layers holding step keys and pressing the encoder, no need to switch pages. Second, I don't think this latch mode would improve workflow at all, now you need one hand to hold a button. Much easier to just switch between layers.


chore: extract package validation to an extra script

and run it during CI

Codecov Report
Base: 91.88% // Head: 91.88% // Decreases project coverage by -0.01% :warning:

Coverage data is based on head (e444867) compared to base (9434a16).
Patch coverage: 100.00% of modified lines in pull request are covered.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #5039      +/-   ##
==========================================
- Coverage   91.88%   91.88%   -0.01%
==========================================
  Files         111      111
  Lines        4178     4175       -3
  Branches     1085     1082       -3
==========================================
- Hits         3839     3836       -3
  Misses        318      318
  Partials       21       21

Impacted Files
Coverage Δ

packages/react-query-devtools/src/devtools.tsx
83.75% <100.00%> (-0.18%)
:arrow_down:

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.


DefaultModelBinder for SortedSet automatically sorts

Is this a Bug or Feature request?:
Bug
Steps to reproduce (preferably a link to a GitHub repo with a repro project):
send a post payload of ids[]=3&ids[]=1&ids[]=2 to a mvc controller action like public JsonResult SaveSortOrder(SortedSet<int> ids)
Description of the problem:
When using default parameterization of a javascript array in jquery, the payload for the array [3,1,2] looks like ids[]=3&ids[]=1&ids[]=2. If using traditional: true then it will look like ids=3&ids=1&ids=2
However the DefaultModelBinder will turn both payloads into an array like [1,2,3].
I am not sure why it's assuming I want to automatically sort (I could see a use-case where that could be useful) but my default assumption is that it would work like List<int> and maintain the order, in fact I would make the assumption that SortedSet would guarantee the order was maintained, whereas I would assume List may not.
Version of Microsoft.AspNetCore.Mvc or Microsoft.AspNetCore.App or Microsoft.AspNetCore.All:
Microsoft.AspNet.Mvc.5.2.6 (.NET 4.52)

Sorry, its late and I was confusing the word "Sorted" with "Ordered"


New York City 88th Precinct Station Calls for Services

Someone has requested help on a data project:
Submission notes
Looking for Calls for Services in NYC, NY.
Location
New York Police Department 88th Precinct Station - NY
Requirements
Calls for Services
How to help
Leave a comment if you'd like to help. Do you have ideas, questions, or need any more information to get started?

Duplicate of #23


"Loop + Pagination" Parameters with Breakpoints doesnt work

Example code:
var mySwiper = new Swiper('.swiper-container', {
        loop: true,
        pagination: '.swiper-pagination',
        slidesPerView: 4,
        slidesPerGroup: 4,
        breakpoints: {
            480: {
                slidesPerView: 1,
                slidesPerGroup: 1
            },
            767: {
                slidesPerView: 2,
                slidesPerGroup: 2
            },
            1200: {
                slidesPerView: 3,
                slidesPerGroup: 3
            }
        }
    });

it works if I remove the loop parameter. But, i use loop paremeter, plugin doesn't work.
Console error: "Uncaught TypeError: Cannot read property 'classList' of undefined".
Can you fix this please?

Hello, can u here me ?

Breakpoints is not supported with loop at the moment

This issue seems to have reappeared with release of v4 :/ ...

Has indeed, 4.0.1 is affected anyways.

Actually, seems to work in 4.0.2 again.

Great, thanks for posting the update — I ended up building it locally with the latest code base and it worked, so figured it would be working in an upcoming release.


moveTo vs findShortestPath

Hello,
I'm currently using grid-engine in my project and I've encountered an issue related to the moveTo and findShortestPath methods.
In my application, I use findShortestPath to calculate and display the path to the user, and then use moveTo to move the character along what I believe is that path. However, I've noticed that moveTo takes into account blocked tiles and adjusts the path accordingly en route, while findShortestPath does not.
This discrepancy results in the path displayed to the user being different from the actual path the character takes.
I understand that moveTo internally calculates the path, but it seems this calculated path is not exposed to the user. Is there a way to access the path that moveTo calculates, or alternatively, make findShortestPath take into account blocked tiles in the same way moveTo does? I've read through the docs quite a bit, but still not clear to me how that would be implemented.
Any guidance or suggestions would be greatly appreciated.
Thank you for your time and for creating this useful library.

Hey @taylordragoo,
There should not be a discrepancy between the path determined by moveTo and that determined by findShortestPath when using the appropriate settings.
They use the same code under the hood. Here are the settings that moveTo uses:
https://github.com/Annoraaq/grid-engine/blob/master/src/Movement/TargetMovement/TargetMovement.ts#L325-L342
Maybe you did not set the collision group of the character or something?
One other difference is that while the character is moving along the path and the path becomes suddenly blocked, it might calculate a new path based on your setting for pathBlockedStrategy.
That being said, it is not possible  to expose the path of moveTo to the user.
If you want to separate path calculation and movement, you can calculate the path with findShortestPath and then use addQueueMovement to add all movements of that path to the movement queue of the character. That has also the advantage of only calculating the path once and not twice.

Thanks for the explanation @Annoraaq! I was definitely starting to think more likely than not it's an issue with my settings. I'll dig deeper into that and see what I can figure out. I also hit you up on discord, I'll move any other support requests to discord. Probably okay to close this issue.


Error: No permission handler detected - after updating to RN 0.63.3 (ios)

After updating project to react native 0.63.3 from 0.62 I had to solve an issue on .h files doing this (only because of ios, android works fine): StackOverflow
I solved it but now I have this problem with this library on ios (Before updating everything was working very well):

This is my PodFile
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
require_relative '../node_modules/react-native/scripts/react_native_pods'

platform :ios, '10.0'

target 'MyApp' do
  config = use_native_modules!
  use_react_native!(:path => config["reactNativePath"])

  permissions_path = '../node_modules/react-native-permissions/ios'

  pod 'Permission-Camera', :path => "#{permissions_path}/Camera.podspec"
  pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse.podspec"
  pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary.podspec"
  pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary.podspec"

  target 'MyAppTests' do
    inherit! :complete
    # Pods for testing
  end

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
  use_flipper!
  post_install do |installer|
    flipper_post_install(installer)
  end
end

target 'MyApp-tvOS' do
  # Pods for MyApp-tvOS

  target 'MyApp-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end
end

This is my Info.split
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>UIAppFonts</key>
	<array>
		<string>Zocial.ttf</string>
		<string>SimpleLineIcons.ttf</string>
		<string>Octicons.ttf</string>
		<string>MaterialIcons.ttf</string>
		<string>MaterialCommunityIcons.ttf</string>
		<string>Ionicons.ttf</string>
		<string>Foundation.ttf</string>
		<string>Fontisto.ttf</string>
		<string>FontAwesome5_Solid.ttf</string>
		<string>FontAwesome5_Regular.ttf</string>
		<string>FontAwesome5_Brands.ttf</string>
		<string>FontAwesome.ttf</string>
		<string>Feather.ttf</string>
		<string>EvilIcons.ttf</string>
		<string>Entypo.ttf</string>
		<string>AntDesign.ttf</string>
	</array>
	<key>CFBundleDevelopmentRegion</key>
	<string>en</string>
	<key>CFBundleDisplayName</key>
	<string>MyApp</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>$(PRODUCT_NAME)</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>1.0</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>1</string>
	<key>NSLocationWhenInUseUsageDescription</key>
	<string></string>
	<key>NFCReaderUsageDescription</key>
	<string>NFCReader</string>
  <key>NSPhotoLibraryUsageDescription</key>
  <string>App would like access to your photo gallery</string>
  <key>NSCameraUsageDescription</key>
  <string>App would like to use your camera</string>
  <key>NSPhotoLibraryAddUsageDescription</key>
  <string>App would like to save photos to your photo gallery</string>
  <key>NSCameraUsageDescription</key>
  <string>App would like to use your camera.</string>
  <key>NSLocationWhenInUseUsageDescription</key>
  <string>App would like to use your geolocation.</string>
  <key>NSMicrophoneUsageDescription</key>
  <string>App would like to use your microphone (for videos)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>NSAppTransportSecurity</key>
	<dict>
		<key>NSAllowsArbitraryLoads</key>
		<true/>
		<key>NSExceptionDomains</key>
		<dict>
			<key>localhost</key>
			<dict>
				<key>NSExceptionAllowsInsecureHTTPLoads</key>
				<true/>
			</dict>
		</dict>
	</dict>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIRequiredDeviceCapabilities</key>
	<array>
		<string>armv7</string>
	</array>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UIViewControllerBasedStatusBarAppearance</key>
	<false/>
</dict>
</plist>

I tried deleting DerivedData, removing react native cache, pod install and nothing worked.
I have to emphasize that before doing the stackoverflow thing the app was working, I think there is the problem. Before that reset, my podfile was like this:
platform :ios, '9.0'
require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'

def add_flipper_pods!(versions = {})
  versions['Flipper'] ||= '~> 0.37.0'
  versions['DoubleConversion'] ||= '1.1.7'
  versions['Flipper-Folly'] ||= '~> 2.2'
  versions['Flipper-Glog'] ||= '0.3.6'
  versions['Flipper-PeerTalk'] ||= '~> 0.0.4'
  versions['Flipper-RSocket'] ||= '~> 1.1'

  pod 'FlipperKit', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FlipperKitLayoutPlugin', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/SKIOSNetworkPlugin', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FlipperKitUserDefaultsPlugin', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FlipperKitReactPlugin', versions['Flipper'], :configuration => 'Debug'

  # List all transitive dependencies for FlipperKit pods
  # to avoid them being linked in Release builds
  pod 'Flipper', versions['Flipper'], :configuration => 'Debug'
  pod 'Flipper-DoubleConversion', versions['DoubleConversion'], :configuration => 'Debug'
  pod 'Flipper-Folly', versions['Flipper-Folly'], :configuration => 'Debug'
  pod 'Flipper-Glog', versions['Flipper-Glog'], :configuration => 'Debug'
  pod 'Flipper-PeerTalk', versions['Flipper-PeerTalk'], :configuration => 'Debug'
  pod 'Flipper-RSocket', versions['Flipper-RSocket'], :configuration => 'Debug'
  pod 'FlipperKit/Core', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/CppBridge', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FBCxxFollyDynamicConvert', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FBDefines', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FKPortForwarding', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FlipperKitHighlightOverlay', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FlipperKitLayoutTextSearchable', versions['Flipper'], :configuration => 'Debug'
  pod 'FlipperKit/FlipperKitNetworkPlugin', versions['Flipper'], :configuration => 'Debug'
end

# Post Install processing for Flipper
def flipper_post_install(installer)
  installer.pods_project.targets.each do |target|
    if target.name == 'YogaKit'
      target.build_configurations.each do |config|
        config.build_settings['SWIFT_VERSION'] = '4.1'
      end
    end
  end
end

target 'MyApp' do
  # Pods for MyApp
  pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"
  pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
  pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
  pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
  pod 'React', :path => '../node_modules/react-native/'
  pod 'React-Core', :path => '../node_modules/react-native/'
  pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
  pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
  pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
  pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
  pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
  pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
  pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
  pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
  pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
  pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
  pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
  pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'

  pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
  pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
  pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
  pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
  pod 'ReactCommon/callinvoker', :path => "../node_modules/react-native/ReactCommon"
  pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
  pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga', :modular_headers => true

  pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
  pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
  pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'

  permissions_path = '../node_modules/react-native-permissions/ios'

  pod 'Permission-Camera', :path => "#{permissions_path}/Camera.podspec"
  pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse.podspec"
  pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary.podspec"
  pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary.podspec"

  target 'MyApp' do
    inherit! :complete
    # Pods for testing
  end

  use_native_modules!

  # Enables Flipper.
  #
  # Note that if you have use_frameworks! enabled, Flipper will not work and
  # you should disable these next few lines.
  add_flipper_pods!
  post_install do |installer|
    flipper_post_install(installer)
  end
end

target 'MyApp-tvOS' do
  # Pods for MyApp-tvOS

  target 'MyApp-tvOSTests' do
    inherit! :search_paths
    # Pods for testing
  end
end

My enviroment:
"react": "16.11.0",
"react-native": "^0.63.3",
"react-native-permissions": "^2.2.2",

@BravenxX Hi. Did you deleted your DerivedData, like adviced?

@zoontek Yep I did it. And I did it again fallowing this: I deleted DerivedData folder -> then Deleted Podfile.lock -> npm i -> Reseted podfile file and added RNPermissions -> pod install -> npx react-native run-ios -> it shows the same error on the screen (no error in node console tho)

@BravenxX Could you take a screenshot of the installed Pods? It's here:

Sure, here:

Everything seems here (Permission-X). What exactly did you do to solve the headers issue?
This error happen when we can't find any header files.
Try to run pod deintegrate, trash the workspace file, the Pods folder and run pod update again.

@zoontek Well.. It was completely my fault, I was deleting DeriveData from the project path not the xcode path. I deleted it, did every step again and it worked. Thanks for your help tho I really appreciate your willingness to help me.


Ability to clone shape

thanks to this PR https://github.com/scanny/python-pptx/pull/307

Could this finally get merged? With this we can not only duplicate shapes but also slides!

I vote for this new method if one is able to copy/clone that shape from a layout to a slide as well (but that should be possible?)
In particular this may overcome a serious of issues with tables, not only the display and themeing but the layout of cells, sizes etc as well!

I vote for this new method if one is able to copy/clone that shape from a layout to a slide as well (but that should be possible?)
In particular this may overcome a serious of issues with tables, not only the display and themeing but the layout of cells, sizes etc as well!

The last time I tested those changes here they weren't working for all shapes. There are issues for this repo that are over 6 years old looking for a solution to this but all the problems are deeply routed in the library


include Linkdependencies

Added changes to the application properties file under application conf to include a new property.
Changed the impactUtilities.groovy to include the linkdependencies

Hi Dennis - Print the buildFile to the output in verbose mode and enable it for MortgageApplication by default has been committed. Thanks


authentication failed due to: access_denied

Hi,
I have deployed this app on Azure as a webapp, after modifying the below in app.js
//app.listen(3000);
const port = process.env.PORT || 1337;
app.listen(port);

I am able to view the "Welcome! please login"page, and once hit the "log in" button, it takes me to the Microsoft login page. When I have entered the password, the page redirects me to  the "Welcome! please login" page
But, I am expecting some success messages as well in the log, however I get the below. Please can you help me understand the error, and what needs to be done to resolve it.
FYI, I am using the same outlook mail-id that is part of the active-directory.
The logs are as seen on the stream-log of the app.

[23/May/2019:11:20:53 +0000] "GET /login HTTP/1.1" 302 0 "https://myreflection.azurewebsites.net/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/00.0.3729.169 Safari/537.36"
2019-05-23T11:21:21.130019197Z 11:21:21 0|app  | {"name":"AzureAD: OIDC Passport Strategy","hostname":"8sss1e3ab5","pid":40,"level":30,"msg":"Error received in the response was:  access_denied","time":"2019-05-23T11:21:21.128Z","v":0}
2019-05-23T11:21:21.155627876Z 11:21:21 0|app  | {"name":"AzureAD: OIDC Passport Strategy","hostname":"8sss3ab5","pid":40,"level":30,"msg":"authentication failed due to: access_denied","time":"2019-05-23T11:21:21.136Z","v":0}
2019-05-23T11:21:21.185887077Z 11:21:21 0|app  | ::ffff:<IP_ADDRESS> - - [23/May/2019:11:21:21 +0000] "POST /auth/openid/return HTTP/1.1" 302 46 "https://login.microsoftonline.com/common/federation/oauth2" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/00.0.3729.169 Safari/537.36"
2019-05-23T11:21:21.393253272Z 11:21:21 0|app  | ::ffff:<IP_ADDRESS> - - [23/May/2019:11:21:21 +0000] "GET / HTTP/1.1" 304 - "https://login.microsoftonline.com/common/federation/oauth2" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/00.0.3729.169 Safari/537.36

Closing as we are archiving this sample


Build with travis CI on every pull request or commit

This enhancement will automatic check and test the changes done. It will improve the testing capability of component as build can be tested at every pull request before commit.
To enable this feature , you will have to login in https://travis-ci.org/. using github account
and enable the travis feature for the tinyxml2 library.
It is simple and a pictorial guide is avaliable on https://travis-ci.org/.
You can even see the build logs of each build there.
(I have attached screenshot)
Many other github projects use this feature. Hope it will help tinyxml2 too.

I will delete previous pull request when this is closed.( I hope I got it right this time).

Looks good.

This is cool.

Super cool!!! This PR https://github.com/leethomason/tinyxml2/pull/380 is the first one to have been CI'ed.

You guys can also use AppVeyor for CI on windows.

You guys can also use AppVeyor for CI on windows.

See #383.


don't descend into our library of math functions

fixes #30

thats a lot of really slow CIs.

I think isleaf should be part of the API.
isleaf(f) = true means that if f is called with x<tag>, then return f(x)<tag> instead of trying f(x<tag>).
So if someone has a function like:
function g(a)
   a = x[1]
   while a < 1
       a+= rand()
    end
    a
end

for whatever reason
and they then want to sparsity detect
f(y, x) = y .= g.(x)

Then they can set SparsityDetection.isleaf(::typeof(g)) = true and it will work.

Wouldn't they need to also give you what the sparsity of that function is in the API?

Yes, but it can be optional in case of Jacobian. (because you can just say the output depends on all the inputs).. But you're right they would have to say something about it for Hessian.
Well there is a way to say that too SparsityDetection.linearity

oh it's only for scalar functions?

Yeah well that's the easiest thing to provide an API for right away. We currently don't have decent ways of converting sparsity matrix into our metadata (ProvinanceSet or TermCombination although that should be not so hard to do).
Let's hold this thought and if there is a real need for treating sub functions as blackboxes of known sparsity, then we can come back to this idea.


Timeunit property not taken into account.

How to reproduce:
curl http://<IP_ADDRESS>:9090/metrics
will always give timestamp in microseconds no matter what unit is set to.
Preliminary digging of the problem:
There is a typo in Sensition.SENSISION_TIME_UNIT
Even after fixing this, there seems to have hardcoded microseconds conversion (* 1000).
A class similar in spirit to warp10.continuum.TimeSource would be useful in sensision.
In Sensision.update method timestamp parameter should be in nanoseconds to avoid losing precision,
also need to convert to the unit used when forcing timestamp.

TimeSource is a best effort solution for generating nanosecond absolute timestamps. It is still sensitive to drifts and may need periodic recalibrations.
Please open another issue for integrating a nanosecond time source in Sensision.

Thanks for the fix.


Generate Alias for RLWE, ModArith, and Polynomial

Check https://github.com/google/heir/pull/1130#issuecomment-2508866775
Cc @j2kun Definitely worth a blog post. Never seen a tutorial on this.
With this change, --mlir-to-openfhe-bgv result would be much cleaner.
Though a lot of tests failed due to this change...Can be mitigated by --mlir-print-local-scope
!Z463187969_i32_ = !mod_arith.int<463187969 : i32>
#ring_Z463187969_i32_1_x8_ = #polynomial.ring<coefficientType = !Z463187969_i32_, polynomialModulus = <1 + x**8>>
!rlwe_pt = !lwe.rlwe_plaintext<encoding = #lwe.polynomial_evaluation_encoding<cleartext_start = 16, cleartext_bitwidth = 16>, ring = #ring_Z463187969_i32_1_x8_, underlying_type = i16>
!rlwe_ct = !lwe.rlwe_ciphertext<encoding = #lwe.polynomial_evaluation_encoding<cleartext_start = 16, cleartext_bitwidth = 16>, rlwe_params = <ring = #ring_Z463187969_i32_1_x8_>, underlying_type = i16>
!rlwe_ct1 = !lwe.rlwe_ciphertext<encoding = #lwe.polynomial_evaluation_encoding<cleartext_start = 16, cleartext_bitwidth = 16>, rlwe_params = <dimension = 3, ring = #ring_Z463187969_i32_1_x8_>, underlying_type = i16>
module {
  func.func @func(%arg0: !openfhe.crypto_context, %arg1: !rlwe_ct, %arg2: !rlwe_ct) -> !rlwe_ct {
    %0 = openfhe.mul_no_relin %arg0, %arg1, %arg1 : (!openfhe.crypto_context, !rlwe_ct, !rlwe_ct) -> !rlwe_ct1
    %1 = openfhe.relin %arg0, %0 : (!openfhe.crypto_context, !rlwe_ct1) -> !rlwe_ct
    return %1 : !rlwe_ct
  }
  func.func @func__encrypt__arg0(%arg0: !openfhe.crypto_context, %arg1: i16, %arg2: !openfhe.public_key) -> !rlwe_ct {
    %splat = tensor.splat %arg1 : tensor<8xi16>
    %0 = arith.extsi %splat : tensor<8xi16> to tensor<8xi64>
    %1 = openfhe.make_packed_plaintext %arg0, %0 : (!openfhe.crypto_context, tensor<8xi64>) -> !rlwe_pt
    %2 = openfhe.encrypt %arg0, %1, %arg2 : (!openfhe.crypto_context, !rlwe_pt, !openfhe.public_key) -> !rlwe_ct
    return %2 : !rlwe_ct
  }

Care to add a test that the aliases are printed correctly? It is aesthetic truly, but a small one might be good to ensure someone doesn't accidentally remove this feature.

Added three alias.mlir test. Fixed the lower_mul test as it can not use mlir-print-local-scope as affine_map is already an alias. lower_ntt_perf_runner should be fixed in another PR.

Rebased to pass the CI.

@ZenithalHourlyRate Do you know what's up with the trailing underscores in the alias names?

MLIR wants to ensure the name does not conflict with auto-generated one ending with digits so added a underscore to sanitize it
https://github.com/llvm/llvm-project/blob/637a1ae85538554b98973861802e842fc30d0f91/mlir/lib/IR/AsmPrinter.cpp#L1030-L1036

I might have found a bug/unexpected alias while playing around with RNS stuff:
!a = !mod_arith.int<463187969 : i32>
!b = !mod_arith.int<463187970 : i32>
!c = !mod_arith.int<463187971 : i32>
!rns = !rns.rns<!a, !b, !c>
#ring = #polynomial.ring<coefficientType = !rns, polynomialModulus = <1 + x**8>>
!rlwe_ct = !lwe.rlwe_ciphertext<encoding = #lwe.polynomial_evaluation_encoding<cleartext_start = 16, cleartext_bitwidth = 16>, rlwe_params = <ring = #ring>, underlying_type = tensor<8xi16>>
module {
  func.func @dot_product(%arg0: !rlwe_ct, %arg1: !rlwe_ct) -> !rlwe_ct {
    %0 = bgv.add %arg0, %arg1 : !rlwe_ct
    return %0 : !rlwe_ct
  }
}

roundtrips to
!Z463187970_i32_ = !mod_arith.int<463187970 : i32>
!Z463187971_i32_ = !mod_arith.int<463187971 : i32>
!ring_Z463187969_i32_ = !mod_arith.int<463187969 : i32>
!rlwe_ct = !lwe.rlwe_ciphertext<encoding = #lwe.polynomial_evaluation_encoding<cleartext_start = 16, cleartext_bitwidth = 16>, rlwe_params = <ring = <coefficientType = !rns.rns<!ring_Z463187969_i32_, !Z463187970_i32_, !Z463187971_i32_>, polynomialModulus = <1 + x**8>>>, underlying_type = tensor<8xi16>>
module {
  func.func @dot_product(%arg0: !openfhe.crypto_context, %arg1: !rlwe_ct, %arg2: !rlwe_ct) -> !rlwe_ct {
    %0 = openfhe.add %arg0, %arg1, %arg2 : (!openfhe.crypto_context, !rlwe_ct, !rlwe_ct) -> !rlwe_ct
    return %0 : !rlwe_ct
  }
}

Notice how the first mod_arith.int in the RNS somehow gets the alias !ring_... rather than !Z......
Obviously not a showstopper, but I figured I'd ask if either of you @ZenithalHourlyRate  or @j2kun knows a quick fix for this, rather than trying to figure this out myself :)

I'm looking into it.


fix(userspace/libsinsp): solve cmake link typo

What type of PR is this?
/kind bug
Any specific area of the project related to this PR?
/area build
Does this PR require a change in the driver versions?
What this PR does / why we need it:
Follow-up to my previous PR for fixing a typo. My bad 🤦 .
Which issue(s) this PR fixes:
Special notes for your reviewer:
Does this PR introduce a user-facing change?:
NONE

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: jasondellaluce
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [jasondellaluce]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

LGTM label has been added.  Git tree hash: 6096d58452ad643836409e1f48f1cf70091fbc59

/milestone 0.13.0

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: Andreagit97, jasondellaluce, leogr
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [Andreagit97,jasondellaluce,leogr]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


Add support for Python 3.12

The CI now runs the tests against Python 3.12 as well.
The Dockerfile for arm64 was added to the repository to run the tests for python 3.12 in arm64.

Most of the changes in this draft need to be pushed in https://github.com/frequenz-floss/frequenz-repo-config-python instead, excepts for dependencies updates.

Most of the changes in this draft need to be pushed in frequenz-floss/frequenz-repo-config-python instead, excepts for dependencies updates.

There is already a ticket for it https://github.com/frequenz-floss/frequenz-repo-config-python/issues/168

Auto-merge is enabled. So please do not approve it if changes are required


XandyBot v1.0.0

Achieved minimum viable product: sending quotes everyday at 8 AM with a message mentioning @everyone
Currently running at 6 servers total: 1 real client and 5 test servers

nice

delete branch?


[cli] add sub-command to print more informations for the ipaddress

This commit adds a new sub-command for ipaddr to print more informations .

Update the doxygen in cli/README.md too? @zwx1995esp


About non-docker installation

Can someone present an installing instruction for non -docker user? I want to deploy one but can't run docker.

:clown_face:


 I don't get the same behaviour on macOS 10.12.
I was able to get it to work by by disabling TLS verification (which you don't want to do):
// NewClient creates a new Google Drive client
func NewClient(config *config.Config, cache *Cache, refreshInterval time.Duration, rootNodeID string) (*Client, error) {
       t := &http.Transport{
                TLSClientConfig: &tls.Config{
                        InsecureSkipVerify:       true,
                },
        }

        httpClient := &http.Client{
                Timeout: time.Second * 60,
                Transport: t,
        }

        client := Client{

This is a dupe of the following:
https://github.com/dweidenfeld/plexdrive/issues/280
https://github.com/dweidenfeld/plexdrive/issues/205
https://github.com/dweidenfeld/plexdrive/issues/17
Not sure why they keep getting closed, fairly confident this is an issue that is going to bite anyone on macOS 10.11.

I suspect with some tweaking of cipher suites this could be made to work, this is the output of gotlsscan:
 ~ gotlsscan -host www.googleapis.com | grep -v NOT
Testing SSL30 (DISABLED)
Testing TLS1.0
	TLS_RSA_WITH_3DES_EDE_CBC_SHA                 [OK]
	TLS_RSA_WITH_AES_128_CBC_SHA                  [OK]
	TLS_RSA_WITH_AES_256_CBC_SHA                  [OK]
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          [OK]
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          [OK]
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            [OK]
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            [OK]
Testing TLS1.1
	TLS_RSA_WITH_3DES_EDE_CBC_SHA                 [OK]
	TLS_RSA_WITH_AES_128_CBC_SHA                  [OK]
	TLS_RSA_WITH_AES_256_CBC_SHA                  [OK]
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          [OK]
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          [OK]
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            [OK]
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            [OK]
Testing TLS1.2
	TLS_RSA_WITH_3DES_EDE_CBC_SHA                 [OK]
	TLS_RSA_WITH_AES_128_CBC_SHA                  [OK]
	TLS_RSA_WITH_AES_256_CBC_SHA                  [OK]
	TLS_RSA_WITH_AES_128_GCM_SHA256               [OK]
	TLS_RSA_WITH_AES_256_GCM_SHA384               [OK]
	TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA          [OK]
	TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA          [OK]
	TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA            [OK]
	TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA            [OK]
	TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256         [OK]
	TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256       [OK]
	TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384         [OK]
	TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384       [OK]
	TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305          [OK]
	TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305        [OK]

I don’t understand why you run the app like that ?

@lxt2 Could you please add a command line option like --inscure-tls and create a PR, so that everyone can benefit from your changes?
Thanks :)

I am getting the same error on unraid
/usr/local/bin/plexdrive mount -o allow_other -v 5 /mnt/plexdriveencrypted/
[USR/LOCAL/BIN/PLEXDRIVE] [2018-04-12 13:41] WARNING: Could not get object root from API

Hi @felixbuenemann, I'm new to your project and have been spending some time testing it on Ubuntu and OSX (long-time rclone user). I'm particularly interested in some of your implementation choices to optimize for Plex usage, since I do find rclone to be a bit cumbersome and not as performant as I would like for my use case.
Anyway, I have been running into the same issues as @lxt2 with the OSX implementation (Ubuntu working great so far)... Basically, if I set up a plexdrive mount from scratch, it builds the initial cache, and the filesystem gets mounted just fine. However, if I stop plexdrive and then try to re-mount, I get the errors shown in the trace output attached below.
Another interesting (new) detail on this issue is that if I remove ~/.plexdrive/token.json and then re-mount to generate a new token, everything works! That is up until I stop the mount, and then the issue will of course repeat... This does make me think that the code-path differences between the initial generation of an oauth token vs re-using an existing token could give us some insight into what is going on here.
This also appears to impact multiple versions of OSX. Here is what I'm running:

Plexdrive Version: 5.1.0
MacOSX Version: 10.14.6

Any thoughts on this issue? I would be happy to dig into the code and do some more testing if you have some ideas on where in the code-base I might start. Please let me know! Thanks :)
$ ./plexdrive -v 4 --root-node-id=1fBAzobjNo-3xzSlL4VPQMRc6A6wbByK1 -o allow_other mount /mnt/plexdrive
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : verbosity            : TRACE
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : root-node-id         : 1fBAzobjNo-3xzSlL4VPQMRc6A6wbByK1
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : drive-id             :
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : config               : /Users/jeremy/.plexdrive
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : cache-file           : /Users/jeremy/.plexdrive/cache.bolt
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : chunk-size           : 10M
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : chunk-load-threads   : 4
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : chunk-check-threads  : 4
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : chunk-load-ahead     : 7
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : max-chunks           : 16
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : refresh-interval     : 1m0s
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : fuse-options         : allow_other
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : UID                  : 501
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : GID                  : 20
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : umask                : ----------
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Opening cache connection
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Authorizing against Google Drive API
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Loading token from cache
[PLEXDRIVE] [2020-04-13 11:35] TRACE  : Got token from cache {ya29.a0Ae4lvC1t8_NTAp2bU87AykFgUqJktQXCTx_yVlaQQEK02rpx1XMxTZzLyhTHRQpffhQ_p84wmV5gBIYoDnBdYuRZ_L7M02Is-v77ibZjfmKgZYnO6Luu4sAJUtyDWi0mTQ_Lc2m_Ugq2a96kutxr-_GrdQOk-Jj0mtQ Bearer 1//06bbXlhnwSesECgYIARAAGAYSNwF-L9IrKVPUUHENjMeY9kmjwqJ23EeOMVBamKe_n-GCfLCrtKl2Zw6Y0aj3BmbUxSbSKOK1Sdw 2020-04-13 11:10:45.195925 -0700 PDT <nil>}
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Checking for changes
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Getting start page token from cache
[PLEXDRIVE] [2020-04-13 11:35] TRACE  : Got start page token 3197799
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Last change id found, continuing getting changes (3197799)
[PLEXDRIVE] [2020-04-13 11:35] INFO   : First cache build process started...
[PLEXDRIVE] [2020-04-13 11:35] INFO   : Mounting path /mnt/plexdrive
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Getting root from API
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Get "https://www.googleapis.com/drive/v3/changes?alt=json&fields=nextPageToken%2C+newStartPageToken%2C+changes%28changeType%2C+removed%2C+fileId%2C+file%28id%2C+name%2C+mimeType%2C+modifiedTime%2C+size%2C+explicitlyTrashed%2C+parents%2C+capabilities%2FcanTrash%29%29&includeCorpusRemovals=true&includeItemsFromAllDrives=true&pageSize=1000&pageToken=3197799&prettyPrint=false&supportsAllDrives=true": Post "https://accounts.google.com/o/oauth2/token": net/http: TLS handshake timeout
[PLEXDRIVE] [2020-04-13 11:35] WARNING: Could not get changes
[PLEXDRIVE] [2020-04-13 11:35] INFO   : First cache build process finished!
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : Get "https://www.googleapis.com/drive/v3/files/1fBAzobjNo-3xzSlL4VPQMRc6A6wbByK1?alt=json&fields=id%2C+name%2C+mimeType%2C+modifiedTime%2C+size%2C+explicitlyTrashed%2C+parents%2C+capabilities%2FcanTrash&prettyPrint=false&supportsAllDrives=true": Post "https://accounts.google.com/o/oauth2/token": net/http: TLS handshake timeout
[PLEXDRIVE] [2020-04-13 11:35] WARNING: Could not get object 1fBAzobjNo-3xzSlL4VPQMRc6A6wbByK1 from API
[PLEXDRIVE] [2020-04-13 11:35] DEBUG  : cannot obtain root node: Could not get root object


Feature/fix firebase analytics without ad support

Fixed the path for folders required for enabling the FirebaseWithoutAdIdSupport.
@AdamEssenmacher do I need to change anything else to get this fix out asap?

Thanks for the PR! It looks like this has probably been broken since 8.8 :(
This seems pretty straightforward so I should be able to run and publish a quick build.
Are you running into any specific issues that this fixes? I'd love to understand what problem(s) this was causing.

Thanks for the PR! It looks like this has probably been broken since 8.8 :(
This seems pretty straightforward so I should be able to run and publish a quick build.
Are you running into any specific issues that this fixes? I'd love to understand what problem(s) this was causing.

The reason why I discovered this was when I was setting the property 'FirebaseWithoutAdIdSupport' to True, the build was failing. Now, in our case it is actually not an issue, because we can just omit the property entirely and it will find the correct folder since the new name is the same as the old one WITH ad support. But it will be a problem if you are expecting the ad support to be enabled.
You can work around it by overriding the target, but I think it makes more sense to have it working as it was intended 😄


[BUG] OpenSearch 2.11 401 errors even though valid Authorization header is sent

Describe the bug
After upgrade from 2.10 to 2.11, we are getting 401 errors with reprompt for login when using a browser to make requests.
To Reproduce
Steps to reproduce the behavior:

Go to any URL such as https://host.example.com:9200/_cat_nodes
Login (BasicAuth username/password - internal user)
Page is displayed
Refresh the page
User is re-prompted to login again
Page is displayed
Wait 5 minutes
Refresh the page
Page is displayed
Refresh the page
User is re-prompted to login again

Expected behavior
User should not be re-prompted for login over and over again.
Plugins
Stock set of plugins included with 2.11 "opensearch" package from repo:
https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/yum
Screenshots
N/A
Host/Environment (please complete the following information):

OS: Rocky Linux
Version: 9

Additional context
We have a 7-node cluster with 3 coord-only nodes and 4 dim nodes.
The problem didn't occur with 2.10... and started when the 2.11 update came in during a "yum upgrade".
I've reinstalled the cluster from scratch with 2.10 and the problem does not occur.
I've reinstalled the cluster from scratch with 2.11 and the problem occurs.
Using curl with username/password or with the admin cert works without issue in both 2.10 and 2.11.
When using Chrome and watching the requests, I can see the exact same Authorization header being sent during
a successful request, and when a request is made where the server returns a 401 error causing re-prompt for username/password.
I've tried both Chrome and Edge and they both see the same 401 errors.
It seems that if you wait for some number of minutes (5+) between page refreshes, you can avoid the bug, but that is not a suitable workaround.  This oddity makes me think that there is some new "rate limit" sort of setting that is needed for 2.11.

Hi @ed-ud , when using a browser to query opensearch directly, it will always challenge for a username and password since the URL does not contain username and password. After you fill out the prompt it will send the Authorization header with the request to OpenSearch. There is no session in the browser when querying opensearch directly, unlike when using OpenSearch dashboards and logging in with username and password. If you are using OpenSearch Dashboards, there is a Dev Tools section where you can make repeat requests against OpenSearch without having to re-login.
I don't believe the browser stores a cookie after you fill out the challenge box to remember the user on subsequent requests directly to <opensearch_host>:9200. Is it possible that there was a change in chrome that affected the behavior?

Yes, the browser does retain Basic Authentication credentials and submits an Authorization header with every request after login for the same URL or URL prefix, without re-prompting the user. That's just the way Basic Authentication works: https://datatracker.ietf.org/doc/html/rfc7617#section-2.2
As I said, the browser is sending the same Authorization header on successive requests, but in 2.11, OpenSearch ignores the valid header and replies with a 401 error (which causes the browser to re-prompt for credentials).  OpenSearch 2.10 did not do this on successive requests with a valid Authorization header.

[Triage] Hi @ed-ud, thank you for filing this issue. Looks like this could be an unintended change as part of 2.11 or that there is some other issue causing this behavior. Either way, someone will be able to look into this and hopefully identify the cause and fix.
Action items:

[ ] Determine cause of behavior & whether it is expected
[ ] Correct any introduced bugs

Could be related: https://github.com/opensearch-project/OpenSearch-Dashboards/issues/5562#issuecomment-1836925336

Still happening in 2.15.0


Add Hasura to Platforms - PaaS

Project or Product name:
Hasura
Is it open source? (if you are tempted to say partially, please answer no):
No
What are the best URL(s) for it? Repo and homepage (if different) for open source, product homepage for closed source?:
https://hasura.io
What one category does it best belong in?:
Platform - PaaS
What's the URL for the best logo (and it needs to include the name)?:
https://hasura.io/logo.svg
Anything else we need to know?:
Hasura is a CNCF Member

Added: https://landscape.cncf.io/selected=hasura


problem requesting migration from prod/phys03 to int/phys03

while testing, I hit this[1]. It is not a fully realistic use case since in real life we only migrate from prod/global to prod/phys03, yet I do not see why this should fail. Is this intentional ?
AFAICT the original dataset is fine (status=VALID)
https://cmsweb.cern.ch/das/request?view=list&limit=50&instance=prod%2Fphys03&input=%2FDYJetsToMM_EndcapMuFilter_M-50_TuneCP5_13TeV-madgraphMLM-pythia8_revering_noMissCsc%2Fmireveri-RunIISummer20UL18_DIGIPremix-a03b32ff24c52459822077d23898e252%2FUSER
A second order issue is that when using DBSClient, instead of the message in [1] I get a long wait followed by what looks like an error from FrontEnd i.e. a Proxy Error [2]
[1]
belforte@lxplus8s16/~> cat m.json
{
"migration_url": "https://cmsweb-prod.cern.ch:8443/dbs/prod/phys03/DBSReader",
"migraton_input": "/DYJetsToMM_EndcapMuFilter_M-50_TuneCP5_13TeV-madgraphMLM-pythia8_revering_noMissCsc/mireveri-RunIISummer20UL18_DIGIPremix-a03b32ff24c52459822077d23898e252/USER#96ecdc3d-86a0-4168-b32d-2f24f9ac6077"
}
belforte@lxplus8s16/~> curl --cert $X509_USER_PROXY  --key $X509_USER_PROXY -H "Content-Type: application/json"<EMAIL_ADDRESS>"https://cmsweb-testbed.cern.ch:8443/dbs/int/phys03/DBSMigrate/submit"
[{"error":{"reason":"dataset  has status ","message":"not allowed for migration","function":"dbs.migrate.SubmitMigration","code":125},"http":{"method":"POST","code":400,"timestamp":"2022-07-27 23:12:04.405434885 +0000 UTC m=+189113.409541442","path":"/dbs/int/phys03/DBSMigrate/submit","user_agent":"curl/7.70.0","x_forwarded_host":"cmsweb-testbed.cern.ch:8443","x_forwarded_for":"<IP_ADDRESS>","remote_addr":"<IP_ADDRESS>:60621"},"exception":400,"type":"HTTPError","message":"DBSError Code:125 Description:DBS Migration error Function:dbs.migrate.SubmitMigration Message:not allowed for migration Error: dataset  has status "}]belforte@lxplus8s16/~>

[2]
DBS3 exception: HTTP Error 502:
URL=https://cmsweb-testbed.cern.ch:8443/dbs/int/phys03/DBSMigrate/submit
Code=502
Message=Proxy Error
Header=HTTP/1.1 502 Proxy Error
Date: Wed, 27 Jul 2022 23:00:30 GMT
Server: Apache
Content-Length: 472
Content-Type: text/html; charset=iso-8859-1

Body=<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">

<title>502 Proxy Error</title>

Proxy Error

The proxy server received an invalid
response from an upstream server.

The proxy server could not handle the request POST /auth/complete/dbs/int/phys03/DBSMigrate/submit.

Reason: Error reading from remote server

Stefano, do you still experience original issue of migrating from prod/phys03 to int/phys03? The proxy has its own ticket https://github.com/dmwm/dbs2go/issues/72 and we should separate it from original one.

I have not checked lately. But you are correct that I put two issues in one. Let me try.

error is still there, you can easily reproduce it with the curl example at the top of this issue
belforte@lxplus757/migration> curl --cert $X509_USER_PROXY  --key $X509_USER_PROXY -H "Content-Type: application/json"<EMAIL_ADDRESS>"https://cmsweb-testbed.cern.ch:8443/dbs/int/phys03/DBSMigrate/submit"
[{"error":{"reason":"dataset  has status ","message":"not allowed for migration","function":"dbs.migrate.SubmitMigration","code":125},"http":{"method":"POST","code":400,"timestamp":"2022-08-16 14:22:00.433956492 +0000 UTC m=+8197.421742634","path":"/dbs/int/phys03/DBSMigrate/submit","user_agent":"curl/7.70.0","x_forwarded_host":"cmsweb-testbed.cern.ch:8443","x_forwarded_for":"<IP_ADDRESS>","remote_addr":"<IP_ADDRESS>:27458"},"exception":400,"type":"HTTPError","message":"DBSError Code:125 Description:DBS Migration error Function:dbs.migrate.SubmitMigration Message:not allowed for migration Error: dataset  has status "}]

maybe user datasets in PHY03 do not have production status ?
Yet looking in DAS at https://cmsweb.cern.ch/das/request?view=list&limit=50&instance=prod%2Fphys03&input=%2FDYJetsToMM_EndcapMuFilter_M-50_TuneCP5_13TeV-madgraphMLM-pythia8_revering_noMissCsc%2Fmireveri-RunIISummer20UL18_DIGIPremix-a03b32ff24c52459822077d23898e252%2FUSER the dataset status is VALID.
same from dasgoclient --query 'dataset dataset=/DYJetsToMM_EndcapMuFilter_M-50_TuneCP5_13TeV-madgraphMLM-pythia8_revering_noMissCsc/mireveri-RunIISummer20UL18_DIGIPremix-a03b32ff24c52459822077d23898e252/USER instance=prod/phys03' --json

Stefano, I looked at this failure and now I see the issue. I want to share details with you that you'll be aware. The block you provided in you migration request has 7075 parents (!!!), which needs to be look-up recursively from DBS server. First, I have no idea if having 7K parents has any meaning, but on my laptop it took 1h to get all parents. Said that, the blockparents API from my laptop takes 1sec for one block, but since we have 7K blocks and there is some concurrency in place the total time spent was 1h. I measured time of individual HTTP call on lxplus and it takes 0.04s instead of 1sec (which is significant boost), but making a simple math it will take around 300sec for 7K calls to resolve all parents which is our FE threshold. As such, I'm not surprised that this request fails with HTTP proxy error.
Now, since you know all details I need to understand how often we may have such crazy requests. If having O(10K) parents is "usual" pattern I need to change architecture of the code. So far I based on assumption that we have O(100) parents per block/dataset, but not 100 times more. While I will think about the architectural choices please let me know your feedback on this and similar use-cases (if we need to handle them). I'm really curious if this is an outlier or it is something we should support.

gut reaction: this is fully crazy and we need to think of a way to prevent it !!
But it is curious, so let's not rush to any conclusion and let me look. On the good side, there is no need to migrate from one phys03 to another in "real life", and no limit to users "creativity".
Surely do not spend time in trying to address this use case.
But the error comes immediately and is shared by other datasets, are you sure that it is due to the number of parents ? Or is there an accidental coincidence ?
Yeah.. I guess that I should try to migrate some "known, normal dataset from-to the same DBS instances to verify that it works and close the issue.

hmm.. looking up the block at the top, it  has 100 files, each file seem to have 3 parents.
Sort of "normal". Although this dataset suffers of the common problem of having lots of files because each file has few events.
And looking up parents via DAS I get 166 parent blocks.
Maybe I start to see the problem, those blocks have more parents, e.g. 61 for the first one. I guess user reprocessed her/his own initial MC dataset several times, mixing things so that in the end each final block likely depends on all blocks in "primal dataset". Most likely the overall amount of data to migrate can't be very large (all in all this horrendous structure somehow exists in prod/phys03 already). But the ancestor combinatorics is exploding.
That said, I do not know exactly how this dataset was created, so how likely is that we can have similar problem in datasets derived from production data which may surface when migrating from prod to phys03. Somehow we have parent/child relationships which "are too complex to fully list across generations".
It looks like we may be better off by simply identifying ancestor datasets and migrating those, so a block with 100 parent blocks will become a block with 2 parent datasets which may have a couple parents each at most.
Of course would be good to know which strategy is used by python server, which may have been tuned on real data, to avoid rediscovering things one at a time.
Given that our priority now is to put new server in production, I suggest not to worry about migrations which start from phys03, based on the simple rule "who knows what crazy stuff users have put in there, let's stick to Production output where at least we have some control on". And think carefully before evaluating possible different strategies for the new migration server, which may be somehow naive, but all in all appears to work.

Please see this explanation to address this issue: https://github.com/dmwm/dbs2go/issues/68#issuecomment-1218168500

closing as resolved before migration to k8s.


Package request: thorium

The kinda new Browser (thorium) is pretty cool and in a pretty good state. I have been using it for a week now and haven't had any bugs and it's pretty fast. so I was pretty bummed when i found out it's not in the nix repos and I have no idea how to make a nix package.. i have read everything and I feel like an idiot. That's why i am making this request. i have never done this before so if it helps i have the repo here: https://github.com/Alex313031/thorium

duplicate of #184823


Added GitHub token for authenticated GitHub API calls

So the problem was that we were fetching even when no token was present? We'll still gonna fetch on Travis I guess, I don't know if this will actually solve our quota issue.

No, we weren't using auth at all, this add authentication if the token exists (on Travis CI), a contributor won't have it locally, so I added a check before using it

Go for it!

great addition!


Allow concierge patch to composing from verification

Pull Request Test Coverage Report for Build 246

10 of 10 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 96.799%

Totals

Change from base Build 245:
0.01%

Covered Lines:
3175

Relevant Lines:
3280

💛  - Coveralls


Add a runtime error check for TableProvider::supports_filters_pushdown() (was  for "AND" operators does not work)

Describe the bug
Conditions with AND does not works, works only first (left) sub condition.
Schema example:
let schema = Schema::new(vec![
    Field::new("id", DataType::Int32, false),
    Field::new("title", DataType::Utf8, false),
    Field::new("cluster_builder_status", DataType::Utf8, false)]);

To Reproduce
Queuing SELECT * FROM my_catalog.my_schema.my_table WHERE id > 100; works as expected.
But  this: SELECT * FROM my_catalog.my_schema.my_table WHERE id > 100 AND id < 200; equal to first one and return ids greater than 200.
Expected behavior
Filtering records on engine side regarding conditions.
Additional context
Precondition: TableProvider implemented struct ExampleTableProvider with supports_filters_pushdown return value equal to Ok(vec![TableProviderFilterPushDown::Unsupported])
Data Source does not filter data, only limit and offset slice of the data.

This certainly sounds incorrect. Thank you for filing the issue @Denys-Bushulyak
Is there any chance you can provide a self contained reproducer?

I will try to create simple container, but not sure how fast it will be, maybe today.

tests/select_and_test.rs
use std::{any::Any, fmt, sync::Arc};
use axum::async_trait;
use datafusion::{
    arrow::{
        array::{ArrayRef, Int32Array, RecordBatch, StringArray},
        datatypes::{DataType, Field, Schema, SchemaRef},
        util::pretty::pretty_format_batches,
    },
    catalog::{schema::SchemaProvider, CatalogProvider},
    datasource::{TableProvider, TableType},
    execution::context::{SessionContext, SessionState},
    logical_expr::{Expr, TableProviderFilterPushDown},
    physical_plan::{
        stream::RecordBatchStreamAdapter, DisplayAs, DisplayFormatType, ExecutionPlan,
    },
};

#[tokio::test]
async fn test_selection_with_and() {
    let ctx = SessionContext::new();
    ctx.register_catalog("test", Arc::new(TestCatalogProvider()));
    let results = ctx
        .sql("SELECT * FROM test.default.test_table WHERE id > 1 AND id < 3")
        .await
        .unwrap()
        .collect()
        .await
        .unwrap();

    assert_eq!(
        &pretty_format_batches(&results).unwrap().to_string(),
        "+----+-------+\n| id | title |\n+----+-------+\n| 2  | b     |\n+----+-------+\n"
    );
}

struct TestCatalogProvider();
impl CatalogProvider for TestCatalogProvider {
    fn as_any(&self) -> &dyn std::any::Any {
        self
    }
    fn schema_names(&self) -> Vec<String> {
        vec!["default".to_string()]
    }
    fn schema(&self, _name: &str) -> Option<Arc<dyn SchemaProvider>> {
        Some(Arc::new(TestSchemaProvider))
    }
}

struct TestSchemaProvider;

#[async_trait]
impl SchemaProvider for TestSchemaProvider {
    fn as_any(&self) -> &dyn Any {
        self
    }
    fn table_names(&self) -> Vec<String> {
        vec!["test_table".to_string()]
    }
    async fn table(&self, name: &str) -> Option<Arc<dyn TableProvider>> {
        if name == "test_table" {
            Some(Arc::new(TestTableProvider {
                schema: Arc::new(Schema::new(vec![
                    Field::new("id", DataType::Int32, false),
                    Field::new("title", DataType::Utf8, false),
                ])),
            }))
        } else {
            None
        }
    }
    fn table_exist(&self, name: &str) -> bool {
        name == "test_table"
    }
}

struct TestTableProvider {
    schema: SchemaRef,
}

#[async_trait]
impl TableProvider for TestTableProvider {
    fn as_any(&self) -> &dyn Any {
        self
    }
    fn schema(&self) -> SchemaRef {
        self.schema.clone()
    }
    fn table_type(&self) -> TableType {
        TableType::View
    }
    async fn scan(
        &self,
        _state: &SessionState,
        projection: Option<&Vec<usize>>,
        _filters: &[Expr],
        _limit: Option<usize>,
    ) -> datafusion::error::Result<Arc<dyn ExecutionPlan>> {
        // schema for execution plan depends on the projection,
        // that's why we need to create a new schema
        let schema = {
            let fields = match projection {
                Some(projection) => projection
                    .iter()
                    .map(|index| self.schema.field(*index).clone())
                    .collect(),
                None => self.schema.fields().clone(),
            };
            Arc::new(Schema::new(fields))
        };

        Ok(Arc::new(TestExecutionPlan { schema }))
    }

    fn supports_filters_pushdown(
        &self,
        _filters: &[&datafusion::prelude::Expr],
    ) -> datafusion::error::Result<Vec<datafusion::logical_expr::TableProviderFilterPushDown>> {
        Ok(vec![TableProviderFilterPushDown::Unsupported])
    }
}

#[derive(Debug)]
struct TestExecutionPlan {
    schema: SchemaRef,
}

impl DisplayAs for TestExecutionPlan {
    fn fmt_as(&self, _t: DisplayFormatType, f: &mut fmt::Formatter) -> fmt::Result {
        write!(f, "TestExecutionPlan")
    }
}

impl ExecutionPlan for TestExecutionPlan {
    fn as_any(&self) -> &dyn Any {
        self
    }
    fn schema(&self) -> SchemaRef {
        self.schema.clone()
    }
    fn output_partitioning(&self) -> datafusion::physical_plan::Partitioning {
        datafusion::physical_plan::Partitioning::UnknownPartitioning(1)
    }
    fn output_ordering(&self) -> Option<&[datafusion::physical_expr::PhysicalSortExpr]> {
        None
    }
    fn children(&self) -> Vec<Arc<dyn ExecutionPlan>> {
        vec![]
    }
    fn with_new_children(
        self: Arc<Self>,
        _children: Vec<Arc<dyn ExecutionPlan>>,
    ) -> datafusion::error::Result<Arc<dyn ExecutionPlan>> {
        Ok(self)
    }
    fn execute(
        &self,
        _partition: usize,
        _context: Arc<datafusion::execution::context::TaskContext>,
    ) -> datafusion::error::Result<datafusion::physical_plan::SendableRecordBatchStream> {
        let batch = RecordBatch::try_new(
            self.schema.clone(),
            vec![
                Arc::new(Int32Array::from(vec![1, 2, 3])),
                Arc::new(StringArray::from(vec![
                    "a".to_string(),
                    "b".to_string(),
                    "c".to_string(),
                ])) as ArrayRef,
            ],
        );
        let fut = futures::future::ready(batch.map_err(|e| e.into()));

        let stream = futures::stream::once(fut);

        Ok(Box::pin(RecordBatchStreamAdapter::new(
            self.schema.clone(),
            stream,
        )))
    }
}

I have updated the title because it talks about "AND." Also, I am testing about "AND" too.

It seems it is because of this in your code:
fn supports_filters_pushdown(
        &self,
        _filters: &[&datafusion::prelude::Expr],
    ) -> datafusion::error::Result<Vec<datafusion::logical_expr::TableProviderFilterPushDown>> {
        Ok(vec![TableProviderFilterPushDown::Unsupported])
    }

It is actually important to consider the _filters argument as the function should return for each filter, whether it supports being pushed down or not. See the default implementation:
https://github.com/apache/arrow-datafusion/blob/2a490e48c924b76a2d389227c674b9f81b0404c8/datafusion/expr/src/table_source.rs#L89-L100
Because you returned a Vec with only a single element, later in the push_down_filter optimizer, when it is checking each filter, it seems it won't push down the first filter (id > 1) but pushes down the second (id < 3):
https://github.com/apache/arrow-datafusion/blob/2a490e48c924b76a2d389227c674b9f81b0404c8/datafusion/optimizer/src/push_down_filter.rs#L857-L865

Since zip will only be as long as the shortest

Pushing down the second kinda pushes it into the void hence only id > 1 took effect.
I think we need to improve the documentation of supports_filters_pushdown(...) to clarify the expected behaviour, to prevent footguns like this in the future. Not sure if we can do any checks in the push_down_filter optimizer side, but worth investigating? :thinking:

It seems it is because of this in your code:

Can confirm that commenting this function will make the test pass.

However I am still surprised at DataFusion's behavior:
The following is the generated physical plan:
CoalesceBatchesExec {
    input: FilterExec {
        predicate: BinaryExpr {
            left: Column {
                name: "id",
                index: 0,
            },
            op: Gt,
            right: Literal {
                value: Int32(1),
            },
        },
        input: RepartitionExec {
            input: TestExecutionPlan {
                schema: Schema {
                    fields: [
                        Field {
                            name: "id",
                            data_type: Int32,
                            nullable: false,
                            dict_id: 0,
                            dict_is_ordered: false,
                            metadata: {},
                        },
                        Field {
                            name: "title",
                            data_type: Utf8,
                            nullable: false,
                            dict_id: 0,
                            dict_is_ordered: false,
                            metadata: {},
                        },
                    ],
                    metadata: {},
                },
            },
            partitioning: RoundRobinBatch(
                32,
            ),
            state: Mutex {
                data: RepartitionExecState {
                    channels: {},
                    abort_helper: AbortOnDropMany(
                        [],
                    ),
                },
            },
            metrics: ExecutionPlanMetricsSet {
                inner: Mutex {
                    data: MetricsSet {
                        metrics: [],
                    },
                },
            },
            preserve_order: false,
        },
        metrics: ExecutionPlanMetricsSet {
            inner: Mutex {
                data: MetricsSet {
                    metrics: [],
                },
            },
        },
        default_selectivity: 20,
    },
    target_batch_size: 8192,
    metrics: ExecutionPlanMetricsSet {
        inner: Mutex {
            data: MetricsSet {
                metrics: [],
            },
        },
    },
}

We can see that the first filter cannot be pushed down so there is a FilterExec for it, but the second one, DataFusion didn't put it in the FilterExec, and didn't pushed it down:
TestTableProvider::scan() filters: []

That incorrect implementation of TableProvider::supports_filters_pushdown() seems to be an edge case that hasn't be covered by the code :D

@Jefffrey and @SteveLauC thank you both a lot for help!

Glad it solved the issue for you. :+1:
I'm gonna reopen this because I think we should at the very least enhance the documentation for supports_filters_pushdown, and maybe even introduce a runtime check somewhere to catch this behaviour (e.g. in push_down_filter optimizer)

I'm gonna reopen this because I think we should at the very least enhance the documentation for supports_filters_pushdown, and maybe even introduce a runtime check somewhere to catch this behaviour (e.g. in push_down_filter optimizer)

Yes, I agree thank you @Jefffrey for your help debugging this issue as well as the suggestion on first good issues
To make this easier for others to help with, here are some specific suggestions:

Update the comment on TableProvider::supports_filters_pushdown() to say that the returned vector much have the same size as the filters argument. https://github.com/apache/arrow-datafusion/blob/a1ae15826245097e7c12d4f0ed3425b25af6c431/datafusion/core/src/datasource/provider.rs#L167-L178

Add a check at the callsite that the vec returned from supports_filters_pushdown is the same size as the filters passed: https://github.com/apache/arrow-datafusion/blob/a1ae15826245097e7c12d4f0ed3425b25af6c431/datafusion/optimizer/src/push_down_filter.rs#L856-L859

Hi! I was a newbie at datafusion. I want to have a try! : )


how to use volar-plugins in vscode editor ?

i had installed @volar-plugins/prettyhtml, and added volar.config.js. but  it didn't  useful。

If the project in sub folder of your workspace, please make sure the volar.config.js is in the same directory with your tsconfig.
Please also check https://github.com/johnsoncodehk/volar-starter which has setup for @volar-plugins/prettyhtml already.


Fix addressable entity request

Fix request for AddressableEntity when using Key::Account, Key::Hash and Key::AddressableEntity.
We now store an AddressableEntity record under Key::AddressableEntity instead of Key::Hash. Also, under Key::Account we store a CLValue containing a Key::AddressableEntity which can be then used to get the addressable entity.
When using Key::Hash we first try to get the addressable entity by running a query for Key::AddressableEntity(PackageKindTag::SmartContract, contract_hash). If we can't find the entity under that key we try to read a Contract using the Key::Hash.

bors r+

bors r+


Some concept exercises have 2 source and test directories

A few concept exercises (for example, Santa Swifty Helper, and Magician in Training) have a Source directory as well as an org-sources directory.  Same goes for Tests and org-tests directory. I'm guessing this is leftover from an update?
This is confusing for new users.

@dlwalter Would you be willing to submit a PR to fix this?

@ErikSchierboom done.
https://github.com/exercism/swift/pull/542

Closed by #542


Suggestion: set the default goal in the root pom

(or in each modules pom)
currently only the discovery service has a default goal:
https://github.com/oktadeveloper/java-microservices-examples/blob/master/spring-boot%2Bcloud/discovery-service/pom.xml#L51

Fixed!


[Documentation] Incorrect link in Github wiki

The Outdated/Incorrect Information
The github wiki redirects to an non existant page (should be https://fastj.tech/wiki/intro not https://fastj.tech/fastj/wiki/intro)

Thanks, I've gone ahead and fixed that link now.


RapidJSON package issue

https://github.com/accellera-official/cci/blob/f84266f01f88c917f7b0ae12a4d738009f47368f/src/CMakeLists.txt#L140
Should this be RapidJSON?

I think it's okay.
What issue are you seeing?

Looks okay to me.
What is the issue?
BR,
Lukas
On Tue, Sep 12, 2023 at 12:36 PM Mark Burton @.***>
wrote:

https://github.com/accellera-official/cci/blob/f84266f01f88c917f7b0ae12a4d738009f47368f/src/CMakeLists.txt#L140
Should this be RapidJSON?
—
Reply to this email directly, view it on GitHub
https://github.com/accellera-official/cci/issues/307, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ABWHKQGDTSKIDIGVZXDTFVTX2A3I7ANCNFSM6AAAAAA4UURQUU
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

On "some" operating systems, on some days, with some weather conditions, it seems to prefer RapidJSON to match the package name (rather than RAPIDJSON)


Support resize query result when Neovim is maximized

The fzfx live_grep feature works very well. I have tested several live_grep implementations under Telescope, and I found fzfx to be better. I can easily change the search query. Thanks you!
Do you plan to add resize query result support when Neovim is maximized?
The case is using Neovim under Tmux in one pane. When the pane is maximized, Neovim width is expanded too, but the fzfx live_grep results are not.

Hi @jetm , support tmux should be good, would you please help me define some details (since I'm not expert on tmux)?

You start a terminal maximized, and start a tmux pane and split the terminal into two parts (vertical or horizontal), and even split terminal into multiple small parts.
In one of the tmux pane, you start running neovim, and inside it you start fzfx to do live grep?

Is that correct?

Oh, I think I got your point, you mean when a popup window is already opened, and tmux pane is resized (or a terminal window that running neovim is resized), the fzfx popup window could re-calculate the popup window size and do resize!
I think I could listen to the Neovim Editor/Window changed event, and do resize.

Is that correct?

Yes, that's correct

a terminal window that running neovim is resized

Yes, a terminal window is a commoner case than using tmux.
I believe this is how Telescope does the resizing: https://github.com/nvim-telescope/telescope.nvim/commit/adfbd616c691add448ff1b2ed7dfa1a9d84204d9. But I don't know how to replicate the same work on fzfx

Hi @jetm , I add realtime resize popup window feature in #322 , would you please pull latest main branch and try?


Dumps are created world readable

Gogs version (or commit ref): 0.9.48
Git version: 2.1.4
Operating system: Linux
Database (use [x]):

[x] PostgreSQL
[ ] MySQL
[ ] SQLite

Can you reproduce the bug at https://try.gogs.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
The dump files created by gogs have permissions directly derived from the umask, so 0644 aka word readable, by default. The dumps include private information like database credentials and repositories.

good luck with this. see #2950

Patch has pushed to fix this issue, please test on develop branch.


Move motorway_link down to zoom 11 and greater.

Connects to #488.
@nvkelso could you review, please?

LGTM


How to build macOS AU?

How to build macOS AU? please, is that possible at all?

AUv2 support is not yet a thing. See #63.

How to build macOS AU? please, is that possible at all?

This is now possible: https://github.com/robbert-vdh/nih-plug/issues/63#issuecomment-2403367665


Pushing a hotfix to master, resulted in no diff detected, and no build released

Before opening, please confirm:

[X] I have checked to see if my question is addressed in the FAQ.
[X] I have searched for duplicate or closed issues.
[X] I have read the guide for submitting bug reports.
[X] I have done my best to include a minimal, self-contained set of instructions for consistently reproducing the issue.

Describe the bug
After merging a hot fix branch into the master branch, there was no diff detected (even though there was).
Expected behavior
Pushing a hot fix to the main branch would trigger a deployment
Reproduction steps
Push a change to master.
Build Settings
version: 1
applications:
  - frontend:
      phases:
        preBuild:
          commands:
            - yarn
        build:
          commands:
            - if [ "${AWS_BRANCH}" = "master" ]; then yarn build:prod; fi
            - if ! [ "${AWS_BRANCH}" = "master" ]; then yarn build:dev; fi
      artifacts:
        baseDirectory: build
        files:
          - '**/*'
      cache:
        paths:
          - node_modules/**/*
    appRoot: client

@kahdojay Ah sorry, just realised this issue is on my end.