[Feature Request] Quantization

Feature Request
The ability to quantize models with gptq, awq, etc.
Motivation
It could be a dropdown menu or space like the one created for merging adapters to the model.  For models like Mixtral or anything over 33B, it's difficult to run on our system when they are not quantized. Thank you!
Additional Context
Thank you!

unstale


Label picker shortcuts are broken

Ran into this today on todoist-shortcuts v90, on both beta and non-beta Todoist (weird?).
Typing @/y selects the task and pops up the multiselect toolbar at the top of the page, but it doesn't open the label picker.
Got this error: Couldn't find unique descendant with tag button and passing predicate.
All other shortcuts that access the multiselect toolbar work fine.

Thanks for reporting!  A bug in my updates making it work for locales other than english.  Fixed in version 91


UF-4531: Implement notification logic.

Acted on review comments, fixed broken tests and added feature toggling for the mail notification


Feat/bitrue

Before submitting this PR, please make sure:

[x] Your code builds clean without any errors or warnings
[x] You are using approved title ("feat/", "fix/", "docs/", "refactor/")

A description of the changes proposed in the pull request:
Bitrue connector ==> https://www.bitrue.com/trade/eth_usdt
Tests performed by the developer:

Manual test
Unit test

Tips for QA testing:

Connect and run Bitrue like other spot connector.

PR update:

Create test account ok
Connect API keys and test valid or invalid ok
Execute balance command ok

Setup simple pure market making strategy

When stop command executed:

Observed that it returns a Failed to cancel the following orders on bitrue and failed connector status when checked
Comparing results on local and cloud setup getting same result
To resolved this issue, we have to execute another stop command ✅

Filled order event:
2024-02-14 05:10:54,144 - 2073921 - hummingbot.client.hummingbot_application - INFO - start command initiated.
2024-02-14 05:10:54,987 - 2073921 - hummingbot.connector.exchange.bitrue.bitrue_exchange.BitrueExchange - INFO - Network status has changed to NetworkStatus.CONNECTED. Starting networking...
2024-02-14 05:10:55,422 - 2073921 - hummingbot.connector.exchange.bitrue.bitrue_api_order_book_data_source.BitrueAPIOrderBookDataSource - INFO - Subscribed to public order book and trade channels...
2024-02-14 05:10:55,423 - 2073921 - hummingbot.connector.exchange.bitrue.bitrue_user_stream_data_source.BitrueUserStreamDataSource - INFO - Successfully obtained listen key 0d2cbc440f5a42d00eeef01338a0ab256812b8d55018830d790802349110a2c7
2024-02-14 05:10:55,543 - 2073921 - hummingbot.core.data_type.order_book_tracker - INFO - Initialized order book for SOL-USDT. 1/1 completed.
2024-02-14 05:10:56,094 - 2073921 - hummingbot.connector.exchange.bitrue.bitrue_user_stream_data_source.BitrueUserStreamDataSource - INFO - Subscribed to private channels...
2024-02-14 05:10:57,002 - 2073921 - hummingbot.strategy.pure_market_making.pure_market_making - INFO - (SOL-USDT) Creating 1 bid orders at (Size, Price): ['0.1 SOL, 111.819 USDT']
2024-02-14 05:10:57,003 - 2073921 - hummingbot.strategy.pure_market_making.pure_market_making - INFO - (SOL-USDT) Creating 1 ask orders at (Size, Price): ['0.1 SOL, 111.841 USDT']
2024-02-14 05:10:57,114 - 2073921 - hummingbot.connector.client_order_tracker - INFO - Created LIMIT SELL order SSLUT611508930e6f29c23f24535d0e0 for 0.100 SOL-USDT.
2024-02-14 05:10:57,129 - 2073921 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp":<PHONE_NUMBER>.0, "type": "OrderType.LIMIT", "trading_pair": "SOL-USDT", "amount": "0.100", "price": "111.841", "order_id": "SSLUT611508930e6f29c23f24535d0e0", "creation_timestamp":<PHONE_NUMBER>.0, "exchange_order_id": "512359054387281921", "leverage": 1, "position": "NIL", "event_name": "SellOrderCreatedEvent", "event_source": "bitrue"}
2024-02-14 05:10:57,132 - 2073921 - hummingbot.connector.client_order_tracker - INFO - Created LIMIT BUY order BSLUT611508930e58f9c23f24535d0e0 for 0.100 SOL-USDT.
2024-02-14 05:10:57,151 - 2073921 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp":<PHONE_NUMBER>.0, "type": "OrderType.LIMIT", "trading_pair": "SOL-USDT", "amount": "0.100", "price": "111.819", "order_id": "BSLUT611508930e58f9c23f24535d0e0", "creation_timestamp":<PHONE_NUMBER>.0, "exchange_order_id": "512359054387232768", "leverage": 1, "position": "NIL", "event_name": "BuyOrderCreatedEvent", "event_source": "bitrue"}
2024-02-14 05:10:57,618 - 2073921 - hummingbot.core.rate_oracle.rate_oracle - INFO - Network status has changed to NetworkStatus.CONNECTED. Starting networking...
2024-02-14 05:15:46,737 - 2073921 - hummingbot.connector.client_order_tracker - INFO - The BUY order BSLUT611508930e58f9c23f24535d0e0 amounting to 0.099/0.100 SOL has been filled.
2024-02-14 05:15:46,738 - 2073921 - hummingbot.strategy.pure_market_making.pure_market_making - INFO - (SOL-USDT) Maker buy order of 0.099 SOL filled. [clock=2024-02-14 05:15:46+00:00]
2024-02-14 05:15:46,741 - 2073921 - hummingbot.connector.markets_recorder - ERROR - Error calculating fee in quote: Could not find the exchange rate for usdt-USDT using the rate source binance rate oracle (please verify it has been correctly configured), will be stored in the DB as 0.
2024-02-14 05:15:46,778 - 2073921 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp":<PHONE_NUMBER>.0, "order_id": "BSLUT611508930e58f9c23f24535d0e0", "trading_pair": "SOL-USDT", "trade_type": "TradeType.BUY", "order_type": "OrderType.LIMIT", "price": "111.8190000000000000", "amount": "0.099", "trade_fee": {"percent": "0", "percent_token": "usdt", "flat_fees": [{"token": "usdt", "amount": "0.0442803240000000"}]}, "exchange_trade_id": "3542536814593", "exchange_order_id": "512359054387232768", "leverage": 1, "position": "NIL", "event_name": "OrderFilledEvent", "event_source": "bitrue"}
2024-02-14 05:15:48,374 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:50,385 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:51,823 - 2073921 - hummingbot.connector.client_order_tracker - WARNING - The order fill updates did not arrive on time for BSLUT611508930e58f9c23f24535d0e0. The complete update will be processed with incomplete information.
2024-02-14 05:15:51,823 - 2073921 - hummingbot.strategy.pure_market_making.pure_market_making - INFO - (SOL-USDT) Maker buy order BSLUT611508930e58f9c23f24535d0e0 (0.100 SOL @ 111.819 USDT) has been completely filled. [clock=2024-02-14 05:15:51+00:00]
2024-02-14 05:15:51,833 - 2073921 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp":<PHONE_NUMBER>.0, "order_id": "BSLUT611508930e58f9c23f24535d0e0", "base_asset": "SOL", "quote_asset": "USDT", "base_asset_amount": "0.099", "quote_asset_amount": "11.0700810000000000000", "order_type": "OrderType.LIMIT", "exchange_order_id": "512359054387232768", "event_name": "BuyOrderCompletedEvent", "event_source": "bitrue"}
2024-02-14 05:15:51,834 - 2073921 - hummingbot.connector.client_order_tracker - INFO - BUY order BSLUT611508930e58f9c23f24535d0e0 completely filled.
2024-02-14 05:15:52,407 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:54,517 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:56,618 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:59,013 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:16:01,137 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:16:03,192 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:16:05,281 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:16:07,329 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.

After a successful filled order, getting error on ERROR - Error calculating fee in quote: Could not find the exchange rate for usdt-USDT using the rate source binance rate oracle (please verify it has been correctly configured), will be stored in the DB as 0.
Connector stuck on warning message on logs:2024-02-14 05:15:52,407 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:54,517 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:56,618 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:15:59,013 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:16:01,137 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.
2024-02-14 05:16:03,192 - 2073921 - hummingbot.client.performance - WARNING - Could not find exchange rate for usdt-USDT using binance rate oracle. PNL value will be inconsistent.

Compare behavior on latest development using Kucoin/Binance, all ok
Compare behavior on local and cloud setup, same issue happened

Steps to reproduce:

Setup simple pure market making strategy
After successfully created the orders, execute stop command. Observe connector behavior
For filled order event, Run the strategy again and setup tight spreads
Observe behavior after successful filled order

logs_pmm-bitrue.log

Does connector support market orders for v2 strategy?

Run market script

