Physics bodies can collide with tile seams

Tested versions
4.3 dev4 and earlier
System information
Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; <IP_ADDRESS>33) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)
Issue description
There is an issue with TileMap where a body can sometimes detect a wall collision on a completely flat surface. This causes bugs like projectile bouncing backwards instead of being reflected or characters turning at random point as if they hit something. Unfortunately the bug is very random - it depends on body shape, position and movement velocity. Sometimes I can reproduce it reliably in one very specific spot, but some time later it can fix itself and happen elsewhere.
Since it's so random, I didn't report it until now, because I though the issue is fixed multiple times. Apparently it's not and I just have another of these "reliable" cases.
Bug in action. Notice how the orange enemy turns for no reason, while the other enemy (which has a different shape) walks normally:
https://github.com/godotengine/godot/assets/2223172/edea97f4-b459-41f1-a118-baf0804ce943
Here I replaced the TileMap with a flat StaticBody2D and moved the TileMap below:
https://github.com/godotengine/godot/assets/2223172/a82c8e8a-7149-416a-a76b-d264132fe569
I suspect that it's caused by the fact that the TileMap is composed of multiple collision shapes and due to some physics glitches it's possible to hit corner of a tile. Related to #84163 and I assume solution would be merging the tiles into polygons (AFAIK navigation already does that).
Steps to reproduce

Use TileMap
It might happen

Minimal reproduction project (MRP)
The bug is too random to create a reliable MRP.

Ghost collision is a thing in all physics engines and always caused by using bad shape layouts.
Other physics engines already lost their teeth on this topic and ended up doing sub-optimal workarounds or not bothering at all.
Box2D and its extra "ghost vertices" definition "fix" that only works with one-sided surfaces.
https://box2d.org/posts/2020/06/ghost-collisions/.
Jolt physics giving you a friendly "good luck my naive friend".
https://jrouwe.github.io/JoltPhysics/  (search for "Ghost Collisions" header line)
Havok Physics giving you a "welding" option, which means "bye, bye performance" option.
<EMAIL_ADDRESS>There is a practical reason why all those legacy pixel games did not use physics polygons per cell like the TileMap does and instead  used a simplified collision bit mask per grid cell.

Ghost collision is a thing in all physics engines and always caused by using bad shape layouts.
Other physics engines already lost their teeth on this topic and ended up doing sub-optimal workarounds or not bothering at all.
Box2D and its extra "ghost vertices" definition "fix" that only works with one-sided surfaces. https://box2d.org/posts/2020/06/ghost-collisions/. Jolt physics giving you a friendly "good luck my naive friend". https://jrouwe.github.io/JoltPhysics/ (search for "Ghost Collisions" header line) Havok Physics giving you a "welding" option, which means "bye, bye performance" option<EMAIL_ADDRESS>There is a practical reason why all those legacy pixel games did not use physics polygons per cell like the TileMap does and instead used a simplified collision bit mask per grid cell.

This also is and has been problematic for Gridmap in G4 3D, but wasn't present in G3. My shapes and setups between my two projects are identical, but G4 struggles with very very basic collision tasks (sliding along a wall cuts your movement speed; approaching a corner shoots you into the stratosphere).

@smix8 I remember you once mentioned that navigation already merges the tile polygons into bigger ones. I think that's the solution, as merged polygons don't have seams, and using one big polygon is more performant than using hundreds of small shapes.
I did a quick test in GDScript and generating super polygon(s) for a TileMap with thousands of tiles takes 1 second (though the generator uses single layer for now):
https://github.com/godotengine/godot/assets/2223172/d7c0298f-7e09-4171-83f6-5236c30f9f72
I think doing it in C++ automatically for each layer would be very feasible. Though I imagine there are countless edge cases where invalid polygons could be generated.

IIRC, the 2D variety of this behavior has been around since at least the 2.x days; this issue may be a duplicate of https://github.com/godotengine/godot/issues/72372 (and https://github.com/godotengine/godot/issues/47148 and others).
Another tilemap baker tool is at https://github.com/popcar2/GodotTilemapBaker
I forget where I first learned of another workaround for 2D metroidvanias/sidescrollers with gravity: you can use two CollisionShape2Ds - one for the "real" shape, and another just for a SeparationRayShape2D.

@KoBeWi
Yes as mentioned in the other issue removing the tile-factor from the TileMap, how silly it may sound, is the solution to most of the TileMap performance and quality problems. At least it should move to using larger update units instead of just single cells.
The NavigationRegion2D merges TileMapLayer0 navigation polygons and collision shapes together when baked. The TileMap itself does not for its build-in navigation.
Yes there are many edge cases with polygon merging because as soon as overlap is caused it triggers hole calculation. The more complex a layout (e.g. polygon "holes") the more chances that an outline is interpreted wrong and flips the entire polygon outline stack in the wrong direction. If you only append a polygon neighbor one by one that that risk is minimized. If you start to stack other layers on top with maybe collision "holes" things can get ugly very quickly.

Well my script merges neighboring tiles using flood fill and it's fast enough (even in GDScript). I think each layer could have a separate body with polygons (with them being separate nodes it's the only way now), and we could also make separate bodies for physics layers. The problem are tiles with multiple polygons. You can't merge them using my naive method, because it assumes every next tile polygon will be adjacent to the previous one (which works for my use-case, but it's not sufficient).
Is the NavigationRegion2D any more smart?

Is the NavigationRegion2D any more smart?

The navigation mesh baking collects all the outlines and merges them together. It uses the Clipper2 polygtree that can deal with polygon holes and nesting. If you only add one polygon after another and the polygons have holes you will run into many issues that is why the navigation mesh baking does it all at once.

I wanna add to this discussion what I ended up doing in the Godot Rapier plugin to fix RigidBodies2D (and3D) ghost collisions when interacting with TileMaps(and polygons and any other type):

The idea is from http://briansemrau.github.io/dealing-with-ghost-collisions/. If the movement direction interacts with something that completely opposes it and the intersection distance is small enough, I disregard that contact point and eliminate it.


from_transmission not producing entries

Expected behaviour:
from_transmission loads list of completed torrents in transmission instance
Actual behaviour:
No entries loaded/found
Steps to reproduce:
Loads complete torrents from transmission-daemon Instance A with RPC bound at <IP_ADDRESS>:37777, pass completed torrents to transmission-daemon Instance B with RPC bound at <IP_ADDRESS>:36666
then
Loads complete torrents from transmission-daemon Instance B with RPC bound at <IP_ADDRESS>:36666, pass completed torrents to transmission-daemon Instance C with RPC bound at <IP_ADDRESS>:35555
Config:
Config passes check with only the known 'schedules' warning
pastebin - config
Log:
pastebin
Additional information:

Flexget Version: 2.1.17
Python Version: 3.4.2
Installation method: pip3
OS and version: Debian 8, OpenVZ w/ Kernel 2.6
Link to crash log: Not crashing

Solved!
onlycomplete: yes only refers to torrents marked Finished, not completed downloads that are seeding
Would be nice to have this information added to the documentation


timesFive(3) must equal 15. It shows 25.

Challenge Return a Value from a Function with Return has an issue.
User Agent is: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0.
Please describe how to reproduce this issue, and include links to screenshots if possible.
My code:
// Example
function minusSeven(num) {
  return num - 7;
}

// Only change code below this line
function timesFive(num1){
  return num1 * 5;
}
timesFive(3);

I'm still having this same issue, was it solved back in January only to come back?


Add support for CCM*

Description
Add support for CCM*.
Status
IN DEVELOPMENT
Requires Backporting
NO
Todos

[ ] Tests
[ ] Documentation
[ ] Changelog updated

retest

retest

API design: the functions for CCM* and CCM have the same signature and the only difference in their behavior is that the CCM functions return an error for tag_len=0. Do we really need separate functions in this case?

There's a merge conflict. Given that the code change in this PR is small, I'd prefer to resolve it by rebasing.

I have addressed the inline comments, added the reference to the specification and rebased to current development.
About the self test: The self test should be quick and lean and just a general health test. It does not need to provide full coverage. I would prefer not to burden the self test of the CCM module by adding a test for a corner-case of a rarely used feature.
About the design: You can use CCM as a general AEAD algorithm, whereas CCM* does not necessarily authenticate and there is a lot to pay attention to when using it. I would feel highly uncomfortable with blurring the line between the two, however little the difference in functionality and in the interface may be.
The PR is ready for review again.

@gilles-peskine-arm Could you please review again to see if you are happy with the changes?

@gilles-peskine-arm, @dgreen-arm I have reworked the PR and it is ready for review.

Closed in favor of https://github.com/ARMmbed/mbedtls/pull/1667 which is identical to this one (so the code review carries over) but with an additional test commit.

