[DISCUSS]MetadataCenter Design 5.x

MetadataCenter Design5.x is a part of Orchestration 5.x Design(#4515).
Metadata Center Design
The purpose of this document is to illustrate the metadata center design of the Apache ShardingSphere governance module.
[TOC]
1. Definition
The word 'metadata' in this article is the metadata of the data source used by Sharding-JDBC / Sharding-Proxy. These metadata are the core data objects to ensure the correct operations of each component of ShardingSphere. Currently, they are scattered in each part of the system. They should be reorganized and managed in a unified manner using a new component such like 'metadata center', and coordinate changes when metadatas changes.
2. Types
The current metadata object models are mainly defined in:

org.apache.shardingsphere.sql.parser.binder
├─column
│      ColumnMetaData.java
│      ColumnMetaDataLoader.java
├─index
│      IndexMetaData.java
│      IndexMetaDataLoader.java
├─schema
│      SchemaMetaData.java
│      SchemaMetaDataLoader.java
└─table
TableMetaData.java
TableMetaDataLoader.java
Hierarchical relationship is schema > table > column + index
At the same time, the scaling module also has a subset of models and loaders that need to be merged (#4866).

One issue to further discuss is:

Question 1: Should sharding rules and so on be put in the metadata center uniformly?
It is recommended to only process datasource metadatas right now, and rule datas should still be placed in config center. See if we want to adjust them later.

3. Current Metadata Loading
The unified entry for loading metadatas in：

org.apache.shardingsphere.sql.parser.binder.metadata.schema.SchemaMetaDataLoader

Metadatas are loaded in three places:
1、Sharding-JDBC
2、Sharding-Proxy

Bootstrap.startWithRegistryCenter->LogicSchemas.init/initSchemas->LogicSchemas.initSchemas(for)
->LogicSchemaFactory.newInstance->XXSchema->XXSchema.createMetaData/loadSchemaMetaData
->SchemaMetaDataLoader.load(dataSource, maxConnectionsSizePerQuery)

Each XXSchema class implements guava's @ Subscribe's renew method, which can execute the corresponding rules to refresh them(rules, not metadatas) when an event is received.
ShardingSchema and MasterSlaveSchema can additionally support the disableEvent to disable the data source. (This section have a lot codes those can be optimized.)
sharding table metadatas loading:

org.apache.shardingsphere.core.metadata.ShardingMetaDataLoader

Load the logic part and the default part separately, and then call SchemaMetaDataLoader to load according to the hierarchy.
3、Sharding-scaling
There are an independent TableMetaDataLoader/ColumnMetaDataLoader here, used to load its own TableMetaData/ColumnMetaData.
4. Metadata Usage
Route Module

If it is SelectStatementContext, where condition exists, it will participate in obtaining ShadingConditions
If it is DDLStatement, DCLStatement, it will get the table data from it.

Rewrite Module

Determine if the column exists in metadata.

EncryptPredicateParameterRewriter
EncryptPredicateColumnTokenGenerator
EncryptPredicateRightValueTokenGenerator

Execute Module

If it is the following types, it will refresh metaData.

if (sqlStatementContext instanceof CreateTableStatementContext) {
           refreshTableMetaData(runtimeContext, ((CreateTableStatementContext) sqlStatementContext).getSqlStatement());
       } else if (sqlStatementContext instanceof AlterTableStatementContext) {
           refreshTableMetaData(runtimeContext, ((AlterTableStatementContext) sqlStatementContext).getSqlStatement());
       } else if (sqlStatementContext instanceof DropTableStatementContext) {
           refreshTableMetaData(runtimeContext, ((DropTableStatementContext) sqlStatementContext).getSqlStatement());
       } else if (sqlStatementContext instanceof CreateIndexStatementContext) {
           refreshTableMetaData(runtimeContext, ((CreateIndexStatementContext) sqlStatementContext).getSqlStatement());
       } else if (sqlStatementContext instanceof DropIndexStatementContext) {
           refreshTableMetaData(runtimeContext, ((DropIndexStatementContext) sqlStatementContext).getSqlStatement());
       }

Merge Module

Not used, use SQL directly to return MetaData from ResultSet

5. Metadata Changes
Currently, metadatas are loaded and managed by each started sharding-JDBC or proxy node.
If a DDL is executed through one node, the following refresh method is directly called to refresh the metadata of the current node.
JDBC:

org.apache.shardingsphere.shardingjdbc.executor.AbstractStatementExecutor.refreshMetaDataIfNeeded

Proxy:

org.apache.shardingsphere.shardingproxy.backend.schema.impl.ShardingSchema.refreshTableMetaData

A tip: The codes in these two places are also heavily duplicated.
6. Metadata Center Design
From the above sections, we know that there are some points that need improvement:
Improvement 1:
If there are multiple nodes started at the same time, a large number of metadatas will be repeatedly loaded from the DB, and maybe lead to a performance issue.
Improvement 2:
Once a node executed a DDL, other nodes don't know that the metadatas had changed, and lead to a consistency issue.
We hope to solve these two problems via metadata center design.
6.1 Definition
The metadata center is a mechanism for unified loading of metadatas, change notifications, and data synchronization through the unified management of all metadatas.
6.2 Feature
It is planned to sort out the existing metadata loading and all usage scenarios, uniformly manage the metadata to be persisted to the CenterRepository since the metadatas are loaded for the first time, and subsequent nodes will start to obtain metadatas from the metadata center (Improvement 1). When a node performs a DDL operation, the node's metadatas is refreshed and synchronized to CenterRepository, and then all other nodes are notified to synchronize new datas from the metadata center (Improvement 2).
6.3 API
On the basis of clearing up, the existing metadata loading logic will be restructured, and some loader code will be migrated to the new metadata center module:

sharding-orchestration-center-metadata

And the following new API:：

MetadataCenter
MetadataLoader
MetadataNode
MetadataListener
MetadataChangeEvent

6.4 Data Structure
The current metadata memory structure is as follows:

There are two style available metadata structure configurations.
CenterRepository metadata structure configuration style one:

├─orchestration-namespace
├─orchestration-name
│  ├─metadata
│  │  ├─schema01
│  │  │  ├─table1
│  │  │  │  ├─columns
│  │  │  │  └─indexs
│  │  │  ├─table2
│  │  │  │  ├─columns
│  │  │  │  └─indexs
│  │  ├─schema02
│  │  │  ├─table3
│  │  │  │  ├─columns
│  │  │  │  └─indexs
│  │  │  ├─table4
│  │  │  │  ├─columns
│  │  │  │  └─indexs

CenterRepository metadata structure configuration style two:

├─orchestration-namespace
├─orchestration-name
│  ├─metadata
│  │  ├─schemas
│  │  │  ├─ [json/yaml text contents]

Style one: It is intuitive and fine-grained.
Style two: It is simpler and easier to manage.
(It is recommended to use style 2.)
One question:

Question 2: Will the logic table be displayed here?
I think the answer is no.
Only the actual real tables metadatas here, logic table is not a part of metadata.

6.5 Loading
Current loading process:

Load sharding tables first, then load default tables, and check whether the metadatas of all tables is consistent according to the check.metadata.enable parameter.

New loading process:

After loading metadata, write to CenterRepository, then trigger global notification.

Question 3: Are the metadatas of this step written to CenterRepository after each group or datasource is loaded, or after all metadatas loaded and written them once (related to triggering one or more events).
Consider to implement a full synchronizing at first, and then see if it can be persisted and notified in batches, based on loading speed.

6.6 Synchronization
After DDL is executed in one node, the metadatas of this node is refreshed through the Event mechanism(instead of local method calling),  synchronized to CenterRepository, and then a global change notification is triggered to other nodes.

Question 4: Do we need to hold the loading process of other nodes to prevent concurrency.
Do not consider concurrency at first, implement the load and notify function, and finally solve this problem, maybe involving distributed locks.

6.7 Notification
Through the Event mechanism, other nodes are notified and then update metadatas from CenterRepository.

7. Task list

[x] 7.1 metadata carding
[x] 7.2 metadata refactoring (code abstraction and cleanup)
[x] 7.3 Add center-metadata related project structure
[x] 7.4 Implementing metadata persistence
[ ] 7.5 Migrating some loader codes
[ ] 7.6 Implementing the event notification mechanism
[ ] 7.7 Implementing Global Synchronization
[ ] 7.8 Optimize loading and usage
[ ] 7.9 Improve Unittests
[ ] 7.10 Implementing examples
[ ] 7.11 Implementing documents

good issues

@kimmking Hi, I am interested in the metadata module, and I have a little experience about the metadata management, such as concurrent ddl, I will be honor to take part in it.

@kimmking Hi, I am interested in the metadata module, and I have a little experience about the metadata management, such as concurrent ddl, I will be honor to take part in it.

U r welcome.

I will split this issue to 3 phase:

add project structure and integrate center repository
add load and refresh methods, global notifications
revise docs and update unittests/examples

@ssxlulu @yu199195 @menghaoranss we will move on and each one can take a part of it.

Please assign me phase 2.

I can try phase 1, and maybe each phase needs to be split into sub issues also, we can complete them together.

I have done some tasks for Phase1&2 and merged into master now.
We can moving on to do 3&4.

Let's talk about/pick up tasks from https://github.com/apache/incubator-shardingsphere/issues/5128


Add Vertex/Pixel shader knobs + output 0.5 alpha for all PS

An alpha value of 0.5 is set to facilitate whether alpha blending is on or off.
The textures and samplers (Albedo, Normal and MetalR) will be added in an upcoming PR.

I'll let you rebase and review, but don't think there are any issues with this.

I rebased this PR and it is ready for review.


add support for tags to CreateWorkerParams

Description
Our API supports tagging scripts (primarily for Workers for Platforms, but they also work for non-WFP scripts), and cloudflare-go support for them has been requested.
Has your change been tested?
Yes, in the unit tests, but no against the API. It's still using the same endpoints it was before, so at least it won't have the same bug my last PR did :)
Types of changes
What sort of change does your code introduce/modify?

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

Checklist:

[✅] My code follows the code style of this project.
[✅] My change requires a change to the documentation.
[❌] I have updated the documentation accordingly.

I will ensure this field is documented in our API schema after opening the PR.

[✅] I have added tests to cover my changes.
[✅] All new and existing tests passed.
[❌, ✅] This change is using publicly documented in cloudflare/api-schemas
and relies on stable APIs.

Codecov Report

Merging #1368 (4863561) into master (b9ac804) will increase coverage by 0.24%.
Report is 132 commits behind head on master.
The diff coverage is 56.51%.

@@            Coverage Diff             @@
##           master    #1368      +/-   ##
==========================================
+ Coverage   48.33%   48.58%   +0.24%
==========================================
  Files         133      136       +3
  Lines       13023    13257     +234
==========================================
+ Hits         6295     6441     +146
- Misses       5201     5260      +59
- Partials     1527     1556      +29

Files Changed
Coverage Δ

access_application.go
72.72% <ø> (ø)

access_audit_log.go
79.31% <ø> (ø)

access_bookmark.go
72.44% <ø> (ø)

access_ca_certificate.go
68.00% <ø> (ø)

access_group.go
70.00% <ø> (ø)

access_identity_provider.go
66.32% <ø> (ø)

access_keys.go
71.42% <ø> (ø)

access_mutual_tls_certificates.go
68.86% <ø> (ø)

access_organization.go
53.84% <ø> (ø)

access_service_tokens.go
51.85% <ø> (ø)

... and 118 more

Finally got a chance to confirm this is documented, and it looks like it already was 🥳


Mitigated CodeQL logging security Alerts

This PR to fix CodeQL logging security alerts.
1- Centralize logging to use a common library under services
2- Adding Encoding methods to encode user input to prevent sql injection
3- Prevent Exposure of private information

@msalemcode there seems to be some conflicts, could you please resolve them?


Downsampling to save disk space with the use of continuous query

Hi,
I need to save disk space and i want to deal with downsampling to do the job.
I'd like to relocate measurement and tag set from the default Retention Policy to a new RP called "1month"
if I try to "copy" them with a CQ like the query below,  I get an error because my CQ doesn't have aggregation
Query :
CREATE RETENTION POLICY "1month" ON "snmpdb" DURATION 30d REPLICATION 1 SHARD DURATION 4h
CREATE CONTINUOUS QUERY "cq_60s" on "snmpdb" begin select * into "1month"."downsampled_snmpdb" from snmpdb group by time(60s), * end

Error :
ERR: error parsing query: GROUP BY requires at least one aggregate function

Maybe CG feature is not for that use...
Anyone has a similar use case?
Thx,

We try to reserve GitHub Issues for actionable bug reports or feature requests. Please send general questions to the<EMAIL_ADDRESS>mailing list.


Add VPN gateway action form

See old UI's add vpn gateway form. This may require a vpc to be setup, however, api validation is enough.

Fixed in #98


Refactor how max_loads is set for MemoryDataSets

This change allows the custom implementation of AbstractDataSets that
can set a limit on the number of times something can be loaded. For
example, a CachedDataSet might want to clear its cache after the data
has been loaded a certain number of times
Notice

[x] I acknowledge and agree that, by checking this box and clicking “Submit Pull Request”:

I submit this contribution under the Apache 2.0 license available here and represent that I am entitled to do so on behalf of myself, my employer, or relevant third parties, as applicable.

I certify that (a) this contribution is my original creation and / or (b) to the extent it is not my original creation, I am authorised to submit this contribution on behalf of the original creator(s) or their licensees.

I certify that this contribution does not violate the intellectual property rights of anyone else.

Motivation and Context
This change allows the custom implementation of AbstractDataSets that can set a limit on the number of times something can be loaded. For example, a CachedDataSet might want to clear its cache after the data has been loaded a certain number of times
As a result, I believe this change makes the code more extensible. To achieve the same effect now, one needs to create a custom Runner, which is probably too much work.
Possibly this needs to be deprecated in the future and moved to be a built-in functionality of datasets (like versioned).
How has this been tested?
Existing unit tests - no API breaking changes
Checklist

[x] Read the contributing guidelines
[x] Updated the documentation to reflect the code changes
[x] Added new entries to the RELEASE.md file
[x] Added tests to cover my changes
[x] Assigned myself to the PR
[x] Added Type label to the PR

This will help properly implement #4

By the way I have not put much though to this - open to alternative suggestions if you think this is something in the right direction

Removed and implemented @tolomea 's suggestion: the call to .set_max_loads() is (silently) ignored if the MemoryDataSet contains already data

Merged


Crash at Expression::execute when using watches

Expression::execute is getting called when there was a parse error causing the editor to crash.

I've misinterpreted the stacktrace from https://github.com/JavaryGames/godot/pull/1#issuecomment-551312489. Reading it again now, the cause of the crash seems to be a nullptr dereference at https://github.com/rxlecky/godot/blob/3ac33d0ea0ca8fd8acf6bc9f707f41b7a0d368c8/core/script_language.cpp#L503

@jahd2602 I added null checks to where this issue seems to be coming from. The crash shouldn't be happening anymore so I'm closing this now.
Could you be on a lookout for ERROR: Parameter is null. in your console so we can eventually fix wherever the nullptr is coming from?


Fix contrast limits

Add function to recompute contrast limits for zarr volume
Add default c limits to be used for empty limits
Compute limits on lowest pyramid level

Codecov Report

Merging #9 into master will decrease coverage by 4.09%.
The diff coverage is 10.00%.

@@            Coverage Diff             @@
##           master       #9      +/-   ##
==========================================
- Coverage   61.84%   57.75%   -4.10%
==========================================
  Files           5        5
  Lines         304      329      +25
==========================================
+ Hits          188      190       +2
- Misses        116      139      +23

Impacted Files
Coverage Δ

setup.py
0.00% <ø> (ø)

sentinel_to_zarr/sentinel_to_zarr.py
34.61% <10.00%> (-3.85%)
:arrow_down:

sentinel_to_zarr/napari_sentinel_to_zarr.py
95.45% <0.00%> (-0.05%)
:arrow_down:

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 99d8f69...855c129. Read the comment docs.


ACM-1947: Hide cluster claim name for hosted clusters and hub

Signed-off-by: Jonathan Marcantonio<EMAIL_ADDRESS>This PR is for hiding the Cluster Claim name row in the clusterOverview page when the cluster is a standalone cluster with no cluster pool or is a hosted control plane. This is for patching a missed part of https://github.com/stolostron/console/pull/2364, where the hosted cluster was still being shown.

As well removes the Cluster pool row when they are not from a cluster pool:

Addresses:

https://issues.redhat.com/browse/ACM-1947

/retest-required

/cc @KevinFCormier @dtthuynh

/hold

Superseded by #2450


Is it possible to build it for Android

It would be nice if we can try this out on Android. I followed instructions from https://github.com/ggerganov/ggml
I tried it and seems that we need to remove -march=native from CMakeLists.txt
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -march=native")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native")

