SignUrl does not seem to be working correctly for S3.PutObject

Describe the bug
SignURL does not seem to be working for signing a url for an S3.PutObject request.  It's possible I have made an error.  The code is included below.  My goal is to be able to send the client a signed URL so the client can upload a file directly.
To Reproduce
Steps to reproduce the behavior:
Replace BUCKET with a bucket name.
let fileKey = UUID().uuidString.replacingOccurrences(of: "-", with: "")
let unsignedUrlString = "https://BUCKET.s3.amazonaws.com/\(fileKey)?Content-Type=image/jpeg"
let unsignedUrl = URL(string: unsignedUrlString)!
let components = URLComponents(url: unsignedUrl, resolvingAgainstBaseURL: false)!
let urlString = "\(components.scheme!)://\(components.host!)\(components.path.addingPercentEncoding(withAllowedCharacters: .urlPathAllowed)!)?\(components.query!.addingPercentEncoding(withAllowedCharacters: .urlQueryAllowed)!)"
let url = URL(string: urlString)!

return request.aws.s3.signURL(url: url, httpMethod: .PUT, expires: .hours(1))

Expected behavior
My goal is to be able to send the client a signed URL so the client can upload a file directly.  I expect the signed url to work.  When I attempt to upload a file using the signed URL I get the following:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
Setup (please complete the following information):

OS: MacOS or Linux (Vapor)
Version of soto: 5.1.0

I just ran your code and it works. The only thing I could see going wrong here is if your client didn't use the PUT method.
By the way you don't need all the URL parsing code. It is all done for you. Your code should be able to reduce down to
let fileKey = UUID().uuidString.replacingOccurrences(of: "-", with: "")
let unsignedUrlString = "https://BUCKET.s3.amazonaws.com/\(fileKey)?Content-Type=image/jpeg"
let unsignedUrl = URL(string: unsignedUrlString)!
return request.aws.s3.signURL(url: unsignedUrl, httpMethod: .PUT, expires: .hours(1))

Also if you want the Content-type set, get the client to do it with a header ["Content-Type": "image/jpeg"]. Doing it as a query parameter doesn't work. The client should be able to add a header value without breaking the signing, although I would get the upload working on its own without the content-type first.

You were right!  I was using POST from the client.  And it's nice not to have to include the url parsing code.  Thanks for responding so quickly.


Add TypeScript typings

I've added some initial type definitions to the library like @0xNacho did with https://github.com/susielu/d3-annotation/issues/8 so we can test it with our library (Proteic.js). I'll improve the typings in the future if I notice something's missing or any problem.
This libraries are great BTW :smile: Thank you!

Oh excellent thank you! Version 2.22.0 should have the type files.


helm chart - remove duplicate args field for observer

helm chart - remove duplicate args field for observer

Something went wrong with PR preview build please check

Something went wrong with PR preview build please check

Reference Server Preview is available here:https://anchor-ref-pr753.previews.kube001.services.stellar-ops.com/SEP Server Preview is available here:https://anchor-sep-pr753.previews.kube001.services.stellar-ops.com/


Fix Broken unit tests caused by latest refactoring

Ticket no longer needed. Work will be completed in Increase Code Coverage- PI 6 #2374


Custom service registration works on simulator but not on device

This originally came up in https://github.com/flutter/firechat-flutter/issues/28 where Firebase works on the simulator but not the device (since the Firebase simulator dylib doesn't run on physical iOS devices).
Steps to Reproduce

Build firechat-flutter step_5

Flutter Version
Flutter from git@github.com:flutter/flutter (on hackathon)
Framework: e1f0d8c974a58977e19ab685d2eb323d2d9becd4 (16 hours ago)
Engine:    5e68565d713cbb89e0d60e4c635cf7a9e4b2b855
[✓] The iOS toolchain is fully installed.
[✓] The Android toolchain is fully installed.
[✓] The Atom development environment is fully installed.
Logs
Simulator:
Mar 16 12:43:10 jackson-macpro Runner[57947]: [INFO:FlutterDynamicServiceLoader.mm(106)] 1 custom service definitions registered
Device:
Mar 16 13:31:37 Collins-iPhone Runner[12771] : [INFO:FlutterDynamicServiceLoader.mm(106)] 0 custom service definitions registered

@chinmaygarde

I wonder if we'd also need separate versions for different device versions (iphone 4 vs 5, android K vs M, android simulator, etc).

That seems like a good idea, although I think we may be able to live without iphone 4 support in the short term.

 There is no simulator and device dylib variants. If the custom service definition registration is failing, it could be a packaging issue. I can investigate the same.
For now, the fat binary only contains aarch64 and amd64 variants. For older iPhones, we would also need to pack in the armv7 code. But even that would go inside one single dylib.

The custom service definition registration is failing on devices, but works fine on the simulator.
Here's the sample app that's failing: https://github.com/flutter/firechat-flutter/tree/master/step_5

#2769 is higher priority than this right now

this needs to be fixed before we can do login on an actual iOS device

@eseidel

@chinmaygarde does this work now?

@chinmaygarde Would be good to have support for iOS devices in time for our I/O'16 codelab release (May 18). How soon do you think this will be implemented?

Fixed on master. Also requires the simulator fix that has landed also.


Fix small typos in concurrency

Erf, not being a native english make it difficult some times thanks.


Bug: 10.74 breaks matrix/list and breadcrumbs

Neither breadcrumbs nor matrix/list panel show entries after upload of 10.74.  Sorry just caught but unable to do detail study until late this evening.... restore to 10.73 and all works. Does the new entry for csv path have to have value even if not using the feature?

Yup, noticed this behavior right after the update.

same here

Thanks everybody. Sorry for the trouble. I haven't been able to work on it yet. Can someone please check if there are any errors in the console when this happens?

Oops, this got closed automatically.
@BricoleurSoul @gfidias @jundaychan @Victor-IT can you let me know if this is resolved in 0.10.75?

resolved 👍

Haven't tested the new functionality yet, but the issue in 10.74 certainly resolved.


[Library sync for provider Tune-in Radio]  failed in MA Version 2022.12.1

What version of Music Assistant has the issue?
2022.12.1
The problem
On Restart I always Check my Logs and I found an Error about the Tune-In Radio provider
It appears there is a Column missing
qlite3.OperationalError: no such column: provider_ids
How to reproduce
I guess have Tune-In Provider Configured
Update to 2022.12.1
Check the Log
Relevant log output
Logger: music_assistant
Source: /usr/local/lib/python3.10/site-packages/music_assistant/mass.py:232
First occurred: 5:22:14 AM (1 occurrences)
Last logged: 5:22:14 AM

