RFC #1 - questions about supporting test database syncing better

Loading / Dumping Schema
A scenario I come across fairly often is the need to drop old migrations.  For example, on a large codebase there might be dozens or hundreds of migrations.  In these cases, I find it helpful to just delete old ones (taking care to make sure all environments including dev environments).  After doing this, when new developers come on the team, they would just create an empty database from a structure.sql file (like in Rails) to get setup.
What do you think about adding the ability for node-db-migrate to dump a schema file to a directory specified in database.json after every migration?  This script would:

create a database dump
add sql statements to insert migration rows (so future db-migrate up commands would work).  This would copy the migrations table from the dev database

Here's a simple example of this kind of script (minus the migrations piece):
require('dotenv').load({silent: true})
var child_process = require('child_process');

var dumpOptions = [
  '-s',
  '-x',
  '-c',
  '-O',
  '-f',
  'db/structure.sql',
  process.env.DATABASE_URL
]

var loadOptions = [
  '-q',
  '-f',
  'db/structure.sql',
  process.env.TEST_DATABASE_URL,
]

var stdOptions = { stdio: [ 0, 'inherit', 'inherit' ] }

function prepareDatabase() {
  return new Promise(function (resolve, reject) {
    pgDump = child_process.spawn('pg_dump', dumpOptions, stdOptions);
    pgDump.on('exit', function (code, err) {
      if (err) reject(err)
      psql = child_process.spawn('psql', loadOptions, stdOptions);
      psql.on('exit', function (code, err) {
        if (err) reject(err)
        resolve(code)
      })
    });
  })
}

module.exports = prepareDatabase

if (require.main === module) {
  prepareDatabase().then(function (code) {
    console.log('Exited with ' + code);
  })
}

Thoughts?
Auto-migrate more than one env
Another helpful feature could be to specify multiple environments.  So when I run a migration I could, specify more than one environment (or maybe it just defaults to always trying to load test??).
The use case here is that when I'm testing, and I migrate, I'll always want to prepare the test database before running tests again.
Abort on pending migrations
When running tests, it would be nice to be able to quickly diff the test database's migrations with those in the dev database.  This would be less necessary if running migrations auto-migrated the test database, but still useful as a quick check.
I imagine this would be available to developers as a module, rather than through the CLI.
Thoughts on any / all of the above?  If I wrote these features, what are the chances they'd be merged?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/28019824-rfc-1-questions-about-supporting-test-database-syncing-better?utm_campaign=plugin&utm_content=tracker%2F73887&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F73887&utm_medium=issues&utm_source=github).

So far, I'm in a hurry and have not read everything right now, but I  will leave some thoughts right now.
The thing about the migrations getting outdated and unneeded is known to me, we also have switched to place a up to date sql file on a known location for all developers instead of rerunning the migration set. But this had multiple other reasons, for example that the live database contains much more data, there are included big ETL processes and so on. But I know the pain though.
I would however not drop migrations, this is not a good behavior and not consistent. Maybe it makes sense to archive some of them if you're moving forward to the next major version of your product. If you're doing this you would create a much smaller set of migrations than before, but you would also need to mitigate the changed migrations table in some way. Maybe it would be the right way to think of tagged migrations and the new migrations would have the tag on the new position where the migrator actually needs to continue from and can build the information how he needs to rebuild the migrations table.
Thank you for your ideas so far, I highly appreciate them! I will take time to complete my answer with my thoughts later on, maybe tomorrow.

Your use case about auto migrations is not a common use case and also not a common practice, thus things like default loading the test environment is out of question. Wouldn't it also make more sense to chain your test suite together with the migrations?
However executing multiple environments after each other could be added to db-migrate, but I do not really see the use in here. Obviously this is just my opinion and as long as this does not gets confusing for the user and it is helpful those, it might make sense. Maybe one can think of definable groups/sets of environments which can be executed after each other, that would from my perspective also open a use case that I would support. Migrating different database at the same time, I have and am working on projects where I have different databases at the same time, for different specialities. Most of the time this is a combination of a NoSQL or NewSQL and a RDBMS like MariaDB. Defining a group or sets could make the task of migrating both of these a bit more comfortable. Not to forget that here most of the different migrations are going to be executed, thus the migrations folder has to be configurable within the environment.

The thing about the dumps is not taking care of being generic yet. Simply dumping the db is not enough, this wouldn't be generic for all other databases and this is not something that db-migrate should do. A user can do within its userspace whatever he/she wants, but it is not a good practice to have an abstract layer for migrations that do not work on all databases in the end.
There would be the option to create json dumps instead, this needs some concepting from here though.
Apart from that it is questionable, if one would do a dump, if this is really enough without the data within those tables. At this point when data gets written through db-migrate (in the best case through the new seeders), we need to recognize this and execute the needed seeders which would have been executed. Dumping this data to json dumps or something similar would again be an option, but this again needs conception from here.

To the last point, basically one instance of db-migrate has one connection at a time. Even with mutliple environments they would execute chained after each other. Thus diffing executed migrations accross different connections might be a problem for this. Maybe we can provide an API functionality to filter the actual migrations against a provided list of migrations and an API functionality that returns actually executed migrations. If a developer would want to make a diff between two dbs, he could utilize those two functions together and archive the wished result you descibed.


On Azure Redis - ECONNRESET - operations fail without reconnect attempt

I have a fairly straightforward implementation of redis working more or less as expected, with one major exception.  In my production environment, using Microsoft Azure redis, there is a pretty bad failure mode.  I'm using the actual Azure redis service (as opposed to running my own redis in an Azure VM or something).
If I make a request after a few minutes of inactivity, it fails in the following way (I have debug_mode on, and everything not in square brackets below is console output):
[client.get]
send xxx.redis.cache.windows.net:6379 id 1: *2
$3
get
$36
772e1696-e333-4adb-b04a-3e0e15d0cffa
send_command buffered_writes: 0  should_buffer: false
[20 seconds elapses]
Redis connection to xxx.redis.cache.windows.net:6379 failed - read ECONNRESET
[client.get calls back with error: "Error: Redis connection to xxx.redis.cache.windows.net:6379 failed - read ECONNRESET"]
["error" event fires: "Error: Redis connection to xxx.redis.cache.windows.net:6379 failed - read ECONNRESET"]
Redis connection is gone from error event.
["end" event fires]
Retry connection in 255 ms
Retrying connection...
  The main issue is that there is a long wait time (10-20 seconds) on the attempted get, and then the get fails.  Then for some reason it decides to wait some more before reconnecting, then the reconnect succeeds, but too late to be of any real use at that point (having already returned failure before ever attempting to reconnect).
I specified Azure in the issue because when I do this same test with a local redis server (local meaning on a different dev machine on the LAN) and I force the server to drop the connection, the client code does exactly what you would expect (immediately responds to the reset connection and attempts reconnect, succeeding as soon as the server is back up).  It might be worth noting that my local test redis server is running on Mac OS and the Azure redis server runs on Windows.  My test environment is also running Node on Windows.
In the Azure redis case, I can leave the client idle for 30 minutes (by which time I know the server has dropped the connection), but the client does not detect it (no reconnect attempt, no error or end callbacks, just nothing at all happening).  Until I try to actually do something on the connection, in which case we have the long timeout and subsequent failure of the call.
If it was just the failure to attempt reconnect, maybe I could work around it, but the 10-20 seconds of hanging around to figure out the connection has been reset before failing would make that approach a non-starter anyway.
I'm not really sure what else I can do to debug this.  Any guidance would be appreciated.

I've had a similar issue. I was able to reprodcue it using Docker and pausing a Redis container. Node_redis queues the callbacks until you unpause the container which in my case is not ideal.

@BenHall @weull @BobDickinson are you still experiencing this? We have Windows support now and if you still experience any difficulties @bcoe might look further into it.

As I'm not using Windows please feel free to add a PR for this. But until then I can't improve the keep alive logic further.

@BridgeAR We are experiencing the same issue.
What the solution?

