Network Indexer

Overview
Redesign and implement a more reliable backend for explorer that can be accessed by external users
Requirements

Indexed access to all

Transactions (by transaction hash, block hash, block timestamp, signer ID, receiver ID)

Actions (by transaction hash, action type)
Receipts (by receipt hash, signer ID, transaction hash)

Accounts (by account ID, creation timestamp [block timestamp], code hash #184)

Mapping of keys to accounts

Blocks (by block hash, block timestamp)

Chunks (by chunk hash, block hash)

Access Keys (by public key, account ID) #162
State Changes (by account ID, type)
~Nodes (validators)~ (the current design of telemetry is out of the scope of this issue)

Reliable source of data

How to Implement
Using internal API (fast and feature-complete, but will require coordination with nearcore chain team):

reuse near-network to sync the state with the network

Using public API (does not really provide any benefit):

Fetch current block height
Block by block (from genesis ["block 0"] to current height) poll and reconcile into one blob

RPC
State Changes API

Push to indexer

To collect all the information floating around, I will link previous discussions:
The possible implementations were discussed here: https://commonwealth.im/near/proposal/discussion/306-using-the-graph-for-indexing-blockchain-data
/cc @nearmax

@frol @kcole16 is nodejs the long term plan for the backend? Sort of feel like js is not designed for this type of service 🤔 but that could just be my ignorance.

@bowenwang1996 We want to build it in Rust :smile: (even initially I strongly considered Rust for Explorer backend). TheGraph (I consider building on top of it and PR upstream) is implemented in Rust.

Rust ftw!

Dunno why you folks like using Rust for backend so much given nearcore RPC experience. Using Rust will discourage open source contributions, as there are far more JS developers than Rust developers. It's also looks like generally resulting far longer dev cycles (based on nearcore experience).

@frol this is highly desired for MainNet but not strictly a blocker. However if not dealt at nearcore/explorer layer – I'd likely have to implement it as separate service. We need it for wallet integration + useful in our wallet (e.g. to restore when you only have Ledger with public key on it).

Dunno why you folks like using Rust for backend so much given nearcore RPC experience.

nearcore RPC was a side-project to the chain and has been developed based on the immediate needs with tight time constraints to close those needs ASAP, also it exposes internal representation having quite a tight coupling with the internals which keep evolving and changed rapidly. Indexer is a much less complex component, but it still needs to be reliable. JS showed (and I knew this is going to beat us), that while it is easy to prototype, it is hard to maintain stability (working with numbers is a pain, it just silently rounds the data we send or get from the database).

there are far more JS developers than Rust developers

While that is a true statement by itself. There are far fewer backend devs in JS than the total number, and it is much harder to review the code in JS than in Rust; also, TS does not solve all the problems either while reducing the number of possible contributors even more. Also, do we have much external contribution to our AppLayer projects? (on the Explorer, it is none)

I'd likely have to implement it as separate service.

Well, if that is the case, we should better implement it in Explorer backend since we almost have it.

and has been developed based on the immediate needs with tight time constraints to close those needs

Why do you think constraints would be different now? We are still a startup with no product market fit. It's too early to exit prototype mode for anything except blockchain base layer. Most of "Indexer" stuff is likely going to be completely deprecated if smth like the https://thegraph.com becomes status quo.

working with numbers is a pain, it just silently rounds the data we send or get from the database

This sounds like very specific problem of specific database library. E.g. http://sequelize.org/ doesn't have this problem, as all decimals are represented by strings.
https://github.com/MikeMcl/big.js/ is pretty convenient if you actually need to do math on big decimals.

There are far fewer backend devs in JS than the total number

data still not in favor of Rust
https://github.com/expressjs/express (48k stars)
https://github.com/actix/actix-web (7.7k stars)

and it is much harder to review the code in JS than in Rust

It is very subjective what is easier to review just by looking at code diff. However when you are reviewing stuff on Rust – you are likely not running the code involved (or spending far more time to do it), as it takes forever to build/deploy specific PR.
This is generally one of main problems spawning all other – it takes long time to build and deploy, so you won't be doing as many iterations as you can afford with virtually zero compilation time.

Also, do we have much external contribution to our AppLayer projects? (on the Explorer, it is none)

We won't be getting meaningful external contribution before people can use our stuff to make money.
I think more immediate problem is that whoever is contributing to explorer frontend (even internally) now needs to use different tech stack to tinker with explorer backend. Making full-stack changes much harder. Once you need multiple people to implement single feature – everything generally takes order of magnitude longer.

I also kinda feel that for external users we might need a bit different kind of service – as app developer you'd likely want to only store/query data for a limited set of keys in a limited set of accounts. This should be much easier to scale in terms of storage (i.e. plausibly fits into single Postgres DB for a given app).

Well, if that is the case, we should better implement it in Explorer backend since we almost have it.

How long will it take? Will it require WAMP for querying or regular HTTP requests can be supported?

if smth like the https://thegraph.com becomes status quo.

Using TheGraph to implement the indexer is the first thing I want to try doing.

This sounds like very specific problem of specific database library. E.g. http://sequelize.org/ doesn't have this problem

We specifically use sequelize here...

data still not in favor of Rust

https://github.com/expressjs/express (48k stars) 235 contributors
https://github.com/actix/actix-web (7.7k stars) 201 contributors
So in terms of the number contributors, they are on par even though actix-web has had a lot of drama about being hard to contribute to (not anymore, and not a general status of things in Rust ecosystem), and express is muuuch older project.

needs to use different tech stack to tinker with explorer backend.

The idea is that this Indexer will become an external component serving not only Explorer, but also Wallet (I consider the current use of Explorer backend from Wallet to be a hack; @icerove did we create an issue to fix Actions in Wallet?), and the ownership will be transferred to the nearcore middleware team.

Making full-stack changes much harder.

In general, I agree with this statement. Yet, what makes things really slow is not the language, but the compatibility. Having Explorer backend tightly focused on the frontend needs helps to iterate quickly, but given that more and more people want to use the service, we cannot keep it in Explorer codebase. And I believe, middleware team of nearcore is the right team to own the project (if we choose between chain, middleware and app layer)

I also kinda feel that for external users we might need a bit different kind of service

Exactly my thinking! Thanks for pointing this out! This is why I initially proposed to have a framework allowing people to implement any custom logic on top of the stream of events.

How long will it take?

This can be done fairly quickly. My optimistic estimate is 2-3 days. The reason I have not done it is the priorities for the other tasks, and the fact that it was not required by Explorer yet.

Will it require WAMP for querying or regular HTTP requests can be supported?

It will be WAMP. The implementation will only touch the synchronization part, so the API will be the same, just fetch the data from the relevant table with SQL query.

We specifically use sequelize here...

Weird. Do you have more details on when numbers got rounded improperly? I didn't encounter it before with sequelize, but maybe I just didn't hit specific edge cases.

So in terms of the number contributors, they are on par

Note that express is:

old shit in Node.js world, people moved on to other stuff
not as barebones as e.g. Koa, but even multipart handling not included in core (so a lot of contributions are going into separate express middleware projects)

In any case Rust vs JS is more a holywar of completely different approaches to development. I think it's pretty non-controversial that Rust is better for lower-level stuff that needs to be stable and better CPU performance and JS is better for higher-level stuff that needs to evolve fast and not heavy on CPU. I feel like stuff that's not nearcore is still in the "needs to evolve fast" category, but I also agree the for "indexer" it is debatable where it falls.

and the ownership will be transferred to the nearcore middleware team.

Not sure this is a good idea. So far nearcore has been a bit suboptimal with web APIs.

The reason I have not done it is the priorities for the other tasks, and the fact that it was not required by Explorer yet.

It's not required by explorer, but we can unblock quite a few third-party integrations by this. It's also not strictly required, but useful for account recovery in our wallet (e.g. if you have a key on Ledger but don't remember your username).
So let's do it.

It will be WAMP. The implementation will only touch the synchronization part, so the API will be the same, just fetch the data from the relevant table with SQL query.

We need to double check if it works for potential integrations. HTTP is easy to do for pretty much everything. WAMP has good coverage in terms of tech stacks, but not as good as HTTP.

So let's do it.

@icerove already started working on it #253. Please, let us know if you have any input on the plan we laid out in https://github.com/nearprotocol/near-explorer/issues/162#issuecomment-608709742

We need to double check if it works for potential integrations.

Well, given currently we already have WAMP and the indexed data gets "automatically" exposed via WAMP, the first iteration will be WAMP-only, and later we may get back to it.

TheGraph is overkill. It should be straightforward to implement Network Indexer based on the existing near-network implementation used for near nodes state sync.

@frol let's not do that in the short term. Do you know how many hours I have spent on debugging that syncing code? It is very easy to mess up and expose new vulnerabilities that are critical.

@bowenwang1996 Explorer only needs it in a read-only mode. How can it expose vulnerabilities? Also, it is dogfooding, it may help to reveal sync problems earlier.

@vgrichina

Dunno why you folks like using Rust for backend

Because it is a safe language that removes possibilities of various mistakes? AFAIR we never had dangling pointers, data race, or use after free in nearcore. For such complex project it is a huge success. We also had only one or two problems with memory leaks, mostly around us misusing third-part libraries. If you wonder why we are not using languages with built-in memory management see: https://blog.discord.com/why-discord-is-switching-from-go-to-rust-a190bbca2b1f

so much given nearcore RPC experience

What are the issues with nearcore RPC experience?

Rust will discourage open source contributions, as there are far more JS developers than Rust developers.

Using JS will make lots of low-level optimizations impossible. In general, we should be always preferring the language that dominates in our organization, because then more engineers will be able to review/read/contribute to the project.

It's also looks like generally resulting far longer dev cycles (based on nearcore experience).

That's because our nearcore development is throttled by the research that we were constantly doing in parallel to writing code. If we want to compare nearcore dev cycles then we need to compare it to other R&D heavy projects.

@frol this is highly desired for MainNet but not strictly a blocker.

As discussed during our engineering meetings, the definition of the Mainnet blocker is fuzzy, especially when it comes to Applayer and DevX. If someone is highly desirable and requested then while it is not strictly blocking our launch we sometimes choose to work on it in parallel with the tasks that are strictly blocking the launch. This decision however is a judgement call which requires long discussion, which I assume was done during the Applayer syncs and the Explorer syncs.

Most of "Indexer" stuff is likely going to be completely deprecated if smth like the https://thegraph.com becomes status quo.

AFAIU @frol did an extensive research with the goal to replace explorer backend with theGraph. Unfortunately, he discovered that in the short-term implementing our own indexer would be fater. Note, that third-party integration requires writing glue code, which will be especially complex around the parts that are specific to our blockchain design, like sharding and chunks.

Not sure this is a good idea. So far nearcore has been a bit suboptimal with web APIs.

For the same reason Applayer was constantly broken by nearcore -- it is a downstream consumer of changes. RPC client was constantly broken and remade. Plus the reason it is like that is because we were trying to follow the existing blockchain RPC API standards, like Cosmos, which are different then what is commonly done in web APIs.
@frol

and the ownership will be transferred to the nearcore middleware team.

I double that. The scope of the Middleware team is -- computation of the truth, access to the truth, and storage of the truth. It does not include presentation of the truth. Indexer is the access to the truth (people developing it are required to understand how to correctly aggregate and flatten the data, which is better done by someone working on the explorer). While explorer front-end is the presentation of the truth.

It should be straightforward to implement Network Indexer based on the existing near-network implementation used for near nodes state sync.

I agree with @bowenwang1996  that we should reconsider using network crate as is, but for a different reason. I don't think it presents safety issues. I think we won't be able to use network crate without using the fork-choice rule stuff. Basically explorer would need to implement a complete standalone light client for that, which stretches the scope of this issues a bit too much.

I think we won't be able to use network crate without using the fork-choice rule stuff.

Is it part of near-chain? Is it too complex?

need to implement a complete standalone light client for that

I recall we had some conversations about the light client, but I did not follow its state. Do we have it in some form?

Is it part of near-chain? Is it too complex?

It is unclear to me how hard would it be to carve out. I like the idea of having light client and fork choice rules implemented as two separate crates, because then we can reuse it in other places in the future (For example we could add an option to near-sdk-js to run as a non-validating node, i.e. instead of trusting the node it connects to it would run against the entire network, keep track of the canonical chain itself, and validate it using light client rules.) However, I am concerned that it might take quite a long time to assemble it all, because just reading the network code might be a long and complex task that would take us way beyond the scope of the network indexer. The reason why we would need both light client and the fork choice rule is because AFAIU network crate does not understand what is canonical chain so it cannot produce input for the light client on its own.
@mfornet @SkidanovAlex how hard is it to implement non-validating node that tracks all shards, using network crate, fork choice rule and the light client rules of validation?

I recall we had some conversations about the light client, but I did not follow its state. Do we have it in some form?
https://github.com/nearprotocol/NEPs/pull/60

how hard is it to implement non-validating node that tracks all shards, using network crate, fork choice rule and the light client rules of validation?

It is probably harder to implement light client logic than to modify existing code and use some mostly no-op runtime. Light client doesn't track any shard and only knows about headers. That is obviously not something that we need here. My guess is that it should not be super difficult to switch to no-op runtime, but there can be unforeseen challenges.

@bowenwang1996 light client does not understand what canonical chain is either. AFAIU something needs to be feeding the light client the headers that correspond to the current canonical chain, i.e. the fork choice rule. How hard is it to extract the fork choice rule?

how hard is it to implement non-validating node that tracks all shards, using network crate, fork choice rule and the light client rules of validation?

We can add a concept of a light client peer, and have full nodes send them light client blocks periodically (light client blocks are a chain, not a tree, and don't need any complex fork choice rule), but it is not implemented today.

Discussed with @SkidanovAlex . We need glue code to take blocks from the network crate and produce light client blocks, this is not a small amount of work, so for now we should stick with RPC.

@bowenwang1996 @SkidanovAlex @nearmax what if we take nearcore and, basically, replace jsonrpc with a watcher module that will monitor all the data and save it into the structure we need for indexing? Do you still think it is unrealistic? I really don’t want to work on the RPC level anymore, it is way too much work (sometimes the workflow is as deep as: expose the data via chain/client, expose it via RPC, make sure that the RPC API is sane and generic, deploy and document it, and only after that I could get back to Explorer backend implementation)

replace jsonrpc with a watcher module that will monitor all the data and save it into the structure we need for indexing

How does it work exactly? It seems that you want some sort of push model rather than polling information.

It seems that you want some sort of push model rather than polling information.

Exactly

How does it work exactly?

There are different levels where we can intercept the data:

Store (RocksDB) - probably, too low-level
process_block (apply_chunk) in near-chain - I have little familiarity with the codebase
[the simplest option] use near-client to fetch all the information we otherwise fetch for JSON RPC; fetch the data in a "busy loop" - this still cuts the corner of needing to extend JSON RPC for various reasons

In the end, instead of running archival nodes + Explorer backend (as we do it now), we will be able to run a single modified nearcore instance to follow the network and index it along its way.

use near-client to fetch all the information we otherwise fetch for JSON RPC; fetch the data in a "busy loop" - this still cuts the corner of needing to extend JSON RPC for various reasons

It sounds like still a polling model, but yeah it will be more direct. Although it might take some effort to implement this.

@bowenwang1996 well, JSON RPC is not a free lunch, we constantly hit its limitations only required for projects like Explorer, and after we build JSON RPC, we still build Explorer RPC to expose the indexed data, and it is proved to be a really slow process, and we still have bugs like these: #223, #252, and long-standing feature-requests https://github.com/nearprotocol/nearcore/issues/1880 on nearcore.

Implementing explorer over RPC creates large maintenance overhead and limits what kind of information it can access and how. If we just have an "indexer node" that has an additional actor that monitors internal events and dumps flattened data to a separate database then we can:

iterate faster;
benefit from the direct access to the internals;
make it run faster, since we don't need to serialize/deserialize through RPC;
do not write glue code around RPC.

To summarize the call we had last week, we are going to build Network Indexer using nearcore codebase. The plan is the following:

Rely on the nearcore network synchronization capabilities of an archival node mode (read about the caveats below)

Build a new component (crate) to nearcore (streamer), which will use view_client capabilities in a busy loop to fetch the new block (+ chunks, transactions, receipts, outcomes).
NOTE: Take inspiration from nearcore/chain/jsonrpc implementation, where instead of reacting to external requests we should spawn a busy loop, which will communicate with view_client fetching the relevant information.

Design the framework to make it reasonably easy to plug into the streamer (it is not a separate process, it all should happen inside the nearcore process, just on different layers of abstraction) to receive the new blocks

Using the framework, implement Access Keys Indexer storing the mapping of the public access key to the account ID (let's start with a plain Rust HashMap; this is fairly simple use case allowing us to test the design).
NOTE: We should track the receipts for AddKey action and only apply those once we know that the receipt execution is successful.

Using the framework, implement Explorer Indexer storing all the blocks, chunks, transactions, receipts, outcomes into PostgreSQL (this is what, for example, Render.com and AWS provide as a hosted solution)

Caveats:

nearcore archival node does not have back filling implementation, so it does not fill the gaps when it was offline. @bowenwang1996 considers this to be a missing feature for the archival node, so it will be implemented one day. Network Indexer is not blocked on that since (2)
nearcore has a mode that disables state sync from some epoch boundary and instead can be configured to replay the history from the genesis. (/cc @bowenwang1996 please, point us to the configuration option we need to tweak) This will take quite some time to catch up with the latest state, but we are good to go with this solution for now.

@khorolets Let's have the first steps:

Build nearcore and learn how jsonrpc implementation gets information about status, blocks, chunks, transactions, etc. I think, RPC API documentation may help you: https://docs.near.org/docs/interaction/rpc
Create a new crate nearcore/chain/streamer (our busy loop will live there) and plug it into nearcore/neard - get the busy loop spawned. Success is: the status is printed from the busy loop once the status gets changed (fetch if every 0.5 second and compare with the previously fetched value)

@frol Actually I double checked my approach and it might be too slow to be acceptable without modifying nearcore code (when there are millions of blocks in the network). So we should probably wait for the proper implementation of archival node, though I don't think it is blocking for now.
On the other hand, I want to discuss whether keeping network indexer tightly coupled with nearcore code is the way to go. Is this the long term plan?

I would say that the long-term plan is to be dependent on the near-chain / near-network (i.e. re-use the communication protocol and the chain rules). The ultimate goal for the indexer is to get the stream of blocks with chunks, transactions, receipts, and execution outcomes, we don't even need to save those into RocksDB or such (imagine I only want to build an indexer of account access keys, so I only care about the state change related to the account keys [AddKey, DeleteKey, DeleteAccount actions may affect it, AFAIK]).
Thus, it is just a shortcut that we decided to let nearcore work as usual and pull the necessary data from it via near-client.

Some extra vision (no changes, just an addition to the big picture):
We are going to build a Network Indexer framework based on nearcore internals and thus we will be able to build all sorts of various types of reactors. Imagine the following:

create a new Rust binary project

add near-indexer dependency

write a reactor:
let mut stream = near_indexer::start();
while let Some(new_block) = stream.next().await {
    // condition on the block content, transform, filter, send to whatever storage, push to an event handling service
}

run it on-premise and have your own control over it (from the NEAR network point of view, it is going to be just another peer with all the same features)

I imagine we are going to build a few common indexers:

[proxy indexer] - just pass the blocks into some external service (e.g. Kafka, Spark, RabbitMQ, ZMQ)
[archival SQL indexer - Explorer-like] all the blocks, chunks, transactions, receipts, execution outcomes get stored into SQL DB
[access keys indexer] - only maintain the access key <=> account ID mapping (requested by wallets for passphrase recovery)

Proxy indexer is useful for those who don't want to hack in Rust, and thus they can handle the events in a separate service.

Quick update: NEAR Indexer framework is ready to land to nearcore (https://github.com/nearprotocol/nearcore/pull/2651). Those, who want to implement their own indexer can start poking it around following the README in the PR, and ask questions, so we improve the documentation / examples / code.

NEAR Indexer has landed: https://github.com/nearprotocol/nearcore/tree/master/chain/indexer
The next step is the implementation of NEAR Wallet Indexer (should be small while super important) solving the specific problem of Wallet of keeping track of all the access keys including the ones added from contracts.
NEAR Explorer Indexer is the next step after NEAR Wallet Indexer.

Resolved with Indexer for Explorer


OpenNI2 wrapper build for Windows x64 missing

The build instructions using CMake produce a solution/projects that only have x86 as an option.
The vcpkg method of building librealsense generates both x86 and x64 debug and release versions.
Can either the CMake OpenNI2 build add x64, or the wrappers be added to the vcpkg build method?

Hi @mediadog
You can absolutely build x64 with CMake, including the OpenNi2 wrapper. The option to select build platform is given when first running configure in CMake.

Yes, you are right - for some reason when using VS 2019 it defaults to x64, but with VS 2017 it defaults to x86 and I missed that.  It would be good to note in the build instructions that the machine type has to be specified there, and not in VS via the pulldown later, thanks.
But the larger problem is still here, which is if I build librealsense using the method in Readme.md via vcpkg (which fails on Win7 unless you use the fix in PR #10550), the wrappers don't get built and then you have to use the Cmake route which is not at all obvious how that should be done in the vcpkg environment, and requires some manual very non-obvious tweaking to get to build, and then the wrapper does not work anyway (I'll file new bugs on all that).
Ideally these would just be built and included in the SDK, so I could just drop the OpenNI2 drivers into my existing driver folder and do happy work.  Next best would be some clear OpenNI2 build instructions that work with the vcpkg build method.  Note that if I do not use the vcpkg method at all, and use CMake, then the build fails with an undefined symbol GUID_DEVINTERFACE_USB_DEVICE, which looks like INITGUID is not getting set somewhere (I'll also file a bug on that).  So I can only get a good build using the vcpkg method.

Hi,
Will you be needing further help with this? If we don’t hear from you in 7 days, this issue will be closed.
Thanks


Endpoint pod crashed with Download of 10GB file

Environment info

NooBaa Version: master-20210607
Platform: OCP 4.6.16

Actual behavior

Download of 10GB files caused endpoint pod crash

Expected behavior

Download of any size files should not cause endpoint pod crash

Steps to reproduce

Created 10GB files using setpriv in bucket-11
Started download and it caused endpoint panic

download failed: s3://bucket-11/medium_file_2 to medium_read/medium_file_2 An error occurred (503) when calling the GetObject operation (reached max retries: 2): Service Unavailable
download failed: s3://bucket-11/medium_file_3 to medium_read/medium_file_3 An error occurred (503) when calling the GetObject operation (reached max retries: 2): Service Unavailable
download failed: s3://bucket-11/medium_file_1 to medium_read/medium_file_1 An error occurred (503) when calling the GetObject operation: Service Unavailable
download failed: s3://bucket-11/medium_file_10 to medium_read/medium_file_10 An error occurred (503) when calling the GetObject operation (reached max retries: 2): Service Unavailable
urllib3/connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 's3-noobaa.apps.ocp-akshat-1.cp.fyre.ibm.com'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
download failed: s3://bucket-11/medium_file_6 to medium_read/medium_file_6 An error occurred (503) when calling the GetObject operation: Service Unavailable
download failed: s3://bucket-11/medium_file_8 to medium_read/medium_file_8 An error occurred (503) when calling the GetObject operation: Service Unavailable
download failed: s3://bucket-11/medium_file_5 to medium_read/medium_file_5 An error occurred (503) when calling the GetObject operation: Service Unavailable
download failed: s3://bucket-11/medium_file_7 to medium_read/medium_file_7 An error occurred (503) when calling the GetObject operation: Service Unavailable
download failed: s3://bucket-11/medium_file_9 to medium_read/medium_file_9 An error occurred (503) when calling the GetObject operation: Service Unavailable
download failed: s3://bucket-11/medium_file_4 to medium_read/medium_file_4 An error occurred (503) when calling the GetObject operation: Service Unavailable

[root@hpo-node1 ~]# s3u1 ls s3://bucket-11/
urllib3/connectionpool.py:1013: InsecureRequestWarning: Unverified HTTPS request is being made to host 's3-noobaa.apps.ocp-akshat-1.cp.fyre.ibm.com'. Adding certificate verification is strongly advised.
Jun-9 5:46:13.005 [Endpoint/8]    [L0] core.endpoint.s3.ops.s3_get_object:: request aborted: undefined
Jun-9 5:46:13.018 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_2', start: 50331648, end: 58720256 }
Jun-9 5:46:13.018 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_4', start: 343932928, end: 352321536 }
Jun-9 5:46:13.019 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_1', start: 50331648, end: 58720256 }
Jun-9 5:46:13.019 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_10', start: 117440512, end: 125829120 }
Jun-9 5:46:13.019 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_4', start: 335544320, end: 343932928 }
Jun-9 5:46:13.020 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_4', start: 33554432, end: 41943040 }
Jun-9 5:46:13.021 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_1', start: 167772160, end: 176160768 }
Jun-9 5:46:13.022 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_4', start: 369098752, end: 377487360 }
Jun-9 5:46:13.023 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_4', start: 377487360, end: 385875968 }
Jun-9 5:46:13.099 [Endpoint/8]   [LOG] CONSOLE:: NamespaceFS: read_object_stream { file_path: '/nsfs/nsfs-nsr-1/bucket-11/medium_file_10', start: 41943040, end: 50331648 }
Jun-9 5:46:13.100 [Endpoint/8]   [LOG] CONSOLE:: /nsfs/nsfs-nsr-1/bucket-11/medium_file_2 { dev: 242, ino: 84978811, mode: 33206, nlink: 1, uid: 5000, gid: 800, rdev: 0, size:<PHONE_NUMBER>0, blksize: 4194304, blocks: 20000000, atimeMs:<PHONE_NUMBER>505.5771, ctimeMs:<PHONE_NUMBER>595.954, mtimeMs:<PHONE_NUMBER>096.5105, birthtimeMs:<PHONE_NUMBER>595.954, atime: 2021-06-09T05:46:12.506Z, mtime: 2021-06-09T05:32:45.097Z, ctime: 2021-06-09T05:45:53.596Z, birthtime: 2021-06-09T05:45:53.596Z }
Jun-9 5:46:13.101 [Endpoint/8]   [LOG] CONSOLE:: /nsfs/nsfs-nsr-1/bucket-11/medium_file_3 { dev: 242, ino: 84978770, mode: 33206, nlink: 1, uid: 5000, gid: 800, rdev: 0, size:<PHONE_NUMBER>0, blksize: 4194304, blocks: 20000000, atimeMs:<PHONE_NUMBER>642.244, ctimeMs:<PHONE_NUMBER>596.276, mtimeMs:<PHONE_NUMBER>533.7551, birthtimeMs:<PHONE_NUMBER>596.276, atime: 2021-06-09T05:46:04.642Z, mtime: 2021-06-09T05:33:10.534Z, ctime: 2021-06-09T05:45:53.596Z, birthtime: 2021-06-09T05:45:53.596Z }
Jun-9 5:46:13.101 [Endpoint/8]   [LOG] CONSOLE:: /nsfs/nsfs-nsr-1/bucket-11/medium_file_4 { dev: 242, ino: 84978720, mode: 33206, nlink: 1, uid: 5000, gid: 800, rdev: 0, size:<PHONE_NUMBER>0, blksize: 4194304, blocks: 20000000, atimeMs:<PHONE_NUMBER>935.9092, ctimeMs:<PHONE_NUMBER>595.932, mtimeMs:<PHONE_NUMBER>087.8848, birthtimeMs:<PHONE_NUMBER>595.932, atime: 2021-06-09T05:46:02.936Z, mtime: 2021-06-09T05:33:36.088Z, ctime: 2021-06-09T05:45:53.596Z, birthtime: 2021-06-09T05:45:53.596Z }
Jun-9 5:46:13.101 [Endpoint/8]   [LOG] CONSOLE:: /nsfs/nsfs-nsr-1/bucket-11/medium_file_4 { dev: 242, ino: 84978720, mode: 33206, nlink: 1, uid: 5000, gid: 800, rdev: 0, size:<PHONE_NUMBER>0, blksize: 4194304, blocks: 20000000, atimeMs:<PHONE_NUMBER>935.9092, ctimeMs:<PHONE_NUMBER>595.932, mtimeMs:<PHONE_NUMBER>087.8848, birthtimeMs:<PHONE_NUMBER>595.932, atime: 2021-06-09T05:46:02.936Z, mtime: 2021-06-09T05:33:36.088Z, ctime: 2021-06-09T05:45:53.596Z, birthtime: 2021-06-09T05:45:53.596Z }
Jun-9 5:46:13.101 [Endpoint/8]   [LOG] CONSOLE:: /nsfs/nsfs-nsr-1/bucket-11/medium_file_4 { dev: 242, ino: 84978720, mode: 33206, nlink: 1, uid: 5000, gid: 800, rdev: 0, size:<PHONE_NUMBER>0, blksize: 4194304, blocks: 20000000, atimeMs:<PHONE_NUMBER>935.9092, ctimeMs:<PHONE_NUMBER>595.932, mtimeMs:<PHONE_NUMBER>087.8848, birthtimeMs:<PHONE_NUMBER>595.932, atime: 2021-06-09T05:46:02.936Z, mtime: 2021-06-09T05:33:36.088Z, ctime: 2021-06-09T05:45:53.596Z, birthtime: 2021-06-09T05:45:53.596Z }
PANIC: FS::FileWrap::dtor: file not closed _path=/nsfs/nsfs-nsr-1/bucket-11/medium_file_4 _fd=38  Success (0) ~FileWrap() at ../src/native/fs/fs_napi.cpp:603
/noobaa_init_files/noobaa_init.sh: line 74:     8 Aborted                 $*

######################################################################
Wed Jun  9 05:46:13 UTC 2021 NooBaa: Process exited RIP (RC=134)
######################################################################

endpoint_6566.zip

noobaa_diagnostics_1623228868.tar.gz

endpoint_read_failure_6566.zip

download failed: s3://bucket-41/medium_file_8 to medium_files_read/medium_file_8 An error occurred () when calling the GetObject operation:
download failed: s3://bucket-41/medium_file_9 to medium_files_read/medium_file_9 An error occurred () when calling the GetObject operation:
download failed: s3://bucket-41/medium_file_7 to medium_files_read/medium_file_7 An error occurred () when calling the GetObject operation:
download failed: s3://bucket-41/medium_file_5 to medium_files_read/medium_file_5 An error occurred () when calling the GetObject operation:
download failed: s3://bucket-41/medium_file_6 to medium_files_read/medium_file_6 An error occurred () when calling the GetObject operation:

The latest repo without the crash of the pod 2/10 files failed.
endpoint_read_failure_6566.zip

@akmithal
Is this one still happens?
@jeniawhite
should the PR mention close this issue?

@liranmauda , I would attempt this post fix for 6637 to confirm.

@akmithal as we talked, duping into #6624


Feat Needed: can not refresh the application status when refresh page.

Add user status update in the app entry


Implement light-client contract

Replaced by https://github.com/postech-dao/cosmos/compare/main...posgnu:cosmos:light?expand=1


Bugs

Listing some errors I got
mult = and => x is a ERROR
module Calc = {
  %%private(let mult = (x, y) => x * y) // this line

  let double = x => mult(x, 2)
  let triple = x => mult(x, 3)
}

This code break the parser:
let person1 = Teacher({name: "Jane", age: 35})

let message = switch person1 {
| Teacher({name: "Mary" | "Joe"}) =>
  `Hey, still going to the party on Saturday?`
| Teacher({name}) =>
  // this is matched only if `name` isn't "Mary" or "Joe"
  `Hello ${name}.`
| Student({name, reportCard: {passing: true, gpa}}) =>
  `Congrats ${name}, nice GPA of ${Js.Float.toString(gpa)} you got there!`
| Student({
    reportCard: {gpa: 0.0},
    status: Vacations(daysLeft) | Sabbatical(daysLeft)
  }) =>
  `Come back in ${Js.Int.toString(daysLeft)} days!`
| Student({status: Sick}) =>
  `How are you feeling?`
| Student({name}) =>
  `Good luck next semester ${name}!`
}

Switch block return a ERROR:
type animal = Dog | Cat | Bird
let categoryId = switch (isBig, myAnimal) {
| (true, Dog) => 1
| (true, Cat) => 2
| (true, Bird) => 3
| (false, Dog | Cat) => 4
| (false, Bird) => 5
}

The three PRs mentioned :arrow_up: should resolve all the issues. If not, feel free to reopen.
Thanks a lot for reporting :hugs:


Dont run flaky test on windows

Supercedes #32351 and avoids running this test on windows since its flaky there. I suspect its because of inconsistencies in the __del__ lifecycle

Thank you for your contribution! Follow this checklist to help us incorporate your contribution quickly and easily:

[ ] Mention the appropriate issue in your description (for example: addresses #123), if applicable. This will automatically add a link to the pull request in the issue. If you would like the issue to automatically close on merging the pull request, comment fixes #<ISSUE NUMBER> instead.
[ ] Update CHANGES.md with noteworthy changes.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

See the Contributor Guide for more tips on how to make review process smoother.
To check the build health, please visit https://github.com/apache/beam/blob/master/.test-infra/BUILD_STATUS.md
GitHub Actions Tests Status (on master branch)

See CI.md for more information about GitHub Actions CI or the workflows README to see a list of phrases to trigger workflows.

R: @Abacn


Prepares 1.0.2 release

Hey Frank, I guess we are still missing Release Notes for 1.0.2 and a tag?


[FR] Add Support For Adding Cookies to Play Age Restricted Videos

Is your feature request related to a problem? Please describe.
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
Currently I am not sure of a way to add a cookie to be able to play Age Restricted videos with the bot
Describe the solution you'd like
A clear and concise description of what you want to happen.
Add a variable we can define in docker that lets us supply a cookie that is added to the request to authenticate for Age Restricted videos.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
N/A
Additional Comments
Add any other context or screenshots about the feature request here.
I was able to accomplish this on Sushis distro with ytdl by adding in Queue.js requestOptions
requestOptions: this.player.options.ytdlRequestOptions ?? {headers:{cookie:'COOKIE GOES HERE'}},

Hi @BennyDaBee ,
Thank you for the Feature Request!
I personally do not use cookies with this package, so I'm not too sure how to implement it.
Also, it doesn't help that I ripped out the RequestOptions interface many commits back.
Feel free to open a PR if you have a solution in mind, but I will not be implementing this for the time being.
I might revisit this when I have more time.
As always, thank you!


Problems view - should not count markers from unsupported schemes

Testing  https://github.com/microsoft/vscode/issues/156185

I can't get squiggles to show up for the commit input box at all, even after following the steps from the linked TPI. What are some steps to verify this, or maybe someone else can verify?

Thanks @joyceerhl. Reopening the bug as the fix for this has introduced a regression.

\closedWith ab78bafb4ca8449c2c2f6f770e76380499f80108

Verified, but the actions in the hover don't do anything:

Thanks @alexr00. I have filed https://github.com/microsoft/vscode/issues/159450 to track the issue with the actions.


fix: upgrade go to version 1.21 and upgrade containers/image dependen…

…cy to v5.30.1 dekn#8073

Closing. Branched off v1.5.1 instead


[FP]: Netty incubator project detected as Quic

Package URl
<EMAIL_ADDRESS>CPE
cpe:2.3:a:quic_project:quic:0.0.25:*:*:*:*:*:*:*
CVE
CVE-2023-39533
ODC Integration
{"label"=>"Maven Plugin"}
ODC Version
8.3.1
Description
Hello,
The 2 following Maven libraries:
<dependency>
    <groupId>io.netty.incubator</groupId>
    <artifactId>netty-incubator-codec-classes-quic</artifactId>
    <version>0.0.25.Final</version>
</dependency>

<dependency>
    <groupId>io.projectreactor.netty.incubator</groupId>
    <artifactId>reactor-netty-incubator-quic</artifactId>
    <version>0.0.5</version>
</dependency>

are detected as Quic (Go project), resp.

cpe:2.3:a:quic_project:quic:0.0.25:*:*:*:*:*:*:*
cpe:2.3:a:quic_project:quic:0.0.5:*:*:*:*:*:*:*

and thus are assigned with CVE-2023-39533.
Also wondering if there is any generic way to prevent JARs from being assigned to CVEs associated to CPEs of other frameworks:

Thanks.
Regards,

approved

Hi @aikebah
Is it possible to also add a suppression rule for the 2nd package?
<dependency>
    <groupId>io.projectreactor.netty.incubator</groupId>
    <artifactId>reactor-netty-incubator-quic</artifactId>
    <version>0.0.5</version>
</dependency>

or should I open a separate ticket?
Thanks.


What about any integration between Python and Power BI Embedded

I can't find any documentation that explains if Python is integrated in Power BI Embedded.
Are Python visuals allowed in Power BI Embedded?
Are Python transformation steps in Power Query allowed in Power BI Embedded?
I think Docs are missing these informations.

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

ID: db4f2779-18a0-100c-dc5f-ac0f77f05d19
Version Independent ID: e6654e84-bba6-8280-645a-5e56e999276e
Content: Learn which Python packages are supported - Power BI
Content Source: powerbi-docs/connect-data/service-python-packages-support.md
Service: powerbi
Sub-service: pbi-data-sources
GitHub Login: @otarb
Microsoft Alias: otarb

Hi @lucazav,
Thanks for your feedback. I'll look into this and get back to you shortly.
Kesem

Hi @lucazav,
After confirming with our development team, anything that renders in the portal (Power BI service) should render when embedded.
Hope this helps.,
Kesem


Changed the background color of the transaction filters

Pull Request
On Dark theme the transaction filters now have a background color of #011019
Fixes #(issue number)
#297
Description:
[Provide a brief description of your changes.]
Checklist:

[x] I have tested my changes.
[x] My code follows the project's coding standards.
[x] I have updated the documentation (if applicable).

Screenshots:
[If applicable, include screenshots to help reviewers understand your changes.]

@ani1609 I've fixed the issue where the colors were changing abruptly. Now they have a transition of 500ms and looks just fine.

@A-4-Atom appreciated


Added project KeyboardKit by @lixiii

[x ] Project URL:
[x] Update contents.json instead of README
[x] One project per pull request
[x] Screenshot included
[x] Avoid iOS or open-source in description as it is assumed
[x] Use this commit title format if applicable: Add app-name by @github-username
[x] Use approved format for your entry

2 Warnings
⚠	Found 2 link issues
⚠	Found 1 link issue
Link issues by awesome_bot
Line	Status	Link
20	404 https://itunes.apple.com/app/id1098323034
214	404 https://itunes.apple.com/app/typestyle/id1441019779
Link issue by awesome_bot
Line	Status	Link
924	404 http://a4.mzstatic.com/us/r30/Purple/v4/d1/a3/59/d1a359c5-0b01-6b61-d87b-a69d9d67dbb5/screen696x696.jpeg
Generated by 🚫 Danger

Issues don't seem to be related to project KeyboardKit. Links with issues belong to the projects:

Alienblast (https://itunes.apple.com/app/id1098323034)
TypeStyle (https://itunes.apple.com/app/typestyle/id1441019779)
FlappyBird clone - Scary Flight (http://a4.mzstatic.com/us/r30/Purple/v4/d1/a3/59/d1a359c5-0b01-6b61-d87b-a69d9d67dbb5/screen696x696.jpeg)

Hi @lixiii, thank you for contributing. But I'm not sure this is an appropriate place. Could you take a look at awesome-swift & awesome-ios, they seem more relevant in this case. And yeah, don't worry about the warnings :-)
@dkhamsing what is your opinion?

Correct. Closing.
Let us know if you have questions.
Sent with GitHawk


Trained models

Hi,
Can you please share .pth, .npy in order to run global analysis (on CUB).
Thanks

Hello,
You can download a trained Deformable ProtoPNet and the necessary auxiliary files for global analysis can be downloaded from https://duke.box.com/v/deformable-protopnet. This link as also been added to the readme.
Best,
Jon


Install - try out hassles, cannot get to work at all.

This is meant as feedback after trying to use for the first time.
I git cloned the repo to my local bitcoin node. I tried following the steps described in the readme. However, there is no ./server.py command so this does not work. After digging thru issues and looking around I found that things have changed but the readme is not updated. You have to use pip install or setup.py install now and a different server command. pip install did not work for me. It does not install correctly the ...1.4-dev something or other. But setup.py install did work.
I had configured the config.cfg file to use my existing rpcuser, rpcpassword values and my ypub from my wallet. When I finally run electrum-personal-server command I just the msg:
INFO:2018-11-07 09:13:15,431: Starting Electrum Personal Server
INFO:2018-11-07 09:13:15,431: Logging to /tmp/electrumpersonalserver.log
WARNING:2018-11-07 09:13:15,436: Unable to find .cookie file, try setting `datadir` config

But the server was not running. I edited the config to have datadir but got same message as above saying to try the datadir config. No difference.
I thought maybe this is because not using rpcauth or cookie auth. I tried to change my bitcoin config but cannot find rpcuser.py command. Apparently it is not installed when bitcoin is installed from Ubuntu repo (though I'm still unsure). Anyway, seems I cannot generate an rpcauth line for config, so stuck with rpcuser/pwd config for now. Is this no longer supported by electrum-personal-server?
So my first try at using this is aborted. No running server. Not really sure why because no usable log message. Checked port with netstat and none being listened on, so not just me missing server in htop.
Not sure what to do now except let you know it doesn't work for me.

Thanks for the feedback. I'll try help you out.
Looks like you're stuck on rpc authentication.
To have it work with .cookie, you need to set datadir which on ubuntu by default would be /home/username/.bitcoin/. Alternatively you can set rpcuser and rpcpass, you have to set the same username and password in the bitcoin.conf file. Note that this is different to using rpcauth, I don't think EPS can even work with rpcauth, it uses either rpcuser/rpcpass or the .cookie file.
There may be helpful error messages in the debug log file, it's path is printed out by the server near the beginning.

Thx. My system is using rpcuser/rpcpassword currently. I use bitcoin-cli to query info so that is working fine.
My data dir is actually /NASZ/bitcoin (because I have it on a large ZFS pool). When I set that value EPS doesn't seem to use it as it gives the same msg whether set or not. I only tried rpcauth because what I already had wasn't working. I looked at the /tmp/electrumpersonalserver.log file and it only contains what was already dumped on console. No more useful details.
For the time being I deleted all EPS files (best I could) as I though maybe I'll try again later from scratch. Perhaps since I cloned the repo and started that way it doesn't get setup correctly. I do have experience developing in python and even releasing pypi packages but rather than try to dig deep and find out what's gone wrong I just went the lazy way and posted here.
Maybe it's misbehaving when both no .cookie and non-default data dir?

If you use rpcuser/rpcpassword then you can't use .cookie and datadir. So try just setting rpcuser/pass.

That was what I did from the start of this. It's only when it didn't work that I went looking for second options. According to docs it should have worked with my first try. Maybe I'll try again shortly with a fresh install not using git clone but from a release package. It's completely baffling to me and also generally when a python script fails you get some dump on the console but nothing here. When I have time I'll try again and try to debug what it's doing.

@chris-belcher I'm not sure why you don't think EPS can't work with rpcauth. It will work the same way if you set rpcuser and rpcpassword, except the password is no longer in plaintext in the bitcoin.conf file. You will have to put it in plain text in the config.cfg file, however.

I tried this again today (due to DDos attack - thought maybe I'll give it another go). Seems to be going further now as have ...[40%]... etc. being shown on console as it imports 2000 addresses (way more than I'd likely ever use). Maybe it'll complete then.
Just wondering if there is a cfg line to tell it where to log instead of /tmp? I guess I could make a symlink but probably temporary due to being /tmp dir.

Oh. Except it does not update the history for multiple wallets. I have set multiple MPKs and rescanned. It show 6000 addresses being monitored. They seem to be all in the log. But also lots of messages about "address not found - means address not being monitored" etc.
The last section shows first 3 addresses of all 3 wallets I have config'd. They are correct. But still two of three wallets never update status and info. All dates and txs are very recent an I chose a date for rescan that was older by months. Not sure what is going on. Hmmm. I guess this still isn't working the way I'd like.


added support for compiling without module option

Fix for the following issue.
Argument module cannot be ""
#211 opened 7 days ago by Linowitch

Awesome. Would prefer if we warned the user of a bad module option instead of silently only taking valid values.

I've just added the warnings.

Ok, then we have to change the documentation as well.
I think we have two options then.

"amd" stays as default, to remove module it needs to set to "false" or "null".
forces the user to set the module explicit to "null" or "false"

2, the default will be changed to "null" and if set only "amd" or "commonjs" are allowed.
in this case the user needs only to ommit the module option. Like you described in the issue 123.
Which way shall we go?

Recommendation to update the docs: "default to be nothing, If you want to set it you set it to either amd or commonjs"
I don't see the motivation of specifically clearing the option.

Did the changes and adjusted the documentation.

Awesome ❤😘


'Categories' Section Boxes Design

Title and Issue number
Frontend Project "olx" 'Categories' Section Boxes Design
Close #3715
Output
Before

After

Checklist:

[x] I have mentioned the issue number in my Pull Request.
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have created a helpful and easy to understand README.md

Hi @MohitGupta121
Kindly review this pull request.


ST_Within function

Description
The ST_Within function is described in the geospatial docs (https://docs.pinot.apache.org/basics/indexing/geospatial-support) but I don't think it actually exists in the code.
Upgrade Notes
Does this PR prevent a zero down-time upgrade? (Assume upgrade order: Controller, Broker, Server, Minion)

[ ] Yes (Please label as backward-incompat, and complete the section below on Release Notes)

Does this PR fix a zero-downtime upgrade introduced earlier?

[ ] Yes (Please label this as backward-incompat, and complete the section below on Release Notes)

Does this PR otherwise need attention when creating release notes? Things to consider:

New configuration options
Deprecation of configurations
Signature changes to public methods/interfaces
New plugins added or old plugins removed

[ ] Yes (Please label this PR as release-notes and complete the section on Release Notes)

Release Notes

Documentation

Codecov Report

Merging #7990 (0dad2dd) into master (7030260) will decrease coverage by 56.97%.
 Consider uploading reports for the commit 82d75c1 to get more accurate results

@@              Coverage Diff              @@
##             master    #7990       +/-   ##
=============================================
- Coverage     71.23%   14.25%   -56.98%
+ Complexity     4218       81     -4137
=============================================
  Files          1595     1551       -44
  Lines         82743    80910     -1833
  Branches      12347    12152      -195
=============================================
- Hits          58942    11536    -47406
- Misses        19813    68513    +48700
+ Partials       3988      861     -3127

Flag
Coverage Δ

integration1
?

integration2
?

unittests1
?

unittests2
14.25% <0.00%> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.

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


added documentation

Coverage remained the same at 97.699% when pulling 3d6b70b4ee79733afd24ede442484ff7d590cc11 on serde-javadoc into 76e09fbf7937be6fb334ee3efff712cf75a78597 on frequencies.


Command parser insensitive to context

The command taxi on its own is to instruct an aircraft to taxi to the start of the runway that is chosen by the game.
taxi ### with ### being a runway designator instructs an aircraft to taxi to that particular runway.
However, if you bundle taxi with another command like caf, it tells you that 'There is no runway CAF'. It's obvious what the game is doing when you type in taxi caf, as it's expecting caf to be a runway, whereas it's a command.
This seemed to work before 3.0 though!

it's vaguely possible it worked a long time ago (before #601), but I'm pretty confident nothing in v3 would have brought this issue to light. It would be nice if it would natively recognize what you mean by taxi caf, but it would take a bit of work, and seeing that the workaround of caf taxi is available, it won't get much priority. We'll keep the issue here though in case we ever feel the need to fix it.

This was resolved by n8rzz/atc#179, which was merged as part of v3.2.0 via PR #755.
Closing.


feat: add support for optional

By specifying an option flag, the generated schema from the proto file takes the optional flag into account making any fields that is not explicitly marked as optional to be REQUIRED except for lists and maps which are always NULLABLE

Closing this as there is too much uncertainty whether REQUIRED is a good thing or not


Punch Velocity Sensing missing in ADDSynth and Padsynth

Hi I just noticed that the Punch Velocity Sensing Knob is missing in the "general" sections of ADDSynth and Padsynth.
It's there in jakoo's ZynAddSubFX-VDX_VST-<IP_ADDRESS>1beta.

Deleting in favor of the same issue filed on the zyn-fusion-issues repo.


Inflector\Inflector::pluralize Deprecated version 5.8.38

Laravel Version: 5.8.38
PHP Version: 7.2.19
Database Driver & Version: Mysql 5.7

Description:
Hi Support,
I have a problem with Doctrine//inflector with this problem: The "Doctrine\Common\Inflector\Inflector::pluralize" method is deprecated and will be dropped in doctrine/inflector 2.0. Please update to the new Inflector API. on line 261
I know that this problem already speaking in other issue.
I use composer update, but the problem is always here, how can i resolve it?
Thanks

Yes, this is deprecated, and so is Laravel 5.8. Please upgrade to Laravel 6 LTS or Laravel 7, or turn off deprecation warnings in production.

Thanks @GrahamCampbell for the quickly answer :-)

Thx @GrahamCampbell


Issue uploading images

Friends,
Not sure if it happens in the web interface too, but I noticed, sometimes I upload an image in the app and it doesn't go through. I think Im inpatient and click elsewhere after it starts uploading, then it doesnt upload and I have to try again.
I will keep an eye out and see if it's what I believe that happens, as I wrote above. Not being patient enough to wait for the upload, avoid switching the window, etc.

Edit by @alya  (2024-06):
The immediate action plan is to disable sending via Enter / Ctrl + Enter while uploads are in progress, as we do with the mouse UI. We can improve on that later as a follow-up.

I'm taking this up


ci: investigate why extensions are not compiled

What does this PR do?

Fixes # (issue)
Before submitting

[ ] Did you read the contributor guideline,
Pull Request section?
[ ] Was this discussed/approved via a Github issue or the forum? Please add a link
to it if that's the case.
[ ] Did you run all tests locally and make sure they pass.
[ ] Did you write any new necessary tests?

Who can review?
Anyone in the community is free to review the PR once the tests have passed. Feel free to tag
members/contributors who may be interested in your PR.

We need to install the package in editable mode, because if we deploy it from a temporary package setuptools_scm does not recognize the cpp source files and they are not included in the temporary package (see #254).


Add Ansible role to register a machine into the Jenkins master

We need an Ansible role that will register the current Ansible hostname to the Jenkins server.
This depends on https://github.com/Microsoft/openenclave/issues/1362.

Fixed by https://github.com/Microsoft/openenclave/pull/1418


Sorbet wrongly flags Hash.new with object that has #to_hash as input

Input
→ View on sorbet.run
class Foo
def to_hash
{foo: 1}
end
end

Hash[Foo.new]

Observed output
editor.rb:7: Expected T::Array[[U, V]] but found Foo for argument arg0 https://srb.help/7002
     7 |Hash[Foo.new]
        ^^^^^^^^^^^^^
    https://github.com/sorbet/sorbet/tree/master/rbi/core/hash.rbi#L165: Method Hash.[] has specified arg0 as T::Array[[U, V]]
     165 |      arg0: T::Array[[T.type_parameter(:U), T.type_parameter(:V)]],
                ^^^^
  Got Foo originating from:
    editor.rb:7:
     7 |Hash[Foo.new]
             ^^^^^^^
Errors: 1

Expected behavior

As documented in https://ruby-doc.org/core-2.5.6/Hash.html#method-c-5B-5D it's possible to call Hash[] with "an object convertible to a hash".
(This seems a sibling of the Array issue I reported -- https://github.com/sorbet/sorbet/issues/1913 )

Sorbet does not support implicit interfaces like this. The workaround in this case is to just call .to_hash directly, instead of relying on Hash#[] to do it.
Hash[Foo.new.to_hash]

I normally suggest changing the RBI to allow things that Ruby allows, but the only way to do this would be to untype the definition of Hash#[], which would mean that a lot of people would lose valuable type checking.
Thanks for the report.


Need test for batch invocation of programs.

Currently there are no tests for the following eBPF hook NPI client dispatch:

- [ ]     ebpf_program_batch_begin_invoke_function_t ebpf_program_batch_begin_invoke_function;
- [ ]     ebpf_program_batch_invoke_function_t ebpf_program_batch_invoke_function;
- [ ]     ebpf_program_batch_end_invoke_function_t ebpf_program_batch_end_invoke_function;

Having these test cases would have avoided: #3057

There is a test which does batch invocation for sample extension. PR #2593 added the test.

I checked, and as Anurag said, this is already in place.


As the Designer, I want to use Vim and Mutt as my email client so that I can determine if Vim and Mutt increase my productivity.

[ ] Evaluate different Mutt / Vim integrations.
[ ] Implement base Mutt / Vim integration with iCloud, aka<EMAIL_ADDRESS>[ ] Test configuation.
[ ] Review http://www.mutt.org/doc/manual/#configuration-files
[ ] Review https://github.com/mattn/webapi-vim

This issue was moved to Traap/vim issue #2.


ACM-11959 - Alter information alert and doc link for Discovery Config page

Regarding ACM-11959
Remove unneeded link and update remaining policy example link with URL for new document.
Before:

After:

/hold
Waiting for some feedback from Doc team assignee

/unhold

/cherry-pick release-2.11

/hold

New changes from Doc here

/unhold


Add highlighting for triangles, squares, and diamonds.

Test notes

Custom marks (triangle, squares, diamonds) can be highlit.

@samussiah I am only seeing arrows and I cannot highlight

@danedexF5 would you post a screenshot?  I'm seeing this:

vs

Circles and lines should function as before, black on the inside with a colored border/stroke.

@samussiah Ah ok. Didn't know about changing those settings. The highlighting is working then. One thing I did notice and not sure if this is by design or not. I used Concomitant Medications as the Event and have tried a few different symbols, no change. It does highlight though.


FM migration

DON'T MERGE
This is a temporary branch that can be used to migrate some data, after this we can close it
Problem: We have data in version v01 https://github.com/rAIdiance/icu-chest/wiki/Data-versions that we want to migrate to the v03 format.
Solution: We need to go through the files again anyway. This PR facilitates loading the existing segmentation when going it through again.
Changes:

provide list of accession numbers and their labels (https://github.com/rAIdiance/icu-chest/pull/184)
draft untested code

Instructions:

Copy/Symlink data from ScaleOut dir /mnt/ScaleOut/DHA/icu/segmentation/ to a directory accessible by this code

List of labels
CVC (central venous catheter = ZVK, Shaldon) -> countable
TCVC (tunneled central venous catheter = PermCath, Broviac)
ICVC (implanted central venous catheter = Port)
PICC (peripherally inserted central catheter)
Thoracic drainage -> countable
Endotracheal tube
Tracheostomy tube
Gastric tube

# before
FOREIGN_MATERIAL_TYPES_NOT_COUNTABLE = ['trachealtube', 'Magensonde']
FOREIGN_MATERIAL_TYPES_COUNTABLE = ['ZVK', 'drainage']

# after
FOREIGN_MATERIAL_TYPES_NOT_COUNTABLE =
    # 'Tracheostomy tube'
    # 'Gastric tube'
    # 'Endotracheal tube'
FOREIGN_MATERIAL_TYPES_COUNTABLE = ['CVC', 'drainage']
    # 'CVC' (central venous catheter = ZVK, Shaldon) -> countable
    # 'TCVC' (tunneled central venous catheter = PermCath, Broviac)
    # 'ICVC' (implanted central venous catheter = Port)
    # 'PICC' (peripherally inserted central catheter)
    # 'Thoracic drainage' -> countable

Deploy:

The 400 Dicom images need to be in the segm_exploration/images dir
The annotations need to be in the some dir, that we can select when Slicer extension is opened

FYI @jlvahldiek

Closing since the migration is finished


conditional FFmpeg output coloring

if FFmpeg exits normally (returncode 0), the output at the end should probably be an INFO instead of an ERROR.
This would make it easier to see when something actually goes wrong, and also makes normal runs less scary :p
Also maybe append a bit of text at the end saying "FFmpeg failed with error $RETURNCODE" at the end when it's nonzero?

The coloring should be fixed. I totally agree with it.
As for the return code part, I think an error log is much helpful then the return code since the code does not provide very much info.
Maybe we can find a way to provide user error logs w/o occupying the whole screen lol


View bar values above bars on bar charts

Hi,
how to show bar values above (or into) bars on bar charts?
Also, how to show bars with different colours in a same dataset?
These features was working with in older version of ChartJs (https://github.com/kerbasaurus/Chart.js) but don't work anymore with the latest version (2014 september, 17)
Thanks a lot to anyone for the help!
Bye

Closing as duplicate of #327


ye olde unit test is too slow

In presence of AVRF the program verifications take too slow. This is increasing the CI runs to take more than an hour. Suggestions to speed things up

split the unit test into 2 chunks that can run in parallel on github runners.
move the chk build runs to scheduled runs instead of PR.

Since now memory leak detection and fault injection are only present in debug builds, we cannot move debug builds to scheduled runs.

Can we split out native vs JIT in the unit tests and run them in parallel? For the native only build, we can also then skip the JIT tests.

Alternative:
Only run scheduled builds with app-verifier enabled. We already have an address sanitizer build for PR, so both seems redundant for PRs.

Alternative: Only run scheduled builds with app-verifier enabled. We already have an address sanitizer build for PR, so both seems redundant for PRs.

Looks like these don't overlap perfectly. From the ASAN team about our appverif config:
appverif -enable Exceptions Handles Heaps Leak Locks Memory SRWLock Threadpool TLS DangerousAPIs DirtyStacks TimeRollOver -for unit_tests.exe

No, asan won't detect all the same bugs, and is incompatible with app verifier. Asan detects primarily memory safety issues and can do so with more accuracy and precision than app verifier can. However, it does not detect threading issues, tls issues, time rollover issues, etc. Asan is more invasive than app verifier as well, the compiler knows about asan and generates additional code to track memory allocation metadata, particularly for stack allocations.
So, asan won't detect all the bugs that app verifier can with those settings but appverifier can't detect all the bugs that asan can either.


[Docs] Update model template link address

This PR updates the conversation template's link in guide docs

@MasterJH5574 Hard work checking, please help merge, I found that this link needs to be updated during the process of checking its use.


onFailure(int, Header[], String, Throwable) was not overriden, but callback was received

code show as below：
JSONObject jsonObject = new JSONObject();
AsyncHttpClient httpClient = new AsyncHttpClient();
String uri = JsonURL.INQUIRE_PAY_SERVICE_FEE_INFORMATION;
RequestParams params = new RequestParams();
params.put("json",jsonObject);
httpClient.post(uri, params, new JsonHttpResponseHandler(){
@SuppressLint("ApplySharedPref")
@Override
public void onSuccess(int statusCode, Header[] headers, JSONObject response) {
            }
           @Override
            public void onSuccess(int statusCode, Header[] headers, JSONArray timeline) {

            }
      });

open your eyes
onFailure(int, Header[], String, Throwable)
you need use in your project
onFailure(int code, Header[] headers, String s, Throwable t)


CC3XX: Adding MAC single part + multipart entrypoints

Signed-off-by: Salome Thirot<EMAIL_ADDRESS>

@salomethirot-arm please rebase. I will review afterwards :-)


Compaction job status store sometimes fails with transaction conflict

Description
Sometimes a compaction job status store update can fail because of a transaction conflict. We would like that to not be possible, as we would like all updates to compaction jobs to be captured, and it shouldn't fail processing the compaction job.
See below for logs.
Analysis
This needs some thought about how we should handle the transaction. See the DynamoDB docs:
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/transaction-apis.html#transaction-conflict-handling
Logs
This is not easy to reproduce as the transaction conflict is not consistent. When it does fail we get logs like this:
[main] compaction.jobexecution.CompactSortedFilesRunner INFO - CompactionJob is: CompactionJob{jobId='abc',...}
[main] compaction.jobexecution.CompactSortedFilesRunner INFO - Compaction job abc: Created background thread to keep SQS messages alive (period is 300 seconds)
[Thread-123] action.thread.PeriodicActionRunnable INFO - PeriodicActionRunnable is sleeping for 300000 milliseconds
[main] compaction.jobexecution.CompactSortedFiles INFO - Compaction job abc: compaction called at <time>
Exception in thread "main" sleeper.compaction.status.store.CompactionStatusStoreException: Failed jobStarted for job abc
at sleeper.compaction.status.store.job.DynamoDBCompactionJobStatusStore.jobStarted(DynamoDBCompactionJobStatusStore.java:112)
at sleeper.compaction.jobexecution.CompactSortedFiles.compact(CompactSortedFiles.java:107)
at sleeper.compaction.jobexecution.CompactSortedFilesRunner.compact(CompactSortedFilesRunner.java:227)
at sleeper.compaction.jobexecution.CompactSortedFilesRunner.run(CompactSortedFilesRunner.java:188)
at sleeper.compaction.jobexecution.CompactSortedFilesRunner.main(CompactSortedFilesRunner.java:292)
Caused by: com.amazonaws.services.dynamodbv2.model.TransactionCanceledException: Transaction cancelled, please refer cancellation reasons for specific reasons [None, TransactionConflict] (Service: AmazonDynamoDBv2; Status Code: 400; Error Code: TransactionCanceledException; Request ID: 123; Proxy: null)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:755)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:715)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:697)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:561)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:541)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:6858)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:6825)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.executeTransactWriteItems(AmazonDynamoDBClient.java:5836)
at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.transactWriteItems(AmazonDynamoDBClient.java:5800)
at sleeper.compaction.status.store.job.DynamoDBCompactionJobStatusStore.save(DynamoDBCompactionJobStatusStore.java:126)
at sleeper.compaction.status.store.job.DynamoDBCompactionJobStatusStore.jobStarted(DynamoDBCompactionJobStatusStore.java:110)
... 4 more

This has just happened for me when running a system test during the jobCreated call
sleeper.compaction.status.store.CompactionStatusStoreException: Failed jobCreated for job 70b4079f-74bb-4ede-a426-8d1a8e4965d1
        at sleeper.compaction.status.store.job.DynamoDBCompactionJobStatusStore.jobCreated(DynamoDBCompactionJobStatusStore.java:115)
        at sleeper.compaction.job.creation.CreateJobs.createJobsForTable(CreateJobs.java:162)
        at sleeper.compaction.job.creation.CreateJobs.createJobs(CreateJobs.java:112)
        at sleeper.systemtest.drivers.compaction.CompactionDriver.forceCreateJobsGetIds(CompactionDriver.java:89)
        at sleeper.systemtest.suite.dsl.SystemTestCompaction.forceCreateJobs(SystemTestCompaction.java:45)
        at sleeper.systemtest.suite.dsl.SystemTestCompaction.splitAndCompactFiles(SystemTestCompaction.java:50)
        at sleeper.systemtest.suite.PartitionSplittingIT.shouldSplitPartitionsWith100RecordsAndThresholdOf20(PartitionSplittingIT.java:76)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
        at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: com.amazonaws.services.dynamodbv2.model.TransactionCanceledException: Transaction cancelled, please refer cancellation reasons for specific reasons [None, TransactionConflict] (Service: Amazon>
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:755)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:715)
        at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:697)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:561)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:541)
        at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.doInvoke(AmazonDynamoDBClient.java:6858)
        at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.invoke(AmazonDynamoDBClient.java:6825)
        at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.executeTransactWriteItems(AmazonDynamoDBClient.java:5836)
        at com.amazonaws.services.dynamodbv2.AmazonDynamoDBClient.transactWriteItems(AmazonDynamoDBClient.java:5800)
        at sleeper.compaction.status.store.job.DynamoDBCompactionJobStatusStore.save(DynamoDBCompactionJobStatusStore.java:138)
        at sleeper.compaction.status.store.job.DynamoDBCompactionJobStatusStore.jobCreated(DynamoDBCompactionJobStatusStore.java:113)
        ... 9 more

We had this failure again last night in the system test PartitionSplittingIT, with the same stack trace as before.

One solution would be to ensure that only one process should be in charge of a given compaction job at a time. When the job creation lambda sends the job to SQS, we could ensure that no further updates happen to the job in the status store in the lambda. We could record the job created event before sending it to SQS.
This is also related to an issue for replacing SQS for compaction jobs:

https://github.com/gchq/sleeper/issues/1787

Here's a possible sequence of events:

A batch of compaction jobs are created in memory with fresh UUIDs
Record the job created event, and store the whole job in the status store
Assign the job to the input file references in the state store
Record the job has taken ownership of its input file references
Send the job to SQS
Repeat 2-5 for each job in the batch


latest does not download the latest release. Instead it downloads the most recent

For example, right now for gitbase the latest release is v0.23.1, but for the argument latest regression-gitbase will download the most recent tag, v0.24.0-rc3, which is a pre-release.
The fix would be to use GetLatestRelease instead of ListReleases in releases.go. I didn't submit a PR directly because I'm not sure if this would break something somewhere... let me know if this change makes sense and I'll submit one.

Maybe in this context, if you choose latest version, you want the newer version, even if it is an RC. On Jenkins we are not using this flag, we are generating reports from master every day with new commits.


Sleep Blanket doesn't leave

This is kind of a weird one...
So if you place your cursor where a map with Leaflet.Sleep is going to load on the page before it is loaded.
The Leaflet.Sleep blanket won't clear until you leave the map and re-enter it. A super small thing, just something I noticed. :smiley:

Thanks! I won't be diving in to this in the near future, but I'll leave this open as long as the behavior exists.


🪂 Ensure markdown file under docs can be parsed solely

Describe your changes
The markdown under olive docs contains the flag from myst-parser which makes the git markdown preview weird. Just found that it can be simply fixed and keep the myst_parser worked.

Checklist before requesting a review

[ ] Add unit tests for this change.
[ ] Make sure all tests can pass.
[ ] Update documents if necessary.
[ ] Format your code by running pre-commit run --all-files
[ ] Is this a user-facing change? If yes, give a description of this change to be included in the release notes.

(Optional) Issue link

How do you get that weird preview?

How do you get that weird preview?

Oh, when I looked around the repo in github page, it is rendered as that.  For example: https://github.com/microsoft/Olive/blob/main/docs/source/tutorials/advanced_users.md


predict_instances_big() needs fixing

Hi,
I tired to use the model.predict_instances_big()to overcome some GPU memory issues (using a small GPU)...
splinedist\big.py tries to from .geometry import polygons_to_label, polyhedron_to_label
polyhedron_to_label is a function that does not exist.
It should be replaced with from .geometry import polygons_to_label
bests

Hi, thanks for pointing out this issue. It has been sorted out now in 8eeff9e9541977ab327d49cd6d6f55da76fa7962.

Closing this issue now. Please feel free to reopen it, if your issue is not solved.


Start chart at specific datetime

Checklist

[x] I am running the latest version of the card
[x] I checked if there isn't another feature request opened with the same request
[x] I checked that the feature is not already available in the dev branch

Is your feature request related to a problem? Please describe.
I'd like to have the start of a chart at a specific date and time. Currently it seems this has to be done with
span:
  offset: -20days

Describe the solution you'd like
Add an option at which date and time to start the chart, like
span:
  startpoint: 2022-12-30 15:24:36

This keeps a historical chart fixed and doesn't behave like a sliding window when used with offset

Would I be able to also use an entity (or attribute) state value as start/endpoint? such as sunrise/sunset from the sun integration?

I still find this interessting.


Consolidate URLSessionTaskMetrics into Timeline

Our current integration of URLSessionTaskMetrics is awkward and inelegant, requiring an AnyObject property with internal shenanigans to expose the metrics to users. It's also a bit confusing to have that property in addition to the Timeline property exposed for older OSes. We should combine all statistics under Timeline, which would add additional properties to cover what's received from the URLSessionTaskMetrics.

Like enhanced TLS errors, supporting this would require a significant refactor of Alamofire's internals in regards to what data goes where.

Timeline has been removed in favor of full URLSessionTaskMetrics support in the rewrite.


Avoid duplicates when finding jsdoc

Add a cheap assert for detecting duplicates. getJSDocTags must find either [1] 0 or 1 comments or [2] the first two comments must not be identical. This does not always find duplicates for nodes with 3 or more comments, but these nodes are exceptionally rare.

This assert fired for over 20 of the around 250 tests we have that retrieve JSDoc at all. So I fixed the asserts in [2] and [3]. However, no tests failed with or without duplicates, so I think our existing jsdoc code is resilient to duplicates.

There were overlapping cases from calls to getSourceOfAssignment and getSpecialPropertyAssignment. getSpecialPropertyAssignment is too restrictive, but was in the correct location (parent vs parent.parent), so I removed the getSourceOfAssignment call and replaced the getSpecialPropertyAssignment calls with a less restrictive check.

When a node's parent is a PropertyDeclaration, getJSDocCOmmentsAndTags would check the parent for jsdoc. But when the node is a PropertyDeclaration, getJSDocCommentsAndTags would use the jsdoc from the initializer. This second case is useful to make sure that property declarations get all their jsdoc, but results in duplicates for their initializers. I couldn't think of a better fix than tracking the previous node in the recursive lookup of getJSDocCommentsAndTags, which is a little clunky.

Build failed because of lint, which is fixed now.


Values missing if set to 0 and after converting toJson()

Hello,
I am running some tests to convert our google-protobuf setup to protobuf-es
we have a WebSocket receiving / requesting data between C++ and JavaScript
i have registered the types i am using and passing that to my unpack function.
I noticed that inside the message JSON after converting the incoming binary function that any value that was set to 0 goes missing from the json object
event.data is an ArrayBuffer so it needs to be converted to a UInt8Array it seems
 const data = new Uint8Array(event.data)
 const message = myMessagePacket.fromBinary(data);

 ...

//later i convert to json

const myMessage = message.anyTypedData.unpack(registry);

functionToPassBackToMyStateManmagement(myMessage.toJson())

I noticed printing myMessage.toJson() is missing any value which is set to 0.

Hi Terry, this is expected behavior for fields that do not track presence. The field is also omitted when serializing to binary.
You can pass the option emitDefaultValues: true as an argument to toJson. The option is documented here.

This is because fields with default values are emitted from the JSON output by default according to the Protobuf JSON mapping.
If you'd like to preserve these fields in the output, you can use the emitDefaultValues option like so:
myMessage.toJson({emitDefaultValues: true});

Our full docs are here.

Thank you for the reply. I hadn't seen that.
Looking forward to have this library implemented on our app, in place of google-protobuf


[DDW-431] Newsfeed shadow

This PR fixes Newsfeed drop shadow when there is an update item.
Screenshots

Testing Checklist

Slack QA thread

Review Checklist
Basics

[ ] PR has been assigned and has appropriate labels (feature/bug/chore, release-x.x.x)
[ ] PR is updated to the most recent version of the target branch (and there are no conflicts)
[ ] PR has a good description that summarizes all changes
[ ] PR has default-sized Daedalus window screenshots or animated GIFs of important UI changes:

[ ] In English
[ ] In Japanese

[ ] CHANGELOG entry has been added to the top of the appropriate section (Features, Fixes, Chores) and is linked to the correct PR on GitHub
[ ] Automated tests: All acceptance and unit tests are passing (yarn test)
[ ] Manual tests (minimum tests should cover newly added feature/fix): App works correctly in development build (yarn dev)
[ ] Manual tests (minimum tests should cover newly added feature/fix): App works correctly in production build (yarn package / CI builds)
[ ] There are no flow errors or warnings (yarn flow:test)
[ ] There are no lint errors or warnings (yarn lint)
[ ] There are no prettier errors or warnings (yarn prettier:check)
[ ] There are no missing translations (running yarn manage:translations produces no changes)
[ ] Text changes are proofread and approved (Jane Wild / Amy Reeve)
[ ] Japanese text changes are proofread and approved (Junko Oda)
[ ] UI changes look good in all themes (Alexander Rukin)
[ ] Storybook works and no stories are broken (yarn storybook)
[ ] In case of dependency changes yarn.lock file is updated

Code Quality

[ ] Important parts of the code are properly commented and documented
[ ] Code is properly typed with flow
[ ] React components are split-up enough to avoid unnecessary re-renderings
[ ] Any code that only works in main process is neatly separated from components

Testing

[ ] New feature/change is covered by acceptance tests
[ ] New feature/change is manually tested and approved by QA team
[ ] All existing acceptance tests are still up-to-date
[ ] New feature/change is covered by Daedalus Testing scenario
[ ] All existing Daedalus Testing scenarios are still up-to-date

After Review

[ ] Merge the PR
[ ] Delete the source branch
[ ] Move the ticket to done column on the YouTrack board
[ ] Update Slack QA thread by marking it with a green checkmark

@DeeJayElly did you use https://zpl.io/2ZX1YJl as a reference?

@DeeJayElly When the update item is not displayed, there is an extra space between the shadow and the rest of the item, that is visible while scrolling. This looks different on the layout. Check this screenshot and recording.
The shadow looks good when the update item is displayed.

recording

Fixed

@daniloprates please review this one 🙏

shadow uses an incorrect value:
now it is -  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
but it should be -  box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.25);
+
pay attention to the white theme, shadows there are lighter, they use 8% instead of 25% - rgba(0, 0, 0, 0.08);

shadow uses an incorrect value:
now it is -  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.2);
but it should be - box-shadow: 0 10px 10px -5px rgba(0, 0, 0, 0.25);
+
pay attention to the white theme, shadows there are lighter, they use 8% instead of 25% - rgba(0, 0, 0, 0.08);

New box-shadow colors are added pls recheck @a-rukin

@DeeJayElly
I couldn't make it work in the actual app 🤔  did you have a chance to test it with dummy data or just in the storybook?

@DeeJayElly
I couldn't make it work in the actual app 🤔 did you have a chance to test it with dummy data or just in the storybook?

Yes i did, you have to add dummy data + make sure some of the flags are set true.
For example your 'hasShadow' flag is not set on true, thats why you don't see the shadow on the element.

Oh... noticed this:

Strange line on your screenshot
Pls check color of the scroll bar. It looks like it's grey

Oh... noticed this:

Strange line on your screenshot
Pls check color of the scroll bar. It looks like it's grey

This line is removed

Scrollbar color is the old color which we have already across the whole application, for this light blue theme its:
'--theme-scrollbar-thumb-background': 'rgba(94, 96, 102, 0.3)',

Scrollbar color is the old color which we have already across the whole application, for this light blue theme its:
'--theme-scrollbar-thumb-background': 'rgba(94, 96, 102, 0.3)',

We have scrollbar color in a color of a text, so this color (you sent) is relevant only for parts where text is dark-grey. For the inverted parts color would be rgba(250, 251, 252, 0.3)

@DeeJayElly this is still no good... The vertical paddings are now off. Please test all cases and post screenshots to the PR description. Do not only test in storybook 🙏
Expected:

Actual:

Fixed

Issues:

Now it has weird padding when content is scrolled
Where is a separator line between update item and others. See design before scroll and after scroll - https://zpl.io/2ZX1YJl

Issues:

Now it has weird padding when content is scrolled
Where is a separator line between update item and others. See design before scroll and after scroll - https://zpl.io/2ZX1YJl

Updated

@a-rukin please test again 🙏

@DeeJayElly great adjustments. Just a minor thing: when there's no update item, the scrollbar looks odd ☝

@DeeJayElly great adjustments. Just a minor thing: when there's no update item, the scrollbar looks odd ☝

Fixed @daniloprates

without update item list has some strange paddings (top and bottom)

without update item list has some strange paddings (top and bottom)

Ok its fixed now. @a-rukin

@a-rukin please retest 🙏
@DeeJayElly I really hope you have covered all the cases...


Update iconset to be more cohesive

I thought the icons for the notifications could use an update, so I created these for my own personal use and thought you might want to use them in the main repo.

Wow super nice @goronfreeman! Thanks, I'll merge it :+1:

:clap: @goronfreeman


No way to automatically insert into enchantment library / of alexandria

Currently there is no way to automatically insert enchanted books into the library. Hoppers, ae2 export buses, modern industrialization pipes, modern dynamics.. Nothing works.
Not sure if not implemented yet or a bug but i'm playing on the pack All Of Fabric 6 and manually added this mod in.

This isn't implemented as of right now, and it isn't very high on my to do list as of right now as I would have to rewrite how the library is implemented

Finally added in 1.0.3


Typo in the V8 CLI Installation Guide wiki

Just a simple typo at the wiki:
In section "Installers and compressed binaries", the sample script is incorrectly typed as "mv cf8 /user/local/bin", which the "user" should be "usr".

Thank you @RoyceWang for bringing this to our attention. The typo has been fixed.