Job [Library sync for provider Tune-in Radio] failed with error no such column: provider_ids.
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/music_assistant/models/music_provider.py", line 405, in sync_library
    db_item: MediaItemType = await controller.get_db_item_by_prov_id(
  File "/usr/local/lib/python3.10/site-packages/music_assistant/controllers/media/base.py", line 349, in get_db_item_by_prov_id
    for item in await self.get_db_items_by_prov_id(
  File "/usr/local/lib/python3.10/site-packages/music_assistant/controllers/media/base.py", line 385, in get_db_items_by_prov_id
    return await self.get_db_items_by_query(query, limit=limit, offset=offset)
  File "/usr/local/lib/python3.10/site-packages/music_assistant/controllers/media/base.py", line 325, in get_db_items_by_query
    for db_row in await self.mass.database.get_rows_from_query(
  File "/usr/local/lib/python3.10/site-packages/music_assistant/controllers/database.py", line 90, in get_rows_from_query
    return await self._db.fetch_all(query, params)
  File "/usr/local/lib/python3.10/site-packages/databases/core.py", line 142, in fetch_all
    return await connection.fetch_all(query, values)
  File "/usr/local/lib/python3.10/site-packages/databases/core.py", line 250, in fetch_all
    return await self._connection.fetch_all(built_query)
  File "/usr/local/lib/python3.10/site-packages/databases/backends/sqlite.py", line 98, in fetch_all
    async with self._connection.execute(query_str, args) as cursor:
  File "/usr/local/lib/python3.10/site-packages/aiosqlite/context.py", line 41, in __aenter__
    self._obj = await self._coro
  File "/usr/local/lib/python3.10/site-packages/aiosqlite/core.py", line 184, in execute
    cursor = await self._execute(self._conn.execute, sql, parameters)
  File "/usr/local/lib/python3.10/site-packages/aiosqlite/core.py", line 129, in _execute
    return await future
  File "/usr/local/lib/python3.10/site-packages/aiosqlite/core.py", line 102, in run
    result = function()
sqlite3.OperationalError: no such column: provider_ids

Additional information
No response
What version of Home Assistant Core are your running
2022.12.1
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi

Let me guess... You have been fiddling with the manifest file before and had the music-assistant 1.8.8 in there ?
In that case your db schema is now messed up because its already on the upcoming release.
There is no way to get out of this state now, can you restore a backup of the MA database from just before your manual changes ?

Ummm Yes...  and Yes... I guess you have seen This before... :) ... sorry I guess this is self inflicted.. 💯 %

I kind of expected this to happen when I saw people started to manual mess with the manifest file even though I was warning that could cause side effects haha. Lucky you have a backup then. Have a nice weekend!

You Have a Great Weekend ... You deserve  it for all this hard work... 👍🏻


Allow to delete the original file

Hello,
It would be nice if the plugin delete the old file when it has been renamed.
I have a lot of modules of maven generating a file with same name (legacy code...) and before the pack of jar i use the plugin to rename the file according to the module, but it keeps the old file. It could be nice if the pluging has an option to delete the old file.

nvm, my bad


Nework requests ending fast with empty array

Prerequisites

[X] I have searched for existing issues that already report this problem, without success.

Script Version
1.5.0
Platform
Webapp
Current Behavior
See image: https://ibb.co/6s2bKX6
I inspect autobuyer network calls, I see that a lot of calls are ending fast after 200ms with an empty array.
I do expect results, I am jumping to a certain page where I do know there are supposed to result.
it looks like EA has some protection on their API for multiple calls from the same user.
Is it possible to avoid it?
Expected Behavior
Returns data if available.
Steps to Reproduce
Run autobuyer with random min bid on less than 5 seconds between calls.
Additional Information
No response

I can't reproduce this; very strange requests as well as I do not see these calls happening from the autobuyer view.


Incorrect resource name in list of Azure services?

On this page: https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-service-endpoints-overview, in the list of services that are available to be connected with Service Endpoint, under "Generally Available", the resource type for Azure Data Lake Store Gen 1 is listed as "Microsoft.AzureActiveDirectory".
I think this is a mistake and, according to https://docs.microsoft.com/en-us/azure/cloud-adoption-framework/ready/azure-best-practices/resource-abbreviations, it should be Microsoft.DataLakeStore/accounts.
I might be missing something, of course!

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

ID: 1eb0407d-f4a5-6059-488d-fd082915c675
Version Independent ID: 7c2fb429-743c-aea0-f1d5-de6dc2e62e8e
Content: Azure virtual network service endpoints
Content Source: articles/virtual-network/virtual-network-service-endpoints-overview.md
Service: virtual-network
GitHub Login: @sumeetmittal
Microsoft Alias: sumi

Thank you for your feedback! We will review and update as appropriate.

Hello @mosesmosheh, Thank you for your feedback. I have made the suggested change and it is currently under doc author's review. We will now proceed to close this issue out. Please tag me in your response if there are any additional concerns. Thank you!


Crashes on -[CTInboxController unreadMessages] CTInboxController.m, line 163

Describe the bug

dozens of crashes in Firebase Crashlytics

To Reproduce

where is no straight way to reproduce it

Expected behaviour

SDK doesn't crash

Environment (please complete the following information):

Xcode 13.1.0
CleverTap SDK 3.10.0
Device: [e.g. iPhone12, iPhone7]
OS: [e.g. iOS 13.3]

Possible Solution

all accessors to database should be wrapped with privateContext

Additional context
MAIN THREAD - CRASHED

libobjc.A.dylib
objc_msgSend
CoreFoundation
CFBasicHashAddValue
CoreFoundation
__NSOrderedSetM_new
CoreData
-[_NSFaultingMutableOrderedSet willReadWithContents:]
CoreData
-[_NSFaultingMutableOrderedSet count]
Foundation
-[NSOrderedSet(NSPredicateSupport) filteredOrderedSetUsingPredicate:]
CleverTapSDK
-[CTInboxController unreadMessages] CTInboxController.m:163
CleverTapSDK
-[CleverTap getUnreadInboxMessages] CleverTap.m:4186

@litongde we have implemented some possible fixes for the inbox issue and would be releasing them along with iOS 16 support tomorrow. 👍

@atom-wintermute we have released a new version v4.1.2 with possible inbox fixes. Please update to the latest version and see if it works out.


Relate posts in a better way

In v1.1.0, the Related Posts snippet in post.html lists the three posts, not in relation to the opened post. I thought of including a tag in the front matter e.g tag: Computer Science or tag: Fiction and then list the posts accordingly. How do I change the following code to incorporate this?
{% if site.related_posts.size >= 1 %}

Related posts

    {% for post in site.related_posts limit:3 %}

            {{ post.title }}
            {{ post.date | date_to_string }}

    {% endfor %}

{% endif %}

Apologies if this is something very basic to ask. I don't have any web design experience but I am having my fun modifying the theme.

hi @hash-ir  -- you most likely want to use the jekyll LSI to get semantically related posts. Look into using it https://frankindev.com/2019/11/21/enable-related-posts-with-lsi/


Lots of warnings and segfault

I'm getting this:
g++ src/NanoVG.cpp -Wall -Wextra -pipe -MD -MP -fPIC -DPIC -DNDEBUG -O2 -mtune=generic -msse -msse2 -fdata-sections -ffunction-sections -fvisibility=hidden -std=c++11 -fvisibility-inlines-hidden  -I/usr/include/libdrm -I. -Isrc -c -o src/NanoVG.cpp.o
In file included from src/nanovg/nanovg.c:25:0,
from src/NanoVG.cpp:976:
src/nanovg/stb_image.h: In function ‘unsigned char* stbi__convert_format(unsigned char*, int, int, unsigned int, unsigned int)’:
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:877:10: note: in expansion of macro ‘CASE’
CASE(1,2) dest[0]=src[0], dest[1]=255; break;
^~~~
src/nanovg/stb_image.h:877:49: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(1,2) dest[0]=src[0], dest[1]=255; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:878:10: note: in expansion of macro ‘CASE’
CASE(1,3) dest[0]=dest[1]=dest[2]=src[0]; break;
^~~~
src/nanovg/stb_image.h:878:52: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(1,3) dest[0]=dest[1]=dest[2]=src[0]; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:879:10: note: in expansion of macro ‘CASE’
CASE(1,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; break;
^~~~
src/nanovg/stb_image.h:879:65: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(1,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=255; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:880:10: note: in expansion of macro ‘CASE’
CASE(2,1) dest[0]=src[0]; break;
^~~~
src/nanovg/stb_image.h:880:36: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(2,1) dest[0]=src[0]; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:881:10: note: in expansion of macro ‘CASE’
CASE(2,3) dest[0]=dest[1]=dest[2]=src[0]; break;
^~~~
src/nanovg/stb_image.h:881:52: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(2,3) dest[0]=dest[1]=dest[2]=src[0]; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:882:10: note: in expansion of macro ‘CASE’
CASE(2,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; break;
^~~~
src/nanovg/stb_image.h:882:68: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(2,4) dest[0]=dest[1]=dest[2]=src[0], dest[3]=src[1]; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:883:10: note: in expansion of macro ‘CASE’
CASE(3,4) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; break;
^~~~
src/nanovg/stb_image.h:883:78: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(3,4) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2],dest[3]=255; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:884:10: note: in expansion of macro ‘CASE’
CASE(3,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;
^~~~
src/nanovg/stb_image.h:884:67: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(3,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:885:10: note: in expansion of macro ‘CASE’
CASE(3,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; break;
^~~~
src/nanovg/stb_image.h:885:82: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(3,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = 255; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:886:10: note: in expansion of macro ‘CASE’
CASE(4,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;
^~~~
src/nanovg/stb_image.h:886:67: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(4,1) dest[0]=stbi__compute_y(src[0],src[1],src[2]); break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:887:10: note: in expansion of macro ‘CASE’
CASE(4,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; break;
^~~~
src/nanovg/stb_image.h:887:85: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
SE(4,2) dest[0]=stbi__compute_y(src[0],src[1],src[2]), dest[1] = src[3]; break;
^~~~~
src/nanovg/stb_image.h:873:44: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
#define CASE(a,b)   case COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b)
^
src/nanovg/stb_image.h:888:10: note: in expansion of macro ‘CASE’
CASE(4,3) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; break;
^~~~
src/nanovg/stb_image.h:888:66: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(4,3) dest[0]=src[0],dest[1]=src[1],dest[2]=src[2]; break;
^~~~~
src/nanovg/stb_image.h: In function ‘int stbi__extend_receive(stbi__jpeg*, int)’:
src/nanovg/stb_image.h:1156:21: warning: left shift of negative value [-Wshift-negative-value]
return (-1 << n) + k + 1;
^
In file included from src/nanovg/nanovg.c:25:0,
from src/NanoVG.cpp:976:
src/nanovg/stb_image.h: In function ‘int stbi__create_png_image_raw(stbi__png*, stbi_uc*, stbi__uint32, int, stbi__uint32, stbi__uint32)’:
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2506:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_none)         cur[k] = raw[k]; break;
^~~~
src/nanovg/stb_image.h:2506:57: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(STBI__F_none)         cur[k] = raw[k]; break;
^~~~~
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2507:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_sub)          cur[k] = STBI__BYTECAST(raw[k] + cur[k-img_n]); break;
^~~~
src/nanovg/stb_image.h:2507:88: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
SE(STBI__F_sub)          cur[k] = STBI__BYTECAST(raw[k] + cur[k-img_n]); break;
^~~~~
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2508:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_up)           cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
^~~~
src/nanovg/stb_image.h:2508:84: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(STBI__F_up)           cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
^~~~~
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2509:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_avg)          cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-img_n])>>1)); break;
^~~~
src/nanovg/stb_image.h:2509:106: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-img_n])>>1)); break;
^~~~~
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2510:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_paeth)        cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-img_n],prior[k],prior[k-img_n])); break;
^~~~
src/nanovg/stb_image.h:2510:125: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
I__BYTECAST(raw[k] + stbi__paeth(cur[k-img_n],prior[k],prior[k-img_n])); break;
^~~~~
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2511:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_avg_first)    cur[k] = STBI__BYTECAST(raw[k] + (cur[k-img_n] >> 1)); break;
^~~~
src/nanovg/stb_image.h:2511:95: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
__F_avg_first)    cur[k] = STBI__BYTECAST(raw[k] + (cur[k-img_n] >> 1)); break;
^~~~~
src/nanovg/stb_image.h:2504:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2512:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_paeth_first)  cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-img_n],0,0)); break;
^~~~
src/nanovg/stb_image.h:2512:105: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
first)  cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-img_n],0,0)); break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2522:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_none)         cur[k] = raw[k]; break;
^~~~
src/nanovg/stb_image.h:2522:57: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(STBI__F_none)         cur[k] = raw[k]; break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2523:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_sub)          cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); break;
^~~~
src/nanovg/stb_image.h:2523:88: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
SE(STBI__F_sub)          cur[k] = STBI__BYTECAST(raw[k] + cur[k-out_n]); break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2524:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_up)           cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
^~~~
src/nanovg/stb_image.h:2524:84: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
CASE(STBI__F_up)           cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2525:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_avg)          cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); break;
^~~~
src/nanovg/stb_image.h:2525:106: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-out_n])>>1)); break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2526:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_paeth)        cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); break;
^~~~
src/nanovg/stb_image.h:2526:125: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
I__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],prior[k],prior[k-out_n])); break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2527:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_avg_first)    cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); break;
^~~~
src/nanovg/stb_image.h:2527:95: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
__F_avg_first)    cur[k] = STBI__BYTECAST(raw[k] + (cur[k-out_n] >> 1)); break;
^~~~~
src/nanovg/stb_image.h:2520:20: warning: this ‘for’ clause does not guard... [-Wmisleading-indentation]
for (k=0; k < img_n; ++k)
^
src/nanovg/stb_image.h:2528:13: note: in expansion of macro ‘CASE’
CASE(STBI__F_paeth_first)  cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); break;
^~~~
src/nanovg/stb_image.h:2528:105: note: ...this statement, but the latter is misleadingly indented as if it is guarded by the ‘for’
first)  cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-out_n],0,0)); break;
^~~~~
And it ends with this:
Generate ttl data for './ftz_nes_pulse_dsp.so', basename: 'ftz_nes_pulse_dsp'
/home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/generate-ttl.sh: line 28: 16915 Segmentation fault      $GEN ./$FILE
Makefile:24: recipe for target 'gen' failed

