WITHIN does not work correctly with the MultiPolygon that consists of two disjoint Polygons

Set up two points:
DROP test
SET test 1 OBJECT '{"type":"Point","coordinates":[-122.450156,37.720897]}'
SET test 2 OBJECT '{"type":"Point","coordinates":[-122.451969,37.718576]}'

Query with the "compound" MultiPolygon returns nothing:
WITHIN test OBJECT '{"type":"MultiPolygon","coordinates":[[[[-122.46368,37.721941],[-122.46368,37.72],[-122.45,37.72],[-122.45,37.721941],[-122.46368,37.721941]]],[[[-122.46368,37.71941],[-122.46368,37.7],[-122.45,37.7],[-122.45,37.71941],[-122.46368,37.71941]]]]}'

{"ok":true,"objects":[],"count":0,"cursor":0,"elapsed":"75.376µs"}

Even though each part of the PM works fine (1 point within each part):
WITHIN test OBJECT '{"type":"MultiPolygon","coordinates":[[[[-122.46368,37.721941],[-122.46368,37.72],[-122.45,37.72],[-122.45,37.721941],[-122.46368,37.721941]]]]}'

{"ok":true,"objects":[{"id":"1","object":{"type":"Point","coordinates":[-122.450156,37.720897]}}],"count":1,"cursor":0,"elapsed":"71.346µs"}

WITHIN test OBJECT '{"type":"MultiPolygon","coordinates":[[[[-122.46368,37.71941],[-122.46368,37.7],[-122.45,37.7],[-122.45,37.71941],[-122.46368,37.71941]]]]}'

{"ok":true,"objects":[{"id":"2","object":{"type":"Point","coordinates":[-122.451969,37.718576]}}],"count":1,"cursor":0,"elapsed":"32.441µs"}

Your geometries look correct, and I can confirm the problem on my side. Interestingly enough when using INTERSECTS instead of WITHIN it returns the correct results.


[BSSCRAK] CrAcKeD! - Unknown Exported Function Ordinal in MAJORBBS: 82:BAUDAT

Module Information

Identifier [BSSCRAK]
Module Name [Cracked!]
Version [1.0]

