Fast return on eth_sendRawTransaction

Problem
Currently the eth_sendRawTransaction endpoint is plagued with timeouts from many different sources due to server, netowkr and client timeouts settings.
In the case of a large callData call eth_sendRawTransaction logic employs HFS to submit create and append file transctions to hold the callData temporarily.
This result in increased latency and a subpar experience for some users and operators.
Solution
The team discussed the option of returning early on the transaction instead of waiting for the relay to sequentially handle all the orchestration.
If the transactions passes the needed relay precheck validations could it return a response to the user but in the background continue to submit the EthereumTransaction and or HFS transactions to the network?
Most EVM tools will utilize eth_getTransactionRecipt waiting to find the status of the transaction.
Could this be utilized to reduce latency and improve the DevEx and UX?
Alternatives
No response
### Tasks
- [x] Research current approach by other products
- [ ] Create design doc (TBD if needed)
- [ ] https://github.com/hashgraph/hedera-json-rpc-relay/issues/3270
- [ ] Use the SDK instead of MN to poll for the validity of transactions for faster time to finality
- [ ] Explore considerations for large callData w HFS
- [ ] Deprecate the old logic of slow return (only 1 or 2 sprints after the release of the feature)

After conducting research and gathering insights from the team, I've compiled an overview of the typical processing flow for eth_sendRawTransaction. Below is an outline of how Ethereum generally handles this process.
Standard Processing in Ethereum
When a client submits an eth_sendRawTransaction request, the JSON-RPC server immediately returns the Keccak-256 hash of the signed raw transaction. This response is sent without waiting for the transaction to be mined or fully processed, highlighting that all subsequent transaction handling steps occur asynchronously.
1. Immediate Hash Return
The JSON-RPC server verifies the transaction’s signature, computes the transaction hash using Keccak-256, and promptly returns this hash to the client as a unique identifier. At this point, the server has not yet broadcasted or validated the transaction for mining.
2. Asynchronous Processing

Transaction Validation: The transaction undergoes verification checks, including nonce validation, gas limit checks, and balance checks to ensure sufficient funds.
Broadcasting: Once validated, the transaction is broadcast across the Ethereum network.
Mining: Miners pick up the transaction from the pool, attempt to include it in a block, and engage in solving the proof-of-work problem. If mined successfully, the transaction is included in a block and confirmed by the network.

3. Client Responsibilities
With the transaction hash returned instantly, it becomes the client’s responsibility to track the transaction’s status using this hash (e.g., via eth_getTransactionReceipt or monitoring confirmations) as it goes through validation, propagation, and eventual mining.
Processing in the Context of Hedera
In Hedera, the flow is similar, but here the transaction is fully processed, submitted to the network, and recorded by the mirror node before the transaction hash is returned to the client. This approach effectively adds the entire execution time to the client’s wait time. Additionally, as mentioned in the issue, Hedera’s File Service (HFS) is sometimes used for transactions with large call data, further increasing execution time. These added steps can push the total processing time beyond the standard 20,000 ms timeout for many EVM client tools.
Exploring Early Return Options
The team has discussed returning the transaction hash to the client immediately after pre-check validations, allowing all subsequent orchestration tasks (such as submitting EthereumTransaction or HFS transactions to the network) to continue running in the background. This would potentially reduce wait times for clients while maintaining backend integrity.
Experiment and Results with Hedera JSON-RPC Relay
I conducted a some experiments on the Hedera JSON-RPC Relay, where the transaction hash was computed and returned to the client right after the server received the raw data, with all orchestration logic running in the background. This approach showed a marked reduction in latency, bringing 4,000 ms requests down to 50-100 ms, while still ensuring the transaction was recorded in the network and available in Hashscan for lookup.
Challenges with the Early Return Approach

While effective for independent requests, such as contract deployments or basic sendRawTransaction calls, this approach poses challenges for chained requests. For such requests, it can lead to execution reverts with errors like “no data present; likely require(false) occurred.”

Nice work @quiet-node.
In the challenges section, are these challenges the same on Ethereum also or are you highlighting cases that would be unique to Hedera and if so why?

In the challenges section, are these challenges the same on Ethereum also or are you highlighting cases that would be unique to Hedera and if so why?

@Nana-EC The mentioned challenge was the immediate behavior I observed occurred when running eth_sendRawTransaction acceptance tests, specifically with tests involving consecutive submissions back-to-back (what I referred to as “chained requests”). This issue seems to be unique to Hedera rather than Ethereum.
I believe here's what likely happens: up until now, sendRawTransaction waits for a transaction to be fully processed and recorded in the mirror node, which means the client only needs to wait until sendRawTransaction returns the txHash. Consequently, when the next request (which relies on data from the previous request) is submitted, that data has been fully processed and is available in the consensus and mirror nodes.
With this new approach, however, if sendRawTransaction request A  returns txHashA immediately without waiting for complete processing, and if the test client doesn’t poll for confirmed results (e.g., using eth_getTransactionReceipt), then when the subsequent sendRawTransaction request B is submitted, txHashA might still reference an empty transaction (not yet fully processed). This could be the culprit that triggers the error “no data present; likely require(false) occurred.”
Also updated the comment above (challenge section) with this explanation.

In the challenges section, are these challenges the same on Ethereum also or are you highlighting cases that would be unique to Hedera and if so why?

@Nana-EC The mentioned challenge was the immediate behavior I observed occurred when running eth_sendRawTransaction acceptance tests, specifically with tests involving consecutive submissions back-to-back (what I referred to as “chained requests”). This issue seems to be unique to Hedera rather than Ethereum.
I believe here's what likely happens: up until now, sendRawTransaction waits for a transaction to be fully processed and recorded in the mirror node, which means the client only needs to wait until sendRawTransaction returns the txHash. Consequently, when the next request (which relies on data from the previous request) is submitted, that data has been fully processed and is available in the consensus and mirror nodes.
With this new approach, however, if sendRawTransaction request A returns txHashA immediately without waiting for complete processing, and if the test client doesn’t poll for confirmed results (e.g., using eth_getTransactionReceipt), then when the subsequent sendRawTransaction request B is submitted, txHashA might still reference an empty transaction (not yet fully processed). This could be the culprit that triggers the error “no data present; likely require(false) occurred.”
Also updated the comment above (challenge section) with this explanation.

Thanks.
My thinking here is a targeted approach.
Our E2E transaction submission is still faster than other networks so initially maybe we return one we get an SDK transaction receipt.
This would mean no difference for transactions that don't require HFS.
The difference here would be for HFS included transaction they would run faster as we wouldn't wait on the HFS logic but instead could return on the first HFS transaction. Something to discuss as see what's the best recommendation here.
In terms of the chained transactions it's always the responsibility of the client to ensure their coordination logic.
That would mean doing an eth_getTransactionReceipt before submitting the next eth_sendRawTransaction.

In the challenges section, are these challenges the same on Ethereum also or are you highlighting cases that would be unique to Hedera and if so why?

@Nana-EC The mentioned challenge was the immediate behavior I observed occurred when running eth_sendRawTransaction acceptance tests, specifically with tests involving consecutive submissions back-to-back (what I referred to as “chained requests”). This issue seems to be unique to Hedera rather than Ethereum.
I believe here's what likely happens: up until now, sendRawTransaction waits for a transaction to be fully processed and recorded in the mirror node, which means the client only needs to wait until sendRawTransaction returns the txHash. Consequently, when the next request (which relies on data from the previous request) is submitted, that data has been fully processed and is available in the consensus and mirror nodes.
With this new approach, however, if sendRawTransaction request A returns txHashA immediately without waiting for complete processing, and if the test client doesn’t poll for confirmed results (e.g., using eth_getTransactionReceipt), then when the subsequent sendRawTransaction request B is submitted, txHashA might still reference an empty transaction (not yet fully processed). This could be the culprit that triggers the error “no data present; likely require(false) occurred.”
Also updated the comment above (challenge section) with this explanation.

Thanks. My thinking here is a targeted approach. Our E2E transaction submission is still faster than other networks so initially maybe we return one we get an SDK transaction receipt. This would mean no difference for transactions that don't require HFS. The difference here would be for HFS included transaction they would run faster as we wouldn't wait on the HFS logic but instead could return on the first HFS transaction. Something to discuss as see what's the best recommendation here.
In terms of the chained transactions it's always the responsibility of the client to ensure their coordination logic. That would mean doing an eth_getTransactionReceipt before submitting the next eth_sendRawTransaction.

Yes, I believe this would be a safe initial step. HFS transactions are the primary contributors to extended timeouts, so handling them in the background would alleviate most of the timeout issues.
Another concern is if a client submits a sendRawTransaction request requiring HFS transactions and we return the txHash immediately, there could be cases where the HFS encounters issues, resulting in the e2e submission being rejected and the transaction never reaching the EVM. Consequently, no record would appear on the mirror MN. Meanwhile, clients would continue polling the mirror node with eth_getTransactionReceipt, which may never yield a result since the transaction was not recorded. From a client’s perspective, this could lead to indefinite polling, yes they could technically set timeout for the polling process, but still there's no actual clear stopping point as the txHash would remain unresolved.

Continuously gathering suggestions from the team to enhance the end-to-end latency of eth_sendRawTransaction:

Query the transaction receipt directly from the CN at no cost and significantly faster, rather than polling the MN for positive scenarios.

Also adding to my thoughts around transaction that need time for HFS logic and how to distinguish between a transaction that never got submitted and one that's being worked.
https://geth.ethereum.org/docs/interacting-with-geth/rpc/ns-txpool notes pending transactions.
This is something we could consider in the future but not without user need.
In general eth_getTransactionReceipt  differs from the transactions included in the block.
Transactions are received and submitted but there's no assurance for inclusion in a block since transactions can fail precheck. Hence it's should be fine to return txHash the moment we've concluded our prechecks (relay or relay+CN)