The warnings seem to be a compiler issue with the nanovg macro usage.
Nothing to worry.
The reason it segfaults will be yours though.
It's crashing when generating the lv2 ttl data, which means your plugin is crashing when loaded.

Well, I'm not sure what can crash, my code is here: https://gitlab.com/ftz/nes-synth

You can tweak the makefile so that the lv2 generator tool runs under gdb or some other debugger.
If you build the plugin with debug on and without stripping symbols you should be able to get a good backtrace.

I'm very new to makefiles. I usually use IDEs, can you give me the code and what should I do with it?

Change here:
https://github.com/DISTRHO/DPF/blob/master/utils/generate-ttl.sh#L31
to:
gdb --args $GEN ./$FILE

I'm getting:
Reading symbols from /home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/lv2_ttl_generator...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/lv2_ttl_generator ./ftz_nes_pulse_dsp.so
Failed to open plugin DLL, error was:
/usr/local/lib/libftzgeneral.so: undefined symbol: pthread_create
[Inferior 1 (process 4803) exited with code 02]
I guess I need to rebuild generator with -lpthread but I can't find it in makefiles.

that would be something in your plugin, seems like you're using threads so you need to link to pthread.

Now I'm getting this:
Reading symbols from /home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/lv2_ttl_generator...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/lv2_ttl_generator ./ftz_nes_pulse_dsp.so
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Generate ttl data for './ftz_nes_pulse_dsp.so', basename: 'ftz_nes_pulse_dsp'
Program received signal SIGSEGV, Segmentation fault.
__strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:1358
1358	../sysdeps/x86_64/multiarch/../strcmp.S: No such file or directory.

please post the entire backtrace.
but I can see already it's crashing in a strcmp call.

GNU gdb (Debian 7.10-1+b1) 7.10
Copyright (C) 2015 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
http://www.gnu.org/software/gdb/bugs/.
Find the GDB manual and other documentation resources online at:
http://www.gnu.org/software/gdb/documentation/.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/lv2_ttl_generator...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/fatony/Stuff/C++/fTzNESSynth/dpf/utils/lv2_ttl_generator ./ftz_nes_pulse_dsp.so
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
Generate ttl data for './ftz_nes_pulse_dsp.so', basename: 'ftz_nes_pulse_dsp'
Program received signal SIGSEGV, Segmentation fault.
__strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:1358
1358	../sysdeps/x86_64/multiarch/../strcmp.S: No such file or directory.
(gdb) exit
Undefined command: "exit".  Try "help".
(gdb) quit
A debugging session is active.
Inferior 1 [process 6257] will be killed.

Quit anyway? (y or n) y
fatony@gnu1:~/Stuff/C++/fTzNESSynth$

Sorry, this is like the second time ever I use gdb through a command line.
(gdb) backtrace
#0  __strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:1358
#1  0x00007ffff762c513 in ?? () from ./ftz_nes_pulse_dsp.so
#2  0x00007ffff762cfb4 in ?? () from ./ftz_nes_pulse_dsp.so
#3  0x00007ffff762d544 in lv2_generate_ttl () from ./ftz_nes_pulse_dsp.so
#4  0x0000000000400a1c in main ()

you didn't build with debug on, so we don't know where it crashed.
if your makefiles are based on DPF ones you can do "make clean; make DEBUG=true" and retry.

Program received signal SIGSEGV, Segmentation fault.
__strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:209
209	../sysdeps/x86_64/multiarch/../strcmp.S: No such file or directory.
(gdb) backtrace
#0  __strcmp_ssse3 () at ../sysdeps/x86_64/multiarch/../strcmp.S:209
#1  0x00007ffff762caaa in DISTRHO::String::_dup (this=0x61b9e0,
strBuf=0x7ffff762ef03 "Audio Output ", size=0)
at ../../dpf/distrho/src/../extra/String.hpp:780
#2  0x00007ffff762c808 in DISTRHO::String::operator= (this=0x61b9e0,
strBuf=0x7ffff762ef03 "Audio Output ")
at ../../dpf/distrho/src/../extra/String.hpp:700
#3  0x00007ffff7629f81 in DISTRHO::Plugin::initAudioPort (this=0x61b790,
input=false, index=0, port=...)
at ../../dpf/distrho/src/DistrhoPlugin.cpp:126
#4  0x00007ffff762d061 in DISTRHO::PluginExporter::PluginExporter (
this=0x7fffffffdb40) at ../../dpf/distrho/src/DistrhoPluginInternal.hpp:159
#5  0x00007ffff762a60c in lv2_generate_ttl (
basename=0x7fffffffe020 "ftz_nes_pulse_dsp")
at ../../dpf/distrho/src/DistrhoPluginLV2export.cpp:79
#6  0x0000000000400a1c in main ()
(gdb)

Now that seems a weird place to crash...
If you run it again, does it crash on the same exact place?

Yes. I've noticed that your example plugins don't share files but I've separated shared code in a parent directory that's not cleaned during make clean, maybe this causes link garbage?

Ok, I've changed my libs to link statically, now I get this:
(gdb) backtrace
#0  0x00007ffff75ff95e in DISTRHO::Plugin::initAudioPort (this=0x602df0,
input=false, index=0, port=...)
at ../../dpf/distrho/src/DistrhoPlugin.cpp:117
#1  0x00007ffff7602b43 in DISTRHO::PluginExporter::PluginExporter (
this=0x7fffffffdb30) at ../../dpf/distrho/src/DistrhoPluginInternal.hpp:159
#2  0x00007ffff76000ee in lv2_generate_ttl (
basename=0x7fffffffe010 "ftz_nes_triangle_dsp")
at ../../dpf/distrho/src/DistrhoPluginLV2export.cpp:79
#3  0x0000000000400a1c in main ()

Ok, investigating further:
My Plugin class has private member of type FrequencyTable which contains std::array<float, 128> table;
If I comment it out, metadata gen works.

Another update:
Even if I make my member to be std::unique_ptr < FreqTable > it still crashes.

Seems like something is wrong with your FreqTable class.
Add a single one instead of an array, see if it still crashes.

Oh!!! I've had a horrible mistake which made it write past the end of array and corrupt memory. I'm so sorry.

OK so segfault was on me but I think this issue should stay opened until NanoVG warning are fixed.


Use correct directory to archive DAG Run JSON artifacts

We should be looking for the Bib, Holdings, and Item transformation JSON artifacts in the /opt/airflow/migration/results directory at: https://github.com/sul-dlss/folio-airflow/blob/e11ca3333877a2943490cee9583c563ba5fdf06e/plugins/folio/helpers.py#L24
Mentioned as part of the work https://github.com/sul-dlss/folio-airflow/issues/48

Currently in a branch: https://github.com/sul-dlss/folio-airflow/blob/7299eb11d2ed161b42ce1fffb1f3b967a4680e8a/plugins/folio/helpers.py#L22


New-AutotaskAPIResource - Internal Server Error 500

Hi Kelvin.
I'm trying to create new a company but I keep getting a (500) Internal Server Error.
After building the $Body object with
$Body = New-AutotaskBody -Resource Companies -NoContent
and setting the following values:
$Body.companyType ='1'
$Body.companyName = 'ACME Metals'
$Body.companyNumber = 'ACME'
$Body.address1 = '123 Main St'
$Body.city = 'Anytown'
$Body.state = 'SC'
$Body.postalCode = '29601'
$Body.countryID = 237
$Body.phone = '(864) 555-1212'
I issue the command:
New-AutotaskAPIResource -Resource Companies -Body $Body
Consequently, I get this error:
New-AutotaskAPIResource : Connecting to the Autotask API failed. The remote server returned an error: (500) Internal Server Error.
At line:13 char:1
+ New-AutotaskAPIResource -Resource Companies -Body $Body
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
    + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,New-AutotaskAPIResource
