[Hub Generated] Review request for Microsoft.CostManagement to add version stable/2019-11-01

This is a PR generated at OpenAPI Hub. You can view your work branch via this link.
Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[ ] new API version
[ ] update existing version for new feature
[x] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of “no breaking changes
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from API Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable version with Breaking Change Validation errors
[ ] Updating API(s) in preview over 1 year

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

The breaking change in this PR has been approved in the following PR: https://github.com/Azure/azure-rest-api-specs/pull/12031
I just missed one place where "dimesnion" and "tag" should be "dimensions" and "tags"

The breaking change in this PR has been approved in the following PR: https://github.com/Azure/azure-rest-api-specs/pull/12031
I just missed one place where "dimesnion" and "tag" should be "dimensions" and "tags"

As the breaking change was previously approved, no need to ask approval again. Mark this PR as breakingchange approved.

As the breaking change was previously approved, no need to ask approval again. Mark this PR as breakingchange approved.


Wrong ARES link in Figure "Current overview of topical databases"

In the Figure "Current overview of topical databases" the link to ARES should https://data.earlinet.org

Thanks. This should now be fixed.


fix micro typo

A very minor typo caused error in markdown rendering.
I almost feel bad for being such a nitpick, sry 🍺

@pocin great, thanks!


Resource/remote file/move file when possible

Hello @NikolaLohinski,
I re-worked (a lot) the remote_file resource:

[x] Current task is now private and no more part of the resource output.
[x] Delete the task as soon as it is completed.
[x] Keep the task on error.
[x] Move the file when possible (instead of download it every time).
[x] Indicate in the plan when the resource will be replaced (downloaded and not only moved).
[x] Introduce the models package to share types between resources or data sources.
[x] Add log entries for debugging purpose.
[x] Add tests to remote_file resource to cover more use cases.
[x] Add checks to test to ensure the provider does not leave tasks after applying.

I know the PR is big, I suggest you to review the new file without trying to map to the old code.

Hey @holyhope thanks a ton for the work
I'll be taking a look in the next few days
Cheers

Generally looks good to me. Thanks again
However, thes tests don't run locally for me:
$ mage go:test
Running target: Go:Test
exec: ginkgo "run" "-p" "./..."
Failed to compile internal:

# github.com/nikolalohinski/terraform-provider-freebox/internal
./resource_remote_file.go:672:25: v.client.MoveFile undefined (type client.Client has no field or method MoveFile)
./resource_remote_file.go:672:132: undefined: freeboxTypes.FileMoveModeOverwrite
./utils.go:25:17: c.UpdateFileSystemTask undefined (type client.Client has no field or method UpdateFileSystemTask)
./utils.go:25:64: undefined: freeboxTypes.FileSytemTaskUpdate
./utils.go:37:14: c.DeleteFileSystemTask undefined (type client.Client has no field or method DeleteFileSystemTask)

Ginkgo ran 1 suite in 526.530011ms

Test Suite Failed
Error: running "ginkgo run -p ./..." failed with exit code 1

The locked free-go version is most likely wrong so you need :
mage go:tidy

I also released v1.3.0 in free-go from latest master commit : https://github.com/NikolaLohinski/free-go/tree/v1.3.0 so feel free to bump the go.mod as well before the tidying.
However, when doing so locally, it still does not work:
 mage go:test
Running target: Go:Test
exec: ginkgo "run" "-p" "./..."
Failed to compile internal:

# github.com/nikolalohinski/terraform-provider-freebox/internal
./resource_remote_file.go:672:25: v.client.MoveFile undefined (type client.Client has no field or method MoveFile)
./resource_remote_file.go:672:132: undefined: freeboxTypes.FileMoveModeOverwrite

Ginkgo ran 1 suite in 335.701885ms

Test Suite Failed
Error: running "ginkgo run -p ./..." failed with exit code 1

Woops, forgot to open a PR for the freebox sdk.
I will do that as soon as possible.


error in log

Hi,
I installed the integration, and I can see the data from the electricity meter, but the reading is interrupted
I found this error in log.
Logger: homeassistant.util.async_
Source: util/async_.py:166
First occurred: 09:11:00 (2943 occurrences)
Last logged: 09:23:53
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 428: quadrant_i = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 432: quadrant_ii = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 436: quadrant_iii = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 440: quadrant_iv = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for solax_modbus doing blocking calls at custom_components/solax_modbus/init.py, line 342: return self._client.read_input_registers(address, count, **kwargs)
Tato chyba pochází z vlastní integrace.
 This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 428: quadrant_i = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 432: quadrant_ii = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 436: quadrant_iii = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for chint_pm doing blocking calls at custom_components/chint_pm/init.py, line 440: quadrant_iv = client.read_holding_registers(
Detected blocking call to sleep inside the event loop. This is causing stability issues. Please report issue to the custom integration author for solax_modbus doing blocking calls at custom_components/solax_modbus/init.py, line 342: return self._client.read_input_registers(address, count, **kwargs)

Hi
"Detected blocking call to sleep inside the event loop." issue will fix in "async-modbus" branch.
The buffer problem maybe conflict solax integration? please try to temporaly disable to solax_modbus (i see logging problem solax_modbus integratin)

Yes you are right i am using solax modbus integration.
Is there any solution for this? Solax integration only provides me with 29 basic entities, and I have to load the rest of the information from chint.
I can try to turn off the solax integration, but that is not the solution. :-(
tomas

So I have a new acquaintance. Deleting the solax integration will not help.
I have a Drazice inverter (it is a copy of Solax), I can see the data on the solaxcloud.com cloud, and according to the supplier, one of them is actually a Solax inverter.
I use a chint to measure the flow from the inverter. In export controls / Mode_Select I have the option Meter. When I turn off the electricity meter measurement (Mode_Select = Disable), your integration starts to work and load data from the inverter, but still intermittently.
LOG:

I have waveshare RS485/ETH  and yesterday I also tried the serial RS485/USB converter connected directly to the Rpi.
https://www.aliexpress.com/item/1005001621816794.html?spm=a2g0o.productlist.main.3.1b0d81e5aggKya&algo_pvid=2534d96d-084c-41c3-a1de-efac11dc1b92&algo_exp_id=2534d96d-084c-41c3-a1de-efac11dc1b92-1&pdp_npi=3%40dis!CZK!22.24!17.75!!!!!%40211bc71916862963213562272d07d6!12000016846594795!sea!CZ!182522184&curPageLogUid=ts4MCrsW0zyg

Do you connect directly to chint, or connect over inverter?
When connected with usb adapapter don't use any other master device?

Chint is part of the power plant installation, so it is connected to the inverter. The Waveshare is connected to the chint with approx. 10cm long wires. The second test was the RS485/USB converter and I connected it with approx. 2 m of wire to the inverter side.
An interesting insight is that if I have the flow measurement through the chint switched on in the inverter, the integration does not work at all. It only works when I software disable the chint in stridation.

Ok, but inverter not passthru or translate modbus registers to different address. (if connect serial adapter to inverter same pins to meter, you have multiple master in modbus network, a serial modbus network must only have one master, and aon or many slave device)
I have huawei inverter, when i like read over from inverter i'm only can reading totaly different registers than contins chint spec.
I'm resolving this problem, convert chint to modbus ethernet (modbus ethernet can serve multiple master)  HA connect with modbus tcp to chint, huawei inverter connect an modbus/tcp -> modbus serial converter to chint.
if you like to read from inverter, please check solax integration or inverter modbus spec

I'm using converter as Elfin EE11 and Elfin EW11 from aliexpress


2u/up queries reproduction with CQD @ KGReasoning

Since there is no issue board at https://github.com/pminervini/KGReasoning I thought I could write it here and tag @pminervini   😃
I'm trying to run CQD CO and Beam on the BetaE version of FB15k-237 and NELL-995 datasets using that repo, but for some reason, the numbers for union queries are very low.
After downloading the pre-trained models (fb15k-237-betae and nell-betae, respectively), I'm using the following commands:
python main.py -cuda --do_test --data_path FB15k-237-betae --cpu_num 1 --geo cqd --tasks "1p.2p.3p.2i.3i.ip.pi.2u.up" --checkpoint_path models/fb15k-237-betae -d 1000

python main.py -cuda --do_test --data_path NELL-betae --cpu_num 1 --geo cqd --tasks "1p.2p.3p.2i.3i.ip.pi.2u.up" --checkpoint_path models/nell-betae -d 1000

Other hyperparams are set as default ones (there is no info on when to put --cqd-sigmoid-scores or --cqd-normalize-scores, so I presume they should be turned off).
The numbers for 2u/up FB15k-237:
Test 2u-DNF MRR at step 99999: 0.005257
Test 2u-DNF HITS1 at step 99999: 0.001895
Test 2u-DNF HITS3 at step 99999: 0.004898
Test 2u-DNF HITS10 at step 99999: 0.010378
est 2u-DNF num_queries at step 99999: 5000.000000
Test up-DNF MRR at step 99999: 0.016857
Test up-DNF HITS1 at step 99999: 0.005590
Test up-DNF HITS3 at step 99999: 0.014344
Test up-DNF HITS10 at step 99999: 0.033338
Test up-DNF num_queries at step 99999: 5000.000000

And for NELL:
Test 2u-DNF MRR at step 99999: 0.007676
Test 2u-DNF HITS1 at step 99999: 0.004144
Test 2u-DNF HITS3 at step 99999: 0.006924
Test 2u-DNF HITS10 at step 99999: 0.014262
Test 2u-DNF num_queries at step 99999: 4000.000000
Test up-DNF MRR at step 99999: 0.023296
Test up-DNF HITS1 at step 99999: 0.010295
Test up-DNF HITS3 at step 99999: 0.022723
Test up-DNF HITS10 at step 99999: 0.045247
Test up-DNF num_queries at step 99999: 4000.000000

Is there anything missing or those are expected numbers for betae datasets?
P.S. Would be good to have an example of how to properly run CQD with KGReasoning in the example.sh :)

Hello @migalkin, yes indeed!! I will set up a document on how to get the best possible results by Monday!
Here's how to get nicer numbers on FB15k-237 and FB15k with the beam setting -- @dfdazac, could you comment about the co setting?
Here's for up:
PYTHONPATH=. python3 main.py --do_valid --do_test --data_path data/FB15k-237-betae -n 1 -b 1000 -d 1000 --cpu_num 0 --geo cqd --tasks up --print_on_screen --test_batch_size 1 --checkpoint_path models/fb15k-237-betae --cqd discrete --cqd-t-norm min --cqd-k 16

And here's for 2u:
PYTHONPATH=. python3 main.py --do_valid --do_test --data_path data/FB15k-237-betae -n 1 -b 1000 -d 1000 -lr 0.1 --cpu_num 0 --geo cqd --tasks 2u --print_on_screen --test_batch_size 1 --checkpoint_path models/fb15k-237-betae --cqd discrete --cqd-t-norm min --cqd-normalize  --cqd-k 16

Since there is no issue board at https://github.com/pminervini/KGReasoning I thought I could write it here and tag @pminervini 😃

Thank you, I had no idea there was no issue board for https://github.com/pminervini/KGReasoning, maybe the project has to be owned by an org in order to do it -- will look into it!

But in general things like whether to use --cqd-sigmoid-scores or --cqd-normalize-scores is a hyperparameter -- we select the best choice for each query type based on the results on the validation set and report the results on the test set using the best configuration. Trying out one configuration takes a few seconds, so it's not a costly process.

Hi @migalkin! For CQD-CO the main hyperparameters we experimented with were the choice of t-norm and the regularization coefficient. These were the best based on the validation set performance:
FB15k
python main.py --cuda --do_valid --do_test \
--data_path data/FB15k-betae -n 1 -b 1000 -d 1000 \
--geo cqd --tasks '1p.2p.3p.2i.3i.ip.pi.2u.up' \
--print_on_screen --test_batch_size 1000 \
--checkpoint_path 'models/fb15k-betae' \
--cqd continuous --cqd-t-norm prod --reg_weight 0.001

Results:
Test 2u-DNF MRR at step 99999: 0.417489
Test 2u-DNF HITS1 at step 99999: 0.307748
Test 2u-DNF HITS3 at step 99999: 0.468769
Test 2u-DNF HITS10 at step 99999: 0.633633
Test 2u-DNF num_queries at step 99999: 8000.000000
Test up-DNF MRR at step 99999: 0.220525
Test up-DNF HITS1 at step 99999: 0.154713
Test up-DNF HITS3 at step 99999: 0.236309
Test up-DNF HITS10 at step 99999: 0.345788
Test up-DNF num_queries at step 99999: 8000.000000

FB15k-237
python main.py --cuda --do_valid --do_test \
--data_path data/FB15k-237-betae -n 1 -b 1000 -d 1000 \
--geo cqd --tasks '1p.2p.3p.2i.3i.ip.pi.2u.up' \
--print_on_screen --test_batch_size 1000 \
--checkpoint_path 'models/fb15k-237-betae' \
--cqd continuous --cqd-t-norm prod --reg_weight 0.001

Results:
Test 2u-DNF MRR at step 99999: 0.145097
Test 2u-DNF HITS1 at step 99999: 0.085846
Test 2u-DNF HITS3 at step 99999: 0.149461
Test 2u-DNF HITS10 at step 99999: 0.259410
Test 2u-DNF num_queries at step 99999: 5000.000000
Test up-DNF MRR at step 99999: 0.082233
Test up-DNF HITS1 at step 99999: 0.040649
Test up-DNF HITS3 at step 99999: 0.080860
Test up-DNF HITS10 at step 99999: 0.161372
Test up-DNF num_queries at step 99999: 5000.000000

NELL:
python main.py --cuda --do_valid --do_test \
--data_path data/NELL-betae -n 1 -b 1000 -d 1000 \
--geo cqd --tasks '1p.2p.3p.2i.3i.ip.pi.2u.up' \
--print_on_screen --test_batch_size 1000 \
--checkpoint_path 'models/nell-betae' \
--cqd continuous --cqd-t-norm prod --reg_weight 0.001

Results:
Test 2u-DNF MRR at step 99999: 0.172942
Test 2u-DNF HITS1 at step 99999: 0.099039
Test 2u-DNF HITS3 at step 99999: 0.186822
Test 2u-DNF HITS10 at step 99999: 0.320322
Test 2u-DNF num_queries at step 99999: 4000.000000
Test up-DNF MRR at step 99999: 0.131610
Test up-DNF HITS1 at step 99999: 0.074683
Test up-DNF HITS3 at step 99999: 0.139782
Test up-DNF HITS10 at step 99999: 0.243873
Test up-DNF num_queries at step 99999: 4000.000000

So essentially all use the product t-norm, and regularization of 0.001.

Thank you guys 😊
I managed to get much better numbers with those settings!
The key was to use --cqd-t-norm min for union queries with Beam, while results for the default CO settings well correspond to @dfdazac 's numbers

@migalkin btw I just managed to enable Issues on https://github.com/pminervini/KGReasoning/ ! :)

Perfect, thank you!
Could you please transfer this issue to that repo's issue board?

@migalkin wish I knew how to do that 😅

@pminervini there is a button "Transfer issue" in the right-hand side panel under the Participants section, repo admins should see it and have the rights :) No probs if it remains here though


