LoRaWAN - Application fails to start if module is not powered

LoRaWAN - Application fails to start if module is not powered
Describe the bug
When a LoRa module is attached, LoRaWAN (and other associated switches in proj.conf) are enabled, but power is not enabled to the LoRa module, the main thread fails to run the user code (that inside main() ). It also does not print the banner (*** Booting Zephyr OS build zephyr-v2.4.0-3155-gc19c6fb438b9  ***). Note, if the module is not attached, the system will start normally (even with proj.conf switches saying LoRaWAN is enabled).
To Reproduce
Connect LoRa module to MCU but don't power on boot of MCU.
Expected behavior
It should error, not catastrophoic fail. The initilisation should really be done in application code, not via SYS_INIT() as this scenario of power switching external devices (LoRa module in this case) would be very common, especially for devices where very low power draw in standby is desired.
Impact
Catastrophoic in terms of a data logger which could have a failed transciever but can still log to memory. Wasted power usage on very low power systems if required to leave module always powered.
Logs and console output
No Console output. I enabled:
CONFIG_LOG=y
CONFIG_LOG_MAX_LEVEL=4
CONFIG_LOG_BACKEND_UART=y
CONFIG_LOG_RUNTIME_FILTERING=y
CONFIG_LOG_BUFFER_SIZE=2048
CONFIG_LOG_PRINTK=y
CONFIG_LOG_PROCESS_TRIGGER_THRESHOLD=0
CONFIG_COVERAGE=n
yet got no logging on the serial interface (I presume there is something I missed).
Environment (please complete the following information):

Windows 10
Zephyr with gnu-arm-embedded
zephyr-v2.4.0-3155-gc19c6fb438b9

Additional context
In my application, I'm using LoRa on a battery system which we're hoping to last 5-10 years on battery (with battery charging to extend battery life). As such we need to minimise battery usage as much as possible. I'm using an nrf52840dk with a SX1276MB1LAS shield and another board between them. This extra board, one of it's functions is to switch power rails. These rails default to being off, so when the MCU is in deep sleep (system off), the rails are disabled and thus don't waste power. The system is woken up from an external RTC alarm interrupt.
I've tested the behaviour of the bug over multiple reboots changing the power status with a switch. The switch allows 3v3 on boot to the SX1276 module or has the power controlled by the application code (which is the desired behaviour now, and requried for the final design).
Other notes:
The shell boots fine, and I can see the "main" thread is running:
Scheduler: 4450839 since last call
Threads:
0x20000e10 sysworkq
options: 0x0, priority: -1 timeout: 536874636
state: pending
stack size 1024, unused 904, usage 120 / 1024 (11 %)
*0x20000bd0 shell_uart
options: 0x0, priority: 14 timeout: 536874060
state: queued
stack size 2048, unused 1168, usage 880 / 2048 (42 %)
0x20000b18 logging
options: 0x0, priority: 14 timeout: 536873876
state: pending
stack size 768, unused 656, usage 112 / 768 (14 %)
0x20000c88 idle 00
options: 0x1, priority: 15 timeout: 536874244
state:
stack size 320, unused 248, usage 72 / 320 (22 %)
0x20000d40 main
options: 0x1, priority: 0 timeout: 536874428
state: pending
stack size 1024, unused 760, usage 264 / 1024 (25 %)
LoRa kconfigs enabled are:
CONFIG_SPI=y
CONFIG_SPI_1=y
CONFIG_LORA=y
CONFIG_LORA_SX12XX=y
CONFIG_LORAWAN=y
CONFIG_LORAMAC_REGION_AS923=y

@ballardr This issue is very generic and not specific to lora. I'm currently away from my dev board, so please test the below patch and see if it fixes your issue:
diff --git a/drivers/spi/spi_context.h b/drivers/spi/spi_context.h
index 62805e9367..ef39ed2d64 100644
--- a/drivers/spi/spi_context.h
+++ b/drivers/spi/spi_context.h
@@ -114,11 +114,11 @@ static inline int spi_context_wait_for_completion(struct spi_context *ctx)
        int status = 0;
 #ifdef CONFIG_SPI_ASYNC
        if (!ctx->asynchronous) {
-               k_sem_take(&ctx->sync, K_FOREVER);
+               k_sem_take(&ctx->sync, K_MSEC(10));
                status = ctx->sync_status;
        }
 #else
-       k_sem_take(&ctx->sync, K_FOREVER);
+       k_sem_take(&ctx->sync, K_MSEC(10));
        status = ctx->sync_status;
 #endif /* CONFIG_SPI_ASYNC */

Thanks @Mani-Sadhasivam, that fixed the issue. When will the patch be incorporated into the master branch? I better not close until it's patched.

Thanks @Mani-Sadhasivam, that fixed the issue. When will the patch be incorporated into the master branch? I better not close until it's patched.

Thanks for testing! I'll submit a PR and link this issue so that the closing can happen when the PR is merged.


fix(minifier): collapse variables when join_vars option is true

The variable collapse AST pass was only collapsing declarations when CompressOptions::join_vars was true, and skipping when false. This does not follow the behavior documented for this option. This PR fixes this.

#6227
#6226  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @DonIsaac and the rest of your teammates on  Graphite

I don't know the minifier at all, so I think best leave Boshen to review this.

It appears that the test262 breakage is caused by the void x declaration. However, surprisingly, this pass does not address the void x issue at all!

closed by https://github.com/oxc-project/oxc/pull/6464


Feature: Create "@types/eslint-plugin-perfectionist" package