Describe the bug
Crash at start game
The game run for users with has MASTER KEY in demo mode
To Reproduce
add master key to user:
/sys addkey user master
start the game from menu
2021-10-31 02:13:57.8527 Debug MBBSEmu.HostProcess.ExportedModules.Majorbbs.setmbk (BSSCRAK) Enqueue Previous MCV File: BSSCRAK.MCV (Pointer: FFFF:0000)
2021-10-31 02:13:57.8527 Debug MBBSEmu.HostProcess.ExportedModules.Majorbbs.setmbk (BSSCRAK) Set Current MCV File: BSSCRAK.MCV (Pointer: FFFF:0000)
2021-10-31 02:13:57.8532 Debug MBBSEmu.HostProcess.ExportedModules.Majorbbs.setbtv (BSSCRAK) Setting current Btrieve file to BSSCRAK.DAT (1000:AC22)
2021-10-31 02:13:57.8532 Debug MBBSEmu.HostProcess.ExportedModules.Majorbbs.haskey (BSSCRAK) Returning 1 for Haskey(MASTER)
2021-10-31 02:13:57.8648 Error MBBSEmu.HostProcess.ExportedModules.Majorbbs.Invoke Unknown Exported Function Ordinal in MAJORBBS: 82:BAUDAT
Unhandled exception. System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values. (Parameter 'Unknown Exported Function Ordinal in MAJORBBS: 82:BAUDAT')
   at MBBSEmu.HostProcess.ExportedModules.Majorbbs.Invoke(UInt16 ordinal, Boolean offsetsOnly)
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.ExternalFunctionDelegate(UInt16 ordinal, UInt16 functionOrdinal)
   at MBBSEmu.CPU.CpuCore.Op_Call()
   at MBBSEmu.CPU.CpuCore.Tick()
   at MBBSEmu.HostProcess.ExecutionUnits.ExecutionUnit.Execute(FarPtr entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassState, Queue`1 initialStackValues, UInt16 initialStackPointer)
   at MBBSEmu.Module.MbbsModule.Execute(FarPtr entryPoint, UInt16 channelNumber, Boolean simulateCallFar, Boolean bypassSetState, Queue`1 initialStackValues, UInt16 initialStackPointer)
   at MBBSEmu.HostProcess.MbbsHost.Run(String moduleName, FarPtr routine, UInt16 channelNumber, Boolean simulateCallFar, Queue`1 initialStackValues)
   at MBBSEmu.HostProcess.MbbsHost.WorkerThread()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
--- End of stack trace from previous location ---
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Abortado

Original installer:
bsscrak1.zip

I stubbed out both of these and the game plays great (I don't think we need either of them).

I did notice a bug when doing testing with multiple users playing. The game turns on the secure echo and basically keeps you in secure echo the entire time you are playing -- this seems to be bleeding over to other channels or at least sporadically showing up in other places (screenshot below showing a sign up while another user is playing the game)

Screenshot of gameplay:


Improved README.md

Codecov Report

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

@@           Coverage Diff           @@
##           master      #44   +/-   ##
=======================================
  Coverage   80.15%   80.15%
=======================================
  Files           6        6
  Lines         398      398
=======================================
  Hits          319      319
  Misses         45       45
  Partials       34       34

Continue to review full report at Codecov.

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


Feature/#49 export student activities

Description:
The student progress can now be exported into a csv-file.
Closes #49
Improvements

A bug, that checkAccess in the ReportController fails if the teacher is also the courseAdmin, was fixed

Known Issues:
NONE

Pull Request Test Coverage Report for Build 2440

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 65.624%

Totals

Change from base Build 2436:
0.0%

Covered Lines:
1149

Relevant Lines:
1676

💛  - Coveralls

I tested it and got an http error 500! the backend throws this error! MongoError: exception: Unrecognized pipeline stage name: '$lookup'     at queryCallback (/home/patrick/Documents/Universty/MPSE/geli/api/node_modules/mongodb-core/lib/cursor.js:244:25)     at /home/patrick/Documents/Universty/MPSE/geli/api/node_modules/mongodb-core/lib/connection/pool.js:544:18     at _combinedTickCallback (internal/process/next_tick.js:131:7)     at process._tickDomainCallback (internal/process/next_tick.js:218:9)


Getting Started With Node.js Timers: Everything you need to know

Proposed title of the article
Getting Started With Node.js Timers Tutorial: Everything you need to know
Introduction paragraph (2-3 paragraphs):
Timers are polyglot. They are very useful in many use cases. Almost all major programming languages support them, and Node.js is no exception. It's actually more simple in Node because Node lets us reuse our existing learning of timers.
In this tutorial, I will describe and demonstrate what timers are, how to use them, what the syntax looks like, and then how you can leverage them in your applications. One common example, if you want to retrieve data from a REST API on a specific interval, you can achieve very easily using timers. So, even if you are new to JavaScript or timers, this post will help you understand these concepts. If you are interested in knowing more about Node, you can also check my other articles as well.
Timers are very popular global functions in browsers environment:

setTimeout.
setInterval.

Node.js has an API for these functions as well, and it exactly matches the browser’s API.
These functions can be used to delay or repeat the execution of other functions, which they receive as arguments.
Key takeaways:
1.Timers Example(s) – setTimeout
2.Timers Example(s) - setInterval
3.Canceling Timers

seems like a cool topic - if you havent already please review recently published Node.js articles in the EngEd library to avoid overlap and/or see what can be used as a reference. @owinowendy approved


[BUG] Unable to parse blade files

Describe the bug
In the README it mentions that one of the reasons for this plugin existing is that others (prettier-plugin-tailwindcss) were unable to parse blade files. I understand this to mean that this plugin can in-fact do so though I'm unable to make it work.
To Reproduce
When trying to parse a blade template I get the following: Parsing error: Unexpected character '@' eslint
Expected behavior
Blade files to be parsed similarly to html/vue/etc.
Environment (please complete the following information):

OS: macOS
Softwares + version used:

VSCode 1.74.0

After poking around a bit with https://github.com/francoismassart/demo-eslint-plugin-tailwindcss/tree/blade and my own config it seems like there's some sort of conflict.
To resolve for now I split my config into pieces, one for js/ts/vue validation and one for blade validation that includes the plugin.
It seems as though the issue is with this package: https://www.npmjs.com/package/@vue/eslint-config-airbnb.
e.g. if my config is:
extends: [
    '@vue/airbnb',
    'plugin:tailwindcss/recommended',
  ],

if you found a workaround, can you close this ticket?

Sure thing, I left it opening hoping that the workaround would help point towards a proper fix. I see you've made some changes (https://github.com/francoismassart/eslint-plugin-tailwindcss/commit/17cb3cf0be411de432c1974c36572481099a2409) that could sort this out as well.


Palindrome string code completed

Issue #795

#795

Given a string S, check if it is palindrome or not. If the given string is a palindrome, then print "True". Otherwise, print "False".

Example 1:
Input: S = "abba"
Output: True
Explanation: The reverse of the given string is equal to the "abba" which is equal to the given string. Therefore, the given string is palindrome.
Example 2:
Input: S = "abc"
Output: False
Explanation: The reverse of the given string is equal to the "cba" which is equal to the given string. Therefore, the given string is palindrome.

Proposed Changes

StringPalindrome.cpp file added
README.md file added

Additional Info
Palindrome - A string is said to be palindrome if the reverse of the string is the same as the string. For example:

abba is palindrome as reverse of it is also abba.
frog is not palindrome as reverse of it is gorf.

Algorithm
The approach is to traverse the string and checking whether the character at ith index is equal to the character at the (N-i-1)th index for every index in the range [0, N/2]. Follow the steps below to solve the problem:

Iterate over the range [0, N/2], using the variable i and in each iteration check if the character at index i and N-i-1 are not equal, then return "False" from the function.
If none of the above cases satisfy, then return "True".

Properties
Time Complexity: O(Length of S)

Only one traversal of the loop is needed.

Space Complexity: O(1)

There is no extra space required.

Checklist

[x] ✅ My code follows the code style of this project.
[ ] 📝 My change requires a change to the README.
[x] 🎀 I have updated the README accordingly.
[x] 👀 I have read the CONTRIBUTING document.
[x] ✨ I have added tests to cover my changes.
[x] 🚩 All new and existing tests passed.
[ ] 🌟 ed the repo

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to change)

Output Screenshots
Title: String is  "abba" which is palindrome

Title: String is  "abc" which is not palindrome

Please review my pr @Lakhankumawat

@all-contributors please add @dev24il  code ,


Add a "temp" alias for mktmpenv

I know mktmpenv is compatible with virtualenvwrapper, but as someone who's never used virtualenvwrapper, I find the name dreadfully ugly. Would it be possible to add an alias temp for it? To my mind, the usage pew temp is much more natural.
If the idea is acceptable, I'd be willing to create a PR for this.
(A more significant feature would be to add the ability to have user-defined aliases. But I'm not sure I can think of any other case where I'd want that, so it may be a case of YAGNI).

Yeah, mktmpenv is a bit too Unix-y as a name :/
I'm not against aliases in other contexts, but I'm wary of adding duplication, which could just confuse users...
Maybe only one of the 2 alternatives should be documented, but does this mean that we should deprecate mktmpenv?
Before committing to it, I'd like to read some drive-by comment by anyone who might have an opinion on this

Rather than deprecating mktmpenv it could be documented as "included for virtualenvwrapper compatibility", which might be less confusing. But agreed it's probably worth getting some extra feedback on this.


TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received undefined

After a clean install of Node/NPM and the pass-converter running node app.js or node app.js demo returns the error
node:internal/validators:163
    throw new ERR_INVALID_ARG_TYPE(name, 'string', value);
    ^

TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received undefined
    at new NodeError (node:internal/errors:400:5)
    at validateString (node:internal/validators:163:11)
    at Module.require (node:internal/modules/cjs/loader:1098:3)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/usr/home/konzes/pass-converter/app.js:44:16)
    at Module._compile (node:internal/modules/cjs/loader:1218:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1272:10)
    at Module.load (node:internal/modules/cjs/loader:1081:32)
    at Module._load (node:internal/modules/cjs/loader:922:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:82:12) {
  code: 'ERR_INVALID_ARG_TYPE'
}

Node is version v19.3.0

Hey there! I ran into the same issue, you need a service account json file specified in the config.json file.

Thanks folks, I added a clearer error message in 398d1b6a74731bcd234cc963f73a87234a6ba350


Switch CivitAI search API

如果用户disable了shownsfw 那就是应该看不到nsfw的缩略图呀 就应该隐藏了呀
Get Outlook for iOShttps://aka.ms/o0ukef

From: Arslan Ablikim @.>
Sent: Thursday, February 8, 2024 6:13:07 PM
To: 11cafe/comfyui-workspace-manager @.>
Cc: Weixuan Fu @.>; Comment @.>
Subject: Re: [11cafe/comfyui-workspace-manager] Switch CivitAI search API (PR #186)
@arslan2012 commented on this pull request.

In ui/src/utils/findLeastNsfwImage.tshttps://github.com/11cafe/comfyui-workspace-manager/pull/186#discussion_r1482722737:

@@ -0,0 +1,21 @@
+interface ImageLike {

nsfw: "None" | "Soft" | "Mature" | "X";
+}
+export function findLeastNsfwImage(

我这个就是怕用户disable了showNSFW时，像那些sexy attire之类的非nsfw的模型的图片都是soft ，直接filter non nsfw会导致搜出来的没有缩略图
―
Reply to this email directly, view it on GitHubhttps://github.com/11cafe/comfyui-workspace-manager/pull/186#discussion_r1482722737, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEMEEOKNF77FZIVISWECHFTYSSQLHAVCNFSM6AAAAABC3PHQ7KVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTQNRZG42DONZUHE.
You are receiving this because you commented.Message ID: @.***>

Refactored find image logic


[opencv] Fixed OpenCV versioning using wrong commit

As there is no OpenCV repository, the hash is wrongly determined
Closes #6708
Open point: https://github.com/microsoft/vcpkg/issues/6708#issuecomment-499666717

Unfortunately, there is no similar way to workaround opencv_contrib git hashes (they are not collected from the git-"rooted" path in general, so proposed above workaround doesn't work at all even without vcpkg):
* turn off information about them completely via `BUILD_INFO_SKIP_EXTRA_MODULES=ON`

* or disable "find_package(Git)" via CMake's: `CMAKE_DISABLE_FIND_PACKAGE_Git=ON` (should work if it is new "CMake" process)

Thanks for the PR!
I think that CMAKE_DISABLE_FIND_PACKAGE_Git=ON is a better approach in this case, since it increases maintenance burden to add another field that needs to be updated. Could you change this PR to pass that option instead?

Thanks for the PR!


Problematic video

Problem video:  https://github.com/user-attachments/files/17713986/1517176996106838023-vUiO9nkD-I5wwMDD.mp4.zip

on both web and native, the video player will go into an infinite spinner loop if you step backwards, but only for every second step (see attached video)

https://github.com/user-attachments/assets/ebfd0ea1-b6e3-4b4a-a15b-22ddb7cc8bd0

Build a tool to help understand this:

https://github.com/rerun-io/rerun/pull/8102


Change method for getting current year for odate

Mint.com returns transactions from the current year as a string without the year (i.e. 'Jan 1').  The function json_date_to_datetime() attempts to resolve this shortcoming by appending the current year.  In certain scenarios at the start of a year the isocalendar function may return the previous year.  Updating to use date.today().year.

Thank you!

Thank you!


Split Makefiles across multiple usecases with includes in main Makefile

Not all Makefile commands are suitable for all projects. Also the current Makefile is not really suitable for extensions since it's already packed with targets and tends to get confusing.
To improve readability the Makefile should be moved into mutliple default Makefile targetted at specific usecases and then be included in a main Makefile.
In this Makefile it's then also possible to add targets specific to the project.

@linuxluigi I don't think we'll ever do it since it would make modules much harder right?


Is there a way to set the property of type 'Type' from xaml?

I have a WinUI/UWP project. In my custom control I have a property of type Type. I tried to set it from xaml like ControlTemplate.TargetType property, but got an exception on InitializeComponent.

Windows.UI.Xaml.Markup.XamlParseException: 'The text associated with this error code could not be found.
Failed to assign to property 'App11.MyControl.SomeProperty'. [Line: 17 Position: 26]'

Is there a way to set such properties from xaml?
Sample control
public class MyControl : Button
{
        public Type SomeProperty { get; set; }
}

Xaml
<local:MyControl SomeProperty="Button" />

we don't have x:Type in WinUI. @MikeHillberg is there a way to achieve this ?

I don't think so, and I can't find an existing Issue on it. It's supported for built-in properties (like Style.TargetType) but missing for custom properties. @alwu-msft?

This works for me (my test app) whether the custom property of type System.Type is a DependencyProperty or a regular C# property.
@BorzillaR can you attach your repro project? It's possible my test app isn't doing the same thing as yours and that is responsible for the difference in behavior.

@alwu-msft, seems you created a classic UWP project and it works on my side. I created the same project for WinUI/UWP  and it fails. Looks like a bug.

Thanks! You're right, the Windows.UI.Xaml.Markup.XamlParseException text displayed by VS tricked me into thinking that you were using UWP XAML rather than WinUI 3.
As it turns out, this is a known issue that we're already working on fixing, but we appreciate the report nonetheless!


feat: Sidebar redesign

What it solves
Resolves #3504
How this PR fixes it

Adjusts the design according to Figma.
Adds Queue, History links to the navigation

How to test it

Open the Safe app
Observe that there are links to the Transaction Queue and History
Observe that the Sidebar looks according to the design

Screenshots

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 14 (0.0%)  changed or added relevant lines in 4 files are covered.
2 unchanged lines in 2 files lost coverage.
Overall coverage decreased (-0.03%) to 35.586%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/components/AppLayout/Sidebar/useSidebarItems.tsx
0
1
0.0%

src/components/List/ListIcon.tsx
0
2
0.0%

src/components/List/index.tsx
0
3
0.0%

src/components/AppLayout/Sidebar/SafeHeader/index.tsx
0
8
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/components/AppLayout/Sidebar/SafeHeader/index.tsx
1
0%

src/components/AppLayout/Sidebar/useSidebarItems.tsx
1
0%

Totals

Change from base Build<PHONE_NUMBER>:
-0.03%

Covered Lines:
3548

Relevant Lines:
9016

💛  - Coveralls

This extra "stem" is also undesired

The colors, fonts, spacing, elements, etc looks fine.
The only thing we could discuss is the length of the menu (as it was discussed in a daily earlier)
The menu is kinda small when the safe is in read only mode.
Note: I don't expect a fix from this, just an agreement if we should try to make it longer o leave it the way it is.

If the length of the menu is not considered an issue then I'd pass the ticket to QA done.

Confirmed that the list of safes is for another ticket, so out of the scope of this one.
Regarding the length of the menu, it was decided that we will remove the "Read Only" label and make the "New Transaction" button to change the text to "Read Only" when the conditions are met (Not connected, not owner of the safe)

It looks good to me.
The button shows Read Only when the user is not connected or is not owner, and reverts to New tx when the conditions are met.


Error message：BleCannotSetCharacteristicNotificationException{bluetoothGattCharacteristic=XXXXX····}

I can write information via Demo, but I can not listen to the information my device has sent

I get through a lot of BLEDemo to UUID, for example

service：0003cdd0-0000-1000-8000-00805f9b0131
notify：0003cdd1-0000-1000-8000-00805f9b0131
write：0003cdd2-0000-1000-8000-00805f9b0131

In other Demo can be heard on the equipment to send the data can also be written. But in this project, I can only write, can not notify

I have not changed the project code.

I do not know whether it is a Bluetooth chip.

Other Demo can be notify, this project can not

一加3T
7.1.1

Hello @edifangyi
Does your characteristic has a PROPERTY_NOTIFY?

@dariuszseweryn yes，，look here

I clicked Notify  -> CONNECT - >REGISTER NOTIFICATIONS :

BleCannotSetCharacteristicNotificationException{bluetoothGattCharacteristic=0003cdd1-0000-1000-8000-00805f9b0131}

Does your notify characteristic have a Client Characteristic Config descriptor?

@dariuszseweryn I'm sorry, I did not read your meaning. However, I use the Bluetooth manufacturers to provide the Demo can use the monitor
http://ww1.sinaimg.cn/large/648b709cly1fg2i5uzpjsj20u01hcjsw.jpg

I think that your characteristic (0003cdd1-0000-1000-8000-00805f9b0131) does not have a Client Characteristic Config descriptor (00002902-0000-1000-8000-00805f9b34fb) which causes the error.
If that is the case you could use function RxBleConnection.setupNotification(UUID, NotificationSetupMode.COMPAT)

@dariuszseweryn  Thank you, the problem is solved. I will ask the Bluetooth chip manufacturers in this area related issues

@dariuszseweryn I've been looking into how i can call the RxBleConnection.setupNotifcation method from my react native project with very little success.
I can go into the android package and set all monitor notifcations to COMPAT but that just causes errors elsewhere.
Should it be possible to get to the the setupNotification function by importing NativeModules from React Native?

@Andy4ward This issue should be now fixed in the RN library


Resolve build failure with upstream dependency

Workaround build failure introduced by latest update to @blueprintjs
See this comment for more info
Developer's Certificate of Origin 1.1
   By making a contribution to this project, I certify that:

   (a) The contribution was created in whole or in part by me and I
       have the right to submit it under the Apache License 2.0; or

   (b) The contribution is based upon previous work that, to the best
       of my knowledge, is covered under an appropriate open source
       license and I have the right under that license to submit that
       work with modifications, whether created in whole or in part
       by me, under the same open source license (unless I am
       permitted to submit under a different license), as indicated
       in the file; or

   (c) The contribution was provided directly to me by some other
       person who certified (a), (b) or (c) and I have not modified
       it.

   (d) I understand and agree that this project and the contribution
       are public and that a record of the contribution (including all
       personal information I submit with it, including my sign-off) is
       maintained indefinitely and may be redistributed consistent with
       this project or the open source license(s) involved.

@lresende here is the workaround

#633 can be used as "the issue" for this PR.


Consider adopting Bazel Closure Rules

Greetings. I noticed closure.md says you use the Closure Compiler for this project. In that case, you may want to consider adopting Closure Rules for Bazel as your build system. This is an effort to open source the build system Google uses internally for JavaScript. Since you're already writing JavaScript in a very Googley way, you have the most to benefit from Closure Rules.
As maintainer of the Closure Rules project, I would be greatly honored if ol3 considered adopting it. I want you to know that I will do everything in my power to help your migration be successful.
Is migrating something you would consider?

closure-compiler is not used anymore, closing.


Make library independent from any serializing/deserializing libraries

Context:
Currently we require to provide a classType that contains class-validator decorators so we can create an instance of that classType with the formGroup.value as a value.
Problem:
In order to do this deserialization, we use cerialize. The problem with this solution is that we require users to have this dependency only to create the instance, and this is not very optimal because.
Solution:
Use Object.assign to create an instance of the classType (No need to handle nested deserialization, because nested properties are nested ClassValidatorFormGroup so the Object.assign will be done recursively), doing so we can remove cerialize dependecy.

done in #10


Roll Plugins from 7e9c79b22828 to 9136b68bd1b1 (2 revisions)

https://github.com/flutter/plugins/compare/7e9c79b22828...9136b68bd1b1
2021-02-16<EMAIL_ADDRESS>[path_provider] Update Windows implementation version (flutter/plugins#3541)
2021-02-16<EMAIL_ADDRESS>Fix the build-all exclusion list (flutter/plugins#3552)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/master/autoroll/README.md

Commit queue failed; closing this roll.


Allow for validating undefined / non-existent properties in responses

For some requests it's useful to validate that a value was not returned, e.g. when creating a user and ensuring the response doesn't have the password.
At the moment https://github.com/eykrehbein/strest/blob/master/src/test.ts#L426 prevents one from testing non-existence of properties.
version: 2
requests:
  create_user:
    request:
      url: example.com/user
      method: POST
        mimeType: 'application/json'
        text:
           email<EMAIL_ADDRESS>           password: 'password'
      validate:
        - jsonpath: content.email
          expect<EMAIL_ADDRESS>        - jsonpath: content.password
          expect: undefined

Describe the solution you'd like
Adding undefined as a 'type' or value to validate against.
Describe alternatives you've considered
Adding null to responses is a work-around, but isn't ideal.

Another possible workaround (and possibly a better approach for some circumstances) is to use jsonschema validation.
I haven't tried it, but a quick search makes it looks like it's possible to validate jsonschema using null and undefined.

Managed to use additionalProperties as a a workaround for now:
version: 2

variables:
  endpoint: users
  password: 'password'
  schemaValidate:
      properties:
        email:
          type: [string]
      required:
        - email
      additionalProperties: false

requests:
  create_user:
    request:
      url: example.com/user
      method: POST
        mimeType: 'application/json'
        text:
           email<EMAIL_ADDRESS>           password: 'password'
      validate:
        - jsonpath: content.email
          expect<EMAIL_ADDRESS>
additionalProperties: false errors if there are any additional properties, and doesn't specify which specifically, so there's some cognitive overhead in trying to determine which property in the response is responsible for the error.
I also attempted using:
variables:
  endpoint: users
  password: 'password'
  schemaValidate:
      properties:
        email:
          type: [string]
      required:
        - email
      additionalProperties:
		password:
			type: [undefined]

but without any luck. It seems as through additionalProperties expects an array of types, anyhow.

With a quick evaluation of using [undefined] for the password property's type in schemaValidate it seems as though any values are ignored, whether undefined or defined.


Outline incubation of a synthetic API component generator.

Scheduler_perf as well as this repo use generic, opionated template based approaches to making pods.

In scheduler_perf, we've come up w/ an initial struct idea to that can be mutated in a pipeline.

In this repo, templates are used and modified/spread around the cluster.

A software library that generates arbitrary cluster setups w/ pods and nodes , maybe other stuff (services), that is fully configurable might be a cool project we could commonly utilize.
Thoughts @gmarek   @sjug @jeremyeder ?

cc @ravisantoshgudimetla


Extend command: m365 aad group list list with --deleted flag

Usage
m365 aad group list  --deleted
Description
Extend command: m365 aad group list with an additional option --deleted to retrieve deleted groups from the recycle bin.
Options

Option
Description

--deleted
Use to retrieve deleted groups

Additional Info
Can be retrieved using a get on https://graph.microsoft.com/v1.0/directory/deletedItems/microsoft.graph.group, more background here: https://docs.microsoft.com/en-us/graph/api/directory-deleteditems-list?view=graph-rest-1.0&tabs=http

@appieschot I would like to work on this one as well 😁

Thank you @Jwaegebaert for your help ❤.
All yours.


Updated kubeadm-init.md

Updated text "When a worker node has been provisioned" to also specify master
Issue #8189
Write the Docs Portland 2018

/assign @luxas

/lgtm


Brand new high-quality package has low score

URL: https://pub.dartlang.org/packages/side_header_list_view#-analysis-tab-
side_header_list_view seems like a great package, with high health and maintenance scores. However, it's brand new so it's popularity is zero. Unfortunately, that brings its overall score to under 50 :(
I wonder if there's a difference between popularity and health, and if so, if that difference is especially important for brand-new packages.
Suggestion: Accommodate "newness" in the popularity score or overall score, and don't penalize brand new packages in their overall score.
The older the package is, the more important popularity is. The newer the package, the less important popularity is.

Boost its score, because it is new? I fail to see the provided value in that. It would gain a short term feel-good score for the author, but other than that, how should it help the users?
We already factor age into maintenance: we start to decrease that score if the last release is over a years old.

@sethladd how much of this is just due to not being able to see "new" packages on the front page?

A score of 45 for this package sounds like "crappy package". But, it's a useful, high-quality package that's simply new. I don't think it warrants a low score of 45 in this case, because it's brand new.
I'm not worried about making the author feel good, I'm worried about giving a misleading message to our developers. I think we need a clearer way to say "this package is new and it's high quality so go ahead and give it a shot".
@matanlurey I think it's unrelated. People find packages in many ways (social media, searching) and often bypass the homepage.

FWIW, I agree then. Maybe popularity shouldn't matter for packages < [%AGE].

What's the difference from the end-user perspective between these?

Package A: health: 98, maintenance: 75, popularity: 0, overall: 45, published 1 week ago.
Package B: health: 98, maintenance: 75, popularity: 0, overall: 45, published 2 months ago.
Package C: health: 98, maintenance: 75, popularity: 0, overall: 45, published 10 months ago.

In either case: nobody is using the package, for whatever reason e.g. nobody has found it yet or it doesn't provide enough value.
I could publish a short dart file as a package, it will get 100 health, 100 maintenance. Should we display it as 100, in the same league as angular or other really popular packages?
I think as people get used to the numbers, the calibration will happen automatically, and 45 will be considered as good. Not as stellar as angular's 100, but good. We help with color coding.
We could add labels or an additional little icon for fresh packages, but I think that will be more like a distraction than useful. But unless we can uniformly say about the new packages's provided value, I wouldn't inflate the scores.

I think this is heavily related to https://github.com/dart-lang/pub-dartlang-dart/issues/300
We need to get a system in place where popularity is regularly updated.

What's the difference from the end-user perspective between these?

Package A might be amazing, but it appears as mediocre as Package C. That's misleading.

I wouldn't inflate the scores

Ack. That was just a proposed solution.
Restating the problem: A brand-new package, which followed all the rules and is otherwise healthy and quality, has a low score simply because it's new. This may impede a user from choosing this package, if they don't know how to drill into a score and determine "oh, it's just because it's new"
Another proposed solution would be to add a visual hint/indicator next to the score, indicating that the package is "new".

Package A might be amazing, but it appears as mediocre as Package C. That's misleading.

I think this is a wrong notion right now, which may fade later.

Another proposed solution would be to add a visual hint/indicator next to the score, indicating that the package is "new".

Any suggestion on what the indicator should look like?

I am not a designer, but maybe a "sunburst" around the score? Like rays coming out of the circle.
Something like this, but actually good:

After a bit of experimenting, I am working towards this:

What do you think @sethladd, @kevmoo, @matanlurey ?

Thanks! But it's really tiny. I can barely read that word. :/

How about this one?

I think the question is really: is this something we can make work (by tuning the style) or it is the wrong line of design?

that's easier to read, and is sufficient for testing! :) thank you!


modules missing

i did this:
npm install "request" --save
npm install "request-promise" --save
var rp = require("request-promise")
i get this error:
main.js:1 ./node_modules/request/lib/har.js
Module not found: Error: Can't resolve 'fs' in '/home/t/ws/js/sgj/node_modules/request/lib'
errors @ main.js:1
i.onmessage @ main.js:1
n.dispatchEvent @ main.js:1
(anonymous) @ main.js:1
_._transportMessage @ main.js:1
i.emit @ main.js:1
ws.onmessage @ main.js:1
main.js:1 ./node_modules/forever-agent/index.js
Module not found: Error: Can't resolve 'net' in '/home/t/ws/js/sgj/node_modules/forever-agent'
errors @ main.js:1
i.onmessage @ main.js:1
n.dispatchEvent @ main.js:1
(anonymous) @ main.js:1
_._transportMessage @ main.js:1
i.emit @ main.js:1
ws.onmessage @ main.js:1
main.js:1 ./node_modules/request/node_modules/tough-cookie/lib/cookie.js
Module not found: Error: Can't resolve 'net' in '/home/t/ws/js/sgj/node_modules/request/node_modules/tough-cookie/lib'
errors @ main.js:1
i.onmessage @ main.js:1
n.dispatchEvent @ main.js:1
(anonymous) @ main.js:1
_._transportMessage @ main.js:1
i.emit @ main.js:1
ws.onmessage @ main.js:1
main.js:1 ./node_modules/tough-cookie/lib/cookie.js
Module not found: Error: Can't resolve 'net' in '/home/t/ws/js/sgj/node_modules/tough-cookie/lib'
errors @ main.js:1
i.onmessage @ main.js:1
n.dispatchEvent @ main.js:1
(anonymous) @ main.js:1
_._transportMessage @ main.js:1
i.emit @ main.js:1
ws.onmessage @ main.js:1
main.js:1 ./node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'net' in '/home/t/ws/js/sgj/node_modules/tunnel-agent'
errors @ main.js:1
i.onmessage @ main.js:1
n.dispatchEvent @ main.js:1
(anonymous) @ main.js:1
_._transportMessage @ main.js:1
i.emit @ main.js:1
ws.onmessage @ main.js:1
main.js:1 ./node_modules/forever-agent/index.js
Module not found: Error: Can't resolve 'tls' in '/home/t/ws/js/sgj/node_modules/forever-agent'
errors @ main.js:1
i.onmessage @ main.js:1
n.dispatchEvent @ main.js:1
(anonymous) @ main.js:1
_._transportMessage @ main.js:1
i.emit @ main.js:1
ws.onmessage @ main.js:1
main.js:1 ./node_modules/tunnel-agent/index.js
Module not found: Error: Can't resolve 'tls' in '/home/t/ws/js/sgj/node_modules/tunnel-agent'

the same as me

same

What it is saying is that it can’t resolve the node.js core libraries fs, net, and tls. node.js always has them. So I assume you are not using node.js, right?
Which runtime are you using instead?

I assume a solution is not needed anymore for you all. But everyone who reads this, please look into the JavaScript runtime that you are using and if you may need to polyfill certain node.js core libraries.


As a user I can view profiles of other users by using search function

Estimation
TBD
Acceptance criteria
The feature fulfils the DoD - criteria. The feature is demonstrated to a client from staging environment. After clients approval feature is deployed to production server.

Completed in Sprint #3.


benchmark direct invocation

Question: How many tx/s can we process assuming direct invocation?

with WASM STF
native STF

bottlnecks?

file I/O
wasm instance
OCALL?

ops
call_counter_wasm
call_counter
no compose_extrinsic
msg decryption
counter update
counter update + ipfs ocall
counter update + no ops ocall

ecall
☑
☑
☑
☑
☑
☑
☑

sgx::fs::read (rsa key)
☑
☑
☑
☑

☑
☑

rsa msg decryption
☑
☑
☑
☑

☑
☑

wasm sha256 computation
☑

wasm invokation
☑

std::file::read
☑
☑
☑

☑
☑
☑

sgx::fs::read (aes key)
☑
☑
☑

☑
☑

aes decryption
☑
☑
☑

☑
☑
☑

aes decryption
☑
☑
☑

☑
☑
☑

std::file::write
☑
☑
☑

☑
☑
☑

ipfs_ocall

☑

ocall without ops

compose extrinsic
☑
☑

☑

invokations/s
332
342
365
400
5000
435
4587

rsa decryption and ipfs ocall are by far the most expensive.

why is ipfs_ocall part of this analysis? it isn't used for updates, only for RA, right? Good to know, but not very surprising.
Please describe: What is ops_ocall?

well at the and of a counter_update the state update is written to ipfs, shouldn't it?
it should be "no_ops_ocall" an ocall which does nothing, just to see if there is overhead in ocalling at all

ah, I undestand now the concept. It suffices to use ipfs merely for state syncronisation during RA. Much more economic scheme. Will change that.

we know enough for now, I guess


Feature/cupertino style

Adaptive app, scaffold, navigation so that iOS looks like iOS and Android like Android. There's probably a better way to do this also ;)

Good stuff! Now the app looks more like a native iOS app. 👍


Documentation lacking on several methods

Many methods were created without documentation for testing, and then never got their needed documentation. This is the same with many classes and packages. This needs to be fixed for OLing to be more usable.

should mention that javadocs cannot be attached without some much needed documentation
see https://pastebin.com/HjGNbPJf


Support workload identity federation and service principals

This PR adds support for using App Config with a federated identity and service principals. (via client secret)
The necessary inputs are styled after Azure/login.
I had to make some infrastructure improvements to be able to build this, see the first two commits.

Any chance this can get a review?

@Botje Please pull the latest changes from master branch

I made the changes you suggested. Do you think it is worth creating a test for the "no auth-type set" scenario?

@Botje I am just curious, are there any github actions that have used @azure/identity sdk to authenticate to azure? I see most of them recommend the use of @Azure/login.

I cannot find an NPM package named @Azure/login. Are you talking about the GitHub Action named Azure/login?
That action uses the az cli to log in, and many actions defer authentication to that, yes.
If you prefer that can be added as a fourth authentication mechanism.

Hello @Botje we are deprecating this Github action. We recommend using Azure CLI action instead. Follow this guideline to https://learn.microsoft.com/en-us/azure/azure-app-configuration/push-kv-github-action on how to set it up. I am going to go ahead and close this pull request.


disconnect and reconnect sometimes, every days

Product and Version [VS/VSCode]:
OS Version [macOS/Windows/Linux]:
Live Share Extension Version:
Target Platform or Language [e.g. Node.js]:
What were you doing when you encountered the desync?
How often have you encountered desyncs?

Duplicate of #3736


Fix custom task shell doesn't work without manually passing in "run command" arg/flag

Fix #181302

@microsoft-github-policy-service agree

@meganrogge  It is a long time ago that I coded that but I think the rational behind this was that the shell property is only used for unknown shells and there the command argument could be totally different. So now we would always '/d', '/c' which could be totally wrong. This is why as soon as you specify a shell you need to provide the command argument.

So now we would always '/d', '/c' which could be totally wrong. This is why as soon as you specify a shell you need to provide the command argument.

Yes, but we're doing this already...

I think we could add commands for known shells, and do nothing for others
And add some documentations on

Also fixes #169821

@meganrogge @dbaeumer It's been 3 weeks by now may I get some response? If you think the changes are not appropriate, could we just talk...

Sorry for the super late reply, I didn't notice that I didn't publish my comments, somehow the reply comment gets mixed up with pending review comments

We reverted this because it broke tasks on Mac. I don't see a way to re-open the PR though. @meganrogge FYI.

@alexr00 Can you explain a bit more about how it broke tasks on Mac? I don't see any platform specific code that could be causing a breakage from just scanning the code

Ah, I see now, args is not empty on Mac for the default profile, will open a reland


Run configlet fmt on exercises

Not keen on "contributors" going away, but we'll go with it.

'tis the configlet fmt default. We could always patch the configlet tool but that's how all the other repos are formatted.


Disallow double links

Linking the same source and destination twice should be disallowed for now, until there is a clear way of knowing that there are two links generating 2 events.

done


Uninstall module used on PS 1.6 before using this one

after upgrading from <IP_ADDRESS> to <IP_ADDRESS> the module isn't upgrade

With blockcategories installed, ps_categorytree not installed:

After installing ps_categorytree:

It's QA ✔


feat: add delay property to text-generate-effect component

How can I add a demo ?

How do I add a demo?

Look how it's done inside https://github.com/unovue/inspira-ui/blob/main/content/2.components/text-generate-effect.md
Add a folder named text-generate-effect inside https://github.com/unovue/inspira-ui/tree/main/components/content/inspira/examples
Move the https://github.com/unovue/inspira-ui/blob/main/components/content/inspira/examples/TextGenerateDemo.vue inside your new folder
Duplicate it, change it the way you want it
Update https://github.com/unovue/inspira-ui/blob/main/content/2.components/text-generate-effect.md

Please format and lint the code using pnpm format & pnpm lint command. Please fix if linting errors too.

I think it must be good now.


[Bug Report] 1.18 Support

On 1.18, it does not show RGB.

I can't reproduce this, additionally there is little to no information to go off of here as far as troubleshooting. Please open a new issue with details about your environment, reproduction steps, etc, or better yet just ask for help in discord instead.

Where can I find discord link?

https://discord.gg/86Ekw8H


Fix typo in complex.md

Randomly noticed this misspelling of subtopics causing this in the RTD.

This PR fixes that.

Well spotted @joshichaitanya3! Thanks for this fix!


Add an open source license

Add for example MIT License, BSD License, Apache License or any other open source license.
Having a LICENSE file can help establish trust and openness with regard to the project and its authors, which can be important when collaborating with other developers or when publicly distributing the project.
For more information, visit the GitHub Docs:

Licensing a repository
Adding a license to a repository

Hi @jaroshevskii! Thanks so much for raising the issue, it's something I had in my todo list but never got around to doing.
I have now added an MIT license to the repository: https://github.com/polpielladev/chatty-cli/pull/4


Quartz port of map-app

@doneill I've ported almost all of the functionality to Quartz in this first pass.  I tried to maintain the original structure of the app and focused on a pure port.  The route task pieces are in place but not working as expected.  Can you look over what I have so far?

Some general comments, which may or may not have been introduced in this PR 😄 :

Return value of MapFragment.onGetRoute() method is never used, can you confirm this and refactor return value to void?
Replace explicit type argument in MapFragment.getSuggestions() with diamond <>.
The value of locationChanged in MapFragment.startLocationTracking() is always false.  I think we can remove the conditional as the value true assigned is never used?
The collection suggestedAddresses gets updated MapFragment.getSuggestions() but are never used?  Can we safely remove?

@zinfin I have some comments for your review.  Still working through some more though ...

@doneill I've completed the fixes we discussed last week:

Regarding MapFragment.onGetRoute(), I looked into refactoring and returning value of void but we're implementing the 'RoutingDialogListener' interface from the 'RoutingDialogFragment' class has the callback method boolean onGetRoute(String startPoint, String endPoint) so I've kept it the same.
The MapFragment.getSuggestions() has bee replaced with diamond <>.
I've removed the MapFragment.startLocationTracking() method altogether, handling location tracking in the setMapView method.
I've removed suggestedAddresses as well as other un-used class variables.
After talking with Justin and Will this week about routing in the app, they wanted the app to use the routing service associated with the user's ArcGIS Online account so I've added that logic.  I did bring up the issue that you and I discussed about the onus of credit use falling to the user.  We talked about getting proxies to work which would put the onus back on the developer (right?).  I'm still exploring this.
Previously, we called mMapView.restoreState(mMapViewState) in the onResume method.  How is state managed through the activity or fragment lifecycle?  Do we need to do anything explicit in the onPause or onResume methods?
I've fixed the behavior of the FAB, it now toggles between AutoPan modes (OFF and COMPASS).  Is this the behavior we were looking for?
Location display is turned on in the setMapView.  The setMapView is called onCreateView and every time a web map is loaded.  Do all of the set up things in the map view have to be done every time we change the map?
I tried to fix the compass behavior but to no avail, it's still not working correctly.
I've resized the PNGs in the asset folder and added a few more for routing.  Are they the right size or should I make them smaller?

Thanks @zinfin I will review!

@zinfin I started a cursory review of the UI/UX and couple of things:

The compass mode is not working, tapping the compass button does not orientate the map
Route is requiring a login.  Do not want to commit to that user experience yet, still want to seek a pattern to support not logging in to perform a route.

More to come ...

@doneill

I can't figure out how to fix the compass and need some pointers to get me started.

Would provisioning a proxy be a solution for the routing service?

@doneill When thinking about the documentation we'll be providing about the port from 10.2.7 to quartz-beta it seems like we want to center any discussions on comparing the differences in handling 1) the map view, 2) location display, 3) geocoding and routing (covering loadables and futures), and 4) authentication.  When starting to write this doc, I'm trying to understand the motivation for creating the MapView inline with 10.2.7 instead of relying on markup in the layout file.  Can you remind me?

Yes, the reason for the MapView API pattern as opposed to the XML View pattern is that the Portal API only supports the API pattern when switching a Basemap in a MapView.

Previously, we called mMapView.restoreState(mMapViewState) in the onResume method.  How is state managed through the activity or fragment lifecycle?  Do we need to do anything explicit in the onPause or onResume methods?

We have not implemented those helper methods as of yet, but MapView extends ViewGroup so you can override ViewGroup.onSaveInstanceState and ViewGroup.onRestoreInstanceState()

the reason for the MapView API pattern as opposed to the XML View pattern is that the Portal API only supports the API pattern when switching a Basemap in a MapView.

The basemap is switched on the Map, rather than the MapView, so it shouldn't matter how the MapView is constructed (unless i am missing something).

@willcrick You are referencing quartz, the context of question is design from 10.2x.  You are correct in pattern moving forward.

@zinfin Looks good to merge, I will merge and close.


Migration failed in latest version

I have been running ghost latest version in docker on Ubuntu 20.04 for quite a while...and it's been running fine...
Now yesterday, after watchtower update, it failed with error

alter table `posts_products` add constraint `posts_products_post_id_foreign` foreign key (`post_id`) references `posts` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'post_id' and referenced column 'id' in foreign key constraint 'posts_products_post_id_foreign' are incompatible.

I couldn't find out which version was I running previously, but I rolled back to 4.34.3 and it seems to work just fine...
I looked at the commit in GitHub, and the next version is 4.35, which is the latest one right one, and I tried manually switching back to 4.35 and it still gave migration error...
I am using MySQL 8 as database...

I imagine it would probably help to narrow down a little more exactly which version to which version gave the migration error, but I'll have to defer to @acburdine for more as I'm not very familiar with Ghost's migrations. :see_no_evil:

I imagine it would probably help to narrow down a little more exactly which version to which version gave the migration error, but I'll have to defer to @acburdine for more as I'm not very familiar with Ghost's migrations. 🙈

yes, it was migrating from 4.34.3 to the next release 4.35 which gave migration error on my server...
although they have released 4.36 right now, but it's not up on docker hub...I'll try migrating when its up and report if it works...

still an issue in version 4.36...
same migration error in mysql database...
i can't go beyond 4.34.3 version

Possibly related to this issue?
https://github.com/TryGhost/Ghost/issues/14144

Another user using our Docker image reporting this in the official Ghost forums as well:
https://forum.ghost.org/t/error-after-update-to-4-35-0/28349/2

Possibly related to this issue?
TryGhost/Ghost#14144

nope...mine gives a different MySQL error...i posted above..

I'm aware that the error messages are different, what's curious is that they both happen to involve the same table.

I run into this as well: https://forum.ghost.org/t/error-after-update-to-4-35-0/28349/2
I tried to replicate the error locally with docker compose.
I start ghost:4.34.3 with mysql:8. Wait for the initial database to finish.
Add a product to a post for testing purpose.
Start ghost:4.35.0 and no error.

I'm getting same issue in docker environment moving from 4.32.3 to 4.36.0 and latest mysql:8 docker image.
ghost_1  | [2022-02-16 13:46:04] ERROR alter table `posts_products` add constraint `posts_products_post_id_foreign` foreign key (`post_id`) references `posts` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'post_id' and referenced column 'id' in foreign key constraint 'posts_products_post_id_foreign' are incompatible.
ghost_1  |
ghost_1  | alter table `posts_products` add constraint `posts_products_post_id_foreign` foreign key (`post_id`) references `posts` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'post_id' and referenced column 'id' in foreign key constraint 'posts_products_post_id_foreign' are incompatible.
ghost_1  |
ghost_1  | {"config":{"transaction":false},"name":"2022-01-20-05-55-add-post-products-table.js"}
ghost_1  | "Error occurred while executing the following migration: 2022-01-20-05-55-add-post-products-table.js"

Upgraded from 4.34.3 to 4.36.1 without a problem. I did not have the post_products table prior to this and I see that it was created with a database migration in the Docker log. I recently just moved to a Docker Ghost container from a local install, so I suspect everyone's problem here either occurred in a previous version or my table is blank (I don't use Ghost memberships).

Solution Proposal
Login to your mysql database with an admin user, may be mysql -u root -p, and execute:
SET PERSIST default_collation_for_utf8mb4 = utf8mb4_general_ci;

Afterwards upgrade (or restart) your ghost server.
This will successfully (re-)execute the failed migrations.
This solution works for container-based installations as well.
Validate Config
SELECT * FROM performance_schema.persisted_variables;

SELECT @@default_collation_for_utf8mb4;

Background
The default collation for charset utf8mb4 in MySQL 5.7 is utf8mb4_general_ci, but has been changed to utf8mb4_0900_ai_ci with MySQL 8.0.
See https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_default_collation_for_utf8mb4
For instance, if created with MySQL 5.7, table posts looks like
CREATE TABLE `posts` (
  `id` varchar(24) COLLATE utf8mb4_general_ci NOT NULL,
...

And now, with the the new default of MySQL 8.0, table posts_products would be created as
CREATE TABLE `posts_products` (
...
  `post_id` varchar(24) COLLATE utf8mb4_0900_ai_ci NOT NULL,
...
  CONSTRAINT `posts_products_post_id_foreign` FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`) ON DELETE CASCADE,