RubyGems page still lists camping.rubyforge.org as homepage

The RubyGems data for Camping is very out-of-date, listing the homepage as http://camping.rubyforge.org/
As far as I can tell there is no link anywhere there to the repo on GitHub.

We'll be updating all of this Data within the next 7 days. We'll have a new website, although barebones, and a new official community location.

I realize that has been a few days past the self imposed 7 days deadline. This is still on our summer list of things to do, and we'll get to it. Don't you worry.

Recently resolved.

It's still listing the same homepage: https://rubygems.org/gems/camping/versions/3.2.4

@brandondrew I've updated the homepage in the gem spec but the change isn't reflected on rubygems.org. I reached out to them to ask for a little help and I'll investigate a little more soon.

@brandondrew I reached out to the folks at RubyGems. They've updated the website to reflect the new homepage, and couldn't find a root cause for why it wasn't updating based on the gemspec.


turn off verbose loading of our private toolchains

Cuts down on noise for the developers.  We can individually turn it back on while working on things.

Force merge. The constant noise from this slows down testing.


Static images aren't being served?

On the live instance... (do we have the wrong path?)
Might have to switch to an alternative at this stage.

Fixed in #62 . Django's debug mode enables some features by default (and the current build process does not seem to run collectstatic or anything.)... Going to leave it on.


features and fixes

Farm Designer:

Display a crosshair and the snapped coordinates while a plant is dragged.
Fix a bug related to legend width that occurred on some devices.

Device page:

Disable the OS update button while an update is downloading.
Load camera selection on page load.
(Separate camera selection components into a new file.)

Coverage increased (+1.6%) to 36.273% when pulling 59127b70f28248cf71ecdf9546650b65fd1b17eb on gabrielburnworth:master into f12615a4615d04054d6d39cc30358e89048d3edd on FarmBot:master.


Unexpected Token Case

Every time I run a command like -
'node ./node_modules/.bin/istanbul check-coverage'
I get the following error -
C:\Users\zanem\Documents\GitHub\impressjs\node_modules\.bin\istanbul:4
case `uname` in
^^^^

SyntaxError: Unexpected token case
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:404:25)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:311:12)
    at Function.Module.runMain (module.js:457:10)
    at startup (node.js:136:18)
    at node.js:972:3

If I run this with Mocha, then it reports the same issue, but states that it happening in _mocha:4 instead.
This happens when I try to setup Istanbul to run cover over mocha. It happens when I just try and run Istanbul. I am at a loss and can't find anything about this anywhere.
Help please!

Appears that the path to mocha was valid in unix but not in windows.
./node_modules/mocha/bin/_mocha changing to this solved the problem. While I could call Istanbul from ./bin/Istanbul, I could not call mocha from the same location.

I have the same problem. And tried with .\node_modules.bin_mocha, still "SyntaxError: Unexpected token case" How can I fix it?

Solved by running "istanbul cover node_modules\mocha\bin\mocha --  --compilers js:babel/register --recursive".

Finally successful by running "istanbul cover node_modules\mocha\bin_mocha --  --compilers js:babel/register --recursive"

where do you change the patch?


Adding Composer Auto loader Optimization Section

I add a section about optimizing composer autoloader

Good suggestion. Thanks!


power_domain: intel_adsp: initialize after DMA

Repro with west build -p -b intel_adsp_ace15_mtpm -T tests/drivers/dma/loop_transfer/drivers.dma.loop_transfer, found in the weekly build.

Change the power_domain_intel_adsp initialization priority so that it initializes after the DMA driver that it depends on.
Fixes a few:
ERROR: /soc/dma@72c00 POST_KERNEL 40 69 <
/soc/dfpmccu@71b00/hst_domain POST_KERNEL 75 65
ERROR: /soc/dma@72400 POST_KERNEL 40 66 <
/soc/dfpmccu@71b00/hst_domain POST_KERNEL 75 65
...

Thanks, this seems to address at least some of https://github.com/zephyrproject-rtos/zephyr/issues/61961


Extract individual app contents from WAD

tmd.py can now retrieve data from the content records at 0x1E4 for extracting all app contents. Note that these are still encrypted and will need to be decrypted with the common key.
Closes #1.

(Title Key not Common Key but otherwise yes)


Itinerary Team List broken after Task renaming

A couple of properties need updating to ensure the team list can be data bound correctly

Prepping a fix