@Patater That makes the review harder to follow. If there are review comments in #1667 that lead to changing the code introduced in this PR, we'll have a split review history. I'd rather either merge #1629 if it's ready to ship, or if it isn't then make the further commits here.

I'm not too fussed either way. Whatever we do it just needs to be clear to the gatekeeper what to merge and in what order.
The rationale for this approach is that we don't want to merge this without sufficient tests. To make the gatekeeping job easy, we can just require merging of a single PR, #1667.


Look into using Pydantic under the hood

Pydantic already solves many of the existing problems with #20 -- the main goal of the Pydian validation would be to make it easier to express some of the different rules and error cases (e.g. make it easier to slightly modify an existing model / set of rules)
E.g.

https://docs.pydantic.dev/latest/#pydantic-examples
https://docs.pydantic.dev/dev/errors/validation_errors

Could we get the best of both -- e.g. use Pydantic under the hood and make data models interoperable? Worth investigating further!

A key use-case could be handling heavily-nested structures, and making it easier to express code and reduce the need for a bunch of custom middle classes
Look into: https://docs.pydantic.dev/latest/concepts/models/#dynamic-model-creation


Summary of summaries

To work around limited context window size:

Trim document to just the book text
Chunk up the book text with langchain TokenTextSplitter
Summarize the chunks
Summarize the summaries

I made this less general by adding "Walden" to the prompt prefix. It helped guide the model. I can work to remove that tomorrow.

Having tested with llama3, I expect the results to be much better when using the language model instead of the code model.


[Question] How to process silent notification in closed app

Hi, there's a way to process a silent notification even if the app is totally closed?
Thanks

Sorry to be a jerk but I'm now closing issues that don't follow the issue submission guidelines. This plugin takes a lot of work to maintain and I can't afford the time required to solicit the required info from everyone.
I'm closing this issue but please feel free to re-open the issue if you provide the requested details from the new issue submission guidelines.
https://github.com/phonegap/phonegap-plugin-push/blob/master/.github/ISSUE_TEMPLATE.md


Unable to access battery information

Operating system: Windows
I got Unable to access battery information Error: Error { source: Kind(InvalidData), description: Some("Device rate value is unknown") } error: process didn't exit successfully: target\debug\battery.exe (exit code: 1) When i ran this:
extern crate battery;

use std::io;
use std::thread;
use std::time::Duration;

fn main() -> battery::Result<()> {
    let manager = battery::Manager::new()?;
    let mut battery = match manager.batteries()?.next() {
        Some(Ok(battery)) => battery,
        Some(Err(e)) => {
            eprintln!("Unable to access battery information");
            return Err(e);
        }
        None => {
            eprintln!("Unable to find any batteries");
            return Err(io::Error::from(io::ErrorKind::NotFound).into());
        }
    };

    loop {
        println!("{:?}", battery);
        thread::sleep(Duration::from_secs(1));
        manager.refresh(&mut battery)?;
    }
}

Hi, @mkoakintomiwa! Thank you for the bug report!
I managed to write a fix for it, can you test it? It's in the git branch right now, so you need to  temporary replace your battery dependency in Cargo.toml with the following dependency:
[dependencies]
battery = { git = "https://github.com/svartalf/rust-battery.git", branch = "issue-63" }

From what I understand, it can be reproduced when your laptop battery is fully charged and AC is plugged on, so your battery neither charged nor discharged.

I'm going to assume that 0d7b9e4 fixes this bug, so this issue is closed now. Thank you once again for the bug report!


Video transition is cut in bottom left corner

Installment info:

Foundry V12, build 331
System: Fabula Ultima (ProjectFU) 2.4.0-alpha.26
New world with only Batle Transitions and Color Picked enabled

Bug:
No matter the video or size, the video gets "cut" in the bottom left corner, only showing 2/3s of the video:

Steps to reproduce:

Create 2 scenes
In the configuration of one of the scenes, go to the Battle Transitions and add a Video to the Transition Steps
Load a video and leave the default options as they are
Activate the scene with the video transition

Fixed in 1.0.5


Add support for indexmap

Add optional support for indexmap to

sets_duplicate_value_is_error
maps_duplicate_key_is_error
sets_last_value_wins

Signed-off-by: Joe Grund<EMAIL_ADDRESS>

Hi, thanks for the contribution. I gladly merge indexmap support.
Do you also care about the serde_as transformations? These two links should show what I mean:

https://docs.rs/serde_with/1.12.1/serde_with/guide/index.html#1-a-more-flexible-and-composable-replacement-for-the-with-annotation-called-serde_as-v150
https://docs.rs/serde_with/1.12.1/serde_with/guide/serde_as_transformations/index.html#maps-to-vec-of-tuples

You could replace #[serde(with = "indexmap::serde_seq")] with #[serde_as(as = "Vec<(_, _)>"], except that you can also control how the key/values are serialized. The matching implementations are in src/{de,ser}/impls.rs. No problem if you cannot add it.

You could replace #[serde(with = "indexmap::serde_seq")] with #[serde_as(as = "Vec<(_, _)>"], except that you can also control how the key/values are serialized. The matching implementations are in src/{de,ser}/impls.rs. No problem if you cannot add it.

Can I try this in followup PR?

Can I try this in followup PR?

Sure, follow-ups welcome :) I will merge this but wait a little bit before releasing a new version.
bors merge


Routes are not matching because of case sensitivity

Describe the bug
Routes seem to default to case sensitive and are not matching if the case is not the same.  Is there a way to make them case insensitive by default?
To Reproduce
Steps to reproduce the behavior:

Go to https://wuu8j.csb.app/Posts and you will see that it does not return any results

Expected behavior
I would expect that going to https://wuu8j.csb.app/Posts would return the same result as going to https://wuu8j.csb.app/posts

Desktop (please complete the following information):

OS: Windows 10
Browser: I tested using the latest Chrome and FF versions
Version: 3.28

I’ll add the default to be insensitive and add support for case sensitivity
On Nov 21, 2021, 1:39 PM -0700, fetters5 @.***>, wrote:

Describe the bug
Routes seem to default to case sensitive and are not matching if the case is not the same. Is there a way to make them case insensitive by default?
To Reproduce
Steps to reproduce the behavior:

Go to https://wuu8j.csb.app/Posts and you will see that it does not return any results

Expected behavior
I would expect that going to https://wuu8j.csb.app/Posts would return the same result as going to https://wuu8j.csb.app/posts
Desktop (please complete the following information):
• OS: Windows 10
• Browser: I tested using the latest Chrome and FF versions
• Version: 3.28
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.
Triage notifications on the go with GitHub Mobile for iOS or Android.

Awesome thank you!

Just shipped this!


Duplicates?...

node-uuid is required in paypal-rest-sdk and called on line 60 in this file. For some reason, I'm getting returned the same uuid consecutively. I don't know if it is paypal-rest-sdk, node-uuid, Mac OS X, pm2? I've tried restarting all of my instances. I'm about to console.log the returned UUID.
I get 'e7d48462-0cdb-4291-a4c7-8adeade30193' repeatedly.

'Looks like a valid v4 id.
If possible, I would suggest stepping into the uuid.v4() method to see if it's actually generating the same random #'s each time at this line.  Also, do _rng.toString() while stopped in that function to see which logic it's using for random # generation.