...

This results in the reported error:

alter table `posts_products` add constraint `posts_products_post_id_foreign` foreign key (`post_id`) references `posts` (`id`) on delete CASCADE - UNKNOWN_CODE_PLEASE_REPORT: Referencing column 'post_id' and referenced column 'id' in foreign key constraint 'posts_products_post_id_foreign' are incompatible.

Remark
The issue does not occur, if you start with a new Ghost installation on MySQL 8.0.
If you started with your Ghost database on MySQL 5.7 and want to go on with the new default collation of MySQL 8.0, you may have two options:
Option 1 (Not verified myself)
Create a new Ghost installation on MySQL 8.0.
Export and import all your content from the old installation into the new installation.
Option 2  (Not verified myself)
Manually migrate your tables. This is possible, but tricky: If you try to change the collation of columns, like
ALTER TABLE `posts`
  MODIFY `id` varchar(24) COLLATE utf8mb4_0900_ai_ci NOT NULL;

you get a similar error with respect to already existing foreign key constraints. Possible solution:

Delete all foreign key constraints of the Ghost database model.
Migrate all columns (which have the old collation) to the new collation.
Re-create the deleted foreign key constraints.

(Caution: If done manually, this is very error prone!)

The config change worked for me, but if it's an option, dumping your database, performing a search/replace on utf8mb4_general_ci with utf8mb4_0900_ai_ci then restoring the file should work as well.