I know my connection to the API is working because I can retrieve my company with the command:
Get-AutotaskAPIResource -Resource Companies -ID 0
Any guidance would be greatly appreciated. I've been looking for examples on how to create a contact too.

You most likely are missing some required UDFs, To check, grab a company that you would like to copy and check which fields are filled in and which are not. Sorry for the late reply!

I'm having the same issue with a new company, none of the UDFs for companies resource are required.
I've tried creating a new company in the UI (with the bare basics).. then getting that company, setting exactly the same properties (except changing company name and leaving id blank) and submitting but get the same 500 error.
Could you give us a working example of creating a new company with the bare basics?

@paulobrienlucidity
Same goes for creating new tickets and new products.
New-AutotaskAPIResource : Connecting to the Autotask API failed. De externe server heeft een fout geretourneerd: (500) Interne serverfout.
At line:1 char:1

New-AutotaskAPIResource -Resource Products -Body $body

  + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException
  + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,New-AutotaskAPIResource

Somehow autotask doesn't accept the way the $body is formatted. I haven't figured this out yet.
I switched to https://github.com/ecitsolutions/Autotask to get this done.
I pretty similar, still gets updated and it just works.

Hello, is there any update on this? We are awaiting an Autotask Fix, right? Is it a Powershell-related issue?
I debugged my code and the JSON body seems to be fine. Could it be an encoding issue? We had issues in the past with API-Requests in the past related to German-"Umlauts" even with the  module.

@JanDurryCyberdyne
I got it to work with this Autotask API. I just need to add more values to the existing fields in the body. It would give me error 500 at first, but it just ment i wasn't providing all the needed information to autotask.
Here is an example for the resource Products. We upload Techdata products on a weekly basis to autotask and adjust pricing on existing objects when they occur. This $body succesfully writes changes to autotask with this API. There are fields that are required to provide (E.G. isActive), however even some seemingly non required fields needed to be filled with a value before autotask accepted the body. Same goes for tickets, just check all the fields in the body (New-AutotaskBody -Resource Tickets -NoContent) and try to provide more information. Cross reference existing tickets with what you are trying to upload. Make sure every value is correct and can be accepted by Autotask.
$body = New-AutotaskBody -Resource Products -NoContent
$body.billingType = "1"
$body.chargeBillingCodeID
$body.defaultInstalledProductCategoryID
$body.defaultVendorID = "344"
$body.description = $fetchproduct.description
$body.doesNotRequireProcurement = "False"
$body.externalProductID = $fetchproduct.externalproductID
$body.id = "0"
$body.impersonatorCreatorResourceID
$body.internalProductID = "99999999"
$body.isActive = "True"
$body.isEligibleForRma = "True"
$body.isSerialized = "False"
$body.link
$body.manufacturerName = $fetchproduct.manufacturerName
$body.manufacturerProductName
$body.markupRate
$body.msrp
$body.name = $fetchproduct.name + + $body.externalProductID
$body.periodType = "1"
$body.priceCostMethod
$body.productBillingCodeID = '29682840'
$body.productCategory = "18"
$body.sku = $fetchproduct.sku
$body.unitCost = $price.unitCost
$body.unitPrice = $price.unitPrice
$body.UserdefinedFields
$body.vendorProductNumber = $fetchproduct.vendorproductNumber
$body | Set-AutotaskAPIResource -Resource Products

@KelvinTegelaar thanks for the update. I´ll check which fields are required for Tickets and will give you an update. I am just wondering, why it seems like they have designed their REST-Endpoint differently from the SOAP-Endpoint, as with the ecitsolutions PS-Wrapper I can create Tickets with the same attributes I'm using right now.
Thanks for your response.

The problem is with empty values in the body.
The solution is to filter out all the null values using something like this:
$Body = New-AutotaskBody -Resource "Tickets" -NoContent
$Body.title = "Test Ticket"
$Body.companyID = 0
...
$NoNullValues = $Body | ForEach-Object { $Properties = $_.PSObject.Properties.Name | Where-Object { $null -ne $Body.$_} ; $Body | Select-Object $Properties }

companyID = 0 will be preserved since 0 is not $null.

The problem is with empty values in the body.
The solution is to filter out all the null values using something like this:
$Body = New-AutotaskBody -Resource "Tickets" -NoContent
$Body.title = "Test Ticket"
$Body.companyID = 0
...
$NoNullValues = $Body | ForEach-Object { $Properties = $_.PSObject.Properties.Name | Where-Object { $null -ne $Body.$_} ; $Body | Select-Object $Properties }

companyID = 0 will be preserved since 0 is not $null.

  It was the null values in the body - stripped them out using your line of PS and posted and boom, record created.  Thank you thank you thank you.


:print produces extra space + output is 'list' dependable

I'll try to clump 2 related issues together here:

:printproduces extra (single) space character when printing an empty line for no apparent reason (this can be verified using :redir or execute())

:print produces output with or without 'listchars' depending on whether 'list' is set, which makes it tricky to make it produce output without 'listchars'. Output with 'listchars' is easy with either :list or :print l. If keeping :print by default to be dynamic (in regards to 'list' option) is vital (not sure about that) then can we have a new 'ex-flag' making it producing output without 'listchars'? Possibly :print n ('n' as for 'nolist').

I believe (1.) above is intentional:
within msg_print_line, which is used for :print
1806     /* output a space for an empty line, otherwise the line will be
1807      * overwritten */
1808     if (*s == NUL && !(list && lcs_eol != NUL))
1809         msg_putchar(' ');
1810

@DanielSeehausen hah, I see, sure seems intentional but at the same time a bit of a hack? ;)

@DanielSeehausen hah, I see, sure seems intentional but at the same time a bit of a hack? ;)

sorry for the year late reply here:
definitely seems like a hack! I would be interested to see if it gets some momentum for being changed


Support multiple values for a single parameter

There is currently an issue where the IHTTPSession.getParms() only stores a single String for a parameter even if the parameter has multiple values on the URL query string.
The API should be changed to return a List of Strings for the parameter.
An example of an incoming URL:
http://<IP_ADDRESS>:8990/?files=abc.txt&files=def.txt&files=ghi.txt
The only workaround at the moment is to parse the IHTTPSession.getQueryParameterString() yourself.

Linked to #286


class properties babel transform

I wanted to switch to this project but I can't because we are using class properties and I have this error when I launch our project.

Support for the experimental syntax 'classProperties' isn't currently enabled (77:9)

I see 2 solutions here:

As this is a pretty common syntax now, add "@babel/plugin-proposal-class-properties" in the list of babel plugins
Here set to true to allow users to add custom .babelrc in their project to extend the config.

What do you prefer @jpavon?

@Kerumen added babelrc: true in the latest version

@jpavon Thanks!


fix: Button role with Box

Move the button role from the Box element to a separate child element to prevent a11y issues when children of the Box are block elements, interactive elements, or some other type of descendants that would be invalid inside a button.
This feels kind of hacky, and I'm open to other suggestions and solutions.

I can't think of any other better way to do this but its probably worth a quick comment explaining the situation.
For my own benefit, the deal is that we need to make sure that its not possible to put block level elements inside a button or anything with a role of button. Is that the gist of it @tor-martin-storsletten ?


meta_override_url is unnecessarily wrapped in quotes

See how we have to call json!(…).to_string() instead of writing the plain string: https://github.com/fedimint/fedimint/pull/3533

We need the url to be a valid json string when we parse it later.
"\"https://getln.xyz/fedimint/meta\"".to_string() works just as well, but plain "https://getln.xyz/fedimint/meta" will fail json parse with serde_json::from_str()

I see, so currently there are two functions meta and meta_raw, the latter returns the raw string slice. But I see that this API is confusing. The problem currently is that some string meta fields use the raw format (e.g. federation name) and others the JSON format (e.g. meta_override_url). It feels like there should be a standard?

Could we standardise all meta fields as json strings?

Could we standardise all meta fields as json strings?

@wbobeirne @otech47 would you be ok with that? I guess you already need to impl JSON decoding anyway, so if e.g. the federation name was also awkwardly wrapped this wouldn't be too much of a problem from the code side (just not aesthetically pleasing when looking at the config).

The logic I've been going with with meta is something like:
try {
  // Try to parse it as JSON, could be string | number | boolean | object
  const value = JSON.parse(meta[key])
  return value
} catch {
  // If parsing fails, return it as a plain old string | undefined
  return meta[key]
}

So in that case, something being extra string wrapped or just a plain string would work fine. Can't guarantee that all implementations out there will be like this, but it's definitely the safest way to do it.


[WIP] Snippets to FAQs

This is still very much a work-in-progress from @hexylena and myself, but this overhauls snippets, and autogenerates FAQ pages based on the snippets. Opening now to get some early feedback from people like @jennaj and others who do a lot of support. What do you think? What do you need?

FAQs (snippets) are stored in folders named faqs, this can be at the root, but also topic-level or tutorial-level folders
FAQs are simple markdown (no more boxes and trailing newlines to worry about!), and have metadata associated. Example FAQ definition:

---
title: Changing the datatype
description: Galaxy will try to autodetect the datatype of your files, but you may need to manually set this occasionally.
area: datasets
box_type: tip
layout: faq
---

* Click on the {% icon galaxy-pencil %} **pencil icon** for the dataset to edit its attributes
* In the central panel, click on the {% icon galaxy-chart-select-data %} **Datatypes** tab on the top
* Select `{{ include.datatype }}`
* Click the **Change datatype** button