+1, im getting duplicates when i`m calling v4() repeatly

Could it be the compiler is doing a weird optimization having _rnds defined outside the function scope?  It may be better to include a more better random number generator as a fallback [1].  It would help to know which random number generator is being used, or at least the full browser/os versions.
[1] https://www.npmjs.com/package/random-js

Can you guys test this now? It sounds like it may have been related to the recently closed bug where Math.random(), which isn't very random, was being used accidentally.

Also getting duplicates when using uuid.v1() as a default mongoose field.

Also getting duplicates with uuid.v4(), a server restart is required to change the value.
However, I use this library in two projects, and the second one has no duplicates problem, even if the uuid.v4() is used the exact same way.

+1 Is there a fix for the duplicate ids?

Haven't seen a recipe to reproduce this.  Not enough info to diagnose. Until that changes this isn't actionable.

Use a docker container or aws lambda, might be easier to reproduce

We have the exact same issue only running on docker containers... some suggestions ?

I'll reopen if/when someone posts a SCCE test case.  Better still, identify a fix and submit a PR.
(My  apologies but I simply don't have time to chase this down based on the vague descriptions given so far.)

Refer to antoine-duchenet's post above.  If you call the function directly as a property value (for example) without forcing it to evaluate fresh at run-time, you'll just end up with a static value. Hard to say that's the issue everyone is experiencing, but in my case it was the solution.
export { myProperty: uuid.v4() } vs export { myProperty: () => uuid.v4() }

@FuzzySockets: I'm confused.  What you're describing is exactly what I would expect.  The first case is just assigning the result of uuid.v4() to myProperty.  Why would you expect anything other than a static uuid value there?
> const before = { myProperty: uuid.v4() }
undefined
> before.myProperty
'bdf9794f-0897-48dd-8fed-da380dac6e74'

> const after = { myProperty: () => uuid.v4() }
{ myProperty: [Function: myProperty] }
> after.myProperty
[Function: myProperty]
> after.myProperty()
'40848bdb-7c04-40e2-8694-5513db705732'
> after.myProperty()
'd1edd511-6ce9-4a12-b196-4fafb6b3b16f'
> after.myProperty()
'1258559b-c082-436c-8ecb-f74679954ffd'
> // Etc ...

@broofa At the time I was following along with an example that (incorrectly) showed how to generate unique uuids for a mongoose model. Without having ever used node-uuid before, you might just assume either uuid returns a random generator function vs a static value which is where my error resided, or that mongoose encloses the model object, therefore calling the function each time you instantiate the model.

@alkhachatryan: Minimal, Complete, and Verifiable

I have an action that will get two unique tasks from an array of ten items. The action is triggered manually. If the same task is selected on different actions the id assigned is repeated.
export const getTasks = (): ITask[] => {
    const selectedTasks = [];
    const tasksCopy: ITask[] = [...tasks];

    for (let i = 0; i < 2; i++) {
        const index = randomIndex(tasksCopy.length);
        const task = tasksCopy.splice(index, 1);
        const id = uuidv4();
        task[0].id = id;
        task[0].status = TaskStatus.processing;
        selectedTasks.push(task[0]);
    }

    return selectedTasks;
}

@Rasfuranku: On the rare occasion we've seen issues with duplicates, it's most often because the runtime involved provides a random-number API (e.g. crypto.getRandomValues()) that deliberately returns non-random values.
Provide a Minimal, Complete, and Verifiable example] and I'll be happy to take a look.

@broofa I found that I was an idiot, and I was mutating the object before adding it to the array. Thanks for your time.

This could happen in Lambda env. More context here: https://stackoverflow.com/questions/65369650/aws-lambda-and-uuid-it-always-return-same-value

@t1maccapp: SO question is a result of user error and is not relevant to this project (as is clearly explained by the one and only answer there.)
Locking thread as it's been a while since there was any productive conversation.
If you're contemplating reporting an issue with uuid duplicates...
You're welcome to do so, but please provide a minimum reproduction, and double check your work.  It's far more likely the problem is with how this project is used rather than with the project itself.


Organizing attractors

We need a better way to store attractors. I outline a tentative proposal below. Please let me know what you all think. For example, let me know if there's any information about attractors that I haven't mentioned that you think should be readily accessible. Conversely, let me know if you think this scheme would lead to "information overload" for the user. Also please speak up if you think there's a better approach to organizing the data; this is far from set in stone.
A class called AttractorRepertoire that contains objects of type AttractorSpace. An AttractorSpace would contain the following data:

The set of nodes logically fixed (i.e., those that are part of a stable module
All MotifReduction objects that have the same set of logically fixed nodes
Upper and lower bounds for the number of attractors contained in the space
If contained complex attractors have been explored . . .

The set of nodes that oscillate in each of those attractors
The complete STG subgraph of each attractor

If contained complex attractors have not been explored or we don't know for sure if they exist . . .

The  conditions for the existence of these attractors (this is the rspace constraint; it will be a tautology if we know with certainty that there is an attractor here)
If a reduction was computed, the complex attractors of the reduction as a list of oscillating nodes
If a reduction was computed, the complex attractors of the reduction as an STG subgraph

The AttractorRepertoire object would contain the following data:

The original rules of the system
A list of all AttractorSpace objects for the system
A list of all steady states
A list of all identified complex attractors
A list of all AttractorSpaces that might (or are known to) contain unexplored attractors
Upper and lower bounds on the number of complex attractors in total (i.e., across all attractor spaces)

The AttractorRepertoire object would also have member functions that summarize the data in various formats. Among these would be csv, json, and console output. There may be other formats (e.g., potentially pandas).
The SuccessionDiagram object could have an AttractorRepertoire variable, or it could be the other way around. Or it could even be completely separate. Maybe it should take the rules as input? Suggestions for how the constructor should work are especially welcome.

This is a good idea. My thoughts:

The set of nodes logically fixed (i.e., those that are part of a stable module
How is this different from a steady-state? By the fact that it doesn't have all nodes fixed, i.e. some of them oscillate? We should come up with a name for these I guess. Something to do with "stable modules" would be nice.

All MotifReduction objects that have the same set of logically fixed nodes

This could be redundant given that this is an attractor class

The complete STG subgraph of each attractor

We should not store this in the memory, but it could be a generator object or function that returns it when called. We talked about this but I would also give some sort of heuristic option that samples the complex attractor STG if it's deemed too big. If you agree I will think of a way that doesn't bring in new dependencies.

The SuccessionDiagram object could have an AttractorRepertoire variable, or it could be the other way around. Or it could even be completely separate. Maybe it should take the rules as input? Suggestions for how the constructor should work are especially welcome.

I imagine a one-way connection. The succession diagram should have the attractor repertoire, but the other way around not necessarily. This depends on how we find the attractors in the first place. If a user can generate the attractor repertoire without building the succession diagram, they should be able to do that (I know PyBoolNet finds the steady states quite quickly).  If we generate the succession diagrams anyway to have the attractor repertoire (it could be costly) then the two-way link makes more sense. Treating them completely separate is not very useful, because we want the attractors to be able to interpret the succession diagram, no?
Let me know what you think.

How is this different from a steady-state?

As you guessed, not all nodes need to be fixed. Stable module is the correct term, I think. These AttractorSpace objects would describe the system you get after plugging in a stable module (provided the resulting system has/might have motif-free attractors).

This could be redundant

In the PS, you might want to know that SAC contains  p0->p2 in addition to just p2, even though LDOI(p2) = LDOI(p0+p2). There might be a way to compress this information though. The motif histories are stored in the MotifReduction object. Maybe we pick a representative and store a list of equivalent motif histories or MotifReductions?
This actually gives me an idea for speeding things up. I'll make a separate issue for that though.

We should not store this in memory

I am not so sure about this. It can take a very long time to generate the STG and we are just interested in some of its subgraphs. In practice, these are usually not too large or too numerous. We often need to build a partial STG when doing the reduction anyway, and if so, we save it in the MotifReduction object. If we store it as a generator, we will inevitably build it twice.
I'm not exactly sure how Python handles the memory in the case of a list shared by different classes, but presumably we can make these pointers to avoid copying the data.

heuristic option that samples the complex attractor

Yes, this would be nice, but it is low priority. I think it is fine to focus on exact methods until initial release.

The succession diagram should have the attractor repertoire, but the other way around not necessarily.

Makes sense.

This depends on how we find the attractors in the first place.

I am pretty sure our succession approach is almost always faster than PyBoolNet alone. But if you have a counterexample, let me know. I think we can proceed under the assumption that this attractor repertoire object would be independent of PyBoolNet's attractor finder. That means we are creating a succession diagram anyway.
Maybe we can modify the build_succession_diagram function so that it first does its usual thing, then it uses the succession diagram it constructed to compute an attractor repertoire that would be a member variable of the SuccessionDiagram class (this could be done using a member function of the SuccessionDiagram class). The second step would be comparatively cheap.
In that scheme, we would have Succession.py depend on Reduction.py and Attractors.py, while Attractors.py would only depend on Reduction.py.

I like what you propose, Jordan.
In terms of the Attractors, Succession dependency. I like what you propose in the last post:
"Succession.py depend on Reduction.py and Attractors.py, while Attractors.py would only depend on Reduction.py."
One other option I was thinking on is to build a "master" class called "NetworkModel" or something of the form. This class would store a single AttractorRepertoire and SuccessionDiagram object. The creation of these objects could be called from the NetworkModel class. The advantage I can see is that:

This could allow the AttractorRepertoire and SuccessionDiagram objects to remain separate. Their point of contact would be the "NetworkModel" class.
This could help with the ""information overload" for a user. For a user that doesn't care at all about how we do things under the hood, it would allow the user to just "find attractors". Under the hood we could do the same thing we are doing (SuccessionDiagrams) and even implement other options (full STG or STG sampling, even if low priority now, vanilla PyBoolNet,etc).
Of note, this is actually the way my java code is written (or, at least, what the original idea was).

Let me know what you think.

I guess I was thinking that the SuccessionDiagram object itself would play this role, but your idea definitely has some merits. I have a few questions about it though.
What about accessing the succession diagram control methods? Do you think it will be confusing that those have to be accessed via a member succession diagram? I guess we could make a wrapper around those calls.
What data would it store, other than a SuccessionDiagram object and an AttractorRepertoire object? Similarly, what functions do you think it would need?
Are there any cases in which SuccessionDiagram functions will need access to the AttractorRepertoire or vice versa? If so, it might make sense to make one a member of the other, so that it is impossible for a user to pass the wrong object. A work around might be to only access those sorts of functions through wrappers. In other languages (e.g., Java), we could enforce this kind of thing with privacy levels, but Python won't let us; we can only ask nicely with underscores, but that's probably good enough.
On the other hand, if there's ever a reason we might want to think about the attractors of one system using the succession diagram of a different system (or vice versa), having them decoupled is beneficial. Any reason you'd ever want to do this? I can't think of any.

What about accessing the succession diagram control methods? ... I guess we could make a wrapper around those calls.

Yes, I was thinking on a wrapper around it.

What data would it store, other than a SuccessionDiagram object and an AttractorRepertoire object? Similarly, what functions do you think it would need?

In addition to those, I think the only required ones that make sense are the wiring diagram and the functions. We can always add thing to it, which are not important now. E.g., it could have a default initial condition, STG, the updating scheme used, network parameters (e.g. if it is actually a threshold network, the weights and thresholds).

Are there any cases in which SuccessionDiagram functions will need access to the AttractorRepertoire or vice versa? If so, it might make sense to make one a member of the other, so that it is impossible for a user to pass the wrong object.

I think we can still use the SuccessionDiagram, AttractorRepertoire dependency you proposed. On top of this, accessing them through wrappers like you suggest should be good enough in my opinion.

On the other hand, if there's ever a reason we might want to think about the attractors of one system using the succession diagram of a different system (or vice versa), having them decoupled is beneficial. Any reason you'd ever want to do this? I can't think of any.

I think its safe to assume there is not any normal circumstance you would look at this.

Ok, I think this plan makes sense. I can make the attractor repertoire and attractor space / stable module objects assuming that they will eventually be integrated into a "master" object that contains the succession diagram + attractors.

Until this is done I'm adding an attractors_dict function/variable to the Succession class (for now in the issue38 branch) so I can work on the exports/test. Once you're done with the attractor class we can update the operations to work with that.

This has been resolved for a long time. The user now should primarily interact with the AttractorRepertoire class instead of the SuccessionDiagram class.


[BlockClient] Refactor BlockClient to fetch latest block at init

Summary
This PR introduces a cometClient that fetches the latest block when the BlockClient is initialized, enabling it to acquire knowledge about the last committed block immediately upon initialization.
The purpose of this is to prevent the need to wait for a new block to be committed before obtaining this information. This is necessary because the WebSocket connection only notifies about blocks committed after the subscription is made.
Issue
In non-localnet environments, block times will be significant, making it necessary to obtain this block information before a new block is committed.

#440

Type of change
Select one or more:

[x] New feature, functionality or library
[ ] Bug fix
[ ] Code health or cleanup
[ ] Documentation
[ ] Other (specify)

Testing

[x] Unit Tests: make go_develop_and_test
[x] LocalNet E2E Tests: make test_e2e
[ ] DevNet E2E Tests: Add the devnet-test-e2e label to the PR. THIS IS VERY EXPENSIVE, so only do it after all the reviews are complete.
[ ] Documentation changes: make docusaurus_start

Sanity Checklist

[x] I have tested my changes using the available tooling
[x] I have commented my code
[x] I have performed a self-review of my own code; both comments & source code
[ ] I create and referenced any new tickets, if applicable
[ ] I have left TODOs throughout the codebase, if applicable

Merged @bryanchriswhite's PR #453 changes.


If the value SPLIT_DB is set to TRUE post-script.sh only shows information about the last backed DB

I have differents DB in my mariaDB and I am interested to back it up in separate files not all inside the same file.
So, the script /assets/custom-scripts/post-script.sh is executed after the last DB backup and shows only stadistics about the last backed DB, not the previous ones. Can i have running this script with all  DB backed up ?
And by the way. Could you give an example to send this script trought the SMTP included in the container?
Thanks in advanced.

This has now been resolved integrated into 3.1.0 - The Post Script and Monitoring features fire per database backup as opposed to the entirety of the script.


BottomSheet.showWithSheetView() doesn't dim content view

The material design spec for bottom sheets states:

When a bottom sheet is displayed, it animates upwards from the bottom edge of the screen. The rest of the screen dims, giving focus to the bottom sheet.

This looks like this:

Right now, this library only dims the content view when the sheet is translating between the "peek" mode and the "expanded" mode. When the sheet is sitting at the bottom of the screen after showWithSheetView() is called, there is no content view dimming, even with shouldDimContentView set to true.

I understand that this library was initially created for the Flipboard app, but it would be nice to have the option to have the content view dim according to the spec.

@mattlogan Yes this is an oversight. I already have an implementation where this way the content is dimmed can be customized. Expect that to be released later today!

Awesome. Nice work!

+1
A dimmed background (using a semi-transparent view below the bottom sheet which fills the screen) and small elevation would be nice. Material Design is all about sheets of paper that slide over and under each other.

@mattlogan Changes have now been merged and default dimming behavior better matches that in material design.


Add export subcommand

Part of #14

@raitonoberu Thoughts?

Sorry for such an absurdly long delay.
To be honest, I think this feature is better suited for a new project than for sptlrx.
Also, one of my recent commits to lyricsapi allows you to format .LRC on the server side, so you can export the lyrics of the currently playing song to stdout just by running:
curl -G "https://lyricsapi.vercel.app/api/lyrics?lrc=1" --data-urlencode "name=$(playerctl metadata --format '{{artist}} {{title}}')"

(make sure you have playerctl installed)

Nice!


Add analytics specific state and zip

Please link to the issue #337.
In addition to the geo information that we lookup, the client provides location information such as state and zip code that we would like to retain in XDM.

Yes, this is good with me. It is provided by the client side and it makes sense to keep it in the Analytics extension if they need to continue using it.

@stormybriggs1, how are these different than the same fields available in common/address?

@kstreeter Within Analytics we have multiple values for state and zip. We have those for which use a service to derive geo information and we have client supplied values. These fields are to retain the client supplied values. The difference is the source.


Added Day 10 solution and Update Readme.md

Please add solution file links too in the readme for all the codes you have pushed.

Ok. I'll do so.
On Sun, Oct 10, 2021 at 1:22 PM Sachin Verma @.***>
wrote:

Please add solution file links too in the readme for all the codes you
have pushed.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/sachuverma/DataStructures-Algorithms/pull/53#issuecomment-939425462,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AOJH2ZL3AV52IDORTDZIGU3UGFA2TANCNFSM5FWEZA7Q
.


Make config public in modules to be exist for the check balance decorator

Description

Make config public in modules to be exist for the check balance decorator

Related Issues

#1512

Checklist

[ ] Tests included
[ ] Build pass
[ ] Documentation
[ ] Code format and docstrings
[ ] Screenshots/Video attached (needed for UI changes)

Issue is fixed.


Add error and unsupported callbacks

Adds error and unsupported callbacks support as events. Those callbacks are very important to give feedback to the users on why the captcha is not working or why the test failed.
Documentation:
https://developers.cloudflare.com/turnstile/get-started/client-side-rendering/#configurations
https://developers.cloudflare.com/turnstile/reference/client-side-errors

Since there are now a lot of different callbacks, have you considered adding the default callback as an event and removing the v-model? I think this is possible without a breaking change, by supporting both ways and listing only the event one in the README.


dotnet new page is missing blazorwasm settings

There is a section about the blazorserver template, but none about the blazorwasm template. For example, the --hosted flag that generates the ASP.NET Core server for it.

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

ID: 0b952f8a-18e1-4843-0741-6ca877fb303a
Version Independent ID: d80dfb96-bc86-a960-abec-255dd907d04d
Content: dotnet new command - .NET Core CLI
Content Source: docs/core/tools/dotnet-new.md
Product: dotnet-core
Technology: dotnet-cli
GitHub Login: @tdykstra
Microsoft Alias: tdykstra

cc @Rick-Anderson

cc @guardrex

This is now documented here: https://docs.microsoft.com/en-us/dotnet/core/tools/dotnet-new-sdk-templates#blazorwasm

Thank you!


Binary builds are missing

@mrDoctorWho: Can you add binary files in addition to the tag on github for all versions?
Example: https://github.com/atom/atom/releases

Hi @Neustradamus
Are you sure anyone really needs those? This is a python project that is intended to be run as a standalone app from the source code.
It actually has the ability to be built to a DEB package. Would that be suitable for you?
Or maybe after our discussion you considered that this issue is no longer needed?

Closing due to inactivity.


$this->be does not work.

I used that code because WithoutMiddleware not work,
$middleware = [];
if ( !App::runningUnitTests() ) {
    $middleware = ['auth','roles'];
}

but when i run test with selenium  App::runningUnitTests() is true,
so i tried use $this->be(User::find(9)) for skip the loging and throw error :(
ErrorException: call_user_func_array() expects parameter 1 to be a valid callback, class 'Illuminate\Auth\SessionGuard' does not have a method 'driver'
$this->be(User::find(9)) not have problem with TestCase

duplicated

https://github.com/Modelizer/Selenium/issues/30


Languages with variants are not supported

Languages with variants are not supported (like Portuguese Brazilian, and Portugal Portuguese, Traditional and Simplified Chinese)
We use two-letter language codes in the Crowdin recipe, can we move to full language codes, would Flutter support that ?

https://github.com/openfoodfacts/smooth-app/blob/develop/crowdin.yml

https://docs.flutter.dev/development/accessibility-and-localization/internationalization#advanced-locale-definition


Assertion idx_dim >= 0 && idx_dim < index_size && "index out of bounds" failed.

The envs and dataset is all ready, and I start test the main.py, but encounted this error:
Sanity Checking DataLoader 0:   0%|          | 0/2 [00:00<?, ?it/s]../aten/src/ATen/native/cuda/ScatterGatherKernel.cu:365: operator(): block: [161,0,0], thread: [32,0,0] Assertion idx_dim >= 0 && idx_dim < index_size && "index out of bounds" failed.

I change the num_workers from 0 to 19 in configs/datamodule/sa_crop.yaml，the error vanished.


Webpack build output improvements

Coverage increased (+0.2%) to 42.868% when pulling 9df39a129c578f9140de9719e931a831b3bd94b2 on victorporof:incremental-output into 6e10c6445dcb63c5a5c090b3631c4812c3e58882 on mozilla:master.


Functional component test fails at findComponent

Simple test with functional component:
import { h } from 'vue';
import { mount } from '@vue/test-utils';

function Test(props, context) {
	return h('div', {
		...props,
		innerHTML: 'This is a test',
	});
}

describe('Mounting component', () => {
	test('with wrapper', () => {
		const Wrapper = {
			components: { Test },
			template: `<Test />`,
		};

		const wrapper = mount(Wrapper, {});
		const item = wrapper.findComponent(Test);
		expect(item.exists()).toBe(true);
	});

	test('without wrapper', () => {
		const wrapper = mount(Test, {});
		const item = wrapper.findComponent(Test);
		expect(item.exists()).toBe(true);
		expect(item.html()).toStrictEqual('
This is a test
');
	});
});

Both tests fail at findComponent() that returns null.
vue: 3.0.0-rc.7
vue/test-utils: 2.0.0-beta.2, also tried with latest build from this repo

After merging this https://github.com/vuejs/vue-test-utils-next/pull/188/ I will investigate this a little. I learned a lot in #184.
I believe this was not working in VTU v1 either. I expect some limitations to by applied to a found functional component (currently we cannot detect emitted events from them, for example).
In the meantime, I will be adding some warnings to let people know this is a known issue, such as here: https://github.com/vuejs/vue-test-utils-next/pull/185

Thanks!
As for VTU v1, it is working with similar functional component for Vue 2.

Fixed in #238
This will be in the next release


Breguet range

in progress...updating the breguet range models

disregard I appear to have accidentally branched this from commerical sizing...


Could not find a declaration file for module 'nuxt-svgo'

Need update package.json or types
Screen

should be fixed in v4.0.1


Setup tls for tester app MERGEOK

I confirm that this contribution is made under the terms of the license found in the root directory of this repository's source tree and that I have the authority necessary to make this contribution on behalf of its copyright owner.

This doesn't require the controller to present a client certificate? (It doesn't, but could probably.)

should be a drop in replacement for existing 4080

@jonmv A certificate will be required (unless status.html).

Ok, then requests to /tester/v1/* will fail less than a second later :)

The controller currently authenticates by passing an Athenz header. I guess this could be replaced by an Athenz client certificate?

Let's continue this discussion offline.


(MAINT) Bump beaker dependency to 2.12.0

This commit bumps the beaker dependency to 2.12.0.

:+1:


Login with leading slash '/' fails

Changes needed

Make the login message clean
Make the login work even if user gives leading slash for the server address.

❯ harbor login http://registry.bupd.xyz/
Error: login failed, please check your credentials: &{false  0001-01-01T00:00:00.000Z  <nil>  false 0001-01-01T00:00:00.000Z 0 } (*models.UserResp) is not supported by the TextConsumer, can be resolved by supporting TextUnmarshaler interface

This issue is very similar to #271 I am currently working on. I will include this issue in the PR and resolve them together.


Runtime Exception with List.append. TypeError: undefined is not an object (evaluating 'xs.ctor')

Version: Elm v0.17
This elm code:
-- [1, 2, 3] doesn't matter, it is the two b's that cause the error
b = [1, 2, 3] |> List.append b
-- OR
b = List.append b [1, 2, 3]
-- OR
b = List.append [1, 2, 3] b

Cause the following runtime exception (i.e. in my Chrome console window, not the elm compile error message)
TypeError: undefined is not an object (evaluating 'xs.ctor')

It seems like the bug is because I shouldn't be using 'b' twice like that. Normally I wouldn't log an issue like this (because it was my fault). But since one of Elms selling points is No Runtime Exceptions, I thought you might want to know.
Cheers

This issue has been reported many times. In the next release of Elm, this kind of recursive value definition will be rejected by the compiler.

The issue is #873 and will be detected in 0.18 of Elm.
@jvoigtlaender, I know this issue is annoying, but try not to take it out on people who are just trying to be helpful!

@evancz, I'm sorry, I honestly don't know what you mean. In what way was I taking something out on somebody? I was just giving the best answer I could. Except for not providing the link to the specific issue in the other repo. And that was simply because I was on mobile, where it's more complicated (for me) to insert links. Oh well, I could have not answered at that time and leave it for later. Other than that, I'm afraid you are seeing ghosts (in seeing unfriendliness in my answering).


Parsing issue on unused var _

interface Foo {
    fun execute(): Unit {}
}

class Bar {
    companion object {
        fun bar(e: Any) {
        }
    }
}

fun test() {
    val a = Bar.bar {
        _ : Any? ->
    }
}

Note: Current detection of "" should be removed and detected in the function parameters. Also, ensure whitespace is preserved.

Fixed by https://github.com/openrewrite/rewrite-kotlin/commit/a942748184a61270ccd19a8bf084e3d6bde62299


No more worldmap

I cannot access at all to the worldmap.
Depending on the address, I get a 503 error or no answer at all.

Classic : NOK
Creative : OK
HG : OK (not activated)
SB : OK
I need to check why the Classic worldmap is offline

Fixed.


requirements from file

small change to use requirements.txt as source for install_requires in setup.py

@luiztauffer free free to merge


Versioning suggestion

Since this package will not be published on PyPI or a similar Python package index, but rather the focus is on the generated container/Docker image, I have a suggestion concerning how we could do it here, mainly evolving around oteapi-core.
Whenever pushing to master we publish two different tag-versions of the ghcr.io/emmc-asbl/oteapi container image:

latest (this is the only one in existence now and this is what is also happening now from the CD workflows.
vMAJOR.MINOR.PATCH, where this version matches the current requirement version of oteapi-core (as of now it would then be v0.1.2).

In this way, when the oteapi-core requirement changes, the version tag will also change, and then the latest version of oteapi-services (and thereby the FastAPI application) that supported a given oteapi-core version will match the equivalent container image tag.
The version provided in app/__init__.py will not really change then, and will have no real value - it can essentially even be removed as it's not referenced anywhere.

As a note, it seems the general "standard" for version tags is to exclude the v prefix, so the version tag would be MAJOR.MINOR.PATCH.

After discussing this with @quaat we have come up with the following (sort of) semantic versioning scheme:
<API version>.<CalVer>.<Build #>
Container images will only be released for the major version, i.e., the API version - and latest.

The latest image will be built from the latest commit on master (as is the case now).
The API version image will be built from the latest commit on master as well, but a new image version will come to exist when the API version is bumped from 1 to 2 (and so on).

As an example with different versions, see the table below.

Full version
Container image

1.20220407.248

1.20220407.249

1.20220408.250

1.20220408.251
X (tag: 1)

2.20220407.321
X (tag: 2, latest)

The table also provides examples of the values for the versioning syntax scheme.

: The "major" version.
The number, which is also reflected in the URL path of the API as a path prefix (current default: /api/v1).
: The "minor" version.
Based on calendar versioning, this will be YYYY0M0D, meaning it will always be 8 characters long, no matter if the day or month are single digit days or months.
<Build #>: The "patch" version.
This is the commit number in the master branch. At the time of writing, there are 250 commits in master, meaning 250 is the current build #.
The build number can be retrieved by writing the following command in a terminal (on a unix-based system):
Build #: git log master --pretty=oneline | wc -l

The full container image name with tags will be:

ghcr.io/emmc-asbl/oteapi:latest
ghcr.io/emmc-asbl/oteapi:<API version> (e.g., ghcr.io/emmc-asbl/oteapi:1)

Finally, it's important to note that the __version__ variable in app/__init__.py will always be updated with the full version - this is the only place it will be documented.

This seems well-thought out and I'm happy with it. Thanks for showing the digest sha link https://github.com/EMMC-ASBL/oteapi-services/pkgs/container/oteapi/versions?filters[version_type]=untagged which will be useful if I need it for debugging later.


osquery pack

Hey there, I made a pack to use osquery when performing the checks instead of all of the defaults reads. Wondering if it would be something you're interested in hosting, I could give it another once-over and send a PR.
(Nice work on Downclimb, btw.)

Hey @arubdesu!
I wonder if osquery allow us to have the flexibility needed when executing other stuff than defaults read stuff...

I did actively use the easier things to translate into osquery... queries, for instance the FileVault2 check, the process check to see if ScreenSharing is on, and all of the application layer firewall stuff. They're constantly adding features, always under the guiding principle that it has to be explicitly better than shelling out.

Hey Sasha, actually osquery is pretty good in doing simple but easy key/value check utilizing defaults from a table.


Numeric with non-nil padder causes '0' value unpacking to panic

Numeric.Unpack currently calls Unpad on a non-nil padder and trims off bytes which match a particular pattern.
Moov's Spec87 only left pads numerics with '0' chars as such:
          4: field.NewString(&field.Spec{
              Length:      12,
              Description: "Transaction Amount",
              Enc:         encoding.ASCII,
              Pref:        prefix.ASCII.Fixed,
              Pad:         padding.Left('0'),
          }),
          5: field.NewString(&field.Spec{
              Length:      12,
              Description: "Settlement Amount",
              Enc:         encoding.ASCII,
              Pref:        prefix.ASCII.Fixed,
              Pad:         padding.Left('0'),
          }),
          6: field.NewString(&field.Spec{
              Length:      12,
              Description: "Billing Amount",
              Enc:         encoding.ASCII,
              Pref:        prefix.ASCII.Fixed,
              Pad:         padding.Left('0'),
          }),

Our own internal spec (which goes to subfield granularity) also does the same. This leads to an issue where if an 'amount' (for example) is '00000000', then the entire input is trimmed out to an empty string. This results in strconv.Atoi(string(raw)) panicking as it's being called with empty string "". I would classify such an error as a bug in its current state.
We have not found a use case to right-pad numeric values as of yet. As such, we feel its a safe assumption that one doesn't exist. We have also not found a use case to pad numeric fields with non-numeric values. strconv.Atoi(...) supports left padded values.
strconv.Atoi("00005") returns 5.
Given all of the above, we feel the following snippet of code should be removed from Numeric's Unpack method:
      if f.spec.Pad != nil {
          raw = f.spec.Pad.Unpad(raw)
      }

@krishishah thanks for reporting the issue! I'll check it.

@alovak just realised the field specs I copied above are String types. Using a numeric instead should let you reproduce the issue.

Ignore me - I was running this on an old commit. I see this issue has been fixed by https://github.com/moov-io/iso8583/pull/67/files


Dev-->Master

Fixes #
Preview

Added new post about getting beyond auto checks.
Updated author file to get rid of "is a" and capitalized all author titles.
Added product disclaimer to the bottom of the post template.
Added onrr.gov to the footer.

@mcharg Thanks, please put tomorrow's date.

@Maroyafaied I noticed that Christa's post is missing here and in my branch.

Do we need to merge Master into Dev?

@Maroyafaied I see Christa's post

@Maroyafaied So weird.

This is what I see.

@cthomasONRR @lpgoldstein Can you both look and see if you see Christa's post in dev?

It's not a caching thing because I'm also not seeing it in Firefox.

@Maroyafaied @mcharg I cleared browsing data and did ctrl+F5, and still not seeing it

@Maroyafaied @mcharg I'm not seeing it either

I can see it now!

I can see it now too :)


Version 3.7.3

Landed in https://github.com/metarhia/metautil/commit/bfc61c2feecada2536fa5e16e4373406c975d206 and https://github.com/metarhia/metautil/commit/6bf6158a302a6d6933ef3bdaf4be98f291cf7c2a


About transforms.json

Hi, thank you for sharing the code of this amazing research.
Can I ask what is the difference (or use case) of each 3 transforms.json files after finishing the training?

output/forest1/smooth_spline/transforms.json
output/forest1/transforms_rf.json
output/forest1/transforms.json

It confused me because you also have another one in the dataset: hike_scenes_localrf/forest1/transforms.json (4)
I guess (4) is created from colmap and (1) is used for rendering the video.

Hi,
You are correct. Also, (2) is each radiance field's pose and (3) contains the estimated camera poses.

Hi, thank you for the clarification.
Then I can use (3) as camera poses for training another NeRF model.
I'm curious about (2), is it the local camera poses for the Local radiance fields in sec 3.3 in the paper?

Hi,
Yes, specifically the t_j in eq. (7).

@ameuleman @Khoa-NT
How to generate the transform.json on our own dataset?
Is there any tutorial?

@ameuleman @Khoa-NT How to generate the transform.json on our own dataset? Is there any tutorial?

Hi,
transforms.json files in our dataset correspond to COLMAP poses. We run COLMAP using MultiNeRF's script.
Note that transforms.json is not needed to optimize LocalRF, except with the argument --with_preprocessed_poses 1.

@ameuleman @Khoa-NT How to generate the transform.json on our own dataset? Is there any tutorial?

Hi, transforms.json files in our dataset correspond to COLMAP poses. We run COLMAP using MultiNeRF's script. Note that transforms.json is not needed to optimize LocalRF, except with the argument --with_preprocessed_poses 1.

Hi, Thanks for quick replay!

I want to run the localRF code on autonomous driving datasets such as KITTI and nuScenes, which include pose information with some noise. LocalRF can optimize the initial noisy pose from the autonomous driving datasets.
Are the poses from COLMAP in the OpenCV coordinate system? I noticed the poses in NerfStudio are based on OpenGL coordinates.The below picture show the OPENCV and OPENGL coordinate.

Oh right, there is a conversion required after COLMAP.  Instant-NGP's script can achieve it from COLMAP outputs.

Thanks a lot!


Remove wip tag

Summary
This PR removes the @wip tag from retry_failing_tests.feature.
Details
Since retry_failing_tests.feature is now fully implemented and passes, it should not be tagged as @wip as this will break the build after #981 is merged.
Motivation and Context
Since we have decided not to allow @wip features on master, we need to remove the @wip tag from features already on master (and, of course, fix ones that don't pass). This will prevent the build from breaking due to the presence of features that should not have been merged. (Something tells me this whole paragraph doesn't make much sense.)
How Has This Been Tested?
The feature was already passing, so removing the tag doesn't require additional tests.

Oh no, looks like this feature doesn't, in fact, pass, which means we probably shouldn't have merged #920. I'll have to look into what's going on.

@danascheider The retry filter is never added to the filters in the runtime. Your step definitions for the retry feature does not work. One problem is that their state is not reset between scenarios. I also made this comment on the PR.

Oh sorry, I didn't see that! I'll check it out when I get to the office.

See also #981 :)

Closed in favour of #981


(maint) Improves error message for Docker failure

Frontload the DOCKER_HOST variable, as it's the easiest thing to check
boot2docker-cli is deprecated (https://github.com/boot2docker/boot2docker-cli#deprecated)
Error could also occur on Windows

Lgtm

Refer to this link for build results (access rights to CI server needed):
http://jenkins-beaker.delivery.puppetlabs.net//job/qe_beaker_btc-intn/2226/
Test PASSed.


Fix indent typo

Thanks! I check CI failures soon. After that, will merge it into master.

For easy to identify the cause of the CI failure, I will fix CI config first. https://github.com/treasure-data/digdag/pull/932

Since the CI failure is not related to this change, I merge this into master.


Create projects from existing GitHub branches.

 When creating a new Project, I want to choose between creating a new branch or using an existing feature branch.

@duggiemitchell I think this is ready for frontend work; let me know if it's missing things you need!

@jgerigmeyer yeah I agree. That's what we do in MetaCI (fetch the list from github when rendering the form to start a build)

@wlonk Could you take a look at what's going on with the failing pytest here?

I think the front-end things are in, minus needing some minor style cleanup.
@wlonk I've updated the Trello card with a couple back-end tasks I think that may be needed, also based on previous comments. Let me know if you'd like to discuss!

@jgerigmeyer @wlonk I believe most of the review on the frontend code has been addressed.  I am however still getting an error when creating a project (with or without passing in the branch_name in the request)
The network tab shows a 500 (in the screenshot below) & in the stack trace, it says 404 and reads: Internal Server Error: NotFoundError at /api/projects/ 404 Not Found Request Method: POST Request URL: http://localhost:8080/api/projects/

But, we don't want to pass in the branch_name on create, since that's created on the backend when the branch is created?

@wlonk This now returns an error when trying to create a new project without an existing branch:
HTTP POST /api/projects/ 500 [0.98, <IP_ADDRESS>:34280]
ERROR Internal Server Error: /api/projects/
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 115, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 113, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/viewsets.py", line 114, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 505, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 465, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 476, in raise_uncaught_exception
    raise exc
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 502, in dispatch
    response = handler(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/mixins.py", line 19, in create
    self.perform_create(serializer)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/mixins.py", line 24, in perform_create
    serializer.save()
  File "/usr/local/lib/python3.8/site-packages/rest_framework/serializers.py", line 212, in save
    self.instance = self.create(validated_data)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/serializers.py", line 948, in create
    instance = ModelClass._default_manager.create(**validated_data)
  File "/usr/local/lib/python3.8/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/db/models/query.py", line 433, in create
    obj.save(force_insert=True, using=self.db)
  File "/usr/local/lib/python3.8/site-packages/model_utils/tracker.py", line 239, in save
    ret = original_save(instance, *args, **kwargs)
  File "/app/metecho/api/models.py", line 417, in save
    self.create_gh_branch()
  File "/app/metecho/api/models.py", line 501, in create_gh_branch
    project_create_branch(
  File "/app/metecho/api/jobs.py", line 62, in project_create_branch
    with local_github_checkout(user, repo_id) as repo_root:
  File "/usr/local/lib/python3.8/contextlib.py", line 113, in __enter__
    return next(self.gen)
  File "/app/metecho/api/gh.py", line 116, in local_github_checkout
    repo = get_repo_info(user, repo_id=repo_id)
  File "/app/metecho/api/gh.py", line 74, in get_repo_info
    gh = gh_given_user(user) if user else gh_as_app(repo_owner, repo_name)
  File "/app/metecho/api/gh.py", line 52, in gh_as_app
    installation = gh.app_installation_for_repository(repo_owner, repo_name)
  File "/usr/local/lib/python3.8/site-packages/github3/decorators.py", line 104, in auth_wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/github3/github.py", line 357, in app_installation_for_repository
    json = self._json(
  File "/usr/local/lib/python3.8/site-packages/github3/models.py", line 156, in _json
    raise exceptions.error_for(response)
github3.exceptions.NotFoundError: 404 Not Found

OK, restructured things, triggering this in the serializer .create with the requesting user, and moving all the outside calls into a background job… I am out of juice for hand-testing it, so let me know if you can look at it in the morning, or I will get to it when I get up tomorrow!

Two very small comments, but otherwise looks good. I can make those changes.


how to use LinearTransform if we want to not just sum all slots?

LinearTransform is useful if I pass matrix (assume slot is 4)
0:1 1 1 1
1:1 1 1 1
2:1 1 1 1
3:1 1 1 1
right, It will add all slots
0:1 1 1 1
right, will get value as input
0:1 0 0 0
1:1 0 0 0
2:1 0 0 0
3:1 0 0 0
will get all zero...why???
Add when I want to keep slot0,but sum slot[1:]:
From ckks_test.go, I know each key N in matrix pass to ckks.GenLinearTransform means the vec used for slot with offset(N)
So I try to pass
0:1 1 1 1 // add self
1:0 1 1 0 // slot1,2 add n+1, so slot1=slot1+slot2,slot2=slot2+slot3,
2:0 1 0 1 //slot 1,3 add n+2, so slot1=slot1+slot2+slot3,slot2=slot2+slot3,slot3=slot3+slot1,
3:0 0 1 1 //slot 2,3 add n+3, so slot1=slot1+slot2+slot3,slot2=slot2+slot3+slot1,slot3=slot3+slot1+slot2,
It is not working, still got the sum of all slots in each slot
So I make some other test matrix to ckks.GenLinearTransform
pass [1:[2,1,1,1] will get same value as input in each slot( 2 in value of slot0 is not working)
pass [1:[1,1,2,2] will get double value as input in each slot (1 invalue of slot0,1 is not working)
Would you give some tutorial of LinearTransform?

Hi @extrame,
You are correct, we should put a tutorial for the linear transform. What you have to give as input to ckks.GenLinearTransform are the non-zero diagonals of your plaintext matrix:
 0  1  2  3
|1, 1, 1, 1|         0: [1, 1, 1, 1]
|0, 1, 1, 0|    -> 1: [1, 1, 1, 0]
|0, 1, 0, 1|         2: [1, 0, 0, 0]
|0, 0, 1, 1|         3: [1, 0, 1, 1]

Ok, I got it.
But it seems still something wrong.
My plaintext matrix actual is :
0 1 2 3
|1, 0, 0, 0|          0: [1, 1, 1, 1]
|0, 1, 1, 1|    ->    1: [0, 1, 1, 0]
|0, 1, 1, 1|          2: [0, 1, 0, 1]
|0, 1, 1, 1|          3: [0, 0, 1, 1]

But what got is (only second slot is 0.5):
Input:
Level: 23 (logQ = 1303)
Scale: 2^45.000000
ValuesTest: (0.0000000000-0.0000000000i) (0.5000000000+0.0000000000i) (-0.0000000000+0.0000000000i) (0.0000000000+0.0000000000i)...

Output:
Level: 23 (logQ = 1303)
Scale: 2^45.000000
ValuesTest: (0.5000000000+0.0000000000i) (0.5000000000+0.0000000000i) (0.5000000000-0.0000000000i) (0.5000000000+0.0000000000i)...

According to the input matrix, I should got:
ValuesTest: (0.0000000000+0.0000000000i) (0.5000000000+0.0000000000i) (0.5000000000-0.0000000000i) (0.5000000000+0.0000000000i)...

Ok, I got the problem.
I GenLinearTransformBSGS by scale 1.
It seems that if the scale is too small, the difference in matrix vector will be ignored
So I change the scale of matrix to params.DefaultScale(). The result seems to be ok
ValuesTest: (0.0000000000+0.0000000000i) (0.5000000000-0.0000000000i) (0.0000000000+0.0000000000i) (-0.0000000000+0.0000000000i)...

Level: 23 (logQ = 1303)
Scale: 2^90.000000
ValuesTest: (0.0000000000+0.0000000000i) (0.5000000000+0.0000000000i) (0.5000000000+0.0000000000i) (0.5000000000+0.0000000000i)...

My apologies, I made a mistake in the diagonalized matrix I gave you, I was tired, here is the correct one:
 0  1  2  3
|1, 1, 1, 1|         0: [1, 1, 0, 1]
|0, 1, 1, 0|    ->   1: [1, 1, 1, 0]
|0, 1, 0, 1|         2: [1, 0, 0, 0]
|0, 0, 1, 1|         3: [1, 0, 1, 1]

The scale input in GenLinearTransform scales the matrix by a constant, when encoding, it is not the CKKS scale. The encoded matrix is automatically scaled by the prime q_i that will be used for the rescaling, such that it is an exact rescaling and does not deviate the scale of the ciphertext from the default scale.


tests: get_object returns annotations from pyi stub files

This PR verifies that quartodoc loads type annotations from stub files (.pyi) when present. Note that this may require a specific version of griffe, like v1+ (which is doing all the heavy lifting ;)

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 88.51%. Comparing base (81cccdf) to head (fcf7691).

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #360      +/-   ##
==========================================
+ Coverage   88.49%   88.51%   +0.01%
==========================================
  Files          37       37
  Lines        2843     2846       +3
==========================================
+ Hits         2516     2519       +3
  Misses        327      327

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Crash on empty else

On this code: https://github.com/LawrenceWoodman/mida/pull/18/commits/988cbe1b9b55c6ad83dbed3c91a1ed92ceabe5ae
I ran rubocop -a and it makes a few changes, and then crashes.

Expected behavior
It runs all the autocorrects.
Actual behavior
Crash:
undefined method `begin_pos' for nil:NilClass
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/style/empty_else.rb:117:in `block in autocorrect'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/corrector.rb:57:in `block (2 levels) in rewrite'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/parser-<IP_ADDRESS>/lib/parser/source/rewriter.rb:194:in `transaction'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/corrector.rb:56:in `block in rewrite'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/corrector.rb:54:in `each'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/corrector.rb:54:in `rewrite'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/team.rb:145:in `autocorrect_all_cops'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/team.rb:77:in `autocorrect'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/team.rb:105:in `block in offenses'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/team.rb:122:in `investigate'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/team.rb:101:in `offenses'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cop/team.rb:52:in `inspect_file'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:223:in `inspect_file'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:193:in `block in do_inspection_loop'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:183:in `loop'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:183:in `do_inspection_loop'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:93:in `block in file_offenses'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:103:in `file_offense_cache'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:91:in `file_offenses'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:82:in `process_file'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:59:in `block in inspect_files'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:57:in `each'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:57:in `inspect_files'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/runner.rb:35:in `run'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cli.rb:72:in `execute_runner'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/lib/rubocop/cli.rb:28:in `run'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/bin/rubocop:14:in `block in <top (required)>'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/2.3.0/benchmark.rb:308:in `realtime'
/Users/jcoyne/.rbenv/versions/2.3.0/lib/ruby/gems/2.3.0/gems/rubocop-0.42.0/bin/rubocop:13:in `<top (required)>'
/Users/jcoyne/.rbenv/versions/2.3.0/bin/rubocop:23:in `load'
/Users/jcoyne/.rbenv/versions/2.3.0/bin/rubocop:23:in `<main>'