Another observation regarding the client user experience, noted here for reference:
If a request fails due to internal errors (e.g., maxChunkSize exceeded, HBAR rate limits, SDK errors, etc.), the fast-return logic will not reflect these errors in the response to end clients. Instead, it will still return a transaction hash. Consequently, clients relying on eth_getTransactionReceipt to loop for the transaction receipt may encounter an endless loop, as the receipt will always return null.
That said, it remains the responsibility of the users to handle such cases appropriately.

@quiet-node kindly move the remaining tickets out of this EPIC.
Leave them as 2 separate tickets in the backlog with a medium priority

Technical debt tickets are created and removed from EPIC.

[eth_sendRawTransaction Fast Return] Deprecate the original logic that waits for transactions to be fully processed before returning the transaction hash.
[eth_sendRawTransaction Fast Return] Enhance eth_getTranasctionReceipt endpoint to expose errors for silent failures


chore: Enable dependabot for automatic dependency updates

I checked repo settings and looks like it’s already enabled.

@antonmedv I don't see any PRs for dependabot - https://github.com/antonmedv/expr/pulls/app%2Fdependabot

As all deps are for testing/debugging. And expr dont have any deps in production build we can simple not bother with it)


Home App automation to turn off AC, turns it back on.

The AC turns back on when an automation from the home app sets it to "off".
Here is my config.json fragment:
{
			"name": "BedRoom AC",
			"type": "air-conditioner",
			"preventResendHex": true,
			"host": "34:ea:34:42:f1:28",
			"heatTemperature": 21,
			"minTemperature": 0,
			"maxTemperature": 42,
			"autoCoolTemperature": 27,
			"autoHeatTemperature": 19,
			"defaultCoolTemperature": 22,
			"defaultHeatTemperature": 26,
			"replaceAutoMode": "cool",
			"pseudoDeviceTemperature": 24,
			"data": {
				"off": "260066006

any ideas if this behaviour can be changed in the config.json?

are u sure of the iR codes?

Have a look at this:
https://github.com/lprhodes/homebridge-broadlink-rm/issues/357

I had the same issue, the home app send the temp hex with the off hex when you set it on automation
add "ignoreTemperatureWhenOff" : "true" to the ac config and it will turn off

Hey, are you still experiencing this? I'm waiting on a new RM Pro but shall give it a test once I get it.

Sorry, for responding after years! The suggestion from @sushenmathur worked for me. Thanks.


[move-function] Add tests for debug info for owned arguments.

The first commit fixes a small issue where I was inserted a debug_info inst before a reinit instead of after. The main commit is the 2nd one.

[move-function] Add tests for debug info for owned arguments.
Some notes:

I only updated the dwarf dump checks for the cases where the test case I was
adding already had checks. The rest I am going to add the dwarf checks all at
once in a subsequent commit.

In the dwarf checks that I wrote, there are a few issues that show up due to
some LLVM fixes that I need to finish upstreaming. Once I upstream them, I will
be able to enable the specific patterns I have disabled. This ensures I atleast
will be able to tell if I am changing the current codegen.

This is dependent on the previous commit since one of the test cases hit the
bug fixed by the first commit in the PR.

@swift-ci test


Add test for fault abort filter

Please provide a description of this PR:

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
af0c52d38b0e567b1273a2e558cd316b2c0864bd
link
unknown
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests_istio

@howardjohn: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

unit-tests_istio
af0c52d38b0e567b1273a2e558cd316b2c0864bd
link
true
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test unit-tests_istio


Root element () attributes not merged

For example a css class on <html> that changes every page, doesn't get updated.

This is not straightforward because it's not clear how HTML attributes should be handled—should their contents be replaced, or should they be merged?
For example, let's say we add class names to denote the page controller/action:
<html class="posts posts-index">

We can then scope our styles depending on the context. But what should happen when we visit posts#show which sends over:
<html class="posts posts-show">

Should the class name be replaced: class="posts posts-show", or should the contents be merged: class="posts posts-index posts-show"? If we are using the class to scope styles, then we probably want them replaced otherwise our class attribute could eventually end up with all the classes for our entire app :/ However if we replace the contents, we face a different problem…
Modernizr dynamically adds class names to the HTML on the initial page load e.g. class="js no-touch svg". When a new page is loaded, the HTML class attributes in the response won't include any of these dynamically added classes, so if the class contents are replaced, the Modernizr class names will be removed and dependent code will break :/
So unfortunately there isn't an easy solution to this problem 😞 If you control the code which generates your HTML, then you could add a data attribute on the body element containing all the HTML attributes e.g. (data-html-attributes="{\"attribute\": \"value\"}"), and then apply them on turbolinks:load. If you don't have that control then you may want to look into turbolinks:request-end, which includes the response HTML in event.data.xhr.response. Theoretically you could parse this get the HTML attributes and as before, apply them on turbolinks:load. It might be worth a try, or it might get messy!

I think it is pretty clear, unless I'm missing something...
The solution would be to replace all attributes with those sent by the server and then let the other scripts (like modernizr) run.
Modernizr should run for every page even when using turbolinks, right?

The solution would be to replace all attributes with those sent by the server and then let the other scripts (like modernizr) run.
Modernizr should run for every page even when using turbolinks, right?

To achieve the performance benefits, scripts are parsed and evaluated just once. So Modernizr only adds classes on the initial page load.


Fixes #1139 - Add Frame.select method

Added Frame.select method for issue #1139

I signed it!

@googlebot  I signed it!

@aslushnikov  Working on the changes as the fixes that you mentioned have been commited.

Closing this in favor of #1243


Move the content of the flask-k8s charm to a separate Python library

Overview
Refactor the flask-k8s charm by transferring the majority of its logic to the xiilib Python library.
Rationale
By creating a universal library for all 12-factor charms, we enable the reuse of components across various 12-factor charms. Additionally, this approach reduces the flask-k8s charm's size, making it fits into a template.
Checklist

[x] The charm style guide was applied
[x] The contributing guide was applied
[x] The changes are compliant with ISD054 - Managing Charm Complexity
[x] The documentation is generated using src-docs
[x] The documentation for charmhub is updated
[x] The PR is tagged with appropriate label (urgent, trivial, complex)

You are also changing the ingress lib version as part of this PR. Can you update the description? Also, it would be better next time to have changes as atomic as possible in each PR for easier review, among other reasons. I haven't seen a PR for review for the new repository. Can you link it here?

Sorry I forgot there's already an old pull request to update the ingress charm library https://github.com/canonical/flask-k8s-operator/pull/68. I will merge that shortly after the CI passed.
For the new repository, it's here https://github.com/canonical/xiilib. But there's not much thing we can do in that repository (CI/CD) since that's highly dependent on the charmcraft update (new init profile). For now, I just pined the commit version of the xiilib library, but I will update that repository to make it more formal.

You are also changing the ingress lib version as part of this PR. Can you update the description? Also, it would be better next time to have changes as atomic as possible in each PR for easier review, among other reasons. I haven't seen a PR for review for the new repository. Can you link it here?

Sorry I forgot there's already an old pull request to update the ingress charm library #68. I will merge that shortly after the CI passed.
For the new repository, it's here https://github.com/canonical/xiilib. But there's not much thing we can do in that repository (CI/CD) since that's highly dependent on the charmcraft update (new init profile). For now, I just pined the commit version of the xiilib library, but I will update that repository to make it more formal.

Understood. Thank you!

I have seen this PR, just holding off review as we are still discussing a spec for how we approach this and what the contents of charm.py are


ROX-8056: upgrade to go 1.17 in go.mod

Description

Changed go version in go.mod to 1.17, then ran go mod tidy -go=1.16 && go mod tidy -go=1.17.
Removed hardcoded go version protection in scripts/ci/libs.sh

Note that running go mod tidy after changing  1.16 to1.17 results in error, and the tool outputs:
To upgrade to the versions selected by go 1.16:
	go mod tidy -go=1.16 && go mod tidy -go=1.17
If reproducibility with go 1.16 is not needed:
	go mod tidy -compat=1.17

Checklist

[ ] Investigated and inspected CI test results
- [ ] Unit test and regression tests added
- [ ] Evaluated and added CHANGELOG entry if required
- [ ] Determined and documented upgrade steps
- [ ] Documented user facing changes (create PR based on openshift/openshift-docs and merge into rhacs-docs)

Testing Performed
CI should be sufficient for these changes. Should not be merged until also downstream is proven to work with these changes.

Is there a reason you didn't go with
If reproducibility with go 1.16 is not needed:
	go mod tidy -compat=1.17

? Because to me it doesn't sound like this reproducibility is needed, but I also don't have a sense as to how the result would differ.

Is there a reason you didn't go with
If reproducibility with go 1.16 is not needed:
	go mod tidy -compat=1.17

? Because to me it doesn't sound like this reproducibility is needed, but I also don't have a sense as to how the result would differ.

@misberner Actually the first time I went with -compat=1.17, then I changed my mind because:

that one causes a lot of changes in go.sum, so I thought the chances of unwanted side effects are higher
when @vikin91 did this change (which was then reverted) in https://github.com/stackrox/rox/pull/9728 he also didn't have any changes to go.sum so I assumed he also chose the same approach

I found this about the topic:
https://stackoverflow.com/questions/71973152/go-mod-tidy-error-message-but-go-1-16-would-select
I wasn't convinced after reading this that we need any off the approaches, so I just chose what I thought was slightly safer.

when @vikin91 did this change (which was then reverted) in https://github.com/stackrox/rox/pull/9728 he also didn't have any changes to go.sum so I assumed he also chose the same approach

I would not take that as an oracle 😂

Downstream CI passed:

https://gitlab.cee.redhat.com/stackrox/rhacs-midstream/-/pipelines/2277395
https://jenkins-cpaas-rhacs.apps.cpaas-poc.r6c9.p1.openshiftapps.com/job/gitlab-event-dispatcher/3/console

Which means that it should be safe to merge this PR.


Sometimes DadGuide just shows a blank screen

Sometimes when switching to DadGuide, it just shows a blank screen.  Waiting for a while, the ad will appear that the bottom, but no content.  The only recourse is to kill the app and relaunch it.
I've attached a screen shot.
I'm running version 16, but I've seen this with previous versions.  iPhone 11 Pro Max with iOS 13.5.

Hmm, thanks. This seems awkward to reproduce.
The next time this happens, after you restart, can you immediately go to settings -> contact us and submit feedback? There might be something in the logs that will help.


Add a way to visually tell which enum option is the default in the dropdown

I'm not sure what exactly it could be.

Bold font.


update variable sample_rate to sr

On line 300 the variable sample_rate should be changed to sr.  In the function librosa.load, sr=None allows us to use the native sample rate of the audio file being examined, but currently we are ignoring that sample rate due to a mismatch in variable names.  Prior to this function sr is defined on line 286 so every file is using that sample rate.  Assuming all files are using the same sample rate this is ok, but probably not what you were intending to do as unused variables are often saved to "_" to show they are unused.
Making this change would allow the following line's function librosa.feature.melspectrogram to properly use the native sample rate which was determined when sr=None in the pervious function.

Nick - can I get you to make these PRs against https://github.com/falloutdurham/beginners-pytorch-deep-learning/ instead? I'm likely to archive this repo at the weekend to avoid confusion. Thanks!

You got it.  I really like the book and I'm happy to help out!


Call with BadTypeMismatch

Hello Nauful,
My client asked me to implement call/methods.
As I don't have his opc server, I tried to find one for free. So I found Prosys (https://prosysopc.com/products/opc-ua-simulation-server/)
I could Read its InputArguments and OutputArguments, but when I try the call, its execute the method at the server

But the StatusCode returns BadTypeMismatch

Do you know what can be?
Best Regards,
Vítor Guedes

Hello Vitor,
The server returns that error, not the client. Is the server able to read all of the input arguments passed? Would you be able to get an unsecured wireshark capture?
Regards,
Nauful

Hello,
I think the server received the arguments, at least the "pow" and 15.0 and  executed correctly the method

I attached the wireshark zipped.
call_wireshark.zip
Thank you,
Vítor Guedes

There might be an issue with the return type but I can't find it in the wireshark capture. Can you trim the wireshark to only that part of the timeline, or tell me which ports are used for opcua?
Regards,
Nauful

Hello,
I don't know if I understand correctly what to do with trim the wireshark.
But it this one:

I attached another zip with the new wireshark, and I included a wireshark with uaexpert (it works with it, I don't know if it helps)
I am using 53530 port.
wireshark.zip
Best Regards,
Vítor Guedes

I see the UA traffic in call_uaexpert but not in call_api. Can you show me the body for call request and response via api?
This is the one for call_uaexpert:

Hello,
The call request

The call response

I zipped again the wireshark
call_api.zip
Maybe I am doing something wrong at the code.

Best Regards,
Vítor Guedes

Found and fixed a bug, please try with the latest.

Hello,
The BadTypeMismatch error was fixed, but unfortunately I have another problem. Now it is returning BadDecodingError

The problem seems to be at numOutputs

Because it only have two and succeeded became false

I attached again the wireshark
call_api.zip
Best regards,
Vítor Guedes

Hmm, pushed another update. Please try that and let me know if it works.
Thanks,
Nauful

Now it is working!!
Thank you so much
Vítor Guedes

Great! I'll push a new package in a bit.
Thanks,
Nauful


Integrate Storybook

We need to integrate the UI components with Storybook so we can run tests for accessibility and functionality as the library grows in size and adoption.

Hi @zoltanszogyenyi,  I can help with this :)

Hey @mouracamila,
Oh, awesome! I've already finished most of the button component, but I'm still setting up some tests with Jest.
But I think that you can pick a component for integration, for example the badge. (colors, sizes, styles).
We can talk on the #main-library channel on the Discord Server.
The branch is currently /storybook.

Hey @AndrewBBx,
We have a branch called Storybook - I think you can merge the current master into it and continue working on the new components form there if you'd like - you can also join our Discord to discuss in more depth :)
Cheers,
Zoltan


x/tools/go/packages: Load(&cfg...) modifies cfg, contra explicit documentation

The Load function claims not to mutate the Config, but it does in fact mutate the non-exported fields, and has done for some time. In https://go.dev/cl588936 I proposed to update the docs to match reality:
// Calls to [Load] do not modify the public fields of this struct, but
// may modify hidden fields, so concurrent calls to [Load] must not
// use the same Config.

but perhaps we should instead reestablish the invariant rather than give it up.
@findleyr @matloob

Hi @adonovan , I have sent you a CL by moving all unexport fields from Config to an unexported config struct so packages.Load won't modify user provided Config in any case. Let me know whether you like this approach:)


Documentation typo?

Doc link
In the Warning Section:
...
it does fit perfectly with the Rust borrow checking mechanism
and
thus you cannot rely upon the borrow checker to prevent unsafe use as much as is typical.

It fits with the borrow checking mechanism but because of that, you can't rely on the borrow checker?
That seems a bit contradictory.

Right, yeah it does seem that I made a typo there. Fixed in new version! Thanks. :)


NIFI-12245: Removed deprecations around flow registry clients

Summary
NIFI-00000
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[ ] Apache NiFi Jira issue created

Pull Request Tracking

[ ] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[ ] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[ ] Pull Request based on current revision of the main branch
[ ] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[ ] Build completed using mvn clean install -P contrib-check

[ ] JDK 21

Licensing

[ ] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

Build is successfull, basic test cases (including cases with embedded flow) looks good, merging


[Backport 2.x]Strings compile fix due to core package change (#680)

Signed-off-by: Petar Dzepina<EMAIL_ADDRESS>(cherry picked from commit 36f1fcb6d7552729e7640adb82b4f65b87349132)
Description
[Describe what this change achieves]
Issues Resolved
[List any issues this PR will resolve]
Check List

[x] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Need a latest common-util 2.9 jar


Very slow AOT code generation for large WASM files

Hi,
I have been experiencing some very slow code generation times for large WASM files.
I include a little benchmark I have done with this WASM file: large_code.zip. I compare:

wamrc from the current main tip (build in Release mode)
WAVM from our fork
wasmtime: using v7.0.0

For each, I include the instructions to build, the command to generate the machine code, and the time it took.
wamrc:
Build wamrc with CMAKE_BUILD_TYPE=Release from the latest commit.
time wamrc -o  large_code.aot large_code.wasm
# this takes around 3' in my system

WAVM:
Already built in the docker image in the previous command, you may find the Dockerfile here.
# Mounting `pwd` to have access to the .wasm file inside the container,
# all the build artifacts are in /build, so we can actually overwrite the /code
# directory
docker run --rm -it -w /code -v $(pwd):/code csegarragonz/wavm:faasm bash
time /build/bin/wavm compile large_code.wasm large_code.aot
# this takes around 1'20" in my system!

wasmtime:
Install using:
curl https://wasmtime.dev/install.sh -sSf | bash
time ~/.wasmtime/bin/wasmtime compile large_code.wasm
# this takes arround 6" in my system (?!?!)

Admittedly, I am not very familiar with wasmtime nor have I any idea why is it so much faster. I suspect I am doing something wrong. That being said, wasmtime uses a different code generator, but WAVM is also LLVM-based, so how come it is more than two times faster?
NB: this results are specific to my machine but, at least for the WAMR/WAVM comparison, I have seen consistent numbers in a variety of Intel x86 CPUs.
NB2: the attached WASM file contains a lot of custom native symbols only defined in our embedder, so you can not run it with iwasm. I thought it did not really matter to get the point across.

Hi, WAMR and WAVM are LLVM-based, wasmtime is cranelift based, it really takes more time for the former to compile wasm files. And WAMR uses llvm new pass manager and may apply more optimizations than WAVM, so it may take more time to compile wasm file than it.
There may be some methods to reduce the compile time for wamrc:

Try using size level 2 or 1: wamrc --size-level=2/1
Try using opt level 2: wamrc --opt-level=2
Try removing some optimizations, e.g,:
https://github.com/bytecodealliance/wasm-micro-runtime/blob/dev/segue_opt/core/iwasm/compilation/aot_llvm_extra.cpp#L333-L343
Remove the module verification: comment these lines in verify_module and return true directly
https://github.com/bytecodealliance/wasm-micro-runtime/blob/main/core/iwasm/compilation/aot_compiler.c#L2604-L2615

@csegarragonz Recently we implemented the segue optimization for LLVM AOT/JIT, see #2230, normally (for many cases) it can improve the performance, reduce the compilation time of AOT/JIT and reduce the size of AOT/JIT code generated. Currently it supports linux platform and linux-sgx platform on x86-64, could you have a try? The usage is:
wamrc --enable-segue or wamrc --enable-segue=<flags>
iwasm --enable-segue or iwasm --enable-segue=<flags>   (iwasm is built with LLVM JIT enabled)
flags can be:
    i32.load, i64.load, f32.load, f64.load, v128.load,
    i32.store, i64.store, f32.store, f64.store, v128.store

Use comma to separate them, e.g. --enable-segue=i32.load,i64.store.

Hey @wenyongh thanks for pointing this out!
Just to double check, will this optimisations benefit me if I am using x86-64 on linux with HW bound checks enabled?
As far as I can tell, bound checks weren't performed anyway, and were delegated to the OS by placing the linear memory at the  begining of a contiguous patch of 8GB of virtual memory and protecting memory pages?
(Not for SGX, I understand the segue optimisation could benefit my SGX use cases)

Yes, it may benefit no matter the --bounds-checks=1 is added for wamrc or not. The memory access boundary check in the aot code only depends on the i + memarg.offset (i is popped from stack, memarg.offset is encoded in bytecode), it doesn't related to the base address of linear memory.
Normally the compilation time and the binary size can be reduced since the optimization simplifies the LLVM IRs to load/store the linear memory and decreases the size of load/store instructions. The performance may be degraded in some cases, we found that some LLVM optimizations may not take effect if the optimization is enabled, and it depends on which flags are enabled, for example for CoreMark workload, the performance gets worse if using warmc --enable-segue while gets better if using wamrc --enable-segue=i32.store.


add webpagetest

This is quite a big job. Consider:

Travis
Site needs to be public (maybe a variable in foley.json?)
Gulp integration (eg http://seesparkbox.com/foundry/automating_performance_testing_with_gulp)

I'll start this off by implementing the perf tests I've been working on if you want?

Oh man that would be amazing! I'm blocked by life at the moment but I've got Sunday pencilled in

Cool I'll make a start on that this weekend. I'm away so won't come work with you but have my laptop with me anyway.

This is on hold as is might be better to suggest an external tool for this.


[build script] lack of 'break' on switch statement on codeSign phase

Noticed while reading build script.
https://github.com/atom/atom/blob/287b554d637dec1ff1d53ef25e33fa113e5fc913/script/build#L82-L121
Lack of break in switch statement.
Cause unwanted fallthrough.
Platform darwin matches, win32 and linux too.
Steps to Reproduce
Just evaluated following code snippet
function test() {
  switch ('hello') {
    case 'hello': {
      console.log('hello')
    }
    case 'world': {
      console.log('world')
    }
    default: {
      console.log('bye')
    }
  }
}
test()

//--- output is bellow ---------
// hello
// world
// bye

@t9md  that is actually the intended behavior of the switch block. There are times where such as fallthrough is useful. Best explained here

I'm saying lack of break in each clause is BUG(although it harmless in current build script).
Maybe author just forget to break.

This was fixed in the intervening time span. Thanks for bringing it to our attention @t9md :bow:


Create how-to-detect-win11.md

Rendered article for review:
https://review.docs.microsoft.com/en-us/microsoft-edge/web-platform/how-to-detect-win11?branch=pr-en-us-1505

Docs Build status updates of commit d679693:
:warning: Validation status: warnings

File
Status
Preview URL
Details

microsoft-edge/web-platform/how-to-detect-win11.md
:warning:Warning
View
Details

microsoft-edge/web-platform/how-to-detect-win11.md

Line 13, Column 335: [Warning-file-not-found] Invalid file link: 'UserAgentGuidance'.
Line 2, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'This article describes how to detect Microsoft Edge data with user-agent client hints and the user-agent string' is duplicated in 'web-platform/how-to-detect-win11.md(2,14)', 'web-platform/user-agent-guidance.md(2,14)'.

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel

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

File
Status
Preview URL
Details

microsoft-edge/web-platform/how-to-detect-win11.md
:bulb:Suggestion
View
Details

microsoft-edge/web-platform/how-to-detect-win11.md

Line 2, Column 14: [Suggestion-duplicate-descriptions] Attribute 'description' with value 'This article describes how to detect Microsoft Edge data with user-agent client hints and the user-agent string' is duplicated in 'web-platform/how-to-detect-win11.md(2,14)', 'web-platform/user-agent-guidance.md(2,14)'.

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

@jenny-microsoft - Could you please techreview my commits?

Docs Build status updates of commit 8f97ca6:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/web-platform/how-to-detect-win11.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

microsoft-edge/web-platform/how-to-detect-win11.md
:white_check_mark:Succeeded
View

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

Docs Build status updates of commit 524a44d:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/web-platform/how-to-detect-win11.md
:white_check_mark:Succeeded
View

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

Docs Build status updates of commit 8b19946:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

microsoft-edge/toc.yml
:white_check_mark:Succeeded
View

microsoft-edge/web-platform/how-to-detect-win11.md
:white_check_mark:Succeeded
View

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

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

File
Status
Preview URL
Details

microsoft-edge/toc.yml
:white_check_mark:Succeeded
View

microsoft-edge/web-platform/how-to-detect-win11.md
:white_check_mark:Succeeded
View

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


Shrinking dual boot image

Hi,
first of all, thank you for this script, I've been using it for my RPI and it is working perfectly.
Yesterday I tried to use it on my laptop. I have Jumper book, where I installed on internal eMMC card Windows 10 and Kubuntu 18.04 in dual boot. I did backup of entire device (mmcblk1) with dd command, and did shrinking of it. During the process I received some messages that something is wrong and I was offered to chose "y" for fixing it. At the end when I try to mount img I get error and when I examine img file I see that GPT partition is damaged. As far as I can see only Kubunut partition was shrinked. So I guess I cannot use this script if I have GPT partitions in my image file? Is it possible to enhance code in script and simply skip shrinking of not supported partitions? I would like to use this script on my laptop also not just on my RPI.
Thank you in advance for the answer.
All best,
amilino

It should fail faster and safer now on partitions that it can not shrink


Switch to CMake

Fixes #3.
ToDO

[x] set up basic CMake project for 64-bit Linux
[ ] complete cross-compilation

[ ] 32-bit
[ ] ARM
[ ] Windows
[ ] MacOS

[x] compile tests
[ ] create easy to use commands
[ ] update CI
[ ] enforce clang-tidy
[x] enforce clang-format
[ ] document build system

Codecov Report

Merging #7 (034eb8f) into master (3889cbe) will increase coverage by 64.69%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           master       #7       +/-   ##
===========================================
+ Coverage   20.61%   85.31%   +64.69%
===========================================
  Files          81       50       -31
  Lines        3711     4078      +367
===========================================
+ Hits          765     3479     +2714
+ Misses       2946      599     -2347

Impacted Files
Coverage Δ

src/data/data.cpp
65.21% <ø> (-0.46%)
:arrow_down:

src/data/data.hpp
100.00% <ø> (+12.50%)
:arrow_up:

src/data/data_point.hpp
100.00% <ø> (ø)

src/state_machine/main.cpp
100.00% <ø> (ø)

src/state_machine/state.cpp
97.18% <ø> (+1.02%)
:arrow_up:

src/state_machine/state.hpp
100.00% <ø> (+7.14%)
:arrow_up:

src/state_machine/transitions.cpp
100.00% <ø> (ø)

src/telemetry/client.cpp
0.00% <ø> (ø)

src/telemetry/recvloop.cpp
0.00% <ø> (ø)

src/telemetry/writer.cpp
28.57% <ø> (+2.64%)
:arrow_up:

... and 73 more

Continue to review full report at Codecov.

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

Closed in favour of #8.


gcc-arm-embedded: 5_3-2016q1

Changes to a cask
Editing an existing cask

[x] Commit message includes cask’s name (and new version, if applicable).
[x] brew cask audit --download {{cask_file}} is error-free.
[x] brew cask style --fix {{cask_file}} left no offenses.

Thanks!


Add network rule set for Service Bus namespace

Fixes #3783

Update terraform for services bus to move network rules into namespace resource to avoid depreciation warning.
Update setup_local_debugging.sh to use network_rule_sets.
[ ] Update changelog.

/test


[REVIEW]

Twitter profile link
https://twitter.com/raghu7_

Hi Raghu

choose a clear Username.
choose a bio that stands out
Add profile Picture and cover photo.
Start following people.
Engage with your followers.

Thank you for the review


Removed the extra api at the end

#949
I misread what BASE_URL will do. So now it's adding /api at the end. This PR should fix that by just finding out where the user currently is.

 Login | Create a Login Screen |5| v1.2.17


Dac Deployment options model updates according to STS changes in mssql, SC, dacpac extensions

This PR fixes #

These changes are moving from the PR - https://github.com/microsoft/azuredatastudio/pull/17993
Dac deployment model has been updated as per the changes on STS model updates, which includes description as a new property.
This PR will merge first as other PR's (display options for sql db, SC, dacpac) will be dependent on these changes.

please merge from main and verify that all tests are passing with the STS updates. Thanks!

This PR now has

mssql extension DacDeployment options model update according to STS changes(https://github.com/microsoft/sqltoolsservice/pull/1357)
SC deployment options model/test updates (merged from https://github.com/microsoft/azuredatastudio/pull/19400)
dacpac DacFx service's deployment options model/test updates...

I dont see the update to use latest STS version - you will checkin only after that right?

STS merge is In-progress, once I get the STS version release, I'll update the version and then merge this PR!


[Feature Request] Add option to convert and sync playlist

feature to add a --sync flag when first creating the playlist to automatedly add to a bat file lines python main.py sync <spotify_playlist_id> <youtube_playlist_id> that when run auto sync them

It is unable to sync playlist just convert it. To convert it check this.

@yogeshwaran01 Will you add it in future ?

@yogeshwaran01 Will you add it in future ?
I already added it
https://github.com/yogeshwaran01/spotify-playlist-to-youtube-playlist#sync-your-youtube-playlist-with-your-spotify-playlist

Is there a feature to add a --sync flag when first creating the playlist to automatedly add to a bat file lines
python main.py sync <spotify_playlist_id> <youtube_playlist_id>

Ok I will implement it. Thank you for your suggestion

@yogeshwaran01 reopen this issue please


WIP: Discoverd client improvements

Allows the discoverd client to connect to multiple peers and retry if the first peer is unavailable.
TODO

[ ] Populate DISCOVERD_PEERS default environment variable with all of the peer URLs
[ ] Sort the peer list so that the local server is prefered

@lmars What would be a good way to get the DISCOVERD_PEERS variable to flynn-host so that it can  properly set it as a default env var?

Writes should go to the raft leader (currently a redirect is in place for this, as non-leaders can't accept writes).

It's directing writes to the leader now, I will change it to use a watch instead of polling to update the leader though.

Changes to the discoverd update process have made this unnecessary for now but I am leaving it open as I work on a new approach that should be better than my first pass.
Specifically the new strategy will be as as follows:

The client will be initialised with an initial set of nodes
On performing the initial request the first server that responds successfully (even if it responds with a redirect because of it being a non-master and trying to service a write) then we will "pin" this server for future requests.
When doing further requests we will first attempt to use the pinned server, if that fails finding and then pinning a new server to service reads.
When doing a write if we get a redirect we will track the last redirect we received and mark this as the leader so we can avoid the redirects where possible.

The client will always be cluster aware but some requests (for now just Shutdown) will take an address of a specific node.

Closing for now to prevent CI building stuff, will re-open when it's ready for people to look at.

You've probably considered this, but I'd expect something along these lines:

All reads start pointed towards the local instance, to prevent extra cross-network traffic.
If the local instance is unavailable, reads go elsewhere and return to it when the local instance comes back.
The leader is tracked through a stream of some type.

Yep, just implemented falling back to preferred server after a TTL (default 60s).
As for leader tracking I ended up implementing it by updating the leader whenever we get a redirect.
This avoids the background goroutine and should only ever hit the redirect whenever the leader changes.

Hmm unfortunately I can't reopen this because I force-pushed. :( I will open a new one.


Find bugs

Coverage decreased (-0.3%) to 98.382% when pulling e1cc0012e07ab5248c4e447442b99d55c6edc805 on findBugs into 75e66344829d707679579e79b64e07a180256b98 on master.

Coverage decreased (-0.3%) to 98.42% when pulling 58824729a3f7e90680e7ec54c872fa4e5008b465 on findBugs into 75e66344829d707679579e79b64e07a180256b98 on master.

Coverage increased (+0.004%) to 98.68% when pulling 9ac788882f76ba1ab684816ee7f7150942212e8d on findBugs into 75e66344829d707679579e79b64e07a180256b98 on master.


flutter attach --machine should report Waiting for a connection in JSON for editors to report progress

Currently this status is just written to stdout so the editor can't display a nicer representation (eg. a progress notification):
[12:32:30 GMT+0100 (BST)] [FlutterRun] [Info] <== [{"event":"daemon.connected","params":{"version":"0.4.1","pid":13567}}]
[12:32:30 GMT+0100 (BST)] [FlutterRun] [Info] <== Waiting for a connection from Flutter on Android SDK built for x86...

@devoncarew @stevemessick This looks like it might be non-trivial. The logger we have for sending progress events is _AppRunLogger but this doesn't (/can't) exist at the time that we wait for a connection, since we need the observatory URI in order to run some of the initialisation code used to create an _AppRunLogger (for ex. it needs an AppInstance).
I tried splitting _AppRunLogger up (into a DaemonLogger that doesn't have an app, and then a subclass that adds an app) however replacing the daemons logger (which is currently a NotifyingLogger so not a straight swap) will result in a lot of stuff that goes raw to stdout ending up in JSON for the daemon (this feels like a risky change, the editors would need changes).
So, I'm thinking of just handling this in VS Code for now - when we start attaching, we'll just open a some progress notification that spins until the app starts up (we already do this on the first progress event normally, so it'll just be a fabricated event immediately upon spawning attach).
However, I don't know if that suites Android Studio of we'll want this to be more structured anyway. LMK what you think.

@blasten Did you add anything along these lines?


🐛 [Bug report]: Github API limit exceeded

Describe the bug
If you are using the application for a while, the GH API limit will eventually exceed. This will cause empty names in the play thumbnail and other places.

Note:

GH API limit is per IP based. So if I am getting this error means, it's just got exhausted for my public address.
We can still live with an error message however the UI shouldn't show empty data

This is a tracking issue. It should get solved as the application meta-information moves toward DB

To Reproduce
Just traverse through the application for some time.
Expected behavior
UI shouldn't show empty information
Screenshots
Already attached

It gets renewed daily basis. So if you try it the next day, it will work again for several days.
Yes, i to fix but not alarming. Also if we use these calls authenticated way, we will get a better rate limit. So let's consider that too.

Yes, it's a temporary issue, and the authenticated user gets more limit. It's definitely not a high severity one.
The idea is to just use the user name from play-meta when the git user name is not available.

This issue is no more relevant as we do not make any GitHub API calls to retrieve the user info like full name and image. Hence closing this issue.


Create separate retention policies for raw & cooked data

The stream list display should start to show how long a stream will be retained, e.g. a field called 'Retention' with values such as Forever, 1 Day...
The stream list display should provide further retention information via the info icon popup for which retention rule is being matched, e.g. 'Rule Number', and perhaps the calculated time that the stream will be retained till, e.g. 'Retain Until'
The expression editor should allow some expressions to be disabled.
The expression editor should show suggestions for feed names etc.

The retention period controls need to grey out if 'Forever' is selected
Rules should have an optional name in addition to their number
You should be able to duplicate a rule
Editing a rule does not always allow you to save it - clicking OK does not always seem to work
Rules with a createdTime set seem to fail to match streams in the stream list display.
Rules should execute based on the last time the associated job ran, i.e. we need to look at the DB and not use local last run time stored in memory.


Send money - Split bill can be created on Send money page

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.81-6
Reproducible in staging?: Yes
Reproducible in production?: No, feature is not available on production
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal Team
Slack conversation:
Action Performed:

Go to staging.new.expensify.com
Go to FAB > Send money
Enter amount and click Next
Click split and proceed with split bill creation

Expected Result:
User should not be able to create split bill from Send money menu because split bill is accessible from Request money page
Actual Result:
User is able to create split bill from Send money menu
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/78819774/3415aa7e-64e0-4171-b7be-09676caf08d7

MacOS: Desktop

View all open jobs on GitHub

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Proposal
Please re-state the problem that we are trying to solve in this issue.
Split bill can be created on Send money page
What is the root cause of that problem?
We are disabling split money option if it is a distance request(probably because send money feature was disabled for a while).
https://github.com/Expensify/App/blob/81565ecb690dadfb0d1254c61f452d2770348afb/src/pages/iou/steps/MoneyRequstParticipantsPage/MoneyRequestParticipantsSelector.js#L243
What changes do you think we should make in order to solve the problem?
We should modify it to check if iou type is sending money
    const isAllowedToSplit = !isDistanceRequest && iouType !== CONST.IOU.MONEY_REQUEST_TYPE.SEND;

What alternative solutions did you explore? (Optional)

I think this is a bug (Send money shouldn't lead to split) but isn't a deploy blocker imo @stitesExpensify I'll let you make that call though if I'm missing something!

Proposal
Please re-state the problem that we are trying to solve in this issue.
Send money - Split bill can be created on Send money page
What is the root cause of that problem?
We never did checked for the IOU type weather the request type is split or not although we did wrote things related to it.
What changes do you think we should make in order to solve the problem?

we can use the following variable https://github.com/Expensify/App/blob/fa34d33e6d7d9483ac5a4a1a77b2526db7ffca96/src/pages/iou/steps/MoneyRequstParticipantsPage/MoneyRequestParticipantsPage.js#L54 and pass it to the component here https://github.com/Expensify/App/blob/fa34d33e6d7d9483ac5a4a1a77b2526db7ffca96/src/pages/iou/steps/MoneyRequstParticipantsPage/MoneyRequestParticipantsPage.js#L113 which we can use to update this variable https://github.com/Expensify/App/blob/fa34d33e6d7d9483ac5a4a1a77b2526db7ffca96/src/pages/iou/steps/MoneyRequstParticipantsPage/MoneyRequestParticipantsSelector.js#L244
const isAllowedToSplit = isSplitRequest || !isDistanceRequest;

What alternative solutions did you explore? (Optional)
NA

Agreed @adelekennedy not a deploy blocker. This is a little weird, but not enough that it really matters

I got this one covered in this PR https://github.com/Expensify/App/pull/29358

amazing - seems like we can close then!


How set watermark to RightTop/RightBottom

Prerequisites

[x] I have written a descriptive issue title
[x] I have verified that I am running the latest version of ImageProcessor
[x] I have verified if the problem exist in both DEBUG and RELEASE mode
[x] I have searched open and closed issues to ensure it has not already been reported

Description
I want to add TextLayer to the Image's RightTop or RightBottom with the method "Watermark",
How should I set the Position?
Steps to Reproduce

System Configuration

ImageProcessor version:2.5.4
ImageProcessor.Web version (if applicable)
Other ImageProcessor packages and versions:
Environment (Operating system, version and so on):
.NET Framework version:4.5.2
Additional information:visual studio 2015

Hi @RaulSteven
This question would have been better suited to our Gitter channel but I'll answer here for you.
If you look at the documentation you will see that the watermark plugin accepts a TextLayer property which in turn has a Position property which is op type System.Drawing.Point. That's the only way to set the position and requires you to do the maths yourself.
Cheers
James


Trying to set up Buderus TC 100

Describe the bug
I'm trying to set up Buderus TC 100, without success.

When I choose "Easycontrol" as device type, it complains that my credentials are wrong. Already tried a simpler and shorter password, but no luck...
When I choose "Nefit" as device type, something happens: an (unknown) device is created, with no entities. The debug scan attached is created after setting up with Nefit device type.

Version

HA version?  2021.12.9
HA Bosch component version? 0.16.9
Python Bosch HTTP client version? unknown

** Debug SCAN **
http://www.jsonblob.com/930835681056669696

It's NEFIT, I have to add your device to my library. What country are you from?

Hi there @pszafer ,
Thanks so much for your reply! I live in Belgium.

Just installed 0.17.0, works perfectly now!


Updating for incident

Once we fix the underlying settings issue, this will update to the nightly build (for a pre-release candidate)

@Paultagoras what is the reason for failed tests?


Add Lens as a Category.

Implemented !
Not as complete as the one in the link but it's just a matter of adding more functions and some more types.


Add aws to dependent repositories

Signed-off-by: Artem Glazychev<EMAIL_ADDRESS>

@glazychev-art Thanks!


Replaced PyQuery with BeautifulSoup4 and lxml.

Should properly parse UTF-8 now.
Added some options (See readme).
Should produce (mostly) valid HTML5, when --replace-all=yes.
Should solve #51, #43, #39
Adds alternative for #41
Needed the changes for a project, and thought I'd share.
Code contains some more TODO:s.

b6cd08baa1de174e540767a19fc23c0542911ee0,
2ffbd66df90ae5af9166a8b787c65329369f0069, and
513338aa9e6b241dd9214d4d8d651c804a8f4395
supersede this by replacing docopt with argparse (more control?).
Unicode support should work properly now, including rss links.
Added a proper switch and CLI is more forgiving now (courtesy of argparse).
Would appreciate if someone would look at the commented lxml code and get it working, since currently the code runs BeautifulSoup twice.
Also, needs testing with git (I only need to generate a local copy without gh).


Improvement ideas: Improve onboarding experience

Required check list:

[x] I didn't find in the repository's issues section a similar bug.
[x] I understand, this is an Open Source and not-for-profit product.
[x] This is not about a third-party project, framework, or technology.

Is your feature request related to a problem? Please describe.
Thanks for building this project. I would like to report several friction points during my process of creating my first project with Gowebly.

If my current environment doesn't yet have the templ binary installed, the installation process will throw an error.
The project creation form doesn't autofill the previous input when the previous execution is a failure. I have to re-input all my choices.
The creation form should make clear that it will populate the files in the current working directory.
The output should have a README.md file describing how to run the application.

Describe the solution you'd like:

We should detect the presence of the templ binary before execution, and optionally offer to install this library.
should save & autofill the previous inputs in case the previous execution didn't finish.
We can take inspiration from other project creation tools on the market, which allow users to choose the folder to populate the files (defaulting to the project's name). If the current directory is empty, offer to populate into the current directory instead.
Populate a sample README.md file and output the final message to help the user to know the next step.

@antran22 thanks for the idea!
I will work around it soon.

Hi, @antran22
In v2.6.2 I added README.md a file with information about the generated project and some tips for developing, launching and deploying the application.
I hope this helps. If there are any comments or ideas to improve the README, please let me know!


Discrepancy between fmt verbs for fmt.Sprintf and Decimal.Append()

Hopefully the example is clear, but for a zero decimal place precision format string, Append() seems to complain:
https://go.dev/play/p/rI9N5sFKwzn
I presume that the reason is that this line is not invoked by the previous early returns above it:
https://github.com/woodsbury/decimal128/blob/main/format.go#L839

Hey, thanks for raising this.
It looks like the parsing of the format string that Append() uses doesn't allow leading zeros in the precision whereas the standard library does. I've just pushed a commit changing it to make it match.
I'm planning on tagging a new release soon and that should include this change.
In the meantime, if you want to format a number with a precision of zero you can alternatively not specify any digits after the . - for example .f would format the decimal with a precision of zero. This should work both with the fmt package functions and Append().


vscode: updated rollup typescript so it typechecks the bundle

See this happy update from @rollup/typescript-plugin changelog)
I also added a utility script to view the latest dependencies versions (dry-run variant) and update them in batch. Beware, that it bumps versions even if the major version of them has changed (for updating only within one major version there is a cli option, but I didn't want add a whole bunch of scripts)
Some of the dependencies major versions are out of date:
~/my/projects/rust-analyzer/editors/code (feature/refactoring-vscode-ext) $ npm run bump-deps:dry-run

><EMAIL_ADDRESS>bump-deps:dry-run /home/veetaha/my/projects/rust-analyzer/editors/code
> npm-check-updates

Checking /home/veetaha/my/projects/rust-analyzer/editors/code/package.json
[====================] 16/16 100%

 jsonc-parser                    ^2.1.0  →   ^2.2.0
 @rollup/plugin-commonjs        ^11.0.1  →  ^11.0.2
 @rollup/plugin-node-resolve     ^6.1.0  →   ^7.1.0
 @types/node                  ^12.12.25  →  ^13.7.0
 rollup                         ^1.30.1  →  ^1.31.0
 tslint                         ^5.20.1  →   ^6.0.0
 vsce                           ^1.71.0  →  ^1.72.0

I feel like npm-check-updates does not worth +2k lines in package.json.lock :)
Other than that, looks good to me

Ooops, yeah, kinda 2K) If you don't want that script, I'll remove!

Yeah, let's remove it.
bors d+

yup, much less scary now :)
bors r+

bors r-

Could you also make an intetnional type error in type script to verify that CI actually fails?

Ok, lets try!

Hmm, it bails out on the first type error

bors try

Whilst npx tsc --noEmit reports all errors thruout the project

Should I revert that commit or rebase and remove it?

I don't care a lot about git history, but, withing "not caring a lot", I much prefer the rebase approach.

Done, bos r+

bors r+


ingress resource for gateway

Would love to have ingress resource installation option for gateway pretty much similar to what you have available for server console chart. That would help install gateway ingress and expose it for enforcers connectivity

hey @techish-io
you can use for example the option envoy.enabled=trueor global.gateway.service.type=LoadBalancer
in both options, the gateway IP will be exposed.

@techish-io any update from your side?

hi @techish-io
we replied to your issue with the below answer
"you can use for example the option envoy.enabled=trueor global.gateway.service.type=LoadBalancer
in both options, the gateway IP will be exposed."
are you looking for something different?


Feature Request: Change Color by Tag name

Is it possible to change the background color per page/tag name?

Currently not with the plugin, no.
But it is on the todo list :)
Also quite easy to change it "manually" in custom.css since Logseq put every page link's name as a CSS class.

Oh, great to know! Yes, css is fine

Is there any update on this?

Sorry, no. I am not using Logseq since a while back. /PontusOn 26 Dec 2023, at 14:41, ph1 @.***> wrote:
Is there any update on this?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>


chore(main): release 2.4.0

:robot: I have created a release beep boop
2.4.0 (2023-05-18)
Features

podman as a supported container engine in konvoy image builder  (#789) (ea2d1a5)
vsphere cloud init and command  (#800) (c08d048)

Bug Fixes

remove packer directory from goreleaser configuration (#788) (df75332)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mesosphere/konvoy-image-builder/releases/tag/v2.4.0 :sunflower:


blast-parallel.nf adding makeblastdb process

Hi,
Would you be able to add makeblastdb process to blast-parallel.nf?
genomes = Channel.fromPath(params.genomes)

process formatBlastDatabases {

  storeDir '/db/genomes'

  input:
  file species from genomes

  output:
  file "${dbName}.*" into blastDb

  script:
  dbName = species.baseName
  """
  makeblastdb -dbtype nucl -in ${species} -out ${dbName}
  """
}

Thank you in advance.
Michal

Unfortunately, I still do not know how to combine makeblastdb and blast with nextflow together. Is there any HOWTO?

Please post the question in the discussion forum.

Hi,
Same issue, did you find a solution? I don't find the discussion in the forum.

No, I didn't, and I forgot to post it to the forum. Maybe do you want to post it?


Add JobSet SuccessPolicy

Currently JobSet is marked as successful when all child jobs do.
We want to add success policy that allows customizing this behavior as originally discussed in the proposal doc https://bit.ly/k8s-jobset
A possible API may look like this:
type Operator string

// TerminationPolicyTargetAny applies to any job in the JobSet.
const OperatorAll Operator = "All"
const OperatorAny Operator = "Any"

type SuccessPolicy struct {
         // Operator determines either All or Any of the selected jobs should succeed to consider the JobSet successful
         Operator Operator

         // JobSelector selects the jobs that the policy will apply to. The selector only applies to the jobs created by the JobSet.
	JobSelector *metav1.LabelSelector
}

/assign

@ahg-g Rather than having the user configure a label selector to select which jobs to apply the success policy to, could we just have them specify which ReplicatedJobs to apply the policy to?
I understand the label selector is more flexible, but for the most common cases of "succeed when all jobs succeed" or "succeed when leader succeeds," it seems it complicates things by requiring the user to know that we apply the replicatedJob name as a label, so that they can select jobset.sigs.k8s.io/replicatedjob-name=leader etc. so they'll need to dig through the docs to figure out how to do this.
I think a simplified API that is immediately obvious how to use might be more user friendly:
type SuccessPolicy struct {
         // Operator determines either All or Any of the selected jobs should succeed to consider the JobSet successful
         Operator Operator

         // Names of Replicated Jobs for the success policy to apply to (e.g. all jobs in the "worker" ReplicatedJob, or any job in the "leader" ReplicatedJob, etc.)
         // An empty list will apply the success policy to all ReplicatedJobs.
	ReplicatedJobNames []string
}

Is there any specific use case the increased flexibility of the label selector is needed to support?

A list was the original API proposal as you know. However, now that we have a replicated list of jobs, I wanted to cover the case where the user wants to select a specific job or set of job replicas (e.g., job index 0).
As for ease of use, a label selector is the canonical API for object selection in k8s. Also, the user doesn't need to lookup the label that JobSet applies, they can use their own label too.

I see, that makes sense. I've implemented this #124, let me know if you have any thoughts on my approach to the implementation.


Farm Designer map display improvements

Farm Designer Map:

Reduce undesired movement and plant creation bugs.
Show the current plant icon and indicators on top of other plants.
Restore map plant icon size increase on list plant hover.
Fix double spread display bug.
Move spread overlap indicators behind plant layer.

Coverage decreased (-0.004%) to 46.068% when pulling 46c3c35a29c62f1bfbe623fc775a5298e815b14e on gabrielburnworth:master into b2170180f7b371b5a5788386f5a110a4cf6f9911 on FarmBot:master.

Coverage increased (+1.3%) to 47.328% when pulling 7fd414d51ee9893f9d642a5115fb35618f80e57a on gabrielburnworth:master into b2170180f7b371b5a5788386f5a110a4cf6f9911 on FarmBot:master.


About output file

Hi,
This question may be a little silly. In the peptides of the output file, there are peptides such as "C+57.021GHTNNLRPK". I don't quite understand what "+57.021" means. The peptide predicted by the algorithm is "CGHTNNLRPK" or there are some unknown amino acid between C and GHTNNLRPK?
0 | LAHYNKR | 0.991221964
1 | VKEDPDGEAHR | 0.965903959
2 | C+57.021GHTNNLRPK | 0.991358876
3 | VVQEQGTHPK | 0.987940228
4 | KGKPELR | 0.991316216
5 | SLSHSPGK | 0.993293308

Thanks,
LeeLee

In most tandem mass spectrometry experiments, the amino acid cysteine has a modification applied to it as part of the sample processing.  This modification, called carbamidomethylation, adds 57.021 Da to the mass of cysteine. This annotation simply reflects that mass shift.


Figure out other toolsets we should integrate with

There are

MOF Fragmentation and Manipulation - https://github.com/kjappelbaum/moffragmentor
MOF Describe (also kevin)
Anour's tools for running pySCF and such

Interesting! What do you use instead?

We no longer need this reference


Enable peer scoring by default

This was previously defaulted then removed, but we should have it enabled.
Documentation

[X] I thought about documentation and added the doc-change-required label to this PR if updates are required.

Changelog

[X] I thought about adding a changelog entry, and added one if I deemed necessary.

It is enabled on our boxes since long time ago. Safe to merge for me.


Marketing text and share your work, make them interact nicely with small and large screen

Removing padding from top pf marketing. Possibly using columns.


Added glibc-devel in cpu Dockerfiles

Checklist before submitting

[ ] Did you read the contributor guide?
[ ] Did you update any affected documentation?
[ ] Did you write any tests to validate this change?

Description
glibc-devel provides /usr/lib64/libpthread_nonshared.a file which is needed by linker. This package glibc-devel is present on cuda images by default but was missing on cpu images.
Review process to land

All tests and other checks must succeed.
At least one maintainer must review and approve.
If any  maintainer requests changes, they must be addressed.

Codecov Report

Merging #132 (5981fff) into main (3c7c22a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #132   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          23       23
  Lines        2105     2105
=======================================
  Hits         2025     2025
  Misses         80       80

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

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

Continue to review full report at Codecov.

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

Codecov Report

Merging #132 (5981fff) into main (3c7c22a) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main     #132   +/-   ##
=======================================
  Coverage   96.20%   96.20%
=======================================
  Files          23       23
  Lines        2105     2105
=======================================
  Hits         2025     2025
  Misses         80       80

Flag
Coverage Δ

unittests
96.20% <ø> (ø)

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

Continue to review full report at Codecov.

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

@npanpaliya, Do you think this would be needed in runtime image as well?

@npanpaliya, Do you think this would be needed in runtime image as well?

I checked this is not needed at runtime.


Always store items appended to Log

When using CartoDB::Log we sometimes call #append while other times we use #append_and_store.
The latter has the benefit (and overhead) of re-reading the log items from the db (so that items stored from other processed are not overwritten). But it will lose items appended (via #append) since the last #store call.
Since we are not systematically calling #store after having appended new items and before calling #append_and_store we may be losing log items. When a piece of code needs to append items to a Log we have now this alternatives:

Use appends and, before yielding control to other code, call store (possibly overwriting items from other processes).
Use  append_and_store (and overwrite appends which weren't stored).

I propose to always use #append_and_store (renamed as #append) to avoid missing any log items.
For example:
--- a/app/models/log.rb
+++ b/app/models/log.rb
@@ -103,13 +103,6 @@ module CartoDB
       end
     end

-    # INFO: Does not store log, only appends in-memory
-    def append(content, truncate = true, timestamp = Time.now.utc)
-      @dirty = true
-      content.slice!(MAX_ENTRY_LENGTH..-1) if truncate
-      add_to_entries(ENTRY_FORMAT % [ timestamp, content ])
-    end
-
     def append_and_store(content, truncate = true, timestamp = Time.now.utc)
       refresh
       # Sync content from other processes. Ie. geocoding cancel
@@ -118,8 +111,18 @@ module CartoDB
       store
     end

+    alias :append :append_and_store
+
     private

+    # INFO: Does not store log, only appends in-memory
+    def _append(content, truncate = true, timestamp = Time.now.utc)
+      @dirty = true
+      content.slice!(MAX_ENTRY_LENGTH..-1) if truncate
+      add_to_entries(ENTRY_FORMAT % [ timestamp, content ])
+    end
+
+
     def add_to_entries(content)
       if @fixed_entries_half.length < half_max_size
         @fixed_entries_half << content

This will have the overhead of re-reading the Log record from the database each time an item is appended. I think this should not significantly affect any processes, since we shouldn't be using Log#append in inner loops or performance-critical situations.
We could add a parameter to append to choose ignoring other processes' items and avoiding so the overhead where it might matter.
What do you think? /cc @ethervoid @rafatower

Maybe. I wouldn't strive for improving this too much cause we know that logger is not the panacea. IIRC it is only used in imports and syncs and there should be no concurrency. OTOH reads shall be faster than writes and as you said it should never be added in any performance critical situation.
The important thing if that change is carried out is to make sure the users of that logger understand those conditions so it is not misused.
Unless this is a real problem right now I'd leave it as-is and tackle it more fully when there's room for it.
How I'd do it: have 1 row of log = 1 row in db instead of reading/writing. Limit the length of the rows and limit the number of rows so instead of having that magic in buffers (that sometimes fail) have a real persistent circular buffer (not that much work when it's clear but requires at least one DB migration).
Leapfrog I heard? :)

Set aside for leapfrog 😁

More sensible fix:
@@ -102,26 +102,29 @@ module CartoDB
         end
       end
     end

-    # INFO: Does not store log, only appends in-memory
-    def append(content, truncate = true, timestamp = Time.now.utc)
-      @dirty = true
-      content.slice!(MAX_ENTRY_LENGTH..-1) if truncate
-      add_to_entries(ENTRY_FORMAT % [ timestamp, content ])
+    def append(content, truncate = true, timestamp = Time.now.utc, store_log = false, refresh_log = false)
+      refresh if refresh_log
+      _append content, truncate, timestamp
+      store if store_log
     end

-    def append_and_store(content, truncate = true, timestamp = Time.now.utc)
-      refresh
-      # Sync content from other processes. Ie. geocoding cancel
-      rehydrate_entries_from_string(entries)
-      append(content, truncate, timestamp)
-      store
+    def append_and_store(content, truncate = true, timestamp = Time.now.utc, refresh_log = false)
+      append content, truncate, timestamp, true, refresh_log
     end

     private

+    def _append(content, truncate = true, timestamp = Time.now.utc)
+      @dirty = true
+      content.slice!(MAX_ENTRY_LENGTH..-1) if truncate
+      add_to_entries(ENTRY_FORMAT % [ timestamp, content ])
+    end
+
+
     def add_to_entries(content)
       if @fixed_entries_half.length < half_max_size
         @fixed_entries_half << content
       else
         @circular_entries_half[@circular_index] = content


Update Instant Client 19c to 19.10

Update Instant Client 19c to 19.10

Could you please remove the workflow file from this PR so I can merge it? :)

Could you please remove the workflow file from this PR so I can merge it? :)

Could you please remove the workflow file from this PR so I can merge it? :)

Done.


Sorting authors by name instead of date in people widget

Authors on people widget are sorted randomly (or I cannot see a clear pattern). Even though they were sorted alphabetically, when adding new people (I have a staff of 11 people that I want to display on the widget) the sorting criteria changed.
This makes me wonder that it would be a nice have to, to implement a similar approach to other widgets in terms of choosing the sorting criteria, and possibly adding a new author_weight field for a custom sorting.

I am still debugging to figure out the sorting logics. I have realized that all the first authors, before Anat, have a published content each (a talk, to be more specific). Others do not have any talk. If I unlink the first author with the talk, it gets moved where it should belong: alphabetically sorted by name.
However, a part from that, it is not clear what kind of sorting follow the authors who have talk, as they do not follow alphabetical order.

I have also discovered that my suggestion of ordering authors by weight is already implemented by default in Hugo (see Order contentsection on documentation) so now I am rephrasing my whole issue:
Would it be possible to arrange authors by Weight > LinkTitle > Date > FilePath instead of current Weight > Date > LinkTitle > FilePath?

The override order is defined by Hugo team, so that would be a question for them.
Defining a 'weight' for each author is Hugo's method for allowing admins to customize the order.
We could force sorting by display name in People widget, but it might not be very helpful as for western names, that would usually order by first name.

Adding a weight variable for each author (content/author/author1/_index.md) has no effect on ordering for me... This is using hugo v0.55.6. Any idea why?

@nfaivre, I added weight: <a_number> below name and it works for me in terms of arrange people shown on the front page. People with smaller number are shown first.

Can we have a solution as follows

add weight_alphanumeric entry
user can add whatever they want there. A common choice would be second name
the people are ordered according to alphanumeric sorting of the weight_alphanumeric entry by assigned them a weight =  rank in that sort

This would make it easier to add new people w/o worrying about ordering and order them based on whatever criteria we want.


[Example Request] Custom Vertex Shader

The Custom Shader Example gives good details on implementing a Fragment Shader as a Material, but if you wish to use Materials to adjust the Vertex Shader and change how to tiles are positioned for Rendering (Maybe add some random offset to space-d out tiles or have tiles engage in a some joint animation.), it can be a bit harder without such example.
It would be nice if a custom vertex shader example was provided.
Thanks for the hard-work!

This is possible I'll look into adding this as a feature.

I am also interested in this. I am trying to learn how to make a custom vertex shader after having made a custom fragment shader that just uses the default vertex shader provided here


Adds CI matrix for crate features

This change makes it so we build our crate with all the various interesting permutations:

default - build with no features set.
--all-features - build with all the bells and whistles.
--features X where X is:

ion-hash
experimental
ion-hash,experimental

When building/testing with these permutations, it uncovered a bug in the ion-hash doc tests where the test code depends on an optional feature. This has been conditionally compiled out, preserving the text of the doc comment (only runs when the appropriate feature flag is enabled).
Also updates the build of API docs to error out on leaking internal references.  This change cleans up such documentation comments.
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Should we check combinations of features for the coverage.yml workflow as well?

@popematt - I don't think this is worth it.  For code coverage, I think we just want to see the aggregate sum of coverage via --all-features especially when the denominator is "all the code."

Closing and re-opening to try to unstuck Waiting for status to be reported
There is something odd going on here:
https://stackoverflow.com/questions/52200096/github-pull-request-waiting-for-status-to-be-reported

Closing and re-opening to try to unstuck Waiting for status to be reported
There is something odd going on here: https://stackoverflow.com/questions/52200096/github-pull-request-waiting-for-status-to-be-reported

Actually, it's waiting for those because of the branch protection rule. I just updated it, and as you can see, now it's waiting for e.g. Build and Test (macos-latest, all) instead of Build and Test (macos-latest). (Yes, it uses string matching on the workflow name.)

Actually, it's waiting for those because of the branch protection rule. I just updated it, and as you can see, now it's waiting for e.g. Build and Test (macos-latest, all) instead of Build and Test (macos-latest). (Yes, it uses string matching on the workflow name.)

Oh thanks! I was quite puzzled as to what I was missing...


[WD recon] improve "search for match" matching on Cyrillic words

Neither "Исторически музей етрополе" nor "Исторически музей (Етрополе)"  finds this museum.
"Q26212305" finds it, and then it is displayed as the Q number and without a label.
Only after entering the exact WD label "Исторически музей, Етрополе" it finds the item and displays its label.

Migrated to https://github.com/wetneb/openrefine-wikibase/issues/76

You have to hover on the Q label.  @wetneb had already fixed that from a previous request.
It should popout the label for you on the right side, like this:

Although this seems to have a bug!  It does not always popout when hovering over the label, and took me 6 tries to show the label!

A popout over a dropdown over a modal dialog ?!?!
What UX horror is this?
Why can't you guys display the label below the Qid?
Given the migrated issue, I'll edit the title to reflect only the UI issue. Please reopen this one.

Furthermore, this popout doesn't seem to display useful info when autocompleting props:

I have absolutely no clue what may P31 have to do with Friday, Shabat etc etc

Yes, I agree, let's reopen this to focus on the UX for the "search for match" feature.
@VladimirAlexiev We all agree the UX in many places needs to improve.  The team actually lost it's main frontend developer many years ago, and since then volunteers around the world have helped fix many things.  The UI technology that is used in places of OpenRefine is also not the most inviting to young new students and so it has been really hard to get volunteers to help fix many of those areas.  But we have a plan now to begin to improve different areas without completing rewriting the entire UI stack.
For now, let's also open individual issues for any problems that you see with our UI around any particular feature area of OpenRefine that you think needs to work better and in each issue try to describe the problem and pain it causes you and possible suggestions, or drawings on paper (or wireframe mockups if you can would be delightful!) of how you envision any area of OpenRefine working better.

@VladimirAlexiev regarding that P131 issue, I have no idea! Let's ask @wetneb !
@wetneb Do you know what might be going on here with the fbs component?

This popout is called a "flyout" in Freebase's terminology. It was the way Freebase displayed descriptions (there were no descriptions in the auto-complete menu itself). Now that we have added support for descriptions, this is indeed redundant and I have been thinking of removing it from the Wikidata service.
So let's close this issue and turn it into: https://github.com/wetneb/openrefine-wikibase/issues/77
We can also decide to deprecate this feature in the reconciliation specs themselves: https://github.com/reconciliation-api/specs/issues/42

You have to hover on the Q label.

Actually, the Q number is an ID, not a label. The reconciliation service shouldn't be returning an ID where the user expects/needs a name/label.

Why can't you guys display the label below the Qid?

The label should be shown on the same line for the first copy of the ID is, on the left. The ID is already displayed to the right on the same line. Adding a second line needlessly doubles the amount of vertical space used.

For this particular case, yes. Displaying a Qid twice is obviously not useful. The recon service should use a language fallback here.
But in general if you have namesakes, displaying the name and qid is not sufficient. In many cases, adding descriptions on a second line does help quite a lot. By the way, this was recently requested in a different context, for reconciliation candidates themselves: https://github.com/reconciliation-api/specs/issues/47

By the way, the Wikidata recon service no longer returns a Qid in the label field in this case: https://wikidata.reconci.link/de/suggest/entity?prefix=Q26212305 (searching for an item which does not have a label in the target language falls back on another language)


Couldn't Start Local Server

I am watching the doc https://netflix.github.io/conductor/architecture/
There is an error when running :../gradlew server
java.io.IOException: Failed to bind to <IP_ADDRESS>/<IP_ADDRESS>:8080
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:346)
        at org.eclipse.jetty.server.ServerConnector.open(ServerConnector.java:307)
        at org.eclipse.jetty.server.AbstractNetworkConnector.doStart(AbstractNetworkConnector.java:80)
        at org.eclipse.jetty.server.ServerConnector.doStart(ServerConnector.java:231)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
        at org.eclipse.jetty.server.Server.doStart(Server.java:385)
        at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:72)
        at com.netflix.conductor.jetty.server.JettyServer.start(JettyServer.java:78)
        at com.netflix.conductor.bootstrap.Main.lambda$main$0(Main.java:74)
        at java.util.Optional.ifPresent(Optional.java:159)
        at com.netflix.conductor.bootstrap.Main.main(Main.java:72)
Caused by: java.net.BindException: Address already in use: bind
        at sun.nio.ch.Net.bind0(Native Method)
        at sun.nio.ch.Net.bind(Net.java:433)
        at sun.nio.ch.Net.bind(Net.java:425)
        at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)
        at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)
        at org.eclipse.jetty.server.ServerConnector.openAcceptChannel(ServerConnector.java:342)
        ... 10 more

> Task :conductor-server:server FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':conductor-server:server'.

I have not use the port 8080, the 8080 is started by Conductor it self .

@andyzhaozhao Can you confirm if some other process is already using the port 8080? (For eg., in linux: sudo lsof -n -i :8080 | grep LISTEN).
If you still see port 8080 is open and that Conductor server is unable to start, can you provide the steps to reproduce please. Thanks!

@kishorebanala I run it on windows10 . I am sure there's no other process using the port 8080.  My steps:

I couldn't reproduce this when I tried locally. Can you tell us what the port 8080 is doing when you see Caused by: java.net.BindException: Address already in use: bind?
Alternatively, you can try using docker compose files we have to run your local server.

i got this problem too for the master branch.

ERROR: for conductor-server  Cannot start service conductor-server: driver failed programming external connectivity on endpoint docker_conductor-server_1 (7d85ec407fb565773d3a691fe02c67d525c047b1ed813c8b160c964dbb3c4017): Bind for <IP_ADDRESS>:8080 failed: port is already allocated
ERROR: Encountered errors while bringing up the project.

this is use docker-compoe , and the config  of java -jar conductor-server-*-all.jar $config_file $log4j_file never work, for days i got that, the "*" isn't work, but the config_file not work too, because default run in memery, the docker-compose use the component of dynomite

use docker ps found that 'hardcore_nobel' use the port, but the config_file don't work for branch master and 3.0


Support for CUDA 12.4 and above?  URGENT PERHAPS?

Currently, the latest prebuilt wheels for FA2 only support up to CUDA 12.3...This is problematic since torch versions 2.3.1 through 2.5.0 only support CUDA 12.1 or CUDA 12.4 - i.e. not CUDA 12.3.
Further, recent models like minicpm 2.6, phi 3.5 mini, and deepseek coder lite either prefer flash attention 2 and/or will not work without it (e.g. using SDPA).
Further, Triton wheels 3.1.0 and above require torch 2.4.0+...
What I'm saying is...why haven't there been any releases of FA2 for CUDA support above and beyond CUDA 12.3??

Because wheels compiled w CUDA 12.3 will work with 12.4, as long as the pytorch versions are the same.

Thanks for clarifying.  With that being said, will you please clarify in the release notes?  For example, when a wheels name contains "cu118" I assume it'll only work with CUDA 11.8...not CUDA 12 and so on.  And when it states "cu122" (e.g. release 2.6.0.post1) it's natural to interpret this as ONLY working with CUDA 12.2, nothing higher or lower.
Basically, can you clarify the release notes as to whether a wheel named " flash_attn-2.6.3+cu123torch2.4cxx11abiFALSE-cp311-cp311-linux_x86_64.whl ", for example, will work with:
CUDA 12.4, 12.5...and we're all the way up to 12.6 now too!

setup.py downloads the right wheel automatically

I understand that, but I'm using Windows and hence am using the wheels here:
https://github.com/bdashore3/flash-attention/releases/
Can you please just clarify to me what CUDA level (e.g. 12.6 even?) the release 2.6.3 supports, even if you don't want to update the release notes for me as a favor?

All CUDA 12 minor versions are compatible

Do you care to update the release notes by adding a sentence, which should take you less than 5 minutes, for myself and the thousands of others who use this great library?  Whether you do or don't, you might leave this issue open for others with the same question...or close it, my feelings won't be hurt.  Thanks for clarifying at any rate.

I'll probably change the wheel name to cu11 and cu12 to avoid confusion, thanks for the feedback


publish: message headers added

Added "Headers" to PublishOptions to be able to modify message header values, already supported by streadway/amqp.

Thank you!