I have replicated the bug on Linux Mint, with the error on the following upgrade path:
Unable to upgrade Ghost from v4.34.3 to v4.36.2. Would you like to revert back to v4.34.3?
Running on Linux Mint 19.3 Cinnamon, Ubuntu Bionic
OS: LinuxMint, v19.3
Node Version: v14.17.0
Ghost Version: 4.36.2
Ghost-CLI Version: 1.18.1
Upgraded today to MYSQL8 from v5.7 prior to upgrading Ghost.
Ran standard Ghost update and got error above. Tried various solutions:

edited mysql.cnf with init_connect hard-coded and restarted MYSQL daemon
logged in to DB as root and executed ALTER DATABASE ghost_production DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_general_ci, restarted MYSQL daemon.
logged in to DB as root and executed SET PERSIST default_collation_for_utf8mb4 = utf8mb4_general_ci;

After each attempt to fix, tried restarting, updating, force updating etc.
The only thing which worked was setting the persistent parameter and then restarting the MYSQL daemon.
Recommended solution on Ubuntu flavoured OS:

Login to database
$ mysql -u username -p
$ enter password

Set persistent DB parameter
mysql> SET PERSIST default_collation_for_utf8mb4 = utf8mb4_general_ci;
mysql> exit

Restart MYSQL service
$ sudo service mysql restart