However, after that I got an error
CANNOT LINK EXECUTABLE "/data/local/tmp/bin/vit": cannot locate symbol "__emutls_get_address" referenced by "/data/local/tmp/bin/vit"...

Hey @kirklandsign,
Did you set the NDK_ROOT_PATH variable either in the env or in the CMakeLists.txt :
set(CMAKE_ANDROID_NDK /path/to/android-ndk-r26b-linux) after downloading the NDK?

Thank you! It works now; however, I still made the following modification to make it build.
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -march=native")
-set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native")
+# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O3 -march=native")
+# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -march=native")

BTW on ggml, I also commented out Threads
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -159,7 +159,7 @@ endif()
 set(CMAKE_C_STANDARD   11)
 set(CMAKE_CXX_STANDARD 11)

-find_package(Threads REQUIRED)
+# find_package(Threads REQUIRED)

 # main

Hi @staghado  I used
cmake . -Bcmake-out -DCMAKE_TOOLCHAIN_FILE=$ANDROID_NDK/build/cmake/android.toolchain.cmake     -DANDROID_ABI=arm64-v8a
cmake --build cmake-out/

and then push the binary to the android phone


chunked reading of files

Currently reading files using emit_xarray from emit_tools.py reads into a nd.array backed xr.dataset. An option to read into a chunked dask.array backed xr.dataset would help prevent out-of-memory errors when reading on machines with limited memory (loading failed on an 8GB SMCE machine) and potentially speed up operations on downstream operations using dask.
Adding chunks='auto' to https://github.com/nasa/EMIT-Data-Resources/blob/6958963cfafeff32ef03d51e125e3c481988e8ba/python/modules/emit_tools.py#L56 works when ortho=False but not for ortho=True

I will look into this some more. When orthorectifying, the geometry lookup table (GLT) included in the location group is used to reshape the data array to fit the GLT dimensions. I think to do that on chunks would require modification of the GLT. My understanding is that chunking along the bands dimension would likely slow down operations focused on imaging spectroscopy since that would require more reads. Maybe @pgbrodrick has some insight?
At minimum we can at least add notes about memory requirements.

Yes, I tried fiddling with the orthorectification but could not get it to work with dask.arrays. In the version of emit_xarray I am working with in my project utils/emit_tools.py I specify an option to chunk that is only accepted if ortho=False.
I think this is worthwhile because the recommended workflow is to perform data manipulations and biophysical modelling on the unorthorectified data, and later orthorectify the variables produced downstream.  This works for me because the output variables will typically have far fewer variables than the image cube has bands (I go from 250ish bands to 4 endmembers). It then becomes much more feasible to load the data into memory before orthorectifying.
My guess is that this workflow is common enough to warrant accommodating it by specifying a chucking option if ortho=False


Update actions/checkout in GitHub Actions workflows to v3

Updates the actions/checkout action used in the GitHub Actions workflows to its newest major version.
Changes in actions/checkout:

v3.3.0

Implement branch list using callbacks from exec function
Add in explicit reference to private checkout options
Fix comment typos