@BobDickinson  @mranney  and @BridgeAR it seems that in 2020 and this is still happening , I can confirm that node_redis has a consistent behavior on the connection error, reset, reconnect. IN my case as well I have clients using tls and 6380 port to connect and it almost in all clients I am using giving me below errors.
{"requestContext":{"tenantId":"1","traceId":"5343478d-7b7c-470c-a740-4cxxxxxxxxxxxxx","errorMessage":"UnknownRedisError","errorType":"CON06","errorName":"RedisError","loggerName":"RedisClient"}
[Nest] 17   - 11/05/2020, 1:33:36 AM   [CryptoModule] Object: {   "errorCode": "ECM01",   "errorName": "RedisError",   "message": "Redis connection error",   "statusCode": 0,   "exception": "Ready check failed: Redis connection lost and command aborted. It might have been processed.",   "trace": "AbortError: Ready check failed: Redis connection lost and command aborted. It might have been processed.\n    at RedisClient.flush_and_error (/usr/src/app/node_modules/redis/index.js:297:23)\n    at RedisClient.connection_gone (/usr/src/app/node_modules/redis/index.js:602:14)\n    at RedisClient.on_error (/usr/src/app/node_modules/redis/index.js:345:10)\n    at Socket.<anonymous> (/usr/src/app/node_modules/redis/index.js:222:14)\n    at Socket.emit (events.js:314:20)\n    at emitErrorNT (internal/streams/destroy.js:92:8)\n    at emitErrorAndCloseNT (internal/streams/destroy.js:60:3)\n    at processTicksAndRejections (internal/process/task_queues.js:84:21)" }  +2ms
I am fairly certain that this comes when azure Redis sees client inactivity so it just close the connection abruptly unless node_redis log each ACK/FIN of tcp socket. Is there any solution, feedback , workaround yet ?


Node 'Pad_17': Unknown input node 'Relu_18' when call import_graph_def for pb file

When I want to convert pb file to tflite OR when I just want to load pb file, I get this error for both cases.
PS: pb file generated from pth (onnx) file.
`import tensorflow as tf
converter = tf.lite.TFLiteConverter.from_frozen_graph('saved_model.pb',
input_arrays=['Pad'], # input arrays
output_arrays=['RELU']  # output arrays as told in upper in my model case it si add_10
)
`
or
`import sys
from tensorflow.python.platform import gfile
from tensorflow.core.protobuf import saved_model_pb2
from tensorflow.python.util import compat
import tensorflow as tf
from tensorflow.python.platform import gfile
with tf.Session() as sess:
model_filename ='saved_model.pb'
with gfile.FastGFile(model_filename, 'rb') as f:
graph_def = tf.GraphDef()
graph_def.ParseFromString(f.read())
#print(graph_def)
g_in = tf.train.import_meta_graph(graph_def)`

Hi,
I am facing the exact same error, when i load the my .pb  file generated from pth (onnx) file.
Did you find any solution for this?


tidying user input mistakes & adding info text

hey - sorry for the messiness. this is obviously a lesson on not doing things in a hurry. i don't have themes to check this at home right now, but i think it should work now

thanks
sorry about that
i don't know how to respond to your change request.
if i submit another pull request there is a conflict. i think there's a few more things i need to figure out about github.
r

Well you already changed everything so I merged the pull request. The review system is relatively new so I haven't used it that much either. It can be handy for isolating issues with a particular line though.


overridable tslint.json and enabled comments

moved tslint.json to tools/config/seed.tslint.json
tslint extends seed.tslint.json instead
comments in tslint.json were not possible so far due to the require in seed.config.ts
removed customRules() and CODELYZER_RULES from seed.config.ts they are no longer needed, gulp-tslint can detect the rules directory via tslint.json (adapted tslint.ts accordingly)

LGTM, I'm surprised tslint doesn't complain about the JavaScript comment in tslint.json.

Quite a nice feature in my opinion. This is always something I miss in json based configuration files. However, some IDEs might consider it as error. Thus, I am also fine if we remove the comment

I approved it, would you only rebase against master so I can merge.


Future start time for channels

https://github.com/vexorian/dizquetv/issues/464

We should be able to implement this easily with the useSlideSchedule hook, on existing channels: https://github.com/chrisbenincasa/tunarr/blob/main/web/src/hooks/programming_controls/useSlideSchedule.ts
Then we may want to add the input on the channel create screen specifically, since you used to be able to do this on channel create in diizque. Without adding this on the create form, you'd have to brielfy create a live channel and then push the start time.


draw_set_transform Doesn't Work

Version
Godot Beta 7
Issue
draw_set_transform appears to be ignored completely. See below images.

In fact this is the expected behavior.
The two transforms, the one using the draw_set_transform, and the one using the normal one stack up, so it's normal your rect rotates too.

In addition, changing the transform does not trigger update(), you should call it manually.

@groud But isn’t the point of draw_set_transform to be able to ignore the current node’s transform? This doesn’t sound right.
@bojidar-bg I am calling update in _process.

But isn’t the point of draw_set_transform to be able to ignore the current node’s transform? This doesn’t sound right.

No it is not, it simply allows drawing some specific shapes, like rotated rectangles for example, without having to rotate the node itself.
You can achieve a global transform by using multiplying the transform you need to apply by inverse of the current node's global transform. Somehow like this :
	var myTransform = Transform2D(30, Vector2(10,10))
	myTransform = get_global_transform_with_canvas().affine_inverse() * myTransform
	draw_set_transform_matrix(myTransform)
	draw_rect(Rect2(0,0,20,20), Color.aliceblue)


Feature request -  button to open map over selected spidertron

Ability to press a button to window over a spidertron or the map at a zoomed in level. My spidetrons are patrolling borders and I want to know where their current position is to check up on them or make sure my artillery bombardment wont catch them in a retaliation attack on their path between outposts. Bonus: this button or some button has a little alert tag indicating the spidertron is engaged in combat, clicking it brings the spidertron in view on the map.

https://github.com/asvanberg/spidertron-control-center/pull/4


Custom domain has expired

The custom domain expired at the end of March so the website seems to be inaccessible. Don't know if we'd want to renew it yet or otherwise reopen the site at github.io for now.

Hey guys,
As Jason said, I was the previous owner. I missed the renewal date. Sorry for missing it, I didn't check my Gmail often during the semester so I didn't realize it wasn't going to auto-renew. I paid for it a couple of days ago, but I am not sure how to link the files on the Github to the domain on Namecheap. I can transfer the ownership to anyone, or I can spend some time this weekend to figure it out. It makes no difference to me so tell me what you want.
Thanks,
Ben
P.S.
I am coming back to Philly this weekend so if any of you have time and are vaccinated we should meet up!

From: Jason Tu @.>
Sent: Sunday, May 9, 2021 3:41:19 PM
To: stogacs/stogacs.club @.>
Cc: Ben Chiu @.>; Mention @.>
Subject: Re: [stogacs/stogacs.club] Custom domain has expired (#9)
Is @bchiu42https://github.com/bchiu42 the currently one paying for the domain each year?
To my knowledge, yes. I transferred it to him in March 2019.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/stogacs/stogacs.club/issues/9#issuecomment-835883941, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AGH4YEGVOQTV7QOQ5AIHZZDTM3XO7ANCNFSM42SBVBYQ.

It probably doesn't make sense to have you hanging on to that, so I think it would be a good idea to transfer it to someone who is going to be in the club next year. I'll see if anyone in the execs board is willing to manage it.

Saw the domain expired. Repurchased and reconfigured. Confirmed working.
Any ideas on how to do this moving forward?

I can just hold onto it. Would appreciate an update every year or every few years in case the domain is no longer needed.
Have the acting president own the domain. <- Not a great plan since it creates a failure point every year.
???

Accidental misclick on the close/reopen.

Saw the domain expired. Repurchased and reconfigured. Confirmed working.
Any ideas on how to do this moving forward?

I can just hold onto it. Would appreciate an update every year or every few years in case the domain is no longer needed.
Have the acting president own the domain. <- Not a great plan since it creates a failure point every year.
???

True enough on the second point. If you're willing to hold on to it for now, (1) is probably the best way to proceed.

Copy. Resolving ticket.


README.md: typo

In the run section of readme.md, I think there is a typo in the following line:
 -parameters max_nb_hunks2::max_files_per_commit:1

could you make a pull request to fix it? Thanks!


Reproducible Builds

Greetings,
I'm Danny and I am writing for WalletScrutiny.com. I would like to request for instructions on how to build your app via a Docker container. I saw that you have an F-Droid entry, and would love to test this out.
Kind Regards,

I tried again to build your app from source, and this is the result:
Use a bare Ubuntu docker container
# Use the official Ubuntu base image
FROM ubuntu:20.04

# Prevent interactive prompts during package installation
ENV DEBIAN_FRONTEND=noninteractive

# Update package list and install basic tools
RUN apt-get update && apt-get install -y \
    curl \
    wget \
    unzip \
    git \
    vim \
    sudo

# Clean up
RUN apt-get clean && rm -rf /var/lib/apt/lists/*

# Set working directory
WORKDIR /root

Then run
docker run -it --name swissbitcoinpay-setup ubuntu-bare /bin/bash
Restarting and Reconfiguring the Container
Start a new container from your base Ubuntu image:
docker run -it --name swissbitcoinpay-setup ubuntu-bare /bin/bash

Reinstall the necessary dependencies within the container:
Update package list and install basic tools
apt-get update && apt-get install -y \
    curl \
    wget \
    unzip \
    git \
    vim \
    sudo

Install Node.js and npm
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs

Install Yarn
npm install -g yarn
Install React Native CLI
npm install -g react-native-cli

Install JDK
apt-get install -y openjdk-17-jdk

Set JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH

Download and unzip the Android SDK command-line tools
wget https://dl.google.com/android/repository/commandlinetools-linux-8092744_latest.zip -O android-sdk.zip
mkdir -p /usr/lib/android-sdk/cmdline-tools
unzip android-sdk.zip -d /usr/lib/android-sdk/cmdline-tools
mv /usr/lib/android-sdk/cmdline-tools/cmdline-tools /usr/lib/android-sdk/cmdline-tools/latest
rm android-sdk.zip

Set environment variables and update PATH
export ANDROID_HOME=/usr/lib/android-sdk
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools

Install the Android SDK packages
yes | sdkmanager --licenses
sdkmanager "platforms;android-33" "build-tools;33.0.2"

Clone the project repository and install project dependencies:
git clone https://github.com/SwissBitcoinPay/app /root/swissbitcoinpay
cd /root/swissbitcoinpay
yarn install

Build the APK:
cd android
./gradlew assembleRelease

Results (The tail end)
> Task :app:stripReleaseDebugSymbols
Unable to strip the following libraries, packaging them as they are: libconceal.so.

> Task :react-native-vision-camera:compileReleaseKotlin
w: file:///root/swissbitcoinpay/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/core/utils/CamcorderProfileUtils.kt:66:42 'get(Int, Int): CamcorderProfile!' is deprecated. Deprecated in Java
w: file:///root/swissbitcoinpay/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/core/utils/CamcorderProfileUtils.kt:90:42 'get(Int, Int): CamcorderProfile!' is deprecated. Deprecated in Java
w: file:///root/swissbitcoinpay/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/react/CameraViewModule.kt:13:46 'ReactModule' is deprecated. Deprecated in Java
w: file:///root/swissbitcoinpay/node_modules/react-native-vision-camera/android/src/main/java/com/mrousavy/camera/react/CameraViewModule.kt:37:2 'ReactModule' is deprecated. Deprecated in Java

> Task :react-native-barcode-zxing-scan:verifyReleaseResources FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-barcode-zxing-scan:verifyReleaseResources'.
> A failure occurred while executing com.android.build.gradle.tasks.VerifyLibraryResourcesTask$Action
   > Android resource linking failed
     ERROR: /root/swissbitcoinpay/node_modules/react-native-barcode-zxing-scan/android/build/intermediates/merged_res/release/values/values.xml:2759: AAPT: error: resource android:attr/lStar not found.

* Try:
> Run with --stacktrace option to get the stack trace.
> Run with --info or --debug option to get more log output.
> Run with --scan to get full insights.
> Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.3/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

BUILD FAILED in 1m 46s
842 actionable tasks: 681 executed, 161 up-to-date

Hello @xrviv, and sorry for the long delay!
We have just added a convenient Dockerfile in the repo, just can reproduce an Android build by simply running:
docker build -t sbp-builder . -o sbp-output
(requires around 8.12 GB of storage)
sbp-output is the name of your folder where the built apk will be put
Please note that this Dockerfile generate a release build, with a new keystore generated on each build. Therefore, direct updates are not possible. (you need to uninstall the app and install it again).
Please reopen an issue if you face errors or have any other questions, and feel free to purpose a PR to improve the system.

Thank you. Now testing.


Update the test script for more fine grained control

This PR updates the run-tests.sh script to allow for passing a test name and also a test suite to the command.
Examples:
# Run all tests
npm run test

# Run players.test.ts integration and unit test
npm run test players

# Run only the countries unit test
npm run test countries u

# Run only the snapshots integration test
npm run test snapshots i

Note: the u and the i can be replaced with any of the following and still work:
U, I, -u, -i, -U, -I, integration, unit
There is currently no support for passing multiple test file names, but that could potentially be added in the future.
For now just being able to narrow it down to a single file name feels useful enough.
Updated docs for server contribution with these examples.

this is beautiful, and thanks for the typo fixes too 😭
i'll test and merge as soon as I can


COGLayer

COGLayer: A deck.gl layer to render a COG directly
Overview
A COG is a single GeoTIFF file that holds multiple resolutions of raster data. See https://cogeo.org for more info.
COGs are internally tiled. Thus they're a great fit for the TileLayer, which renders a tiled dataset. However the TileLayer can't be used directly, because it assumes a web-mercator tiling system. Even COGs that are in the web mercator projection can't be used directly, because the internal indexing doesn't match the global OSM indexing.
Hence there are three main steps I need to do to get this working:

Parse COG metadata to construct a 2D TileMatrixSet
Custom TileLayer that places an arbitrary matrix of tiles
Reproject data in the BitmapLayer

Parse COG metadata to construct TileMatrixSet
Basically working code:

Code
var fs = require('fs')
var geotiff = require('./node_modules/geotiff/dist/geotiff.bundle')
var buf = fs.readFileSync('m_3411861_ne_11_060_20180723_20190208.tif')

var tif;
geotiff.fromArrayBuffer(buf.buffer).then(x => {
  tif = x
})
var image;
tif.getImage().then(x => {
  image = x
})

/**
 * Get the geotransform of the image at a specific overview level
 *
 * @param  {Object} tif GeoTiff object
 * @param  {Number} ovrLevel overview level
 * @return {Object}          [description]
 */
function getGeotransform(tif, ovrLevel = 0) {
  var ifds = tif.fileDirectories;
  var firstIfd = ifds[0][0];

  // Calculate overview for source image
  var gt = [
    firstIfd.ModelPixelScale[0],
    0.0,
    firstIfd.ModelTiepoint[3],
    0.0,
    -firstIfd.ModelPixelScale[1],
    firstIfd.ModelTiepoint[4],
  ]

  // Decimate the geotransform if an overview is requested
  if (ovrLevel > 0) {
    var bounds = getBounds(gt, firstIfd)
    var ifd = ifds[ovrLevel][0];
    // TODO implement the translation and scale
    // Maybe use math.gl?
    gt = affine.Affine.translation(bounds[0], bounds[3]) * affine.Affine.scale(
        (bounds[2] - bounds[0]) / ifd.ImageWidth.value,
        (bounds[1] - bounds[3]) / ifd.ImageHeight.value,
    )
  }
  return gt;
}

function getBounds(gt, firstIfd) {
  tlx = gt[2]
  tly = gt[5]
  brx = tlx + (gt[0] * firstIfd.ImageWidth)
  bry = tly + (gt[4] * firstIfd.ImageLength)
  return [tlx, bry, brx, tly];
}

function create_tile_matrix_set(tif) {
  var matrices = [];
  var ifds = tif.fileDirectories;
  var firstIfd = ifds[0]

  for (var i = 0; i < ifds.length; i++) {
    var ifd = ifds[i][0];
    var gt = getGeotransform(tif, i);

    var matrix = {
      identifier: ifds.length - i - 1,
      topLeftCorner: [gt[2], gt[5]],
      tileWidth: ifd.TileWidth,
      tileHeight: ifd.TileLength,
      matrixWidth: Math.ceil(ifd.ImageWidth / ifd.TileWidth),
      matrixHeight: Math.ceil(ifd.ImageLength / ifd.TileLength),
      scaleDenominator: gt[0] / 0.28e-3,
    }
    matrices.push(matrix);
  }

  // Reverse order of array so that identifier 0 (lowest resolution) is first
  matrices.reverse();

  // Is this stable?
  var geoKeys = firstIfd[1];
  var epsg = geoKeys.ProjectedCSTypeGeoKey || geoKeys.GeographicTypeGeoKey

  var tms = {
    title: "Tile matrix for GeoTIFF",
    identifier: 'identifier or str(uuid.uuid4())',
    supportedCRS: "http://www.opengis.net" + `/def/crs/EPSG/0/${epsg}`,
    tileMatrix: matrices
  }

  return tms;
}

Note: you should be able to use math.gl where affine is used. If you look into the affine code, the source for the transformation matrices is pretty simple.
Custom TileLayer that supports TMS
While this could conceivably be included in deck.gl upstream, for now it would be better to work on it locally. The TMS provides a mapping from x, y, z values to locations in space. Note these are arbitrary locations, and should not be confused with the x, y, z indexing in the OSM system.
There are a few parts to this:

Determining reprojection function
Finding visibility

Determining reprojection function
First you need to find the reprojection string. So if the EPSG code in the geotiff is EPSG:26911, send a request to
https://epsg.io/26911.proj4

that returns
+proj=utm +zone=11 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs

Then pass that to proj4.
Finding visibility
Deck.gl uses frustum culling to determine the visibility of tiles. Hence I need to modify the tile-2d-traversal.js script to work with an arbitrary TMS.
I'll need to overwrite getBoundingVolume to find the tile's bounding box in the local CRS, then reproject it. Note that getBoundingVolume deals in deck.gl's common space, this is a web mercator projection of world size 512, with the origin in the top left.
Note that one caveat to TMS is that child tiles don't have strict nesting. Hence I believe it’s not always true that for any tile t, it has only one parent. This makes visibility computations harder, as finding a tile's children is less straightforward. With OSM indexing, given any tile t, there are always exactly four children tiles. With non-strict children, you essentially need to make a pass over all tiles at that level, checking if the tile's bounding box intersects with the parent.
Therefore you'll also have to overwrite the children method to determine the tile's children.
Since Xiaoji is such a good engineer, you might have to overwrite only those two methods!
Reproject data in renderSubLayers
This is explored a bit in https://github.com/kylebarron/deck.gl-raster/issues/37. Basically you'll need to reproject the vertices within createMesh from the source CRS to one deck can understand.
Note that the mesh already is created at a certain resolution that's derived from the zoom level.
Note that this will only be possible with the RasterLayer, not the RasterMeshLayer, as the mesh layer needs to combine elevation data, and that would only work if you could fetch elevation data in the same local coordinate system.

Note that one caveat to TMS is that child tiles don't have strict nesting

Note however that you have access to the coordinates of each tile in the local coordinate system. So if tile t has (local) coordinates [2, 2, 4, 4], then to find child tiles, you want to find tiles at level ("identifier" in TMS speak) n + 1 that intersect that box. Each level of the TMS has data:
{
    "type": "TileMatrixType",
    "identifier": "4",
    "scaleDenominator": 34884088.0626143,
    "topLeftCorner": [
        -9501965.72931276,
        20003931.4586255
    ],
    "tileWidth": 256,
    "tileHeight": 256,
    "matrixWidth": 8,
    "matrixHeight": 16
}

Since at each level the tile width and height must be regular, it should be possible to do a line or two of math to find the grid of tiles desired, without doing a loop. You just always need to know the coordinates in the local coordinate system of the current tile.

Note you'll probably also need masking to discard areas of the tiff that are nodata.


Feature wishlist

A list of features I think we should add:

[ ] aspect-ratio CSS property
[ ] gap for Flexbox
[ ] CSS transforms (quite old now)
[ ] CSS color functions
[ ] contain CSS property (4 types)
[ ] Forms (mostly as a parent for other things)
[ ] Scroll snap
[ ] overscroll-behavior CSS property
[ ] font-variant-position CSS property
[ ] CSS math functions
[ ] font-palette CSS property
[ ] URLPattern API
[ ] IndexedDB (multiple levels?)
[ ] Style container queries (currently have size container queries)
[ ] text-wrap: balance
[ ] Trusted Types
[ ] Declarative Shadow DOM
[ ] Web Audio API
[ ] backdrop-filter CSS property
[ ] video.requestVideoFrameCallback() method
[ ] Multi-column layout
[ ] scrollend event
[ ] Streams API
[ ] Fetch API
[ ] CSS Typed OM
[ ] Web Share API
[ ] margin-trim CSS property
[ ] text-indent CSS property
[ ] WebAssembly
[ ] WasmGC

To elaborate on CSS color functions, I think we need to split it apart into at least:

Support for the color() syntax with some color space
Support for color spaces like P3 using color(display-p3 1 0.5 0)
Support for color spaces like Oklab using either color(oklab 66.016% -0.1084 0.1114) or oklab(66.016% -0.1084 0.1114)

Some color spaces like Oklab and Oklch should almost certainly be a single feature.

I'd also like to add features relating to https://web.dev/articles/vitals:

[ ] Largest Contentful Paint
[ ] Layout Instability API

No FID because FID is a metric that can only be measured in the field.


Check on compatibility with Solr 5

No.
Well, indexing works. Search doesn't.
I'm pushing this off for the next release, though.

Not sure if this 18 month old issue is still relevant, but here are the changes I had to make to the solr_core config to get it to work (indexing and search) with Solr 6.2:
solrconfig.xml

change requesthandler class="solr.JsonUpdateRequestHandler" to class="UpdateRequestHandler" (there's a single unified request handler in Solr 6)
remove the CSVRequestHandler definition
remove the AdminHandler definition (it's included implicitly)

schema.xml

change fieldtype definitions solr.(Int|Long|Float|Double|Date)Field to solr.Trie(Int|Long|Float|Double|Date)Field
remove all enablePositionIncrements="(true|false)" attributes from filters
remove units="degrees" from location_rpt fieldType definition
since the ThaiWordFilterFactory seems to have gone, I remove the text_th fieldType definition (perhaps including some of the extra lucene analysis libs would have fixed this instead.)

I think that probably the schema changes would be compatible with Solr 4. Not sure about the config ones.

@mikesname, I am attempting the same update - except to 6.3.0 and came across issues exactly as you described. But I caught one extra that I cannot solve. After clearing all the errors, I got:

Error CREATEing SolrCore 'omeka': Unable to create core [omeka] Caused by: /opt/solr/solr-core/omeka/snapshot_metadata

Did you have this issue? Any thoughts?

Thanks for sharing this. I can confirm above changes also work with Solr 6.3

Excellent advice. Just got it working with a 6.3.0 too.

Hi benjaminh and MNicolou,
I am still having trouble making this to work. Could you please share some details of your setup? Particularly

Did you set up Solr 6.3 standalone or with Tomcat?
After you set up Solr, how did you add omeka core to the Solr engine?
When it comes to configuring SolrSearch plugin, exactly what strings did you use for 1) ServerHost 2) ServerPort and 3) CoreURL?

Thanks in advance for your help.

You can follow http://lucene.apache.org/solr/quickstart.html for quickstart instructions. I did set up Solr as a standalone server (not sure if a solr installation under tomcat is supported as of solr 6.3 version)

You need to copy the omeka core folder into solr-6.3.0/server/solr

In my case, I'm still working on a localhost instance. So :

ServerHost = localhost
ServerPort = 8983 (default)
Core URL = /solr/omeka/

Thanks benjaminh!
I installed the standalone server and passed all the test in quickstart.
i copied omeka core folder (SolrSearch/solr-core/omeka) to solr-6.3.0/server/solr/
restarted solr service
when I opened http://solrserver:8983 I can see the admin dashboard.
Do i have to add the omeka core through admin dashboard?
Anyway, i modified the solrconfig.xml and schema.xml files to add the omeka core:
name: omeka
insancedir: solr-6.3.0/server/solr/omeka
dataDir: data
core was added. but http://solrserver:8983/solr/omeka shows 404 error
http://solrserver:8983/solr/#/~cores/omeka shows the core info, though.
In omeka SolrSearch plugin config page:
Server Host:  solrserver
Server Port: 8983
Core URL: /solr/omeka
says Solr connection is invalid.
any ideas?
Thanks again!

I'm not expert in solr, so I can only compare with my config.

you should not need to manually add the omeka core through solr admin dashboard
when and why do you need to access http://solrserver:8983/solr/omeka ?
I don't think you need to add instanceDir and dataDir manually (and dataDir should be solr-6.3.0/server/solr/omeka/data/). These parameters should be visible on the admin dashboard. In my case, it shows full path to directories btw…

benjaminh, thanks for your continued assistance.
here is a rundown of what I did to try to make things work. say i have 2 servers, webserver and solrserver. webserver runs the omeka system and solrserver runs solr. i already omeka running on webserver.
on solr server:
cd /root
wget http://apache.claz.org/lucene/solr/6.3.0/solr-6.3.0.tgz
tar zxvf ./solr-6.3.0.tgz
cd solr-6.3.0/bin
./install_solr_service.sh /root/solr-6.3.0.tgz -d /var/log/solr -i /usr/local/ -p 8983 -s solr -u solr
#the above script comes with the solr package and simply installs solr in /usr/local/, create a solr user, and a service startup script in /etc/init.d/
#the script will tell you that the solr is installed and successfully started on port 8983. this can be verified by opening http://solrserver:8983 in web browser. Note that the http://solrserver:8983 will say "no cores available" (that was why I thought i needed to manually add the omeka core to the solr server)
#below is the output of the script:
Creating new user: solr
Extracting /root/solr-6.3.0.tgz to /usr/local/
Installing symlink /usr/local//solr -> /usr/local//solr-6.3.0 ...
Installing /etc/init.d/solr script ...
Installing /etc/default/solr.in.sh ...
Service solr installed.
Customize Solr startup configuration in /etc/default/solr.in.sh
Waiting up to 180 seconds to see Solr running on port 8983 []
Started Solr server on port 8983 (pid=22320). Happy searching!
Found 1 Solr nodes:
Solr process 22320 running on port 8983
{
"solr_home":"/var/log/solr/data",
"version":"6.3.0 a66a44513ee8191e25b477372094bfa846450316 - shalin - 2016-11-02 19:52:42",
"startTime":"2016-12-09T16:02:16.915Z",
"uptime":"0 days, 0 hours, 0 minutes, 10 seconds",
"memory":"12.7 MB (%2.6) of 490.7 MB"}
Next, I stoped the solr service:
service stop solr
cd /root
wget http://omeka.org/wordpress/wp-content/uploads/Solr-Search-2.3.0.zip
unzip Solr-Search-2.3.0.zip
#copy SolrSearch omeka core to Solr installation:
cp -a SolrSearch/solr-core/omeka /usr/local/solr-6.3.0/server/
#make all the necessary changes to /usr/local/solr-6.3.0/server/omeka/conf/schema.xml and /usr/local/solr-6.3.0/server/omeka/conf/solrconfig.xml
#create data dir in omeka solr core
mkdir /usr/local/solr-6.3.0/server/omeka/data
chmod og+rwX  /usr/local/solr-6.3.0/server/omeka/data
#restart solr server
service solr start
Then I went to Omeka SolrSearch plug in configuration page on the webserver
and put in
Server Host: IP of solrserver
Server Port: 8983
Core URL: /solr/omeka
and press "save setting" and the page just says: Solr connection is invalid.
Same thing if I install Solr on the same server as Omeka (i.e. on the webserver and use localhost in "Server Host" field.
I am not sure what i am doing wrong so that the handshaking btw omeka and solr does not happen.
Thanks for reading and helping!

One thing seems suspicious : when you copy solrsearch omeka core to solr installation, you mentioned
cp -a SolrSearch/solr-core/omeka /usr/local/solr-6.3.0/server/. Destination folder should be /usr/local/solr-6.3.0/server/solr

that was a typo in the reply. yes it was copied into the solr directory.
how did you start your solr server?

Simply with command line : ./bin/solr start in your solr-6.3.0 directory

ok. i am some progress, but still not there yet.
The funny thing about solr is that, when solr service is launched under root account, solr is not capable of loading any cores in server/solr/ directory automatically. third party cores can be automatically detected when solr is launched under a regular user account. I think this is a defect of solr.
That said, when I launch solr as the user 'solr', the omeka core in solr-6.3.0/server/solr/omeka is automatically detected and loaded (verified via browser http://localhost:8983)
however, omeka still complains that 'Solr connection is invalid.' when I used the following configuration:
Server Host: localhost
port: 8983
URL: /solr/omeka/
I am running out of thoughts!

Hi,
I am trying to test Omeka Solr Search addon.
I have followed the apache quick guide. I decompressed solr on /home/user/bin/solr/ and launch it with:
run: bin/solr start -e cloud -noprompt
At this point, I am able to access to the solr administration interface (http://localhost:8983/solr/).
The problem is about the omeka core. I copied solr-core/omeka to /home/user/bin/solr-6.4.1/server/solr and restarted solr but the new core is not recognized. I tried also to put it with /home/user/bin/solr-6.4.1/example/cloud/ without success.
Is there something to do to install the omeka core?

@guitarscape I recently had some issues establishing a connection between two virtual machines (one for omeka, and one for solr). I don't know if this can help, but I found out that the "Solr connection is invalid" message is just the result of a http request to the solr instance (see helpers/SolrSearch_Helpers_Index.php and lib/solr-php-client/Service.php files. So maybe you can manually try to access the ping URL http://localhost:8983/solr/omeka/admin/ping and see if you have more info on why it fails to connect

@pprw In the dashboard of the solr administration interface, among JVM settings, you should check that -Dsolr.solr.home parameter is correctly set. In your case, it should be : /home/user/bin/solr-6.4.1/server/solr
I had the same issue once, I didn't figure out why solr came up with wrong settings (probably a misconfiguration from me), but manually correcting this parameter solved the issue.

I followed @mikesname amendments and the plugin works for me with Solr 7.0.1 too. However, with many warnings in logs. Hopefully this plugin is going to be adjusted for newer Solr?

@benjaminh I was following @guitarscape's issues with configuring the server and a "Solr Connection Is Invalid Message." I made the solrconfig.xml and schema.xml amendments and have the Omeka core successfully running in Solr 7.0.1. I am getting the same message, but the ping URL isn't displaying any errors.

Any suggestions?
Thank you

I followed @mikesname s solution to modifying the files
A few notes though:
'--' is not allowed in comments, so when blocking off sections of xml that have comments contained within them, you get an exception.
And the line: ~1123 on solrconfig.xml is changed to AdminHandlers (looks like:     ) is what has to be deleted.
@piotreba , I ran into the same issue you did. Omeka has been updated since this plugin was last updated. On newer versions the SolrSearchField function takes and utilizes an argument in beforeSave(). This plugin uses the old version that doesn't supply one, so the argument is not needed. You can just add $args to the function declaration at the bottom of SolrSearchFile.php in \plugins\SolrSearch\models\SolrSearchField.php so that it matches the interface.


The last row of transformation matrix is redundant

The last row of a transformation matrix is always [0,0,0,1] and thus can be removed.

As far as I'm concerned all affine transformations does not modify the last row in the transformation matrix and this row is only modified when making a projection (from a higher dimensional object)

As far as I'm concerned all affine transformations does not modify the last row in the transformation matrix and this row is only modified when making a projection (from a higher dimensional object)

By the way, it's usually more performant to collapse matrices into arrays (in this case, collapsing [[f64; 4]; 3] into [f64; 12]), and this technique is used, for example in imageproc

By the way, it's usually more performant to collapse matrices into arrays (in this case, collapsing [[f64; 4]; 3] into [f64; 12]), and this technique is used, for example in imageproc

I agree. I also agree with the single array thing but would like to see some benchmarks first, as I could not find any online. I need to resolve some conflicts so I will do that later.

I agree. I also agree with the single array thing but would like to see some benchmarks first, as I could not find any online. I need to resolve some conflicts so I will do that later.

Conflicts solved. Could you merge this PR and I'll open another PR regarding collapsing the matrix. (the cargo clippy warnings will also be dealt with in another PR)

Conflicts solved. Could you merge this PR and I'll open another PR regarding collapsing the matrix. (the cargo clippy warnings will also be dealt with in another PR)

I will do that.

I will do that.


Adding qna.yaml file for crash module

If your PR is related to a contribution to the taxonomy, please, fill
out the following questionnaire. If not, replace this whole text and the
following questionnaire with whatever information is applicable to your PR.
Describe the contribution to the taxonomy

...
...
...

Input given at the prompt

   ...

Response from the original model

  ...

Response from the fine-tuned model

  ...

Contribution checklist

[ ] The contribution was tested with ilab generate
[ ] No errors or warnings were produced by ilab generate
[ ] All commits are signed off (DCO)
[ ] The qna.yaml file contains at least 5 seed_examples
[ ] The qna.yaml file was linted and prettified (yaml-validator can do both)
[ ] An attribution.txt file in the same folder as the qna.yaml file
[ ] Content does not include PII or otherwise sensitive or confidential information
[ ] Content does not include anything documented in the project's Avoid these Topics guidelines

The data generation is not throwing any errors while running
ilab data generate --taxonomy-path <path>
Below is the image for check-yaml.py output


TypeError on most endpoints

It seems there is a problem with the data parser... Most Endpoints show a similar error.
This is the response of the germany endpoint:
{
	"error": {
		"message": "An error occurred.",
		"details": "Cannot read properties of undefined (reading 'weekIncidence')",
		"stack": "TypeError: Cannot read properties of undefined (reading 'weekIncidence')\n    at /usr/src/app/src/responses/germany.ts:102:4\n    at Generator.next (<anonymous>)\n    at fulfilled (/usr/src/app/dist/responses/germany.js:5:58)\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
	}
 }

and the states endpoint
{
	"error": {
		"message": "An error occurred.",
		"details": "Cannot read properties of undefined (reading 'weekIncidence')",
		"stack": "TypeError: Cannot read properties of undefined (reading 'weekIncidence')\n    at /usr/src/app/src/responses/states.ts:111:6\n    at Array.map (<anonymous>)\n    at /usr/src/app/src/responses/states.ts:104:32\n    at Generator.next (<anonymous>)\n    at fulfilled (/usr/src/app/dist/responses/states.js:5:58)\n    at runMicrotasks (<anonymous>)\n    at processTicksAndRejections (node:internal/process/task_queues:96:5)"
	}
}

Unfortnatly i am Not at home and have no Equipment to Debugger this!
Will be at home tomorrow or thoursday!
Bevor ich have Not Chance to Patch this!
I am sorry!


feat: truncate fqdn and add copy to clipboard button

Description:
We added new buttons to copy fqdn of ClusterHost to clipboard
Checklist:

[X] Related tests were updated
[X] Related documentation was updated

Is the truncation of the fqdn the result of adjusting the griditem span values?

@brhatiga yes. The user can still see the full fqdn via the tooltip


[Retrospective] Release 1.3.1

How to use this issue?
Please add comments to this issue, they can be small or large in scope.  Honest feedback is important to improve our processes, suggestions are also welcomed but not required.
What will happen to this issue post release?
There will be a discussion(s) about how the release went and how the next release can be improved.  Then this ticket will be updated with the notes of that discussion along side action items.

We need to fix the Docker image build to publish the staging image to DockerHub without creating a dependency for ECR.

Closing the retrospective for now. Please feel free to add additional comments to this issue as needed.


Broken tests on master?

Hello!
Maybe it's just me, but there are 4 tests currently failing on master. Git bisect shows that @amaanq's commit 6cd93c96fde2aef0da13a2948cadab0bd3e96895 is the culprit (at least for some of the broken tests).
Steps to Reproduce:
I'm using:
Node: v20.8.1
Tree-sitter: 0.20.8

checkout master
npm install
npm run build
npm run test
fail

Running the above commands produces a diff on the generated files which suggests they weren't regenerated after one of the more recent commits.

Interestingly, I'm seeing the i flags being removed from the grammar.json which is likely the cause for some of the broken tests...
Tests
Case insensitive keywords

Readonly properties

Capitalized logical operators

Associativity of null-coalescence

use tree-sitter master, it supports the regex i flag

That would explain it---however, that requirement is not captured in package.json

What's an easy way to compile/install tree-sitter master?

yeah node and master are a bit disjunct atm, my hands are tied but I'd like a new release though
cargo install --git https://github.com/tree-sitter/tree-sitter

@amaanq, any change we can get a node release soon?

soon hopefully


Menu appear when I click left button.

I push left button more than 3 seconds and then the menu appeared.

see holdToDisplay in docs


Repository URL points to another project

https://github.com/emberjsthemes/ember-metismenu/blob/master/package.json#L16

Thank you for pointing this out. It has been fixed.


Are Realtime Updates/WebSockets Available?

Question

Is there a way to consume the DAPI Client API similar to a WebSocket with realtime updates? @KamuelaFranco mentioned WebSockets are the primary implementation in issue #21 .
If so, is there an example of a sample pattern to implement in Javascript, Java/Kotlin, etc?

WebSockets are now the primary connection mechanism. HTTP requests are a default fallback in the event of socket communication failure.

An example of this is a client that needs to listen for a specific document to be updated from the fetchDocuments call.
Use Case

A user has two apps, Dash Wallet for holding Dash, and a Dash Feature app that uses Dash for an awesome feature. Using Dash Feature requires Dash, and securely initiating a transaction.
In order to create a seamless experience the Dash Feature app adds a request to DAPI for the given user.
DashWallet has a WebSocket call to fetchDocuments listening for any inbound requests. Once a request is received they can verify/decline (similar to Venmo in the U.S.), using existing Dash Wallet authentication.
Dash Feature has it's own WebSocket in order to listen for the completion of the transaction, and carries out the intended feature.

Example from Firebase's Firestore Database
Firebase's Firestore client libraries implement this pattern as outlined in Get realtime updates with Cloud Firestore.
val docRef = db.collection("cities").document("SF")
docRef.addSnapshotListener { snapshot, e ->
    if (e != null) {
        Log.w(TAG, "Listen failed.", e)
        return@addSnapshotListener
    }

    if (snapshot != null && snapshot.exists()) {
        Log.d(TAG, "Current data: ${snapshot.data}")
    } else {
        Log.d(TAG, "Current data: null")
    }
}

Hello Adam!
It's not implemented yet but we are definitely planning to do that later.
Of course, you can make a PR. We always welcome contributions.
It doesn't look like a big deal. It requires some updates in Drive:

Add server streaming gRPC endpoint
Keep filters from consumers in memory. It might be event full-featured queries like fetchDocuments accepts.
In block execution process on transaction commit asynchronously test new documents against the filters and send them through the endpoint if a document is following to query filter.

We have a similar mechanism in DAPI SPV endpoints, but with documents and queries, it should be much easier.

Hey Ivan, 👋
I appreciate the invite to contribute to the code! If my co-founder and I use DAPI our next feature we'll be exploring this further and would love to add value to the codebase.

Sounds good! Don't hesitate to ask and share your ideas.


HDDS-6684. Move unit tests out of integration

What changes were proposed in this pull request?
Some new EC tests are in integration-test, but are real unit tests.  This PR moves them out to hdds-client and ozone-client, depending on where the classes being tested are.
https://issues.apache.org/jira/browse/HDDS-6684
How was this patch tested?
https://github.com/adoroszlai/hadoop-ozone/actions/runs/2254570634

Apart from the code clean up, the pom file changes indicate that the hdds-client test jar should have been in place independent of EC?

the hdds-client test jar should have been in place independent of EC?

It is needed only to be able to use the test classes just being moved.

LGTM

Thanks @ayushtkn, @kaijchen and @kerneltime for the review.


[RULE] Azure Firewall Should Be Deployed Across Availability Zones

Existing rule
No response
Suggested rule
Azure Firewall Should Be Deployed Across Availability Zones as per https://azure.github.io/Azure-Proactive-Resiliency-Library-v2/azure-resources/Network/azureFirewalls/#deploy-azure-firewall-across-multiple-availability-zones
Pillar
Reliability
Additional context
No response

:shipit:

Hi @BernieWhite,
Should we look for more than one member in the array, or should we specifically look for three members in the array?

@BenjaminEngeset more then one.


subsets: remove MGI subset and add expression ribbon subset

Remove/retire MGI ribbon terms subset labels, as no longer relevant
subsetdef: fbbtsubset_mgiribbons "MGI ribbon terms"
and add subset labels for current FlyBase anatomy expression ribbons under label:
subset: expressionslim_flybase_ribbon "FlyBase ribbon terms"
terms for subset:
egg	FBbt:00000034
oocyte	FBbt:00004886
stem cell	FBbt:00007014
imaginal tissue	FBbt:00047552
anlage	FBbt:00005426
primordium	FBbt:00005495
sensory system	FBbt:00007692
embryonic sensory system	FBbt:00005827
nervous system	FBbt:00005093
presumptive embryonic/larval nervous system	FBbt:00001055
circulatory system	FBbt:00005057
presumptive embryonic/larval circulatory system	FBbt:00005676
tracheal system	FBbt:00005024
presumptive embryonic/larval tracheal system	FBbt:00005569
digestive system	FBbt:00005055
presumptive embryonic/larval digestive system	FBbt:00000438
adipose system	FBbt:00005065
presumptive embryonic/larval adipose system	FBbt:00005708
endocrine system	FBbt:00005068
presumptive embryonic/larval endocrine system	FBbt:00005712
excretory system	FBbt:00005056
reproductive system	FBbt:00004857
integumentary system	FBbt:00004969
presumptive embryonic/larval integumentary system	FBbt:00005392
muscle system	FBbt:00005069
presumptive embryonic/larval muscle system	FBbt:00005647

how sure are you that no-one is using fbbtsubset_mgiribbons?

97% - Marta added them as a starting set for expression/pheno ribbon work. But the set above is the final ribbon set.


"Added shadow using framer-motion"

Please review my pr.

Hey @falgun143 , Nice work with the issue, but the animation is not looking that good as of now, esp the yellow tint.
Please donot add that shadow. The hover animation is good tho.

@pooranjoyb  ok going to change that now.And update it .

@pooranjoyb please check.

Please resolve the conflicts. @falgun143


Expand/Collapse file when compare code failed

Gitea version (or commit ref):1.11.3
Git version: <IP_ADDRESS>
Operating system: Centos7
Database (use [x]):

[ ] PostgreSQL
[x ] MySQL
[ ] MSSQL
[ ] SQLite

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

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

Log gist:

Description
When I expand file in the compare code view, it doesn't work, but at a review code view, the expand file is just fine.
When I inspect element, I find the web report a error "ReferenceError: Can't find variable: SimpleMDE" at the jquery.min.js:1386
...
Screenshots

Currently (1.12.0+dev-211-g316db0fe7) it's not working for expansion of short chunks in the review page either:

The same problem exists in 1.12.1 - I'm not sure if the root cause is still the same.

I think this is fixed already. OP please reopen if not.


Add my name to the fans section

@yegor256/z please, pay attention to this pull request

@marijnz0r/z this pull request is too small, just 1 lines changed (less than 10), there will be no formal code review, see §53 and §28; in the future, try to make sure your pull requests are not too small; @yegor256/z please review this and merge or reject

@marijnz0r thanks!

Job gh:yegor256/elegantobjects.github.io#93 is not assigned, can't get performer


Re-evaluate sign up form

First, evaluate it we will actually use the form.  If we move forward, I recommend splitting it up into multiple forms for different participant types

Let's simply remove it.  Attendees can sign up through the Code for Atlanta meet-up group.


Hackaday Rex Updated with License file

Hi Team, Thank you for your comments.
I've added an MIT license (seemed to be the most open I could imagine - but let me know if you'd prefer something else).
Next up I'll work on updating the build instructions.
Thank you for your work promoting these projects! Great work.

Processed.


Missing requirements

Please read _utilities.py and _github_utilities.py and identify dependencies which are not listed in requirements.txt .
git-bob think about this

Which of these are no standard python libs?
git-bob comment

How about nbformat?
git-bob comment

Ok, please send a pull-request adding these to requirements.txt if they are not in there yet. Also modify setup.cfg so that it reads the requirements.txt file instead of having another list of requirements.
git-bob implement this


Interrupt dialog not working for unknown intent

Describe the bug
I have a parent dialog triggering a child via an intent. There is also an unknown intent trigger in the parent linked to a Q and A knowledge base.
On the screenshot attached I start with an unknown intent and the Q and A triggers as expected. I then use the intent to trigger the child dialog. When I run the unknown intent again (trying to trigger the Q and A) nothing happens and I am reprompted for the question in the child. If I run the intent again the parent triggers as expected.
The question in the child is set to allow interruption and it works when the intent is recognized but fails on the unknown intent. If I am in the parent everything works as expected.
Version
1.3.1
OS

[ ] Windows

To Reproduce
As described above
Expected behavior
When an unknown intent 'xyz' is presented in the child dialog as the interruption is set to 'true' the parent trigger should activate.
Screenshots

Hi, please can I bump this one I was hoping to launch Q and A next Monday......

Hi @philip-mc I'm looking into this. Are you able to share a repository of your bot? I'd like to understand some more of the specifics of how you have it configured.

Morning, Ill give you a DM as the project is a business one and perhaps we can arrange a videocall/Teams screenshare with me and my lead developer?

I can share the privately with you via screenshare with one of our devs if you get an email I can contact you on at all?

Afternoon, Ive put a mock bot together and invited you to take a look. Let me know if you can figure out why the 'unknown intent' trigger of the parent will not go off even though it does for intent recognised.
As a separate note I have noticed composer creating separate apps for each dialog which may or may not be related - https://github.com/microsoft/BotFramework-Composer/issues/6423

@philip-mc I believe this is by design (with regards to the interruption + unknown intent). I think interruptions only trigger other actual intents (not the unknown intent). I have confirmed that other intents will interrupt and trigger.
I think to accomplish your goal, there are other (more appropriate) approaches. I am working to confirm all of this and will share when I have that complete.

Hi @philip-mc I have confirmed that the reason for the behavior is as I've shared above.
The suggested approach is to author your KB from within Composer, and use the QnA Recognized Intent trigger. This will allow for the QnA to be an actual LU intents instead of a fall-back dialog within the unknown "intent".
Please find more info here:
https://docs.microsoft.com/en-us/composer/how-to-create-qna-kb

Morning, ok yea I went down this route myself. It is not quite optimal to build the knowledge base within composer as I have a dynamic URL I wish to use to keep the knowledge base fresh as a site is updated. The sync from composer to QnA maker appears to be one way from at the - is there a way to keep this sync up?


Fixing broken links in Armada API

Hi @dans77777 - can you please add some details about which links you're fixing? Thanks.

fixing the link of grpc-gateway that you can see under heading REST.


WorkflowEditor and WorkflowLauncher crash if the underlying toolkit / workflow are not what they should be

Since the adoption of rapidXML to parse toolkits, workflows and launchers it is not possible to validate what kind of file is being loaded. Before, it was possible to check these XML files were being loaded using their schemas. Now, this is not possible.
Therefore, when opening a workflow and the underlying toolkit is requested, loading a file that is NOT a toolkit makes WorkflowEditor crash instead of complaining. The same happens to WorkflowLauncher when loading the chain of files launcher->workflow->toolkit.
Solution: add a keyword in each kind of file stating their type and parse it in the first place, to decide whether we're loading the appropriate kind of file.

Bug solved.
This problem didn't happened when Qt's XML libraries were available (Version 5) since it was possible to check the validity of an XML file using it's schema. RapidXML is not able to do this, so manual checks needed to be implemented.


feat: upgrade to react-router 7

Pull Request Test Coverage Report for Build<PHONE_NUMBER>8
Details

29 of 31 (93.55%)  changed or added relevant lines in 31 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage decreased (-0.02%) to 76.053%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/pages/Tile.jsx
0
1
0.0%

src/pages/elements/Cheat.jsx
0
1
0.0%

Totals

Change from base Build<PHONE_NUMBER>3:
-0.02%

Covered Lines:
12106

Relevant Lines:
15851

💛  - Coveralls


Prior information as scipy.stats

Defining priors is currently only supported for VariationalBayesProblem and restricted to uncorrelated normal distributions for the parameters and gamma distributions for the noise models. This works OKish for automatically converting a VariationalBayesProblem into a sampling problem. Users that do not care about Chappell's algorithm, are likely puzzled by this.
I propose:

Provide prior distributions as scipy.stats distributions (norm, gamma, ...) directly to the InferenceProblem.
Provide a SolverInterface that is implemented by i.e. VBSolver or PyMC3Solver. Those are more like example implementations with a fixed, limited set of options to control to underlying solvers. More experienced users will likely write/interface their own way of handing the InferenceProblem.

That is a good idea. Maybe we could directly connect this prior definitions to our latent variables definition, such that we define a latent variable with an optional prior (in case someone wants to do deterministic optimization), and then link it to local variables in the model error/forward model class(es).

Alright, that is a true. So we'll try to separate the inference problem into on the one hand the handling of latent variables (with all the global/local variable distinction) and model error, and on the other hand specific interfaces for solvers that use that.

I think I had a conceptual mistake in my last comment. My plan would be that our inference problem does include prior information, say mathematically with the information N(42, ...) or Gamma(21, 42) or Crystalball(...). The individual solvers then transform this information into tool-specific implementations of these distributions.
And just to not redefine every (common) distribution out there, I suggest to store the information via scipy.stats and the implementation is then provided in a:

VBSolver -- transforms it to custum MVN / Gamma
TaralliSolver -- can use the scipy.stats objects right away
PyroSolver -- transforms to pyro.distributions

I would agree doing this, but we should allow users to just use the latent/model_error feature (so that they provide the priors themselves), e.g. via methods that can be overwritten. Thus, special structures do not have to be part of the standard interface. Important is the consideration of vector parameters. Here, the question would be, if we consider each parameter separately (and provide a single scalar distribution assuming all entries in the vector are independent and idenically distributed, or if we directly provide a joint distribution (e.g. MVN) with the special case of only have diagonal entries in the covariance.

Good point. IMO the vector valued parameters are a very special case related to FEMU. Maybe we continue the discussion on that in #41


Fallback to closest known user agent for mapped browsers

Service can now find a closest match for known browsers (that have been mapped)

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

Sorry I took so long to get to this pull-request. This file no longer exists, we have a new project which does the user-agent normalisation in both JavaScript and VCL (Varnish Configuration Language) -- https://github.com/Financial-Times/polyfill-useragent-normaliser/
I would gladly accept a pull-request there for this work. I have already opened one for the new Yandex browser aliases you added.


Document the hiding method

Explain why we use opacity: 0; pointer-events: none; instead of visibility: hidden;.

It's because with visibility:hidden, an invisible element can have visible children.


Strange words when Willow is not undestanding the command.

Hi
On the lastest v0.2.2, flashing through WAS. Wakeword is Alexa. All five (one ESP-lite) devices behave like this, so it must be software based. The last one-two iterations (0.2.1 and 0.2.2) of software updates have added weird few words to the end of the response when the command is not understood/wrong.
"Sorry I couldn't undersatnd that" - sounds garbled at the end, but a lot like ".....couldn't understand that then the"
If anyone needs more details, I can try to record a sound clip and attach/send it somewhere.

Unless we are just hearing it wrong. I will experiment by flashing older firmware and keep going back to where it does not happen anymore and then provide feedback.

I cannot downgrade the ESP32-S3-BOX-lite, but I could the ESP-Box.
0.2.1 - same end of response..
0.2.0 - same end of response.
0.1.1 - same end of response.
Is the problem with WIS? That when the command is not understood, it respond with this message?

Sounds like corrupt tts cache. You may need to stop wis, the navigate to the nginx directory and do sudo rm -rf cache

It was build from ~/willow-inference-server directory.
There is a cache directory, which contains another directory huggingface/hub which contains only one file, 1 byte long - version.txt.
So there is nothing in cache.
Also, I rebuild the WIS enviroment yesterday from scratch (by deleteing the whole ~/willow-inference-server dirctory), so this behavior is from a fresh WIS (& nginx) installation.

The nginx cache directory is nginx/cache.

If cache is gone, only other things i have seen cause this are network issues, boxes needing a reboot, or the GPU running out of VRAM. Are you running latest main branch of WIS? Also for it to be fresh, you would need to stop and remove the old containers, do utils build, then utils start -d. This would replace the containers with new ones using the new images. You could then purge the old images. 🙂

WIS build show as willow-inference-server:latest
I reinstalled WIS yesterday with this scipt after stopping and removing the containers:
#~/bin.bash
cd ~
sudo rm -rf ~/willow-inference-server
git clone https://github.com/toverainc/willow-inference-server.git
cd willow-inference-server
Ubuntu:
./deps/ubuntu.sh
Install
sudo ./utils.sh install
Generate self-signed TLS cert (or place a "real" one at nginx/key.pem and nginx/cert.pem)
sudo ./utils.sh gen-cert wis
#copy defaults
sudo cp ~/NAS6604T/Hardware/wis/.env ~/willow-inference-server/.
sudo ./utils.sh run
exit

If you send a tts request directly to wis in the browser, is it doing the same thing? For insurance you could send https://wis:19000/api/tts?text=Sorry+I+couldn't+understand+that

So that points to issue being either network the boxes are on, or the boxes themselves. Have you tried rebooting the boxes? I also checked home assistant, and the literal text is "Sorry, I don't understand that" so may want to try that against tts in case that string is cached somewhere.

Had the same thing happening with both s3-box and s3-box-3. Same behavior using local wis or public wis. Tried just now and it seems 0.3.0-rc.1 fixes that.

I've also noticed that sometimes the box needs a physical power cycle (unplug, wait a few seconds, plug back in) to fix this behavior. I haven't personally run into this often (maybe once or twice after I do a bunch of reflashes), but when I do see it that usually fixes it. :)

I've also noticed that sometimes the box needs a physical power cycle (unplug, wait a few seconds, plug back in) to fix this behavior. I haven't personally run into this often (maybe once or twice after I do a bunch of reflashes), but when I do see it that usually fixes it. :)

dioes not make a difference. They get powered cycle a lot.


Enable build and test

Dependencies vendored with glide.

/cc irfanurrehman shashidharatd

@sttts FYI

/retest

/cc @kubernetes/sig-multicluster-pr-reviews

/test pull-federation-e2e-gce

/retest

/test pull-federation-bazel-build

@marun, I guess the bazel build failed because of a missing tag. I did push a temporary tag today morning on the commits already in master. You might need to add that to your branch too.. !

/test pull-federation-e2e-gce

This looks good to me except the vendoring part which vendors some unwanted files. but we can take care of this in the near future. what is important today is to enable development on federation as soon as possible.
/lgtm

Seems ok to me too, with the current state of things.
/lgtm
/approve

/test pull-federation-bazel-build

/retest

Merging this manually.
Verified that unit and integration tests pass on this locally.
pull-federation-bazel-build will be turned off for the time being as we are using the release tars from make quick-release path in CI jobs.
pull-federation-e2e-gce will not pass on this PR as there are additional changes which are needed and will be submitted as a separate PR.


[FEATURE] Inherit parent name in description field

Example:

Hello @eeintech started to continue development on this plugin again because I have time again. This is now implemented. The syntax overall also changed. You can archive this now with {{par.dim.1}}. You can even access the parents parent context or the generated name, the generate section on the Readme.

Thanks @wolflu05 sorry I won't be using it much going forward as I have transitioned from InvenTree to other systems.


Firmware image being automatically set to valid after OTA update, rollback not being possible. (IDFGH-6182)

Environment

Development Kit:|ESP32-DevKitC|
Kit version DevKitC):v2
Module or chip used: ESP32-WROOM-32E
IDF version: 4.2.1
Build System: CMake through platformio
Compiler version:  toolchain-xtensa32 2.80400.210211 (8.4.0)
Operating System: Windows
(Windows only) environment type: Git Bash/PlatformIO Terminal
Using an IDE?: Yes, using VSCode
Power Supply: USB 5V

Problem Description
Hi everyone,
So, after reading some documentation over here (Over The Air Updates (https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ota.html) I was able to perform the OTA update using the advanced_https_ota example code.
At the rollback process part (https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-reference/system/ota.html#rollback-process) it is mentioned that when you perform OTA, the first boot with the new partition is monitored, therefore it receives the ESP_OTA_IMG_PENDING_VERIFY flag and in case of reboot before calling the esp_ota_mark_app_valid_cancel_rollback() function the application would rollback to the previous working version.
Unfortunately, that is not what is happening, instead, after the OTA update, both images are shown as valid, so the rollback never occurs.
Did somebody encounter the same problem?
Thanks!
Expected Behavior
Actual Behavior
Steps to reproduce

step1
...

// If possible, attach a picture of your setup/wiring here.
/* Advanced HTTPS OTA example
This example code is in the Public Domain (or CC0 licensed, at your option.)
Unless required by applicable law or agreed to in writing, this
software is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR
CONDITIONS OF ANY KIND, either express or implied.
*/
#include <string.h>
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/event_groups.h"
#include "esp_system.h"
#include "esp_event.h"
#include "esp_log.h"
#include "esp_ota_ops.h"
#include "esp_http_client.h"
#include "esp_https_ota.h"
#include "nvs.h"
#include "nvs_flash.h"
#include "protocol_examples_common.h"
#if CONFIG_EXAMPLE_CONNECT_WIFI
#include "esp_wifi.h"
#endif
static const char *TAG = "advanced_https_ota_example";
extern const uint8_t server_cert_pem_start[] asm("_binary_ca_cert_pem_start");
extern const uint8_t server_cert_pem_end[] asm("_binary_ca_cert_pem_end");
#define OTA_URL_SIZE 256
static esp_err_t validate_image_header(esp_app_desc_t *new_app_info)
{
if (new_app_info == NULL)
{
return ESP_ERR_INVALID_ARG;
}
const esp_partition_t *running = esp_ota_get_running_partition();
esp_app_desc_t running_app_info;
if (esp_ota_get_partition_description(running, &running_app_info) == ESP_OK)
{
    ESP_LOGI(TAG, "Running firmware version: %s", running_app_info.version);
}

#ifndef CONFIG_EXAMPLE_SKIP_VERSION_CHECK
if (memcmp(new_app_info->version, running_app_info.version, sizeof(new_app_info->version)) == 0)
{
ESP_LOGW(TAG, "Current running version is the same as a new. We will not continue the update.");
return ESP_FAIL;
}
#endif
return ESP_OK;

}
void advanced_ota_example_task(void *pvParameter)
{
ESP_LOGI(TAG, "Starting Advanced OTA example");
esp_err_t ota_finish_err = ESP_OK;
esp_http_client_config_t config =
{
    .url = CONFIG_EXAMPLE_FIRMWARE_UPGRADE_URL,
    .cert_pem = (char *)server_cert_pem_start,
    .timeout_ms = CONFIG_EXAMPLE_OTA_RECV_TIMEOUT,
    .keep_alive_enable = true,
};

#ifdef CONFIG_EXAMPLE_SKIP_COMMON_NAME_CHECK
config.skip_cert_common_name_check = true;
#endif
esp_https_ota_config_t ota_config =
{
    .http_config = &config,
};

esp_https_ota_handle_t https_ota_handle = NULL;
esp_err_t err = esp_https_ota_begin(&ota_config, &https_ota_handle);
if (err != ESP_OK)
{
    ESP_LOGE(TAG, "ESP HTTPS OTA Begin failed");
    vTaskDelete(NULL);
}

esp_app_desc_t app_desc;
err = esp_https_ota_get_img_desc(https_ota_handle, &app_desc);
if (err != ESP_OK)
{
    ESP_LOGE(TAG, "esp_https_ota_read_img_desc failed");
    goto ota_end;
}
err = validate_image_header(&app_desc);
if (err != ESP_OK)
{
    ESP_LOGE(TAG, "image header verification failed");
    goto ota_end;
}

while (1)
{
    err = esp_https_ota_perform(https_ota_handle);
    if (err != ESP_ERR_HTTPS_OTA_IN_PROGRESS)
    {
        break;
    }
    // esp_https_ota_perform returns after every read operation which gives user the ability to
    // monitor the status of OTA upgrade by calling esp_https_ota_get_image_len_read, which gives length of image
    // data read so far.
    ESP_LOGD(TAG, "Image bytes read: %d", esp_https_ota_get_image_len_read(https_ota_handle));
}

if (esp_https_ota_is_complete_data_received(https_ota_handle) != true)
{
    // the OTA image was not completely received and user can customise the response to this situation.
    ESP_LOGE(TAG, "Complete data was not received.");
}

ota_end:
ota_finish_err = esp_https_ota_finish(https_ota_handle);
if ((err == ESP_OK) && (ota_finish_err == ESP_OK))
{
ESP_LOGI(TAG, "ESP_HTTPS_OTA upgrade successful. Rebooting ...");
vTaskDelay(1000 / portTICK_PERIOD_MS);
esp_restart();
}
else
{
if (ota_finish_err == ESP_ERR_OTA_VALIDATE_FAILED)
{
ESP_LOGE(TAG, "Image validation failed, image is corrupted");
}
ESP_LOGE(TAG, "ESP_HTTPS_OTA upgrade failed %d", ota_finish_err);
vTaskDelete(NULL);
}
}
void app_main(void)
{
// Initialize NVS.
esp_err_t err = nvs_flash_init();
if (err == ESP_ERR_NVS_NO_FREE_PAGES || err == ESP_ERR_NVS_NEW_VERSION_FOUND) {
// 1.OTA app partition table has a smaller NVS partition size than the non-OTA
// partition table. This size mismatch may cause NVS initialization to fail.
// 2.NVS partition contains data in new format and cannot be recognized by this version of code.
// If this happens, we erase NVS partition and initialize NVS again.
ESP_ERROR_CHECK(nvs_flash_erase());
err = nvs_flash_init();
}
ESP_ERROR_CHECK( err );
ESP_ERROR_CHECK(esp_netif_init());
ESP_ERROR_CHECK(esp_event_loop_create_default());

/* This helper function configures Wi-Fi or Ethernet, as selected in menuconfig.
 * Read "Establishing Wi-Fi or Ethernet Connection" section in
 * examples/protocols/README.md for more information about this function.
*/
ESP_ERROR_CHECK(example_connect());

#if CONFIG_EXAMPLE_CONNECT_WIFI
/* Ensure to disable any WiFi power save mode, this allows best throughput
* and hence timings for overall OTA operation.
*/
esp_wifi_set_ps(WIFI_PS_NONE);
#endif // CONFIG_EXAMPLE_CONNECT_WIFI
xTaskCreate(&advanced_ota_example_task, "advanced_ota_example_task", 1024 * 8, NULL, 5, NULL);

}
// If your code is longer than 30 lines, GIST is preferred.
Debug Logs
The debug log is very long, but OTA itself is working normally, I'll place it below as well:
I (41723) OTA: Iniciando OTA
I (41723) esp_https_ota: IMAGE HEADER SIZE 289
D (41733) HTTP_CLIENT: Begin connect to: https://mybucket.s3.amazonaws.com:443
D (41733) esp-tls: host:mybucket.s3.amazonaws.com: strlen 31
D (41763) esp-tls: Enable TCP keep alive. idle: 5, interval: 5, count: 3
D (42143) esp-tls: handshake in progress...

I (44983) esp_https_ota: Writing to partition subtype 17 at offset 0x160000
D (44983) HTTP_CLIENT: Data processed 0 != Data specified in content length 1270288
D (44993) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=1270288
D (45003) HTTP_CLIENT: need_read=289, byte_to_read=289, rlen=85, ridx=0
D (45013) HTTP_CLIENT: http_on_body 85
D (45013) HTTP_CLIENT: is_data_remain=1, is_chunked=0, content_length=1270288
Current time: Thursday, 04-Nov-2021 21:07:52 UTC

when CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE option is enabled

@KaeLL Thanks for reminding me to upload my sdkconfig file, I've attached it in the bottom part of the issue.

Hello, @GKFernandes
I tried reproducing this issue on tag v4.2.1 but was unable to do it. The advanced_https_ota example (with your configurations) ran just fine.

Thanks for reporting, sorry that we could not reproduce the issue locally, you could also raise a post on our forum https://esp32.com, feel free to reopen, thanks.