build docker image failed

hi，I am trying to build my own Docker image, I checkouted Splash source code using git, then executed the following command from Splash source root:
$ docker build -t runoob/my-task-local:v1 .
but I failed, who can help me? thanks~
In file included from /opt/qt-5.14/5.14.1/gcc_64/include/QtWidgets/qabstractspinbox.h:44:0,
from /opt/qt-5.14/5.14.1/gcc_64/include/QtWidgets/qdatetimeedit.h:47,
from /tmp/builds/pyqt5/sip/QtWidgets/qdatetimeedit.sip:26:
/opt/qt-5.14/5.14.1/gcc_64/include/QtWidgets/qwidget.h:530:10: note: declared here
void getContentsMargins(int *left, int *top, int *right, int *bottom) const;
^~~~~~~~~~~~~~~~~~
g++: internal compiler error: Killed (program cc1plus)
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-7/README.Bugs> for instructions.
make[1]: *** [sipQtWidgetspart7.o] Error 4
Makefile:2294: recipe for target 'sipQtWidgetspart7.o' failed
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory '/tmp/builds/pyqt5/QtWidgets'
Makefile:144: recipe for target 'sub-QtWidgets-make_first-ordered' failed
make: *** [sub-QtWidgets-make_first-ordered] Error 2
/tmp/builds /
Removing intermediate container 1ce09fafd1fb
---> 9adcd7b583ff
Step 76/100 : COPY --from=pyqt5-downloader /tmp/webengine.tar.gz /tmp/
---> 71f1cb7d305b
Step 77/100 : COPY dockerfiles/splash/install-pyqtwebengine.sh /tmp/install-pyqtwebengine.sh
---> 1714573a48fa
Step 78/100 : RUN /tmp/install-pyqtwebengine.sh /tmp/webengine.tar.gz
---> Running in 658f0ca928a8
/tmp/builds /
/tmp/builds/webengine /tmp/builds /
Error: Unable to import PyQt5.QtCore. Make sure PyQt5 is installed.
The command '/bin/sh -c /tmp/install-pyqtwebengine.sh /tmp/webengine.tar.gz' returned a non-zero code: 1

I checkouted release 3.4.1, try to build the Docker image, but it is always running at setp 29, no error and no any output, as following
Step 27/61 : COPY dockerfiles/splash/qt-installer-noninteractive.qs /tmp/script.qs
---> Using cache
---> 59d6d7be63f4
Step 28/61 : COPY dockerfiles/splash/run-qt-installer.sh /tmp/run-qt-installer.sh
---> f3682414c583
Step 29/61 : RUN /tmp/run-qt-installer.sh /tmp/qt-installer.run /tmp/script.qs
---> Running in e6550ca32ac3

same issue, did you solved it?

I have encountered both issues mentioned as well, any leads?

Ran into the same issue, changing the value of the SPLASH_BUILD_PARALLEL_JOBS variable in the Dockerfile to 1 will probably solve the issue.
The error probably happens when Docker tries to install the webengine before Pyqt5, which can happen since the commands in the Dockerfile are parallelized and webengine depends on pyqt5 but pyqt5 is not always installed before the webengine installation starts.


Config fixes

Hi there 👋
This is an extension of #673.
Unfortunately, I've made a mistake a didn't hit “Submit review” button, so all my comments were visible only to me and thus the PR was merged too soon.
So this PR fixes a couple of issues:

Extends test_from_hf_config to a parametrized version. For instance, it pointed to an issue with new config: now we have a nested dictionary (hf_config inside config) so when we do a shallow copy it leads to an issue.
Replacement of .copy with deepcopy.copy.
Automatic code style fixes (of course 😊).

easy peasy lemon squeezy 😉


Feature request: gotify notifications

very interested to use jetspotter, since I unified all my notifications towards https://gotify.net/ I tried to write a notification based on https://github.com/gotify/go-api-client but can't get it to work due to lack of go and time :(
The example code I got from the go-api-client is currently failing on
err declared and not used
and a
missing return

If you can point me in a direction regarding it let me know!

Haven't heard of gotify yet. I will do some investigation and see if I can get it to work. 👍

@visibilityspots  I have added support for Gotify notifications in 1.19.
Could you test it out and verify that it works as you expect?
I tested it locally by running gotify in a container and that seemed to work.
https://vvanouytsel.github.io/jetspotter/#gotify

works as expected on my local machine, will try to have it running on my nomad cluster as a next step ;)


Error IHttpResponse may leak

Describe your environment. Describe any aspect of your environment relevant to the problem, including your SDK version, platform, OS version, etc. If you're reporting a problem with a specific version of a library in this repo, please check whether the problem has been fixed on master.
Found in SDK version <IP_ADDRESS> and still reproducible in latest master on 8/24/2020 at commit be5fee3b.
Found on Linux (where we implement IHttpClient and we perform leak testing inherit from upstream Chromium).
Steps to reproduce.
Describe exactly how to reproduce the error. Include a code sample if applicable.
Create IHttpResponse object with an error HttpResult (HttpResult_Aborted, HttpResult_LocalFailure or HttpResult_NetworkFailure) and make a IHttpResponseCallback.OnHttpResponse callback with it.
Not repro when the result is HttpResult_OK.
What is the expected behavior?
What did you expect to see?
Both OK and NetworkFailure cases pass memory sanitizer leak tests.
What is the actual behavior?
What did you see instead?
OK result case passed and NetworkFailure case failed the test.
Direct leak of 112 byte(s) in 1 object(s) allocated from:
    #0 0x562fff40763d in operator new(unsigned long) /b/s/w/ir/cache/builder/src/third_party/llvm/compiler-rt/lib/asan/asan_new_delete.cpp:99:3
    #1 0x7f0c6539e59c in make_unique<Microsoft::Applications::Events::SimpleHttpResponse, std::__1::basic_string<char> > buildtools/third_party/libc++/trunk/include/memory:3043:28
    #2 0x7f0c6539e59c in FromHttpResponse third_party/data_client/src/edge_http_client.cc:66:24
SUMMARY: AddressSanitizer: 112 byte(s) leaked in 1 allocation(s).

Additional context.
Add any other context about the problem here.
Edge Bug 28667406: HttpUploaderTest.OnUploadFailureTest failure in Linux_x64_release_asan
Reduced repro:  main.cc

This hasn't been a priority for at least a year. Please take a look if it's still an issue.
I'm removing myself from assignment, as I'd be refocusing on other project.
@HIROSN @jberenhaus


Radial menu drawn under Mapillary markers

I should fix this before the next release:

The scene graph looks like:

div#supersurface  (roughly, everything the user can drag around)

div.background-layer (imagery tiles)
div.layer-overlay (overlays, e.g. TIGER lines, locator overlay)
div.data-layer (everything OSM)

svg#surface