A page with all FAQs is autogenerated from the files in each FAQ folder, grouped by the area metadata key, and each FAQ also gets its own page for easy linking when answering questions

And for example the admin faq folder gets a similar page with just those related FAQs

snippets can still be included in tutorials {% snippet faqs/galaxy/history_create_new.md %} as before

TODOs: (mostly for ourselves)

[x] Fix a weird issue with the snippets plugin (@hexylena is on it)
[x] Prefix all snippet file names with their area to make it easier to find
[x] Unify a couple of duplicate snippets
[ ] Link to the FAQ pages from tutorials and topics
[x] Convert the existing FAQ page to this format
[ ] Support for Galaxy versions in metadata
[ ] Tweak layout of pages etc
[ ] Add documentation to contributing tutorial
[ ] Add FAQ folder to all topics and tutorials
[ ] Update planemo template to include faqs folder

ok, this is starting to come together.
If a tutorial-level faqs folder exists, it is linked to from the tutorial overview box:

and a section is also created at the end of the tutorial
@jennaj I think this is ready for your review, I just need to add more documentation, but please see what you think of this and what else you would like to see here.


Typo, Presentation... : proposals

PLugin title (XLSX Import) is not really a title and not aligned with any Kibana title (lot of different titles in Kibana btw)
In French replace "convertir" by sthg more accurate
(?) following "ID dans elasticsearch" is too big compare to space left between lines
Put some space betwwen what you can change eg mapping and mandatory fields

#10

The UI deeply changed with the changes of version 6.3+


The tag color is not working?