Steps to reproduce the problem
This is extremely important! Providing us with a reliable way to reproduce
a problem will expedite its solution.
RuboCop version
Include the output of rubocop -V:
$ rubocop -V
0.42.0 (using Parser <IP_ADDRESS>, running on ruby 2.3.0 x86_64-darwin14)

@jcoyne: Please try to highlight the code that causes this error. The only else-statement I can find in the code you provided doesn't have any offenses. 😀

@Drenmi I have no idea if there's anything in my code that's causing this.

@Drenmi according to the backtrace it's because this cop expects node.parent.loc.end to return something other than nil.


⚖ Register Chainlayer Validator

Register new validator gentx on the nemeton network.

Replaced by https://github.com/okp4/networks/pull/40


[RSDK-8282]   Cannot run multiple OAK-D Network Cameras

RSDK-8282
New attribute device_info that can be a MXID, usb port path, or IP address string added.
Unit test added
README updated

@seanavery @thegreatco could you guys review and get this one through now that we've tested it on the customer setup? Rand OOO


[Wildsea] Create a character sheet for the Wildsea RPG

Changes / Comments

Created the character sheet for the Wildsea RPG.
Has a roll button at the top right of the sheet, this can be used for every roll in the game.

Roll20 Requests
Comments are very helpful for reviewing the code changes. Please answer the relevant questions below in your comment.