Add events for hoppers accessing an inventory

There doesn't appear to be any event that captures hopper interaction with an inventory.

@bloodmc
Pretty sure these were being captured when testing inventory in the past...

Any updates on this issue? There are still no events for it are there?

I would think this action should fire the ChangeInventoryEvent.Transfer but it does not.

ChangeInventoryEvent.Transfer.Pre/Post are implemented


feat(transloco): 🎸 add option to ignore scope casing

PR Checklist
Please check if your PR fulfills the following requirements:

[x] The commit message follows our guidelines: https://github.com/ngneat/transloco/blob/master/CONTRIBUTING.md#commit
[x] Tests for the changes have been added (for bug fixes / features)
[x] Docs have been added / updated (for bug fixes / features)

PR Type
What kind of change does this PR introduce?

[ ] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[x] Documentation content changes
[ ] Other... Please describe:

What is the current behavior?
Currently the scope is being altered by the toCamelCase helper method. This creates the issue that if you provide a scope where you would like to have the first character not to be changed OR just the casing in general you can only do this by providing an alias.
e.g { scope: 'FOOBAR', alias: 'FOOBAR' }
Issue Number: N/A
What is the new behavior?
This feature enabled the possibility to only provide the scope and the casing of it will not be altered, so you can just use this: { scope: 'FOOBAR' } or { scope: 'F-OO-BaR' } --> will be transformed to { scope: 'FOOBaR' }`
Does this PR introduce a breaking change?

[ ] Yes
[x] No

Other information

I will squash all the commits once we get to a point where the PR Is final, but I now left them there so you can see changes a bit more easy.

@shaharkazaz I think we're good to go.
Squashed all the commits

@maartentibau Can you please update from master?

@maartentibau Can you please update from master?

Done 🚀


Upload component [input file type] not reading "input-props"

TuSimple/naive-ui version (版本)
2.24.1
Vue version (Vue 版本)
3.2.26
Browser and its version (浏览器及其版本)
Version 1.34.80 Chromium: 97.0.4692.71 (Official Build) (64-bit)
System and its version (系统及其版本)
Linux Kubuntu 21.04
Node version (Node 版本)
Reappearance link (重现链接)
https://codesandbox.io/s/vu3-naive-input-props-input-file-plei9
Reappearance steps (重现步骤)
Just open the link and check generated input "name" attributes
Expected results (期望的结果)
Expected to have "name" attribute to file input
Actual results (实际的结果)
Currently the "name" attribute is not being generated
Remarks (补充说明)

This file input is hidden, why do you need to set attributes?

Sometimes is needed to send files in standard way, not async

why is prop name not working tho?
it might be replaced by input-props in the furture!

yeah, you can use name prop to do it.

@Talljack sure, but i guess this is currently not working

@Talljack sure, but i guess this is currently not working

okay, i will check

name is not input element's data, but the upload FormData's value.


Ripples don't start if enhanced-button tapped quickly

I'm digging into an issue where tapping enhanced-buttons quickly doesn't trigger the ripple (as opposed to holding the finger for a few milliseconds before releasing it). This gives very low perceived performance. I've attached a video of this affecting the 'demo' button and the list-items in the left-nav. Note on my last press I hold down the touch causing the ripple to work as intended.
The cause seems to be the parent component listening to the button onTouchTap and doing a lot of synchronous work that blocks the thread and prevents the circle-ripple animation from starting. Specifically, the circle-ripple is successfully rendered in a ReactTransitionGroup, but componentWillEnter is called asynchronously and is blocked by the other main thread work.
I can see two main solutions to this:

If ripples are enabled in enhanced-button, place the body of _handleTouchTap behind a setTimeout of around 30-100ms, which allows the animation to get started. This approach solves the issue, dramatically improves perceived performance and is a very simple change, but causes us to not fully utilize the main thread. I spoke with @adityapunjani about the implementation on flipkart.com (which does material on mobile) and they went with this approach.
Set up a chain of events such that _handleTouchTap in enhanced-button is only called once the _animate method of circle-ripple has finished. I'm working on a patch to try this but it looks like it will also resolve the issue, and allows us to fully utilize the main thread, but introduces some additional complexity for contributors in understanding how events end up getting fired from enhanced-button components. This isn't too large, but is enough that it may be preferred to go for the simpler option.

I'll work on a patch for approach 2 to ensure it works and looks sane, but would appreciate any thoughts from core contributors. cc @oliviertassinari!

I just tested on iOS (Safari / Chrome - same rendering engine in any case), and it does feel like the delay before the Nav closes is tied to the tap duration. Also the hide of the Nav is a bit too fast for my liking.
In some use cases the button is not going to be contained in a component that animates in response, so you wouldn't necessarily want to wait for the ripple to finish (or at all) before the event is propagated.
Second, even where it is the case that the response to the event will hide the button, if you look at the spec, it doesn't wait for the ripple. Considerations (transition with picture of child).
If a delay is needed, option one might be preferable, however perhaps this should be up to the developer to add depending on their use case, rather than introducing additional timers in Material-UI components.

dramatically improves perceived performance

@owencm I completely agree with you. No seeing the ripple animation provide a poor perception of performance.
I must say that I haven't seen much this issue on my Cordova application.
I'm wrapping every onTouchTap handlers with a setTimeout(, 0).
Still, the issue happens from time to time.

if you look at the spec, it doesn't wait for the ripple.

@mbrookes Notice that in some cases, we are introducing a delay, e.g the <AutoComplete />.
@owencm I finialy have some time to dig into this issue, I'm gonna have a look at your PR. Thanks!

I'm closing this issue based on the #7755 feedback, this confirms what I have been noticing :).


fix(core): fix core components types file not found in typescript when import

#4055
an error occurred like this：

so should add core component types in "typesVersions" of package.json

https://github.com/framework7io/framework7/issues/4055#issuecomment-1178495409


How to navigate from tap gesture?

i have .xaml like this:
  <Label.GestureRecognizers>
      <TapGestureRecognizer
          x:Name="tapInbox"
          Tapped="tapInbox_Tapped"
          NumberOfTapsRequired="1"/>
  </Label.GestureRecognizers>

    void tapInbox_Tapped(System.Object sender, Microsoft.Maui.Controls.TappedEventArgs e)
    {
        this.GoToAsync($"///{PageType.InboxPage}", true);
    }

and i register route like this:
Routing.RegisterRoute(nameof(PageType.InboxPage), typeof(InboxPage));
i need help because i don't know how to fix this

Please read this issue @RadekVyM

Hi @raselldev,
in SimpleShell, navigation works (almost) exactly the same as in the original .NET MAUI Shell. Detail pages (pages registered using the RegisterRoute() method) cannot be the only pages on the navigation stack. See documentation for more info.
For detail pages, try to use something like this instead:
this.GoToAsync($"{PageType.InboxPage}", true);

It's works! Thanks


Add a .catppuccin.yaml

It seems you don't have a .catppuccin.yaml. Please create one. Thanks! (This issue was auto-generated)

This cannot be done for this repository.


Feature/cicd

secrets are in place
GitHub CloudFront invalidation action is deprecated since Novemeber

Ah I accidentally removed that in a5edf1c. It's back now!


Send a file on request

Hello i add a video file on request
            Uri uri_video = Uri.parse(temp_usuario.getString("video_url"));
            File file = new File(getPath(uri_video));
            Webb webb = Webb.create();
            Response<String> response = webb
                    .post(getString(R.string.REST_URL) + "acciones_de_app/create_user.json")
                    .body(file)
                    .connectTimeout(10 * 3000)
                    .asString();

            if (response.isSuccess()) {
                String outcome = response.getBody();
                Log.e("a",outcome);

            } else {
                System.out.println(response.getStatusCode());
                System.out.println(response.getResponseMessage());
                System.out.println(response.getErrorBody());
            }

But when i recieved a body on action post
file = request.body.read
fp = File.open("/home/master/Escritorio/video_rest/video_mp.mp4", "wb")
fp.write(request.body.read)
fp.close
my file video_mp.mp4 created size a 0 byte

I'd check 2 things:

Client-code: is File file = new File(getPath(uri_video)); really pointing to a file and does it have content.
Server-code: what is the content of the request? I don't recognize/know the language of your server code, but the question is: is some data arriving or not?

Hello thanks for resonder
first point:  Yes file exist and really ponting for video file
second point:  i puts a request.body.read and not empty have A
im try with
image=nil
StringIO.open(request.body.read) do |data|
data.class.class_eval { attr_accessor :original_filename, :content_type }
data.original_filename = "temp#{DateTime.now.to_i}.mp4"
data.content_type = "video/mp4"
image = data
end
fp = File.open("/home/luis/Escritorio/video_rest/video_mp.mp4", "wb")
fp.write(image)
fp.close
is ruby on rails but i dont know if body http content are correct

for this second try, 24bytes is size for file result

24 bytes implies there is some kind of error. Probably you'll have to debug client-side and/or server-side. I'm afraid I cannot help you from distance... The tests for File-upload of DavidWebb pass. I suppose it's something on the server side.

thanks, but i used other libreary to send file with params on headers dont on body, on ruby on rails dont get a file on request.body


Robust rollingupdate and rollback

In, PR #1325 we agreed rollingupdate should be factored out of kubecfg in the kubecfg overhaul.
https://github.com/GoogleCloudPlatform/kubernetes/issues/492#issuecomment-50111772 and PR #1007 discussed alternative approaches to rollingupdate.
What I'd recommend is that we implement a new rollingupdate library and a corresponding command-line wrapper. The library may be invoked by more general libraries/tools in the future.
The rolling update approach that should be used is that of creating a new replication controller with 1 replica, resizing the new (+1) and old (-1) controllers one by one, and then deleting the old controller once it reaches 0 replicas. Unlike the current approach, this predictably updates the set of pods regardless of unexpected failures.
The two replication controllers would need at least one differentiating label, which could use the image tag of the primary container of the pod, which is typically what motivates rolling updates.
It should be possible to apply the operation to services containing multiple release tracks, such as daily and weekly or canary and stable, by apply it to each track individually.

Copying the detailed design of rolling update from #3061:
Requirements, principles, assumptions, etc.:

As a matter of principle, any functionality available in kubectl should be available by library call and declaratively, as well as by command.
Rolling update should not mix configuration generation and orchestration of the update.
It needs to handle arbitrary (e.g., multi-container) pods.
Durable data objects are assumed to have independent lifetimes of the pods themselves.
If the client fails or is killed in the middle of the rolling update, there needs to be a reasonable way to recover and complete or rollback the rollout.
Users should be able to specify the update rate on the command line, especially given that we don't yet check pod health or readiness. If it just blazes through the pods, it might as well not be a rolling update.

Proposed syntax:
kubectl rollingupdate <old-controller-name>  -f <new-replication-controller.json>

If the number of replicas specified in the new template were unspecified, I think it would default to 0 after parsing. Behavior in this case would be that we gradually increase it to the replica count of the original. We could also allow the user to specify a new size, which would do a rolling update for min(old,new) and then delete or add the remaining replicas.
Since kubectl can reason about the type of the json parameter, we could add support for specifying just the pod template later (like when we have config generation and v1beta3 sorted), or for other types of controllers (e.g., per-node controller).
Regarding recovery in the case of failure in the middle (i.e., resumption of the rolling update), and rollback of a partial rolling update: This is where annotations would be useful -- to store the final number of replicas desired, for instance. I think the identical syntax as above could work for recovery, if kubectl first checked whether the new replicationController already existed and, if so, merely continued. If we also supported just specifying a name for the new replication controller, that could also be used either to finish the rollingupdate or to rollback, by swapping old and new on the command line.
We should use an approach friendly to resizing, either via kubectl or via an auto-scaler. We should keep track of the number of replicas subtracted in an annotation on the original replication controller, so that the total desired is the current replica count plus the number subtracted. Unless the user specified the desired number explicitly in the new replication controller -- that can be stored in an annotation on the new replication controller.
I also eventually want to support "roll over" -- replace N replication controllers with one. I think that's straightforward if we just use the convention that the file or last name corresponds to the target replication controller, though it may be easier for users to shoot themselves in the foot. Perhaps a specific command-line argument to identify the new/target controller would therefore be useful.
kubectl rollingupdate old1 old2 ... oldN new
kubectl rollingupdate old1 old2 ... oldN -f new.json

This issue should not be closed until we support recovery and rollover.

I don't understand why you need annotations. Isn't the rolling update essentially stateless, in the sense that you can figure out where you left off and what remains to be done just by looking at the old and new replication controllers and the pods?

Almost, but not quite. The 2 replication controllers are not changed atomically, so the count could be off by one without keeping track. It's also the case that we allow the size to be changed by the rolling update.

How to make rolling update friendly to auto-scaling is described here: https://github.com/GoogleCloudPlatform/kubernetes/pull/2863#issuecomment-69701562

See also rollingupdate-related issues in the cli roadmap.

@bgrant0607 Just wanted to confirm whether this idea is really open or someone has started work on this. I went through @jlowdermilk's commit consisting of current rolling update code and future points in the cli roamap. Building an auto-scaler which is by default easy to use or configure and having an option for insertion of custom scripts is definitely exciting.
This would require using and expanding the current rolling update code which would support different scenarios chosen by the user for the type of scaling to be implemented INSIDE auto-scaler, ryt?

@vipulnayyar This issue specifically relates to improvements/extensions of rollingupdate. AFAIK, nobody is actively working on this issue at the moment.
Improvements/extensions:

Change the annotations and termination condition, as described, to be resilient to concurrent resizing for auto- or manual scaling
Make the operation reversible in order to support rollback
Create a controller generator (see run-container for another example of a generator) to facilitate creation of the new controller from an existing one by updating the image and perhaps other fields
Use readiness probe results to limit the number of not-ready pods during the rolling update
Support rollover: replace N controllers with 1
Allow the controllers to be replaced to be specified using multiple object names, label selector, objects gleaned from files, etc., as with other kubectl operations, using Builder
Unify with Openshift's DeploymentController #1743

Work on auto-scaling, OTOH, is ongoing -- e.g., #5492.

On the controller generator issue: We recently worked with some people who were new to Kubernetes who were playing around with simple deployments as the first step of moving larger workloads onto the system. One of the confusions a couple of different people both ran into was the fact that the "id" of the replication controller has to change in order to do a rolling update. I agree with them that this is pretty unnatural; the user is thinking of "the controller for service X" and would presumably like it to keep a stable name even as the configuration of X changes over time. I can understand why we don't want Pods to keep a stable identity across reincarnations, but I don't think the same reasoning applies to replication controllers (or services or nodes or ...).
I'm very aware from our internal cluster management system that the system internals can become somewhat ugly if you want to maintain a stable collection name across rolling updates. However, if it simplifies the user experience, it might be worthwhile. The main problem is that I don't know how you make it work with the "everything is declarative/an object" semantics we have in Kubernetes -- our internal system is able to keep a stable job name because you don't manipulate the job directly, whereas in Kubernetes you do manipulate the RCs directly. I realize it would be a big change, but is there any way we could expose some kind of meta-object that encapsulates a rolling update (and which the user would manipulate via REST), and hide under the covers the RC manipulations it triggers? (Ideally such that at the end of the update, there is only one RC left and it has the same name as the RC you started with.) We sort of approaches a vaguely related idea in the discussion of a resize verb in the context of autoscaler.

It's possible that a good config system could serve the same role as the meta-object I described (hiding the low-level details of the changing RC identity), but I'm not sure -- for example, monitoring would probably see both RC names while you're in the middle of the update, with no obvious link between them, and at the end of the update you end up with an RC with a different identity than the one you started with.

@davidopp, we've discussed several times changing the rollingupdate approach to start and end with the same controller. I agree that ending with a different controller id is non intuitive. IIRC, the argument against preserving the original RC id is that RCs are supposed to be ephemeral. I don't know how strong an argument that is, though.

Yeah, I don't think that any objects should be ephemeral across updates. Actual death (like pod dies or RC is deleted) then yes the replacement should be a new "thing," but not for update.
On a related note, one of the same users was confused about the semantics of updating an RC. What happens if you update the replication count for an RC? What if you update the image? (Not using kubectl rollingupdate, but just using kubectl update)

@davidopp @jlowdermilk
RCs are "helper" mechanisms intended to be manipulated by configuration/deployment tools/systems, auto-scalers, etc. They aren't tied to pod nor service lifetimes nor identities, and they're not intended to be pets. They aren't managed instance groups or jobs. Yes, it's different, but so are pods and services.
The argument for treating RCs as ephemeral is not circular. Trying to maintain the same RC name will make deployment tools more complex and restrict flexibility, while not simplifying auto-scalers, and I think the simplification for users is dubious, as well, especially in the presence of failures, where they'll see multiple controllers, need to rollback, etc.
I envision using labels to manage sets of replication controllers.
As for a higher-level entity -- that sounds similar to Openshift's Deployment controller #1743. I agree something like that would be useful, probably implemented as an API plugin (as we want to do with RC itself).
We don't yet have true declarative updates. That's being worked on: #1702, #4889. Once we do, we'll need a way to declaratively specify the update policy: recreate, patch, rolling update. For now, we just have the imperative update and rollingupdate commands.

RC update semantics are simple: Changing the replica count causes pods to be created or deleted. Changing the pod template only affects new pods. It has no effect on existing pods -- no quantum entanglement. It's a cookie cutter, not a representation of the desired state of all pods.

I discussed with @bgrant0607 and @thockin in person. The summary from my perspective is that for some users the ReplicationController semantics are not well-matched to their mental model, but longer-term we anticipate some users will interact with something different, for example a Deployment object that uses a model people may be more familiar with (for example, one 1:1 correspondence to a micro-service, keeps a stable identity over time, thought of as a pet with a name rather than as a cow addressed by label, updates to it updates pods rather than only changing what new pods will look like, etc.). This might be built as a layer on top of RC, or as a separate controller that lives at the same level of the hierarchy as the RC.

I think there's a certain amount of re-education that people will
eventually want to undergo to adapt to the kubernetes mental model, but I
do think something like a deployment object could ease the transitions and
provide a lot of value.
I know @smarterclayton and his gang have done some work here already, but I
am not very familiar with their design.
On Wed, Mar 18, 2015 at 3:46 PM, David Oppenheimer<EMAIL_ADDRESS>
wrote:

I discussed with @bgrant0607 https://github.com/bgrant0607 and @thockin
https://github.com/thockin in person. The summary from my perspective
is that for some users the ReplicationController semantics are not
well-matched to their mental model, but longer-term we anticipate some
users will interact with something different, for example a Deployment
object that uses a model people may be more familiar with (for example, one
1:1 correspondence to a micro-service, keeps a stable identity over time,
thought of as a pet with a name rather than as a cow addressed by label,
updates to it updates pods rather than only changing what new pods will
look like, etc.). This might be built as a layer on top of RC, or as a
separate controller that lives at the same level of the hierarchy as the RC.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/1353#issuecomment-83216147
.

The key requirement for the "micro service / self-updating component" is level based mutation.  With Docker 1.6, it will be possible to do level based updates directly against a registry (although you'll have to poll the registry to do it).  The poll (something has changed from before externally) and the mutation (what do you change within the pod template) are what we call the trigger - a detected change results in a mutation to the running template, which then results in a new deployment (uses the rolling update pattern of two RCs with "job" that runs the rolling update inside a pod).  I think of that as a controller object above an RC that offers RC features + the rollout.  The triggering is the thing that has coupling issues - I don't have a good story today for how you'd let someone add their own level-based behaviors to the trigger pattern.
I'm pretty convinced that a unit like this is an 80% case for most organizations, so I'm incentivized to make sure it's reusable on its own.
----- Original Message -----

I think there's a certain amount of re-education that people will
eventually want to undergo to adapt to the kubernetes mental model, but I
do think something like a deployment object could ease the transitions and
provide a lot of value.
I know @smarterclayton and his gang have done some work here already, but I
am not very familiar with their design.
On Wed, Mar 18, 2015 at 3:46 PM, David Oppenheimer<EMAIL_ADDRESS>
wrote:

I discussed with @bgrant0607 https://github.com/bgrant0607 and @thockin
https://github.com/thockin in person. The summary from my perspective
is that for some users the ReplicationController semantics are not
well-matched to their mental model, but longer-term we anticipate some
users will interact with something different, for example a Deployment
object that uses a model people may be more familiar with (for example, one
1:1 correspondence to a micro-service, keeps a stable identity over time,
thought of as a pet with a name rather than as a cow addressed by label,
updates to it updates pods rather than only changing what new pods will
look like, etc.). This might be built as a layer on top of RC, or as a
separate controller that lives at the same level of the hierarchy as the
RC.
—
Reply to this email directly or view it on GitHub
https://github.com/GoogleCloudPlatform/kubernetes/issues/1353#issuecomment-83216147
.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/1353#issuecomment-83306852

An example of someone using rolling update can be found here:
http://thepracticalsysadmin.com/kubernetes-resize-and-rolling-updates/
It's a typical example: someone wants to roll out a new image, and maybe command/args and/or env vars. They change the image (or at least the image tag), and need to change the uniquifying label value on the pod template (and correspondingly in the RC selector and labels) and RC name.
In lieu of a file for the new RC in rolling-update, it should be possible to specify those changes and then generate a new RC. Flags should be similar to run-container.

Will comment on #1743 and/or #503 re. a higher-level deployment controller.

cc @kelseyhightower

cc: quinton-hoole

I think the common scenarios are:

rolling update
rolling update, pause in middle, rollback, create a patched image, rolling update
create a canary, run it for a while, then perform a rolling update by growing the canary and shrinking the original RC
create a canary/experiment, run it for a while, delete it
rolling update, pause in middle, create a patched image, perform a rolling update to replace the original image and the botched image (aka rollover)
rolling update with a resize in middle (possibly without pausing, since the resize might be due to an auto-scaler)
run multiple "release tracks" continuously, which are updated independently

cc @rjnagal

Rolling update, at the end perform a migration automatically (post deployment step).

On Apr 10, 2015, at 3:56 PM, Brian Grant<EMAIL_ADDRESS>wrote:
I think the common scenarios are:
rolling update
rolling update, pause in middle, rollback, create a patched image, rolling update
create a canary, run it for a while, then perform a rolling update by growing the canary and shrinking the original RC
create a canary/experiment, run it for a while, delete it
rolling update, pause in middle, create a patched image, perform a rolling update to replace the original image and the botched image (aka rollover)
rolling update with a resize in middle (possibly without pausing, since the resize might be due to an auto-scaler)
run multiple "release tracks" continuously, which are updated independently
cc @rjnagal
—
Reply to this email directly or view it on GitHub.

@smarterclayton Migration meaning traffic shifting?

No migration like schema upgrade (code version 2 rolled out, once code version 1 is gone, trigger the automatic DB schema update from schema 3->4)

Ah, this is the post-deployment hook. Got it.

Certainly doesn't have to be part of this, but if you think of deployment as a process of going from whatever the cluster previously had to something new, then many people may want to define the process (canaries, etc as you laid out).  The process has to do a reasonable job of trying to converge, but it's acceptable to wedge and report being wedged due to unreconcilable differences (simple, like ports change, to complex, like image requires new security procedures).  Since the assumption is that you're transforming between two steady states you either move forward, back, or stay stuck.
----- Original Message -----

Ah, this is the post-deployment hook. Got it.

Reply to this email directly or view it on GitHub:
https://github.com/GoogleCloudPlatform/kubernetes/issues/1353#issuecomment-91701757

I agree that hooks seem useful, certainly in the case where deployments are triggered automatically. If we were to defer triggers, hooks probably could also be deferred.

Using #4140 for rollback/abort.

Updating from cli-roadmap.md:
Deployment (#1743) will need rollover (replace multiple replication controllers with one) in order to kick off new rollouts as soon as the pod template is updated.
We should think about whether we still want annotations on the underlying replication controllers and, if so, whether they need to be improved: https://github.com/GoogleCloudPlatform/kubernetes/pull/2863#issuecomment-69701562

I believe we have more specific issues filed for remaining work, so I'm closing this "metaphysical" issue.

@grant0607 is readiness probe and/or liveness probe taken into account of rolling update? What is the expected behavior when these probes are in good/bad conditions?


Relation to splunk/vault-plugin-secrets-gitlab

I stumbled upon this project and was wondering how it relates and/or compares to splunk/vault-plugin-secrets-gitlab.
While trying both plugins, I already founds subtle differences in the configuration. For instance, I cannot configure auto_rotate_token and auto_rotate_before with the Splunk version.
Would be interested if you see more differences and maybe you already did an assessment of other plugins in this space?

When we were evaluating, a lot of the functionality was not there, still isn't.
you are unable to issue, project, group tokens, as well as service account tokens.

Hi @ilijamt thanks a lot for that explanation, it's really helpful. Feel free to close the issue


btn-outline-light is not visible

I cannot see btn-outline-light
It would be better if make text a bit darker

It's just because the background color is white, it looks better on a darker background.
You can override the default value if you want:
https://github.com/twbs/bootstrap/blob/5baad139023770250a0df11f1b77d73a8de53697/scss/_variables.scss#L75
I don't know if the Bootstrap team has planned to change the colors for the v5.

No plans to change the color—this one exists for darker backgrounds as mentioned.


message_list: Fix delayed events finding current msg list undefined.

Events that are called after a delay can find message_lists.current to be undefined if user has moved to non-message list view.

Looks great, merged, thanks @amanagr!


add reference for composition scores

AFAICT there are no definitions of composition score even in Transformer Circuits. So this provides a link.

Thanks!


How to import scss in stylesheets?

I have a typical project structure: src/assets/scss/ folder, where in file style.scss I import @import '/assets/scss/variables.scss'. There are also links to fonts stored in src/assets/fonts/. It works fine if I import this scss in .vue component, but fails when import from src/main.js. Please help me to import it properly

@NadiaRom how are you importing it? Would be helpful if you could share relevant code snippet from src/main.js.

@NadiaRom Is this helping  ?

Closed, as @NadiaRom reported the problem resolved in another issue comment.


Deactivate or subscription.dispose don't write to the log

I have the following code
export function activate(context: ExtensionContext) {
	context.subscriptions.push(new Disposable(() => {
		fs.writeFileSync('C:/log-sub.txt', 'On Dispose');
	}));
}

export function deactivate() {
	fs.writeFileSync('C:/log-deact.txt', 'On Deactivate');
}```