Describe the rule
When I am using eslint.config.js, code editor submit a warning about module declaration.
Code example
Could not find a declaration file for module 'eslint-plugin-perfectionist'. '/home/anega/itmo/design-system/app/node_modules/eslint-plugin-perfectionist/dist/index.mjs' implicitly has an 'any' type.
Try npm i --save-dev @types/eslint-plugin-perfectionist if it exists or add a new declaration (.d.ts) file containing `declare module 'eslint-plugin-perfectionist';
Additional comments
No response
Validations

[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

Hi, this feature is already done and will appear in our upcoming release.

Thank you for your issue!
Types were added in 2b63ab558f431a33fbdfb103c3279ec34011d135 and released in v3.0.0.
If you'd like, you can support the release with a retweet:
https://x.com/azat_io_en/status/1815367279191761054


fix: Fix Dispatch#dispatch bug

Dispatch#dispatch was not calling onReceive on the nodes' components.
Also payload.node wasn't set.

landed as 961014e


Add AV1 codec tests

It would also be nice if it detected all supported audio and video codecs, and perhaps show the less popular ones with a smaller/less prominent UI.

@pvarga-dni thanks for the suggestion! That is the plan!


Create Azure VM with Managed Service Identity

https://github.com/Azure/azure-sdk-for-ruby/issues/885

Closing and re-opening to run travis


How can I run the tests in a forked repo?

I forked this repo and I have the code in /lib/fake_braintree-0.7.0 (open to suggestions on where the standard place to put a forked repo in your project is. this is the first time I've done it).
I'm trying to follow the readme and the principles of TDD and run the tests, then write my test for the feature I'm adding, then add the feature.
This is what I'm trying in my root directory:
rspec lib/fake_braintree-0.7.0/spec/fake_braintree
/Users/gregblass/apps/myapp/lib/fake_braintree-0.7.0/spec/fake_braintree/registry_spec.rb:3:in `<top (required)>': uninitialized constant FakeBraintree::Registry (NameError)
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in `load'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1327:in `block in load_spec_files'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in `each'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/configuration.rb:1325:in `load_spec_files'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:102:in `setup'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:88:in `run'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:73:in `run'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/lib/rspec/core/runner.rb:41:in `invoke'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/gems/rspec-core-3.3.2/exe/rspec:4:in `<top (required)>'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/bin/rspec:23:in `load'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/bin/rspec:23:in `<main>'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/bin/ruby_executable_hooks:15:in `eval'
from /Users/gregblass/.rvm/gems/ruby-2.2.2@myapp/bin/ruby_executable_hooks:15:in `<main>'

What am I missing here?

OK I was able to get tests running, but I'm getting 25 failing tests, all saying "expecting a gzipped response" ...

Nevermind, got it working. I wish github would let me delete issues that I started...


Add an “apiVersion” field to BeaconAlleleResponse

Currently only at Beacon.
Users won’t need to explicitly call the / endpoint to know the API version of the Beacon they are using.

-1
API version is a property of the beacon, i.e. it belongs under /. A beacon will never return different API versions for different variants/responses, so there shouldn't be a need to to have it in BeaconAlleleResponse. The query syntax/semantics might change between different versions of the API, so you could argue that the client should know the version of the API before it executes a query anyway.

+1
It is a sanity check for an asynchronous, distributed system like the one we are building.
Responses must be auto-suficient in terms of metadata. Each caller could, thus, double check the context from the response itself .
Nothing is impeding the user to receive answers from different servers between "info" call and actual query response, or just having deployed a new version between calls.

Accepted.

Can we revisit this @jrambla? I agree that it makes parsing the result simpler but not sure how much more of an advantage it is over querying the info endpoint once, and remembering the version for every subsequent request. As written, this field is optional, and so the only way I client will be confident in the version is to encode a fallback to look at the info endpoint anyways.

+1 v.0.4

Closing as it is already included in merged PR #92


Pixel

I look at expectedOutput.png and it seems that pixels are drawn in pixelplanet.fun not in their places

This one is interesting... I can't really imagine how this would happen :(.
Since the picture looks similar'ish, it's not too too bad... I might take a look at this at some point, when I get some more spare time.


Missing dist folder in source

In newest version you don't have index.js file.
when trying to npm run build I get:
Error: Cannot find module '[...]\node_modules\webpack-merge\dist\index.js'. Please verify that the package.json has a valid "main" entry
your package json has:
line 13: "main": "dist/index.js",

Can you provide more information?
I get
 ~/Pr/tm/wm-demo/n/webpack-merge/dist  ls                                                                 ✔  16.14.2 Node
index.d.ts         join-arrays.d.ts   merge-with.d.ts    types.d.ts         unique.d.ts        utils.d.ts
index.js           join-arrays.js     merge-with.js      types.js           unique.js          utils.js
index.js.map       join-arrays.js.map merge-with.js.map  types.js.map       unique.js.map      utils.js.map

after installing.
Can you give exact commands to run?

Looking at node_modules\webpack-merge\dist\index.js' and dist/index.js, I wonder if it could it be some path normalization issue.
Which versions of Node and npm are you using? Are you on Windows?


Configuration enhancements

This adds the ability to specify configuration based on HTTP request method, which resolves #43:
MyAPI.configureTransformer("/item", requestMethods: [.GET]) {
    Item(json: $0.content)
}

MyAPI.configureTransformer("/item", requestMethods: [.PUT, .POST]) {
    ItemUpdateResult(json: $0.content)
}

Things to note about the implementation:

Both Service.configureTransformer(…) and the various flavors of Service.configure(…) now accept a requestMethods: parameter.
Some configuration properties (e.g. expirationTime) are used outside the context of a request, and thus cannot depend on the HTTP request method. Siesta will ignore any per-method overrides of such properties.
A request mutation closure can modify the NSMutableURLRequest after Siesta creates it, and can thus change the HTTP method. After this mutation runs, Siesta always uses the post-mutation HTTP method for choosing configuration for a request. However, the default request headers are the one thing that get set before the mutating closure (and must, since modifying them is one of the primary jobs of the mutator!). This means that it is possible, for example, for a request to use the default headers configured for a GET but the response transformers configured for a PUT.
Resource.config is no longer a part of the public API, making resource configuration essentially write-only. It’s unclear to me why anyone really needed to inspect configuration after it was set, but if I learn of a compelling reason to make this public again, I will.

@majorgilles, I’d appreciate your feedback on whether this works for you before I merge.

this change would be great.  we've actually gone outside of siesta in a couple of instances where the PUT/PATCH return data is different/nonexistent compared to the GET that is configured via Siesta and used 99% of the time

Sorry have not tested yet, will do it asap.
On Wednesday, 25 May 2016, Andrew Loyola<EMAIL_ADDRESS>wrote:

this change would be great. we've actually gone outside of siesta in a
couple of instances where the PUT/PATCH return data is
different/nonexistent compared to the GET that is configured via Siesta and
used 99% of the time
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/bustoutsolutions/siesta/pull/54#issuecomment-221610459

@majorgilles: It took me ages to get to this, so certainly no apologies needed about not testing after only 3 days!

@majorgilles Likely you’ll have a chance to take a look? Would love a sanity check before merging.

@pcantrell Hello Paul, I'm in the process of migrating my web services to the standard form, and configuring my siesta resources with the new developments.
I should have finished testing by the end of the day, and I'll report back to you.
Best regards,
Gilles

I'm encountering issues with my webservices which are not related to siesta that prevent me from giving you full feedback right now.
What I can tell you:

new API is simple and easy to use, being able to configure a transformer with several methods in one go is great
From some parts of my application that are still working, the correct transformer was indeed getting triggered according to the new configuration.

I will need to fix issues on my end before telling if everything works.

Thanks, @majorgilles. I’ll take that as a sufficient smoke test to merge the PR. Let me know if you hit any hitches with the new functionality after your server is back on its feet.

After restoring my webservices, I can confirm the new specs are working correctly for  at least POST/GET methods. Have not tested other methods.


Create debian package meta files

Create all meta files needed for Debian package ( .deb ) creation.
Useful links:
https://linuxconfig.org/easy-way-to-create-a-debian-package-and-local-package-repository
https://wiki.debian.org/Packaging/Intro?action=show&redirect=IntroDebianPackaging
https://wiki.debian.org/HowToPackageForDebian

Closing - is in this To Do


Connextscan missing Optimism events.

Describe the bug
Optimism TX  is not shown in scan.
Relying on user wallet: 0xad997638331eab4eb8518cf299c11175696a249d
Additional context
Discord Link

Update: Optimism subgraphs fell behind

a few hosted service subgraphs are behind:
https://status.thegraph.com/
following up with their team

Graphs are back up.


Cache Past Trades data for Average Price Calculation

Describe the solution you'd like
Have the program pre-download all the needed data for all coins and then every minute update with last minute data and remove first minute data and cache it, so it can calculate the average price faster when the coin is entered instead of downloading it in real-time.

Definitely possible and I've thought about this but I think it'll take a long time to download all the necessary data so may not work practically. I'll test it properly soon and see how practically possible doing this is.

One workaround to speed it up is only download coin that meet certain parameters like low volume and low BTC price and things like that.
Then if coins wasn't cached download it based on the setting in config file.

What if instead of downloading the whole X last minutes of data we download for X amount of time in milliseconds and calculate the average price with that? It would allow for slow and fast connections to have an average and not be too slow at the same time.

That's a nice idea but I'm pretty sure that the API doesn't have an option to download data in milliseconds, the lowest option is in seconds though I could be wrong. Even so, downloading the data isn't the only thing that might require time. Querying also takes time, especially if done every few milliseconds.

Yes so what I meant was to download for example during 100 milliseconds whatever data we are able to with our internet speed. I don't mean to download X millions of data, but to download data during Y milliseconds. In the above formula we would control the variable Y

This is done now and is included in the last Pull, as well as many other corrections and improvements

Very nicely done works really well. Thank you! I'll add a permanent mention of you to the readme for all your help.


Give back ownership

In my parser, I use this pattern several times:
do_parse!(
  foo: foo_subparser >>
  bar: alt!(
    call!(bar_subparser1, foo.clone())
  | call!(bar_subparser2, foo)
  ) >> ...
)

However, bar_subparser1 and bar_subparser2 only consume the foo if they succeed (to build their return value).
It would be nice to have a way to get the ownership back in the parent parser if one option of the alt! failed, so avoid a useless clone.

I'm not really sure how this could be fixed :/


Support running on ChromeOS emulator (Pixelbook_beta_API_25)

I am hoping  the team could consider supporting the new Chrome OS emulator ?
My app is on the Android and IOS play store and i want to get it tested for Chrome OS.
I can launch the ChromeOS emulator, but Flutter refuses to see that its running.
My Log:
flutter emulators --launch Pixelbook_beta_API_25
cd ./example && flutter run

flutter emulators --launch Pixelbook_beta_API_25
cd /Users/apple/workspace/go/src/github.com/zino-app/graphql-flutter/example && flutter run
No connected devices.

Run 'flutter emulators' to list and start any available device emulators.

If you expected your device to be detected, please run "flutter doctor" to diagnose
potential issues, or visit https://flutter.io/setup/ for troubleshooting tips.
make: *** [ex-chromeos-run] Error 1

My Env:
x-MacBook-Pro:~ apple$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel dev, v0.11.6, on Mac OS X 10.14.1 18B75, locale en-DE)
[✓] Android toolchain - develop for Android devices (Android SDK 27.0.3)
[✓] iOS toolchain - develop for iOS devices (Xcode 10.1)
[✓] Android Studio (version 3.2)
[✓] VS Code (version 1.29.1)
[!] Connected device

x-MacBook-Pro:~ apple$ flutter emulators
3 available emulators:

Pixel_2_API_28        • pixel_2          • Google • Pixel 2 API 28
Pixelbook_beta_API_25 • Pixelbook (beta) • Google • Pixelbook (beta) API 25
apple_ios_simulator   • iOS Simulator    • Apple

To Reproduce:

Install the emulator in Android Studio.
https://developer.android.com/topic/arc/emulator

Make a simple Flutter example

Fire it up as per my Log:

I'm on dev and when i launch the emulator and use a google account.
then i launch flutter run i got no connected devices

There is two chrome os emulator one (Pixelbook (beta)) doesn't work with flutter but it seems to also not work with normal android app so it's not a flutter issue.
And the other (Pixelbook (beta) API 25) one work as expected.

I found that as soon as I enabled the google play store on the emulator it ran just fine for me.

I boot ChromeOs sim, and log in as me, see the Google Play Store Icon App and click it and its spinning forever.
Something i did wrong ?


How to re-use the Client object

I try sending an Auth packet and it goes fine, the code below works all good.
srv = Client(server=cluster_host, secret=shared_secret_binary, dict=my_dict)
req = srv.CreateAuthPacket(code=pyrad.packet.AccessRequest, User_Name='user1')
### add some more attrs to request #####
reply = srv.SendPacket(req)

Now, I want to re-use the srv object to send another request but it does not work.
req = srv.CreateAcctPacket(code=pyrad.packet.AccountingRequest, User_Name="user1")
reply = srv.SendPacket(req)  # does not work

Is this not supported ? Do I need to create the srv object everytime I need to send  a packet ?

This was a non-issue, actually my radius server had accounting port closed!


[eas-cli] [ENG-7536] Stop app config error repeating

Why
https://linear.app/expo/issue/ENG-7536/make-app-config-error-on-credentials-command-not-repeat-indefinitely
How
If app config error is thrown it is re-thrown with modified message instead of printing it to the as a "cryptic error" and repeating with 0% chances of success (since the config is incorrect)
Test Plan
Added automated test
Tested manually:

The link from the message leads to the docs:

/changelog-entry bug-fix Make app config error not repeat indefinitely


Time Comparison (Attempt #2)

2nd attempt at reverting to the commit adding the benchmarking CI for a time comparison. I think it should work this time since I used this solution here: https://stackoverflow.com/questions/32841671/reverting-to-a-specific-commit-without-losing-history which shouldn't rewrite history like git reset.

The pull-requests: write may be necessary for the benchmarking report, but let's see!


Removed decltype(auto) annotation in HZ_BIND_EVENT_FN lambda

I removed the "-> decltype(auto)" to reduce code complexity. The return type can be deduced since C++14, which should not make any problems since Hazel is using C++17.

This is functionally different, think of decltype(auto) as a.perfect forwarding of return values. So if the wrapped function returned a reference  that would be maintained unlike this change.

Also the whole return type deduction thing you mention has existed for lambda since its additon in c++11

Oh ok. It looked like it would work, but I looked it up and understand how I was wrong. Thanks for noticing @ReDucTor! I will close the PR


Linked List in Binary tree in Cpp

💥 Proposal
Have you read the [Contributing Guidelines on Pull Requests]
Yes,I have
I would like to add Linked list in binary  Tree problem in CPP.
Can you please assign it to me, I would like to work on it as a part of GSSOC"21

/assign


Extend python jsonschema validator for additionalProperties to default to False

In jsonschema additionalProperties defaults to true, see section <IP_ADDRESS> of the spec
This is rather unfortunate as by default input and output schemas for the api will allow arbitrary additional keys in json objects, unless we remember to set additionalProperties to false.  I recommend we extend the additionalProperties validator for python jsonschema to default additionalProperties to false.
https://python-jsonschema.readthedocs.io/en/latest/creating/#jsonschema.validators.extend
https://github.com/Julian/jsonschema/blob/master/jsonschema/_validators.py#L21

jsonschema package sets the value of additionalProperties to an empty dictionary if it is not present, so one route would be to change the order of the if statements such that
if not aP and extras:

comes first.  This branch will be hit when additionalProperties is an empty dict since those evaluate to False.

Note:  Make sure to write a unit test that our change in default behavior is taking place

This might not work because setting additionalProperties to false in the wrong place disallows all properties


Enable RTTI by default and minor changes to bootstrap*.sh

Enable LLVM_ENABLE_RTTI by default in bootstrap*.sh when compiling LLVM
In CMakeLists.txt, make -fno-rtti and -DGOOGLE_PROTOBUF_NO_RTTI depend on the value of LLVM_ENABLE_RTTI
Install coreutils with brew on macOS, so realpath is available
Optionally get CC and CXX from environment variables in bootstrap*.sh

@artemdinaburg, does this work on windows? @withzombies, does this work on macOS?

It should not change anything on Windows, since there are only changes in the Linux and macOS scripts and in CMakeLists.txt if WIN32 is not true.
For me, it works on macOS as well.

This should work just fine on Windows, there aren't any Windows related changes.
Building with a non-clang ${CC} will work just fine, except the runtime libraries wont be built (the CMake should check for Clang in https://github.com/trailofbits/mcsema/blob/master/mcsema/Arch/X86/Runtime/CMakeLists.txt).  There are only needed if you want to re-emit binaries, not if you only want to analyze bitcode.
Some clang is required on the system to build C++-based bitcode semantics (https://github.com/trailofbits/mcsema/blob/master/mcsema/Arch/X86/Semantics/Bitcode/CMakeLists.txt). It can/should be separate from ${CC} though.
Just one question though:
What is the benefit of enabling RTTI by default? Don't the default builds of LLVM disable RTTI?

I personally need it for Boost.Python. But you're right, it probably makes more sense not to enable it by default for most people: http://llvm.org/docs/CodingStandards.html#do-not-use-rtti-or-exceptions

Maybe default bootstrap to no RTTI, but enable it if some environment variable is set? I like that your changes check LLVM's RTTI status and use the same for mcsema, that part is something we should be doing.

I've added the --enable-rtti to the scripts. By default, RTTI is not set explicitly and uses whatever is the default of LLVM.


Incorrect squiggles in query after rename

Type: Bug
Create a query using the automatic "SELECT TOP 1000" from the context menu. Right click on either the table name or a column name in the database explorer window, and rename the object. Edit the open script to reflect the renamed table or column. Red squiggle(s) say(s) object not found, but the script will successfully run. Refreshing the database list does not help.
Azure Data Studio version: azuredatastudio 1.48.0<PHONE_NUMBER>ef8254b7c22a5dc55af7f8a1dea93f, 2024-02-27T00:05:08.293Z)
OS version: Windows_NT x64 10.0.19045
Restricted Mode: No
Preview Features: Enabled
Modes:

System Info

Item
Value

CPUs
Intel(R) Xeon(R) CPU E3-1230 v5 @ 3.40GHz (8 x 3408)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: enabled_ondirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
undefined

Memory (System)
15.92GB (7.32GB free)

Process Argv

Screen Reader
no

VM
0%

Extensions (14)

Extension
Author (truncated)
Version

newdatabase
kev
1.0.0

admin-pack
Mic
0.0.2

admin-tool-ext-win
Mic
0.1.3

agent
Mic
0.49.0

import
Mic
1.6.1

powershell
ms-
2022.7.2

profiler
Mic
0.14.0

query-history
Mic
0.5.3

schema-compare
Mic
1.21.0

sql-database-projects
Mic
1.4.2

schema-visualization
R0t
0.9.1

db-snapshot-creator
sea
0.1.0

simple-data-scripter
sea
0.1.6

vscodeintellicode
Vis
1.2.1

Additional info. Closing the tab and recreating it may work. However, I renamed a table from XXX to YYY, and then created a new table XXX. New queries showed the squiggles, indicating the "errors" are cached somewhere in the app. Only closing ADS and reopening it full cleared the problem.


Fix shadow block IDs for procedure call blocks

Resolves
https://github.com/LLK/scratch-vm/issues/1011
Proposed Changes
Add a "generateShadows" attribute to the mutation parsing. Provide it when setting the mutation from the custom procedure editor callbacks. This makes the current code paths happen.
By default, do not generate shadow blocks when creating inputs. XML generated by scratch-blocks (when saving the project) and by scratch-vm (for loading a project) should not set "generateShadows". That means that a shadow block will not auto-generate, and the shadow DOM from the XML will be respected.
Reason for Changes
See https://github.com/LLK/scratch-vm/issues/1011
Test Coverage
Tested in the playground.

Note that those warnings happen without this change as well.

@rachel-fenichel, should this be closed since it's covered in #1439?


Account Recovery Process

Would it be possible to implement a password reset process for users that are locked out of their 2FA with recovery codes lost?  Right now the manual recovery process takes several months which can be problematic if you need to update a package that has a security issue.
GH uses SSH keys, or previously used devices techniques, see https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa/recovering-your-account-if-you-lose-your-2fa-credentials#requesting-help-with-two-factor-authentication
Happy to help implementing something, or contributing in any way
Thanks
Originally posted by @tarekziade in https://github.com/pypi/warehouse/issues/14010#issuecomment-1869508976

Closing this discussion due to lack of response and the addition of staffing that have been handling account recovery processes.
This isn't saying that we won't ever explore other account recovery techniques in the future.


FW raise min airspeed based on commanded bank

Needs review and testing.

closes #7572

@JonReacher @Antiheavy FYI
I'll share a link to the binary once it's available.

@dagar Question about this and the math. Maybe the commit says the following but I'm couldn't get it to do so (granted its the middle of the night here).
Load factor at bank should be 1/cos(bank angle). Let's assume 45 degrees so thats a new 1.41 load factor
Isn't stall speed at bank just = level Stall speed * load factor at bank? Let's assume 10m/s stall speed so 10 *1.41 is 14.1 m/s (new stall speed at 45 deg bank)
Am I off here or does the above in the commit say this as I kept getting a different stall speed and load when following the math in the commit.

@see3peoh  You're correct about formulating the load factor, but remember that stall speed increases by the square root of the load factor, not the load factor itself. So at 45 deg bank angle, you calculate a 1.41 load factor. You then find the square root of 1.41. You get ~1.19. So the new scaled stall speed is Stall speed*1.19 @ 45 degrees.

@JonReacher that makes soo much more sense. Thanks for the clarification. @dagar sorry for doubting you!

@see3peoh don't apologize, thanks for looking.
@JonReacher do you want a binary to test? Which board do you have?

@dagar Didn't see your question until now. I have a standard pixhawk. I'm down at the moment, need to build a new airframe for testing. It shouldn't be too long though. I'll be happy to have a binary to test.

I'm also willing to test this.

@JonReacher @Antiheavy we're blocked on your tests with this PR.

Got a couple flight tests done today with a build including this PR.
Survey and loiter patterns with increasing FW_AIRSPD_MIN:
https://logs.px4.io/plot_app?log=018edc80-b2ea-4707-90dd-ba899bdc0cf8
Survey and loiter patterns with increasing FW_R_LIM:
https://logs.px4.io/plot_app?log=20f8405a-ca05-441c-914b-60f9a460af8a
@dagar should take a closer look, but it seems be be behaving as intended.

More data:
Here are the airspeed and roll angle set points from a recent flight - airspeed setpoint definitely seems to increase whenever max roll angle is commanded. It seems to match the math in the PR. Airspeed setpoint is dark blue line, scaled 2x (m/s):
image
from this log:
https://review.px4.io/plot_app?log=f3da31a6-c015-4bab-ad23-8de3ccdd321b

Thanks for the review.


Validation Error, when Culture = "zh-Hant". Traditional Chinese

_Using version: 10.2.1
Steps to reproduce the behavior:

create the redirect object with Culture property equal "zh-Hant".  "zh-Hant" is the ISO code for Traditional Chinese.
var redirect = new Redirect
{
Culture = "zh-Hant"
} ;
try to Add this object to DB via that method
redirect = await _redirectService.AddAsync(redirect);
Get the Validation Exception:
the field Culture must match the regular expression '^[a-z]{2}(?:-[A-Z]{2})?$'

Expected behavior
successfully added to DB the redirect object with Culture = "zh-Hant".
Screenshots

Hi @Artem-Savenkov thank you for reaching out! Your issue is very clear, I'll dive into it and come back to you when I have an update

Hi @Artem-Savenkov We just released version 10.3.1-beta.1 with a fix for this issue. Are you interested to give it a try and see if that fixes the issue?

Hi Denis,
yes, this is the good news.
I will check this.
On Tue, Oct 17, 2023 at 9:26 AM Dennis @.***> wrote:

Hi @Artem-Savenkov https://github.com/Artem-Savenkov We just released
version 10.3.1-beta.1 with a fix for this issue. Are you interested to give
it a try and see if that fixes the issue?
—
Reply to this email directly, view it on GitHub
https://github.com/Infocaster/UrlTracker/issues/150#issuecomment-1765822833,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKJ4NYDQJNVHL2IQFDKAA7LX7YXKJAVCNFSM6AAAAAA2UEB6Q6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTONRVHAZDEOBTGM
.
You are receiving this because you were mentioned.Message ID:
@.***>

Hi @D-Inventor ,
I checked this flow.
it works great now.
Thanks ;)


Write transform function to clean and normalize FERC 714 XBRL respondent ID table

One thing I've noticed looking at the old and new data for this table, is that the XBRL derived data looks like a combination of 2 tables in the DBF/CSV data, and some of the additional data might be helpful for doing record linkage. So we might want to look at bringing in the 2nd identification / certification data table from the DBF data, which would allow better continuity between the XBRL & CSV data.


Files for external libraries generate with errors

Hello! We need kswift to generate files for external libraries but it's generating files with these errors:
"Cannot find type 'ClassName' in scope" and "No type named 'ClassName' in module 'shared'"
The generated files are ok but it looks like the libraries are inaccessible in ios/swift for some reason.
We use kswift with default settings in a number of projects and all of the external lib files are generated with this issue

hi! external libraries should be exported in framework settings to use from swift.
https://kotlinlang.org/docs/multiplatform-build-native-binaries.html#export-dependencies-to-binaries
also you can add excludeLibrary in gradle to not generate code that you will not use


Add Nethermind as RPC provider

OK ser but I'd rather keep the ordering on a first come first served basis to avoid drama lol.

OK ser but I'd rather keep the ordering on a first come first served basis to avoid drama lol.

Sounds good lol. I've certainly had enough of that recently :D


Page tab icon

Is there any way to add an icon to the browser tab?

What you're looking for is called a favicon. All you need is an image file ( the icon you want to use ) and a single line of HTML placed in the head section of your document to get it up and running.

Place the below line of code in head tag as suggested by @jaminscript.
Change the href and type attributes according your image type and its path
<link rel="icon"  type="image/png"    href="http://example.com/myicon.png">

Where should I include it? I added
<link rel="icon" type="image/png" href="link.png">

to  /_layouts/post.html and it doesn't work. Maybe I'm missing something?

Add it to the head section of the _layouts/default.html file

Thanks. It now works. Maybe I should've asked on where to include the page tab icon in the first place.


Create: 0012-integer-to-roman.js

File(s) Modified: 0012-integer-to-roman.js_
Language(s) Used: JavaScript
Submission URL: _https://leetcode.com/problems/integer-to-roman/submissions/879954825/_

Important
Please make sure the file name is lowercase and a duplicate file does not already exist before merging.

Thank you!


[Feature]: cluster states from undirected graph states

Is your feature request related to a problem? Please describe.
Why use cluster states? The primary hurdle to achieving practical quantum computation is scaling, a difficulty significantly exacerbated by the substantial overhead required for quantum error correction. This paper Fault-tolerant qubit from a constant number of components suggests a fault-tolerant quantum computing method that can be constructed from a minimal set of experimental components, potentially simplifying the engineering complexities involved in creating a large-scale fault-tolerant quantum computer. It involves fault-tolerantly generating $3D$ cluster states from bcc lattice (see algorithm 2, protocol A and B of paper using a single actively controlled qubit and two delay lines.
The cluster state $\ket{\psi_G}$ corresponding to an undirected graph $G = (V, E)$ is defined as [1]
\begin{equation}
    \ket{\psi_G} := \left[\prod_{(i,j) \in E} Z_{i,j}\right] \bigotimes_{i' \in V} \ket{+}_{i'},
\end{equation}

where each vertex $i \in V$ is identified with a qubit, and $Z_{a,b}$ denotes the controlled-Z gate on qubits $a$ and $b$. The stabilizers of $\ket{\psi_G}$ are generated by ${S_i : i \in V}$, [2] where $X_{a}$ and $Z_{a}$ denote Pauli $X$ and $Z$ on qubit $a$.
\begin{equation}
    S_i := X_i \prod_{j : (i,j) \in E} Z_j.
\end{equation}

Describe the solution you’d like
To start with, please check out the implementation of graph stabilizer states and its plotting methods --graph stabilizer states
Then, Implement the following algorithm $1$ from this paper Fault-tolerant qubit from a constant number of components. In summary, algorithm $1$ creates progressively larger cluster states associated with the subgraphs of $G = (V, E)$ by incorporating one qubit at a time. To elaborate, let $n := |V|$ represent the total number of data qubits, and establish a sequence for the qubits by labeling them from $1$ to $n$. According to this sequence, the qubit labeled $1$ is added initially, then the qubit labeled $2$, and this process continues sequentially.
Algorithm $1$: Prepare the cluster state $\ket{\psi_G}$ given a graph $G = (V, E)$ with $V = [n]$. (page $5$ of the paper)

Describe alternatives you’ve considered
The traditional method for creating cluster states involves initializing each qubit in the $\ket{+}$ state and applying controlled $Z$ gates as specified in first equation. Since a controlled $Z$ gate is needed for every pair of qubits $(a, b)$ in $E$, this method requires $|E|$ distinct gates. Each of these gates must be precisely calibrated and implemented, making the experimental execution of this protocol quite challenging.
In contrast, algorithm $1$ and algorithm $2$ protocols $A$, $B$  eliminate the need to calibrate and implement numerous distinct operations, allowing for simpler experimental implementations.  Their algorithm uses a single ancilla qubit $Q$ that interacts sequentially with the data qubits, which correspond to the vertices $V$ of $G$. The ancilla $Q$ is actively controlled, while the data qubits  passively interact with $Q$. The data qubits do not need to interact with each other. Thus, one can simply adjust a constant number of interactions between the controllable qubit and the physical system representing the data qubits to calibrate all gates.
Important thing to consider is to also plot these states given the pkgs used to plot graph stabilizer states.
Additional context
The paper mentioned above uses the already established bcc lattice from this paper A fault-tolerant one-way quantum computer, and describes two protocols $A$, $B$ to make cluster states from it. This is described as Algorithm $2$. Please see the appendix section 2, page 23 which has describes correctness of algorithms which can be useful when implementing correctness tests.

Check out the python source code of the aforementioned paper: https://github.com/noajshu/clusterstates


Added type definition to args

As I keep getting this error: Rest parameter 'args' implicitly has an 'any[]' type when using Visual Studio Code I added the type any[] to the parameter.
That fixes that error for me.

Coverage remained the same at 77.778% when pulling 82a804b0281bb4c91244ff10ce43873da2589de9 on ThorstenBux:patch-1 into 0b6058965f86193b78e90f10a6992e687300c5b6 on szokodiakos:master.

Hello, thanks for the PR! However this issue must be fixed in src/prop.ts, the lib directory gets built from src. I will correct this issue and close down this PR.

as of 3.1.2 it is now in the typing informations
(in commit https://github.com/szokodiakos/typegoose/commit/55daecbcf857e46594369270a2429c3ed9f60741)


[Excel] (req sets) adding a missing asterisk

Docs Build status updates of commit 9498470:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/requirement-sets/ribbon-api-requirement-sets.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


NPM package severely out of date

NPM lists this package at version 1.0.0, while 3.0.1 has been out for a few months now. Is there any way the NPM package can be updated?

Hi, you say it for https://www.npmjs.com/package/themoviedb-javascript-library?
I don't know who added that package and don't know how to contact or publish a new version :(

@cavestri thanks for responding so quickly! Yes, that's the package. I think you could try to dispute the package, as it links to your GitHub repo and hasn't been updated in years.

oh ok, i will try that then. Thanks!

Hi, I have updated the package with latest code. Thanks for the head up! :smiley:
Greetings!


Add nrotelk8s

Deploy the newrelic-experimental/monitoring-kubernetes-with-opentelemetry onto the cluster.

Added with #6


Critical flaw in scale method allows for entire namespace deletion

I brought this up in the Slack channel and it didn't seem to be taken very seriously so I'm creating this issue in hopes that someone takes a deeper look. Based on my own investigation it seems that there is a certain scenario in which deis scale can actually destroy an entire app within it's namespace. This also includes other components deployed to the same namespace.
Calling deis scale runs the scale method in app.py which then calls self.create which is where the problem occurs. On line 199 there is a call to _scheduler.ns.get(namespace) which could raise a KubeException error. The code assumes that an error thrown at that moment means the namespace doesn't exist but this isn't always the case. In the controller log I got a "There was a problem retrieving data from the Kubernetes API server". This DOES NOT mean the namespace doesn't exist.
Following the exception from line 199, an attempt to create the namespace is made on line 201. This call will fail because of "409 Conflict namespaces [namespace] already exists". And that's when the outer exception is caught on line 215.
From there it's pretty clear what happens. The code assumes that "something really horrible" happened and proceeds to delete the apps namespace on line 218.
Let me know if there's anything I can provide to assist or if I'm just way off in my investigation of the code.

Can someone look at this and tell me if it does what I think it does? If the Deis guys are too busy with other work then I will try and tackle this myself and create a pull request. I don't want to do it if my investigation is wrong.

@lshemesh I think your analysis is correct, unfortunately. In the outermost try / except block maybe we need to look at the details of the KubeException, or somehow pass enough context so that we know we're actually in the midst of deis scale on an existing app.

If you can check the details of KubeException and figure out that the original exception wasn't because of a non existing namespace should the code just error out? I didn't mention it in my previous post but I believe this happened when I ran two scale commands back to back.

If you can check the details of KubeException and figure out that the original exception wasn't because of a non existing namespace should the code just error out?

Yes, I think that would be appropriate. Just somehow skip trying to delete the namespace in the case, and allow the raise ServiceUnavailable line to raise the actual error.

@mboersma check out my masterpiece


How to take screenshot and open it afterwards.

I basically have the screenshot code ready but I don't know how to open the image after. I wanted to show it as a notification in the latter part of my program. Thank you.

Sorry Anna, I was away the past few months - https://github.com/tebelorg/RPA-Python/issues/144
I'm afraid TagUI doesn't have a way to show a popup window with a specified image as notification.
After capturing image, you can try using the Windows start command or the macOS open command to open the image.
snap page to result.png
run start c:/full_path/result.png

snap page to result.png
run open /full_path/result.png

Note to use the full path, because the run step will run the command in tagui\src directory, not in the same directory as the automation flow and the image file saved. If your automation involve the web browser, you can using the following line to show a popup message -
dom window.alert("Message to user")

If your automation involves visual automation or only desktop apps, you can use the following line to show popup -
vision popup('Message to user')

Closing the issue for now but please lemme know if any input or question.


Switch to ACTION_INSERT_OR_EDIT for "add to contacts" action

See https://forum.k9mail.app/t/adding-email-to-existing-contact/6758

Thanks for the PR. Sorry, I currently can't build and test because AGP 8.0 is not supported in IntelliJ yet.


fix SyntaxError

Sorry about last pull request. In fact, the SyntaxError is caused by the self.write('{} users so far!'.format(count). (yeah, i've copied your code in my shell.)
I just changed the ... by the way, but it is actually correct, it's just the emulation.
😂😂😂

ah ok, no worries.


Question concerning AMD Radeon RX 550

Are those values okay for an AMD Radeon RX 550:
(I am using NixOS 24.05 with MESA drivers)
Platform: Clover
  Device: AMD Radeon RX 550 / 550 Series (radeonsi, polaris12, LLVM 17.0.6, DRM 3.54, 6.6.51)
    Driver version  : 24.0.7 (Linux x64)
    Compute units   : 8
    Clock frequency : 1183 MHz

    Global memory bandwidth (GBPS)
      float   : 5.73
      float2  : 5.60
      float4  : 5.65
      float8  : 5.33
      float16 : 4.48

    Single-precision compute (GFLOPS)
      float   : 576.10
      float2  : 575.73
      float4  : 574.13
      float8  : 571.74
      float16 : 566.20

    No half precision support! Skipped

    Double-precision compute (GFLOPS)
      double   : 65.10
      double2  : 67.01
      double4  : 65.29
      double8  : 64.14
      double16 : 58.16

    Integer compute (GIOPS)
      int   : 228.10
      int2  : 227.43
      int4  : 225.38
      int8  : 221.10
      int16 : 218.38

    Transfer bandwidth (GBPS)
      enqueueWriteBuffer         : 7.92
      enqueueReadBuffer          : 8.20
      enqueueMapBuffer(for read) : 4802.07
        memcpy from mapped ptr   : 8.17
      enqueueUnmap(after write)  : 6963.31
        memcpy to mapped ptr     : 8.01

    Kernel launch latency : 84.36 us

Platform: rusticl
clCreateContextFromType (-1)

Maybe you can try another OpenCL implementation to see if you get the same numbers: https://github.com/kpet/clvk
clover is quite old. And rusticl seems not to support clCreateContextFromType. But clvk should be able to give you numbers you can trust.

Thanks :)


schildichat-desktop: use electron 24.x

Description of changes
As pinned by upstream:
https://github.com/SchildiChat/element-desktop/blob/2f54ef60617db8b5d4a8acdb3ae90721d05de3b3/package.json#L91
Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 232441 run on x86_64-linux 1

2 packages built:

schildichat-desktop
schildichat-desktop-wayland


Remove Composer "platform" config

As requested by @fabpot in https://github.com/symfony/skeleton/pull/9#issuecomment-307291986

Thank you @teohhanhui.


can't generate mobileconfig

Following the instruction from the README.md , to generated the mobileconfig. However, the command can't generated it as shown on attached screen.

I think it is because you accidentally insert a Chinese parathesis “ instead of usual English parathesis " in your command.


RestController should allow returning Response from Resource

As noted on the mailing list, you cannot currently eturn a Response instance directly from a Resource listener and have it handled; RestController handles only ApiProblem(Response)?, Entity, or Collection results properly, and treats anything else as a payload for HAL to render.

@weierophinney we need also this feature for the Doctrine integration in Apigility 1.1, in this PR https://github.com/zfcampus/zf-apigility-admin/pull/267 /cc @jguittard

@ezimuel and @jguittard — fix is complete, and on the develop branch (i.e., ~1.1-dev).

Does make sense to add support to  Zend\Http\Response\Stream  ?
Regards,
Diego


evil-mc binding descriptions

This PR:
Fixes interactive pattern for +multiple-cursors:evil-mc as noted on discord.
Adds descriptions for evil-mc key bindings;
These names were too long to be useful in my which-key. I think this is
an improvement?

Thanks for the PR! Sorry to say I cannot accept it for two reasons:

The interactive code was already corrected before this PR was submitted.
A limitation of which-key prevents us from properly labeling keybinds that aren't on a major mode keymap (e.g. rust-mode-map). normal+visual state keybinds are bound on evil-normal-state-map and evil-visual-state-map, neither of which are major mode keymaps. This may appear to work, but you are effectively labeling gz and all its subkeys, globally, wherever a gz keybind exists, regardless of keymap or mode. This was discussed in #1705. There is no workaround for this.


1.6 deployment scale

Dunno if it changed in 1.6 but v1beta1 GetScale etc are incorrect.
They query v1beta1/namespaces/xxx/scales/name/
While in 1.6 there seems to be: v1beta/namespaces/xxx/deployment/deploy_name/scale/

Ah, this package doesn't support subresources yet. Thanks for the note, will try to fix that when subresources are supported.

Closed via https://github.com/ericchiang/k8s/pull/84


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-main" workflow

Codecov Report

Merging #539 (075a52f) into main (b6062da) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #539   +/-   ##
=======================================
  Coverage   95.69%   95.69%
=======================================
  Files           1        1
  Lines         395      395
  Branches       53       53
=======================================
  Hits          378      378
  Misses         17       17

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


Can vendor/src/ become just vendor/?

This may have been asked and answered before; if so, forgive the noise.
Given gb is a greenfield implementation of the build tooling, it's not bound to conventions, like that all Go code must live in a directory with an ancestor called src. When looking at gb project structures, vendor/src/ feels stuttery, incongruent with src/, somehow unnecessary. Can vendored code live directly in vendor/, e.g. vendor/github.com/foo/bar/?

It also could be a source of confusion. If gb build is executed from within a vendor/src/lib directory won't gb pick vendor as the project root instead of vendor/..?

I like having vendor/src/ because I want to repurpose vendor/ to include all of my 3rd party resources like css and javascript, not just go code.

@Supermighty hmm, I think that's a complicating use-case that doesn't need to be supported. You could just as easily put your third-party resources in another directory.

If gb doesn't do anything special with vendor/ then why not put other stuff in it? I would rather have all my external dependencies in one place than litter my project directory with vendor-go/ vendor-css/ vendor-js/ vendor-lua/ or whatever other external libs I am using.
gb doesn't need to support anything, it just needs to make a promise to not clobber vendor/ directories. It doesn't need to make the same promise for vendor/src though.

I agree with @peterbourgon that the shorter the better. Maybe this is a bad idea, but as we are discussing this, why not put the dependencies directly in <project_root>/src? Packages are naturally namespaced. If the application code lives in <project_root>/src/myapp, then it's already separated from the dependencies living in <project_root>/src/{github.com, bitbucket.org, ...}.

I like having vendor/src/ because I want to repurpose vendor/ to include all of my 3rd party resources like css and javascript, not just go code.

@Supermighty in #25 I suggested that vendor/ would not be a good place for static assets, modulo feelings of minimalism, you can create any directory structure you like in a gb project; but I'd strongly encourage you to think of vendor/ as being their stuff not your stuff. Please reopen #25 and explain what 3rd party assets you think are not your stuff and why they must go in vendor/

I agree with @peterbourgon that the shorter the better. But as we are discussing this, why not put the dependencies directly in <project_root>/src? Maybe this is a bad idea, but packages in Go are already naturally namespaced. If the application code lives in <project_root>/src/myapp, then it's already separated from the dependencies living in <project_root>/src/{github.com, bitbucket.org, ...}.

@ngrilly I deliberately chose to separate the projects' code, your stuff, from the code that it depends on, not your stuff, into it's own directory vendor/src/. This was for two reasons

political, one of the complaints raised about GOPATH is there is no separation between my stuff and your stuff inside GOPATH. An argument can be made that the url namespacing enforced by go get gives users a clear way to identify things that are not their stuff; just look a the url, if it's not your github username or org, it's not your stuff -- but some are unconvinced by this argument.

In short, I'm giving people what they wanted.

At a technical level, considering the proposal in #49 it is critical that for any gb project, a clear separation of code that represents the project being vendored, and code that that code that is being vendored depends on (what a mouthful).

At a practical level, if you want to create a gb project that places all the source of the project, even the dependencies into $PROJECT/src/ the tool won't stop you doing that. but it's unlikely that tools like gb-vendor if rewritten (see #29 ) will support this alternative method of vendoring.

@peterbourgon thanks for raising this. I'm giving this strong consideration as there is a time pressure if the vendor directory does change location.
I want to give some background, and fess up to some features that are not yet implemented.
At the moment src/ and vendor/src/ are hard coded, but it was not my intention that this would be permanent. I had in mind that additional source directories of a project could be added, and auto detected in the same way we auto detect the project root; any directory that matches $PROJECT/*/src/ is a candidate for searching when resolving import paths to packages. So there would have to be a marker in the path, src/ to help identify directories when searching.
@ChrisHines you are correct that modeling vendor/src/ as effectively a gb project inside a gb project would cause confusing results when executing gb build inside $PROJECT/vendor/src/something; the project root would be reset to $PROJECT/vendor. So code would be built, but in the wrong place. This idea of a gb project within a gb project is probably also the result of an incomplete story for how libraries could be packaged as gb projects, see #49
However, the opposite is also confusing, if we expunged the src/ directory, then gb build at any point in the project would most likely be able to figure out the correct project root -- but it would still not build anything inside vendor/src/, these paths are ignored as part of initial package resolution, they are only referenced if there are unmet transitive dependencies inside the source in $PROJECT/src/

To continue the previous thought, on reflection, allowing the flexibility to have multiple vendor directories inside a single project sounded like a good idea, but probably was short sighted,
The problem with auto detecting vendor directories is their order will not be stable, and this directly affects package resolution. As people figure out they don't need to namespace their packages with unique github urls, it is easy to see two packges called "logger", living in different vendor directories usurping each other depending on the order in which they show up in the directory. This instability also would completely screw incremental compilation.
Of course, we could sort the list of vendor directories during discovery, but this feels like a patch on top of a misfeature, and there are number of ways I can see it going wrong with respect to incremental compilation.
So, with that realisation it is clear that the hard coding of the location of the vendor directory will most likely remain hard coded, and that there will not be, for the foreseeable future, support for multiple vendor directories. I think this is an important simplification. Thanks for helping me understand this @peterbourgon.
With all this said, it would appear to be a shoe in that vendor/src/ can be also simplified to vendor/ as we don't need the auto detection logic. And In writing my previous response I was coming around to this idea. However there is one big problem; $GOPATH compatibility.
@ngrilly  and many others have voiced concerns that moving away from $GOPATH structured source means breaking compatibility with ides, and tools, see #23 and others. My response to those concerns, at worst, GOPATH can be simulated for a gb project by GOPATH=$PROJECT:$PROJECT/vendor. If we were to drop the trailing src/ in the vendor directory we would loose the ability to have a gb project impersonate a GOPATH.
So for that reason, at this point, I think we have to keep the src/ suffix in the vendor directory. And given how long a transition period would be, should gb prove successful in the market, it's likely that vendor/src/ will remain as a curio permanently.
Anyway, this is what I'm thinking as of today. What have I missed? What have I misunderstood or an not seeing clearly ?

I see. Thanks for the clarification. I had not thought carefully enough about what gb build from within the vendor tree should mean. It does seem rather useless as you point out.
Perhaps the project root auto-detection needs a special case to ignore a vendor/src pair when walking up the tree from the working directory to avoid mistaking the vendor tree as a project. In addition, it would be nice if gb finds the project even if the current directory is <project>/pkg or <project>/bin. I don't know if the code does that at the moment, but the README is not clear on this question. It states:

A gb project is defined as any directory that contains a src/ subdirectory. gb automatically detects the root of the project by looking at the current working directory and walking backwards until it finds a directory called src/.

Which implies it will only work if you are in a sub-directory of <project>/src.

@ngrilly and many others have voiced concerns that moving away from $GOPATH structured source means breaking compatibility with ides, and tools . . .

To be a sort of devil's advocate, I'll submit: the $GOPATH structure, specifically that all buildable code lives under a $GOPATH/src, is a convention baked into the go tool. If gb is starting from fresh foundations, I don't see that it needs to bless this convention for the sake backwards compatibility. That is, it may easily be gb's convention that your code lives in $PROJECTROOT/src, and your dependencies live in $PROJECTROOT/vendor.

To be a sort of devil's advocate, I'll submit: the $GOPATH structure,
specifically that all buildable code lives under a $GOPATH/src, is a
convention baked into the go tool. If gb is starting from fresh
foundations, I don't see that it needs to bless this convention for the
sake backwards compatibility. That is, it may easily be gb's convention
that your code lives in $PROJECTROOT/src, and your dependencies live in
$PROJECTROOT/vendor.

I agree with that argument, but am wary of forcing gb users to commit to
dropping any coincidental compatibility with GOPATH based tools. It does
seem like a large cost to pay for three characters.
On Thu, May 7, 2015 at 7:37 AM, Peter Bourgon<EMAIL_ADDRESS>wrote:

@ngrilly https://github.com/ngrilly and many others have voiced
concerns that moving away from $GOPATH structured source means breaking
compatibility with ides, and tools . . .
To be a sort of devil's advocate, I'll submit: the $GOPATH structure,
specifically that all buildable code lives under a $GOPATH/src, is a
convention baked into the go tool. If gb is starting from fresh
foundations, I don't see that it needs to bless this convention for the
sake backwards compatibility. That is, it may easily be gb's convention
that your code lives in $PROJECTROOT/src, and your dependencies live in
$PROJECTROOT/vendor.
—
Reply to this email directly or view it on GitHub
https://github.com/constabulary/gb/issues/50#issuecomment-99617362.

I'm less concerned with the character count, more concerned with the inconsistency in tree depth. What about keeping their stuff in vendor/src/, but moving my stuff to e.g. project/src/?

I'm less concerned with the character count, more concerned with the
inconsistency in tree depth. What about keeping their stuff in
vendor/src/, but moving my stuff to e.g. project/src/?

I don't see it as inconsistent. The source for the standard library is in
$GOROOT/src, the source for your project is in $PROJECT/src, and the source
for your project's dependencies is in vendor/src.
On Thu, May 7, 2015 at 7:43 AM, Peter Bourgon<EMAIL_ADDRESS>wrote:

I'm less concerned with the character count, more concerned with the
inconsistency in tree depth. What about keeping their stuff in
vendor/src/, but moving my stuff to e.g. project/src/?
—
Reply to this email directly or view it on GitHub
https://github.com/constabulary/gb/issues/50#issuecomment-99618540.

Well, vendor/src/ is actually $PROJECT/vendor/src/. But, points made, I think.

@chrishines you make a good point that I need to work harder to clarify the for project detection, and have a better sorry for what happens when building inside vendor/ .
Let me take this question on notice and I'll follow up with a new issue when I get back to my desk.

I'm going to mark this closed for the moment.

I guess this should be reconsidered again given the new -vendor flag proposal for Go 1.5:
https://groups.google.com/d/msg/golang-dev/74zjMON9glU/4lWCRDCRZg0J
Even if this means breaking $GOPATH compatibility, this will be something new to be compatible with.

I think this'd be a good idea because it'd also remove the ambiguity between vendor directories and project directories, allowing gb to not confuse the two.

That linked thread is announcing support for vendoring dependencies in a
manner compatible with go get. GB doesn't use go get, so there is immediate
change required.
On Fri, 12 Jun 2015 15:48 Luna Duclos<EMAIL_ADDRESS>wrote:

I think this'd be a good idea because it'd also remove the ambiguity
between vendor directories and project directories, allowing gb to not
confuse the two.
—
Reply to this email directly or view it on GitHub
https://github.com/constabulary/gb/issues/50#issuecomment-111367690.


[ Help ] ZStd Stream Large File

Hi ,
I am new to ZStd( even compresssion domain :anxious ) Could anyone give sample Java code for compress large data ( InputStream ) in  Zstd. I tired with apache common and it throws
Exception in thread "main" java.lang.NoClassDefFoundError: com/github/luben/zstd/ZstdOutputStream 	at org.apache.commons.compress.compressors.zstandard.ZstdCompressorOutputStream.<init>(ZstdCompressorOutputStream.java:83) 	at com.zoho.test.testzstd.main(testzstd.java:28) Caused by: java.lang.ClassNotFoundException: com.github.luben.zstd.ZstdOutputStream 	at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 	at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 	at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 	... 2 more
Thanks in advance

I think Zstd-jni is optional dependency of apache commons, so try to declare it as dependency.


Update trussworks/pre-commit-hooks to v1.0.1

Description
This latest release fixes an issue we saw a while back with
markdown-toc and that we thought required adding md-toc to fix.
Code Review Verification Steps

[ ] If the change is risky, it has been tested in experimental before merging.
[ ] Code follows the guidelines for Logging
[ ] The requirements listed in Querying the Database Safely have been satisfied.
Any new migrations/schema changes:

[ ] Follow our guidelines for zero-downtime deploys (see Zero-Downtime Deploys)
[ ] Have been communicated to #g-database
[ ] Secure migrations have been tested following the instructions in our docs

[ ] There are no aXe warnings for UI.
[ ] This works in Supported Browsers and their phone views (Chrome, Firefox, IE, Edge).
[ ] Tested in the Experimental environment (for changes to containers, app startup, or connection to data stores)
[ ] User facing changes have been reviewed by design.
[ ] Request review from a member of a different team.
[ ] Have the Jira acceptance criteria been met for this change?

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against eab508a6958f9499d21782bcd4ad8c4161c0dc01

Warnings

:warning:
Please add the JIRA issue key to the PR title (e.g. MB-123)

  Generated by :no_entry_sign: dangerJS against eab508a6958f9499d21782bcd4ad8c4161c0dc01


MSQ window function: Take segment granularity into consideration to fix NPE issues with ingestion

Description
Currently, MSQ queries like the following failed with a NPE:
REPLACE INTO "test_1" OVERWRITE ALL
SELECT
  "__time",
  "countryName",
  ROW_NUMBER() over (PARTITION BY countryName) as c1
FROM "wikipedia"
where countryName='Guatemala'
PARTITIONED BY DAY

The root cause was that the shuffle spec of the final window stage was being hardcoded to MixShuffleSpec, hence it wasn't taking the required segment granularity into account. This PR changes the logic to use the resultShuffleSpecFactory for the last window stage.
Along with the above, we also need to add virtual columns like __bucket to the frame writer in WindowOperatorQueryFrameProcessor. This PR makes this change as well.
This PR also adds a test which fails with NPE without the changes of this PR.

This PR has:

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

@LakshSingla Thanks a lot for the detailed explanation, it cleared a bunch of things for me. Have made the suggested changes, please have a look. Thanks! 😄

The changes look good to me % remaining Laksh's comments


Exception format is not correct

Is this a BUG REPORT or FEATURE REQUEST?:

Uncomment only one, leave it on its own line:

/kind bug

/kind feature

What happened:
The exception format is not correct, for example:
2020-05-09 18:03:14.387 12876 INFO dolphin.api.common.wsgi [req-87d23f1a-41d5-4794-92a5-fcab7404570e - - - - -] HTTP exception thrown: Storage %(id)s could not be found.

What you expected to happen:
What we want is the true storage id, instead of the %(id)s
How to reproduce it (as minimally and precisely as possible):
To call db.storage_get(ctxt, id) with a storage id which is nonexistent
Anything else we need to know?:
Environment:

Dolphin(release/branch) version:
OS (e.g. from /etc/os-release):
Kernel (e.g. uname -a):
Install tools:
Others:

@ThisIsClark this is fixed in latest PR.#45. Please check

Fixed


Could not resolve './utils/forwardEvents'

Hi there
There seems to be something off in the newest release on npm... ForwardEventsBuilder is imported, but the utils folder does not exist (in the npm-package at least. I see that it does in the main branch).
I'm getting the following node error:
Could not resolve './utils/forwardEvents' from node_modules\svelte-inline-svg\src\inline-svg.svelte
node:internal/modules/cjs/loader:944
  throw err;
  ^

Thanks a lot for fixing this!

@flicksolutions Thanks for reporting this. Could you try v1.1.1 and see if the error persists?

Thank you, @robinscholz for your swift reaction! It works now!


Added --latest-commit-hash option

Same as #1

@AbhayVAshokan _a With the introduction of new changes, several tests are failing. Can you correct them to ensure the sanity of the repo?
It will also help us figuring out bugs before testing in production

@Amaljith-K _a please have a look; https://vimeo.com/751226203/d10f58e85c

I've enabled issues, projects & wiki for this repo.
I'll take up the rest of the works.

I could see a lot of redundant changes here. I'm closing this. I'll reopen a new PR


Invalid parsed date

Hi there, i tried dateformat via browser and locally in a js script, and the basic test was to instantiate a new date (1st Feb 2018). After providing the parameters as required, i get 1st Mar 2018. The month label is wrong.

Snapshot as attachment.

@hugobarona take a look at this Date documentation. The month argument is 0 based, so passing in 2 will give you the 3rd month.

I considered that but since the other parameters (day) start with 1, i thought it could be an invalid configuration. anyway, thanks.


My first branch

I have created a new branch, created a file, and made a commit!

My first pull request


Latest issued Vaccination DCC 2/2 does not have highest priority

Avoid duplicates

[x] Bug is not mentioned in the FAQ
[ ] Bug is specific for Android only, for general issues / questions that apply to iOS and Android please raise them in the documentation repository - I'm not sure how sorting is done in iOS. If the issue is similar, this issue could be transferred to documention repo.
[x] Bug is not already reported in another issue

Technical details

Device name: LG G4 (LGH-815)
Android version: Android 6.0
App version: 2.6.1

Describe the bug
Most users will only import 1 or 2 vaccination certificates into CWA, with either dose 2/2, or dose 1/2 together with dose 2/2.
But there are some use cases, when users are importing additionally a re-issued VaccDCC (2/2) as a 3rd certificate at a later point in time. Either just because they can do it 🤷♂ , or they need to: when the Netherlands decided to apply business rules schema v1.3.0 to their validation checks,  but German VaccDCCs were issued compliant to schema v1.0.0 before July 1st, and users want to be on safe side in border control and get their 2nd VacDCC re-issued (online, pharmacy). See https://github.com/corona-warn-app/cwa-documentation/issues/671 .
The 3rd VaccDCC (2/2) with a newer date of issue and later date of expiry can be imported into CWA without problems, but at least in my case, the 3rd VaccDCC is not taken into account as certificate with highest priority, but sorted as the 2nd VaccDCC in the list of all DCCs. This may lead to confusion upon presenting QR code to gate keepers, even more as there is currently no date of issue/expiry date displayed (you need to check certID by comparing with paper printouts/PDFs to find out...)
Steps to reproduce the issue

Import a vaccination DCC (2/2) that was issued before July 1st, 2021.
Import another vaccination DCC (2/2) that was issued somewhat after July 1st, 2021.
Check validity of both certificates against Netherland's business rules.
Find that the one with highest priority (automatically activated) in the list fails, while the second one passes - at least in my case. So, the first one is the old one, and the second one the new one.

Expected behaviour
The (vacc)DCC (2/2) with latest date of issue/the longest expiry date should be the vaccDCC with the highest priority.
Possible Fix
Apply another rule 3a that accounts for expiry date here: https://github.com/corona-warn-app/cwa-app-android/pull/3811
Additional context
I don't know if this would also be necessary for recovery certificates...

no date of issue/expiry date displayed

Expiry date will be displayed in CWA 2.7.

@vaubaehn
I am also seeing CWA 2.6.1 selecting an older 2/2 certificate. They are both from PDFs  and the older one has the QR code on the left of the text, the newer one has the QR code on the right of the text. They were both issued in July and they both pass the Netherlands test, so the impact of selecting the older certificate is not significant for me. Nevertheless it would be good to find out why the older one is being preferred.
CovPass 1.28.4 selects the newer certificate (shows as "Aktuell verwendetes Zertifikat" in the UI). So we have a discrepancy between CWA and CovPass in terms of certificate selection.
What result do you get if you add your two 2/2 certificates to CovPass? Is the earlier one or the later one selected?

@vaubaehn
I did some more tests and both CWA and CovPass used the first scanned certificate as the default. If I scan the older one first, then that is default. If I scan the newer one first, then that becomes default.

@MikeMcC399

It seems that since the certificates have the same vaccination date, then the first one encountered in the list is preferred, with no other comparison taking place.

Yes, this seems to be the case according to comments in code:
https://github.com/corona-warn-app/cwa-app-android/blob/fc7c1bd7377a9db04cb50abc06588c1d93400041/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/covidcertificate/person/core/PersonCertificatesExtensions.kt#L66-L85

Perhaps there should be an FAQ article advising users to remove older certificates which have been reissued for correctional purposes? (See corona-warn-app/cwa-website#1555 for notes on terminology.)

This is a good idea. Ideally, the sorting algorithm could be enhanced in a future release. I guess there are already many people out there who have a re-issued 2/2 VaccDCC.

@vaubaehn
This issue should also be reported to https://github.com/Digitaler-Impfnachweis/covpass-android/issues, since the CovPass App has exactly the same issue. Perhaps we should wait first for CWA dev feedback?

@MikeMcC399
Or we could ask @wkornewald whether we open an issue in https://github.com/Digitaler-Impfnachweis/covpass-android/issues or if they want to observe progress from here?

@vaubaehn
I wouldn't want to assume that a particular person responds for CovPass App so I just went ahead and opened https://github.com/Digitaler-Impfnachweis/covpass-android/issues/57. The two issues, for the two different apps, can be processed in parallel now.

I/DccQrCodeValidator in the censored error report log file will give you the certificate's version number
I/DccQrCodeValidator: Extracted data from QR code is VaccinationCertificateQRCode(qrCode=<censor-collision/>"},"ver":"1.3.0"}, kid=xxxxxxxxxx)) when it is added into the app.
If you connect via Android Studio, then Logcat will show the full parsing of the certificate data under
I/DccQrCodeValidator when the certificate is added, including version, issuedAt, expiresAt and dt.

[OT]
Perhaps on this occasion, if vaccination certificates of several people have been scanned into CWA, their sorting / order could be revised. Thanks.
Please refer: https://github.com/corona-warn-app/cwa-wishlist/issues/598#issue-948906728
[/OT]

@MikeMcC399 @vaubaehn Thanks. Internal Tracking ID: EXPOSUREAPP-8756

Corona-Warn-App Open Source Team

The sorting order of the scanned vaccination certificates is unfortunate even if there are multiple complete vaccination certificates:

See: https://github.com/corona-warn-app/cwa-documentation/issues/679#issuecomment-895154648.

Workaround for sorting EU-Certificates (CWA 2.6.1 and CovPass 1.28.7): https://github.com/corona-warn-app/cwa-documentation/issues/679#issuecomment-896324471.

@Jo-Achim
If you have scanned in multiple certificates for a single vaccination, I would simply remove any certificate which you do not want used. I can't see any advantage to storing more than one certificate for the same person and the same vaccination.

@MikeMcC399
yes, I understand that and it is certainly a simple possibility.
But the initial issue here, for example, was "Latest issued Vaccination DCC 2/2 does not have highest priority" - the disadvantages have already been mentioned - against the background that, for whatever reasons, users scanned several EU certificates for the same person and vaccination.
A "for whatever reason" shouldn't be, but it could be that with a further development of the certificates not every country always keeps pace, the downward compatibility might not be given, ... - and therefore an older certificate could be helpful.
In this sense, I also understood your post https://github.com/Digitaler-Impfweise/covpass-android/issues/57#issue-956015931 under "Possible Fix":

2. If both the older and the re-issued certificate are stored, then when deciding on the "Aktuell verwendetes Zertifikat" the newer vaccination certificate should be chosen.

@Jo-Achim
Keeping multiple certificates for the same person / vaccination and with different schema versions for the purpose of providing a workaround for schema compatibility issues with other country's business rules is an aspect that I had not considered.
I don't think that would be a workaround though, because only one of the certificates for a given person is chosen as "Currently used certificate" at any time. The business rule check only runs against that one certificate.
Your apparent desire to check against different schema versions stored for the same person / vaccination would need to be a separate enhancement request.

@MikeMcC399

I don't think that would be a workaround though, because only one of the certificates for a given person is chosen as "Currently used certificate" at any time. The business rule check only runs against that one certificate.

Well, just in case, there is still the option of selecting the certificate to be used.
Because after selecting the certificate for the person, you can scroll down to select another vaccination certificate and "check validity" in the CWA.

Your apparent desire to check against different schema versions stored for the same person / vaccination would need to be a separate enhancement request.

Done in: https://github.com/corona-warn-app/cwa-wishlist/issues/611#issue-966565025.

@Jo-Achim

Well, just in case, there is still the option of selecting the certificate to be used.
Because after selecting the certificate for the person, you can scroll down to select another vaccination certificate and "check validity" in the CWA.

Thanks for pointing that out. I hadn't noticed that ability!

Link back to related issue https://github.com/corona-warn-app/cwa-app-android/issues/4000.

With PR #4123 merged into release/2.11.x  this should be fixed in the next release. 👍🏻


 This endpoint will validate the input data and update the blog post securely in the database
Acceptance Criteria

The endpoint allows only a super admin to edit an existing blog post.
The endpoint should be accessible at /api/v1/blog/edit/{blog_id}
The endpoint should accept HTTP PUT requests.
The API should validate the request payload to ensure the title and other necessary fields is provided.
Upon successful validation of the input data, the blog post should be updated in the database securely.
Return a 200 OK status code on successful request.

Request body application/json
{
  "title": "string",
  "excerpt": "string",
  "tags": ["string"]
}

Success payload
{
  "message": "Blog successfully updated",
  "id": "uuid",
  "title": "string",
  "excerpt": "string",
  "updated_at": "Datatime"
}

Error payload
{
  "message": "Unauthorized request",
  "status_code": 401
}

Purpose
Provide the necessary backend services to allow super admin to edit and update their previously published blog posts.
Requirements

[ ] Implement server-side logic to handle blog post edit submissions.
[ ] Validate and sanitize incoming data.
[ ] Update the blog post securely in the database.
[ ] A 401 error should be sent if an unauthorized user tries to edit a blog

Expected Outcome
The API endpoint allows super admin to edit their blog posts via the provided data, ensuring all updates are securely stored and validated.
Test

[ ]  Write unit tests to ensure the blog post edit endpoint validates input correctly and updates the post securely.
[ ] Test various scenarios for editing blog posts (e.g., missing title, empty content, invalid tags).
[ ] Perform security test to ensure unauthorized user can not update a blog post.
[ ] Test various scenarios:

Successful editing of an existing blog post
Attempting to edit a non existing blog post
Attempting to edit a blog post without authentication
Attempting to edit a blog post without proper permissions

Why is id uuid and not int?

I have corrected it ma 🙇🏽♂


Transform mesh's AABB to skeleton's space when calculate mesh's bounds for fixing incorrect rect culling with Polygon2d

Fixes #74656 fixes #81983 fixes #74132, and there maybe more duplicated reports I havent found, since this bug is quite common.
This PR is following @clayjohn 's pr #76184. Thanks to guys working in this threads, they have actually identified the cause of this issue:
It's because when resolving animated meshes AABBs with skeleton. The AABBs is actually in mesh instance's space. But skeleton animation assumes differently: all the meshes are in skeleton's space.
That's why the PR tried to solve it by introduce the mesh item's xform to mesh_get_aabb. But we quickly found item's xform is not enough. As it's a local transform, it means it will still has the bug when the Polygon2d in a different hierarchy with the skeleton.
So I come up with a solution:
Introduce a new transform stored in Mesh::Surface, which contains the transform differences between the Polygon2d and its skeleton. This transform is generated when polygon recreating the mesh. So that in run time, it can be used to transform the bones' AABBs back and forth.
I believe in 3d we have same issue, since the code is shared same logic. And I didn't address 3d part, because I believe this bug in 3d is quite rare, since people tends to have same root space for skinned meshes and skeletons in 3d. So I guess we can leave it for further PRs.
Plz NOTE that this PR is NOT tring to fix every edge cases, like if you move around polygon2d or skeleton's position in runtime, the AABBs will be incorrect until regenerating. And if people move around Polygon2ds in the editor when bones are not in their rest pos, there will be issues not just rect culling but also mesh rendering. I believe these cases are not really intentional usage. Since move mesh's transform after skinning in 3d is really weird practice.
This is my first PR to godot, so let me know if I messed up anything:)

There's a notification for "move mesh's transform" on Node3D. NOTIFICATION_TRANSFORM_CHANGED NOTIFICATION_LOCAL_TRANSFORM_CHANGED

There's a notification for "move mesh's transform" on Node3D. NOTIFICATION_TRANSFORM_CHANGED NOTIFICATION_LOCAL_TRANSFORM_CHANGED you can consider if it's a rare operation.

Pushed a new version to address this. I was intend to only do it in the editor, since I assumes the relative transform between mesh and skeleton won't change in runtime.

Also hope @clayjohn @SlugFiller @lawnjelly can check this out, as this PR follows their previous work.

Added Engine::get_singleton()->is_editor_hint() to make sure only recreat mesh for transform change event in Editor.

Oops, looks like swich-case fall through triggered some warnning in linux. Changed the way how it does the editor check.

As @fire suggested, I made a performance test project based on @Zoomulator's project at #74656
polygon2dcullbug.zip
It spawns 900 skeletons with meshes.
This is what I got from engine at 4.1.3 without the fix. Frame time in range between 90ms - 110ms

This is the profiler with this fix at 4.1.3. Frame time in range between 120ms - 140ms

Looks like this fix do cause some frame time increase. But to be honest, I'm not sure which part causes this result. Because it costs more when culling working correctly: you got more drawcalls to cover. And godot's profiler looks quite rough to me, I can't see time in details. I'll try to do more test on this.

So I made second performance test, make a new animation, but everything won't get culled in origin code. So both version will have same amount of meshes draw to the viewport.
As I suspected, the performance shows no measurable differences this time.
This is the orign engine test result,

This is the fixed version test result,

And this is the second test project I used
polygon2dcullbug.zip

@lawnjelly If you have some spare time, can you review this?

This looks great!
It turns out to be simpler than #75612 in 3.x, maybe the bone AABBs were unavailable there so it had to jump through some extra hoops.
Re: performance, as the author says if you compare scenes that are culling differently you are not comparing like with like. It should be pretty ok from what I can see, but have mentioned pre-calculating affine inverse which might be a tad quicker / more accurate.
I don't know if @clayjohn might have opinions about storing the relative transform on each surface (even when not used), but maybe it can be reused for 3D skinning (no idea if the same problem exists there in 4.x).
I haven't fully tested, but my old test project when I was looking at this seems to work ok and the debug bounds are correct.

Thanks @lawnjelly for the carefully review.
About affine inverse(I dont know this before) and storing inverse matrix. I'm totally fine with these two change. I didn't code these just because I want this change as small as possible, and I don't think a inverse matrix calculation can make any differences per instance in performance wise :) I mean, there at least will be dozens matrix operation in cpu when you do a skeleton animation.
But I totally understand good programmers want every cpu cycle counts, I do that too. So I will definitely take the affine one.
And for storing inverse matrix, there could be some concern on memory and software engineer aspect. I personally don't want store more data, because it usually means more bugs. But I'm totally open on this, you guys could made better choice on these changes than me who just get to the engine in two weeks.
Talking about performance, there actually is a more intense place than the inverse matrix. Like, is it correct and faster to mutliply the two matrix before apply to the bone AABB? I just haven't been very clear on the math correction with this. Feathuer more, can we just generate these AABBs in skeleton space, to save the matrix-aabb operation? Maybe, but there will be more related parts about these AABBs to be consider.
And again, this PR is more focused on fixing this common issue than optimization as this is not usually the hotspot, I want to keep it as simple and small as possible.

Talking about performance, there actually is a more intense place than the inverse matrix. Like, is it correct and faster to mutliply the two matrix before apply to the bone AABB?

I didn't mention this, but in #75612 if I remember right I store the bone AABBs already in skeleton space so maybe this removes the need for:
AABB baabb = surface.mesh_to_skeleton_xform.xform(skbones[j]);
However, imo this kind of optimization can be left to a later PR. It is more important to get it working, and accurately, then look at performance improvements as required.
The pre-calculation and storage is more for the affine inverse - affine inverse is a bit more involved than regular inverse. And bear in mind my PR was profiled and highly optimized.
I suspect with regular inverse the bounds can be incorrect if there is skew in the basis. So it will be fine in most cases, but better to cover all bases, if it can be done effectively for free.

Just as an aside (maybe for followup PR or investigation), I noticed this note in my original PR:

The old code applied an unused bone AABB (0, 0, -1, -1) to the final result even if it was not used. This probably caused little problems due to other oversights, but is strictly speaking incorrect I think, so I did a check for this.

I don't know whether this technique is still used in master for unused bones. If so, these may cause the overall bound to be overestimated, and these may be worth rejecting. This won't cause visual errors, but could cause considerable lost performance (in cases of unused bones).

Looks good to me. I'm not free currently, so I will do these changes after a few hours.

Thanks guys. I've changed inverse() to affine_inverse() as @lawnjelly  and @clayjohn said. And all the code standard changes as @clayjohn @AThousandShips mentioned.

Note that you can apply suggestions as a batch to make it easier to squash after

I used the commit changes option above, which generates two separte commits. Will same logs appears on main branch if merged? That does not look good to me XD
Sorry, I'm new to github PR process.

You will have to squash your commits into one, see here

Oops, Did I meshup anything? The compare looks so wrong to me

You did not, you just updated your branch at the same time
Now when applying the remaining changes you can do so with git commit --amend to not create a new commit

Looks good to me now. Thanks @AThousandShips
Definitely learned something from this PR XD

Looks fine now. :+1:

Hi devs, by no means to push, but is there anything need to be down for this PR to be merged?
From my point of view, all the things need to be down in my side have been down. And all stake holders have approved. It's been quite a while, I've seen a lot of PRs later than this one is merged quickly.
@AThousandShips @clayjohn  @lawnjelly  @fire

This needs production team to merge, no need to poke reviewers (we generally don't merge).
Delay may have been due to feature freeze.
I'm sure they list the approved PRs during merging sprees, but just in case pinging @akien-mga .

Thanks! And congrats for your first merged Godot contribution :tada:

Cherry-picked for 4.2.2.

Cherry-picked for 4.1.4.


Fix typo

python -> Python

Learn Build status updates of commit 87909ea:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/machine-learning/how-to-create-data-assets.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the learn.microsoft.com contributor guidesPost your question in the Learn support channel

Looks good; thanks, @changeworld


MSAL Library compatibility with B2C with Angular 13

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.23.0
Wrapper Library
MSAL Angular (@azure/msal-angular)
Wrapper Library Version
2.23.0
Description
We have angular 13 project in which we have Azure AD Authentication set up. Using various resources over internet, we implemented successfully authentication using MSAL library. Following are the details of npm packages we are using
"@azure/msal-angular": "^2.2.0",
"@azure/msal-browser": "^2.23.0"

Now there is a new requirement where we have to use "Azure B2C". We made changes to the configuration/code (Azur AD Authentication as mentioned above) but the code does not works. "SignIn" flow has been configured already on Azure B2C Portal.
We are not getting the login page.
Few months ago, we downloaded a code sample posted by Microsoft for using MSAL with Azure AD. We used the same to understand how to use MSAL.
For Azure B2C, we used the same code again and changed the configuration and we could see login page from Azure B2C. Following are the details of npm packages
@azure/msal-angular": "^2.0.2",
@azure/msal-browser": "^2.16.0"
Trying to understand where is the gap. Seems some compatibility issue.
Any inputs would be helpful.
MSAL Configuration
No response
Relevant Code Snippets
No response
Identity Provider
Azure B2C Basic Policy
Source
External (Customer)

cc @derisen, can you please check what versions we are using in our samples? And if we have a working sample with the latest version?
@siddarthapal we have the supported versions of Angular by the library listed here. Are you saying that 2.23.0 is not working with Angular 13 for your library?

@sameerag Yes, the same did not worked. But we have found the solution. Seems some issues with the cookies. We have set up in browser settings, when user log off from the portal, remove the cookies. After doing this, the code started to work. But this is still the Mistry , why the same did not happened with Angular 11 sample? Any inputs would be helpful....

We are having another issue. Now the token is not being passed in the "Auth" header when we are hitting endpoint. Any pointer would be helpful...

@sameerag we apparently don't have a B2C sample with Angular 14, but I find it unlikely that Angular version is the culprit here.
@siddarthapal would you mind sharing your msal configuration, as well as couple of code snippets showing how you are using the library (in particular app.module.ts where you setup MsalGuard and MsalInterceptor)? Also, any steps to reproduce the issue would be appreciated (if you have a public repo, feel free to share it as well).

@sameerag It was my our mistake. Scope was not configured properly. We can see the token being passed now :). Sorry for the in convenience caused.

@derisen @sameerag I could not recall in MSAL documentation that we need to have a certain setting in browser.

@derisen @sameerag I could not recall in MSAL documentation that we need to have a certain setting in browser.

@siddarthapal can you open this a bit? What was the setting in browser that was not mentioned? Do you refer to clearing the cookies when page is closed? MSAL does not set cookies on your page's domain unless you enable the storeAuthStateInCookie flag in the configuration. If you did so, it could be that when your Azure configuration have changed, state in the cookie became caused discrepancies somehow, but it's hard to say without more detail in what exactly is not working. In general though, you wouldn't be required to configure browser settings to clear cookies on page close.


Support multiple TAL channels in BDF reader

Fixes #7189.
It would be good to check that both the data and annotations are read correctly. There are 463 annotations, which seems to be correct even though SigViewer only reports 30 (but I think this is because SigViewer only uses the first annotation channel and ignores the rest).

Maybe we can use the file provided by the reporter (don't have his GitHub handle)? We'd need to crop it though to keep it small.

Hopefully they chime in here on respond on the mailing list and we can ask about this. Do you have a tool that will crop and save?

BioSemi has a cropping tool on their download page - I've never tried it, but I'm pretty sure it will work.

I'm fine to merge this as is. There is no change in coverage.

Thanks @cbrnr . If it's possible to add a test later feel free

Maybe we can use the file provided by the reporter (don't have his GitHub handle)? We'd need to crop it though to keep it small.

sample_data.zip
Hi, thank you for your discussion. Here is a small sample data. Hope it helps.

Thanks @XiaTaopsycho. Could you crop this file even more? Ideally, we'd only need data from 140s-160s (this is where most annotations are), and we'd only need two data channels (e.g. A1 and A2). I tried cropping with EDFbrowser, but unfortunately this tools combined all BDF Annotations channels into one.

Sorry, I don't know how to crop it. The small sample data is the smallest one that I have.

Thanks @XiaTaopsycho. @larsoner the file is 2.2MB - I think it would be nice to add it to our testing data repo because so far it is the only file with multiple annotations channels I've seen so far. It's also nice that we support it because e.g. Biosig doesn't seem to be able to handle this correctly. Should I go ahead and add it?

Please go for it. 2MB is small enough

Agreed