v3.2.0

Add GitHub Action to perform release
Fix status badge
Replace datadog/squid with ubuntu/squid Docker image
Wrap pipeline commands for submoduleForeach in quotes
Update @actions/io to 1.1.2
Upgrading version to 3.2.0

v3.1.0

Use @actions/core saveState and getState
Add github-server-url input

v3.0.2

Add input set-safe-directory

v3.0.1

Fixed an issue where checkout failed to run in container jobs due to the new git setting safe.directory
Bumped various npm package versions

v3.0.0

Update to node 16

Still using v2 of actions/checkout will generate some warning like in this run: https://github.com/Neargye/nameof/actions/runs/3939378539

Node.js 12 actions are deprecated. Please update the following actions to use Node.js 16: actions/checkout@v2. For more information see: https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12/.

The PR will get rid of those warnings, because v3 uses Node.js 16.

Thanks!


Not getting App Update , Getting below code when debug the code.

We are getting below error when debug the apk:
'

Not Found'

Please follow the template when posting an issue. There is no way to reproduce your issue with these details.

Not Found

We are getting below error when debug the apk:
test.txt

Something is wrong with your configuration.
Have a look at the wiki for more info: UpdateFrom.XML or UpdateFrom.JSON.


Ft-connect-login

Coverage decreased (-0.1%) to 89.82% when pulling b9ceb483c7f2f148124330f4537b637a2d956d56 on ft-connectLogin into 0ccd225fee088b788476616af9c27041a713d4da on develop.


Thin websocket to UDP socket proxy to allow browsers to join the club

An idea for how we can allow browsers to be part of the network.

An open question is whether there is a viable way for a browser based node, which ideally is running in some form of a browser extension to execute long running background processes that aren't constantly put to sleep.  For the context of this issue, we'll assume this is possible

Why browser based clients are hard
The thing blocking browsers from easily joining the network is the lack of access to the UDP transport.
The initial idea for how we might be able to shim browsers in would be to use websockets or webrtc to do communication between browsers with some form of bridging to the outside world, however, this has two unfortunate things that probably make it non viable.  1: websockets and webrtc are both long-lived connections which is at odds with the network designs which are based around UDP datagrams.  It's likely that trying to do discv5 over websockets/webrtc incurs significant overhead in continuously establishing and disconnecting these connections.  2: the idea of bridging is fundamentally not easy to make compatible with the way the network functions, since the browser nodes would be somewhat partitioned off from the network and either they could only communicate with nodes that supported the bridge or we'd need some sort of relay system, both of which are complex solutions.
A simple solution
The proposed solution isn't pure peer-to-peer.
It should be relatively simple to write a piece of software that does the following:

Run a websocket server and listen for new incoming connections.
When a new incoming connection is established, open up an external facing UDP socket.
Bridge the websocket stream with the UDP socket, relaying packets between the two

+-----------+     +------------------------------+
|  Browser  |     |       Proxy Server Thing     |
+-----------+     +-----------+     +------------+
|           | --> |           | --> |            |
| websocket |     | websocket |     | UDP socket |
| (client)  | <-- | (server)  | <-- |            |
|           |     |           |     |            |
+-----------+     +-----------+-----+------------+

This proxy should be quite lightweight, likely being able to support many browsers from a single server.  The proxy should have the same visibility into the data you are sending as your ISP since all of the packed data will be encrypted.  Running this service "benevolently" on the scale of supporting millions of browsers connecting to it would likely cost well under $100k USD per year.

The proxy should also be quite easy to run which would allow self-hosted options for those who don't want to trust whoever is operating the service.

Think about this in the context of metamask.  If metamask is paying for infura, then the cost of running this proxy service should almost definitely be less than whatever they would need to pay infura for how much traffic they generate.  Under this model, a browser based wallet provider like metamask who "wants" to be less centralized could switch over to this model of embedded portal clients and save piles of :moneybag: money :moneybag: while also supporting the network.

here's a simple pseudo-code illustration of the concept
async def listen_websocket():
    websocket_server = ...

    with trio.open_nursery() as nursery:
        async for socket in websocket_server:
            nursery.start_soon(manage_websocket(socket))

async def manage_websocket(websocket):
    async with open_new_udp_socket() as udp_socket:
        with trio.open_nursery() as nursery:
            nursery.start_soon(feed_outbound_datagrams, websocket, udp_socket)
            nursery.start_soon(receive_inbound_datagrams, websocket, udp_socket)

async def feed_outbound_datagrams(websocket, udp_socket):
    while True:
        length_prefix = await websocket.read_exactly(4)
        payload_length = int.from_bytes(length_prefix, 'big')

        payload = await websocket.read_exactly(payload_length)
        datagram, (ip, port) = decode_payload(payload)

        await udp_socket.send_datagram((ip, port), datagram)

async def receive_inbound_datagrams(websocket, udp_socket):
    while True:
        datagram, (ip, port) = await udp_socket.recv()
        payload = encode_payload(datagram, ip, port)
        length = len(payload)
        length_prefix = length.to_bytes(4)
        await websocket.send_all(length_prefix + payload)

def encode_payload(datagram, ip_address, port):
    ...

def decode_payload(payload):
    ...

For future reference, here's the working prototype I built to address this question https://github.com/acolytec3/ultralight-proxy which can be paired with https://github.com/acolytec3/discv5-browser and then any other discv5 client. The browser client should be able to complete the discv5 handshake, visible in the logs

Just revisiting this topic as we approach something like a living testnet.  The current proxy seems to work reasonably well when run locally and is able to make outbound connections to portal network clients outside of my LAN but I haven't yet got a working version that exposes a public IP that's accessible for inbound connections (mainly due to lack of understanding of how all that stuff works and not having had the time yet to learn).  I built a very simple prototype of a webRTC proxy service that uses WakuV2 for the signaling piece but it would literally just be a replacement for the existing websocket server proxy where browser clients connect to the proxy via webRTC and then packets get routed to the rest of the portal network via UDP.  So, all it really does is replace a websocket proxy connection with a webRTC proxy connection and I don't know how valuable that is.

We could use webRTC to allow those p2p browser connections but then we're just opening long-lived connections between browser clients and I'm not sure if that's fruitful or not since it sort of goes against the main use for discv5.  I think we could extend the ENR encoding to encapsulate webRTC signaling data so nodes would know how to connect to each other via webRTC but they would still need a proxy to connect to the rest of the UDP based network.  Does it feel like this is a fruitful avenue for further research.  The current prototype isn't hooked into the Ultralight client yet and just implements the proxy piece of it so would need to do further experimentation to get browser to browser discv5 connections up and running.

which ideally is running in some form of a browser extension to execute long running background processes that aren't constantly put to sleep. For the context of this issue, we'll assume this is possible

For reference: Long-running background processes are no longer possible in Chrome extension as of Manifest v3. One of the explicit design goals of Manifest v3 was to prevent extensions from taking up background system resources. Overall, it reduces the privileges that extensions have to something close to what plain web pages get.


refactor: palette colors for native code

This PR resolves []
Some clean up of dup files in the xcodeproj, and removing the color hex strings from native code, and replacing them with usage from theme colors.
Description

QA Test Case(s)

Test Case
Feature
Environment
Acceptance Criteria
Setup Instructions/Link

PR Checklist

[ ] I tested my changes on iOS / Android.
[ ] I added screenshots or videos to illustrate my changes.
[ ] I added Tests and Stories for my changes.
[ ] I added an app state migration.
[ ] I hid my changes behind a feature flag.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

i need to update the screenshots for native

closing, more info here


Crush at Room 10D playing as Claire in Jill custome

Version
2.3.0 (5bbf478)
Seed
R720-FTC8-ZJNNA0QZLYLM0LRVGLF9ZZZZZZZZZZZZ0CZ
Scenario
RE 2 (Claire B)
What happened?
When I was entering from the library room, the game crashed at this room.

I am able to reproduce this. Can you please provide more information, for example what you were doing at the time or steps on how to get it to crash if you jump to the room from the start of the game.
A saved game can also help.

I am sorry I don't think I have a save data as I was able to bypass this
room by using the debug menu and using the generated log to see which room
it's connected to...
The game just kept on crashing whether I teleported there using the debug
menu or entering through either doors connected to this room.
All what I remember is that I was playing as Jill in claire b scenario.
Sorry if I can't provide more information.
By the way, Great mod!! I am really enjoying it! Thank you for your time
and effort you poured into it!
On Sat, Mar 11, 2023 at 8:01 PM Ted John @.***> wrote:

I am able to reproduce this. Can you please provide more information, for
example what you were doing at the time or steps on how to get it to crash
if you jump to the room from the start of the game.
A saved game can also help.
—
Reply to this email directly, view it on GitHub
https://github.com/IntelOrca/biorand/issues/274#issuecomment-1464966651,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5YNXOYCTTPMK5SNN3EQUUTW3S4XNANCNFSM6AAAAAAVXQ3ORY
.
You are receiving this because you authored the thread.Message ID:
@.***>

@HaithamGaafer maybe I am loading the wrong room. Which room were you in before you went through a door that crashed?

I went to 211 through the debug menu which 10D would lead me to. However, I
don't remember which room ..... might be the library I don't recall exactly
to be honest.
On Sun, Mar 12, 2023 at 1:49 PM Ted John @.***> wrote:

@HaithamGaafer https://github.com/HaithamGaafer maybe I am loading the
wrong room. Which room were you in before you went through a door that
crashed?
—
Reply to this email directly, view it on GitHub
https://github.com/IntelOrca/biorand/issues/274#issuecomment-1465173486,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/A5YNXOYCFGLNLJCGBDLSETLW3WZ5FANCNFSM6AAAAAAVXQ3ORY
.
You are receiving this because you were mentioned.Message ID:
@.***>


[SPMD] Introduction fusion with concat

What does this PR do?
This PR introduce the fusion implementation that use concat to aggregate gradient without a fixed/pre-allocated buffer. The implementation does not rely one make_fx() but simply use graph.call_function() to create nodes on-the-fly.
This PR also refactor the existing unittests.