Hope this helps for others.

Got the same problem with migration 2022-01-20-05-55-add-post-products-table.js during update (from 4.x to 4.36.3).
My solution:

SET PERSIST default_collation_for_utf8mb4 = utf8mb4_general_ci;
create new table posts_products
run ghost

mysql> CREATE TABLE posts_products (
    -> id VARCHAR(24) NOT NULL PRIMARY KEY,
    -> post_id VARCHAR(24) COLLATE utf8mb4_0900_ai_ci NOT NULL, CONSTRAINT posts_products_post_id_foreign FOREIGN KEY (post_id) REFERENCES posts (id) ON DELETE CASCADE,
    -> product_id VARCHAR(24) NOT NULL, CONSTRAINT posts_products_product_id_foreign FOREIGN KEY (product_id) REFERENCES products (id) ON DELETE CASCADE,
    -> sort_order INT UNSIGNED NOT NULL DEFAULT 0);

The config change worked for me, but if it's an option, dumping your database, performing a search/replace on utf8mb4_general_ci with utf8mb4_0900_ai_ci then restoring the file should work as well.

I can confirm this method and it worked just fine on my blog
My steps:

Dump the database
Create a copy of that SQL dump
Replace occurrences of  utf8mb4_general_ci with utf8mb4_0900_ai_ci
sed -i 's/utf8mb4_general_ci/utf8mb4_0900_ai_ci/g' new-db.sql
Drop ghost database
Create a new ghost database
Import the new-db.sql dump