orderType.Market is not supported:2024-02-14 11:53:09,791 - 87236 - hummingbot.client.hummingbot_application - INFO - start command initiated.
2024-02-14 11:53:10,000 - 87236 - hummingbot.strategy.script_strategy_base - WARNING - bitrue is not ready. Please wait...
2024-02-14 11:53:10,205 - 87236 - hummingbot.connector.exchange.bitrue.bitrue_exchange.BitrueExchange - INFO - Network status has changed to NetworkStatus.CONNECTED. Starting networking...
2024-02-14 11:53:10,416 - 87236 - hummingbot.core.data_type.order_book_tracker - INFO - Initialized order book for XRP-USDT. 1/1 completed.
2024-02-14 11:53:11,001 - 87236 - hummingbot.strategy.script_strategy_base - WARNING - bitrue is not ready. Please wait...
2024-02-14 11:53:11,509 - 87236 - hummingbot.connector.exchange.bitrue.bitrue_api_order_book_data_source.BitrueAPIOrderBookDataSource - INFO - Subscribed to public order book and trade channels...
2024-02-14 11:53:11,557 - 87236 - hummingbot.connector.exchange.bitrue.bitrue_user_stream_data_source.BitrueUserStreamDataSource - INFO - Successfully obtained listen key 0d2cbc440f5a42d00eeef01338a0ab256812b8d55018830d790802349110a2c7
2024-02-14 11:53:12,000 - 87236 - hummingbot.strategy.script_strategy_base - WARNING - bitrue is not ready. Please wait...
2024-02-14 11:53:12,811 - 87236 - hummingbot.connector.exchange.bitrue.bitrue_user_stream_data_source.BitrueUserStreamDataSource - INFO - Subscribed to private channels...
2024-02-14 11:53:14,001 - 87236 - hummingbot.strategy.script_strategy_base - INFO - Creating XRP-USDT buy order: price: 0.52455 amount: 32.28206571130690760383985767.
2024-02-14 11:53:14,002 - 87236 - hummingbot.connector.exchange.bitrue.bitrue_exchange.BitrueExchange - ERROR - OrderType.MARKET is not in the list of supported order types
2024-02-14 11:53:14,002 - 87236 - hummingbot.core.event.event_reporter - EVENT_LOG - {"timestamp":<PHONE_NUMBER>.0, "order_id": "BXPUT6114f734126f390584bfad947ac", "order_type": "OrderType.MARKET", "event_name": "MarketOrderFailureEvent", "event_source": "bitrue"}
2024-02-14 11:53:14,004 - 87236 - hummingbot.connector.client_order_tracker - INFO - Order BXPUT6114f734126f390584bfad947ac has failed. Order Update: OrderUpdate(trading_pair='XRP-USDT', update_timestamp=1707882794.0, new_state=<OrderState.FAILED: 6>, client_order_id='BXPUT6114f734126f390584bfad947ac', exchange_order_id=None, misc_updates=None)
2024-02-14 11:53:16,325 - 87236 - hummingbot.client.hummingbot_application - INFO - stop command initiated.

@vic-en can you add Market orders please

@cardosofede @rapcmia I'll resolve them shortly

@cardosofede @rapcmia I pushed commits to resolve

@cardosofede @rapcmia I pushed commits to address comments.


no_advertise config setting is not documented in README

Let me know if I should expect it to be documented somewhere else. Generally it seems like NATS Streaming config options are better documented in README than NATS.

Should likely be added here.

See also https://github.com/nats-io/gnatsd/blob/cf3f51f8598f6f5a3c64a3e242d0fb6b8149ac2b/test/configs/tls_cert_cn_routes_invalid_auth.conf#L11.

Thank you for the feedback! For this specific param, I think we do explain what it does in that section: https://github.com/nats-io/gnatsd#configuration-options, specifically:
If those addresses are not reachable from the outside world where the clients are running,
the administrator can use the --no_advertise option to disable servers gossiping those URLs.
Another option is to provide a --client_advertise URL to use instead. If this option is specified
(and advertise has not been disabled), then the server will advertise this URL to other servers
instead of its listen address (or resolved IPs when listen is <IP_ADDRESS> or ::).

Yes, but it is not mentioned anywhere that it exists as a configuration file option. Apologise for the unclarity on my part.

No apologies needed.. I think we have discussed this also in NATS Streaming, we may come up with a config file in the doc that contains ALL parameters but commented out so that if users copy/paste this file, at least they are not running with crazy values. But each param could then be documented with its syntax, possible and default values, etc..

Another reason why I'm filing this issue is because NATS doesn't complain when I'm putting this in the root scope of the file. I put it there because
$ gnatsd --help
...
        --no_advertise <bool>        Advertise known cluster IPs to clients
...

hinted that the setting had to do with "clients" which made me believe this setting should be in the same configuration scope as client_advertise, which was wrong.
Above said, the setting seem to kick in in the root scope. Is it the same as setting in cluster section?

This is from the command line output. But if you have it in your configuration file, it should be under the cluster {} section. Note that in NATS 2.0 (in master), we also have this setting available in configuration file for leaf nodes and gateways.

Again, not trying to justify that doc is good enough, it is not. But from the command line, you see that the no_advertise is under the cluster options:
Cluster Options:
        --routes <rurl-1, rurl-2>    Routes to solicit and connect
        --cluster <cluster-url>      Cluster URL for solicited routes
        --no_advertise <bool>        Advertise known cluster IPs to clients
        --cluster_advertise <string> Cluster URL to advertise to other servers
        --connect_retries <number>   For implicit routes, number of connect retries

which means that the equivalent in configuration file will be in cluster {}. But again, having a config with all properties spilled out would make it easier for users.


Sprite3D

Is it possible to get this to work with Sprite3D?

It seems possible. I'll try it tomorrow and release it if it works. The flow should be the same as using an AnimationPlayer with a Sprite2D. Thanks for the suggestion

@Remixful just an update. I've tried re-using the code for Sprite3D, but even though the import succeeds, the console get stuck with an error message and it's not clear to me why.
 editor/import/resource_importer_texture.cpp:96 - Condition "err != OK" is true. Continuing.

I'll look into this issue as soon I get the time to do so. Once this is solved, it should also be simple enough to implement for AnimatedSprite3D as well.


remove unnecessary pylint ignores

Summary
Fix #828
Details and comments

@delapuente missed that one, it should be fixed now.

@delapuente good catch. done.


Handle unicode (character) coordinates in python3.

Closes #2259.

Should be good to merge once passing.

there are coding standards test failures on this PR; please may these be fixed?

Looks like a very similar fix got added to master at some point.


Feature Request : Upload Progress

I know this is referenced in a discussion on the Dart SDK already, but dont think there is a specific issue for it.
At the moment the lack of file upload progress is quite problematic - espeically for larger files 100mb+
Is this on the road-map?

This is in my internal todo, but for now is a very low priority and at least for the near future I'm not planning working on it. For JS in the browser, you can manually send plain XHR request and use its upload prop. For the Dart SDK the issue is slightly more complicated since it depends how the file was loaded.
I'll keep the issue open for easier tracking, but if anyone want to pick it feel free to outline some of the planned implementation details (I believe this'll require changes mostly in the SDKs).

Thanks for the reply
For anyone looking to do this, I managed to get it to work (for multiple simultanious file uploads)
Look at the Records API, to see how to patch a record: https://pocketbase.io/docs/api-records/
i used nanoid() to generate a unique ID for each upload, to track the progress of each file.
Obviously sample below is just an exmaple, but might be helpful to others.

let filesArr = []

for (var i = 0; i < e.target.files.length; i++) {
        const formData = new FormData();
        formData.append("files", e.target.files[i])

        let _uploadID = nanoid()
        filesArr.push({_uploadID : _uploadID, name : e.target.files[i].name, progress : 0})

        let xhr = new XMLHttpRequest();
        xhr.upload._uploadID = _uploadID

        // listen for upload progress
        xhr.upload.onprogress = function(event) {
            let percent = Math.round(100 * event.loaded / event.total);
            filesArr.find(item => item._uploadID === this._uploadID).progress = percent
            console.log(`File ${this._uploadID} is ${percent} % uploaded...`)
        };

        // handle error
        xhr.upload.onerror = function() {
            console.log(`Error during the upload: ${xhr.status}.`);
        };

        // upload completed successfully
        xhr.onload = async function(event) {
            console.log('Upload completed successfully.');
        };

        xhr.open('PATCH', 'http://pocketbaseurl.com/api/collections/collectionIdOrName/records/recordId');
        xhr.setRequestHeader("Authorization", pb.authStore.token);
        xhr.send(formData);

    }

I tried the same with axios and it seems that I always only receive two respones one being when the file upload is at 50 bytes and later when it has finished. Have you found a work-around for this?

i'm trying to screw this but xhr req works only in the browser so i can't use it in server side code like other crud processes (would love to use it in sveltekit as form action). this means i have to directly expose authstore token to client side for auth headers and i don't really like the idea (am i paranoid?). anyway totally agree with others saying that is so crucial to have feedbacks with medium files uploads. are you planning to increase this feature priority in the near future?

I tried the same with axios and it seems that I always only receive two responses one being when the file upload is at 50 bytes and later when it has finished. Have you found a work-around for this?

Have u tried with axios' onUploadProgress config ?

Old issues cleanup: I'm closing this as I don't plan working on it. Users contributions to the respective SDKs are welcomed.


Is there a way to get a specific file from array of thumbnails?