[x] Does the pull request title have the sheet name(s)? Include each sheet name.
Yep
[ ] Is this a bug fix?
This is the initial commit
[x] Does this add functional enhancements (new features or extending existing features) ?
This adds an entire character sheet, so they are all new features
[x] Does this add or change functional aesthetics (such as layout or color scheme) ?
There is custom layout for the sheet
[ ] If changing or removing attributes, what steps have you taken, if any, to preserve player data ?
This is the first sheet for this game so there is no existing data
[x] If this is a new sheet, did you follow Building Character Sheets standards ?
Yes, I did

If you do not know English. Please leave a comment in your native language.

Character Sheet Info Roll20 Internal Use only.

I don't understand why the newline at the end of the file check is failing. I pushed a commit that adds it but the check is still failing. Why?

Closing this to try to fix the problem with the checks failing.


Significant improvements to get scripts to a final running state and

also support OSE 3.0 GA.

Completed integration between osc-provision and osc-install for a
one-click environment provision
Added a script that can be used to create the base image in openstack
Fixed a bug in osc-sync-keys that was causing some erroneous output
Fixed SSH host key check issue with ansible scripts by setting
.ssh/config on the master
Enhancements to the script output

Probably not the final version of all of this, but close enough to start reviewing

@etsauer I looked over the PR and it looks good for the most part. Just a couple of minor comments. Let me know what you'd like to do with those.