Hi friends, the color is not working, I am puting wrong? ^^''', what can is happening?
$.notify({
				// options
				message: 'Hello World'
			},{
				// settings
				placement: {
					from: "top",
					align: "right"
				},
				animate: {
					enter: "animated fadeInRight",
					exit: "animated fadeOutRight",
				},
				color: {
					name: "bg-blue-grey",
				}
			});

I am not sure what you are trying to do?


Freeze verions in overrides

Hi,
For now, the tool only freezes versions in the dependencies and devDependencies. Is there any reason not to freeze the versions in the "overrides" section ?

there was no reason not to freeze the overrides section. it just didn't cross my mind. I will work on it if I find some time. but for now, I'm open to Pull Requests

Thanks for the answer ! I got a bit of time today to look at the issue again, and it seems to me that the fix is pretty simple. I opened a pull request with the few needed modifications.
There's no tests, but I tried locally with a package.json with an overrides section, and it worked as expected.


Replace old tiles loader element

cc @josecruz @saleiva

It's already designed. Is the same blue bar you have on the widgets but on the map

:clap: thanks

Done by @piensaenpixel!


Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled. (IDFGH-10867)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
idf 5
Operating System used.
Windows
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
esp32
Power Supply used.
USB
What is the expected behavior?
I expected it to give the data in the using i2c.
when i call this function in main.c file it works fine but when i call it .c file it give the error
int i2c_slave_write(uint8_t bus, uint8_t addr, const uint8_t *reg, uint8_t *data, uint32_t len)
{
i2c_cmd_handle_t cmd = i2c_cmd_link_create();
i2c_master_start(cmd);
i2c_master_write_byte(cmd, addr << 1 | I2C_MASTER_WRITE, true);
i2c_master_write_byte(cmd, *reg, true);
i2c_master_write(cmd, data, len, true);
i2c_master_stop(cmd);
esp_err_t err = i2c_master_cmd_begin(bus, cmd, 1000 / portTICK_PERIOD_MS);
i2c_cmd_link_delete(cmd);

return err;

}
What is the actual behavior?
it give the error  Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled. in log.
Steps to reproduce.

Step
Step
Step
...

Debug Logs.
I (181) cpu_start: App cpu up.
I (209) cpu_start: Pro cpu start user code
I (209) cpu_start: cpu freq: 160000000 Hz
I (209) cpu_start: Application information:
I (214) cpu_start: Project name:     main
I (218) cpu_start: App version:      1
I (223) cpu_start: Compile time:     Aug 13 2023 14:52:20
I (229) cpu_start: ELF file SHA256:  166ee6473534c6f0...
I (235) cpu_start: ESP-IDF:          v5.0.1-dirty
I (240) cpu_start: Min chip rev:     v0.0
I (245) cpu_start: Max chip rev:     v3.99
I (250) cpu_start: Chip rev:         v3.0
I (255) heap_init: Initializing. RAM available for dynamic allocation:
I (262) heap_init: At 3FFAE6E0 len 00001920 (6 KiB): DRAM
I (268) heap_init: At 3FFB2818 len 0002D7E8 (181 KiB): DRAM
I (274) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (280) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (287) heap_init: At 4008CF80 len 00013080 (76 KiB): IRAM
I (295) spi_flash: detected chip: generic
I (298) spi_flash: flash io: dio
W (302) spi_flash: Detected size(4096k) larger than the size in the binary image header(2048k). Using the size in the binary image header.
I (316) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
- i2c controller configured
- i2c driver installed

- before i2c_slave_write
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.

Core  0 register dump:
PC      : 0x400d5137  PS      : 0x00060c30  A0      : 0x800d4f73  A1      : 0x3ffb4a80
0x400d5137: i2c_slave_write at C:/Users/Talha/Downloads/Ultrasonic_HallEffect-main/Ultrasonic_HallEffect-main/components/temp_hum/i2c.c:38

A2      : 0x00000000  A3      : 0x00000086  A4      : 0x00000021  A5      : 0x3ffb4ab0
A6      : 0x00000001  A7      : 0x3ffb59e8  A8      : 0x800d5135  A9      : 0x3ffb4a40
A10     : 0x00000000  A11     : 0x00000001  A12     : 0x00000001  A13     : 0x3ffaff70
A14     : 0x3ffaff78  A15     : 0x0000cdcd  SAR     : 0x0000001b  EXCCAUSE: 0x0000001c
EXCVADDR: 0x00000021  LBEG    : 0x4000c2e0  LEND    : 0x4000c2f6  LCOUNT  : 0x00000000

Backtrace: 0x400d5134:0x3ffb4a80 0x400d4f70:0x3ffb4aa0 0x400d4f1f:0x3ffb4af0 0x400e80ee:0x3ffb4b10 0x400895bd:0x3ffb4b40
0x400d5134: i2c_slave_write at C:/Users/Talha/Downloads/Ultrasonic_HallEffect-main/Ultrasonic_HallEffect-main/components/temp_hum/i2c.c:37

0x400d4f70: temp_hum at C:/Users/Talha/Downloads/Ultrasonic_HallEffect-main/Ultrasonic_HallEffect-main/components/temp_hum/temp_hum.c:24

0x400d4f1f: app_main at C:/Users/Talha/Downloads/Ultrasonic_HallEffect-main/Ultrasonic_HallEffect-main/main/main.c:15 (discriminator 1)

0x400e80ee: main_task at C:/Users/Talha/esp/esp-idf-v5.0.1/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/port_common.c:131 (discriminator 2)

0x400895bd: vPortTaskWrapper at C:/Users/Talha/esp/esp-idf-v5.0.1/esp-idf-v5.0.1/components/freertos/FreeRTOS-Kernel/portable/xtensa/port.c:154

More Information.
No response

LoadProhibited implies you are trying to read from an invalid address. EXCVADDR tells us what this address was: 0x21
Looking at the registers we see that 0x21 is in A4, which also happens to be the registers used to pass the 3rd function parameter const uint8_t *reg.
So my guess is that you passed the value 0x21 as the reg parameter, but what you actually should pass is a reference to this value.

Thank you very much for your help.  I adjusted the code as you suggested, and the issue is now resolved.
Could you kindly elaborate the issue for better understanding. Why calling the address without the reference causing the issue?

Why calling the address without the reference causing the issue?

Because the functions expects a pointer, not a value. i2c_master_write_byte(cmd, *reg, true); will try to read what is at the address reg, and 0x21 is not a valid address.

Why it was working in the main.c without any reference to address and it need reference in other .c files?

Not sure what was happening, but in general if a function expects a pointer, you cannot pass a value.

Thank you very much for your help.

LoadProhibited implies you are trying to read from an invalid address. EXCVADDR tells us what this address was: 0x21
Looking at the registers we see that 0x21 is in A4, which also happens to be the registers used to pass the 3rd function parameter const uint8_t *reg.
So my guess is that you passed the value 0x21 as the reg parameter, but what you actually should pass is a reference to this value.

Hi, I'm getting similar issue. Could you please help me with this ?
Here is my log :
Guru Meditation Error: Core  0 panic'ed (LoadProhibited). Exception was unhandled.
Core  0 register dump:
PC      : 0x400833fb  PS      : 0x00060031  A0      : 0x8008376d  A1      : 0x3ffb0dd0
0x400833fb: EspSoftwareSerial::UARTBase::rxBitISR(EspSoftwareSerial::UARTBase*) at C:/Users/Admin/Desktop/SoftSerial/current/SoftSerial/main/SoftwareSerial.cpp:721
A2      : 0x00000012  A3      : 0x00000000  A4      : 0x800886a2  A5      : 0x3ffb6a50
A6      : 0x00000003  A7      : 0x00060023  A8      : 0x00060020  A9      : 0x3ffb71b4
A10     : 0x3ffb71b4  A11     : 0xb33fffff  A12     : 0x800da455  A13     : 0x3ffb6a20
A14     : 0x3ff5f000  A15     : 0x00060023  SAR     : 0x0000000e  EXCCAUSE: 0x0000001c
EXCVADDR: 0x0000001a  LBEG    : 0x00000000  LEND    : 0x00000000  LCOUNT  : 0x00000000
Backtrace: 0x400833f8:0x3ffb0dd0 0x4008376a:0x3ffb0e00 0x400837fa:0x3ffb0e30 0x40082b7d:0x3ffb0e60 0x40084d2b:0x3ffb6ac0 0x400d2db7:0x3ffb6ae0 0x40086e21:0x3ffb6b00 0x400883b9:0x3ffb6b20
0x400833f8: EspSoftwareSerial::UARTBase::rxBitISR(EspSoftwareSerial::UARTBase*) at C:/Users/Admin/Desktop/SoftSerial/current/SoftSerial/main/SoftwareSerial.cpp:720
And the function is :
void IRAM_ATTR UARTBase::rxBitISR(UARTBase* self) {
		const bool level = *self->m_rxReg & self->m_rxBitMask;
		const uint32_t curTick = ticks();
		const bool empty = !self->m_isrBuffer->available();

		// Store level and tick in the buffer unless we have an overflow
		// tick's LSB is repurposed for the level bit
		if (!self->m_isrBuffer->push((curTick | 1U) ^ !level)) self->m_isrOverflow.store(true);
		// Trigger rx callback only when receiver is starved
		if (empty) self->m_rxHandler();
}

Hard to tell from just that snippet, but my guess would be that either self or self->m_rxReg has invalid values. You can print them and check.

Thanks for the reply. The problem is with the self->m_rxReg variable. But I didn't face any these kinds of run time errors at this function while using arduino compiler. Could you please explain why it is having this problem now ?

Could you please explain why it is having this problem now?

Without knowing the difference between the two projects I cannot really say. Could be due config differences, you missing to do something that the ardunio code did for you automatically etc.

Do you have any references to the static function that has been accessing it's class members via pointer like (UARTBase* self) in esp-idf examples?


Update README.md

Codecov Report

Merging #9 (beaf133) into master (9e2d885) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master       #9   +/-   ##
=========================================
  Coverage     20.00%   20.00%
  Complexity        2        2
=========================================
  Files             4        4
  Lines            20       20
=========================================
  Hits              4        4
  Misses           16       16

Continue to review full report at Codecov.

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


Gradle task 'Debug' fails in Netbeans 9.0 for hellofx

When running the 'Debug' task in Netbeans 9.0 with config

Apache NetBeans IDE 9.0 (Build incubator-netbeans-release-334-on-20180708)
Groovy Plugin 1.35
Gradle Plugin 2.0.1
Gradle 4.10.2

I get the following error:
> Task :debug
Listening for transport dt_socket at address: 5005
Error: JavaFX runtime components are missing, and are required to run this application

So it seems the following section in build.gradle doesn't also work for 'Debug'?
run {
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls'
        ]
    }
}

A possible solution for debugging is adding a debug task, where you can set the module-path, and add the modules.
I've tested this successfully:
task(runDebug, dependsOn: 'classes', type: JavaExec) {
    main = "org.openjfx.MainApp"
    classpath = sourceSets.main.runtimeClasspath
    jvmArgs = ['--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls',
                '--add-modules', 'javafx.fxml',
                "-Xdebug",
                "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"]
}

You run the task ./gradlew runDebug, and then on NetBeans you attach a debugger on that port.

Thanks, that seems to do the trick!
A bit inconvenient to start the debugger manually... So I will check with the developer of the Netbeans Gradle plugin on how to extend the ex. "debug" task properly - that doesn't seem to work with above modifications.

As discussed in https://github.com/kelemen/netbeans-gradle-project/issues/403 a good tip was to not overwrite the jvmArgs but to extend them using
def newArgs = [/* Your args go here */]
jvmArgs = jvmArgs.plus(newArgs)

So I avoided conflict with the Netbeans Gradle PlugIn. Maybe that would be something for your documentation as well?

Probably a section about debugging can be included in the docs, indeed.
About the use of plus, I don't think that is required when you are setting the VM arguments, but it is more important the order of those arguments.
Taken from your comment, this works for me, to run and debug (directly from the NetBeans Debug button):
run {
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--add-modules', 'javafx.controls'
        ]
    }
}

task(debug, dependsOn: 'classes', type: JavaExec) {
    doFirst {
        main = 'org.openjfx.MainApp'
        classpath = sourceSets.main.runtimeClasspath
        jvmArgs = [
                '--module-path', classpath.asPath,
                "-Xdebug",
                "-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005",
                '--add-modules', 'javafx.controls',
                '--add-exports', 'javafx.graphics/com.sun.javafx.util=ALL-UNNAMED',
                '--add-exports', 'javafx.base/com.sun.javafx.reflect=ALL-UNNAMED',
                '--add-exports', 'javafx.base/com.sun.javafx.beans=ALL-UNNAMED',
                ]
    }
}

Yep, that seems to work for me as well for "Debug".
Still I find the def newArgs... together with jvmArgs = jvmArgs.plus(newArgs) more sueful, since I only have to write the long list once and not twice for the "Run" and "Debug" task. In m case I need to add 15 (!) --add-exports to get things going.


Use wsrv.nl service

Well.. Since Heroku stopped their free service.... Let's add wsrv.nl

Rename DataSaverImpl -> BandwidthHeroDataSaver
Add WsrvDataSaver

Well.. Instead of renaming DataSaverImpl and then Adding WsrvDataSaver..
I just modified DataSaverImpl to handle both DataSaver implementations...

Replace the data saver switch preference with a ListPreference with 3 options disabled, bandwidth hero, and wsrv.nl, you will have to chnage the prefernce objects and keys, change the enabled preferences based on the version of data saver used

Done

@jobobby04 I guess It's done....

Close enough, I will do some code cleanup when I have time and then merge it


[FLINK-24762][table-runtime] Remove agg function: INCR_SUM

What is the purpose of the change
The removal of INCR_SUM should be completed in FLINK-13529, but that PR only removes function definition of INCR_SUM. This PR will complete the removal work for INCR_SUM.
Brief change log

Removes the AggregateFunction implementation  for INCR_SUM

Verifying this change

No need to verifying

Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): no
The public API, i.e., is any changed class annotated with @Public(Evolving): no
The serializers: no
The runtime per-record code paths (performance sensitive): no
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Kubernetes/Yarn, ZooKeeper: no
The S3 file system connector: no

Documentation

Does this pull request introduce a new feature? no

cc @JingsongLi plz have a look.


EF not updating shadow properties when calling DB context save changes from Async asp.net core webapi controller.

I am auditing all my entities using 4 extra shadow properties by implementing IAuditable interface to tell EF to log only those entities which implement IAuditable interface:
Here is my DB context class:
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, int>
 {
     ......................... DbSet poperties here (removed for brevity)

     public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
     : base(options)
     {
         Database.EnsureCreated();
     }

     /// <summary>
     /// We overrride OnModelCreating to map the audit properties for every entity marked with the
     /// IAuditable interface.
     /// </summary>
     /// <param name="modelBuilder"></param>
     protected override void OnModelCreating(ModelBuilder modelBuilder)
     {
         foreach (var entityType in modelBuilder.Model.GetEntityTypes()
             .Where(e => typeof(IAuditable).IsAssignableFrom(e.ClrType)))
         {
             modelBuilder.Entity(entityType.ClrType)
                 .Property<DateTime>("CreatedAt");

             modelBuilder.Entity(entityType.ClrType)
                 .Property<DateTime>("UpdatedAt");

             modelBuilder.Entity(entityType.ClrType)
                 .Property<string>("CreatedBy");

             modelBuilder.Entity(entityType.ClrType)
                 .Property<string>("UpdatedBy");
         }

         base.OnModelCreating(modelBuilder);
     }

     /// <summary>
     /// Override SaveChanges so we can call the new AuditEntities method.
     /// </summary>
     /// <returns></returns>
     public override int SaveChanges()
     {
         this.AuditEntities();

         return base.SaveChanges();
     }

     /// <summary>
     /// Method that will set the Audit properties for every added or modified Entity marked with the
     /// IAuditable interface.
     /// </summary>
     private void AuditEntities()
     {

         DateTime now = DateTime.Now;
         // Get the authenticated user name
         string userName = ......get username from user service

         // For every changed entity marked as IAditable set the values for the audit properties
         foreach (EntityEntry<IAuditable> entry in ChangeTracker.Entries<IAuditable>())
         {
             // If the entity was added.
             if (entry.State == EntityState.Added)
             {
                 entry.Property("CreatedBy").CurrentValue = userName;
                 entry.Property("CreatedAt").CurrentValue = now;
             }
             else if (entry.State == EntityState.Modified) // If the entity was updated
             {
                 entry.Property("UpdatedBy").CurrentValue = userName;
                 entry.Property("UpdatedAt").CurrentValue = now;
             }
         }
     }

From Asp.Net async controller action when I save changes shadow properties aren't logged:
  [HttpPut("{id}")]
        public async Task<IActionResult> PutCompany([FromRoute] int id, [FromBody] Company company)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState.GetModelErrors());
            }

            _context.Entry(company).State = EntityState.Modified;

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CompanyExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return Ok(company);
        }

However, synchronous version of action calls save changes and logs the shadow properties correctly.
  [HttpPut("{id}")]
        public IActionResult PutCompany([FromRoute] int id, [FromBody] Company company)
        {
            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState.GetModelErrors());
            }

            _context.Entry(company).State = EntityState.Modified;

            try
            {
                _context.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!CompanyExists(id))
                {
                    return NotFound();
                }
                else
                {
                    throw;
                }
            }

            return Ok(company);
        }

Am I missing something in context or during save changes?
Thanks

you have no await

dont you need an await?

Where?

await SaveChangesAsync(); and so on

@asadsahi Have you verified that your SaveChanges method is being called? If it is not being called, then check:

Are you overriding SaveChanges and/or SaveChangesAsync, and, if so, is the method being called the one that is being overridden? (I notice that your async controller code uses the non-async SaveChanges, which should work, but is unusual.)
Is the context instance an instance of your type, as opposed to the base IdentityDbContext?

@ajcvickers Save changes method was being called, but for some reason it wasn't auditing entities. Looking at the code it sounds a little strage, but not sure why it was doing it. After changing to non-async version of controller actions and calling savechanges synchronously too, shadow properties were being updated.
However, got it working now with changing savechange to async as well.
So what works for me is overriding SaveChange to SaveChangesAsync and changing controller actions to async too.
public override Task<int> SaveChangesAsync(CancellationToken cancellationToken = default(CancellationToken))
        {
            this.AuditEntities();

            return base.SaveChangesAsync(cancellationToken);
        }

What doesn't work is calling savechanges synchronously from async controller actions.
I am using IdentityDbContext instead of custom one.

@asadsahi When you say, "Save changes method was being called, but for some reason it wasn't auditing entities." can you explain a bit more what you mean by "it wasn't auditing entities?" Which part of the AuditEntities method was not working? For example, was ChangeTracker.Entries<IAuditable>() returning no values? Or something else?

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.


Placeable in Images on Modrinth?

I dont seem to be able to place them? Can place in a display case but not in world with right click?

Those were thrown on the ground, they are not placeable, unfortunately.


[bug]: channel automatically force closed with low fees and impossible to bumpfees; reimporting fails with "could not derive private key for legacy channel revocation root format: unable to derive private key"

Hi, the issue originated in zeus wallet embedded lnd 0.17 (zeus version 0.8.4) but it is still present in zeus with embedded lnd 0.18.0 and lnd desktop 0.18.2.
The channel silently force closed and I didnt noticed nothing in zeus as the channel was still reported as open and online.
After three days from closure, I tried do some operations with the channel, like a coop-close, that resulted in silent errors with the channel-visualization remained open and online.
I tried then a force-close (that still failed silently, like the coop one) and finally I tried reimporting the wallet with channel backup from scratch.
Only at that point I noticed that the forced channel-closure-tx was broadcasted from my peer (olympus) three days prior.
The reimported wallet (seed + channel backup) shows finally the channel as closing, but I noticed that the wallet is also slow (like something during restore is went wrong) in all the operations, like it takes 5 minutes only to generate a new onchain receive address and it doesnt permit me to do the bumpfees for the forceclosetx (broadcasted at 1 sat/vbyte).
I tried also to reimport the wallet in lnd desktop and I noticed that the reimporting from backup crashes with log:
unable to unpack chan backup: could not derive private key for legacy channel revocation root format: unable to derive private key
This is also the error showed in zeus lnd logs during importing channel backup.
the channel backup also show in log a corret channel point to restore: prior to fail with the error, it shows:
Restoring ChannelPoint(correctchannelpoint:0) to disk:
So I contacted Olympus to see if the force-close-tx could be fees-bumped from their side; they said that they also cant do the bumpfees on that tx and lnd fails when they try.
What could be happened?

Hi @pony-montana!
Thanks for reaching out! I'd like to verify some initial troubleshooting, to know how to proceed:

In your text, you've written "Only at that point I noticed that the forced channel-closure-tx was broadcasted from my peer (olympus) three days prior." My interpretation of this is that the channel was force closed by your channel peer, and not by your node. Is that correct?
Can you view the force closure tx in block explorers, such as mempool.space, or does explorers state that the transaction can't be found? If you can view the transaction: Is there another transaction that is also spending your output of the force closure tx present?
Do you have access to any instance of lncli for the wallet? If yes, does lncli wallet listsweeps show any output related to the force-closure?

Hi, thanks fro reply! :)

yes, the channel-closure-tx was broadcasted from my peer. He say that it wasnt broadcastest intentionally, but some bug accurred and the tx was broadcasted automatically by his lnd (I think is the last stable 0.17.x version).
I can view the force closure tx in block explorers and I dont see any other tx spending the output. I never saw any reference to the closing tx in zeus or lnd, I found it "navigating" the block explorer (I see the channel-point as the opening tx of the channel, and from here I found the closing tx and recognized channel status observing the amounts of the outputs).
I'll try as soon as possible, but lnd crashed when I try to reimport the channel backup, it autoshutdown and didnt shows any channel closing.

Ok thanks for the info!
Given that, the preferred and best alternative would be that you get the channel backup to import correctly. Lnd should then proceed to sweep the force-closure transaction with another transaction with a high enough fee to make both force-closure + the new sweep transaction confirm. If the new sweep transaction gets published with too low fee, lnd can be used to bump the fee for the sweep transaction (i.e. not the force closure transaction).
If you cannot get the channel backup to import correctly, there is an alternative tool you can use to recover your funds called chantools. Note that this isn't the preferred alternative, and it's always better if you can get the channel backup to work properly with lnd.
For chantools, there is command called sweepremoteclosed which can be used for your case. Using chantools will require your seed, but using the command you can sweep the funds to an address of your choosing (doesn't need to be an address of the lnd wallet, and shouldn't be either if your having trouble restoring the lnd instance):
https://github.com/lightninglabs/chantools/blob/master/doc/chantools_sweepremoteclosed.md
IMPORTANT: if you need to resort to using chantools, you need to specify a feerate that's high enough to make both the force closure + the sweep transaction confirm. Therefore, choose a high fee rate.
If you need to resort to using chantools, we can guide you in how to do so.

Hi again @pony-montana, I just thought of one more option:
You can also try to rescan the wallet through Zeus and see if that helps. If you go to:
Embedded node > Advanced > Rescan wallet, and then restart the app, It's possible that Zeus will find the channel closure after that. It's worth a try!

Hi @pony-montana,
Ok thanks for attempting the above! So it seems like chantools is your best option then.
I just realised though that I recommended the incorrect command for you for chantools as the first step in recovering the funds. You can't spend your to_remote output until the force closure transaction is confirmed. Instead you need to bump the fee of the remote force closure by spending the anchor output so that the transaction confirms. Chantools has a command for this as well, it's called:
https://github.com/lightninglabs/chantools/blob/master/doc/chantools_pullanchor.md
So you will first need to make the force closure transaction confirm, and then the your to_remote output can be spent.
Your anchor output is one of the outputs in the force closure transaction that has the value of 330 sats.

Hi, thanks a lot! Do I need onchain balance for paying the fees or they will be deducted from the output?

edit: I see the command pullanchor requires a sponsor input, so it is required

Correct :)!

Hi I did:
chantools pullanchor --anchoraddr bc1p...(casually selected one of the two address that receive 330 sats in the channel-close-tx) --changeaddr bc1q... --feerate 15 --sponsorinput 12345678:0 (the imput I want to use to bump fees)
the output seems good, no errors:
024-07-10 19:00:22.131 [INF] CHAN: Found multisig key<PHONE_NUMBER>92...(never seen the string before) for anchor pk script 48375953afaf..(never seen this string before)
2024-07-10 19:00:22.131 [INF] CHAN: Fee 2500 sats of xxx total amount (estimated weight 670)
2024-07-10 19:00:22.135 [INF] CHAN: Prepared PSBT follows, please now call
'lncli wallet psbt finalize ' to finalize the
transaction, then publish it manually or by using
'lncli wallet publishtx <final_tx>':
cH3455352...( the psbt)
Now I'm having some problem signin the psbt, I obtain errors, I dont know If its becasue of the excape characters of triggering something in shell, maybe I can put it in a file?
Trying playng with various method to insert the command lncli wallet psbt finalize  I obtained different errors:

[lncli] rpc error: code = Unknown desc = error finalizing PSBT: error finalizing PSBT: PSBT is not finalizable
I cant find it, but it complained about the string wasnt base64 formatted

I recovered the funds, thanks a lot for your help and for the fantastic tools you are developing here! This has been a fantastic challenge to learn something new :).
I think the issue can be closed!
Trying to make it the most useful as possible for who will see it in future, here are summarized the problems that has remained without a solution:

what triggered the force close by zeus lnd node? (not enough info to answer)
why I didnt saw the force closure into zeus wallet? (not totally lnd related)
why lnd crashed when I tryed to reimport the channel backup? What type of corruption could happened? How is it related to the bug experienced by the zeus node? (probably even here, not enough info to answer)
why wasnt possible to sign with lncli the psbt generated with chantools pullanchor? Could be related to the prior problems?

Thanks for the support @ViktorTigerstrom
I wonder what is causing the backup recovery to fail here

Do you still have the backup file that couldn't be recovered? If yes, could you run it through chantools dumpbackup (requires you to enter the seed to decrypt the backup) and post the output here? Or send it as a DM to one of us (we're all on our Slack server).

I made a disaster, I was operating in a virtual environment and I nuked it after the recovery succeded, probably I lost the seed. My really bad, I could have thinked to save the seed as it would still be useful for understanding the problem, I'm so sorry. I'll try to see if I'm able to recover it and if I made some kind of backup along the way...

Okay, no problem. I'm going to close the issue in the meantime, but feel free to post here again if you are able to recover the seed and backup file.


Handle infer inside of the extends clause of conditional types

We need to add an InferType to type.rs and update expand_conditional_type to add a new scope and type binding to the context before calling unify().

This was implemented by #423 and #427.


When a job fails because of a 429, it just gets dropped on the floor

The job should be requeued and retried again later

This would be handy but requires thinking more about what we would want this feature to actually do. How should it behave if we keep getting 429s, etc.
For now the solution is to just theme upload

429 should no longer happen as of https://github.com/Shopify/themekit/pull/208


[Python Template] GCSToSpanner

@hhasija python templates for Spanner is not feasible.
Marking this as closed.


Introduce toggle to enable/disable bounds_check.

bounds_check routine assumes that memory to read / write may only be on the stack or within ubpf code itself.
The toggle allows disabling the check when the assumption is not correct.

Coverage decreased (-0.5%) to 96.049% when pulling fc2a6e9a960330df9743a9600db732ad8e21c5ee on oleg31415926:master into 4cbf7998e6f72f3f4d0b30cf30cb508428eb421f on iovisor:master.

Hi :wave: Thanks for the contribution!

bounds_check routine assumes that memory to read / write may only be on the stack or within ubpf code itself.

When is that not the case?

friendly ping!


[dataviewer] Scalar are not anymore displayed

Introduction of Hdf5View hide the Raw display.

Closed by #592


checking for both unicode and str type when reading RSP

Sometimes a file name can be unicode and it will not cause an OGIPResponse to be built. This adds a check for a unicode type.

Current coverage is 73.73% (diff: 100%)

Merging #154 into master will increase coverage by 0.01%

@@             master       #154   diff @@
==========================================
  Files            93         93
  Lines         10135      10135
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           7471       7473     +2
+ Misses         2664       2662     -2
  Partials          0          0

Powered by Codecov. Last update c348db3...71e6a23


Fix documented return type in GuzzleHttp\Pool::promise()

Our static analysis is complaining that the return type of GuzzleHttp\Pool::promise() is documented incorrectly as GuzzleHttp\GuzzleHttp\Promise\Promise. It looks like there was a missing backslash to move to the root namespace.

I'm unsure why the BC check is failing, as the errors are unrelated to anything changed in this PR. I'm not familiar with the CI setup here so don't know if the failure is expected or a known issue.

@Nyholm I wasn't actually testing master, this bug is in the current release version :) Should I retarget this PR at the 6.5 branch?


Internet Explorers complains about 'console not defined'

Hello there,
When calling Gmaps.map.replaceMarkers(data) on IE browser (tested with 8 & 9),  IE complains about a 'console not defined', and the points in the map are not visualized.
Looking at the code, I found that on gmaps4rails.googlemaps.js.coffee, line 174, you try to write single markers on console, maybe for debug purposes;
Is ok on browsers like Chrome and FF, but on IEE, I think that if you don't have already opened developer tools (with F12),  the console doesn't exist anymore, and the error is shown.
Can you please erase that line or do something else?
Thank you so much for the good work.

Hi,
I did the mistake in 1.3.1. It's removed in 1.3.2.


Sort breaking changes on top

Given the new layout
http://apicomparer-preview.particular.net/compare/nservicebus/5.1.3...5.2.7
where we show the obsoletes inline I think it would be better to sort on breaking changes and display them first? ( PersistenceExtentions in the above example)
Or even have a separate section for them?

Here is another example where it would be better to hightlight the breaking changes
http://apicomparer.particular.net/compare/EntityFramework/6.0.0...6.1.3
and yes EF didn't follow semver here :)


Correlation failed, when Admin is hosted behind a reverse proxy server under a directory

I have my own, custom SSO service running together with the admin frontend/api projects for easy administration.
During development, I would use a docker-compose file mostly identical to the one in this repository. The SSO container would use "sso.service.local" as the url, admin would use "admin.skoruba.local" and admin.api would use "admin-api.skoruba.local". Everything worked perfectly that way.
Now it's time to go live, and instead of the nginx proxy from docker-compose.yml, we use our existing Apache2 server to act as the reverse-proxy server. Now, the url for SSO is "id.company.com", and here's the part I think is important: the urls for admin and admin.api are "admin.company.com/identity" and "admin.company.com/identity-api".
In this scenario, our SSO system appears to function normally, including the apps we used to test our SSO service during development. However, when we try to log in to admin.company.com/identity, when the browser makes the call to admin.company.com/identity/signin-oidc, this error is produced:

Exception: Correlation failed.

Exception: An error was encountered while handling the remote login.

    Microsoft.AspNetCore.Authentication.RemoteAuthenticationHandler<TOptions>.HandleRequestAsync()
    Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
    Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext context)
    NWebsec.AspNetCore.Middleware.Middleware.CspMiddleware.Invoke(HttpContext context)
    NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(HttpContext context)
    NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(HttpContext context)
    NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(HttpContext context)
    NWebsec.AspNetCore.Middleware.Middleware.MiddlewareBase.Invoke(HttpContext context)
    Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)

Because of the reverse proxy server being configured approximately like this:
ServerName admin.company.com
ProxyPass /identity https://server:5000

The URL seen by the admin container is this: https://admin.company.com/signin-oidc when the browser believes it to be https://admin.company.com/identity/signin-oidc. This discrepancy, I believe, is the reason for the exception.
Another symptom of this problem is that the cookie stored by the browser is for the domain "admin.company.com", and the path is "/signin-oidc" rather than "/identity/signin-oidc" as the path is determined by the server rather than the browser, and the server determines the path based on what the client sends it. The client in this case is the reverse proxy server which modifies the path so it does not include /identity.
The solution should be to make the admin system aware of the base url. How do I do this?
Alternatively, if I'm entirely wrong: how do I fix the exception?

The solution to this problem is to write a middleware that sets the PathBase of any HTTP request to "/identity". Make sure that the proxy server does not include "/identity" in its target url. (ProxyPass /identity https://server:5000)


[RFC]: improve README examples of stats/base/dists/truncated-normal namespace

Description
This RFC proposes to improve the README examples of the stats/base/dists/truncated-normal namespace package. Currently, namespace package READMEs only include minimal examples which are not particularly informative and do not showcase namespace functionality.
Historically, namespace examples were not given much effort due to the rapidly changing nature of the project; however, now that development and organization has settled, it would be good to revisit these packages and add proper examples to better communicate to users how to use namespace contents.
For those wanting to contribute to this issue, you can use the following steps:

Browse through the contents of the stats/base/dists/truncated-normal namespace and identify interesting functions and packages to showcase.
Update the example code block in the "Examples" section of the README for the stats/base/dists/truncated-normal namespace and open a PR.
When updating the README, examples should follow existing project conventions (e.g., ES5).
Examples may require functionality from other packages to help make examples more interesting.

Related Issues
None.
Questions
No.
Other
No.
Checklist

[X] I have read and understood the Code of Conduct.
[X] Searched for existing issues and pull requests.
[X] The issue name begins with RFC:.

@Planeshifter @kgryte  till my PR is under review could it be possible for me to work on this issue?

@vr-varad This namespace is still very bare, containing only one function. Maybe choose a different one to improve the example code block for? Thanks!


OS X make launch-kube step fails

Following these steps on: https://github.com/pachyderm/pachyderm/blob/master/SETUP.md
On Mac 10.11.5,
With Docker-For-Mac:
Client:
Version:      1.12.0-rc3
API version:  1.24
Go version:   go1.6.2
Git commit:   91e29e8
Built:        Sat Jul  2 00:09:24 2016
OS/Arch:      darwin/amd64
Experimental: true
I get this error with make launch-kube:
$ make launch-kube
check that kubectl is installed
which kubectl
/usr/local/bin/kubectl
etc/kube/start-kube-docker.sh
7331b4ba1901d20a5d484855cb1b1b6935cfac3f969df51ba9731e589d2f7e7d
docker: Error response from daemon: Mounts denied:
The path /var/lib/kubelet/
is not shared from OS X and does not belong to the system.
You can configure shared paths from Docker -> Preferences...
..
make: *** [launch-kube] Error 125

Docker Preferences, however, includes the symlinked being sought (/private/var...)

I'm seeing some advice here that might help:
https://forums.docker.com/t/getting-mounts-denied-on-previously-working-container-after-upgrading-to-v1-12-0-beta18-3-gec40b14/17546/5

Hi @jnevin sorry you hit this.
Kubernetes uses that directory to store it's internal state. I think you just need to add /var/lib/ to that list of shareable paths and it'll work.
Also if you're looking for the path of least resistance you might want to look into Minikube I believe it can work with xhyve similar to Docker for Mac and shouldn't have issues like this. I haven't tested it personally though.

I also ran into this issue. I think it could be to do with the way mac's /var folder is actually a symlink to /private/var. My suspicion is that docker is comparing the configured shared path /private/var/lib against the requested path of /var/lib and they don't match. Their UI doesn't let you create a shared folder to the symlink  directly. I worked around this by changing the path in etc/kube/start-kube-docker.sh to a non-symlinked path, however I then ran into other problems with not being able to expose the kubernetes API port. In the end I installed kube-solo which worked perfectly. https://github.com/TheNewNormal/kube-solo-osx

Sorry you ran into this. Since this issue is quite old, I'm closing it. But feel free to re-open if you're still experiencing it.


The jsonata function getSunTimeByName isn't usable with the node "inject enhanced"

Describe the bug
By using the node "inject enhanced" with the jsonata function getSunTimeByName an error is thrown:
"Could not evaluate jsonata.$getSunTimeByName("nadir"). - Maybe settings outdated (open and save again)!"
Screenshots

Expected behavior
A clear and concise description of what you expected to happen.
System information (please complete the following information):

Node Version 14.17.6
Node-Red Version 2.0.6

fixed with<EMAIL_ADDRESS>