went ahead and merged so we can push into FBCode for some perf numbers.


What tools do you use for designing remotely?

We are starting to think about creating a Tools guide for the site. We'd like to hear from you as we embark on this journey. What tools do you use on a regular basis for remote design collaboration and why?

Lately my "stack" has been:

A drawing app - Sketch, Figma, Hotgloo
A feedback tool - Invision, Redpen
A video conferencing tool - within Slack, Skype, Google Hangouts, Appear.in
A chat client - Slack, Rocketchat, IRC
A tool to show presentations - Google Slides
A tool to do card sorting - Google Slides , BoardThing
A tool to organize data - Google Sheets, AirTable
A text editor - Google Docs, Etherpad
A place to show code snippets - Codepen, Github gists
A place to track what I'm doing - Github, Jira, Trello, Pen and Paper

A drawing app - Sketch
A feedback tool - Invision
A video conferencing tool - within Slack, Skype, Google Hangouts, Appear.in
A chat client - Slack
A tool to show presentations - Google Slides
A tool to do card sorting - Google Slides, BoardThing
A tool to organize data - Google Sheets, AirTable
A text editor - Google Docs, Bear
A place to show code snippets - I don't code [yet]
A place to track what I'm doing - Github, Jira, Trello, Spreadsheet

drawing: figma, draw.io
video conferencing: jitsi
@pamela-drouin @iamjessklein: I'd be very interested in the card-sorting in google slides. Do you have some examples or even a how-to?


TCP Provider

A simple provider to connect to a TCP NMEA0183 source (most wifi multiplexers). CC @tkurki.

I spliced the settings into two files and to bash files. Regarding index.js: I had to debug something so I added and removed some whitespace here and there. Functionally nothing changed.

I was thinking about the same use case (tcp server not started but Signal K already up). Things get a also booted/loose power.
Have you looked at https://github.com/juliangruber/reconnect-core or https://github.com/foreverjs/nssocket for out of the box reconnection logic?
Primus apparently also has tcp available: "Now we are able to connect to a vanilla tcp server (Java?) and still keep all the neat abstractions (reconnect, heartbeat, etc) that Primus provides." https://www.npmjs.com/package/primus-tcp

@tkurki I actually missed your comments re the reconnect stuff, but it's quite trivial so I don't see the need to depend on something external for that. I've just pushed my latest changes; had some weird git problems so I might have to do something about that tomorrow.
It's not quite ready yet for merging -- I need to test with an actual TCP source as I had some issues with my (quick'n'dirty) TCP "simulator" (transmits a log file line-by-line in about 10 lines of code.. so not very solid). Mostly timeout issues, so I reckon connecting to an actual source might improve things. I'll do that this weekend on the boat.

I've been testing this on the boat last weekend, I don't have the timeouts with an actual TCP source but it could use some extra testing. @tkurki could you do some additional testing after I've cleaned up the code a bit (removed the testing code, integrated it in the setting file, etc)?

Should this be merged now?

@tkurki shall we merge this?


Make serial optional for asset

Make serial optional for Asset as many people may not record every serial for a cable or sfp. Many cables do not have serials.

OK, I think this will be possible without much changes. Extra care will be needed to check the code that syncs serial & asset_tag from Asset to Device, Module or Inventory Item when relation between them is established.


kubectl create service gives unhelpful error message

Rather than writing out an error message about some timeout it would be more helpful to give an informative error message about what went wrong e.g. what operation failed.
$ cluster/kubectl.sh create -f examples/guestbook-go/guestbook-service.json
current-context: "kubernetes-satnam_kubernetes"
Running: cluster/../cluster/gce/../../_output/dockerized/bin/linux/amd64/kubectl create -f examples/guestbook-go/guestbook-service.json

F0226 11:45:59.572817   22099 create.go:83] Timeout: request did not complete within allowed duration

@satnam6502 Are you able to overcome this issue? I am getting the same issue.

I've not seen this error message recently.


support items field

Adds very basic deployment support for items property. Mainly meant to be used by the kustomize handler.
In the future, we need to add support for getting resources created with List kind from K8s cluster.

have a mixed feeling towards this one as it feels like a meta resource that should be separated. but we can revisit later on.
Can you leave a TODO on the items property, so we know we want to look into it again?

Yeah I tend to agree. This doesn't add complete support for the items field and it's really meant to be used by the other resource types like Kustomize.
We can just not support it, imo. I'll add TODO


Access Response Header on Success

Is there any way to access the response headers (on success)?
The docs have this comment:
// Error handler: (data, status, headers, config)

In my callback I can access  the headers via response.headers as follows:
myCallback = function(response) {
  console.log(response.headers);
};


feat: Add span_preprocessor hook

allow net::http spans to be preprocessed before sending

In this case, we don't have a hook on this instrumentation at the moment, so I think the recommended approach would be to use an opentelemetry-collector processor. Would that be a viable path forward for you?

@ericmustin Thank you for this information.  With our current setup a processor is not viable.  Is there a way that I can help to add a hook to the HTTP client instrumentation?

@a1flecke We'd need to implement a hook, I don't believe we have an example of this for http client spans, but this example(from rack) would probably look a bit similar to whatever would need to be added to http client instrumentation https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/55f52c461d552bc5e97f9832751d3fa6853e9b03/instrumentation/rack/lib/opentelemetry/instrumentation/rack/middlewares/event_handler.rb#L162-L172
I can bring this up at the SIG mtg today and see if there's other ideas or a possible workaround.

@ericmustin I took a stab at adding a hook to the http client.  Please let me know what you think

@williamsbdev thanks for the quick turnaround here. Awesome stuff, the updates here you've included as definitely along the right path.  However, rather than an arbitrary span hook, ideally the callable would take specific fields/strings relevant to the request, and returns a string that is assigned explicitly as the span name. So for example it could take the method and path as arguments, or ideally any/all of the below
https://github.com/open-telemetry/opentelemetry-ruby-contrib/blob/55f52c461d552bc5e97f9832751d3fa6853e9b03/instrumentation/http/lib/opentelemetry/instrumentation/http/patches/client.rb#L18-L23
Basically the idea is we intentionally don't want to expose a hook that would allow arbitrary modification to the span, and we also don't want to expose a hook that would allow arbitrary modifications to the request object. However, we do want to permit a hook that accepts specific known arguments and returns a string that is explicitly set as the span name.
There's a bit of backstory here but tl;dr exposing arbitrary hooks pre/post processing hooks becomes a nightmare to maintain and debug and we don't want to support that at the moment.
I would use the rack example i've linked to above as a guide. if any @open-telemetry/ruby-contrib-approvers want to weigh in here on which request fields would be appropriate to pass in as arguments to this callable, please do so. i think for your use case just method + path is enough?

@ericmustin took another crack at it.  Current approach only allows the span name to be updated and restricts which attributes are sent to the callable