@oybed made a few more changes per your comments. Also added a workarounds section in the do_post method. I would still like to discuss better options here, but for now this makes the install work.


fix typo about cr yaml sample

Provide a description of what has been changed
Checklist

[ ] When introducing a new scaler, I agree with the scaling governance policy
[ ] I have verified that my change is according to the deprecations & breaking changes policy
[ ] Tests have been added
[ ] Changelog has been updated and is aligned with our changelog requirements
[ ] A PR is opened to update our Helm chart (repo) (if applicable, ie. when deployment manifests are modified)
[ ] A PR is opened to update the documentation on (repo) (if applicable)
[ ] Commits are signed with Developer Certificate of Origin (DCO - learn more)

Fixes #

Relates to #

Could you fix DCO check please?


Styles not scoped within @screen directive

Hi there,
These styles:
<style scoped>
nav {
 background: blue;
}

@screen md {
  nav {
    background: blue;
  }
}
</style>

are compiled to:
<style type="text/css">
nav[data-v-264bddce] {
  background: blue;
}
@media (min-width: 768px) {
  nav {
    background: blue;
  }
}
</style>

It's supposed to be compiled to:
<style type="text/css">
nav[data-v-264bddce] {
  background: blue;
}
@media (min-width: 768px) {
  nav[data-v-264bddce] {
    background: blue;
  }
}
</style>