g.layer-areas (areas)
g.layer-lines (ways)
g.layer-hit (vertexes/midpoints)
g.layer-halo (text label halos)
g.layer-label (text labels / area icons)
Menu appends itself here (under #surface)

div.layer-gpx

svg

div.layer-mapillary-images

svg

div.layer-mapillary-signs

svg

Things ended up this way because originally there were no Mapillary layers, and the gpx layer was drawn under the OSM data.  Over time, we've added some data layers and moved gpx to be above OSM - and confusingly iD.Background still maintains responsibility for rendering things that are both above and below OSM.
So I'd like to clean this up a bit.
Either the menu needs to move to #supersurface, or the svg parts of the gpx and Mapillary layers need to move to #surface.

This is turning into an annoying refactor, but I'd like to get to something more like this:

div#supersurface  (everything the user can drag around)

div.background-layer (imagery tiles)
div.layer-overlay (overlays, e.g. TIGER lines, locator overlay)
div.data-layer (everything vector data)

svg#surface

g.layer-osm (everything OSM)

g.layer-areas (areas)
g.layer-lines (ways)
g.layer-hit (vertexes/midpoints)
g.layer-halo (text label halos)
g.layer-label (text labels / area icons)

g.layer-gpx
g.layer-mapillary-images
g.layer-mapillary-data
Menu appends itself here (end of #surface / on top of all data)

Some consequences of this will be that:

iD.Background will manage only the background raster layers
iD.svg.Surface will manage all of the data layers
iD.map code will be a little simpler

Other places that need to change:

Minimap (deals with gpx)
Turn restriction editor (instantiates a surface)
Background / Map Data ui panels

#2994 fixes this probably as well as it can be fixed.
Mapillary street signs still show up on top of the radial menu, but that's because they are <foreignObject> nodes that get their own stacking context that outside of the rest of the SVG tree that uses the painter's model for rendering.  I'm not going to spend any more time on it now..


Compress logo

Made it 50% smaller, because there is no need for that big logo in-game
Extreme image compression with oxipng and imagecompressor.com

I've optimized the icon even more (losslessly), both this pr's smaller one and the original one.
Savings:
Original 276562 -> 256,062
Smaller 32,556 -> 28,631
images.zip

What tool(s)? @Oondanomala

A combination of oxipng, ECT, pingo, defluff, and deflopt, all at max settings.


Omnisharp Giving: E5248: Invalid character in group name

Problem description
After installing the omnisharp from the :Mason page, I will get E5248: Invalid character in group name whenever I open a .cs file.
Why do you think this is an issue with mason-lspconfig.nvim?
The issue only shows up when I have installed omnisharp from Mason, I have also tried the omnisharp-vim plugin and I haven't gotten dhe same issue.
Also I see several of this in the LspLog:
    6 [WARN][2023-04-25 11:15:29] ...lsp/handlers.lua:537 "OmniSharp.Extensions.LanguageServer.Server.LspServerOutputFilter: Tried to send request or notification before initialization was completed and will be sent later OutgoingNotification ...

Neovim version (>= 0.7)
NVIM v0.9.0
Build Type: Release
LuaJIT 2.1.0-beta3
Operating system/version
Darwin Kernel Version 22.4.0: Mon Mar  6 20:59:28 PST 2023; root:xnu-8796.101.5~3/RELEASE_ARM64_T6000
I've manually reviewed the Nvim LPS client log (:LspLog) to find potential errors

[X] Yes

I've recently downloaded the latest plugin version of mason.nvim, mason-lspconfig.nvim, and nvim-lspconfig

[X] Yes

Affected language servers
omnisharp
Steps to reproduce

Install the omnisharp lsp
Re-open nvim
Open a .cs file
Wait for LSP to start

Actual behavior
The LSP appears to work, but the E5248 error keeps poping up whenever I move around in the file.
Expected behavior
The E5248 should not show up and it should work normally.
LspInfo
Press q or <Esc> to close this window. Press <Tab> to view server doc.

 Language client log: /Users/esauder/.local/state/nvim/lsp.log
 Detected filetype:   cs

 1 client(s) attached to this buffer:

 Client: omnisharp (id: 1, bufnr: [5])
 	filetypes:       cs, vb
 	autostart:       true
 	root directory:  /Users/<UserName>/source/repos/<RepoName>
 	cmd:             omnisharp -z -s /Users/esauder/source/repos/<RepoName> --hostPID 23775 DotNet:enablePackageRestore=false --encoding utf-8 --languageserver FormattingOptions:EnableEditorConfigSupport=true FormattingOptions:OrganizeImports=true RoslynExtensionsOptions:EnableImportCompletion=true Sdk:IncludePrereleases=true

 Configured servers list: yamlls, ghdl_ls, cssls, dockerls, clangd, tsserver, eslint, ltex, lua_ls, omnisharp, rust_analyzer, bashls, jsonls

LspLog
Yes, it says not to paste them, what should I do with them then?

Healthcheck
==============================================================================
mason: require("mason.health").check()

mason.nvim ~
- OK neovim version >= 0.7.0

mason.nvim [Registries] ~
- OK Registry `github.com/mason-org/mason-registry version: 2023-04-25-open-goby` is installed.

mason.nvim [Core utils] ~
- OK unzip: `UnZip 6.00 of 20 April 2009, by Info-ZIP.  Maintained by C. Spieler.  Send`
- OK wget: `GNU Wget 1.21.3 built on darwin22.1.0.`
- OK curl: `curl 7.87.0 (x86_64-apple-darwin22.0) libcurl/7.87.0 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.51.0`
- OK gzip: `Apple gzip 403.100.6`
- OK tar: `bsdtar 3.5.3 - libarchive 3.5.3 zlib/1.2.11 liblzma/5.0.5 bz2lib/1.0.8 `
- OK bash: `GNU bash, version 3.2.57(1)-release (arm64-apple-darwin22)`
- OK sh: `Ok`

mason.nvim [Languages] ~
- WARNING Go: not available
  - ADVICE:
    - spawn: go failed with exit code - and signal -. go is not executable
- WARNING Composer: not available
  - ADVICE:
    - spawn: composer failed with exit code - and signal -. composer is not executable
- WARNING PHP: not available
  - ADVICE:
    - spawn: php failed with exit code - and signal -. php is not executable
- WARNING luarocks: not available
  - ADVICE:
    - spawn: luarocks failed with exit code - and signal -. luarocks is not executable
- OK Ruby: `ruby 2.6.10p210 (2022-04-12 revision 67958) [universal.arm64e-darwin22]`
- OK cargo: `cargo 1.67.1 (8ecd4f20a 2023-01-10)`
- OK java: `openjdk version "20" 2023-03-21`
- WARNING julia: not available
  - ADVICE:
    - spawn: julia failed with exit code - and signal -. julia is not executable
- OK RubyGem: `<IP_ADDRESS>`
- OK python3: `Python 3.11.3`
- OK javac: `javac 20`
- OK node: `v20.0.0`
- OK pip3: `pip 23.1 from /opt/homebrew/lib/python3.11/site-packages/pip (python 3.11)`
- OK npm: `9.6.4`

mason.nvim [GitHub] ~
- OK GitHub API rate limit. Used: 0. Remaining: 5000. Limit: 5000. Reset: Tue Apr 25 12:38:43 2023.

Screenshots or recordings

I'm having this issue as well when using omnisharp-mono after reinstalling NeoVim due to an unrelated issue. This could be related to omnisharp-roslyn/#2483. What's strange is that this was working about a month ago when I first installed omnisharp-mono, but after reinstalling I'm getting this issue.

Semantic highlighting was somewhat recently added to neovim. Try
To opt-out of semantic highlighting with a
server that supports it, you can delete the semanticTokensProvider table
from the {server_capabilities} of your client in your |LspAttach| callback
or your configuration's on_attach callback:
       client.server_capabilities.semanticTokensProvider = nil

Semantic highlighting was somewhat recently added to neovim. Try
To opt-out of semantic highlighting with a server that supports it, you can delete the semanticTokensProvider table from the {server_capabilities} of your client in your |LspAttach| callback or your configuration's on_attach callback:
       client.server_capabilities.semanticTokensProvider = nil

Thanks! That stopped the spam of E5248 errors.


Lint core

@sds, you have a handful of lint gems now, including this one. Did you ever consider extracting the common core functionality out into a separate gem for re-use by the others? I'm thinking things like the runner, option-handling, file-system exploration etc, leaving language specific bits in the downstream gems.
Haven't even read the code, but thinking in the abstract, the thought occurred to me.

Hey @wincent,
Yes, I have given this some (significant) thought. haml-lint and slim-lint are my attempt at converging on a design that is generalizable enough to be used in some form of generic linting framework. If you look at their code you'll notice they are (almost) exactly the same—this is intentional as I try to wrap my head around how to think about extracting a reusable framework from them. Unfortunately it's slow going as they aren't the top of my priority list.
Are you looking to create a linter of your own?

Are you looking to create a linter of your own?

Nah. eslint has all my bases covered right now. I was just driving by and the thought occurred to me.


Calendar size problem in small screen

(Required) Version Number: 8.0.3
Description
Previously I have no issues with this but recently the calendar frame have issue in small screen (iPhone SE & other iPhone with small screen). I thought it was because I didn't update the library. But then once updated, the problem still occur. It has no issue on bigger screen though (iPhone 11, iPhone 6s Plus)

*screenshot from iPhone SE on simulator

*screenshot from iPhone 11 on simulator
My calendar is in horizontal scroll direction and I set the calendar height to 360.
Is it possible to override the calendar width size to follow the screen size? If it is possible, where should I put the code?

I fixed the issue by setting the cellSize


[Enhancement]: Progress bar and circular progress reskinning

https://www.notion.so/appsmith/Progress-1dca9e96fe8f461086a42822137f6e89

@dhruvikn kindly leave the discussed next steps here!

Hey @somangshu, sure. Please find the original comment here in the PR.

Pausing the work, and closing this PR for now in light of the above-mentioned issues in the circular progress widget. We, the Appsmith team, will discuss and plan out a proper way to have rounded edges (M and L) with correct progress calculation. Thanks.


React-vis deprecation response

https://github.com/uber/react-vis/issues/1303

Reacharts is the immediate candidate:
https://github.com/recharts/recharts

Recharts looks more promising, I must dig the status of React in there, although the React team are considerate of backward compatibility. Its great talking to myself here.

This is still in the balance:
https://github.com/uber/react-vis/issues/1303#issuecomment-734118180

This is still in the balance:
https://github.com/uber/react-vis/issues/1303#issuecomment-734118180

plotly is JSON driven and wins.

#21

https://github.com/plotly/react-plotly.js/issues/135


Connection dropped - kNWErrorDomainPOSIX error 53 (error 1006) - when switching to another app on iOS 15.1.1

Describe the bug
We are using Azure SignalR to connect to a web service we are running. This system is running for several years now without any issues. Recently we have begun to see 1006 disconnection errors on iOS. The error occurs when a user uses our software on an iPhone. Our software interacts with a 3rd party that sends an authorization request (push message) to another app on the same phone. To authorize our request, the user has to acknowledge the request within the app of the 3rd party. When the user does not switch back instantly to safari, the connection gets dropped with error 1006.
Searching for the error makes me think it has something to do with background network traffic being forcibly closed when switching to another app.
We are looking if auto reconnect can help us fix this issue. Our connection settings are set to ping every 30 seconds and normally we don't experience any timeouts or connection drops.
To Reproduce
Enable debug mode within the iPhone and open a random SignalR powered website. Open the web debug window in OSX to see console messages on the Mac. Briefly switch to another random app for 1-2 seconds. Go back to safari. The console will show error 1006.
Exceptions (if any)
WebSocket connection to <> failed: The operation couldn’t be completed. (kNWErrorDomainPOSIX error 53 - Software caused connection abort)
Error: Connection disconnected with error 'Error: WebSocket closed with status code: 1006 ().'.
Further technical details
The libraries we are currently using are:

Microsoft.AspNetCore.SignalR  v1.13.0
@microsoft.signalr ^5.0.11

Thanks for thinking along.

It seams that this issue is caused by changes in iOS as also mentioned in https://github.com/react-native-webview/react-native-webview/issues/2281. The solution as specified by nverwer to disable NSURLSession makes the issue disappear.

Open the Settings app
Scroll down and tap on “Safari”
Scroll down to the bottom and tap on “Advanced”
Tap on “Experimental Features” at the bottom
Scroll down until you see “NSURLSession WebSocket”
Disable “NSURLSession WebSocket”

Of course this is only a workaround and not the real solution of this issue.
I will leave this issue open as I don't know whether Azure signalr library should be adapted to the new implementation in iOS15.

Looks like the WebSocket connection is closed by iOS. Since it is the SignalR client, I don't think there is much that Azure SignalR SDK can help with.
Can "re-start the connection" once 1006 is detected workaround this issue?  For example, with such approach: https://github.com/Azure/azure-signalr/blob/e6c3768de36d0c0edd260d867bb15916868ef3b4/samples/ChatSample/ChatSample.Net50/wwwroot/index.html#L168-L174

i've had luck keeping some background task running in the webview like an interval or animation frame while the webview or browser is backgrounded like:
setInterval(() => {
	// keeps websocket open while app / webpage is backgrounded
	console.log('keep alive');
}, 2000);

or
function repeatOften() {
	requestAnimationFrame(repeatOften);
}
requestAnimationFrame(repeatOften);

Any update on this issue?

Unfortunately not. OSX and iOS have implemented this as experimental feature. And no workaround seems to be available. We advise turning this feature off as a workaround in our user manual.

this is definitely a spotty flow on mobile. especially on crowded LTE networks as well as device to device on firmware versions...
alas, we've had some luck keeping the thread alive by playing audio in the background (even a completely silent audio track) as demo'd in our algorand library here:
https://github.com/thencc/algonautjs/blob/65142a39bff51b49a2ce4924b8ec585dd3284f04/src/index.ts#L2301-L2332

this still an issue? @wzoet @spencercap @spencercap @mattetti

@SkylarkingMonkey it was such an issue we abandoned the approach and haven't tried again since.

Issue is really bad :(
We are using auth with SignalR and smart-id. Whenever user on iphone goes to the app to confirm the pin, connection is aborted and user is not going anywhere. Reconnect doesn't help since when it tries to reconnect it is already too late.

@vicancy @wzoet @spencercap @SkylarkingMonkey @EvaldasMazeika  how did you guys resolved the issue ? is there some code

@i revolved this by updating to the new Microsoft package and added the 2 reconnection and reconnected events, so it was able to reconnect it and in the reconnected event i was able to grab the missed message


Proposal: replace "Recipes" with "Commands"

Default: Available recipes: -> Available Commands or just Commands:
It's, er, more "commandy" :-)
I know you can change that text manually. I just think Commands: is more succinct and clearer.

I definitely agree that "recipe" is weird terminology. See #166 for more discussion. I lean towards "Task", but "command is also good.


Additional settings to handle connection requests in endorser service

The dts-endorser-service instances used by BC Gov do not currently support auto-accepting connections from tenants in an "approved" managed instance (e.g.: Traction). This causes friction with tenants self-managing their settings, as well as delays in having an "enabled" issuer, especially for lower environments such as dev, test.
We need to improve the endorser API (found in https://github.com/hyperledger/aries-endorser-service) to be potentially able to auto-accept connections from a whitelist (all agents in an agency will have the same public endpoint) in order to streamline this process.
I believe the following describes the desired state:

an unknown agent requests to connect with the endorser (using its public DID): the connection request is approved/denied manually by an admin using the API
an agent from an agency in an allow list (e.g.: Traction instance) requests to connect with the endorser: the connection request is accepted automatically.

In Traction we are deciding upfront whether a tenant can/cannot connect to an endorser and therefore become an issuer and have endorsement requests accepted. Once an agent is connected to an endorser, all endorsement requests will be automatically approved (i.e.: no admin should have to action an API to approve a new schema/creddef, etc.).
Governance question: does this reflect where we want to be with BC Gov (have we even thought about this?), or a different pattern has been envisioned? I think this is the path of least friction and effort to manage resources, and accepting the request for a tenant (and allowing them to be an issuer or not) will act as proper governance "gate".
Looking for input from @krobinsonca, @swcurran, @WadeBarnes  and others.

@krobinsonca, @CharlesMacpherson, are the CANdy governance documents publicly available yet?  If not can @esune get access to review?

We had a chat yesterday, I will be creating a document with requirements base on my understanding of what we need to support for different use-cases.

emailed the GF to you both.

Sorry, the CANdy governance does not cover provincial operation of the endorser, only reference that is in their jurisdiction to manage it. We do not yet have any business rules for how we endorse. As a place holder, we should have business level decision on endorsing an agent DID, creddef or schema, and ensure it is aligned with DITP plans. Delivery team is best contact for those decisions via email. Obvious prod needs more robust approval processes. Dev and Test are less important, but we'd want test data that gets endorsed to be in line with what will go into prod

I think we want to separate the technical capability — here is how and where we control access — from the application of the policy — the governance rules. We need a rough idea of the granularity of the access control, and the technical solution should enable those.  From yesterday we got:

No endorsement — no ability to write to the ledger
Full endorsement — a DID created and the ability to write any other object
No schema endorsement — a DID create and the ability to write any object except a schema (an issuer using a common schema).

Once the technical capability is there, “the province” can decide how to use the capability to enforce the governance rules.

Right, I just mean no automatic endorsement. Would want issuer parties to be able to author these things, but would want manual intervention to approve them in the endorser. Likely the main thing we'd want to have auto-endorsed it a revreg entry from an approved issuer.

Whoa…that’s a different plan than we talked about yesterday.  What is planned is that on creation of a new Tenant, it would connect to an Endorser and be given (or not) access to write to the ledger.
Are you saying that each write transaction (other than RevReg operations) have to be individually reviewed and accepted?
That’s quite different than what we left yesterday’s meeting.

With the follow up question — do we need that full control to be implemented now, or in the future?  I don’t know if that would change the effort to implement the capability — if we need an approval of one type of request, I suppose it is not much different to get a approval for multiple types. Either way, a UI/review/accept/reject capability is required.

I see a couple of challenges in developing "full" access/permission control logic for the endorser:

time (to develop the solution and then maintain it)
user experience when triggering an action (i.e.: I request to create a new schema/creddef, but nobody is around and I wont get a response until the next day)
operational load and coordination to be on top of auditing/approvals (btw, WHO would be responsible for deciding if something can be approved, regardless of who actually pushes the buttons?)
overlap with other solutions (e.g.: Traction) and onboarding/Governance agreements that already cover at least part of the problem

A solution with the "minimal" set of access control rules required , as suggested by @swcurran , is probably the better way to go for now.

Hmmm…how about this — we use a GitHub repo to handle the approvals?  The Endorser would simply check on whether a certain GitHub repo contained the data to be approved, in the right place.  No UI for the endorser — just an HTTP request to check if a file is in the right place, perhaps with some checking that it contains the right content.  All the UI/approvals happen in GitHub.
This has the added bonus that the schema and issuer information can be published in a human consumable website.

I discussed with Kyle and Stephen today. I am in favour of the github idea while we have low volumes. No need to build out a UI until we are really scaling. Retaining DIPT control of what is endorsed is important to me.

Emiliano nicely refined the idea such that the Endorser will just know about files that are allowlists for writing transactions.  Those files must be accessible over the Internet, but where are there is an Endorser deployment configuration.
For our uses, the files will be hosted in a Governance GitHub repo, and generated when a merge is done into the repo. This is similar to how the OCA Bundles repo works today where OCA bundles are submitted as PRs, verified (automated and human review), and approved/rejected. When approved, a script generates a list of OCA Bundles that a holder can load.
The allowlists will have enough detail such that when the Endorser receives a request to endorse a transaction, it will extract the details and look up in the allow list if the transaction has been approved. If in the allowlist — approved, otherwise rejected.

Posted an issue with details: https://github.com/hyperledger/aries-endorser-service/issues/32

Development work is completed as part of the previously referenced issue, updates to the services will be completed as part of https://github.com/bcgov/DITP-DevOps/issues/138


Scan Bluetooth

how to show the bluetooth devices around and their features?

Have you checked the documentation?  You need to set up a callback, then call Bluetooth.scan_start().  The example at the end of the docs does several things -- but WRT your question, all the code before def cb() ... is enough to set it up, then you just need to issue b.scan_start(<timeout>).

I looked at the documentation. I do not understand who the method parameters are.
bcb (b, e, d, u):

I looked at the documentation. I do not understand who the method parameters are.
bcb (b, e, d, u):

From the documentation:
bluetooth.callback(<callback>, <callback_data>) used to set the callback function for bluetooth-object-level callbacks.  <callback> can be set to None.  If <callback_data> is not specified, it will be set to None.  Always returns a 2-tuple of the present <callback> and <callback_data>.  If called with no parameters, the values remain unchanged.  <callback> will be called with 4 parameters:

The bluetooth object
The event, which is one of:

bluetooth.CONNECT when a GATTS or GATTC connection occurs
bluetooth.DISCONNECT when a GATTS or GATTC disconnect occurs
bluetooth.SCAN_RES for GATTC scan results
bluetooth.SCAN_CMPL when GATTC scan is complete

Event data:

For bluetooth.CONNECT, bluetooth.DISCONNECT events, this will be a bytes(6) represeting the remote address.
For bluetooth.SCAN_RES this will be a 3-tuple of (<remote BDA>, <advertised name>, <rssi>)
For bluetooth.SCAN_CMPL this will be None.

The <callback_data parameter from the bluetooth.callback() call.

 Num Resp 3
Scan Complete
Final List:

You should set the callback before calling scan_start
From the docs:

For bluetooth.SCAN_RES this will be a 3-tuple of (<remote BDA>, <advertised name>, <rssi>)

This is why there's an error on line 24.  The example code had this error, since RSSI was added later. I've updated that code.

Thanks Mr. Surly, is worked!


[Enhancement] FVT tests to include mustg ather documentation in case of failure

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
currently no console output , or any server diagnostic logs captured if an FVT fails
Expected Behavior
the PR output should include the relevant diagnostic logs
Alternatives
Spend weeks diagnosing why a PR has failed.
Any Further Information?
This should probably be grouped up in an epic along with #6123
Would you be prepared to be assigned this issue to work on?

[X] I can work on this

Lots of output is saved from the FVTs - in fact in many cases it's too much.
Console output is kept -- The build logs can be seen at - for example a recent gradle build failure -> https://github.com/odpi/egeria/actions/runs/1718011997
These logs are the stdout/stderr from the results of the commands run during the build, such as gradle or maven.
There are also data files created during a build -- for example

some tests log output to files (and this can be good - to keep top level build simple)
distributable code such as archives
transient data files, for example the berkelydb in use during a particular FVT

Out of these files only the distributable code is kept - others need to be added as needed
#5290 was opened to track a few suggestions of files to capture - no doubt this list could be extended
In the case of the FVTs, the client log showing test execution is captured in the build report . What isn't is the output from the server-chassis - it is that omission the above issue suggests amongst others.
There are differences between maven and gradle. the former is currently default/definitive, whilst gradle is aspirational/intent for the future,/
Other refactoring may be possible
This may be a dup of #5290 or are there related things to consider whereby it makes sense to have a grouping?


docs: Notify users better on incoming module changes, which would require or recommend their intervention

Currently, we only print those notices in build logs, which not all users notice.
And we add the caution notice in extension documentation, which not all users visit frequently.
Perhaps, adding a notification system for this is a great material for adding it in future BlueBuild Workshop?
Maybe we can implement RSS-to-email, to notify the users from the Blog.
However, we would need to visually differ news from feature-update changes & module notices, as they are not the same.
@xynydev What do you think?

I wrote a longer message here earlier, but forgot to send. Here’s the gist of it:

A notification system wont be coming any time soon
We might not have the resources for RSS-to-email, but there are free services that do similar things that users could leverage
We probably shouldn’t notify about every update but bundle the biggest ones up into one post newsletter-style like Bazzite Buzz
A lot of changes aren’t breaking changes or urgent, though of course users should be always notified of new module versions like default-flatpaks v2
Maybe an MOTD module with an optional “BlueBuild MOTD” option would be great, similar to ublue MOTDs it could show latest news like the link to the latest blog post and be styled based on if it has anything actionable for custom image maintainers..?


chore(validate/links): disable until bugs are fixed

Should add ability to skip certain URLs and allow certain errors in href-checker first.

Following failed because the "this version" link hasn't been uploaded but the validator checks it anyway:

And some 302/301 were also treated as error.


Decrypt 3

Decryption for sentences
Description:
Added commands to generate key according to the spaces in the cipher text
Closes #3

Hey, This pull request has not been reviewed yet.Could u look into it

Hey, This pull request has not been reviewed yet.Could u look into it

Hey. I'm so sorry for the delay. I will look into it ASAP.

Perfect!

!bounty 50


The bottom of text is cut off when it's set to size returned from "sizeToFit" or "sizeThatFitsAttributedString"

I found this issue in my project with auto layout (content hugging). Then I did a test here.
The code is simple:
`    UIFont *font = [UIFont systemFontOfSize:51];
NSMutableAttributedString * attrString = [[NSMutableAttributedString alloc] initWithString:@"The quick fox jumps."];
[attrString addAttributes:@{
                            NSFontAttributeName: font,
                            NSForegroundColorAttributeName: [UIColor blackColor],
                            } range:NSMakeRange(0, attrString.length)];

self.label = [[UILabel alloc] init];
self.label.attributedText = attrString;
self.label.backgroundColor = [UIColor colorWithWhite:0 alpha:0.1];
[self.label sizeToFit];
[self.view addSubview:self.label];

self.label2 = [[TTTAttributedLabel alloc] initWithFrame:CGRectZero];
self.label2.attributedText = attrString;
self.label2.backgroundColor = [UIColor colorWithWhite:0 alpha:0.1];
[self.label2 sizeToFit];
[self.view addSubview:self.label2];

self.label.center = CGPointMake(self.view.center.x, self.view.center.y - 50);
self.label2.center = CGPointMake(self.view.center.x, self.view.center.y + 50);

`
As shown in the picture, the bottom of the text is gone and the text is drawn with a strange offset (seems like descender from baseline). However, UILabel draws things well.

It is programmer error to assign to attributedText. From the readme:

TTTAttributedLabel can display both plain and attributed text: just pass an NSString or NSAttributedString to the setText: setter. Never assign to the attributedText property.

Can you retry by assigning to text? It's also unclear why you're setting a lineSpacing of -100.

@jhersh sorry the "-100" was my testing code and just removed from my description. :p
I did test the setText: method and it was also the same result.

Latest version without the bug is TTTAttributedLabel  1.8.1
All versions from 1.9.1 to 1.13.4 have the issue.

I use TTTAttributedLabel font size 30 and I have same problem

Issue was introduced with commit 7a086248af8190551d8c79bf50785f4ee125d0a0 from 11 03 2014. Description of the commit was:

Squashed commit of the following:
commit 76a68999ffa236ed10093ca7a6da10e2e8815beb
Author: Mattt Thompson<EMAIL_ADDRESS>Date: Tue Mar 11 04:19:24 2014 -0700
Refactoring so that default behavior sets minimum and maximum line height to font line height, to accomodate mixed Western / Asian scripts
Uncommenting calls to -setNeedsDisplay
commit 9f981f5419be5285e310de9fb40aa6e5bdc18643
Author: qdvictory<EMAIL_ADDRESS>Date: Fri Mar 7 12:04:57 2014 +0800
set:
self.attributedLabel.leading = -100;
self.attributedLabel.maximumLineHeight = f.lineHeight;
self.attributedLabel.minimumLineHeight = f.lineHeight;
commit fa1ca2220fd6332e77d99bcf15dc9640fe7b00ff
Author: qdvictory<EMAIL_ADDRESS>Date: Fri Mar 7 12:04:14 2014 +0800
add test Text
commit d1a3de8a202fcc5aac5d40e6ca7680f94ad22488
Author: qdvictory<EMAIL_ADDRESS>Date: Fri Mar 7 12:02:44 2014 +0800
If you want fix linespace bug when mix Chinese & English, set leading = -100 and maximumLineHeight = minimumLineHeight = font.lineHeight.
Make sure TTTLabel draw after Cell draw, and make sure setNeedsDisplay every time. Such as tableview reuse.
commit 6e5fc1dce65acd23aa036a35f6d4b3931513b69f
Author: qdvictory<EMAIL_ADDRESS>Date: Fri Mar 7 11:49:21 2014 +0800
Add property minimumLineHeight and maximumLineHeight.
Remove all setNeedDisplay. If you want update, do this manual.
Fix the bug when mix Chinese and English lineheight error. Now draw line
offset y as -(font.descender+line descent). It's offset from label baseline.
commit abf95e6d087e35263dd5a52f9554bc54deba37fc
Merge: 4046ef4 4626f63
Author: Mattt Thompson<EMAIL_ADDRESS>Date: Fri Feb 21 15:26:08 2014 -0800
Merge pull request #324 from ScottPetit/master
Updates TTTAttributedLabelVerticalAlignment to use NS_ENUM
commit 4626f63526d2c5b2245d34db8451aa7e268e20af
Author: Scott Petit<EMAIL_ADDRESS>Date: Fri Feb 21 06:58:04 2014 +0200

updates TTTAttributedLabelVerticalAlignment to use NS_ENUM, fixes warning when building to 64-Bit

Signed-off-by: Mattt Thompson<EMAIL_ADDRESS>
I'll now try to identify which line.

The string that was used to justify the commit was:

qdvictory: @门梁真可怕 当中英文Mix Chinese & English, Line Height has error.🐻🐻🐻🐻🐻🐻

It was later removed from tests with 7905eb3

@jhersh @catjia1011 @huynguyencong as TTTAttributedLabel has some serious issues like this one and many pending pull requests more than 6 month old, I would advice trying https://github.com/Krelborn/KILabel which is an active project without this issue.

Same issue when using autoresizing label with autolayout (when height for label is not specified) and with HelveticaNeue font and fontSize 15 or 16 pt:

Reproduces on the latest version and also on 1.8.1, 1.8.0, 1.7.0.

@KhomenokV, did you try removing or modifying guilty lines like https://github.com/TTTAttributedLabel/TTTAttributedLabel/commit/6e5fc1dce65acd23aa036a35f6d4b3931513b69f#commitcomment-17305527 ?

Ive checked it - unfortunately this doesnt fix the issue.

As for you it affects versions older or equal to 1.8.1, it's probably a different issue.

Set the same font size in storyboard (or NIB) and in NSFontAttributeName of NSMutableAttributedString, depends what you use in your project.


Just wanted to do some code style stuff... ended up in refactoring

Just wanted to do some code style stuff ... ended up in refactoring the whole sdk...
Sorry for those big changes at once, but in my opinion its really really necessary to bring the development of this api further.
Most stuff was simplifying relations and take care of the imports which were misused in some cases and for sure to use python in the python way.
Now we have clear relations and a clean pythonic code. The usage of the api didn't change at all BUT now you have to do the imports right. See tests/ or how-tos/. Also look at README.md
Since I finished it just now(its perfectly working, though), this should be only a preview. Just to let you know there is something going on and to get feedback from you.
Even those changes are massiv (but very healthy and important in my opinion), i ask you to consider it and give it a try.

v0.9.1 has just been released that supersedes a lot of the proposed changes.

Despite officially being in alpha mode, this library is being used as part of the casper-node formal test platform plus a few exchanges.  Therefore large PRs of this nature will be considered a risk.  Moving forward it is recommended that you submit a set of smaller tightly scoped PR's.  Each PR should have a single clear rationale.

In respect of CI/CD: integration tests are designed to work against a casper-node network spun up using the NCTL tool.

The library is being developed as and when I find the time.  As said it is alpha status and needs work primarily in the area of serialisation and chain state queries.   But the objective is to evolve it to a beta version in sync with the v1.4.0 release of casper-node.

We have differing opinions regarding code structure and style.  They are just that, opinions.

@momipsl if it was a community led project, this PR would have been merged. It seems as if you have your own personal motives which are not aligned with the Casper dev community.

@momipsl

We have differing opinions regarding code structure and style.  They are just that, opinions.
Its a shame your are talking about opinions! Real developers know that opinions dont count, only reasons. If you have good reasons to import the way you did, to make a structure like you did, follow no codestyle at all like you did, than document it and all is fine ... otherwise its bad code only, nothing more, at least when it comes to structure, style, oop principles an so on.

so lets talk about those reasons!!

The library is being developed as and when I find the time
One of the problem: no time and no python developer at all.

Number 2+3 are good reasons but dont explain why you want to wait for the big boom when the project is that big (and for sure not really readable, no professional will help you) that its hard to refactor stuff, but the day will come when its necessary and you will think back to this day.....

v0.9.1 has just been released that supersedes a lot of the proposed changes.
no changes at all in the usage of the api.
one import changed and that you have to do some import more explicit and correct. You you imported before, was pretty wrong (no opinion but python). You really should get into python, its not like java, javascript and so on..... your are missing a lot of python benefits because of your bad code style and structure.


Wrap all console.log to winston logger NestJS

Please tell us about your environment:

winston version?

[ ] winston@2
[x] winston@3

node -v outputs:
Operating System? (Windows, macOS, or Linux)
Language? (all | TypeScript X.X | ES6/7 | ES5 | Dart)

What is the problem?
I'm using NestJS.
I would like to override all console.XX to winston logger as global. Something like below but I don't know how to global it on NestJS
console.log = function() {
    logger.info.apply(logger, formatArgs(arguments));
};
console.info = function(){
    logger.info.apply(logger, formatArgs(arguments));
};
console.warn = function(){
    logger.warn.apply(logger, formatArgs(arguments));
};
console.error = function(){
    logger.error.apply(logger, formatArgs(arguments));
};
console.debug = function(){
    logger.debug.apply(logger, formatArgs(arguments));
};

What do you expect to happen instead?

Other information

@abinhho one way to achieve this is to override the NestJS default logger.
First, you have to create a logger service for your app, it must also implement the LoggerService interface from @nestjs/common.
Second, in it's constructor function, you can write something like this:
console.log = (message: any, params?: any) => {
	this.logger.debug(message, params);
};

of course, assuming that you've already defined and initialized this.logger
doing so will allow you to enable or disable your console.logs based on your desired loglevel

@AienTech It's worked. Thank you!


Replace ZodObject.keyof() with comprehensive z.keyof()

Expanded alternative to #1346.
This is a breaking change, which I introduced to revert the accidental breaking change described in #1292.
I have replaced the ZodObject.keyof() method with a z.keyof() helper function.  Unlike in #1346, this z.keyof() helper function works for any object-like schema, such as intersections of objects.  I think this is an improvement to ZodObject.keyof(), as it behaves more like TypeScript's keyof operator.
const schema = z.object({ a: z.string(), b: z.number() });
// BEFORE:
schema.keyof(); // ZodEnum<["a", "b"]>
// AFTER:
z.keyof(schema) // ZodEnum<["a", "b"]>
// ALSO WORKS AFTER:
const intersection = z.intersection(
  z.object({ a: z.string() }),
  z.object({ b: z.string() }),
)
z.keyof(intersection) // ZodEnum<["a", "b"]>

See the tests for all the supported cases.
I also added a test case for the problem described in #1292.  Removing ZodObject.keyof() is required to fix the assignability problem.
cc @ecyrbe.

cc @colinhacks


How to fork mainnet

I wanna run mainnet-fork.
But there is an error to fork mainnet.
The error is in dump command of the setup_validatory.py file.
for prog in programs:
    command = "solana program dump -u m \
        {} \
        programs/{}.so" \
        .format(prog, prog)
    os.system(command)
    local_validator_command += " --bpf-program {} programs/{}.so ".format(prog, prog)

But I can't find programs/9W959DqEETiGZocYWCQPaJ6sBmUzgfxXfqGeTEdp3aQP.so, programs/MERLuDFBMmsHnsBPZw2sDQZHvXFMwp8EdjudcU2HKky.so ... files.

create a programs folder inside mainnet-fork folder


⚠ SpeakUpConference.com has degraded performance

In 05f88d2, SpeakUpConference.com (https://www.speakupconference.com) experienced degraded performance:

HTTP code: 200
Response time: 15954 ms

Resolved: SpeakUpConference.com performance has improved in b21c676 after 11 minutes.


[Old version updated] Sync Stripe with Database Version 2

This source code demonstrates how to synchronize data from Stripe, a payment processing platform, with a local database using Prisma, an ORM (Object Relational Mapping) tool. The script performs several key operations, including fetching data from Stripe, mapping Stripe customers to local users, updating user information with Stripe customer IDs, and seeding the local database with Stripe products, prices, and subscriptions. Below is a detailed breakdown of the code, including its structure, functions, and purpose.
Overview

Prisma Setup: Initializes the Prisma client to interact with the database.
Stripe Setup: Creates a Stripe instance configured with an API version and secret key.
Synchronization Process: The sync asynchronous function orchestrates the entire synchronization process.
Error Handling: Catches and logs errors that occur during the synchronization process.
Data Fetching and Processing: Functions to fetch data from Stripe and process it for database insertion.
Database Operations: Functions to clean up, seed, and log statistics about the database after synchronization.

Detailed Documentation
Prisma Client Initialization
import { PrismaClient } from '@prisma/client';
const prisma = new PrismaClient();

Imports the PrismaClient from the @prisma/client package.
Initializes a new Prisma client instance for database operations.

Stripe Instance Creation
import Stripe from 'stripe';
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { apiVersion: '2023-10-16' });

Imports the Stripe module.
Creates a Stripe instance using the secret key stored in the environment variable STRIPE_SECRET_KEY and sets the API version to '2023-10-16'.

Synchronization Function (sync)
const sync = async () => {
  // Error handling and synchronization logic.
};

An asynchronous function that orchestrates the synchronization of data from Stripe to the local database.
Handles errors that might occur during the process and logs the success or failure of the operation.

Helper Functions

getStripeInstance: Ensures that the Stripe secret key is set and returns the Stripe instance.
fetchStripeData: Fetches active products, prices, subscriptions, and customers from Stripe.
mapUsersToCustomers: Maps local user records to Stripe customers based on email.
updateUsersWithStripeCustomerId: Updates local users with their corresponding Stripe customer IDs.
performDatabaseOperations: Orchestrates database operations including cleaning up old data and seeding with new data from Stripe.
cleanup, seedServices, seedPrices, seedSubscriptions: Helper functions to perform specific database seeding operations.
printStats: Logs the count of products, prices, and subscriptions synced to the database.

Error Handling
process.on('uncaughtException', (error) => {
  console.error('Uncaught Exception:', error);
  process.exit(1);
});

Listens for uncaught exceptions in the Node.js process.
Logs the error and exits the process with a status code of 1 to indicate failure.

Complete New Source Code
import { PrismaClient } from '@prisma/client';
import Stripe from 'stripe';

const prisma = new PrismaClient();

const sync = async () => {
  try {
    console.log('Starting sync with Stripe');
    const stripe = getStripeInstance();
    const { products, prices, subscriptions, customers } = await fetchStripeData(stripe);

    let users = await prisma.user.findMany();
    const userMap = mapUsersToCustomers(users, customers.data);

    users = await updateUsersWithStripeCustomerId(users, userMap, prisma);
    await performDatabaseOperations(prices, products, subscriptions, userMap, prisma);

    console.log('Sync completed successfully');
  } catch (error) {
    console.error('Error syncing with Stripe:', error);
    process.exit(1);
  }
};
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY, { apiVersion: '2023-10-16' });
const getStripeInstance = () => {
  if (!process.env.STRIPE_SECRET_KEY) {
    throw new Error('STRIPE_SECRET_KEY environment variable not set');
  }
  return stripe
};

const fetchStripeData = async (stripe) => {
  const [products, prices, subscriptions, customers] = await Promise.all([
    stripe.products.list({ active: true }),
    stripe.prices.list({ active: true }),
    stripe.subscriptions.list({ status: 'active' }),
    stripe.customers.list(),
  ]);

  return { products, prices, subscriptions, customers };
};

const mapUsersToCustomers = (users, customers) => {
  return users.reduce((map, user) => {
    const customer = customers.find(c => c.email === user.email);
    if (customer) map[customer.id] = user;
    return map;
  }, {});
};

const updateUsersWithStripeCustomerId = async (users, userMap, prisma) => {
  return Promise.all(users.map(user => {
    const customer = userMap[user.email];
    if (customer) {
      return prisma.user.update({
        where: { id: user.id },
        data: { stripeCustomerId: customer.id },
      });
    }
    return user;
  }));
};

const performDatabaseOperations = async (prices, products, subscriptions, userMap, prisma) => {
  await prisma.$transaction(cleanup(prisma));
  const services = await prisma.$transaction(seedServices(products.data, prisma));
  await prisma.$transaction(seedPrices(prices.data, prisma, services));
  await prisma.$transaction(seedSubscriptions(subscriptions.data, prisma, userMap));
  await printStats(prisma);
};

const cleanup = (prisma) => {
  return [
    prisma.price.deleteMany({}),
    prisma.service.deleteMany({}),
    prisma.subscription.deleteMany({}),
  ];
};

const seedServices = (products, prisma) => {
  return products.map(data =>
    prisma.service.create({
      data: {
        id: data.id,
        description: data.description || '',
        features: (data.features || []).map(a => a.name),
        image: data.images.length > 0 ? data.images[0] : '',
        name: data.name,
        created: new Date(data.created * 1000),
      },
    })
  );
};

const seedPrices = (prices, prisma, services) => {
  return prices.map(data => {
    const service = services.find(service => service.id === data.product);
    if (service) {
      return prisma.price.create({
        data: {
          id: data.id,
          billingScheme: data.billing_scheme,
          currency: data.currency,
          serviceId: service.id,
          amount: data.unit_amount ? data.unit_amount / 100 : undefined,
          metadata: data.recurring,
          type: data.type,
          created: new Date(data.created * 1000),
        },
      });
    }
  }).filter(Boolean);
};

const seedSubscriptions = (subscriptions, prisma, userMap) => {
  return subscriptions.map(data => {
    const user = userMap[data.customer];
    if (user) {
      return prisma.subscription.create({
        data: {
          id: data.id,
          customerId: data.customer,
          priceId: data.items.data[0].price.id,
          active: data.status === 'active',
          startDate: new Date(data.start_date * 1000),
          endDate: new Date(data.current_period_end * 1000),
          cancelAt: data.cancel_at ? new Date(data.cancel_at * 1000) : null,
          userId: user.id,
        },
      });
    }
  }).filter(Boolean);
};

const printStats = async (prisma) => {
  const [productCount, priceCount, subscriptionCount] = await Promise.all([
    prisma.service.count(),
    prisma.price.count(),
    prisma.subscription.count(),
  ]);

  console.log('Products synced:', productCount);
  console.log('Prices synced:', priceCount);
  console.log('Subscriptions synced:', subscriptionCount);
};

process.on('uncaughtException', (error) => {
  console.error('Uncaught Exception:', error);
  process.exit(1);
});

export default sync;

We have to update the Prisma Schema to make it work
The documentation comparison between the old and new source code focuses on the Prisma schema for a database application. This comparison highlights the structural changes made to the database schema and their implications.
Overview of Schema
Both versions of the source code define a database schema using Prisma, aimed at a PostgreSQL database. The schema includes definitions for various models such as Account, Session, VerificationToken, User, Team, TeamMember, Invitation, PasswordReset, ApiKey, Subscription, Service, and Price. These models are designed to manage user accounts, authentication sessions, user roles, team memberships, and service subscriptions.
Key Changes

Addition of stripeCustomerId in the User Model:

The new code introduces a stripeCustomerId field in the User model. This addition suggests an integration with Stripe to manage customer information for billing and subscriptions directly within the user records.

Association of Subscription with User:

In the new schema, the Subscription model explicitly includes a userId field along with a relation to the User model. This change solidifies the relationship between users and their subscriptions, allowing for direct queries of a user's subscriptions and vice versa.

Implications of the Changes

Stripe Integration:

By adding the stripeCustomerId to the User model, the application can now directly link Stripe customer records with application user records. This facilitates easier management of subscription billing and payments, enhancing the application's e-commerce capabilities.

Enhanced Subscription Management:

The direct linking of subscriptions to users through the userId field in the Subscription model simplifies the management of user subscriptions. It allows for easier tracking of which services a user is subscribed to, improving the application's ability to manage access to paid features or content.

Unchanged Aspects

The overall structure and the majority of the models (Account, Session, VerificationToken, Team, TeamMember, Invitation, PasswordReset, ApiKey, Service, and Price) remain unchanged. This indicates that the core functionality related to account management, session handling, and team collaboration remains stable.
The database configuration, including the use of PostgreSQL and the prisma-client-js client, remains consistent. This stability ensures that the changes are backward compatible and do not require alterations to the database setup or connection logic.

Conclusion
The modifications from the old to the new source code represent a focused enhancement of the application's user and subscription management capabilities, specifically through the integration of Stripe and a clearer association between users and their subscriptions. These changes are indicative of an application's evolution to incorporate more complex billing and subscription management features directly within its data model, improving overall functionality and user experience.
The Complete Source Prisma Schema
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "postgresql"
  url      = env("DATABASE_URL")
}

enum Role {
  ADMIN
  OWNER
  MEMBER
}

model Account {
  id                String  @id @default(uuid())
  userId            String
  type              String
  provider          String
  providerAccountId String
  refresh_token     String? @db.Text
  access_token      String? @db.Text
  expires_at        Int?
  token_type        String?
  scope             String?
  id_token          String? @db.Text
  session_state     String?

  user User @relation(fields: [userId], references: [id], onDelete: Cascade)

  @@unique([provider, providerAccountId])
}

model Session {
  id           String   @id @default(uuid())
  sessionToken String   @unique
  userId       String
  expires      DateTime
  user         User     @relation(fields: [userId], references: [id], onDelete: Cascade)
}

model VerificationToken {
  identifier String
  token      String   @unique
  expires    DateTime

  @@unique([identifier, token])
}

model User {
  id                     String    @id @default(uuid())
  name                   String
  email                  String    @unique
  emailVerified          DateTime?
  password               String?
  image                  String?
  createdAt              DateTime  @default(now())
  updatedAt              DateTime  @default(now())
  invalid_login_attempts Int       @default(0)
  lockedAt               DateTime?
  stripeCustomerId       String? // Ajoutez cette ligne

  teamMembers   TeamMember[]
  accounts      Account[]
  sessions      Session[]
  invitations   Invitation[]
  subscriptions Subscription[]
}

model Team {
  id              String       @id @default(uuid())
  name            String
  slug            String       @unique
  domain          String?      @unique
  defaultRole     Role         @default(MEMBER)
  billingId       String?
  billingProvider String?
  createdAt       DateTime     @default(now())
  updatedAt       DateTime     @default(now())
  members         TeamMember[]
  invitations     Invitation[]
  apiKeys         ApiKey[]
}

model TeamMember {
  id        String   @id @default(uuid())
  teamId    String
  userId    String
  role      Role     @default(MEMBER)
  createdAt DateTime @default(now())
  updatedAt DateTime @default(now())

  team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
  user User @relation(fields: [userId], references: [id], onDelete: Cascade)

  @@unique([teamId, userId])
  @@index([userId])
}

model Invitation {
  id             String   @id @default(uuid())
  teamId         String
  email          String?
  role           Role     @default(MEMBER)
  token          String   @unique
  expires        DateTime
  invitedBy      String
  createdAt      DateTime @default(now())
  updatedAt      DateTime @default(now())
  sentViaEmail   Boolean  @default(true)
  allowedDomains String[] @default([])

  user User @relation(fields: [invitedBy], references: [id], onDelete: Cascade)
  team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)

  @@unique([teamId, email])
}

model PasswordReset {
  id        Int      @id @default(autoincrement())
  email     String
  token     String   @unique
  createdAt DateTime @default(now())
  updatedAt DateTime @updatedAt
  expiresAt DateTime
}

model ApiKey {
  id         String    @id @default(uuid())
  name       String
  teamId     String
  hashedKey  String    @unique
  createdAt  DateTime  @default(now())
  updatedAt  DateTime  @default(now())
  expiresAt  DateTime?
  lastUsedAt DateTime?

  team Team @relation(fields: [teamId], references: [id], onDelete: Cascade)
}

model Subscription {
  id         String    @id
  customerId String
  priceId    String
  active     Boolean   @default(false)
  startDate  DateTime
  endDate    DateTime
  cancelAt   DateTime?
  createdAt  DateTime  @default(now())
  updatedAt  DateTime  @default(now())
  userId     String
  User       User?     @relation(fields: [userId], references: [id])

  @@index([customerId])
}

model Service {
  id          String   @id @default(uuid())
  description String
  features    String[]
  image       String
  name        String
  created     DateTime
  createdAt   DateTime @default(now())
  updatedAt   DateTime @default(now())
  Price       Price[]
}

model Price {
  id            String   @id @default(uuid())
  billingScheme String
  currency      String
  serviceId     String
  amount        Int?
  metadata      Json
  type          String
  created       DateTime

  service Service @relation(fields: [serviceId], references: [id], onDelete: Cascade)
}

Thank you @KazeroG
We will review and revert on your suggestions.

+1 much needed update

Any update on this?


chore(main): release 1.0.0

:robot: I have created a release beep boop
1.0.0 (2024-09-16)
Features

locale: add Locale class (a892591)

This PR was generated with Release Please. See documentation.

:robot: Created releases:

v1.0.0
:sunflower:


Camera not unmounting when navigating to next screen

We need to unmount camera when navigating to next screen.
Right now the camera is still running in the background.

Verified this issue on keeper app v 1.2.10(374)


Unhandled 'error' event

I have this error

my  version of yeoman is 1.8.5., npm 3.10.9 and node v4.4.4
you can help ?

Should be fixed in v0.2.0. Give it a try. Just released.


Write workplan for merging aerosol drafts

Compare aerosol-radiation and aerosol-ndrop drafts and figure out a work plan for a merged draft aerosol interface

work plan finalized and shared with Jordan: https://docs.google.com/document/d/1U-x8KMi1R1RX7p41LG662Dfe9K6R99Nd/edit?usp=sharing&ouid=104813722054232971190&rtpof=true&sd=true


Request to make dependencies looser

Hi,
Is there a particular reason to pin specific versions of the dependencies for this package?
    ...,
    install_requires=[
        'requests==2.25.1',
        'PyYAML==5.4.1'
    ],
    ...,

For us, it causes some dependency resolution issues, and it looks like you should be able to support older versions of these libraries (in our case the problem is with requests), as the latest release doesn't do anything but update the dependencies: https://github.com/ftpsolutions/python-third-party-license-file-generator/compare/2020.12.1...2021.4.23

@dave-v

Is there a particular reason to pin specific versions of the dependencies for this package?

Hmm- I think it was just because the automated thing recommended it:
#10 #2
I can change it to a >= for you; what version of requests will argue the least amount with the other dependencies in your environment?

That would be great, thanks :smile:.
We've both had conflicts with it being too high and too low. Most recently, it is because 2.26.0 is released and this package currently pins it at 2.25.1, which prevents us from upgrading, so I think >=2.25.1 would suit us fine. But I think the main thing is that it isn't a single pinned version, so we'd be OK with >= for any version you deem appropriate.

Any update on this request please?


Add switch to the Routes component to disable force update on location change.

This PR adds a switch to the Routes component to disable force update on location change. This is useful for cases where you bring your own router and don't need the Routes component to force an update with url changes.
Description
Adds a new default prop disableUpdateOnLocationChange: false
Changes/Tasks

[x] New default prop disableUpdateOnLocationChange: false

Motivation and Context
The Routes component causes the next page to mount twice when inside a Reach Router. This can lead to bugs when doing working in componentDidMount like logging analytics.
The router setup for reference
<Router>
  <Routes default />
</Router>

Types of changes

[ ] Refactoring/add tests (refactoring or adding test which isn't a fix or add a feature)
[x] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

[x] My change requires a change to the documentation.

[x] I have updated the documentation accordingly.

[ ] My changes have tests around them

I believe this is now solved from #1015.


STI associations

How would this work with STI associations that are not available on the parent?
class Road
end

class Expressway < Road
end

class Highway < Road
  has_many :bridges
end

@new_highway = @road.deep_clone include: :bridges

This is failing for any non-highway roads.
ActiveRecord::Base::DeepCloneable::AssociationNotFoundException: Expressway#bridges

Hmm, yeah that's not possible yet. Maybe there should be an option like :skip_missing_associations or something.. I'll try to come up with something tonight, should be easy to implement.

@moiristo Thanks for looking into it!

I just added support for the skip_missing_associations option in master. Could you check if it suits your needs? If everything is ok, I'll make a new release.

@moiristo Thanks! I'll take a look at this and let you know. I really appreciate it!

This worked great!


refactor: to crates and cleanup

Codecov Report

Merging #203 (7ce1e15) into master (ff83f97) will increase coverage by 0.09%.
The diff coverage is 4.76%.

@@            Coverage Diff            @@
##           master    #203      +/-   ##
=========================================
+ Coverage    0.09%   0.18%   +0.09%
=========================================
  Files          13      14       +1
  Lines        1079    1065      -14
=========================================
+ Hits            1       2       +1
+ Misses       1078    1063      -15

Impacted Files
Coverage Δ

crates/lsp/src/core/beancount_data.rs
0.00% <ø> (ø)

crates/lsp/src/core/document.rs
0.00% <ø> (ø)

crates/lsp/src/core/logger.rs
0.00% <ø> (ø)

crates/lsp/src/core/rope.rs
0.00% <ø> (ø)

crates/lsp/src/core/text_edit.rs
0.00% <ø> (ø)

crates/lsp/src/error.rs
0.00% <ø> (ø)

crates/lsp/src/handlers.rs
0.00% <0.00%> (ø)

crates/lsp/src/providers/completion.rs
0.00% <0.00%> (ø)

crates/lsp/src/providers/diagnostics.rs
0.00% <0.00%> (ø)

crates/lsp/src/providers/formatting.rs
0.00% <0.00%> (ø)

... and 4 more

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 ff83f97...7ce1e15. Read the comment docs.


Better error pages

Thanks for creating an issue! Please fill out this form so we can be sure to have all the information we need, and to minimize back and forth.

What are we trying to do?

Could use something a little snappier than the rails default

What feature or behavior is this required for?

How could we solve this issue? (Not knowing is okay!)

Anything else?

Mocks! https://www.figma.com/file/Zry1ECvlVlSylFFKc6AxVv/DCAF-2?node-id=203%3A752


AuthAPIClient class

This closes #69.

@alrocar (main recent commiter), @danicarrion (pyrestcli owner), @javitonino (Auth API watcher) could you CR this, please? Please troll my Python code as much as possible and let me know if you think that the approach is correct.

I just pushed a bunch of changes (all but @danicarrion 's "I'd rather go for a proper try/except block here to handle the case where res.json() doesn't have a result key" because I'm not sure about what he means, yet).

PS: when you make the ok to this, @danicarrion, let me know what I have to do to make the release available for pip, because I need it at CARTO Frames.

@danicarrion ready for last CR after try..except. Please let me know how to release this if this' ok :-)

Ok, I've opted for a tradeoff here. As setting up a secure test configuration is far beyond the scope of this, I've kept using "user1" user for public tests. The one that needs a master key will be skipped if the configuration is the default one. This way, it's skipped at CI but it passes locally if you set up an actual API Key. Of course, the user must have Auth API enabled and ready for Auth API to work. Tests are passing 👍

You need to be added as a maintainer in the carto pypi repo. It seems it only can be done by the owner (@danicarrion)
Once you have access, to release a new version:

[ ] Update the version number in setup.py and conf.py
[x] Update the NEWS.md accordingly
[ ] Create a release in Github
[ ] Create the dist package and upload it to pypi. See this or this (last times I couldn't be able to test in pypi test and I released directly to pypi)
[ ] Check that you can install the package locally from pypi and it works

Got 🇪🇸 by @danicarrion , merging and releasing as soon as tests pass.


Folder not updating when a file is moved/deleted

I noticed this while using Obsidian, but then tried it in Nautilus and found the same thing.
In Obsidian:  When I try to move a file from one folder to another, the file disappears from the source location but never shows up in the destination.  If I look in Nautilus, the file is still in the source location, with a hex code added to the filename in brackets.  ie.
20220610.md  ==> 20220610 (1945a57e).md
If I try to move the file within Nautilus, a second hex code is added.  This seems to have changed within the last couple of days for some reason.  Any suggestions where to start?  I tried looking for logs but didn't find anything ocaml-fuse specific... I may not be looking in the right place though so guidance is welcome.  I can add logs to this issue if any would be useful.
Ubuntu 22.04
Obsidian 0.4.15
google-drive-ocamlfuse 0.7.28-0ubuntu2

Updates:

It appears that if I reboot, the issue is resolved by the time I get to a desktop and open a Nautilus window.  So it appears like something isn't triggering google-drive-ocamlfuse to do the update when a change is made.
Existing files can be edited, saved, and re-opened without issue.  It's just moving/deleting that doesn't happen until a reboot.

I have the same issue on Ubuntu 20.04. Have you found any workaround? This bug is very frustrating

Attaching debug log and steps to reproduce, it seems to be related to images somehow, I cannot reproduce using a .txt file.
$ mv /drive/testdir/artwork/0025.png /drive/testdir/test123.png
$ ls /drive/testdir/test123.png
ls: cannot access '/drive/testdir/test123.png': No such file or directory
$ ls /drive/testdir/artwork/0025.png
ls: cannot access '/drive/testdir/artwork/0025.png': No such file or directory

debug.log

@jnordberg No, no solution found.  And since I can't work with this instability, i'm reverting to InSync until I can figure out another solution.

Thanks for reporting (and thanks @jnordberg for the logs)! Should be fixed in version 0.7.30 that I'm publishing now on the beta channel and on opam.


Load and predict

Hi, thanks for the great research and codebase, and sorry for the basic question but how would you recommend to load a trained model and predict on new texts for a given task?
Thanks

Hi,
For predicting on new texts, you can directly use our code (you can load a trained model by --model_name_or_path; there is a --no_train flag which allows you to only perform inference). You may need to modify the code at the end of run.py to save the predicted results.

Thanks!


ApiReview: Rename packages (again)

Http.Abstractions – HttpContext (abstract), referenced by middleware, Http, and applications
Http – DefaultHttpContext (implementation), referenced by Hosting (no change)
Http.Features – Feature interfaces & POCOs, referenced by Http and Servers
It might even make sense to merge the FeatureModel package into Http.Features.

Moving the FeatureModel work to its own bug: https://github.com/aspnet/HttpAbstractions/issues/297


[Bug]: AC500 + 2xB300S: all Battery Infos are "unknown", "DC Input 1" missing

What happened?
I just moved from Bluetti_MQTT Integration on a Raspberry PI to your integration. Thanks for all the effort.
I got all the infos from my AC500 except:

all battery infos are missing except  "Total Battery Percent".
"DC Input 1" is missing

With the  Bluetti_MQTT  0.11 I got the battery percent infos for both batteries and also for "DC Input 1" (for PV Input 1, additional to "DC Input" for complete PV Input).

Version
0.0.11
What device are you seeing the problem on?
AC500
What bluetooth connection are you using?
USB dongle
Have you changed the integration settings?
Yes (Please write down the changed settings in the next step)
Integration settings (if you changed them)
Use Controls changed to "Enabled" and Debug changed to "Enabled"

Relevant log output
This error originated from a custom integration.

Logger: custom_components.bluetti_bt.sensor
Source: custom_components/bluetti_bt/sensor.py:163
Integration: Bluetti BT (documentation, issues)
First occurred: 15:33:21 (6230 occurrences)
Last logged: 21:14:18

No data for available for (pack_voltage1)
No data for available for (pack_battery_percent1)
No data for available for (pack_status2)
No data for available for (pack_voltage2)
No data for available for (pack_battery_percent2)

To compare it I installed the Bluetti_MQTT 0.15 Version on my Raspberry PI and I get the Battery1+2 Percent+Voltage and the "DC Input 1 Power/Current/Voltage"

The main info about the missing battery information has been solved.
Therefore i close the bug.
But it would be great if you can add these 3 sensors which are available in the implementation of warhammerkid:
"DC Input Power 1"
"DC Input Voltage 1"
"DC Input Current 1
Thanks

@ItsMe00007 I looked at the bluetti_mqtt code but couldn't find "DC Input Power 1" in the AC500 config. Did you mean another powerstation? Or did you rename them?

@ItsMe00007 I looked at the bluetti_mqtt code but couldn't find "DC Input Power 1" in the AC500 config. Did you mean another powerstation? Or did you rename them?

No, I didn't rename it. All the Sensor names are original from the implementation.
But I also haven't found it in the origin AC500 config file, I guess that the ACxx Files only show what is different to others and the "DC Input Power 1" and "DC Input Voltage  1" are in a file which is common to more devices.
This is how it looks with bluetti_MQTT:

If I understand it correctly, it should be available as entity, but as "Internal DC Input Power"

I don't understand why this is renamed in the mqtt_client file, but it should already be there

BTW: I just discovered that "Internal Current Sensor 3" and "Internal Power Sensor 3" are also missing in your integration compared to the Bluetti_MQTT.

Those are already defined here:
https://github.com/Patrick762/hassio-bluetti-bt/blob/dc3aaf92e142302ca87a4c7c08184406b9992c55/custom_components/bluetti_bt/bluetti_bt_lib/devices/ac500.py#L24
If I have some time tomorrow I'll test the latest version on an AC300 (very similar)

If I understand it correctly, it should be available as entity, but as "Internal DC Input Power"

Ah ok, I'll check it tomorrow when the PV starts. The AC500 has got 2 PV Inputs and up to now only the PV1 DC Input was found by warrhammerkid.
But in the current Bluetti App it is now possible to click on the PV icon and it shows PV1 Power+Voltage as well PV2 Power+Voltage.
So I guess somebody will find the modbus register for the second PV Input.
The it makes sense to add a 1 to  the current "Internal DC Input Power" to be prepared for a "Internal DC Input ....  2"

Scaling Factor is still wrong for internal dc input:
Voltage: should be 90,1 instead of 901
Power: should be 300 instead of 30


Remove moot version property from bower.json

Per bower/bower.json-spec@a325da3

Considered bug, per spec, so merging


Use multi-line import for version

Hi there @Stevoisiak !  Thanks for sending this PR along. We don’t accept stylistic changes, unfortunately as this project has its own style guide that we haven’t had a chance to document.

@sigmavirus24 Should single-line imports over 100 characters be left alone as well?
https://github.com/requests/requests/blob/943a5c8e89db1758ae24adbbedacb3b05c32df4a/requests/compat.py#L58-L59

@Stevoisiak you can find the documentation on Kenneth Reitz’s code style [here]http://docs.python-requests.org/en/master/dev/contributing/#kenneth-reitz-s-code-style). We do allow lines over 100 and typically will not adjust the code base with linter changes unless there’s something significantly abnormal.


Create engity.is-cool.dev

Requirements

[x] You have completed your website.
[x] The website is reachable.
[x] The CNAME record doesn't contain https:// or /.
[x] There is sufficient information at the owner field.

Description

Myself
Link to Website

dog-water.x10.mx

CLA Assistant Lite bot: Thank you for your submission, we really appreciate it. Like many open-source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution. You can sign the CLA by just posting a Pull Request Comment same as the below format.

I have read the CLA Document and I hereby sign the CLA

You can retrigger this bot by commenting recheck in this Pull Request

Closed for inactivity.


5.x: add lpg_all_attributes output from inner vcn module

This PR resolves #864 and propose to output the inner oci-vcn lpg_all_attributes.

Hi @thpham, thanks for the PR!. This looks good to me, however 5.x has been merged; can we rebase on main?

Can you please this PR into:

Code change
Docs change
Other stuffs

This PR is too big and I cannot accept this.


Question: num_memory_tokens > 0 and return_mems = True

I'm investigating XL-recurrence while preserving num_memory_tokens > 0.
Looking at the code, it looks like mem is prepended to k and v AFTER memory tokens have been prepended. By memory tokens, I mean those added through num_memory_tokens > 0, NOT attn_num_mem_kv > 0.
The sequence going into attention is:
| mems | memory tokens | data |
Is this correct?
I would have thought the following would be more correct:
| memory tokens | mems | data |
Cheers

By the way, I still don't understand the difference between num_memory_tokens > 0 and attn_num_mem_kv > 0. I can see from the code they are added at different stages, the former early on, the latter in the attention layer specifically, and each attention layer gets its own mem_k and mem_v. However, fundamentally, I don't see the difference in what they are trying to achieve.

memory tokens can also query and representation evolves as it goes through the network. the keys and values change with the context
memory key / values are static

in my mind, they both the address some similar issues, but memory tokens are more powerful