However after closing VSCode running that extension no log file exist in C:\

@dbaeumer Under Windows AFAIK software needs to run as admin to write to C:\\. What works for me is when I write to C:\\log.txt

I can also repro with the following extension:
... what changed since last week?
console.log('I am loaded');

var fs = require('fs');

exports.activate = function() {
	fs.writeFileSync("C:\\Alex\\log.txt", new Date() + ":: activate called");
}

exports.deactivate = function() {
	fs.writeFileSync("C:\\Alex\\log.txt", new Date() + ":: deactivate called");
}

Tried again with and this seems to work....
console.log('I am loaded');

var fs = require('fs');

exports.activate = function() {
	fs.appendFileSync("C:\\Alex\\log.txt", new Date() + ":: activate called\n");
}

exports.deactivate = function() {
	fs.appendFileSync("C:\\Alex\\log.txt", new Date() + ":: deactivate called\n");
}

I was misreading the log, the version with writeFileSync had only one message and it was deactivate called

@dbaeumer pls give me a heads up if you try this again as it seems to work for me.

@alexandrudima writing to a location different than root works. Sorry for the swirl.

FYI, we found (https://github.com/jcward/vscode-haxe/issues/3#issuecomment-192681931) on Linux that dispose wasn't being called in VSCode 0.10.1, and it's working fine in 0.10.8.


Contribute to GraphQL Foundation September Newsletter

Thanks to everyone for their contributions to the August newsletter https://foundation.graphql.org/news/2020/09/11/graphql-foundation-monthly-newsletter-august-2020/
We are now taking contributions for the September newsletter. Feel free to add directly to this doc here https://docs.google.com/document/d/10OG6nYp9TYKCs35FbcArEx426E6rYiRyzqOSiKzOey4/edit#

I've added:

Querying Query query queries: "query" ambiguity
Benjie first raised the issue of the ambiguity of the term "query" as used in the GraphQL spec and ecosystem back in April. In just this title, we've referred to requesting, the Query type, a query operation, and a nested selection set; but that's just some of the ways we use this term, which can make it really hard for people new to GraphQL to get up to speed. Benjie has analyzed the use of the term, and has proposed a consistent set of terminology to use based on other terms used in the GraphQL spec already, to be discussed at the next Working Group. See Spec PR #777.

Thanks @benjie.
@acao @Urigo @IvanGoncharov Anything to add? Here's the initial issue https://github.com/graphql/foundation/issues/26

Last chance to comment on the blog before it posts

Tweaked the Querying Query query entry because it has now been discussed.

hey sorry just coming across this! I'd like to add making vscode-graphql the official vscode plugin, and growing by 30K users in a month! @mayaptos should i just add it to the google doc?

@acao Yes; just add it to the doc :+1:

done!

sorry it took so long, @mayaptos I've added some things and links!


Velocity-based Motor Control as Part of Robot Framework

Import CTRE Lib. for SRX
EDIT: Imported in #39

I'd like this to be coded similar to Issue #20(PR #25) except all method signatures should use Velocity, not Voltage.
Below are the new features I would like to be added based on the VoltageSubsystem code:
BionicVoltageSubsystem -> BionicVelocitySubsystem

Should be very similar code w/ SRXs if you take look at the example above

VoltageSetpoint and SetVoltage ->  VelocitySetpoint and SetVelocity

These should be modified to be similar, only referencing velocity instead of voltage


WIP: Run FMU in separate task with oneshot mode (includes #6599)

@LorenzMeier @davids5 This is a test to reduce jitter in oneshot pulse timing. Very big improvement over #6599 but still some irregularity in timing: https://goo.gl/photos/geZynwzQjQ2kS5Dq6
The scope is displaying FMU pwm outputs 1 and 2 at 2msec/div horizontal. Average frequency is 250Hz over a 150msec interval. Most of the jitter is on the order of +/-100usec but sometimes it is +800usec.
This flew quite well in both ACRO and Stabilize modes, although this log: http://review.px4.io/plot_app?log=87b441f7-6a2e-44f3-8261-2a35b493fd21 shows obviously bad attitude estimates (I was flying in acro mode for the entire flight).
I'm hoping that the LPE/Q attitude estimation errors are a separate problem, but I did see console warnings that fmu_servo has ~200 bytes of free stack. The attitude errors look like they are correlated with the LPE baro/gps fault messages.

Switching from normal PWM to OneShot125 allowed increasing roll/pitch rate P gains from 0.4 to 0.55, which is evidence that overall latency is reduced, and phase margin increased. Rate control latency has decreased from 4 to 3 samples (analysis done with 10 msec sampling interval).


CAMEL-14377: Add configuration option to enable / disable BraintreeLogHandler

It would be nice to set this on component level, so you can turn it of globally

Ok - let me look at making it a component level thing.

Latest iteration adds the option to set the config at the component level.


Possibly outdated README

Hi there! Thanks for the further development of the lyricbar. I just seem to be having problems on using the plugin itself as the README's screenshots barely resembles the instructions. The supplied v0.4 doesn't seem to have an option for the SP-DC (and honestly instructions or hints to get the SP-DC would've been nice) and I had to download the pre-release v0.5 to understand what I was doing.
I have another unrelated issue, which I think probably deserves its own issue. (Lyrics without timestamps errors out)

Hi,
Really this is a mess because I'm a noob programing and using Github :smiley:  but I tried and instructions works as written to install (because they are from original lyricbar :smiley:  I just edited it barely to adapt what I changed). In addition, versions aren't something you can trust :rofl: . It work more like a backup from damage I can make trying things.
I guess I could use more screenshots to explain how to config lyric's sites part. By now I added a way to get SP-DC of your account (Install this extension on your webbrowser and login into your account).
Lyrics will be stored on (and retrieved from) tags "LYRICS" for synced, and "UNSYNCEDLYRICS" for non-sync. Other way it doesn't will work.

Did you get it to work?


Awesome books: with ES6

The things I did in this PR:

Properly configured Linters (No Errors)
Used Github flow with branches
Documented my work in a professional way
Used ES6 syntax
Divided code into ES6 modules
Used Luxon to display the date

Hi @andrianarivo ,
🎉 Great job on addressing the feedback from the previous review! You've made some solid progress in implementing the requested changes. However, there are still a few areas that need some attention before we can move on to the next project.

Highlights

Used arrow functions ✔
Divided code into modules ✔
Integrated luxon.js ✔

Required Changes 🛠

[ ]  Hey 👋🏽 as requested by the previous reviewer you need to have an index.css file in the project structure, I understand that you used Bootstrap but the purpose of this requirement is to ensure that you are able to link index.css with index.js file. 🔗 Since you're using Bootstrap and you'll have no use for an index.css file, feel free to add an empty one to fulfill the requirement. 👍🏽
Please review the comments under the review for specific changes that still need to be made.

Optional Suggestions 💡

N/A

🚀 Keep pushing forward, you're almost there! If you have any questions or need clarification on anything, feel free to leave a comment in the pull request thread and don't forget to tag me so I'll receive the notification.
Please note

To avoid confusion and delays, please do not open a new pull request for re-reviews. Use the same pull request submitted for the first review, unless otherwise instructed.

As per the Code reviews limits policy, you have a limited number of reviews per project. If you feel that the code review was unfair, you can request a second opinion using this form.
Cheers and happy coding! 👏👏👏

How is an empty CSS blocking me from achieving the project goal ?


Use forwardRef

fixes #297
this doesn't work yet - need to decide what we want to do about function components (they HAVE to be wrapped with forwardRef now - wrapped component cant be "just" a function component)
also IMHO ref should be treated as DOM component now - currently the implementation allows it to be a composite component and handles its class methods, this should be IMHO removed - the handler has to be provided in config or in props, not as property of the wrapped component
and we should completely remove findDOMNode usage

Yeah I think if we're doing a new major, totally worth doing. Change the requirement to say "please pass in a callback" and ditch the attemp at forwarding the instance(s)/nodes

@Andarist Any progress on this? This is currently blocking the migration to styled-components v4, so it would be great if this gets fixed.

Truth to be told - I've totally forgot that I've started working on this. Would u be willing to continue the work here? Not sure when I am gonna get some free time to finish this.

Sure. I'd be happy to help out.

also IMHO ref should be treated as DOM component now - currently the implementation allows it to be a composite component and handles its class methods, this should be IMHO removed - the handler has to be provided in config or in props, not as property of the wrapped component

If I understand correctly, we still need to obtain the instance for the config callback? So we either use the onClickOutsideHOC's config.handleClickOutside(instance) or this.props to determine the handleClickOutside?

and we should completely remove findDOMNode usage

Does something replace findDOMNode? componentNode is used for the ignore behavior, so how would that work if we don't use findDOMNode?
Are there any other issues that should be fixed before the next major release? Maybe we could create a milestone?
Any plans to change the API of the HOC itself? Most HOCs are a function that takes config, which returns a function that takes the wrapped component, which returns the HOC, e.g. export default onClickOutside({ ...config })(WrappedComponent).

That pattern is for getting the hoc to generate a function, which is then used to wrap the component, which feels an unnecessary step of indirection here. Having the onClickOutside() function return a component, by passing in a component and (entirely) optional config object as second argument feels just fine.

Does something replace findDOMNode? componentNode is used for the ignore behavior, so how would that work if we don't use findDOMNode?

We still need access to componentNode - we can just make it user's responsibility to "connect" pieces together.
After thinking about this some more right now it won't be as clean as it could be though, because it forces the consumer to use React.forwardRef too to name the ref however they want and pass received (from onClickOutside) ref callback to the underlaying DOM element. The manual plumbing is fine for me, bummer is the required React.forwardRef 🤔 WDYT about this @Pomax ? Alternative would be to continue passing innerRef prop to the wrapped component (with an option to configure the name maybe).
When hook came out I've experimented with them a little bit and I've tried reimplementing this HOC as hook ( https://github.com/Andarist/use-onclickoutside ) and the implementation there is much cleaner in regards to this manual plumbing, I just require ref from the consumer (requiring a ref rather returning one increases composability quite a lot). We ain't living in hooks world yet though, so we have to figure out best HOC API right now

Any updates on this feature?

@Andarist should this PR be closed as abandoned? Or is it very little work to put the finishing touches on?

I think it wouldn't take much to finish this - you'd only have to resolve concerns mentioned in the thread here. I'm afraid I won't have time to do this myself though, also as the PR itself is not a long one it might be easier to start from scratch.

closing this for now, a from-scratch new version based on React 17 with normal modern hooks etc. will be better than trying to revisit this.

closing this for now, a from-scratch new version based on React 17 with normal modern hooks etc. will be better than trying to revisit this.


MPM example

Regarding the examples, the current version contains a template
sub-<participant_label>[_ses-<session_label>][_<indexable_metadata>-<index>][_acq-<label>][_part-<mag/phase>][_ce-<label>][_rec-<label>][_run-<index>]_<suffix>.nii.gz,
so the MPM example should be:

sub-01_echo-1_acq-MTon_part-mag_MPM.nii.gz
sub-01_echo-1_acq-MToff_part-mag_MPM.nii.gz
sub-01_echo-1_acq-T1w_part-mag_MPM.nii.gz
(i.e. "acq" before "part")

Please see this branch, where I changed file names. Remaining steps:

[ ] Collapse sub-01_acq-MToff_MPM, sub-01_acq-MTon_MPM and sub-01_acq-T1w_MPM json files into one file called sub-01_MPM.json.
[ ] Edit json files with respect to the changes.

AFAICS, the images in the MPM folder still follows the previous order:
E.g.:

sub-01_echo-1_part-mag_acq-MToff_MPM.nii.gz (i.e. "part" before "acq")

@tiborauer thanks for the heads up, you're right. I will do that as I edit json files.
        sub-<participant_label>[_ses-<session_label>][_<indexable_metadata>-<index>][_acq-<label>][_part-<mag/phase>][_ce-<label>][_rec-<label>][_run-<index>]_<suffix>.nii[.gz]

@agahkarakuzu thank you for nice fixes on the MPM example!
I'll start working on that branch as well to create the 'derivatives' folder - happy to help with the json files as well if useful, or I can give it a quick proof-read afterwards. I had a quick look now and noticed a small spelling mistake in the third PDw echo json where it says 'of' rather than 'off', but it's probably not worth correcting now as it will get changed again?

I'll start working on that branch as well to create the 'derivatives' folder

Thanks for #38 :)

happy to help with the json files as well if useful, or I can give it a quick proof-read afterwards.

Thank you, feel free to work on it as you like!
Regarding json files, the root json file (sub-01_suffix.json) should be containing some extra metadata fields (e.g. vendor and sequence specific tags). At least, this was the idea in the gdoc. Should we include this in the example datasets as well? @Gilles86 @KirstieJane maybe we can discuss this in the next meeting.

Hey folks - in #22 I think we're not following the derivatives proposal accurately.... (Here's the proposal: https://github.com/bids-standard/bids-specification/blob/derivatives/src/05-derivatives/01-introduction.md)
We should have a pipeline name for each of the derived folders, right?
I might be totally missing the mark here.... 😬

This is related to #46

I fixed some of these issues in  #38 - hopefully it is fairly up to date now, let me know if there's anything more I should change.


Add translation pipeline parameter to return selected models

The translation pipeline seamlessly loads and uses a series of models to run the translations.
It would be beneficial to have a parameter to also return the associated models and detected languages to help with explainability and debugging.

@davidmezzetti can I take a shot at this one?

Happy to accept PRs! Please just make sure to follow the coding convention.
Guide available here: https://github.com/neuml/.github/blob/master/CONTRIBUTING.md

@davidmezzetti  I tried to run the unit tests after installing all dependencies by following the readme.
I got 52 failures and most of the failures are due to reasons like:
install "XXXXX" extra to enable, example
======================================================================
ERROR: testAnnoy (testann.TestANN)
Test Annoy backend
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/yashdatta/Documents/Workspace/txtai/test/python/testann.py", line 24, in testAnnoy
    self.runTests("annoy", None, False)
  File "/Users/yashdatta/Documents/Workspace/txtai/test/python/testann.py", line 113, in runTests
    self.assertEqual(self.backend(name, params).config["backend"], name)
  File "/Users/yashdatta/Documents/Workspace/txtai/test/python/testann.py", line 144, in backend
    model = ANNFactory.create(config)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/ann/factory.py", line 35, in create
    ann = Annoy(config)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/ann/annoy.py", line 26, in __init__
    raise ImportError('Annoy is not available - install "similarity" extra to enable')
ImportError: Annoy is not available - install "similarity" extra to enable

Sorry there was an oversight in the CONTRIBUTING.md file. It's been fixed. The install step should be:
pip install -e .[all,dev]

@davidmezzetti thanks! It resolves those errors. Now I get a different set of errors.
Is there a particular version of python I need to use?
======================================================================
ERROR: testImageWorkflow (testworkflow.TestWorkflow)
Tests an image task
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/yashdatta/Documents/Workspace/txtai/test/python/testworkflow.py", line 214, in testImageWorkflow
    self.assertEqual(results[0].size, (1024, 682))
AttributeError: 'str' object has no attribute 'size'

On my mac, I see failures in tests for the APIs as well
======================================================================
ERROR: testCaption (testapi.testpipelines.TestPipelines)
Test caption via API
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/yashdatta/Documents/Workspace/txtai/test/python/testapi/testpipelines.py", line 114, in testCaption
    caption = self.client.get(f"caption?file={Utils.PATH}/books.jpg").json()
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 488, in get
    return super().get(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 1045, in get
    return self.request(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 454, in request
    return super().request(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 821, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 908, in send
    response = self._send_handling_auth(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 936, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 973, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 1009, in _send_single_request
    response = transport.handle_request(request)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 337, in handle_request
    raise exc
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 334, in handle_request
    portal.call(self.app, scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/from_thread.py", line 283, in call
    return cast(T_Retval, self.start_task_soon(func, *args).result())
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/concurrent/futures/_base.py", line 439, in result
    return self.__get_result()
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/concurrent/futures/_base.py", line 388, in __get_result
    raise self._exception
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/from_thread.py", line 219, in _call_func
    retval = await retval
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/applications.py", line 270, in __call__
    await super().__call__(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/routing.py", line 706, in __call__
    await route.handle(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/routing.py", line 66, in app
    response = await func(request)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/routing.py", line 237, in app
    raw_response = await run_endpoint_function(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/routing.py", line 165, in run_endpoint_function
    return await run_in_threadpool(dependant.call, **values)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/concurrency.py", line 41, in run_in_threadpool
    return await anyio.to_thread.run_sync(func, *args)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/api/routers/caption.py", line 26, in caption
    return application.get().pipeline("caption", (file,))
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/app/base.py", line 624, in pipeline
    return self.pipelines[name](*args)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/pipeline/image/caption.py", line 46, in __call__
    values = [Image.open(image) if isinstance(image, str) else image for image in values]
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/pipeline/image/caption.py", line 46, in <listcomp>
    values = [Image.open(image) if isinstance(image, str) else image for image in values]
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/PIL/Image.py", line 3092, in open
    fp = builtins.open(filename, "rb")
FileNotFoundError: [Errno 2] No such file or directory: '/tmp/txtai/books.jpg'

Some tests end up with system error, like this one trying to open .wav file
======================================================================
ERROR: testTranscribe (testapi.testpipelines.TestPipelines)
Test transcribe via API
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Users/yashdatta/Documents/Workspace/txtai/test/python/testapi/testpipelines.py", line 296, in testTranscribe
    text = self.client.get(f"transcribe?file={Utils.PATH}/Make_huge_profits.wav").json()
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 488, in get
    return super().get(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 1045, in get
    return self.request(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 454, in request
    return super().request(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 821, in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 908, in send
    response = self._send_handling_auth(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 936, in _send_handling_auth
    response = self._send_handling_redirects(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 973, in _send_handling_redirects
    response = self._send_single_request(request)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/httpx/_client.py", line 1009, in _send_single_request
    response = transport.handle_request(request)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 337, in handle_request
    raise exc
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/testclient.py", line 334, in handle_request
    portal.call(self.app, scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/from_thread.py", line 283, in call
    return cast(T_Retval, self.start_task_soon(func, *args).result())
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/concurrent/futures/_base.py", line 439, in result
    return self.__get_result()
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/concurrent/futures/_base.py", line 388, in __get_result
    raise self._exception
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/from_thread.py", line 219, in _call_func
    retval = await retval
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/applications.py", line 270, in __call__
    await super().__call__(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/applications.py", line 124, in __call__
    await self.middleware_stack(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/errors.py", line 184, in __call__
    raise exc
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/errors.py", line 162, in __call__
    await self.app(scope, receive, _send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
    raise exc
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
    await self.app(scope, receive, sender)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
    raise e
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
    await self.app(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/routing.py", line 706, in __call__
    await route.handle(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/routing.py", line 276, in handle
    await self.app(scope, receive, send)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/routing.py", line 66, in app
    response = await func(request)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/routing.py", line 237, in app
    raw_response = await run_endpoint_function(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/fastapi/routing.py", line 165, in run_endpoint_function
    return await run_in_threadpool(dependant.call, **values)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/starlette/concurrency.py", line 41, in run_in_threadpool
    return await anyio.to_thread.run_sync(func, *args)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/to_thread.py", line 31, in run_sync
    return await get_asynclib().run_sync_in_worker_thread(
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 937, in run_sync_in_worker_thread
    return await future
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/anyio/_backends/_asyncio.py", line 867, in run
    result = context.run(func, *args)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/api/routers/transcription.py", line 26, in transcribe
    return application.get().pipeline("transcription", (file,))
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/app/base.py", line 624, in pipeline
    return self.pipelines[name](*args)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/pipeline/audio/transcription.py", line 52, in __call__
    speech = self.read(values, rate)
  File "/Users/yashdatta/Documents/Workspace/txtai/src/python/txtai/pipeline/audio/transcription.py", line 76, in read
    raw, samplerate = sf.read(x)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/soundfile.py", line 282, in read
    with SoundFile(file, 'r', samplerate, channels,
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/soundfile.py", line 655, in __init__
    self._file = self._open(file, mode_int, closefd)
  File "/Users/yashdatta/.pyenv/versions/3.8.8/lib/python3.8/site-packages/soundfile.py", line 1213, in _open
    raise LibsndfileError(err, prefix="Error opening {0!r}: ".format(self.name))
soundfile.LibsndfileError: Error opening '/tmp/txtai/Make_huge_profits.wav': System error.

Any pointers would be very helpful !

I typically run at the lowest supported version of Python which is currently 3.7.
The GitHub Actions build workflow is another resource to check when encountering errors - https://github.com/neuml/txtai/blob/master/.github/workflows/build.yml. This builds on Windows/macOS/Linux with every check in.
Regarding the error, it looks like the test data is missing, this can be fixed with:
make data

I updated the CONTRIBUTING guide to make that clear. Thank you for diligence in getting through the build step!

Thanks! It works perfectly now. Let me try to make some changes.


How to keep one of the HDMI's frame buffer intact for a pi4 system?

It is more of clarification/feature-understanding rather than an issue
Hello.
First of all thank you so much for this as it is a very helpful tool to setup SPI TFTs with commonly found TFT chipsets. 😇
If I understand correctly, it copies over frame data, available at /dev/fb0 [for default HDMI], with out creating a /dev/fb1 for the SPI display bus which is a huge advantage to run it faster at 60Hz, which basically means it kind of mirrors/copies over the HDMI Frame buffer [ in laymen's over simplified terms, as I'm a noob in this area of display and kernel settings ]
My question is, for a raspberry pi4, can I keep the 2nd HDMI fb (if there is any) intact and separate from being copied over to SPI. In other words, how can I assign, while compiling, that only copy over the HDMI-0's frame buffer and let the HDMI-1 be as it is? Or am I overthinking it and for Pi4, running latest buster, it will anyways only copy the HDMI-0's frame buffer?   😅
I understood, for proper resolution setting reasons, in /boot/config.txt you have suggested to add these settings:
hdmi_mode=87
hdmi_cvt=320 240 60 1 0 0 0
hdmi_force_hotplug=1

I have no way of testing at the moment as my Pi4 is still in transit.
Any direction and help would be very much appreciated.

I believe it will always copy the first HDMI display's framebuffer. I have not actually tried out either with two HDMI displays, so not sure how it will behave. Let me know as well.
I hear that on RPi4 one needs to manually enable DispmanX API in raspi-config by adjusting the OpenGL driver option in the menu settings.. with bad luck that disables dual HDMI output support, but I suppose you'll find out soon enough if that's the case...

To be more precise, if there is only one HDMI connected, then it will always duplicate its framebuffer, possibly scaling it down to the SPI display resolution, in case the original HDMI output resolution is something else. If the two HDMI displays do show up as /dev/fb0 and /dev/fb1 then I presume the second HDMI would be able to operate independently to fbcp-ili9341 operation.

@juj that is my assumption as well. I will get the pi4 today and will post the updates here.
BTW I've just started maintaining a small blog post on this here

@juj . So My Pi4 arrived and after configuring the system [ updating, upgrading etc. 😪 ].

I first edited the st7735.cpp:  at line 95, changed SPI_TRANSFER(0x37/*VSCSAD: Vertical Scroll Start Address of RAM*/, 0, 320 - DISPLAY_WIDTH); to SPI_TRANSFER(0x37, 0, 40); // necessary for my circular 1.3" ST7789V 240x240 TFT

Then added in /boot/config.txt:

# Enable DRM VC4 V3D driver on top of the dispmanx display stack
dtoverlay=vc4-fkms-v3d
max_framebuffers=2

[all]
hdmi_group=2
hdmi_mode=87
hdmi_cvt=480 320 60 1 0 0 0
hdmi_force_hotplug=1

Then compiled using command: cmake -DSPI_BUS_CLOCK_DIVISOR=6 -DGPIO_TFT_DATA_CONTROL=25 -DARMV8A=ON -DSTATISTICS=0 -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON -DST7789=ON  and then make -j.
Note: I added this -DDISPLAY_CROPPED_INSTEAD_OF_SCALING=ON as I need the display to show "original size" texts etc.

Running sudo ./fbcp-ili9341, showed up the first display as expected on the SPI TFT, but command out-put on the terminal was a bit un-expected:

bcm_host_get_peripheral_address: 0xfe000000, bcm_host_get_peripheral_size: 25165824, bcm_host_get_sdram_address: 0xc0000000
BCM core speed: current: 266666666hz, max turbo: 500000000hz. SPI CDIV: 6, SPI max frequency: 83333333hz
Allocated DMA channel 7
Allocated DMA channel 1
Enabling DMA channels Tx:7 and Rx:1
DMA hardware register file is at ptr: 0xb52e8000, using DMA TX channel: 7 and DMA RX channel: 1
DMA hardware TX channel register file is at ptr: 0xb52e8700, DMA RX channel register file is at ptr: 0xb52e8100
Resetting DMA channels for use
DMA all set up
Initializing display
Creating SPI task thread
InitSPI done
DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE: Swapping width/height to update display in portrait mode to minimize tearing.
Relevant source display area size with overscan cropped away: 240x240.
Source GPU display is 240x240. Output SPI display is 240x240 with a drawable area of 240x240. Applying scaling factor horiz=1.00x & vert=1.00x, xOffset: 0, yOffset: 0, scaledWidth: 240, scaledHeight: 240
Creating dispmanX resource of size 240x240 (aspect ratio=1.000000).
GPU grab rectangle is offset x=0,y=0, size w=240xh=240, aspect ratio=1.000000

Special things to note here are:

It says: DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE: Swapping width/height to update display in portrait mode to minimize tearing. but in config.h, around line162, which is: #define DISPLAY_OUTPUT_LANDSCAPE is not commented out and I didn't pass any build option to rotate anything. 🧐
2. .. Source GPU display is 240x240 .. . Well first of all there is no source on HDMI-0 as I didn't connect anything to it. So is it because we asked in /boot/config.txt to hdmi_force_hotplug=1, so it created a virtual display!? But then, according to what? In raspi-config->advanced-settings, for resolution settings, it says (if I remember correctly), something along the lines: .. choose the best resolution based on attached display etc..
After Quarrying /dev/fb* , I only still get /dev/fb0 returned. So HDMI-1 is not fb1.

Good news is, The 2nd HDMI [HDMI-1] is set to it's connected display's resolution and is separate and not mirrored (but can be set to mirror the first display).
If I fire up the VNC, I see this:

And here is my setup (The PI HAT is what I'm currently designing for a project):

1. It says: `DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE: Swapping width/height to update display in portrait mode to minimize tearing.` but in `config.h`, around line162, which is: `#define DISPLAY_OUTPUT_LANDSCAPE` is not commented out and I didn't pass any build option to rotate anything. 🧐

All the small SPI display panels are "portrait panels", i.e. their vsync refresh runs in portrait orientation. Well, a 240x240 display is square, so there identifying between portrait vs landscape requires looking at the datasheet of the casing manufacturer. DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE makes the panel updates occur in the native/natural scan order to minimize this kind of diagonal tearing artifact that would otherwise occur if bytes are uploaded in landscape, but the panel updates in portrait. See "Diagonal Tearing Mode" in https://www.youtube.com/watch?v=EOICdpjiqv8 for what that effect looks like in slow motion. Basically  DISPLAY_FLIP_ORIENTATION_IN_SOFTWARE enables the "Straight line tearing mode", at the expense of some added CPU usage.

2\. `.. Source GPU display is 240x240 ..` . Well first of all there is no source on HDMI-0 as I didn't connect anything to it. So is it because we asked in `/boot/config.txt` to `hdmi_force_hotplug=1`, so it created a virtual display!? But then, according to what? In `raspi-config->advanced-settings`, for _resolution settings_, it says (if I remember correctly), something along the lines: .. choose the best resolution based on attached display etc..

The HDMI output on the Pi is enabled/disabled independent of Linux framebuffer system. tvservice -s can be used to print out its current status. There will always be a HDMI output/framebuffer on the DispmanX, as long as tvservice -s says that HDMI is on. I don't know how tvservice -s works with two HDMI outputs, perhaps it prints two sets of output parameters, or something like that.
The size 240x240 was defined by you by choosing to target ST7789, and by enabling DISPLAY_CROPPED_INSTEAD_OF_SCALING=ON. You can also try setting hdmi_cvt=240 240 60 1 0 0 0 to get the HDMI output to run in the same resolution as the SPI display is. That way you can pass DISPLAY_CROPPED_INSTEAD_OF_SCALING=OFF to the build to get pixel-perfect output. (I think it is also possible to go faster than 60hz with a ST7789, but don't exactly remember what the max refresh rate is - check from a datasheet if you find one)

3\. After Quarrying `/dev/fb*` , I only still get `/dev/fb0` returned. So HDMI-1 is not fb1.

That is interesting.. No idea how that is supposed to work on the RPi4!

* **Good news is**, The _2nd HDMI_ [HDMI-1] is set to it's connected display's resolution and is separate and not mirrored (but can be set to mirror the first display).

Most excellent! Hopefully that will run smooth.

@juj, Thank you so much again, for the clarifications and information.
Regarding your suggestion on driving ST7789 based displays at a higher rate, I found this:
from the pi's  documentation on core freq :

Changing core_freq in config.txt is not supported on the Pi 4, any change from the default will almost certainly cause a failure to boot.

You do not need to change core_freq. Changing the refresh rate of ST7789 display is done via a SPI command. For ST7789VW model it is
https://github.com/juj/fbcp-ili9341/blob/662e8db76ba16d86cf6fd09d85240adc19e62735/st7735r.cpp#L101
though for other ST* display models it is not enabled.
To update at e.g. 100hz display rate, one would change
hdmi_cvt=240 240 60 1 0 0 0

to
hdmi_cvt=240 240 100 1 0 0 0

Although I am not sure if the Pi supports refresh rates > 60.

You do not need to change core_freq. Changing the refresh rate of ST7789 display is done via a SPI command. For ST7789VW model it is
https://github.com/juj/fbcp-ili9341/blob/662e8db76ba16d86cf6fd09d85240adc19e62735/st7735r.cpp#L101
though for other ST* display models it is not enabled.
To update at e.g. 100hz display rate, one would change
hdmi_cvt=240 240 60 1 0 0 0

to
hdmi_cvt=240 240 100 1 0 0 0

Although I am not sure if the Pi supports refresh rates > 60.

Cool. Will check and let you know

@juj .
So the display runs smooth at 100 Hz. No problem 😃


Creating swap should not rely upon fallocate

Sample script in the documentation for creating swap calls fallocate to create a file for swap. However, it appears that there are several occasions fallocate does not create a file properly in purpose of using for swap.
#!/bin/sh
if [ ! -f '/mnt/swapfile' ]; then
fallocate --length 2GiB /mnt/swapfile
chmod 600 /mnt/swapfile
mkswap /mnt/swapfile
swapon /mnt/swapfile
swapon -a
else
swapon /mnt/swapfile; fi
https://unix.stackexchange.com/questions/599949/swapfile-swapon-invalid-argument
I wonder method like dd if=/dev/zero of=/mnt/swapfile bs=1M count=2048 should be used instead.

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

ID: 01ee0e4f-fb6a-2a3f-b30e-e2bf4c0b383c
Version Independent ID: 6f0185df-55bd-c07b-8380-93b9e9428638
Content: Swap file is not re-created after a Linux VM restarts - Virtual Machines
Content Source: support/azure/virtual-machines/swap-file-not-recreated-linux-vm-restart.md
Service: virtual-machines
GitHub Login: @srijang
Microsoft Alias: srijangupta

@thiruma0203, Thanks for the feedback. I will check with our engineer and get back to you.

@thiruma0203, The article was updated based on your comments. Thanks for the contribution.

@thiruma0203, The article was updated based on your comments. Thanks for the contribution.