Your site should be available again and the update did work flawlessly afterward.

Is this still an issue?  (Also relevant: is this an issue that's specific to this Docker image, or one that's general to the Ghost upgrade/migration process?)  :eyes:

As far as I understand:

This is not specific to docker
This is also not specific to an operating system

This only happens when you have used started using ghost with MySQL 5.7 and then migrated to MySQL 8.0.
Because these both versions have different defaults you will run into this migration problem.
Why?
Most likely because ghost is using MySQL 8 for a long time now and they did not encounter this case since it depends on the specific setup migrating from MySQL 5.7 over to MySQL 8 and then performing this migration in the ghost version where this pops up.

Thanks for confirming!  I'm going to close this (as there's not something we're going to be able to do to fix it in the image), but feel free to continue the conversation to determine the appropriate place to move the discussion. :+1:

Has this issue been raised with MySQL. It had probably wasted 1 million years of developer time so far.

None of the solutions seem to work for me. I'm using Google's Cloud SQL. I asked a question with details on the forum https://forum.ghost.org/t/database-migration-lock-after-updating-ghost/34667 but i haven't gotten any feedback on there.
Does anyone know of a fix?
You can check https://forum.ghost.org/t/database-migration-lock-after-updating-ghost/34667 for details


Show YNR data on leaflets

Default to showing person, party and ballot data from YNR, and fall back to the old data if needed.
This is a precursor to (eventually) migrating all the old data.

I've backtracked a bit on this @symroe, I've gone back to using the people_person table for local storage for now so we can keep the person views in EL


Minor changes

Feature description
Title
Tasks

[ ] Clear images from "import images" dialog
[x] Progress bar when importing images
[ ] Clean up code
[x] Refactor import images

Refactored image importing and added a progress bar bbe5261a72c3b27c7c40c55a4a674e7ba13f4a4a


Feature new users

What this PR does / Why we need it
This PR is awesome new feature to hackassistan! Volunteers, mentors and Sponsors are coming to Hackassistant!
Which issue(s) this PR fixes (optional)

Fixes #288
Special notes for your reviewer (optional)
Some questions

[x] I have read the contributing guidelines
[x] I abide by this repository Code of Conduct
[x] I understand that my PR won't be merged until GitHub gives a "green light"

Additional Notes (optional)
Do you want to add anything else? We :heart: to hear your opinions!

Now Mentors and Volunteers can have expiration or not, variable on hackathon_variables. Sponsors never had and never will have expiration dates because it's status goes like this: apply -> confirmed -> attended. They are not invited, they are confirmed just in the application. This is secure because the url have to match the 2 tokens (token that identifies the sposnor, and token of verification)


Add quantityAvailable field to ProductVariant type

I want to merge this change because adding quantityAvailable field to ProductVariant type.

Impact

[ ] New migrations
[x] New/Updated API fields or mutations
[ ] Deprecated API fields or mutations
[ ] Removed API types, fields, or mutations

Pull Request Checklist

[ ] Privileged queries and mutations are guarded by proper permission checks
[ ] Database queries are optimized and the number of queries is constant
[ ] Database migration files are up to date
[x] The changes are tested
[x] GraphQL schema and type definitions are up to date
[ ] Changes are mentioned in the changelog

@NyanKiyoshi  I add the new field to benchmark. We have tasks to optimize all stocks related queries by implementing data loaders for stocks. This change is out of scope of this PR.


Log4j2 force rollover does not create empty backup *.log.1 file like logj4

Description
Log4j2 RollingFileAppender rollover() function does not create new rollover file on empty log.
[A clear and concise description of what the bug is.]
Using RollingFile appender and with SizeBasedTriggeringPolicy. And on top of it, we do flush the log by calling RollingFileAppender's myappender.getManager().rollover(); on demand.
When we using older log4j, the behavior was even the current log is empty, for example, myrecord.log (empty), it will create new myrecord.log.1 (empty).
But with new log4j2, there is no myrecord.log.1 is created.
Another example, initial log has content inside,
myrecord.log (not empty)
When force rollover(),
It creates myrecord.log.1 (same content as original myrecord.log), and new myrecord.log is empty.
Do another flush (calling rollover()), and we expect myrecord.log (empty), myrecord.log.1(empty) and myrecord.log.2 (with content) just like it was in log4j.
But the new behavior now is only myrecord.log (empty) and myrecord.log.2 (with content).
The file myrecord.log.1 (empty) is missing
Configuration
<RollingFile
name="MyRecord"
fileName="${LOG_BASEPATH}/myrecord.log"
filePattern="${LOG_BASEPATH}/myrecord.log.%i"
ignoreExceptions="false">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
<DefaultRolloverStrategy max="5" fileIndex="min" />
</RollingFile>
Version: [Log4j version]
<log4j2.version>2.21.1</log4j2.version>
Operating system: [OS and version]
Windows Server 64bits
JDK: [JDK distribution and version]
Java8 and Java21
Logs
No error log, it is the rollover() output behavior changed from log4j
[Stacktraces, errors, etc. relevant applications logs.]

Reproduction
Calling rollover() from RollingFileAppender rfa = ..;
rfa.getManager().rollover();
And check the output rollover log files.
[An isolated test reproducing the test.
JUnit tests similar to the ones in the code base are extremely appreciated.]

The RollingFileManager has a renameEmptyFiles property that decides whether or not to rename empty files.
It is an internal property and usually triggering policies manage its value. If you force the rollover programmatically, you can call:
RollingFileManager rf = ...;
rfm.setRenameEmptyFiles();
rfm.rollover();

With setRenameEmptyFiles(true); the empty log file is rollover like log4j API.
Thanks a lot!

Maybe keep the default rollover() behavior in log4j2 the same as it was in log4j, or document the default behavior change between log4j2 vs. log4j would be also help on this, right?
Thanks again!


switch const for var in test/application.js

Looks like I missed this when merging earlier

https://github.com/koajs/koa/commit/0f241572d69fb8aa7585842319ffb6462b50915a


Cleanup checkSwitch

Description

Cleanup duplicated code.

Closes #4082.
Readiness checklist

[ ] I added/updated unit tests (and they pass).
[ ] I added/updated integration/compatibility tests (and they pass).
[x] I added/updated comments and checked rendering.
[ ] I made spot refactorings.
[ ] I updated user documentation.
[ ] I ran task all, and it passed.
[x] I ensured that PR title is good enough for the changelog.
[x] (for maintainers only) I set Reviewers (@FerretDB/core), Milestone (Next), Labels, Project and project's Sprint fields.
[x] I marked all done items in this checklist.

@PaveenV I made minor changes to remove duplicated code from checkswitch :hugs:


[allocbox-to-stack] Eliminate temporary dominance issue and fix improper use of non-ossa generic method createDestroyValue.

NOTE: I also added a partial_apply [guaranteed] test.
Whats interesting about these is that we only ever perform allocbox_to_stack if
we know that we are going to eliminate the allocbox completely. So if we break
dominance among some uses of the alloc box or insert destroy_value when we are
in non-ossa... it doesn't matter since we will eliminate the box and these uses
before the pass is done running.
This will harmless on the surface is an instance of the compiler being in a
"fixed point of correctness". This occurance is when the compiler implementation
is incorrect but the incorrectness is being hidden in the final output. If the
output of the compiler changes or the code in question is changed, new bugs can
be introduced due to the lack of preserving of standard invariants like
dominance.
I also added an additional helper: SILBuilder::insertAfter(SILValue). This
builds on Erik's commit that gave us insert(SILInstruction *). I wanted this
functionality, but additionally I wanted to make it so that if I had an
argument, I got back the first instruction in the block. So it was natural to
extend this to values.

@swift-ci smoke test

thanks! lgtm.


Quicklist/Loclist exception

E121: Undefined variable: g:ale_set_quickfix
Error detected while processing function <SNR>167_HandleExitNeoVim[1]..<SNR>167_HandleExit:
E15: Invalid expression: g:ale_set_quickfix || g:ale_set_loclist

Probably there is no default value for one of these.
Stable Neovim 0.1.7, latest ale from master.

I can't reproduce it anymore 😕


Homebrew version is outdated

brew is installing version 1.0.26 which correspond to the latest tag but do not correspond to the latest master.
1.0.26 is not compatible with Python3, the latest master is.
it would require a version tagging for the current master and updating brew.
thanks

Could this be done? The brew version does not support internet accounts and the missing python3 support is pretty inconvenient if you switched your osx to python3 as default.

brew edit clintmod/formulas/macprefs
add:
head do
url "https://github.com/clintmod/macprefs.git", branch: "master"
end
then brew install --HEAD macprefs and maybe brew link --overwrite macprefs
should result in a working homebrew install of macprefs.

@sciencetaco Thank you so much! I had to run
brew unlink macprefs then brew install --HEAD macprefs instead and its working again.


Enable embroider-optimized scenario