@a1flecke hey, appreciate the second attempt here. still a bit off from what i was hoping for, thats my fault i did a bad job of communicating. After thinking this through, what i think is acceptable according to the specification, and what has the least performance tradeoffs, is that the lambda shouldn't modify span name and shouldn't access the span attributes (it means acquiring a lock on the mutex every time we touch the span name or it's attributes, iirc, so we want to limit that especially on a hot path like http client spans). The least contentious lambda config option here is one that only accepts method and path as arguments, that seems to be what the specification allows and is also what the rack example does, and explicitly sets that as the span name at span creation time (rather than updating the span name).
i've pushed up a few changes to this branch that reflect this (my local env is a mess so bear with me as i work thru linting/test fails on CI), wdyt? does this help unblock y'all or is it too restrictive?
Also @a1flecke please sign the CLA when you have a moment.
Also @williamsbdev i hear you on the yolo approvals, your enthusiasm for this config option is duly noted.

@ericmustin  looks good.  I signed the CLA.  Thanks for the assist

@ericmustin @arielvalentin is there a way to retrigger the GH action status checks?  I believe they failed due to the GH incident that happened today: https://www.githubstatus.com/incidents/nf7s6933tnn8

@ericmustin @arielvalentin Thanks for all of your help on this.  This looks good to me.  Anything else to do before it is merged?

@arielvalentin is anything else needed?

@arielvalentin @ericmustin I just want to say thank you again for your help and quick feedback on this PR.  It was a pleasure to contribute to this project.

@arielvalentin @ericmustin can you provide guidance on how often this project releases?  I did not a clear pattern in the Github releases page.

@a1flecke I usually look to release after the weekly SIG on Tuesdays or on-demand depending on the severity. E.g. for bug fixes I open release requests as soon as I merge.

@arielvalentin Can you please create a release with this change?

nvm, I found it: https://github.com/open-telemetry/opentelemetry-ruby-contrib/releases/tag/opentelemetry-instrumentation-http%2Fv0.23.0
Thanks!


Split tool_database in system and user databases

Maybe it won't be necessary, because on OmniDB 2.0 there is a omnidb.py script which could handle the upgrade.
We will revisit this later.


feat: use trpc.useContext() to invalidate query instead router.resfresh()

Is your feature request related to a problem? Please describe.
Right now in the example we are using Next Router to hardly refresh a page to see updated results in the database.
src/app/_components/create-post.tsx
  const createPost = api.post.create.useMutation({
    onSuccess: () => {
      router.refresh();
      setName("");
    },
  });

Describe the solution you'd like to see
According to tRPC documentation we should be able to use something like this
src/app/_components/create-post.tsx
const utils = api.useContext();

  const createPost = api.post.create.useMutation({
    onSuccess: () => {
      utils.post.invalidate();
      setName("");
    },
  });

But right now it doesn't effect anything
Describe alternate solutions
According to this documentation it should be the way how we should deal with invalidation of queries https://trpc.io/docs/client/react/useContext#query-invalidation
Additional information
No response

invalidate doesn't work because it's a server component, there is nothing in tRPC's context to invalidate client-side.
route.refresh doesn't perform a hard refresh, it just re-fetches data and rerenders server components, see https://nextjs.org/docs/app/api-reference/functions/use-router#userouter

@c-ehrlich why it's a server component when create-post is marked with "use client" as a client-one?

@c-ehrlich but doesnt this refresh all queries on the current page?
And what if I have two concurrent mutations, it seems this usecase isnt supported by router.refresh?
And how do I show a loading screen for only the content that is being refreshed?
Is there a way to use the old style of client components and invalidation?

Client components work exactly as before. Server components are just an additional pattern that you can choose to use where it makes sense.

Client components work exactly as before. Server components are just an additional pattern that you can choose to use where it makes sense.

it seems that const ctx = api.useContext(); is flagged as deprecated. What is the new pattern for client side component invalidation?

https://trpc.io/docs/client/react/useUtils

@c-ehrlich
Would be nice if we can use https://nextjs.org/docs/app/api-reference/functions/unstable_cache
so that we can have a server-side equivalent of the revalidate utils, so that in the mutation we can do utils.some.query.revalidate() and it will translate to > revalidateTag(...)
Still annoying that you would have to revalidate client + server caches individually : (
Would be amazing if we have a unified way to clear any cache for a specific query.


Check file system watching support on Windows SMB

cc: @gradle/execution

SMB
Seems like we can't start a build from an SMB share:
PS Microsoft.PowerShell.Core\FileSystem::\\WINDOWS45\Users\vmadmin\Workspace\shared\native-platform> ./gradlew :test
'\\WINDOWS45\Users\vmadmin\Workspace\shared\native-platform'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported.  Defaulting to Windows directory.

FAILURE: Build failed with an exception.

* What went wrong:
Task 'test' not found in root project 'Windows'.

I tried mapping the share to a drive (S:), and then I got this error:
Error while receiving file changes
net.rubygrapefruit.platform.NativeException: Error received when handling events, error = 87: S:\native-platform
        at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.executeRunLoop0(Native Method)
        at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.access$100(AbstractFileEventFunctions.java:156)
        at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher$1.run(AbstractFileEventFunctions.java:169)

Windows error code 87 is ERROR_INVALID_PARAMETER:

ReadDirectoryChangesW fails with ERROR_INVALID_PARAMETER when the buffer length is greater than 64 KB and the application is monitoring a directory over the network. This is due to a packet size limitation with the underlying file sharing protocols.

https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-readdirectorychangesw
This is because we use a 128 kB buffer. We could decrease this to 64 kB, or make it configurable.

Seems like we have more problems with SMB drives. Even with a 16 kB buffer:
net.rubygrapefruit.platform.file.BasicFileEventFunctionsTest > can detect file created STANDARD_ERROR
    10:34:08.194  INFO    >>> Running 'can detect file created'
    10:34:08.209  INFO    > Creating ...\root\created.txt
    10:34:08.213  INFO    < Created ...\root\created.txt
    10:34:08.234  INFO    > Expecting CREATED ...\root\created.txt
    10:34:08.235  INFO    > Received CREATED S:\native-platform\build\test files\junit7612490621405826418\can detect file created\root\created.txt
    10:34:08.265  WARNING Watch point S:\native-platform\build\test files\junit7612490621405826418\can detect file created\root did not finish before termination timeout (status = 2)
    10:34:08.269  INFO    <<< Finished 'can detect file created'

The notifications seem to arrive properly, but the watch points stay in CANCELLED state, i.e. they don't receive the ERROR_OPERATION_ABORTED event during the SleepEx(0, true) call after the run loop has finished:
https://github.com/gradle/native-platform/blob/6a4a4d4f6fe6665993c400f0486fd7b7a1539728/src/file-events/cpp/win_fsnotifier.cpp#L320-L349

Looks like raising the timeout to SleepEx(1000, true) fixes the issue. We don't want to do this in general, though. We could add a configuration parameter for how long to wait on close() but it's not something that seems worth doing now.


"Prislopu Mic" is listed in the drop-down menu

Description:
"Prislopu Mic" is listed in the drop-down menu alongside its corresponding county and commune, according to the law
Precondition:
The website is up an running.

Step 1
Type "Prislopu Mic" in the search bar.

Expected results
The location is listed in the drop-down menu as "Prislopu Mic, Argeș (Bascov)".


【Request】 Support for  AVR microcontroller

I would like to use this library for AVR microcontroller like arduino Uno
Could you support it?

Sorry, but due to the memory limitations of the AVR platform, we can't consider this option.
Thanks.

Thank you for your reply!!


[BUG] Connector write/read opens multiple connections

Problem Description
It has been reported that the connector is creating multiple jdbc sessions. The connector should only create a constant number of JDBC connections on the driver node to prepare for read/write. The number of connections should not scale with executors created.

Environment

Spark version: N/A
Hadoop version: N/A
Vertica version: N/A
Vertica Spark Connector version: 3.2.1
Java version: N/A
Additional Environment Information: pyspark on Jupyter client

FYI, when testing the connections to Vertica you can run any of the following queries in vsql to monitor the number of open sessions (be aware the query itself will create 1 session):
$ docker exec -it docker_vertica_1 vsql
> SELECT COUNT(*) FROM v_monitor.sessions;
> SELECT session_id, user_name, current_statement, last_statement, statement_start FROM v_monitor.sessions;
> SELECT session_id, node_name, user_name, client_hostname, login_timestamp, statement_start, current_statement, last_statement, client_type, client_os FROM v_monitor.sessions ORDER BY user_name;


Attribute filters on all resources

RFC 7644 states in section 3.9:

For any SCIM operation where a resource representation is returned  (e.g., HTTP GET)
[...] Clients MAY request a partial resource representation on any operation that returns
a resource within the response by specifying either of the mutually exclusive URL query
parameters "attributes" or "excludedAttributes"

At the moment we only support attribute filtering for the search query. We need to at least support the attributes filtering for resources with GETon the Group and User resources.

@wallner I assume, that the last doing for this one, is to extend the API in the connector to filter for attributes. Is this right or has anything still to be implemented in the server?

The server is done and merged.

I've created an issue for the part in the connector: https://github.com/osiam/connector4java/issues/220

So this issue is done and gets closed.


Improved Event Title Visibility in Light Mode and Added Mailto Functionality for Email Links

#851
Description

I have successfully resolved the issue where clicking on the email,phone number and address now directs users to their default mail application.
Additionally, I addressed the text visibility problem in light mode by adjusting the contrast, ensuring the content remains clearly readable across different themes. You can see the improved functionality in the attached screenshot.
Screenshots / videos (if applicable)

Hey @sriharsha0x1, please sync your fork with the main branch and let me know once it’s done.

@mdazfar2
I have synced my fork. Please let me know if anything else is required. Thanks!

@sriharsha0x1, you need to update your main branch and create the Pull Request from the Footer branch. You must sync the fork of your Footer branch.
First, change the branch from main to footer and then click on "Update sync fork." Please see the screenshot below for better understanding.

Hope this time you understand please let me know if you updated sync fork in your footer branch.

Thanks for explaining! This was my first time encountering this issue as a beginner, but I managed to sync it. However, I'm not sure why the checks failed. Could you please help me with this? Thanks for your consideration!
@mdazfar2


Console: service definition of an upgraded service is not correct

What is the current behavior?

upgraded the  project
downloaded the project definition
did npm install -g graphcool@next (graphcool version shows graphcool/0.7.0 (darwin-x64) node-v8.7.0)
ran graphcool info

shows this:

Thanks a lot for reporting this @freder!
The reason is a recent change in the format for .graphcoolrc.
This is the format currently used in the downloaded zip folder:
default: prod
environments:
  prod: <some-id>

This is the new expected format:
targets:
  prod: shared-eu-west-1/<some-id>
  default: prod

here is what you need to use instead of shared-eu-west-1 depending on the region of your project:

So, until the format has been adjusted for the downloaded zip, you can manually adjust it 🙂

Also, a README.md file with instructions should be included in the zip file.

This is done and currently deploying to the production Console.
I added a README and the .graphcoolrc now contains the latest format.


Add support for other LLMs via a separate module?

Similar to memory.py

I haven't tried out the other LLMs. Will investigate

LLM support has been outsourced to ThinkGPT.


Removing spew from GetUpdate #trivial

Debug from yesteday was left in

          1 Message

:book:
mdspell or proselint not available - prose not linted

  Generated by :no_entry_sign: Danger

Codecov Report

Merging #499 into master will increase coverage by 0.02%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #499      +/-   ##
==========================================
+ Coverage   69.39%   69.41%   +0.02%
==========================================
  Files         196      196
  Lines       10683    10682       -1
==========================================
+ Hits         7413     7415       +2
+ Misses       2735     2732       -3
  Partials      535      535

Impacted Files
Coverage Δ

graph/actions.go
95.74% <ø> (-0.09%)
:arrow_down:

util/restful/putbackjson.go
62.5% <0%> (+1.38%)
:arrow_up:

lib/auto_resolver.go
89.39% <0%> (+1.51%)
:arrow_up:

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 728958e...9f15da5. Read the comment docs.


redis-semaphore is not a distributed semaphore

README says:

A distributed semaphore and mutex built on Redis.

This isn't true. Creating the "same" semaphore semaphore = Semaphore(Redis(), count=1, namespace='spam') in two different threads/processes does not result in with semaphore: ... having desired effect (both processes will execute the with block together).
It only works as intended when you create a global semaphore shared by two threads like in the example. Needless to say redis is not required to achieve the result redis-semaphore achieves.

suligap is right. This is not a distributed semaphore.
Everytime Init is called on this class, it resets the semaphore. It can only work between threads if created once. It is definitely not for multi-processes.
It could easily be changed to be distributed, and it seems like some of the code has been done to do it, but currently it is not

changing _init to _exists_or_init in __init__ might be sufficient to fix the problem.


Support for Self Signed SSL certificates

It would be great if you would factor the code found here:
http://stackoverflow.com/questions/24063927/swift-how-to-request-a-url-with-a-self-signed-certificate
Into your project as it would allow for the use of self-signed SSL certificates with your plug in.
This could would need to be added to the OAuthSwiftHTTPRequest.swift file and re-factored to change the "www.myhost.com" line to match the expected host.
Thanks

NSURLConnection is no more used replaced by NSURLSession with OAuthSwiftHTTPRequest as  NSURLSessionDelegate
In the two case there is more to do than stackoverflow code, many way to valid or not (always trust (bad), user/password credential, certificate), count failure, ...
Without an example of server I can't test or develop something
If this is necessarry a delegate parameters could be added to OAuthSwiftHTTPRequest to let framework user to custom the behaviours
Some code
https://github.com/search?l=swift&q=didReceiveChallenge+&type=Code&utf8=✓
https://gist.github.com/edwardmp/df8517aa9f1752e73353
func URLSession(session: NSURLSession, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: (NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void) {
// accept
    completionHandler(NSURLSessionAuthChallengeDisposition.UseCredential, NSURLCredential(forTrust: challenge.protectionSpace.serverTrust))
// or cancel
    completionHandler(NSURLSessionAuthChallengeDisposition.CancelAuthenticationChallenge, nil)

Was this (or a way to set my own delegate) ever implemented?
I am using my own id provider, so in the development environment it's a created SSL cert. So this is needed.

You can set your own url session delegate for all url session created by oauthswift
var sessionFactory: URLSessionFactory.default
sessionFactory.delegate = <your delegate>

And some framework methods use URLSessionFactory as parameter, for advanced use, and use another factory.

Thanks! I just found the SessionFactory struct and have been trying to figure out how to use it.
Xcode does not like the code you gave me, default can only appear in a switch statement. I cannot get it to run.
The convention for singleton naming in Swift seems to be shared:
public static var shared = URLSessionFactory()

I agree with naming bug with swift 3 you can use default
I edit the code, by replacing ; by =

Thanks for the quick response... I don't follow you? What would allow swift to use a variable named default?

Not forbidden keyword, go to the URLSessionFactory code and you will see
Just ass some magic quote and you can use default

Ok, I was able to access the session factory with var sessionFactory = URLSessionFactory.default. I have not been able to get a self-signed SSL cert to work, even with implementing a URLSessionDelegate. But I think we're gonna try to get a verified certificate for dev anyways as that's a better way to work and Apple will require it in the end.
Keep up the good work!


[automation] Update go release version 1.18.5

What
Bump go release version with the latest release.
Further details
See changelog for 1.18.5
Automatically generated from https://apm-ci.elastic.co/job/apm-shared/job/bump-go-release-version-pipeline/

:green_heart: Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS

Expand to view the summary

Build stats

Start Time: 2022-08-02T09:39:08.811+0000

Duration: 9 min 8 sec

Test stats :test_tube:

Test
Results

Failed
0

Passed
1078

Skipped
6

Total
1084

:robot: GitHub comments
To re-run your PR in the CI, just comment with:

/test : Re-trigger the build.


Linking with Authorize.net

Please let me know how can i use Authorize.net for Apple Pay using this plugin - cordova-plugin-applepay

You can use whichever payment processor you want @earth  - this plugin just exposes the payment token to your application, how you handle it is totally in your control.
You would need to consult Authorize.net's documentation, and if they provide a cordova plugin or similiar and support Apple Pay tokens, then you can integrate their token.
Most payment providers have some sort of SDK you can consume that will have a method that will accept an Apple Pay token for payment processing.
There are people who have forked this plugin and done the same thing using Stripe, so that would be a good reference material to look at.


Handle submodules without a .gitmodules entry - fix #1023

#1023

Thanks your PR! But we don't accept PR to master branch, please re-PR to dev branch :)

I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md
I will read CONTRIBUTING.md

:clap::clap::clap:


How to use highcharts-3d in  my react demo?

Hi : I have some problem when I use react-highcharts:
my code :
import React from 'react';
import ReactDOM from 'react-dom';
import ReactHighcharts from 'react-highcharts';
import 'highcharts-3d';
then I use it like highcharts:

charts show in 2D,not 3D?what should I do?could you please give some 3D demo?thanks~

Try importing it from 'highcharts/modules/higcharts-3d'

Hi,I do as you said :
import React from 'react';
import ReactDOM from 'react-dom';
import ReactHighcharts from 'react-highcharts';
import 'highcharts/modules/higcharts-3d';
but webpack throw a new error 'Module not found' ,I open my file 'node_modules/highcharts/modules' there is no file named highcharts-3d; however path  ' node_modules/highcharts-3d'  have file,it doesn't support for exports module you published link is https://www.npmjs.com/package/highcharts-3d
I  also try  to require('highcharts-3d') ;but also no work for me.
you really do a great job here ,could you give some suggestion to me ?thanks

I'm trying to make that work too.
when I use this:
const React = require('react');
const Highcharts = require('highcharts');
const ReactHighcharts = require('react-highcharts');

the resulting chart is always 2D.
Adding
require('highcharts/highcharts-3d');

or
require('highcharts/modules/highcharts-3d');

or using the real path to the highcharts-3d.js doesn't help.
@kirjs any suggestions?

I was finally able to render 3D chart by installing:
npm i -S highcharts-3d

and using:
const React = require('react');
const Highcharts = require('highcharts');
const ReactHighcharts = require('react-highcharts');
require('highcharts-3d')(ReactHighcharts.Highcharts);

Is this the correct way?

It's correct if it works

@FrantisekGazo would you mind explaining to me what exactly this last line is doing?
require('highcharts-3d')(ReactHighcharts.Highcharts);
I am using ES6 and I cannot figure out what the equivalent to this would be.
Also, this does not seem to be the best solution, because the npm package is 2 years old. It's likely to be outdated. Did you by any chance find another way to use the latest highcharts-3d?

In case someone else faces the same question, I read some more and ended up with
import Highcharts from 'highcharts';
import ReactHighcharts from 'react-highcharts';
import highcharts3d from 'highcharts/highcharts-3d'
highcharts3d(ReactHighcharts.Highcharts);

Which worked.

@claradaia Thanks! Also the first line is not necessary if you are using react-highcharts:
import Highcharts from 'highcharts';

@claradaia
import Highcharts from 'highcharts';
import highcharts3d from 'highcharts/highcharts-3d'
highcharts3d(Highcharts);
This worked for me too because I did not use 'react-highcharts'

@claradaia I tries following your approach but it is not working for me. Kindly help me through it.
`import React, { Component } from 'react';
import Highcharts from 'highcharts';
import ReactHighcharts from 'react-highcharts'
import highcharts3d from 'highcharts/highcharts-3d';
highcharts3d(Highcharts);
const options = {
chart: {
type: 'pie',
options3d: {
enabled: true,
alpha: 45,
beta: 0
},
width: 350,
},
title: {
text: ''
},
tooltip: {
pointFormat: '{series.name}: {point.percentage:.1f}%'
},
plotOptions: {
pie: {
allowPointSelect: true,
cursor: 'pointer',
depth: 35,
        dataLabels: {
            enabled: true,
            format: '{point.name}'
        }
    }
},
series: [{
    type: 'pie',
    name: 'Browser share',

    data: [
        ['Firefox', 45.0],
        ['IE', 26.8],
        {
            name: 'Chrome',
            y: 12.8,
            sliced: true,
            selected: true
        },
        ['Safari', 8.5],
        ['Opera', 6.2],
        ['Others', 0.7]
    ]
}]

};
export default class PiePendingStores extends Component {
render() {
return (

)
}
}
`

@johnsonsamuel  I used your approach too, but its not rendering 3D charts. Kindly help with it.

After long hit and trials, following @claradaia and @johnsonsamuel , this thing finally worked for me:
import HighchartsReact from 'highcharts-react-official'
import Highcharts from 'highcharts';
import highcharts3d from 'highcharts/highcharts-3d';
highcharts3d(Highcharts);

After long hit and trials, following @claradaia and @johnsonsamuel , the thing that finally worked for me:
import HighchartsReact from 'highcharts-react-official'
import Highcharts from 'highcharts';
import highcharts3d from 'highcharts/highcharts-3d';
highcharts3d(Highcharts);

Worked like a charm...... :)


Child windows snapping is disabled but is snaps anyway

Microsoft PowerToys version
v0.81.1
Installation method
PowerToys auto-update
Running as admin
No
Area(s) with issue?
FancyZones
Steps to reproduce
Option "Allow child window snapping" is disabled but child windows are snapping anyway, for example windows like Find in Excel, new email in Outlook, properties in SSMS, etc...
✔ Expected Behavior
child windows shouldnt be snapping
❌ Actual Behavior
child windows snaps
Other Software
No response

I am having the same issue in v.0.83.0
PowerToysReport_2024-08-09-12-48-08.zip

Same here v0.85.0


Document what is GraphQLJSONObject and what is GraphQLJSON

What are they? String or JS Object?

Is something missing in the formal descriptions of the types? Is the idea that you just want them in the README?

No, you didn't mention what they look like in the client side:
For example, GraphQLJSON is like this, but I'm still confused about what GraphQLJSONObject will look like in the client side.

I'm not sure what you mean. As the name suggests, it's a JSON object.

But as result, GraphQLJSON seems like JSON object, since I can pass { "a": true } to it.
Do you mean by using GraphQLJSONObject I can pass JSON string to it? like "{ \"a\": true }" to it?

No, it's the reverse. GraphQLJSON can take arbitrary JSON values. GraphQLJSONObject can only take objects. Something like 3 or "foo" are valid for the former, but not the latter.

Thank you for explanation.

Had the same doubt. Could definitely be documented on README ;)

Adding a blurb in https://github.com/taion/graphql-type-json/pull/159.

I was confused as well. @linonetwo thank you so much for posting photo of the example. It really explains a lot. It is not helping that Playground will actually report errors for the scalars so it is hard to even use the API that utilizes JSON object.

@taion the blurb
GraphQLJSON can represent any JSON-serializable value, including scalars, arrays, and objects. GraphQLJSONObject represents specifically JSON objects, which covers many practical use cases for JSON scalars.

Still isnt that helpful imho. i read that blurb and then i had to google what it actually means. I think that's because when somebody hears JSON, it automatically equates to a JSON Object. Reading from this thread though, this is my understanding
Given
{
   "name": "John Doe",
   "age": 37,
    "dummy": true,
    "dummyValues": [1,2,3]
}

That whole object can be represented as GraphQLJSONObject or GraphQLJSON, while the "John Doe", 37, true, and [1,2,3] are GraphQLJSON ...did I get that right?

Yes, that's correct. This is just following the terminology at https://www.json.org/json-en.html.

I still don't get it after reading this thread.

if you have a field that would be outputted as stringified JSON, you would use GraphQLJSON?
if an object, use GraphQLJSONObject?

GraphQLJSON can represent any JSON-serializable value, including scalars, arrays, and objects. GraphQLJSONObject represents specifically JSON objects, which covers many practical use cases for JSON scalars.

https://github.com/taion/graphql-type-json/blob/master/README.md

I ran into this same question a few weeks ago, when trying to figure out whether this would be a suitable replacement for AWS AppSync's AWSJSON scalar. It's brutally simple and redundant, but for posterity, would you mind verifying the understanding below is accurate?
GraphQLJSONObject
Schema:
scalar GraphQLJSONObject
addThought(thought: GraphQLJSONObject: ...

Usage:
Any JSON stingifiable object.
Incorrect:
addThought({thought: 3});
addThought({thought: "squirrel"});
addThought({thought: () => 3});
addThought({thought: "{ \"animal\": \"dog\" }");

Correct:
addThought({thought: { animal: "dog" });

Resolution:
Value matches provided value.
{ animal: "dog" } resolves to { animal: "dog" }
GraphQLJSON
Schema:
scalar GraphQLJSON
addThought(thought: GraphQLJSON: ...

Client:
Any JSON stingifiable value.


cleos set contract and create account error Unexpected char '60' in “”

Two weeks ago I tried to use cleos subcommands and everything worked fine. I could set contract to the accounts I created using my own smart contract code. Now whenever I tried set contract or create account, it kept giving this error. I tried changing the config files and rebuilding eos but the program still doesn't seem to work. What can I do here?
p.s. I already read #3782 , only wallet list works but nothing else.

Same problem here with char '70'
Failed with error: Parse Error (4)
Unexpected char '70' in "Found."

I rebuilt cleos and keosd and killed existing programs on local network then reran nodeos on 8888 and keosd on 8900 and everything seems to work fine now. Also, does the print function from eosio namespace not print to console anymore?

Great. To enable it you need to set contracts-console = true in your config.ini. :)


bitpanda.com is missing

I`m missing the exchange "bitpanda.com"
API
https://api.exchange.bitpanda.com/public/v1
Web Socket
wss://streams.exchange.bitpanda.com

Feel free to open a PR

Feel free to open a PR

I`m missing the exchange "bitpanda.com"
API
https://api.exchange.bitpanda.com/public/v1
Web Socket
wss://streams.exchange.bitpanda.com

best would be to ask Bitpanda themselfs to implement it.

I`m missing the exchange "bitpanda.com"
API
https://api.exchange.bitpanda.com/public/v1
Web Socket
wss://streams.exchange.bitpanda.com

best would be to ask Bitpanda themselfs to implement it.

Probably we will work on a Bitpanda implementation by week 10 / 2021.
We need Bitpanda for our new TradeManager prototype. It would directly execute reliable bots from other platforms, e.g. strategies from JForex or MT4/5 EAs and will connect many exchanges. Is there anyone who is also interested and wants to help us with the Bitpanda adapter?
https://www.stash.de

If you offer a bounty, it's more likely someone will want to help you with the implementation! :)

Any update in this issue?


Meridian Flip Cause Error in edit image message

Reason:

Before flip, x images are take and stat image is plot
Meridian flip will trigger accurate pointing procedure
Short exposure is taken but not added to exposure info list
New stat update procedure is triggered, but data is identical with pre-flip data
'Edit image message' throws error

Fixed with 81e9fb5


Javascript refactor

Summary Change Description
When I implemented the FCirc re-pagination issue, I realized that the code could be better encapsulated and streamlined to make it easier to follow, understand, and modify.
This refactor makes some very slight interface modifications, but effectively is no different to users.  The one thing that is different is that the previous/last checkboxes on the FCirc results page now result in a full form row to be rendered before form submission.  Before, it was only adding the fld and ncmp select lists, along with the various val widgets and other hidden fields.  It wasn't adding the buttons: -, +, and ++.  Now that that's all encapsulated in a single function that creates the row, those buttons are added.
The creation of groups isn't as encapsulated as I'd like because the + and ++ buttons have to be added after the group's contents are added, and in the case of the previous/last FCirc results, it doesn't bother to add those controls to the original root group.  The root group should not have those controls, but since that group is moved down the hierarchy, ideally, it should acquire them, but since the form is auto-submitted and those buttons are added in the subsequent result load, it makes no difference.  It only illustrates that the addition of those buttons is not fully encapsulated.
Affected Issue Numbers

Resolves no issue

Code Review Notes
Only the 1 javascript file was edited and much of the code has changed, so I would recommend looking at the changed file without the diff.  And since there were so many changes, it would be good to have some extra manual testing of the interface by checking out the branch and running runserver.
Many high level functions are now simpler, such as initializeRootSearchQuery and its helper.  I also added some functions to capture everything that goes into creating a search form for a database field and a group of those fields:

createGroupSelectListDiv
createSearchFieldFormDiv

I didn't make everything perfect, but I think it's a step in the right direction toward maintainability.  More of the code should be easier to follow now than before.
I'm relying on github's ci to run the tests since my laptop take 10 times as long to run them...  I'll request reviews once they pass.
Checklist

[x] All issue requirements satisfied (or no linked issues)
[x] Linting passes.
[x] Migrations created & committed (or no model changes)
Tests

[ ] Tests implemented (or no code changes)
[x] All multi_working tag tests pass locally
[x] All example load tests pass (remotely) (or their failures predated and are unrelated to this branch)
[x] @tag("multi_working") added to newly passing test functions/classes (or no newly passing tests)
[x] @tag("multi_broken"), @tag("multi_unknown"), or @tag("multi_mixed") removed from newly passing test functions/classes (or no newly passing tests)

I tried to add comments to aid the review.  It looks like a lot, but it's not really if you know what is going on.

I restructured a couple of recursive methods (see my in-line comments) to make them more efficient and readable.
These 2 changes really streamlined appendInnerSearchQuery:

addGroupSelectList had repetitive code surrounding each call, so I encapsulated that all in a method called createGroupSelectListDiv
addSearchFieldForm was similarly encapsulated inside createSearchFieldFormDiv

Added/corrected jsdoc everywhere
Some variables & functions were renamed
Removed the parameter to getSelectedFormat by adding an ID to the select list element and retrieving the value that way


added SearchView Support

Support for androids SearchView with handling the query

@keineantwort please refuse code style changes in Project.xml and we can merge the changes. Thanks!


➕ add httpx dev dependency

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

Current dependencies on/for this PR:

#89
#88  👈
#87
#86
#85
main

This stack of pull requests is managed by Graphite.

Merge activity

Feb 24, 9:32 AM EST: @mingi3314 started a stack merge that includes this pull request via Graphite.


Replace AVRO Enums with Strings?

Making changes to an AVRO Schema is more cumbersome than simply storing the possible String choices in a Kafka topic.  However, without a Validation Gateway the constraint is not enforced.  We may ultimately have a  validation gateway, and even if not, a casual enforcement (at the application level) may be sufficient.   One big advantage of storing choices in Kafka topics is admins could use the admin GUI to add/remove options at runtime easily.  The fields that have options include:

Location
Priority
Category

The trade off here may be analogous to a rational database DDL "in" Check Constraint vs Foreign Key Constraint.

Using Strings stored in a Kakfa topic instead of an AVRO Enum also side-steps the naming limitations of enums:
https://github.com/JeffersonLab/jaws/wiki/AVRO-Schema-Peculiarities#naming-limitations

Resolving locations to facilities could be accomplished by storing locations as records with two fields:  a location name plus a facility name.  Alternatively, a facilities topic keyed by facility name could contain an array value of locations.   It may be possible to allow recursive declaration to allow arbitrary nesting / granularity (though applications should probably have recursion limit checks to avoid infinite recursion).   In this case the facility name may be referred to more generically as "parent location".

Left Priority as AVRO Enum for now.


Add link to ACME DNS01 webhook for PowerDNS

Adds a link to a cert-manager webhook for PowerDNS (https://github.com/zachomedia/cert-manager-webhook-pdns).

Closing this in favour of #1185 which I've raised to fix the merge conflict. I cherry-picked to preserve your authorship on the commit - thanks for the contribution @zachomedia !


CQ-4309697 - Add OOTB themes to AEM Project Archetype

Addition of new ootb AEM Forms themes
Description
Adding the following themes.
Tranquil
Urbane
Beryl
Ultramarine
Related Issue

Motivation and Context
Providing more ootb themes
How Has This Been Tested?
Manual testing by creating archetype project locally
Screenshots (if appropriate):
Types of changes

[ ] 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 change)

Checklist:

[ ] I have signed the Adobe Open Source CLA.
[ ] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[ ] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes.
[ ] All new and existing tests passed.

@sakshi-arora1, @rismehta  please review this. I am manually testing this, will push changes further for any issues found. Please focus on reviewing theme content nodes, clientlibs under /apps. Fonts has been picked as is from the internal repo.

Clientlibs like:
 ...in/content/jcr_root/apps/__appId__/clientlibs/clientlibs-forms/urbane-style
oot/apps/__appId__/clientlibs/clientlibs-forms/us-web-design-standards-style/
...ntent/jcr_root/apps/__appId__/clientlibs/clientlibs-forms/ultramarine-style/

should be clubbed under one like clientlibs-forms/theme_base/...
Also can you see we are only checking in those fonts which are actually being utilised in the added themes.
I have just reviewed the structure of the added files, not the content...

@sakshi-arora1 , this has been fixed.

@sakshi-arora1 , @rismehta please re-review this PR. The following changes have been done.

Theme base client lib restructured
Fonts usage checked, only used font-families included. Restructured the fonts client lib, now fonts are residing under resources folder.
Few theme specific style issues fixed

Recent Changes.

Only Source Sans Pro fonts being used. Removed Open Sans fonts.
Radio button and checkbox Item large label going off screen issue fixed for all themes.

@sakshi-arora1 , please re-review this pr for ootb theme content. For Testing these themes another PR will be raised.soon.

Structurally its correct. Approving it.
cc: @pankaj-parashar

Test cases for these changes are tracked separately via, https://github.com/adobe/aem-project-archetype/pull/802/files. Merging this.


Table ZTOP_DVE_CUST should be editable in non-dev system

The table ZTOP_DVE_CUST should be modifiable in each system without transport request from development system.

@gepparta I was not able to test it yet because our github connection seems to be broken.

Editing the table does not require a transport request now. Thank you.


Update Python version

Why is this change needed?

CIが落ちていたのを修正

What did you implement?

Python 3.6がEOLのため、3.6をやめて3.11を導入
nimとJuliaがインストールできなくなっていたのを修正
テストを修正
3.10以降だとnoseが動かないので、pynoseで代替

poetryのdev dependenciesの記述が旧形式のため、poetry.lockはいったん手作業で更新

What behavior do you expect?

CIが通ること

Codecov Report

Merging #271 (1781256) into stable (acd3835) will decrease coverage by 0.03%.
Report is 2 commits behind head on stable.
The diff coverage is 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
@@            Coverage Diff             @@
##           stable     #271      +/-   ##
==========================================
- Coverage   90.52%   90.50%   -0.03%
==========================================
  Files          64       64
  Lines        2764     2758       -6
==========================================
- Hits         2502     2496       -6
  Misses        262      262

Files Changed
Coverage Δ

atcodertools/release_management/version.py
100.00% <100.00%> (ø)

... and 4 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

@kyuridenamida よろしくお願いします

ありがとうございます。確認します。


Wrong title and description of dc_emoji_from_id(id)

The title is dc_emoji_from_id(id), but when used in a script, it says that it requires 2 arguments. The first has to be a Server value.
But using this:
dc_emoji_from_id(dc_server_from_id('771811559256621086'), ':dice2:')
it returns null even if the custom emoji exists on that server.
P.S. Can you post an example using this function?

Oh yes, docs are wrong. Tho, the ID of an emojis is not the name, but a number like server or channel ids, but there is nowhere to get those in discord afaik. So now the function will return a list of emojis with that name if there is none with that id (normally thats only one element in the list, exept if there are multiple emojis with the same name)
here's an example:
__on_discord_message(message) -> (
    emoji = dc_emoji_from_id(message~'server','customemoji'):0;
    dc_send_message(message~'channel','Custom emoji: ' + emoji~'mention_tag');
);

Fixed with ea2d4741de464b3e648bfae7bb6fac9989860811 and 24f339df0c7615be515126301575d1d9fffd66e9

Is in version 1.4.21 now

You can get the Emoji ID manually writing \:emoji_name: in one of server channels that has custom emojis.
Example: \:dice1: writes <:dice1:790336156621340692> in the channel; The ID of empji is<PHONE_NUMBER>21340692.
So you can get the Emoji value -> dc_emoji_from_id(dc_server_from_id('771811559256621086'),'790336156755165255')

Ah yeah that would be a way
Getting it by name should be much easier though


Update renovatebot/github-action action to 34.37.0

This PR contains the following updates:

Package
Type
Update
Change

renovatebot/github-action
action
minor
v34.34.0 -> v34.37.0

Release Notes

renovatebot/github-action
v34.37.0
Compare Source
See the the changelog for changes in all releases.
34.37.0 (2022-11-26)
Bug Fixes

deps: update renovate/renovate docker tag to v34.37.0 (826646b)

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@balena-ci I self-certify!


Config file

Currently, there is no configuration file specifying the node config from which to initialize the node on program start. Creating a Config.hs and reading from config with configurator or something.
Initially this could be as simple as a json config file to read params like rpcPort, keysDir, etc.

Added this https://github.com/tdietert/nanocoin/pull/22
Very basic. Just replacing the default settings but letting the command line take precedence as before

Updated with logging in https://github.com/tdietert/nanocoin/pull/27

closing because of PR #35


Syncing Issues Between Sagittal, Coronal, and Axial Views

I want four different multiplanner views but with few UI changes So I have used four  grid for four view now the problem is
Sagittal View Syncing Issue:
When crosshair moves of sagittal view is not syncing properly with coronal and but synching with axial views .
Axial View Syncing Issue:
Conversely, the axial view is not syncing as expected with both sagittal and coronal views on cosshair move.
but on crosshair move  of coronal view both sagittal and coronal are synching properly.
Could you please look into this matter and provide us with guidance on resolving these syncing discrepancies? If there are any updates, patches, or settings adjustments that we may have overlooked, we would greatly appreciate your assistance in rectifying this issue.
Plase follow below location to refer
Location: https://bitbucket.org/gajbhiyeanju/niivue-test/

@anjugajbhiye91 using four separate WebGL instances to display the same 3D volume is very inefficient. By design, NiiVue has a limited number of display options with our goal being to make it easier for users to transfer skills between different tools (AFNI, FreeSurfer, FSL). The design also focuses on using GPU resources efficiently.
I think what you want to do is natively accomplished by choosing the grid layout. That demo also shows you how you can force including a volume rendering, even if it reduces the size of the planar views. While I think this is beyond the scope of this question, you can also evaluate the mosaic view which allows you to display an arbitrary number of planar slices and renderings. In general, our field uses mosaic (lightbox) views for static slices, but you could always add callbacks to synchronize views between slices.

I am closing this issue, but provide a simple demo to show how to sync axial, coronal, sagittal and rendering views across four instances of NiiVue. As I noted, this would be inefficient if all instances show the same volume (as I do here), but it provides a nice template for comparing different images, for example to check co-registration accuracy.
You can try this with:
git clone git@github.com:niivue/niivue.git
cd niivue
npm install
#replace /src/index.html with code below
npm run dev

with the following index.html file:
<!DOCTYPE html>

    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <title>Bidirectional Sync</title>

    niivue requires JavaScript.

      Height
      <select id="canvasHeight">
        <option value="256">256</option>
        <option value="640" selected>512</option>
        <option value="768">768</option>
      </select>

              <canvas id="gl1" height="512">

              <canvas id="gl2" height="512">

              <canvas id="gl3" height="512">

              <canvas id="gl4" height="512">

      <x id="intensity">  </x>
      <x id="intensity2">  </x>
      <x id="intensity3">  </x>


Update Setup Flathub Distro Pages

I looked through all the available distributions in the Flathub setup page and noticed the following issues:
For the Debian page:

Delete "For Debian Jessie and Stretch, a flatpak package is available in the official backports repository." because both Jessie and Stretch are no longer supported (they are in ELTS which is not official support).

Add information about the plasma-discover-backend-flatpak. For example:

"If you are running KDE, it is also a good idea to install the Flatpak plugin for Discover. To do this, run:"
  # apt install plasma-discover-backend-flatpak

For the Pisi GNU/Linux page:
The page just gives a 404 error.
Thanks in advance!

Please report the content changes over at https://github.com/flatpak/flatpak.github.io


Update Forge and Mappings?

Yes, this is my way of asking a question. Should we update the Forge version and Mappings? The latest version of forge has some bug fixes and the mappings have better mappings (well no shit) for the decompiled workspace. This would require you to rerun the "setup decomp workspace" batch file but it wouldn't change your workspace or anything.
Forge version: build 2228 -> 2386
Forge mappings: daily snapshot build (Dec 20 2016) -> stable build 32 (June 12 2017)

I'll get this merged once I fix the sticks


[Bug]: java.lang.NoClassDefFoundError with dead code elimination

Description
$title, even when run with hardcoded types to skip.
Running Tests

	io

	testNonBlockingReadLine has failed.

		[fail] testNonBlockingReadLine:

		    error("java.lang.NoClassDefFoundError: ballerina/io/1/read")
				callableName: $lambda$_11 moduleName: ballerina.io$test.1.tests.console_io fileName: tests/console_io.bal lineNumber: 40

Steps to Reproduce

Build the ballerina/io module (skipping tests) with lang timestamped version 2201.11.0-20241111-101700-af28a18f
Navigate to the io module source and do a bal test with the intermediate pack created when building the io module (/target/ballerina-runtime/).

Affected Version(s)
No response
OS, DB, other environment details and versions
No response
Related area
-> Compilation
Related issue(s) (optional)
No response
Suggested label(s) (optional)
No response
Suggested assignee(s) (optional)
No response

Fixed by @Thushara-Piyasekara in https://github.com/ballerina-platform/ballerina-lang/pull/43566.
Thank you, @Thushara-Piyasekara :)


Adding Recording and Play Events.

Adding RecordingStateChanged, PlayCompleted and PlayFailed events.
Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

API change check
APIView has identified API level changes in this PR and created following API reviews.
Azure.Communication.CallingServer


dbt: wrapper script

Signed-off-by: Maciej Obuchowski<EMAIL_ADDRESS>

Codecov Report

Merging #117 (58221b7) into main (b84b9f3) will not change coverage.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main     #117   +/-   ##
=======================================
  Coverage   89.19%   89.19%
=======================================
  Files          27       27
  Lines        1444     1444
=======================================
  Hits         1288     1288
  Misses        156      156

Impacted Files
Coverage Δ

...egration/common/openlineage/common/provider/dbt.py
92.56% <100.00%> (ø)

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 b84b9f3...58221b7. Read the comment docs.