It's important for me to get a thumbnail not larger than width or height, so I would be glad to see something like Message.Photo.[]Sizes. Can I get it from the telebot?
I found in the docs:
type Message struct {
...
// For a photo, all available sizes (thumbnails).
//              ^^^^^^^^^^^^^^^^^^^
Photo *Photo `json:"photo"`

But the Photo struct contains no other thumbnail sizes except the largest one.

You're right, currently, it's impossible to get any except the largest one. Maybe we should consider fixing it.


Text mention inbox notification

Description
Adds a basic text mention inbox notification

Hello @marcbouchenoire!
A question for you, should we add "content" for this new component?
For now it's not possible to get the text editor content (without a lot of hoops), so I figured just using the title property would be enough.
That said, should we allow for a content override?

Hey @FlowFlorent, hmm it does look odd without a description below, I wonder how other products handle this? (if any have the same requirement as us and can't show the text)
And regarding overriding, I think for now the mention notification should allow the same customization as the thread one, via the kinds prop. For example, by default thread notifications show room names in the title (like the mention one you have), but this can be tweaked:
kinds={{
  thread: (props) => {
    return <InboxNotification.Thread {...props} showRoomName={false} />;
  }
}}

If they want more granularity like changing just the description/content they can go lower with InboxNotification.Custom or fully custom.


Disabled Subscription Leads to Cryptic Portal error

My subscription was disabled (unbeknownst to me). I went to the functions portal and the blade wouldn't load (see image below).
F12 debugging output shows:
MsPortalFx_35A9B42D3716C7A83D119F145EA8C45114836985.js:37 [fx]  3:41:41 PM MsPortalImpl/Parts/Parts Parts: Part { Name: Part, Type: [0]WebsitesExtension-[1]FunctionsIFrameBlade-[2]TemplateBladeVirtualLens-[5]TemplateBladeVirtualPart, Id: Part-TemplateBladeVirtualPart-981eae19-37b8-49dc-b04e-2d530fc6a20d } (ViewModel: FunctionsIFrameBlade) manually transitioned into failure state with message: Part's onInputsSet promise failed.
Error: _errorData: {"readyState":4,"responseText":"{"error":{"code":"ReadOnlyDisabledSubscription","message":"The subscription 'xxxxx' is disabled and therefore marked as read only. You cannot perform any write actions on this subscription until it is re-enabled."}}","responseJSON":{"error":{"code":"ReadOnlyDisabledSubscription","message":"The subscription 'xxxxx' is disabled and therefore marked as read only. You cannot perform any write actions on this subscription until it is re-enabled."}},"status":409,"statusText":"Conflict"}
baseTypes: ["MsPortalFx.Errors.FetchDataError","MsPortalFx.Errors.DataError","MsPortalFx.Errors.Error"]

From IBIZA we'll make sure we flow in the status of the resource however if the sub is disabled, this would need to be handled from withing the iframe.

It looks like this has been fixed. This is what I get now.


disable 6to5 jsx transformer

For ES6 Module Loader, we don't want JSX transpiled as ES6, as there is a very specific line being made between the formats. 6to5 can be used to transpile JSX fine, but then it should act in translate, not as a compiler. So the default should be for JSX to be disabled.

:+1: agreed.

Thanks. Added in https://github.com/ModuleLoader/es6-module-loader/commit/48acf7e82f7049b8a577982888ff8913b1f367c2.


Trigger access option display incorrect value when enable AAD policy

Describe the Bug with repro steps

Enable "Azure Active Directory Authorization Policies" in Logic App Consumption with any simple policy

Go to "Workflow settings" and we will find the "trigger access option" change to "Only other logic apps", but the Logic App still can be triggered from Postman

What type of Logic App Is this happening in?
Consumption (Portal)
Are you using new designer or old designer
New Designer
Did you refer to the TSG before filing this issue? https://aka.ms/lauxtsg
Yes
Workflow JSON
No response
Screenshots or Videos
No response
Browser
Edge
Additional context
No response

I've found and fixed the issue, it will be a part of our next release cycle which should be deployed to all regions by EoD March 1st.
Setting the trigger access should still function properly, the only issue should be with the value that is displayed upon page load.


Support disabling pose publisher from publishing top level model pose

Signed-off-by: Ian Chen<EMAIL_ADDRESS>🦟 Bug fix
Summary
The pose-publisher system uses only one parameter, publish_nested_model_pose, to determine whether or not top level model and nested model poses should be published. This PR adds another parameter, publish_model_pose, to let users decouple pose publishing behavior between nested models and top level models.
The changes should preserve existing behavior. That is, if publish_nested_model_pose is set to true, the top level model pose  should still be published unless the user explicitly disables this by setting publish_model_pose to false. We should consider changing the behavior in garden.
A typical use case is to disable publishing top level model's poses (ground truth data) but still allow nested model poses to be available to the user.
Checklist

[x] Signed all commits for DCO
[x] Added tests
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

This pull request has been mentioned on Gazebo Community. There might be relevant details there:
https://community.gazebosim.org/t/new-ignition-releases-2022-03-01-citadel-edifice-fortress/1313/1


Add a signed property to Enums and interpret them in decompilations

Is your feature request related to a problem? Please describe.
I have observed several situations where Enumerations can have negative values, but they are treated as large positive values instead and consequently aren't recognised correctly.  This is especially obvious when your enum is sized differently to the default.
Describe the solution you'd like
An additional checkbox in the Enum Editor and the sign being used within the decompiler to produce better results.
Describe alternatives you've considered
Duplicate enums for different sized versions (ie byte, short & long), however this doesn't work well and you have to maintain several versions!
I also saw a deprecated <enum> tag in the "Compiler Datatype Organization" description, but if resurrected, I assume this would then apply to all enums which wouldn't work either!
Additional context
Providing this may help solve the need for duplicate sized vesions.

In the example below, my enum looks like:

However in the decompiled if statement the constant isn't recognised and the variable is cast to int:
if ((int)nCompare < 1) {

I happen to be looking at something using portaudio right now, and signed enums would be very useful for following code that uses PaErrorCodes for example


Downgrading hub causes repo where hub previously worked to show no issues

I was using hub 2.3.0-pre8 in a repo to list issues (it worked fine), however, then I downgraded to hub 2.2.9 so that the issues command would still list pull requests, but now it appears that no issues are listed at all.
~/es/elasticsearch λ hub version
git version 2.9.3
hub version 2.2.9
~/es/elasticsearch λ hub issue
~/es/elasticsearch λ

Is there a cache or something that needs to be removed so that hub downgrades successfully?

No, there is no cache and there should be no issue with downgrading. Possibly a connectivity issue? Try HUB_VERBOSE=1 hub issue

That found it:
~/es/elasticsearch:unit-test-bulk2 Ϟ λ HUB_VERBOSE=1 hub issue
$ git config alias.issue
$ git rev-parse -q --git-dir
$ git rev-parse --symbolic-full-name unit-test-bulk2@{upstream}
$ git remote -v
$ git config --get-all hub.host
> GET https://api.github.com/repos/dakrone/elasticsearch/issues
> Authorization: token [REDACTED]
< HTTP 200
[]

The issue is that it will only grab issues based on the branch you're on, so if I happen to be on a branch in my local fork, there are no issues or pull requests.
Is this expected? If it is, I'm happy to close this issue, I just want to know.

Hmm, I'd like to this of this as a bug. Usually, all issues/PRs for a project go to the canonical (main) repo. Most of the cases, it doesn't make sense to list issues/PRs for a fork.
I wonder how does 2.3.0 behave in the same scenario?

I wonder how does 2.3.0 behave in the same scenario?

2.3.0-pre8 does not have this bug, but unfortunately I cannot use it due to https://github.com/github/hub/issues/1303 (related https://github.com/github/hub/commit/8563e678d2f3cfc8d1bcc4ed3f38f7226c5d5012)


why 'nameServerAddress' option unsupported?

I'm new to flink and rocketmq,  I follow the README steps to execute following sql to create table :
CREATE TABLE rocketmq_source (
  `message` STRING
) WITH (
  'connector' = 'rocketmq',
  'topic' = 'TestTopic',
  'consumerGroup' = 'test',
  'nameServerAddress' = '<IP_ADDRESS>:18081'
);

and then execute following sql :
select * from rocketmq_source;

but I got an error below:
[ERROR] Could not execute SQL statement. Reason:
org.apache.flink.table.api.ValidationException: Unsupported options found for 'rocketmq'.

Unsupported options:

nameServerAddress

Supported options:

connector
property-version
rocketmq.client.accessKey
rocketmq.client.message.encoding
rocketmq.client.message.field.delimiter
rocketmq.client.message.length.check
rocketmq.client.message.line.delimiter
rocketmq.client.secretKey
rocketmq.client.timeZone
rocketmq.source.column.error.debug
rocketmq.source.filter.sql
rocketmq.source.filter.tag
rocketmq.source.group
rocketmq.source.pull.rpc.timeout
rocketmq.source.startup.offset.specific
rocketmq.source.startup.offset.timestamp
rocketmq.source.startup.scan.mode
rocketmq.source.stop.offset.timestamp
rocketmq.source.topic

so my question is :  Why I got this error, I suppose 'nameServerAddress'  option already supported as README shows.

It seems that your company's flink sql related projects have changed the configuration name

Try rocketmq.client.endpoints


.pick() does not accept arrays

mySchema.pick()' will only accept non-Array values like .pick('text','state','name') rather than one would expect any regular array like .pick(['text','state','name'])

solved. use the spread syntax such as:
let arrayValues = ['text','state','name']
let newSchema = mySchema.pick(...arrayValues)


Fix lint staged

Lint staged is a tool to ensure that before each commit, a series of quality management tasks run and are valid. For example, in our case, it runs eslint, type checking and tests on the staged files.
Note:
To enable type checking of only staged files, a script has been added scripts/tsc-lint.sh. To allow this script to run, you might need to give it the relevant permissions. Run chmod +x scripts/tsc-lint.sh.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


separate server config initialization from run

Signed-off-by: Avi Deitcher<EMAIL_ADDRESS>
Summary

Create a Config, which is higher level abstraction than Options, lower than Server
Moves all of the configuration work from server.Run() into config.Complete()

The purpose of this is to make Server a more flexible, composable and useful component. Currently, Run() does an enormous amount of setup, which, in turn, means that you cannot choose which components to use or not. It also makes "kcp-as-a-library" painfully heavy to use.
This structure was suggested by @sttts as a first step. Nothing should change in functionality. Once this is in place, we can start to break it apart further, by having Config options that are enabled or not, which, in turn, should enable us to tweak the knobs.
This first PR changes the API to something like:
opts := NewOptions()
completedOpts := opts.Complete()
config := NewConfig(completedOpts)
completedConfig := config.Complete()
server := NewServer(completedConfig)
server.Run()

This already isolates Run() just to starting things, other than those that were set up to run in post-start-hooks. It isn't 100% isolation yet, but a big step forward.
The next API steps would be (in no particular order):

plug server into other listeners, e.g. an already running http server
move the install*Controller() funcs into config, so that Server itself is ignorant of what is installed, which in turn enables:
different configs, lightweight for the basics, heavier for all of the kcp goodies. Either way, you end up with a CompletedConfig which is passed to a NewServer()

There is a decent amount of passthrough from Options -> Config -> Server. I tried to abstract as much as I could into Config, and have Server hold onto that rather than Options, i.e. layered abstractions. I am not convinced that this is the best path, but if it works, I don't care much.

@sttts a lot of your desired pattern still is not clear. Based on your recommended break line, setting up things like kcpSharedInformerFactory and kubeSharedInformerFactory (and all of the other factories) belong as part of NewConfig(). Fine. We make them properties of Config:
type Config struct {
	kcpSharedInformerFactory              kcpexternalversions.SharedInformerFactory
	kubeSharedInformerFactory             coreexternalversions.SharedInformerFactory
        // etc etc
}

Now NewServer() needs access to those factories, so it can use them. But those are properties only of Config, whereas NewServer() only accepts a CompletedConfig. That leaves a few options, none too great:

embed Config in CompletedConfig and then use the accessor to retrieve it. This actually is fine - you really are just decorating Config - but you would need to use accessors for that, which you do not like (see above).
duplicate kcpSharedInformerFactory and kubeSharedInformerFactory (and all of the other properties) in CompletedConfig, populating them in Complete(). That is not DRY at all, quite messy, almost guaranteed to break something in the future, not to mention not quite doing what Complete() is supposed to do.

It gets even harder to separate. dynamicDiscoverySharedInformerFactory is an informer factory, which, by the recommended pattern, should be created when in NewConfig() along with the others.
Except that dynamicDiscoverySharedInformerFactory depends on metadataClusterClient, which is created by:
	metadataClusterClient, err := metadataclient.NewDynamicMetadataClusterClientForConfig(server.LoopbackClientConfig)

So you need server.LoopbackClientConfig, which means you need server, which only comes later in NewServer().
Oy.

One thing that particularly is deserving of focus is when the factories should be initiated. Currently, they are mostly in NewConfig(), with one in NewServer(). The latter is there because creating it informer.NewDynamicDiscoverySharedInformerFactory() needs a parameter server.LoopbackClientConfig, where server is taken from serverChain, both of which definitely should be in NewServer().
This leaves a few possibilities:

keep the split (most of the factories in NewConfig(), this last one in NewServer())
somehow refactor informer.NewDynamicDiscoverySharedInformerFactory() so that it doesn't depend on the info from server.LoopbackClientConfig
create the factories entirely in NewServer() and not in NewConfig(). Would this even be correct?

The latter would drag other dependencies into NewServer(), but these may make more sense there. For example from NewCluster():
	kcpClusterClient, err := kcpclient.NewClusterForConfig(c.identityConfig) // this is now generic to be used for all kcp API groups
	if err != nil {
		return c, err
	}
	c.kcpClusterClient = kcpClusterClient
	kcpClient := kcpClusterClient.Cluster(logicalcluster.Wildcard)
	c.kcpSharedInformerFactory = kcpexternalversions.NewSharedInformerFactoryWithOptions(
		kcpClient,
		resyncPeriod,
		kcpexternalversions.WithExtraClusterScopedIndexers(indexers.ClusterScoped()),
		kcpexternalversions.WithExtraNamespaceScopedIndexers(indexers.NamespaceScoped()),
	)

Moving the above would mean moving kcpClusterClient and kcpClient (and others) into NewServer(). But maybe that make more sense? However, doing so would mean we could not create apiBindingAwareCRDLister until NewServer(), as well as apiHandler, which means genericConfig.BuildHandlerChainFunc could not be created, and that definitely belongs in NewConfig() 🤷♂

This was superseded by #1609


chore: fix readme typos

Fixed some unintentional spelling typos for some of the inputs in the README.md.

That's a very important thing to get correct. I mean, those guys are from Cleveland. Thanks for catching it!


Toonza1150

import { TokenPocket } from 'ual-token-pocket'
import { UALProvider, withUAL } from 'ual-reactjs-renderer'
const exampleNet = {
chainId: '',
rpcEndpoints: [{
protocol: '',
host: '',
port: '',
}]
}
const App = (props) => {JSON.stringify(props.ual)}
const AppWithUAL = withUAL(App)
const tokenPocket = new TokenPocket([chain])

Haha

Toonza

Could you clarify on what your issue is?  I can't discern the problem from your code snippet and comments.


Repositories > Summary

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

Right hand column panel finished:

Repositories > Branches screen, mostly finished (needs a few tweaks):

First pass at Repositories > Commits (not finished, needs NodeGroup wrapping around StackedLists, and proper mockCommitsData:


Try to enable orphan-instance warnings

ConfigSpec: maybe use a Gen instead?

Nope. For the moment, it's good as it is.


Duplicate dictionaries with different word counts

I noticed there are a few dictionaries that are the same [language]-[language] but have different word counts. For example, there are two English-German and English-Greek. I'm not sure if this is something we have any control over but wouldn't it make sense to merge those two duplicate dictionaries into one?
Or is this just how the dictionaries are provided?
Thank you for reviving QuickDic btw, I was pretty bummed when I reinstalled it only to find out it didn't work.

One is the old one from the original app, the other one that I recreated from up-to-date wiktionary.
Especially for the English-German one you can see that one has more English words and the other more German ones, so I was/am not sure if I did it correctly.
So I decided to leave both in, just in case.
It might just be a bug in how the words are counted or something though or the wiktionary data changed.
I just don't have time to come up with a way to compare what exactly the difference between these is.
Maybe it would be better to just remove the old ones, given that nobody has complained about the newly generated ones.
I might do that, but it's not a priority.

All right, that makes sense!

Older versions removed in c77b09285ea4b27e32e42e0ca40a280bd86bdaeb


inconsistent lighting in Camera plugin

Describe your issue here and explain how to reproduce it.
Your environment

OS Version: Ubuntu 20.04
ROS Distro: Noetic
RViz, Qt, OGRE, OpenGl version as printed by rviz:

rviz version 1.14.4
compiled against Qt version 5.12.8
compiled against OGRE version 1.9.0 (Ghadamon)

The Camera display type overlays the rendered RViz scene in top of the 2D image. As the rendered scene always represents the current RViz scene, it also includes changes in lighting and the pivot point. Changing the viewpoint in the 3D RViz view will change the lighting in the rendered Camera view.
For consistency, the plugin should render with a constant light source and not change the lighting based on the viewpoint in the 3D view.

I can confirm this issue: The camera display uses the same light source as the main view, where the (unique) light source moves with the camera. However, I'm not sure how to solve this problem, both conceptually and technically:

Which light source should be used for the camera display? Also one coming from the camera?
As both renderings share the same scene, is it possible at all to have different light sources in both views?
How/where to define this light source?
I think, it would be best if there would be a new panel to manage light sources, configuring their properties like:

type: directed vs. ambient
color
direction (in case of directed light)

I can confirm this issue: The camera display uses the same light source as the main view, where the (unique) light source moves with the camera. However, I'm not sure how to solve this problem, both conceptually and technically:

Which light source should be used for the camera display? Also one coming from the camera?
As both renderings share the same scene, is it possible at all to have different light sources in both views?
How/where to define this light source?
I think, it would be best if there would be a new panel to manage light sources, configuring their properties like:

type: directed vs. ambient
color
direction (in case of directed light)

Which light source should be used for the camera display? Also one coming from the camera?

If the camera display uses a light source, it should be related to the camera frame. It could simply be a surface light behind the camera.

As both renderings share the same scene, is it possible at all to have different light sources in both views?

I think no. Either the camera view has to be rendered a second time offscreen or you use the same light source for both views.

How/where to define this light source?

Does the visualisation actually need a light source? Or would it be enough to just have the meshes self-illuminating where the shader basically shows the defined colour, without taking any light source into account?

Which light source should be used for the camera display? Also one coming from the camera?

If the camera display uses a light source, it should be related to the camera frame. It could simply be a surface light behind the camera.

As both renderings share the same scene, is it possible at all to have different light sources in both views?

I think no. Either the camera view has to be rendered a second time offscreen or you use the same light source for both views.

How/where to define this light source?

Does the visualisation actually need a light source? Or would it be enough to just have the meshes self-illuminating where the shader basically shows the defined colour, without taking any light source into account?

Without a light source, everything is just black. So, we would need to add an ambient light at least.

Without a light source, everything is just black. So, we would need to add an ambient light at least.

Without a light source, everything is just black

You can formulate the shader such that it sets the pixel simply to the colour of the mesh. This does not need external lighting, the "light intensity" would be just defined by the colour of the mesh. This would however not work with alpha channels etc.
If these features are required, I think the only way is to render the scene offscreen again with a different light source.

Without a light source, everything is just black

You can formulate the shader such that it sets the pixel simply to the colour of the mesh. This does not need external lighting, the "light intensity" would be just defined by the colour of the mesh. This would however not work with alpha channels etc.
If these features are required, I think the only way is to render the scene offscreen again with a different light source.

The scene is rendered again anyway (from a different point of view). I wouldn't deviate from directional light sources: they introduce "naturalistic" shading.

The scene is rendered again anyway (from a different point of view). I wouldn't deviate from directional light sources: they introduce "naturalistic" shading.

Ok, if it is re-rendered anyway for the Camera Display, then it only needs a constant, camera-frame dependent and viewpoint independent, light source.

Ok, if it is re-rendered anyway for the Camera Display, then it only needs a constant, camera-frame dependent and viewpoint independent, light source.

It is re-rendered, but currently using the exact same scene, which - as I understand - comprises the light source(s). So, either we need to maintain two similar scenes (only differing in their light sources) or we need to switch light sources before rendering the (same) scene into each view.

It is re-rendered, but currently using the exact same scene, which - as I understand - comprises the light source(s). So, either we need to maintain two similar scenes (only differing in their light sources) or we need to switch light sources before rendering the (same) scene into each view.

there is this plugin (and forks) that worked quite well for us when playing around with VR or shadows: https://github.com/mogumbo/rviz_lighting

@christian-rauch, does the referenced plugin solves your problem? Can we close this issue?

As far as I understand, this plugin allows adding additional light sources to the scene, which is not really what I am interested in. I am just interested in having the light source that already exists to stay fixed with respect to the world reference frame. On top of that, the plugin requires additional patches on top of RViz.

yes, you can disable the default one and add a new fixed on using the plugin I linked to. (or maybe one of the forks)
The patches discussed there would give more realistic (a little bit at least) lighting but just to have a fixed light source you don't need any fixes AFAIR

Was this fixed upstream?

This has gotten the label wontfix. Simon suggested a plugin instead.

The plugin needs a custom patch applied to RViz (https://github.com/mogumbo/rviz_lighting#making-it-work-better-with-rviz). Can we apply this patch at least, so that the plugin can be used straightforward without requiring to compile RViz manually?

I am just interested in having the light source that already exists to stay fixed with respect to the world reference frame.

Fixating the light source isn't a great idea, because you won't see anything than black if looking against the light.

Can we apply this patch at least, so that the plugin can be used straightforward without requiring to compile RViz manually?

Disabling the default light source (as done by the patch) isn't a good idea either, because you won't see anything by default.
@christian-rauch: If you come up with a good solution to these problems, I'm happy to consider your PRs.

Isn't there even a checkbox for disabling global ligthing already?
The parts that chance attenuation and co I haven't tested yet but they are optional improvements (I'll try to understand and test those soonish)


Rsyslog refactor

Everything stopped working for me when I updated firmware recently: monit got confused and wouldn't start local-control server, log rotation made tailing flakey, and I got inconsistent queries from the apron dbs. I refactored so rsyslog takes care of the app lifecycle and aprontest is used for all queries (seems much more reliable). I also made it npm packable with bundled dependencies, so you can install directly from tarball without worrying about missing node_modules. There's query debouncing and race prevention built in, and setting a value from mqtt doesn't immediately publish the value - it waits for the hub to acknowledge the change. Note that I did get rid of the group topics - not sure if that was being used. Let me know what you think!

This also fixes #14 for me. Memory is sitting around 70% (wink will reboot at 75%).

@xdissent so in the current master branch I am having an issue where all lights come on at full brightness. this may be when the hub is rebooting or it could be at another time, I am not sure when this is happening.

So testing your code it is working. The lights coming on in my case was in fact caused by the wink hub rebooting, so I need to find a way to maintain state there. Anyway your code appears to be working but it takes about 5-6 seconds for the state to update in HASS. The lights turn off instantly however.

I noticed my hub started rebooting a few times a day, sometimes more frequently than others. It turns out the local-control server (another node process) can spike and easily push mem usage over the 75% threshold, causing a reboot. I monitored it for a while and in reality the 70% I quoted was only when everything was absolutely idle. The second anything actually happens, both wink-mqtt and local-control are in danger of triggering a reboot. I tried a few optimizations but was never able to get wink-mqtt memory usage below ~20MB (at idle), which is huge given the limited resources available. And due to node's GC, there's always unpredictable spikes. There are some v8 options for low-mem environments but they're not available until node 4+ (wink is on 0.10).
So with all that in mind, I refactored the whole thing again, this time as a single monolithic shell script, using bish-bosh. If you'd like to try it out, remove this PR:
[root@flex-dvt ~]# monit stop rsyslogd
[root@flex-dvt ~]# rm -rf /opt/wink-mqtt

(don't worry about the rsyslog configs, they'll be overwritten) And then install the bish-bosh branch:
[root@flex-dvt ~]# curl -ksL https://github.com/xdissent/wink-mqtt/releases/download/release_2017.0602.1748-1/wink-mqtt_2017.0602.1748-1_all > /opt/wink-mqtt
[root@flex-dvt ~]# chmod +x /opt/wink-mqtt
[root@flex-dvt ~]# /opt/wink-mqtt install

It should ask you for your mqtt server address and restart rsyslogd. Note that the path isn't important, so you don't really have to remove /opt/wink-mqtt if you wanna keep this PR around too.
With the bish-bosh refactor, memory is around 8MB and total memory usage is around 55%. Way more headroom for local-control spikes. I haven't had a memory-related reboot since I've been running it (about 24 hours). Anyway, let me know how it goes if you give it a shot.

I actually just removed the last device from my wink this evening. I was tired of being woke up to all of my lights coming on in the middle of the night when it would crash. However as I go through my house planning where to put smart switches I am finding that I do not have neutrals in all the locations so I will need to use some Lutron Caseta switches. I will get the wink back up tomorrow maybe and see what I find with this new build.
Sounds like you really tackled the memory issue.
Is it running stable without reboots for the past 3 days?

the directory /etc/rsyslog.d/ does not exist.


correct example

map() is a function in python2, and iterator in python3+;
In any case map is inefficient compared to either comprehensions (most efficient),
or simple loops (close second).
SInce in this case, data.append() returns nothing, use a simple loop.
It is clearer, more efficient, and works with both python2 and python3

...btw, just for the heck of it, I ran this on cPython 3.7a (so far, seems to work);

sorry - just realized I should have made this against "develop" branch;  let me know if you need me to do anything...


Pull ENS Avatar After Web3.py Update

ethereum/web3.py does not yet support the get_text function for ENS.
Pending https://github.com/ethereum/web3.py/pull/2286

Features merged in https://github.com/ethereum/web3.py/pull/2413

Hey, I'd love to take this! is it still open?

Hey @MatteoMer - that'd be great! Yes, it is still open :)

Let me know if you have any questions, @MatteoMer


Json Output enableJsonExprFinder

enableJsonExprFinder for Zend_Json::encode so you can e.g. define listeners for plugin form elements
$form->setElement(
'select',
'mappingFilesPath',
array(
'label' => 'Modus',
'required' => true,
'store' => array(),
'listeners' => array(
'select' => new Zend_Json_Expr('function() { /code/ }')
),
'scope' => Shopware\Models\Config\Element::SCOPE_SHOP
)
);

Dear Contributor,
Thank you for your contribution to Shopware. We value your engagement.
Unfortunately we have to close all existing Pull Requests.
This is due to the new Shopware 5 Major Release and a restructuring of the branch names.
If your contribution is still relevant for Shopware 5, a new pull request is highly appreciated.
We are very sorry for this inconvenience.
Greetings from the Shopware Team.


Outputs do not have coordinate systems for 3 tools

@jblindsay, I did a little testing of some tools and these ones all came out as "offenders" in that the raster output they produce do not have an assigned coordinate system.

vector polygons to raster
vector points to raster
vector lines to raster

I tested a few of the tools that take shapefiles as inputs and create shapefiles as outputs they were all OK.

@Hornbydd This change was made four days ago. The current version of these tools in the repository should preserve the projection. I'll close this now but if you find any issues during testing, please feel free to re-open.
I will say this about projection issues with WhiteboxTools though. Dealing with projections from diverse data sets (vector shapefiles, rasters of varying formats, LAS files) is extremely complex and challenging. Other projects deal with the complexities of managing projection information in the diverse ways that data formats require by using specialized libraries (e.g. GDAL, Proj). I cannot use this same approach, for various design reasons, in WhiteboxTools. And as such, the only way to truly replicate this is to re-write all of the functionality of these libraries. I have no interest in doing that...I am just a one-man show here and there are limitations to what I can do. With WhiteboxTools, I am aiming to provide a solid and capable spatial data analysis library. It is not a full-blown GIS and can never be. This is usually quite simple for tools that take in data in one format and output data in the same format, e.g. a vector analysis tool where the input is guaranteed to be a shapefile and so to is the output. I simply need to copy the projection information into the output file. However, projection issues come to a front for tools where the inputs and outputs are of different formats. For example, when a LAS file is interpolated to a raster. Even raster-input-to-raster-output is challenging because every raster format stores projection information in different ways (most complex of all is the GeoTIFF format). In these situations, you need to have proper means of dealing with projections, which I do not have.
The thing that you need to keep in mind here is this, there is no layer below WhiteboxTools. Other geospatial software is built on a 'stack' of common software to handle basic things like reading/writing different data formats, handling projections, coping with the extreme complexity of vector topology. However, because of the desire to make WBT entirely isolated (i.e. it is a stand-alone that does not require other software on the users machine) basically all of these functionalities need to be programmed into the project. And when I say they need to be programmed, it's just me doing that. It may not be obvious to the outside world here, but WhiteboxTools is a one-man show. I've written everything, from the lowest level GeoTIFF reader/writer, to the highest level D8 flow accumulation tool and everything in between. I have limited bandwidth, particularly because WBT is not my full time job. While I certainly do appreciate users telling me when they encounter bugs or unexpected behaviour, I do need to pick and choose my battles. I know that WBT doesn't do as sophisticated a job of handling projection information as other geospatial software does. But I simply don't have the bandwidth to re-write all of Proj into Rust. I would like to spend as much time as possible writing new and interesting spatial analysis tools. To do so requires me to do some basic things as well (e.g. reading/writing different data formats). But ultimately this was the reason that I stopped hacking on Whitebox GAT as well...in that case I had to spend so much effort trying to create a full GIS user-interface. I eventually go to the state where I thought this is nuts because there are GIS out there that can be used to visualize rasters/vectors and to make pretty maps, but I am spending a tremendous effort in enabling these features in WBGAT, again as a one-man show. With WBT, I decided early on that I didn't want to spend any more time working on front-end issues, instead creating the tools in such a way that people can use whatever front-end they like. I still have to deal with the low-level coding issues like this however. The challenge for me is to find the right balance in which I can focus on the stuff that I'm in this for (creating spatial analysis tools) without having to spend my life chasing issues with the low-level stuff. It's tough. Anyhow, I'm sorry for the rant and I hope that you don't interpret this as my being ungrateful for your efforts in trying to improve WBT, because I am truly grateful for your efforts.

@jblindsay  I totally understand and I don't see your reply as a rant, it's a honest appraisal of how WBT is being developed and hopefully others read.  I understand it's a one man show, for me RivEX has been 8 years in development and still evolving although I fear the writing is on the wall when ESRI retire ArcMap...
I've just caught up with my emails from you and @giswqs  and its what I thought, a short delay in code tweaks/bug fixes before they cascade throughout your systems, which as you say can be a time consume tasks.
I'm accessing WBT principally through the python toolbox, I prefer that as it's one download and all I have to do is unzip it, nice and easy and provides a user friendly interface in the ArcMap environment!
I feel I can best support you by my testing/use of the tools and logging any issues but now realise that at some point you need to eat, sleep and work and not expect an immediate resolution.  If only you could clone yourself... ;)

John, I just want to let you know that I really appreciate and admire the work you do! And I am sure numerous GIS users benefit from WBT. I don't know how you manage to do this, but I could not imagine developing such an amazing library from scratch, even it were my full-time job. You must have sacrificed numerous weekend hours and family time on this. As a one-man show, it is impossible to code all the I/O stuff from scratch without relying on third-party libraries (e.g., GDAL). Users can utilize other GIS libraries and packages (e.g., QGIS, ArcGIS) to handle data format conversion and projection issues if needed. I think the numerous advanced geospatial analysis tools in WBT (but not available in other full-blown GIS ) are what make WBT unique and powerful!!

@Hornbydd Yes, that's what I need, a clone! Anyhow, your testing efforts have already significantly improved WBT so I'd encourage you to carry on with them. @giswqs I truly appreciate such kind words from someone that I also admire. Your advocacy for WBT has been tremendous for the project and your efforts on the ArcGIS front-end and Python API are absolutely essential. Much gratitude is sent to both of you.


provide homebrew cask for 1.8.1

on it.
 cask-repair camunda-modeler

see https://github.com/caskroom/homebrew-cask/pull/35288

done


Implement consistent Token Caching support that builds on MSAL cache

MSAL's cache implements some fairly complex logic that we do not ever intend to duplicate in Azure.Identity.
Ideally we would utilize the underlying MSAL library's cache to offer a consistent caching experience. MSAL currently it does not expose its cache directly. This may be something that becomes available in the future as a feature enhancement.

This is a key feature and without it, we cannot comfortably migrate from AppAuthentication to Azure.Identity for Azure apps that are not natively integrated with the latter SDK.
This includes using managed identity with things like various Azure PaaS database services (Azure SQL, Azure PostgreSQL) or authenticating against Azure AD protected web apps etc.
Hopefully it will be implemented in Azure.Identity soon and then this library can truly and totally replace the legacy one.

Whether you roll your own cache or borrow from BearerTokenAuthenticationPolicy in some way there is a problem with freely choosing the tokenRefreshOffset. BearerTokenAuthenticationPolicy has a default of 5m which happens to be the same as what some of the the underlying TokenCredential variants uses. Those with MSAL i guess, but yes, that code was complex enough that I could not find where it's equivalent to tokenRefreshOffset was set or what it was set to, I only observed the behaviour...
If you choose something longer than 5m (like I happened to do with 10m) you end up with the code trying to refresh the token but getting the same token back from the TokenCredential so for the difference of the duration your cache is suddenly "read-through" since the newly fetched token has the same Expiry time as the old. With the logic in BearerTokenAuthenticationPolicy this does not affect the caller with a performance hit, but some additional CPU will be used and if you have AppInsights active you will get a lot of unexpected logging from the TokenCredential code.
Can someone add some advice on how to best choose the tokenRefreshOffset or should we just assume 5m and hope for the best in the future?

Requesting a token more frequently from AAD does not guarantee that a new token will be received since it does its own caching as well. The only benefit that BearerTokenAuthenticationPolicy attempts to provide is to reduce the chance that a network call is required in the hot path of TokenCredential.GetToken.

I would actually be very surprised if two requests for tokens from AAD returned the same token unless I hammered it hard with requests and hit an output cache or something like that. More likely to get a 429 response in that case would be my guess.
For the kind of access token this concerns and for requests 50m apart it seems very unlikely. But of course anything is possible.

@cadwal In that case be very surprised. Managed Identity returns the same token for up to 24 hours, which has been a real pain when making changes to roles as they don't take effect until a new token is generated.

No, that is not really a surprise.
I assume you are talking about AppServices, Functions or AKS Linux Pods here and to aquire a token for the MI:s involved there, the library you use have to (the last time I looked at least) do a network call to the sidecar that has access to the MI and its secret (I don't think the MSI_SECRET env variable is the actual MI secret at least) and can do the actual AAD call to aquire the token. There might be more levels of libraries involved in the sidecar that I don't know about since that code is not exactly public as far as I know.  All that code might do whatever it wants in the way of caching causing that behaviour, but it also means that those MI:s have a different token policy with a longer lifetime than the usual 1h, wonder why that was done and if one can change that... Might there also be a difference between System Assigned and User Assigned?
Though I also wonder if the innermost layer there uses MSAL and has that same issue with that cache not allowing for new tokens until 5m before expiry. Using Windows AKS Pods here that don't have Pod Indentities yet so have not come across more details on that...
But essentially I guess then there is no known better choice than 5m as a RefreshOffset for any top level cache as discussed here.

@christothes, I think this one is also related to: https://github.com/AzureAD/microsoft-authentication-library-for-dotnet/issues/2597

The lack of this feature makes a migration away from AppAuthentication unreasonable for at least SQL Server Authentication.

Thanks for the feedback. We're also working on a caching strategy for ManagedIdentityCredential involving improved support from MSAL. I don't have an exact timeframe to share, but it is on the radar for sure.

This missing cache also prevents us from fully migrating away from AppAuthentication.
I'd love to also have an option in the cache that automatically refreshes the tokens in the background before they expire, so that no actual user-facing request ever faces the penalty of waiting for the token response.
We're currently doing this with AppAuthentication where a IHostedService just calls GetAccessTokenAsync(resource, forceRefresh: true) on each dependant AAD resource every 45 min. This helped a lot with making our response times more consistent.

The lack of this feature makes a migration away from AppAuthentication unreasonable for at least SQL Server Authentication use cases.
The migration below causes 3 calls to the token endpoint, to check for migrations and apply them if needed and each call is 10 seconds right now (I'm not sure why it's taking so long though).

Legacy
var tokenProvider = new AzureServiceTokenProvider();
return await tokenProvider.GetAccessTokenAsync(ResourceId);

New
var context = new TokenRequestContext(new[] { ResourceId + "/.default" });
var credential = new DefaultAzureCredential();
var accessToken = await credential.GetTokenAsync(context);
return accessToken.Token;

For SQL Server authentication you don't need to get the token by yourself anymore, but use the new Active Directory Default authentication provider, which can you specify in the connection string like this
Authentication=Active Directory Default;

If anyone lands here and needs a band-aid solution you can use this to wrap any TokenCredential.
using System.Text.Json;
using Azure.Core;
using Microsoft.Extensions.Caching.Memory;

public class CachedTokenCredential : TokenCredential {
    private readonly IMemoryCache cache;
    private readonly TokenCredential credential;

    public CachedTokenCredential(IMemoryCache cache, TokenCredential credential) {
        this.cache = cache;
        this.credential = credential;
    }

    public override AccessToken GetToken(TokenRequestContext requestContext, CancellationToken cancellationToken) {
        if (!this.cache.TryGetValue(GetCacheKey(requestContext), out string token)) {
            AccessToken tokenModel = this.credential.GetToken(
                requestContext,
                cancellationToken
            );

            MemoryCacheEntryOptions? options = new MemoryCacheEntryOptions().SetAbsoluteExpiration(
                tokenModel.ExpiresOn.AddMinutes(-1)
            );

            token = JsonSerializer.Serialize(tokenModel);

            this.cache.Set(GetCacheKey(requestContext), token, options);
        }

        return JsonSerializer.Deserialize<AccessToken>(token);
    }

    public override async ValueTask<AccessToken> GetTokenAsync(TokenRequestContext requestContext, CancellationToken cancellationToken) {
        if (!this.cache.TryGetValue(GetCacheKey(requestContext), out string token)) {
            AccessToken tokenModel = await this.credential.GetTokenAsync(
                requestContext,
                cancellationToken
            );

            MemoryCacheEntryOptions? options = new MemoryCacheEntryOptions().SetAbsoluteExpiration(
                tokenModel.ExpiresOn.AddMinutes(-1)
            );

            token = JsonSerializer.Serialize(tokenModel);

            this.cache.Set(GetCacheKey(requestContext), token, options);
        }

        return JsonSerializer.Deserialize<AccessToken>(token);
    }

    private static string GetCacheKey(TokenRequestContext tokenRequestContext) =>
        $"{tokenRequestContext.TenantId}{string.Join('-', tokenRequestContext.Scopes)}";
}

Thanks for the feedback. We're also working on a caching strategy for ManagedIdentityCredential involving improved support from MSAL. I don't have an exact timeframe to share, but it is on the radar for sure.

It seems there's a lot of interest in Chris' comment, so I want to provide an update. The ManagedIdentityCredential token caching feature shipped in the 1.7.0-beta.1 release of Azure.Identity. We expect to GA it in October.

@amirschw The 1.8.0 release will GA in October and will include token caching for ManagedIdentityCredential. We had to ship the 1.7.0 release sooner than expected to include this feature for multi-tenant apps. The 1.8.0-beta.1 release, which reintroduces token caching, is expected early next week.

UPDATE: The 1.8.0 GA release has slipped to November.
Why? The Azure SDK team strives to achieve feature parity across the most popular programming languages we support. We have numerous customers who use the Azure Identity library across multiple languages. Consistency is a key ingredient in their developer experience. In this situation, our Azure Identity for JavaScript library's unit tests for Managed Identity token caching still need some work. And we don't want to rush a feature out the door that doesn't meet our quality bar. Thanks for your patience.

Any plans to also support token caching with InteractiveBrowserCredential?  Our scenario is console app that uses Azure SDK and we want to be able to have similar expereince to az cli where user logs in and can execute mutliple CLI commands without needing to re-authenticate.  We could implement our own tokencredential that does aquiresilent and acquire interactive with MSAL but we don't want to take on the burden of securing/maintaining secure implementation of token cache.

Any plans to also support token caching with InteractiveBrowserCredential? Our scenario is console app that uses Azure SDK and we want to be able to have similar expereince to az cli where user logs in and can execute mutliple CLI commands without needing to re-authenticate. We could implement our own tokencredential that does aquiresilent and acquire interactive with MSAL but we don't want to take on the burden of securing/maintaining secure implementation of token cache.

Does the following sample work for your scenario? https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/samples/TokenCache.md

UPDATE: The 1.8.0 GA release shipped today!

@scottaddie the release notes don't say anything about Managed Identity token caching 🧐

@amirschw It's mentioned in the initial 1.8.0 Beta release: https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity/CHANGELOG.md#180-beta1-2022-10-13

Could anyone explain how to use this feature with DefaultAzureCredential? Obviously, the DefaultAzureCredentialOptions does not implement ITokenCacheOptions

I came across this issue after following the docs on Azure AD authentication for Application Insights which recommend to use DefaultAzureCredential for local development. For every log that was getting sent out, their library was requesting a new token and it completely bogged down my application.
It looks like they're under the impression that Azure.Identity was shipping a caching solution (see comment in microsoft/ApplicationInsights-dotnet/issues/2539).
Seems like there might be a need here for a common solution for caching these credentials that can be used across Microsoft libraries.


Fixes for Godot 4 (Issue #6)

Small changes for Godot 4 to fix Issue #6

Having 126 changed files isn’t small? Can you double-check your contents – I don’t think .godot/** and addons/** should be uploaded to the repo.

Oh, sorry about that! It looks like you have a similar pull request so I'll cancel this one so they can merge yours.
Thanks again for your input.

It looks like you have a similar pull request so I'll cancel this one so they can merge yours.

Not really, you were first.
Although, Git folks prefer many incremental commits over a few complex commits.
Perhaps you are new to Git/Hub? (:


adds EL 9 support

compared Redhat 8 config files with default config files from an empty Rocky Linux 9 install
-> no changes in config

Awesome, thanks!


ci: freeze requirements used in workflows

What does this PR do?
some are frozen without visibility, and others are without any versions
the motivation was seeing broken uploads with awscli with latest versions

Before submitting

Was this discussed/agreed via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
Did you make sure to update the documentation with your changes? (if necessary)
Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
Did you list all the breaking changes introduced by this pull request?
Did you update the CHANGELOG? (not for typos, docs, test updates, or minor internal changes/refactors)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing, make sure you have read the review guidelines. In short, see the following bullet-list:

Reviewer checklist

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[x] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[x] Add labels and milestones (and optionally projects) to the PR so it can be classified

📚 Documentation preview 📚: https://pytorch-lightning--19146.org.readthedocs.build/en/19146/

cc @borda @carmocca

Friendly reminder that job paths should match checkgroup paths

I don't think this need to be required

If they don't match, the following can happen:

ci.txt is updated to include a new release of a dependency
that release doesn't work (the PR CI is red)
checkgroup won't require those jobs because it doesn't know about ci.txt
the PR can be merged with failing CI, which would block other PRs.

We don't allow auto-merge anymore, so it wouldn't happen automatically. But if checkgroup is not updated then this is a way to break CI from user error

ci.txt is updated to include a new release of a dependency

That is the purpose so we can control it

that release doesn't work (the PR CI is red)

True, as it would be also before this PR...

checkgroup won't require those jobs because it doesn't know about ci.txt

Why would you merge anything to break master?

the PR can be merged with failing CI, which would block other PRs.

True and False at the same time...

We don't allow auto-merge anymore, so it wouldn't happen automatically. But if checkgroup is not updated then this is a way to break CI from user error

Happy that you agree that this PR brings only important to state before =)

This PR is great. I'm just pointing out things that should be added.

This PR is great. I'm just pointing out things that should be added.

it did the main job, all others can be added later as you suggested to make rather smaller changes

I'm glad that you agree. Will you be able to open a PR making them?


Set alignment attribute to AllocOp of insertAllocAndDealloc()

This PR enables us to set alignment attribute in AllocOp which is created in insertAllocAndDealloc() by adding new argument.

Can one of the admins verify this patch?

@jenkins-droid test this please.

@jenkins-droid test this please.

Thanks for review! I added comments.


issue(sometime): Sometime kyber shows notification not correct when user input 0.001 eth on "To" side

Steps:

Access kyber > exchange > input 0.001 ETH on "To " side > issue:

or

Expected:

Not bug


Updated pencil (2.0.6)

Tick #17075

Thank you for the contribution. It was merged directly as 4bfefe43548ec3e5c2bcde64c7a3ac7ebc5d39c0 to keep commit history cleaner. Your contribution is still credited to you.


Initial implementation. ...

See commits for comments.

 Is it possible for us to make these return MonadSnap instances instead of Snap? That makes it easier to wrap them when you're using a monad transformer around your Snap instance.

There's nothing stopping you.
 Is it possible for us to
make these return MonadSnap instances instead of Snap? That makes it easier
to wrap them when you're using a monad transformer around your Snap
instance.
—
Reply to this email directly or view it on GitHub
https://github.com/SumAll/haskell-canteven-snap/pull/1#issuecomment-111317793
.

Yes yes, fine, sorry, when I said "us", I meant "not me". But sure, PRs
welcome, I got it.
On Thu, Jun 11, 2015 at 11:23 PM, Rick Owens<EMAIL_ADDRESS>wrote:

There's nothing stopping you.
 Is it possible for us to
make these return MonadSnap instances instead of Snap? That makes it
easier
to wrap them when you're using a monad transformer around your Snap
instance.
—
Reply to this email directly or view it on GitHub
<
https://github.com/SumAll/haskell-canteven-snap/pull/1#issuecomment-111317793

.

—
Reply to this email directly or view it on GitHub
https://github.com/SumAll/haskell-canteven-snap/pull/1#issuecomment-111341037
.


NettyClientBuilder.idleTimeout has no effect

Hello, I'm currently trying to investigate an issue with idleTimeout taking no effect and not closing long-running idle connection.
Expected behaviour:
If server not responding within idleTimeout (we can consider this as a connection idleness, right?) -- client.run effect should fail.
Actual behaviour:
client.run effect hangs until server responds or closing connection.
There is a test reproducing this (I wanted to push it as a branch, but looks like have no rights):
// client/src/test/scala/org/http4s/netty/client/NettyClientIdleTimeoutTest.scala
package org.http4s.netty.client

import cats.effect.IO
import com.comcast.ip4s._
import munit.catseffect.IOFixture
import org.http4s.HttpRoutes
import org.http4s.Request
import org.http4s.Response
import org.http4s.client.Client
import org.http4s.dsl.io._
import org.http4s.ember.client.EmberClientBuilder
import org.http4s.ember.server.EmberServerBuilder
import org.http4s.implicits._
import org.http4s.server.Server

import scala.concurrent.duration._

class NettyClientIdleTimeoutTest extends IOSuite {
  override val munitIOTimeout = 1.minute

  val emberClient: IOFixture[Client[IO]] =
    resourceFixture(
      EmberClientBuilder
        .default[IO]
        .withIdleConnectionTime(5.seconds)
        .build,
      "ember client")

  val nettyClient: IOFixture[Client[IO]] =
    resourceFixture(
      NettyClientBuilder[IO]
        .withIdleTimeout(5.seconds)
        .resource,
      "netty client")

  val server: IOFixture[Server] = resourceFixture(
    EmberServerBuilder
      .default[IO]
      .withPort(port"0")
      .withHttpApp(
        HttpRoutes
          .of[IO] { case GET -> Root / "idle-timeout" =>
            IO.sleep(30.seconds).as(Response())
          }
          .orNotFound
      )
      .build,
    "server"
  )

  List(
    (emberClient, "ember client"),
    (nettyClient, "netty client")
  ).foreach { case (client, name) =>
    test(s"$name fails after idle timeout") {
      val s = server()

      val req = Request[IO](uri = s.baseUri / "idle-timeout")
      val response = client().run(req).allocated.attempt
      IO.race(response, IO.sleep(15.seconds)).map {
        case Left(Left(error)) => println(s"response failed, error:"); error.printStackTrace()
        case Left(Right(_)) => println("response available")
        case Right(_) => fail("idle timeout wasn't triggered")
      }
    }
  }
}

Having TRACE level enabled in logback-test.xml, I do see several
13:15:18.180 [KQueueEventLoopGroup-2-2] TRACE o.h.n.c.Http4sHandler - Closing connection due to idle timeout
13:15:23.179 [KQueueEventLoopGroup-2-2] TRACE o.h.n.c.Http4sHandler - Closing connection due to idle timeout

lines logged, but nothing happens from client perspective (client().run(req) don't finishes).
Please note, this test is passing for Ember client with it's withIdleConnectionTime.
Please correct me in case my expectations about NettyClientBuilder.idleTimeout are wrong.

This is a bug. I incorrectly assumed that netty would throw an exception.

Please be aware that using idleTimeout leads to this critical issue https://github.com/http4s/http4s-netty/issues/640.


NPM warning when used with React 16

So far I haven't noticed any code issues, so it appears to still be compatible with React 16.
The package.json dependencies, however, are throwing a warning.

This still needs to be repackaged and pushed to npm with a version update. Thanks!

No problem.

Done.


Remove unnecessary assertion and parameter from be_regfile

https://github.com/black-parrot/pre-alpha-release/blob/4522fbd2416940ef87a98bf0cc63bb3e8de4eda9/bp_be/src/v/bp_be_calculator/bp_be_regfile.v#L85
Seems like it is?

good catch

Rename it bp_be_regfile_bypassing?

Really, I should add the bypassing behavior to the RAM...

Fixed in be_dev.  I left the name the same, because I would like (eventually) to parameterize bypassing support or no, reusing the rest of the module


e2e test apiconsumer

create test for apiconsumer
add github actions to e2e test apiconsumer on kovan

Let's move this to another repo for end-to-end automated tests of the DevRel nodes.


Kiosk has hard time seeing auction time changes

We closed an auction earlier in staging, kiosk had hard time catching up with that.
This is low priority, but has come up as a potential production scenario where we may be changing when an auction closes. Kiosks had to be logged out to see that, maybe we can have a quicker wy.

Sure – I believe we only check the time once on startup. It wouldn't be difficult to re-sync the closing time when we sync everything else.


Add fail-on-cache-miss option

Description
Add an advanced option to fail job if cache miss occurs.
Based on the work from @kotewar which was reverted in https://github.com/actions/cache/pull/1006/commits/11ab7ccfa2803e57082f50b6bcf6d627d72f6b26.
Motivation and Context

Fixes #955 and partially https://github.com/actions/cache/discussions/1020#discussioncomment-4341251
This is already possible via the cache-hit output. However, especially for advanced workflows, this quickly becomes cumbersome to add every time. It's also an additional 3 line for each job and doesn't include a good error message.
  - name: Check cache hit
    if: steps.cache.outputs.cache-hit != 'true'
    run: exit 1

As mentioned in https://github.com/actions/cache/issues/955#issuecomment-1362681576, the goal to simplify the configuration doesn't exclude the possibility to help with more advanced use cases. Including the new option will make it easier to use, help keep workflows more readable, and enable better error messages.
How Has This Been Tested?

Added test cases and run a test workflow using the feature branch.
Screenshots (if appropriate):
--
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Documentation (add or update README or docs)

Checklist:

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

@kotewar I rebased all my PRs to resolve the merge conflicts and update the tests after the recent changes. Is there a timeline when this can move forward? It would be awesome if I wouldn't have to resolve merge conflicts every other week.

Looks good to me, before we can release this out, we need a few additions

Please update the patch version in package.json
Please update RELEASES.md and the Whats new section of README.md with appropriate release info.

I'll approve, merge the PR and release the new version once the info is updated! Thanks :)

Whats new section of README.md with appropriate release info.

This also please. Just one liner is enough.

Whats new section of README.md with appropriate release info.

This also please. Just one liner is enough.

Sorry. Missed that the first time. Should be good now.

Thanks @cdce8p for your contribution, the changes are live 🚀
Please do test the positive and negative responses once with the latest tag actions/cache@v3 and actions/cache/restore@v3.

Thanks @cdce8p for your contribution, the changes are live 🚀

Awesome 🎉 Thanks for your help getting it ready.

Please do test the positive and negative responses once with the latest tag actions/cache@v3 and actions/cache/restore@v3.

<EMAIL_ADDRESS>does seem to work as expected from my initial testing. However, the v3 tag doesn't seem to have been updated. It still points to 3.2.3 (58c146cc91c5b9e778e71775dfe9bf1442ad9a12) not 3.2.4 (58c146cc91c5b9e778e71775dfe9bf1442ad9a12).
Thus I just get Unexpected input(s) 'fail-on-cache-miss' for that.

Let me check

My bad, I forgot to tag the version to v3. Please check now.

My bad, I forgot to tag the version to v3. Please check now.

It works now! Thanks


Add missing types

cc @sdroege @EPashkin

I don't see any usage of ViewGutterPosition :(
No visible effect for GLib.Priority too.

There is no usage for ViewGutterPosition but at least now it's not missing anymore (I was getting sick of seeing it every time then remember why I didn't add it).
About GLib.Priority, it's the not yet available async functions.

Ok, then 👍

Thanks for the review! :)


Crashes Sublime with Vintageous in Command Mode

When using Vintageous with Sublime, if you're in command mode and try to insert a timestamp, sublime completely freezes and has to be force quit.

@nfarrar does this still occur?


Renko Tradebars

Used to make price action (time eliminated) bars to make more better trends.

In what sense @xenu256? Guess doesn't apply to equity so it would be firing TradeBar events to OnData based on price movement?

Can be applied to everything as it is same TradeBar, just with same range, made from ticks, so basically, just consolidator is needed (each bar would have different start time), then those bars can be feed into OnData as usual.

I've started working on this and have an implementation that uses a new RenkoConsolidator to consolidate TradeBar data into RenkoBar data. I'll need to implement in a similar pattern as the TradeBarConsolidator, which now supports BaseData,DynamicData, Tick and TradeBar

The RenkoConsolidator class has been added. It allows you to define your renko bar size, as well as provides for value and volume selectors. A sample algorithm, RenkoConsolidatorAlgorithm, has also been added showing the usage.


feat: Add Marketo connector

This was initially paused, as the ClientCredentials Oauth Grant was not yet implemented.

Closing this due to #525


Setting queue limit in shaper has no effect

There is multiple issues I have identified with how the shaper is configured in OPNsense but will try to keep this one to the relevant information.
The default queue limit is 50, this works.  But if choosing a different value, it is accepted by the UI (providing it is below 100), but not placed in to a live configuration.
After some investigation I found the shaping rules at /usr/local/etc/ipfw.rules.
The scheduler is configured on the same line as the pipe, which is unusual syntax I have never seen before and different to FreeBSD documentation, this seems to be preventing the queue length from taking hold, so part 1 of the fix is to move the scheduler settings to its own 'sched' line.
Also the queue limit should be added to the queue's as well (if they exist), probably best to add an actual queue limit configuration box to the queue configuration screen for this in case the administrator wants a different value for the queue than the pipe.
OPNsense 24.1.2_1 (amd64).

On both of my bug reports I am open to providing correct dummynet syntax, but I have limited knowledge of php, and also OPNsense script structure so providing a direct patch would be difficult.

GUI url is ui/trafficshaper#queues, to repeat simply make a queue and look at /usr/local/etc/ipfw.rules to see incorrect syntax, and can verify state with 'ipfw queue show' and 'ipfw pipe show'.


Bug: Light Sensor LUX 6001

Describe The Bug
In Apple Home LUX is always 6001. In my config .json file i can add manually the curtain but nothing happens. The data is automatically in Apple Home from SwitchBot.
To Reproduce
Everytime
Expected behavior
Show current lux
Relevant log output
Not Relevant for the Light Sensor
Curtain: Vorhang scanDuration is less then updateRate, overriding scanDuration with updateRate

Config for homebridge-switchbot
{
    "platform": "SwitchBot",
    "name": "SwitchBot",
    "credentials": {
        "notice": "Keep your token a secret!",
        "openToken": "XXX"
    }
}

Screenshots
No response
Device & Model
Raspberry PI
Node.js Version
16.14.2
NPM Version
??
Homebridge Version
1.4.0
Homebridge Switchbot Plugin Version
v1.12.8
Homebridge Config UI X Plugin Version
HOOBS 4.2.1
Operating System
Raspberry Pi 4B

First of all, this plugin is designed for homebridge not HOOBs.
Secondly there is a device config setting that you can change these for lux max and min.

If i install the plugin it automatically adds all Accessoires from SwitchBot Hub. I cant even configurate these.

Got it wok

If i install the plugin it automatically adds all Accessoires from SwitchBot Hub. I cant even configurate these.

Yes it will always add all accessories and you must configure the ones that you don't want to display.

If i install the plugin it automatically adds all Accessoires from SwitchBot Hub. I cant even configurate these.

Yes it will always add all accessories and you must configure the ones that you don't want to display.

Ok. In Accessoires it shows my curtain and my DIY IR Speaker. How i can show the speaker in Apple Home? In the SwitchBot App there is no DeviceID shown.

Found the DeviceId in Log Terminal but cant add it to Apple Home. Maybe i miss anything.

I found out that if i use ble: true the Lux will be correct. If is false it stays 6001.
is this normal?

Yes because BLE sees different values for Lux levels then OpenAPI. once again. you are using HOOBs which is different then homebridge, I can really only help with homebridge.

All plugins i use are working like homebridge itself. But i can use the ble function.

All plugins i use are working like homebridge itself. But i can use the ble function.

The Config UI for homebridge is different then HOOBs which makes it harder to configure the plugin.


HTTP: check for saving HTML form inputs

Would ease passing back forms with already populated values. cc @Skeebl
Could be based on Jodd/Css selectors.
Would fail if form can't be found.
Would save a Map[String, Any] where value could be String or Seq[String] (multivalues).

We can either save a Map[String, Any] or a Map[String, Option[Any]]. I depends on whether we want to save every field or only fields with values (excluding unchecked checkbox / radio).
 are a little tricky when it comes to default values as, if there is no "selected" value, a monovalued select takes its first option as default value.
We might also want to handle HTML5 input types.
 return a Date ...
<input type="number" -> Double
That would induce greater complexity, but would allow direct manipulation on the extracted data.

We can either save a Map[String, Any] or a Map[String, Option[Any]].

No. What we want is what will be sent over the wire, ie foo=, hence an empty String.

We might also want to handle HTML5 input types. return a Date ...
Double

No, we want to focus on Strings, as that's what will be sent over the wire. If one wants more complex types, he'll have to manually convert.

Can users easily get a Map (field name) -> (complete html) ? They will need context to convert.

They will need context to convert.

Why?

Well, if they need a single conversion, that's fine without any context. They know the name of the field to convert, and they should know how to convert it.
I thought that, if they needed a mass conversion, they might need the type of the field or the min/max attributes. I'm actually struggling to find a use-case for such a thing.

over engineering ;-)

If you want "context", grab the full text body with a responseBody check and parse yourself in a transform step.


No Ambient light in Sonoff Ultimate Tx T5-4c

Hi, in your last update I saw a fantastic addition: the ability to control the ambient light of 2c and 3c that works  beautifully. However , I also have 4cs where this feature isn't available.
When can we expect this new functionality on the 4c too?
Thank you

You should provide device info

Here it is. Thank you
sonoff-bfafcfbdaa9afbe8d6413cdd8f126169-Lampadario cameretta-f244b1bb81eddaa1e68e5863133e34ff.json.txt

Since when sonoff started manufacturing TX Ultimate 4ch???

https://github.com/AlexxIT/SonoffLAN/releases/tag/v3.5.4