Never encountered this bug with Tailwind + vue-cli, so I thought it should belong here. Using standard media queries instead of @screen directive still works.
Thanks for your work!

With v0.4.6, you can make it work by
WindiCSS({
  transformCSS: 'pre'
})

Sorry, I can't make it default as it will break other processors like Sass and Stylus.

That was quick! Just tested it, it works, thanks 🙏


fix: Falling back to header if cache tags are not given from fetched object

Updated CachedFetchValue type introduced in Next.js 13.5.
When retrieving cache tags, falling back to x-vercel-cache-tags header if cache tags are not given from fetched CachedFetchValue object.

fixes #556

@susemeee could you format the code? 🙂 (by just running npm run prettier:fix at the repo's root)
Besides that I'm happy to merge the PR 😄 (thanks a lot for the PR btw! ❤ ), unless you'd like to improve the typing before the merge (https://github.com/cloudflare/next-on-pages/pull/557#discussion_r1405234521), please let me know

@susemeee I formatted the code for you so that we could merge the PR and include it in the release we're publishing, I hope you don't mind 🙏
Regarding the types improvement please feel free to open a new PR for it if you want 🙂 (if you don't want to make that improvement please let me know and I will open a PR for it)

@susemeee could you format the code? 🙂 (by just running npm run prettier:fix at the repo's root)
Besides that I'm happy to merge the PR 😄 (thanks a lot for the PR btw! ❤ ), unless you'd like to improve the typing before the merge (#557 (comment)), please let me know

Thank you! should have been known about that.

Regarding the types improvement please feel free to open a new PR for it if you want 🙂 (if you don't want to make that improvement please let me know and I will open a PR for it)

What will be the scope if the types improvement will take place?

Thank you! should have been known about that.

No worries 😄

What will be the scope if the types improvement will take place?

The scope would be pretty limited, roughly I was just thinking of this type: https://github.com/cloudflare/next-on-pages/blob/733fed9a9dbb0af27d6e1c2fb8d237a8669beb3c/packages/next-on-pages/templates/cache/adaptor.ts#L202-L216 being split into two, something like:
// https://github.com/vercel/next.js/blob/df4c2aa8/packages/next/src/server/response-cache/types.ts#L24
type CachedFetchValue = {
	kind: 'FETCH';
	data: {
		headers: { [k: string]: string };
		body: string;
		url: string;
		status?: number;
	};
	tags?: string[];
	revalidate: number;
};

// comment here indicating that this matches the type we get from Next.js
type CachedFetchValueRawFromNextjs = CachedFetchValue & {
	data: CachedFetchValue['data'] & {
		// field used by older versions of Next.js (see: https://github.com/vercel/next.js/blob/fda1ecc/packages/next/src/server/response-cache/types.ts#L23)
		tags?: string[];
	};
}

and then in the code appropriately use CacheFetchValueRawFromNextjs where the value comes from Next.js (and can contain the data.tags array) and CacheFetchValue otherwise (so that it is clear when the data.tags field can be present or not)
Or something like this 🙂 (I'd need to look at the code better but this is roughly what I had in mind)
If you'd like to do it please go ahead otherwise I can totally do it 🙂👍

@susemeee sure we can wait and see, there's no rush 🙂, it was also just a minor idea just to clarify where the tags can be present in the program flow more accurately


Improve the branching strategy in the code around SQL_PAGINATION_API_SEARCH_AFTER check

We have introduced SQL_PAGINATION_API_SEARCH_AFTER config settings to choose the approach used for pagination queries. The default value is true today which uses Point in time with search_after API to paginate the results instead of existing scroll search API. Today we have branching strategy all across the code to support both the approaches. We need to get rid of this branching checks and improve the code or get rid of scroll approach once performance testing is done.

Minor imrpovements suggested:

Add a separate PIT request implementation class in the [OpenSearchQUeryRequest](https://github.com/opensearch-project/sql/pull/2981/files/770ae4151d3e46a9fcd8246690aa20b266f69d57#diff-96f998c99595de19404d0dd5c38b71b5fb7c52160cf34a847c2785dbb05f1d03).java.