The embroider-optimized scenario tests fail with the following errors:
 not ok 6 Chrome 105.0 - [15 ms] - Unit | Validators | messages: it exists
    ---
        expected: >
            true
        stack: >
                at Object.eval (webpack://dummy/./tests/unit/validators/messages-test.js?:14:12)
        message: >
            failed, expected argument to be truthy, was: undefined
        negative: >
            false
        browser log: |
    ...
not ok 7 Chrome 105.0 - [35 ms] - Unit | Validators | messages: suppressWarnings set to true
    ---
        actual: >
            null
        stack: >
            TypeError: Cannot read properties of undefined (reading 'getMessageFor')
                at Object.eval (webpack://dummy/./tests/unit/validators/messages-test.js?:25:14)
        message: >
            Died on test #1: Cannot read properties of undefined (reading 'getMessageFor')
                at Object.eval (webpack://dummy/./tests/unit/validators/messages-test.js?:16:46)
        negative: >
            false
        browser log: |
    ...
not ok 8 Chrome 105.0 - [18 ms] - Unit | Validators | messages: suppressWarnings unset
    ---
        actual: >
            null
        stack: >
            TypeError: Cannot read properties of undefined (reading 'getMessageFor')
                at Object.eval (webpack://dummy/./tests/unit/validators/messages-test.js?:32:14)
        message: >
            Died on test #1: Cannot read properties of undefined (reading 'getMessageFor')
                at Object.eval (webpack://dummy/./tests/unit/validators/messages-test.js?:28:46)
        negative: >
            false
        browser log: |
    ...

Seems like instance is undefined inembroider-optimized scenario.
const specifier = '@ember-intl/cp-validations@validator:messages';
const instance = this.owner.lookup(specifier);
instance.getMessageFor('foobarbaz');

From the discussion https://github.com/ember-intl/cp-validations/pull/90#discussion_r975732239
function embroiderOptimized(extension) {
    return extendScenario({
        name: 'embroider-optimized',
        npm: {
            devDependencies: {
                '@embroider/core': currentEmbroiderVersion,
                '@embroider/webpack': currentEmbroiderVersion,
                '@embroider/compat': currentEmbroiderVersion,
                // Webpack is a peer dependency of `@embroider/webpack`
                webpack: '^5.0.0',
            },
        },
        env: {
            EMBROIDER_TEST_SETUP_OPTIONS: 'optimized',
        },
    }, extension);
}

I think ember-auto-import v2 is present via @embroider/util which has "ember-auto-import": "^2.2.0", as a dependency. Also the embroider-safe scenario works which has the same devDependencies as embroiderOptimized from above.
$ npm ls @embroider/util
<EMAIL_ADDRESS>/Users/manuel/Code/opensource/cp-validations
└─┬<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>


docs(@angular/cli): Add Nightwatch schematics to e2e command

Overview
Added Nightwatch Schematic to e2e command. Nightwatch schematics would add both schematics and custom builder to Angular Project.
Ref:
https://github.com/nightwatchjs/nightwatch-schematics
https://www.npmjs.com/package/@nightwatch/schematics

Hi @alan-agius4 and @kyliau
Is there anything else we(@vaibhavsingh97 or myself) can do here to get the update landed?

@dgp1130 reached out to our devrels @twerske and @mgechev to see if there is any concern from their end about this change.

No concerns on our end. Our general policy is to have a set of e2e tests running against the lasted build artifacts. You can keep up to date with renovatebot. Since the builder is already maintained by your team, we'd love to have it as an option.

@mgechev We have https://github.com/nightwatchjs/nightwatch-schematics/blob/main/src/schematics/nightwatch/index_spec.ts. Would you want us to add tests to this repo or are those good enough? We're happy to add in anything you suggest here.


Fix test_resolve__none()

test_resolve__none() wasn't actually inputting None into gpo_member_photos.resolve().

Fix the test to input None -> the test fails.

Fix the code so the test passes.

flake8.

Coverage increased (+0.57%) to 47.34% when pulling c02924d9dc57c53a56ee95c020d5e6e6b95c1a1f on hugovk:fix_test into a6367185d5752f8de5887c396fd6f2cfa468e532 on unitedstates:gh-pages.

Coverage increased (+0.57%) to 47.34% when pulling c02924d9dc57c53a56ee95c020d5e6e6b95c1a1f on hugovk:fix_test into a6367185d5752f8de5887c396fd6f2cfa468e532 on unitedstates:gh-pages.


chore: bump flutter/dart min sdk constraints

Description
Bumps minimum version constraint on Flutter/dart to 3.16.0/3.2.0 respectively. Doing this ahead of https://github.com/Betterment/alchemist/pull/115 should resolve the issues seen with the build there.
Type of Change

[ ] ✨ New feature (non-breaking change which adds functionality)
[ ] 🛠 Bug fix (non-breaking change which fixes an issue)
[ ] ❌ Breaking change (fix or feature that would cause existing functionality to change)
[ ] 🧹 Code refactor
[ ] ✅ Build configuration change
[ ] 📝 Documentation
[x] 🗑 Chore

Blocked by the issue mentioned at https://github.com/Betterment/alchemist/issues/104, looking into it...

/no-platform


Update logic to use Jenkins API to check node status

Due to permission issue, we cannot use URL to query Jenkins status.
Update logic to use Jenkins API to check node status.
Fixes: https://github.com/adoptium/aqa-tests/issues/3252
Signed-off-by: lanxia<EMAIL_ADDRESS>

Internal Grinder:


fix: Postgres doesn't reconnect after idle time #541

fix connection with postgresql db getting closed after long period of inactivity

@zainhoda please review


Feature/badge with dots in tailwind css

Badge with dots/ icons in tailwindCSS

The purpose of this Pull Request is to fix #166
Description

How you solved

Screenshots

Checklist

[x] I have Made this contribution as per the CONTRIBUTING guide in this repo
[x] I have tested in local Environment.
[x] I have made the fix as per issue converstaion
[x] I have starred the repository ⭐

Great @Muhammad-Shahid-Jamal ,
Hope for more contributions from you!

Great @Muhammad-Shahid-Jamal , Hope for more contributions from you!

sure


Querying trough the Meta Database fails for some tables

How to reproduce the bug

Set up Meta Database like described here  - in our case it's called 'meta'
Select the Meta Database in SQLLab
Try to run queries in /sqllab on other databases trough the Meta Database (SELECT * from "meta.3cxCallLog%2Ecall_log"; )

Expected results
Data is returned.
Actual results
fptbr  <IP_ADDRESS> - - [20/Oct/2023:13:02:11 +0000] "PUT /tabstateview/49 HTTP/1.1" 200 2 "https://XXXX/sqllab/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"
fptbr  Triggering query_id: 801
fptbr  2023-10-20 13:02:11,182:INFO:superset.sqllab.commands.execute:Triggering query_id: 801
fptbr  Query 801: Executing 1 statement(s)
fptbr  2023-10-20 13:02:11,249:INFO:superset.sql_lab:Query 801: Executing 1 statement(s)
fptbr  Query 801: Set query to 'running'
fptbr  2023-10-20 13:02:11,249:INFO:superset.sql_lab:Query 801: Set query to 'running'
fptbr  Query 801: Running statement 1 out of 1
fptbr  2023-10-20 13:02:11,286:INFO:superset.sql_lab:Query 801: Running statement 1 out of 1
fptbr  2023-10-20 13:02:11,333:DEBUG:shillelagh.backends.apsw.vt:Instantiating adapter with deserialized arguments: ['meta.3cxCallLog%2Ecall_log', None]
fptbr  <IP_ADDRESS> - - [20/Oct/2023:13:02:11 +0000] "PUT /tabstateview/49 HTTP/1.1" 200 2 "https://XXXX/sqllab/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36"
fptbr  /app/superset/extensions/metadb.py:383: SAWarning: Dialect superset:apsw will not make use of SQL compilation caching as it does not set the 'supports_statement_cache' attribute to ``True``.  This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions.  Dialect maintainers should seek to set this attribute to True after appropriate development and testing for SQLAlchemy 1.4 caching support.   Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)
fptbr    rows = connection.execute(query)
fptbr  2023-10-20 13:02:12,127:DEBUG:shillelagh.backends.apsw.vt:Instantiating adapter with deserialized arguments: ['3cxCallLog.call_log', None]
fptbr  SupersetErrorsException
fptbr  Traceback (most recent call last):
fptbr    File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
fptbr      rv = self.dispatch_request()
fptbr    File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
fptbr      return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
fptbr    File "/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
fptbr      return f(self, *args, **kwargs)
fptbr    File "/app/superset/views/base_api.py", line 127, in wraps
fptbr      raise ex
fptbr    File "/app/superset/views/base_api.py", line 121, in wraps
fptbr      duration, response = time_function(f, self, *args, **kwargs)
fptbr    File "/app/superset/utils/core.py", line 1518, in time_function
fptbr      response = func(*args, **kwargs)
fptbr    File "/app/superset/views/base_api.py", line 93, in wraps
fptbr      return f(self, *args, **kwargs)
fptbr    File "/app/superset/utils/log.py", line 255, in wrapper
fptbr      value = f(*args, **kwargs)
fptbr    File "/app/superset/sqllab/api.py", line 357, in execute_sql_query
fptbr      command_result: CommandResult = command.run()
fptbr    File "/app/superset/sqllab/commands/execute.py", line 121, in run
fptbr      raise ex
fptbr    File "/app/superset/sqllab/commands/execute.py", line 103, in run
fptbr      status = self._run_sql_json_exec_from_scratch()
fptbr    File "/app/superset/sqllab/commands/execute.py", line 161, in _run_sql_json_exec_from_scratch
fptbr      raise ex
fptbr    File "/app/superset/sqllab/commands/execute.py", line 156, in _run_sql_json_exec_from_scratch
fptbr      return self._sql_json_executor.execute(
fptbr    File "/app/superset/sqllab/sql_json_executer.py", line 111, in execute
fptbr      raise SupersetErrorsException(
fptbr  superset.exceptions.SupersetErrorsException: [SupersetError(message='superset error: Bad return type from function callback', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'Superset meta database', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]
fptbr  2023-10-20 13:02:12,354:WARNING:superset.views.base:SupersetErrorsException
fptbr  Traceback (most recent call last):
fptbr    File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1823, in full_dispatch_request
fptbr      rv = self.dispatch_request()
fptbr    File "/usr/local/lib/python3.9/site-packages/flask/app.py", line 1799, in dispatch_request
fptbr      return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
fptbr    File "/usr/local/lib/python3.9/site-packages/flask_appbuilder/security/decorators.py", line 95, in wraps
fptbr      return f(self, *args, **kwargs)
fptbr    File "/app/superset/views/base_api.py", line 127, in wraps
fptbr      raise ex
fptbr    File "/app/superset/views/base_api.py", line 121, in wraps
fptbr      duration, response = time_function(f, self, *args, **kwargs)
fptbr    File "/app/superset/utils/core.py", line 1518, in time_function
fptbr      response = func(*args, **kwargs)
fptbr    File "/app/superset/views/base_api.py", line 93, in wraps
fptbr      return f(self, *args, **kwargs)
fptbr    File "/app/superset/utils/log.py", line 255, in wrapper
fptbr      value = f(*args, **kwargs)
fptbr    File "/app/superset/sqllab/api.py", line 357, in execute_sql_query
fptbr      command_result: CommandResult = command.run()
fptbr    File "/app/superset/sqllab/commands/execute.py", line 121, in run
fptbr      raise ex
fptbr    File "/app/superset/sqllab/commands/execute.py", line 103, in run
fptbr      status = self._run_sql_json_exec_from_scratch()
fptbr    File "/app/superset/sqllab/commands/execute.py", line 161, in _run_sql_json_exec_from_scratch
fptbr      raise ex
fptbr    File "/app/superset/sqllab/commands/execute.py", line 156, in _run_sql_json_exec_from_scratch
fptbr      return self._sql_json_executor.execute(
fptbr    File "/app/superset/sqllab/sql_json_executer.py", line 111, in execute
fptbr      raise SupersetErrorsException(
fptbr  superset.exceptions.SupersetErrorsException: [SupersetError(message='superset error: Bad return type from function callback', error_type=<SupersetErrorType.GENERIC_DB_ENGINE_ERROR: 'GENERIC_DB_ENGINE_ERROR'>, level=<ErrorLevel.ERROR: 'error'>, extra={'engine_name': 'Superset meta database', 'issue_codes': [{'code': 1002, 'message': 'Issue 1002 - The database returned an unexpected error.'}]})]

Screenshots

Environment
(please complete the following information):

browser type and version: Chromium Version 118.0.5993.70 (Official Build) snap (64-bit)
superset version: The Superset UI shows 0.0.0-dev. We're using this version of the 'latest' image from docker hub with the additional layers

USER root
RUN pip3 install AuthLib cloud-sql-python-connector google google-cloud-bigquery
USER superset

added by us

python version: as in the docker hub image
node.js version: as in the docker hub image
any feature flags active: FEATURE_FLAGS = {"ALERT_REPORTS": True, "ENABLE_SUPERSET_META_DB": True}
database 3cxCallLog is on a Postgres16 Server but it's maybe worthwhile noting that it was imported from a PG13 Server with pg_dump -F c | pg_restore -xO while keeping the original database name

Additional context

If we directly select the 3cxCallLog database in SQL Lab and run SELECT * from "call_log"; it works as expected
Everything about the 3cxCallLog database also works as expected when used in the psql client
If we add a simple table containing 2 varchar-fields into the 3cxCallLog DB we are able to successfully query it via the Meta Database and get results

schema of the failing table (holds ~410K records)
c3cxlog=# \d+ call_log
                                                       Table "public.call_log"
       Column       |           Type           | Collation | Nullable | Default | Storage  | Compression | Stats target | Description
--------------------+--------------------------+-----------+----------+---------+----------+-------------+--------------+-------------
 historyid          | integer                  |           | not null |         | plain    |             |              |
 callid             | character varying(128)   |           |          |         | extended |             |              |
 duration           | interval                 |           |          |         | plain    |             |              |
 time_start         | timestamp with time zone |           |          |         | plain    |             |              |
 time_answered      | timestamp with time zone |           |          |         | plain    |             |              |
 time_end           | timestamp with time zone |           |          |         | plain    |             |              |
 reason_terminated  | character varying(128)   |           |          |         | extended |             |              |
 from_no            | character varying(128)   |           |          |         | extended |             |              |
 to_no              | character varying(128)   |           |          |         | extended |             |              |
 from_dn            | character varying(128)   |           |          |         | extended |             |              |
 to_dn              | character varying(128)   |           |          |         | extended |             |              |
 dial_no            | character varying(128)   |           |          |         | extended |             |              |
 reason_changed     | character varying(128)   |           |          |         | extended |             |              |
 final_number       | character varying(128)   |           |          |         | extended |             |              |
 final_dn           | character varying(128)   |           |          |         | extended |             |              |
 chain              | text                     |           |          |         | extended |             |              |
 from_type          | character varying(128)   |           |          |         | extended |             |              |
 to_type            | character varying(128)   |           |          |         | extended |             |              |
 final_type         | character varying(128)   |           |          |         | extended |             |              |
 from_dispname      | character varying(256)   |           |          |         | extended |             |              |
 to_dispname        | character varying(128)   |           |          |         | extended |             |              |
 final_dispname     | character varying(128)   |           |          |         | extended |             |              |
 missed_queue_calls | text                     |           |          |         | extended |             |              |
 c3cx_source        | character varying(128)   |           |          |         | extended |             |              |
 c3cx_time_received | timestamp with time zone |           |          |         | plain    |             |              |
 start_time         | timestamp with time zone |           |          |         | plain    |             |              |
 end_time           | timestamp with time zone |           |          |         | plain    |             |              |
 ringing_dur        | interval                 |           |          |         | plain    |             |              |
 talking_dur        | interval                 |           |          |         | plain    |             |              |
 q_wait_dur         | interval                 |           |          |         | plain    |             |              |
Indexes:
    "call_log_pkey" PRIMARY KEY, btree (historyid)
Access method: heap

schema of the working table in the same database
c3cxlog=# \d+ test
                                                  Table "public.test"
 Column |         Type          | Collation | Nullable | Default | Storage  | Compression | Stats target | Description
--------+-----------------------+-----------+----------+---------+----------+-------------+--------------+-------------
 code   | character(5)          |           |          |         | extended |             |              |
 title  | character varying(40) |           |          |         | extended |             |              |
Access method: heap

schema of a more complex table (odoo users table) from another DB (also imported from the same PG13 to the same PG16 with the same command) which works too:
o_sv=# \d+ res_users
                                                                           Table "public.res_users"
       Column       |            Type             | Collation | Nullable |                Default                | Storage  | Compression | Stats target |    Description
--------------------+-----------------------------+-----------+----------+---------------------------------------+----------+-------------+--------------+--------------------
 id                 | integer                     |           | not null | nextval('res_users_id_seq'::regclass) | plain    |             |              |
 active             | boolean                     |           |          | true                                  | plain    |             |              |
 login              | character varying           |           | not null |                                       | extended |             |              |
 password           | character varying           |           |          |                                       | extended |             |              |
 company_id         | integer                     |           | not null |                                       | plain    |             |              |
 partner_id         | integer                     |           | not null |                                       | plain    |             |              |
 create_date        | timestamp without time zone |           |          |                                       | plain    |             |              |
 signature          | text                        |           |          |                                       | extended |             |              | Email Signature
 action_id          | integer                     |           |          |                                       | plain    |             |              | Home Action
 share              | boolean                     |           |          |                                       | plain    |             |              | Share User
 create_uid         | integer                     |           |          |                                       | plain    |             |              | Created by
 write_uid          | integer                     |           |          |                                       | plain    |             |              | Last Updated by
 write_date         | timestamp without time zone |           |          |                                       | plain    |             |              | Last Updated on
 totp_secret        | character varying           |           |          |                                       | extended |             |              | Totp Secret
 notification_type  | character varying           |           | not null |                                       | extended |             |              | Notification
 odoobot_state      | character varying           |           |          |                                       | extended |             |              | OdooBot Status
 odoobot_failed     | boolean                     |           |          |                                       | plain    |             |              | Odoobot Failed
 sale_team_id       | integer                     |           |          |                                       | plain    |             |              | User Sales Team
 oauth_provider_id  | integer                     |           |          |                                       | plain    |             |              | OAuth Provider
 oauth_uid          | character varying           |           |          |                                       | extended |             |              | OAuth User ID
 oauth_access_token | character varying           |           |          |                                       | extended |             |              | OAuth Access Token
 website_id         | integer                     |           |          |                                       | plain    |             |              | Website
 karma              | integer                     |           |          |                                       | plain    |             |              | Karma
 rank_id            | integer                     |           |          |                                       | plain    |             |              | Rank
 next_rank_id       | integer                     |           |          |                                       | plain    |             |              | Next Rank
Indexes:
    "res_users_pkey" PRIMARY KEY, btree (id)
    "res_users_login_key" UNIQUE CONSTRAINT, btree (login, website_id)
    "res_users_partner_id_index" btree (partner_id)
    "res_users_uniq_users_oauth_provider_oauth_uid" UNIQUE CONSTRAINT, btree (oauth_provider_id, oauth_uid)
Foreign-key constraints:
    "res_users_company_id_fkey" FOREIGN KEY (company_id) REFERENCES res_company(id) ON DELETE RESTRICT
    "res_users_create_uid_fkey" FOREIGN KEY (create_uid) REFERENCES res_users(id) ON DELETE SET NULL
    "res_users_next_rank_id_fkey" FOREIGN KEY (next_rank_id) REFERENCES gamification_karma_rank(id) ON DELETE SET NULL
    "res_users_oauth_provider_id_fkey" FOREIGN KEY (oauth_provider_id) REFERENCES auth_oauth_provider(id) ON DELETE SET NULL
    "res_users_partner_id_fkey" FOREIGN KEY (partner_id) REFERENCES res_partner(id) ON DELETE RESTRICT
    "res_users_rank_id_fkey" FOREIGN KEY (rank_id) REFERENCES gamification_karma_rank(id) ON DELETE SET NULL
    "res_users_sale_team_id_fkey" FOREIGN KEY (sale_team_id) REFERENCES crm_team(id) ON DELETE SET NULL
    "res_users_website_id_fkey" FOREIGN KEY (website_id) REFERENCES website(id) ON DELETE SET NULL
    "res_users_write_uid_fkey" FOREIGN KEY (write_uid) REFERENCES res_users(id) ON DELETE SET NULL
Access method: heap

cc: @betodealmeida

Taking a look, thanks for the detailed info!
In the meantime, a small comment: you don't have to use the meta database name (though you can). So instead of this:
SELECT * from "meta.3cxCallLog%2Ecall_log";

It's better to write:
SELECT * from "3cxCallLog.call_log";

This is definitely a bug in the SQLite library, surfaced by apsw. I suspect it's the interval column. I'll create a similar table in Postgres and test.

OK, I was able to create a similar table (ChatGPT can be awesome) and repro the bug. Working on a fix.

Works in latest-dev - thank you folks!


Update nativescript-floatingactionbutton link

Use https://github.com/bradmartin/nativescript-floatingactionbutton/tree/master/src/platforms instead of https://github.com/bradmartin/nativescript-floatingactionbutton/tree/master/platforms

Thanks @tbsf for your contribution!