Karma and chai-enzyme

We had to remove chai-enzyme to get our test setup with Karma working. This is a shame, because the output by chai-enzyme when a test fails is incredibly useful, much better than the current one.
I want to add chai-enzyme again, but there are a few issues to be resolved which @jbinto is working on.
See https://github.com/mxstbr/react-boilerplate/issues/79#issuecomment-174238581 (archived) and https://github.com/producthunt/chai-enzyme/issues/16 (active discussion) for more information.

I'll work on this again now that chai-enzyme has been updated to work with plain require:
https://github.com/producthunt/chai-enzyme/issues/16#issuecomment-178243404

FWIW, I took another look at this today and I'm still confused.
I am pulling in karma-chai-enzyme (which is a naive copy paste of karma-dirty-chai) and getting this:
Uncaught ReferenceError: require is not defined
  at /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/build/index.js:3

Another boilerplate (davezuko/react-redux-starter-kit) seems to have gotten chai-enzyme working with Karma:
https://github.com/davezuko/react-redux-starter-kit/commit/311aab2bebd50104f4932ded80568bf24a43c27b

[x] include sinon in resolve.alias
[x] define externals for enzyme (jsdom, cheerio, ...) (ref)
[ ] use ImportsLoader for sinon (require, define) (ref) (n.b. not sure why this is needed)
[ ] create test-bundler.js
[ ] test-bundler.js: chai.use statements (ref)
[ ] test-bundler.js: require all tests (ref)
[ ] karma.conf: preprocess test-bundler instead of ** (ref)
[ ] restore chai-enzyme-style assertions (ref 4ac051b4c454f5ae34fc6d15f08ce5890f1d63c9)

OK, I'm officially lost.
https://github.com/jbinto/react-boilerplate/commit/55f296b74bcaf5f83a10e9f5012a9f5958cb272c
npm run test 2>&1 | grep 'Module parse'
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/attr.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/checked.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/blank.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/className.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/contain.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/data.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/descendants.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/disabled.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/empty.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/exist.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/html.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/id.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/inspect.test.js Line 1: Unexpected token
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/match.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/null.test.js Line 7: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/present.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/prop.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/ref.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/selected.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/state.test.js Line 9: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/style.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/tagName.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/text.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/chai-enzyme/test/value.test.js Line 4: Unexpected token <
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/CHANGELOG.md Line 1: Unexpected token ILLEGAL
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/LICENSE Line 1: Unexpected identifier
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/Readme.md Line 1: Unexpected token ILLEGAL
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/binding.gyp Line 2: Unexpected token :
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/fsevents.cc Line 6: Unexpected token ILLEGAL
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/src/constants.cc Line 7: Unexpected token ILLEGAL
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/src/async.cc Line 7: Unexpected token {
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/src/locking.cc Line 6: Unexpected token :
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/src/methods.cc Line 6: Unexpected token :
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/src/storage.cc Line 6: Unexpected identifier
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/src/thread.cc Line 7: Unexpected token ILLEGAL
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/lib/binding/Release/node-v47-darwin-x64/fse.node Line 1: Unexpected token ILLEGAL
Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/node-pre-gyp/lib/util/nw-pre-gyp/index.html Line 1: Unexpected token <

npm run test 2>&1 | grep 'Module not found'
Module not found: Error: Cannot resolve module 'node-gyp' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/node-pre-gyp/lib/util
Module not found: Error: Cannot resolve module 'npm' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/node-pre-gyp/lib/util
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/base64url/test
Module not found: Error: Cannot resolve module 'should' in /Users/jbinto/dev/react-boilerplate/node_modules/fastparse/test
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/jwa/node_modules/base64url/test
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/jwa/test
Module not found: Error: Cannot resolve module 'tape' in /Users/jbinto/dev/react-boilerplate/node_modules/jws/test
Module not found: Error: Cannot resolve module 'should' in /Users/jbinto/dev/react-boilerplate/node_modules/watchpack/test
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/google-auth-library/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/google-auth-library/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/googleapis/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/googleapis/node_modules/asn1/tst/ber
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/test
Module not found: Error: Cannot resolve module 'tap' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/test
Module not found: Error: Cannot resolve module 'aws-sdk' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/node-pre-gyp/lib
Module not found: Error: Cannot resolve module 'aws-sdk' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/node-pre-gyp/lib
Module not found: Error: Cannot resolve module 'aws-sdk' in /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/node_modules/node-pre-gyp/lib

Looking really closely at davezuko/react-redux-starter-kit and I just can't see what I'm doing differently.

Module parse failed: /Users/jbinto/dev/react-boilerplate/node_modules/fsevents/CHANGELOG.md Line 1: Unexpected token ILLEGAL

Aha!
https://github.com/jbinto/react-boilerplate/commit/55f296b74bcaf5f83a10e9f5012a9f5958cb272c#diff-507b7b6eb038b4024f4fd14f8528c2feR20
I'm pulling in */**/*.test.js, including inside node_modules.

The other boilerplate has a solid separation between src and test.
The way this repo is set up makes it a little more difficult to make a single glob that describes the tests we want to target.
Also see #149

https://github.com/jbinto/react-boilerplate/commit/551858441275d8efbf3b40762f29f4871b8f30fd
OK, now I'm on the right track. Gotta take a break though, I'm in a coffee shop and my laptop battery is about to die.

Perspective:
Before #117, the test setup was mocha+jsdom executing in a Node environment.
After #117, the test setup is mocha+karma executing in Chrome. I remember arguing that using the same JS environment as production along with a real DOM for tests makes me feel safer.
After introducing enzyme, the test setup becomes mocha+karma+jsdom executing in Chrome, since enzyme has a hard dependency on jsdom. So we have a real non-Node JS environment, a real DOM, but now we're executing jsdom inside Chrome.
Gonna want to keep a close eye on https://github.com/airbnb/enzyme/pull/159 which would update enzyme to use a real DOM if it can find one.

Fixed in #150.

Thanks for digging that deep into this and getting it back, amazing work!!

@jongold we got chai-enzyme back!
@vesln we got chai-enzyme working here, you might want to check


Fix/europass data model

Very small, but nevertheless required, fix for Europass model :)

@atuffreau-bcd thanks for taking care for such details!


feat: aws-provider version bump to >= 2.46, < 4.0, terraform version bump to >= 0.12.6, < 0.14

Description
Bumping aws-provider requirement to ">= 2.46, < 4.0"
Bumping terraform requirement to ">= 0.12.6, < 0.14"
Motivation and Context
There is newer terraform and provider version available.
Breaking Changes
As stated here
How Has This Been Tested?
Run example/complete locally on aws 2.46, aws 2.7, aws 3.0 and aws 3.1

Thanks, @cageyv !
v0.5.0 has been just released.


Wemo Component taking a long time to subscribe to devices and appears to cause MQTT timeouts on startup.

Make sure you are running the latest version of Home Assistant before reporting an issue.
You should only file an issue if you found a bug. Feature and enhancement requests should go in the Feature Requests section of our community forum:
Home Assistant release (hass --version):
0.36.1
Python release (python3 --version):
Python 3.4.3
Component/platform:
Wemo / MQTT
Description of problem:
On startup when querying a large number of Wemo devices other activities appear to block and can cause MQTT timeouts. Reconnection is not properly working after the fact as MQTT sensors remain 'Unknown'. This ONLY happens when I have the wemo platform defined which adds well over a minute to startup while it's connect to all the devices. Commenting out the wemo component or reducing the number of devices in the list to a small subset stops the problem.
Expected:
Wemo subscription should not block other activities and MQTT should not disconnect on timeout.
Problem-relevant configuration.yaml entries and steps to reproduce:
mqtt:
  broker: localhost
  port: 1883
  client_id: home-assistant-1
  keepalive: 60

wemo:
  static:
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>
    - <IP_ADDRESS>

Traceback (if applicable):
17-01-26 16:51:20 homeassistant.components.sensor: Error while setting up platform mqtt
Traceback (most recent call last):
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity_component.py", line 151, in _async_setup_platform
    entity_platform.add_entities, discovery_info
  File "/usr/lib/python3.4/asyncio/futures.py", line 386, in __iter__
    yield self  # This tells Task to wait for completion.
  File "/usr/lib/python3.4/asyncio/tasks.py", line 287, in _wakeup
    value = future.result()
  File "/usr/lib/python3.4/asyncio/futures.py", line 275, in result
    raise self._exception
  File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/sensor/mqtt.py", line 42, in setup_platform
    value_template,
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/sensor/mqtt.py", line 68, in __init__
    mqtt.subscribe(hass, self._state_topic, message_received, self._qos)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/event.py", line 26, in factory
    hass.loop, ft.partial(async_factory, *args, **kwargs)).result()
  File "/usr/lib/python3.4/concurrent/futures/_base.py", line 402, in result
    return self.__get_result()
  File "/usr/lib/python3.4/concurrent/futures/_base.py", line 354, in __get_result
    raise self._exception
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/util/async.py", line 167, in run_callback
    future.set_result(callback(*args))
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/mqtt/__init__.py", line 188, in async_subscribe
    MQTT_CLIENT.subscribe(topic, qos)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/mqtt/__init__.py", line 373, in subscribe
    _raise_on_error(result)
  File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/mqtt/__init__.py", line 484, in _raise_on_error
    raise HomeAssistantError('Error talking to MQTT: {}'.format(result))
homeassistant.exceptions.HomeAssistantError: Error talking to MQTT: 1

Additional info:
Home Assistant logs showing disconnect and then failure:
17-01-26 16:51:20 homeassistant.components.mqtt: Successfully reconnected to the MQTT server
17-01-26 16:51:20 homeassistant.components.sensor: Error while setting up platform mqtt
Traceback (most recent call last):
File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/entity_component.py", line 151, in _async_setup_platform
entity_platform.add_entities, discovery_info
File "/usr/lib/python3.4/asyncio/futures.py", line 386, in iter
yield self  # This tells Task to wait for completion.
File "/usr/lib/python3.4/asyncio/tasks.py", line 287, in _wakeup
value = future.result()
File "/usr/lib/python3.4/asyncio/futures.py", line 275, in result
raise self._exception
File "/usr/lib/python3.4/concurrent/futures/thread.py", line 54, in run
result = self.fn(*self.args, **self.kwargs)
File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/sensor/mqtt.py", line 42, in setup_platform
value_template,
File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/sensor/mqtt.py", line 68, in init
mqtt.subscribe(hass, self._state_topic, message_received, self._qos)
File "/usr/local/lib/python3.4/dist-packages/homeassistant/helpers/event.py", line 26, in factory
hass.loop, ft.partial(async_factory, *args, **kwargs)).result()
File "/usr/lib/python3.4/concurrent/futures/_base.py", line 402, in result
return self.__get_result()
File "/usr/lib/python3.4/concurrent/futures/_base.py", line 354, in __get_result
raise self._exception
File "/usr/local/lib/python3.4/dist-packages/homeassistant/util/async.py", line 167, in run_callback
future.set_result(callback(*args))
File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/mqtt/init.py", line 188, in async_subscribe
MQTT_CLIENT.subscribe(topic, qos)
File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/mqtt/init.py", line 373, in subscribe
_raise_on_error(result)
File "/usr/local/lib/python3.4/dist-packages/homeassistant/components/mqtt/init.py", line 484, in _raise_on_error
raise HomeAssistantError('Error talking to MQTT: {}'.format(result))
homeassistant.exceptions.HomeAssistantError: Error talking to MQTT: 1
Mosquitto logs showing timeout:
1485466202: New client connected from <IP_ADDRESS> as home-assistant-1 (c1, k60).
1485466313: Client home-assistant-1 has exceeded timeout, disconnecting.
1485466313: Socket error on client home-assistant-1, disconnecting.

I should note that this does not happen when using the discovery component and not specifying the wemo IPs like in the above example. The main difference appears to be there is a 10 second delay between each wemo being added when they are defined individually by IP instead of them all happening pretty much at the same time when using discovery.

For static wemo devices pywemo probes them to find out which port they are using. This can take some time because we have to wait for the incorrect ports to report an error.
The discovery process finds the port - as well as the ip - so it isn't a problem in this case.
Sadly wemos change their ports - so it's not something we can add to the config.
You have more devices than most - so the problem is worse for you!.
If discovery always finds them - that may be a good solution for now.

I've noticed that most of the time its fine with discovery but occasionally I have to do a double restart after if the timeout happens so it certainly is a work around. Good to know why it takes longer when they are specified though, thank you.
The main issue is the fact that it blocks in some fashion during this and the MQTT connection times out and never reconnects properly.


Makes run_unittests.sh actually exit when tests fail

This is going to break the build (which is actually already broken) so I'm force merging it

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Clipper-PRB/118/
Test FAILed.


Can't upload a video from iphone

Hello !
When I use the dash-uploader component inside a Chrome browser on a IPhone I am not able to upload a video using 'Take Video' option provided by the IPhone.
It will simply return the following message inside the component: "Invalid file type!"
Any ideas how to fix this ?
Thank you very much :)

My only guess would be that the selected filetype is not in the list of accepted filetypes. This is controlled by the filetypes argument of du.Upload. So, instead of:
du.Upload(
    id="dash-uploader",
    filetypes=["csv", "xls", "xlsx"], # <-- remove this
    # .... rest
),

use
du.Upload(
    id="dash-uploader",
    # .... rest
),

You were right, this change has worked !
du.Upload(
    id="dash-uploader",
    filetypes=["mov"],
    # .... rest
)


IO specific time units

Note: This pull request builds on pull request #435, thus should not be merged before it.
Using the new RawIO I noticed that all times are rescaled to seconds. Me and my colleagues thought it might be better to at least be able to keep the timestamps as integer values in order not to lose precision and to be able to work with them more easily.
So what I did was to pass all timestamps and t_start and t_stop with a pq.unit (e.g. 1.0/30000 * s) from BlackrockRawIO and implement a check for this in BaseFromRawIO. So all IOs that did not change are not affected, because they are treated the same way as before but it can now be decided on RawIO level, which kind of behavior is wanted.
I have not done this consequently, because many methods in the RawIOs require times passed as seconds but I tried to keep them in their original form for as long as possible.

Coverage decreased (-0.09%) to 48.986% when pulling 85e9a025fbdfd672f38d7c3b02f0cadd95bb730e on bjoern1001001:sptr_times into ab720e75e2c947385a2eb977ee2002770d16dde2 on NeuralEnsemble:master.

Hi. I won't have time to read that code before january. I am really sorry for that.
I totally agrre with the idea of CompundUnits. See thies really old issu #226
This more global that timestamps. It also must be discuss for magnitude of signals when rescaling.
I would like to have this completly optional for all RawIO not just BlackRockIO:

having the true raw data in there dtyp in numpy way (RawIO level)
having the rescale data with magnitude in raw format with compund units at neo.io level (IO level)
having the reqscale data with float magnitude (rescaled like today) so that AnalogSignal.magnitude and SpikeTrain.magnitude are transparent for users. (IO level)

Note that RawIO must not depend depend on quantitites module because rawio will be share with mne.io soon and they certainly won't be agree to depend on an unmaintened package as we do.
So the design of RawIO is from the begenning for all rawIO without pq deliberatly.
The pq is only at IO level so if one day we switch to another units system it will be easy.
Making pq.CompundUnits should be easy for AnalogSignal with channelheader BaseFromraw.
Doing the same for times (in spike and event)  need some change at rawIO API by adding some more info in event and units headers table but should be quite easy.
I really prefer wait the meeting with mne in january before taking decision how to implement theses magnitude and compundunits at io level.


check_rgw errors

1st Problem:
There is no support for the --keyfile switch. All other check support it. Please add the keyfile switch.
2nd Problem:
When running the check with simple options, if fails while trying to fetch mon config:
./check_ceph_rgw --id nagios -c /etc/ceph/ceph.conf
RGW ERROR:  :: failed to fetch mon config (--no-mon-config to skip)

The option doesn't seem to be supported by the script though:
 ./check_ceph_rgw --id nagios --no-mon-config
usage: check_ceph_rgw [-h] [-d] [-B] [-e EXE] [-c CONF] [-i ID] [-n NAME] [-V]
check_ceph_rgw: error: unrecognized arguments: --no-mon-config

What to do to check RGW Gateway status?

You can use [check_ceph_rgw_api](the https://github.com/ceph/ceph-nagios-plugins#check_ceph_rgw_api) instead.
You should define a radosgw user nagios with the capability buckets=read, and use its access and secret keys to query the admin API.
Nagios user:
# create nagios user in radosgw
radosgw-admin user create --uid nagios --display_name "Nagios checker" --email<EMAIL_ADDRESS># set the capability
radosgw-admin caps add --uid nagios --caps "buckets=read"
# get the access_key and secret_key
radosgw-admin user info --uid nagios


Update ja.lang and create japanese README.md

I added a key to ja.lang that is not in the language file but is called in the localization function. Now the Token Extended HUD is displayed.
I also made a Japanese README.md and put it in a new folder. I also made it possible to refer to it from both English and Japanese.

Hey there @Yasnen ... thanks for these additions. Are you on Discord? Can you message me there to have a quick chat on best way forward with some of these please?  I'm Jagusti#3610 on Foundry and Ratcatcher Guild. Thanks 👍


improve: new icons

[x] I have read the Contributing Guide
[x] I have signed the CLA
[x] Lint and unit tests pass locally with my changes
[x] I have labeled the PR correctly with the related package
[x] I have run Loki's visual regression tests (if applicable)
[ ] I have added tests that prove my fix is effective or that my feature works (if applicable)
[ ] I have added necessary documentation (if applicable)
[ ] Any dependent changes have been merged and published in downstream modules

Proposed changes (including videos or screenshots)

Issue(s)

Further comments

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.dougfabris seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.


⚠ Bofrost.de has degraded performance

In 346bc13, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 890 ms

Resolved: Bofrost.de performance has improved in 1af3bba after 19 minutes.


[bug]: Multiple DropdownMenu in sidebar causes freeze on mobile screen

Describe the bug
https://ui.shadcn.com/blocks#sidebar-07
If you open multiple dropdown menus on a phone screen and close the sidebar, the whole app freezes.
Affected component/components
Sidebar
How to reproduce

Visit https://ui.shadcn.com/blocks#sidebar-07
Click on the phone screen.
Open the sidebar.
Open the dropdown menu in the company switcher (Acme).
Open the profile dropdown menu (shadcn at the bottom).
Click away to close the sidebar.
Now, you can't do anything; you can't even reopen the sidebar.

Codesandbox/StackBlitz link
https://ui.shadcn.com/blocks#sidebar-07
Logs
No response
System Info
google chrome, windows 11

Before submitting

[X] I've made research efforts and searched the documentation
[X] I've searched for existing issues

+1, I have the same problem

+1, I have the same problem

i fixed it like this:
const { isMobile, openMobile } = useSidebar()
if (!openMobile) {
    return null
  }

return ...

so far it works

Are there any ongoing modification processes? If not, I would like to make improvements. Please give me comments


supported products only for Microsoft.VisualStudio.Community

I tried to install Microsoft.VisualStudio.BlazorExtension.vsix to my Visual Studio Professional 2017 but the error says it's only supporting Visual Studio Community. Why?
VSIXInstaller_de52d3d4-1758-4b62-9137-e2ba46f40268.log

@rynowak

5/3/2018 12:43:29 PM - Microsoft VSIX Installer
5/3/2018 12:43:29 PM - -------------------------------------------
5/3/2018 12:43:29 PM - vsixinstaller.exe version:
5/3/2018 12:43:29 PM - 15.6.152+ge95e4dd1ce

What's your visual studio version? The installer is showing a 15.6 version number

It should work on all VS SKUs. I have it installed on VS Enterprise. We'll take a look.

@jwaller2040 Can you confirm that you have the latest preview of VS2017 15.7 installed? The Blazor VSIX requires the latest VS preview release. You can install it from https://visualstudio.com/vs/preview.

I thought it said 15.6.7? Wasn't aware of 15.7. I'll look

It says that's the highest I can get...

@jwaller2040  you have to install preview as a separate installation, like I can see in ur latest comment, then you can install blazor extension in ur preview version of VS 2017 and then use it in that :)

Okay, I guess the 15.6.7 and 15.7 were confusing for me. I will correct this and close if I can. Thanks for the quick help


feat: FastAPI Implementation of Sotopia Part Two (w websocket)

Closes #
📑 Description

✅ Checks

[ ] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[ ] All the tests have passed
[ ] Branch name follows type/descript (e.g. feature/add-llm-agents)
[ ] Ready for code review

ℹ Additional Information

A simple usage of this api, still working on it: https://github.com/sotopia-lab/sotopia-demo/pull/14

Please merge main into this branch.

Attention: Patch coverage is 40.17857% with 201 lines in your changes missing coverage.

Could you fix this?

Attention: Patch coverage is 40.17857% with 201 lines in your changes missing coverage.

Could you fix this?

okay, let's not worry about this for now in light of the timeline

Since this PR is very large and not covered by CI tests, it is hard to take it directly into the main branch, i.e. I could not read every line to make sure it doesn't break anything or rely on the test cases to make sure the features introduced will not be broken.
To accelerate the development process, I changed the base to a different branch demo. Please merge related improvements to that branch, and we will merge it whenever it has been thoroughly tested.


[BUG] Generated index.ts files have syntax errors, e.g. "Cannot redeclare exported variable ..."

Is there an existing issue for this?

[X] I have searched the existing issues

Nature of Your Project
TypeScript
Current Behavior
In our project some generated files by cds typer contan syntax errors.
In detail
The error
Property 'Integration' in type '(Anonymous class)' is not assignable to the same property in base type '_cuidAspect<{ new (...args: any[]): _managedAspect<{ new (...args: any[]): _SourceReferenceAspect<TBase>.(Anonymous class); prototype: _SourceReferenceAspect<any>.(Anonymous class); readonly actions: Record<...>; } & TBase>.(Anonymous class); prototype: _managedAspect<...>.(Anonymous class); readonly actions: Record...'. Type 'string' has no properties in common with type 'Integration'.
occurs in the files

@cds-models/sap/erp4sme/c4b/payment/payables/index.ts
@cds-models/sap/erp4sme/c4b/payment/receivables/index.ts
@cds-models/sap/erp4sme/c4b/payment/paymentOrders/index.ts
@cds-models/sap/erp4sme/c4b/payment/clearings/index.ts
@cds-models/sap/erp4sme/c4b/masterData/businessPartners/index.ts

Several additional errors, like e.g.
Cannot redeclare exported variable '_PaymentAgreementOutgoingAspect'.

Cannot redeclare exported variable '_PaymentAgreementIncomingAspect'.

Class 'PaymentAgreementIncoming' used before its declaration.
occur in the file

@cds-models/sap/erp4sme/c4b/masterData/businessPartners/index.ts

Expected Behavior
No syntax errors in generated files
Steps To Reproduce
repo https://github.tools.sap/erp4sme/crypto-for-business
branch switch-to-cds-typer-payment-master-data
above-mentioned files are located in https://github.tools.sap/erp4sme/crypto-for-business/tree/switch-to-cds-typer-payment-master-data/%40cds-models)
to re-generate the files run npm run cds-typer:dev
Environment
| c4b                    | github.tools.sap/erp4sme/crypto-for-business.git   |
| ---------------------- | -------------------------------- |
| @cap-js/audit-logging  | 0.6.0                            |
| @cap-js/cds-typer      | 0.23.0                           |
| @cap-js/cds-types      | 0.2.0                            |
| @cap-js/change-trackin | 1.0.6                            |
| @cap-js/telemetry      | 0.1.0                            |
| @sap/cds               | 7.9.3                            |
| @sap/cds-common-conten | 1.4.0                            |
| @sap/cds-compiler      | 4.9.6                            |
| @sap/cds-dk            | 7.9.5                            |
| @sap/cds-dk (global)   | 7.7.2                            |
| @sap/cds-fiori         | 1.2.3                            |
| @sap/cds-foss          | 5.0.0                            |
| @sap/cds-mtxs          | 1.18.2                           |
| @sap/eslint-plugin-cds | 3.0.4                            |
| Node.js                | v18.18.0                         |
| home                   | /Users/D027152/Documents/git/dch/crypto-for-business/node_modules/@sap/cds |

cds-typer version 0.23.0

Repository Containing a Minimal Reproducible Example
No response
Anything else?
This is a follow-up of https://github.com/cap-js/cds-typer/issues/270

How does your entity definition look like. Sth like this maybe:
entity Entities: cuid, managed {
    key ID: Integration;
}

Are you redeclaring the ID?

Hi Stefan,
thanks for the report and the detailed analysis.
The problem seems to pop up in scenarios where views/ projections alias a property that is also pulled into the view via inheritance. I have therefore completely removed inheritance clauses from views, as they should explicitly list their exposed fields anyway. Would you mind trying out the related PR[^1] to see if it addresses the issues you have found with your model?
Best,
Daniel
[^1]: I have since added a second method to the wiki entry for trying out prerelease versions that is more convenient to do.

Hi Daniel
I tried your PR and can confirm that the following files are generated without syntax error, and they look good to me:

@cds-models/sap/erp4sme/c4b/payment/payables/index.ts
@cds-models/sap/erp4sme/c4b/payment/receivables/index.ts
@cds-models/sap/erp4sme/c4b/payment/paymentOrders/index.ts
@cds-models/sap/erp4sme/c4b/payment/clearings/index.ts
@cds-models/sap/erp4sme/c4b/masterData/businessPartners/index.ts

I have pushed the generation result in case you also want to have a look at it: https://github.tools.sap/erp4sme/crypto-for-business/tree/switch-to-cds-typer-payment-master-data/%40cds-models
The errors mentioned above in the following file still exist:

@cds-models/sap/erp4sme/c4b/masterData/businessPartners/index.ts

I assume that your correction was not meant to solve these as well. Can you please check and let me know if I shall open again a separate bug for this?
Thank you,
Stefan
PS: Thank you for the new method to try out prerelease versions! By far more convenient!

Hi Stefan,
glad we could (at least partially) resolve your issue!
I checked the remaining issue you found and it seems to be something else entirely. So if you wouldn't mind opening a new issue for that, that would be greatly appreciated! I could then just merge the fix for views, which will automatically close this issue here.
Feel free to just link to the relevant part of this thread for the description.
(On a side note: we consider the types generated by cds-typer to be ephemeral and therefore recommend not checking them into your VCS, but generate them on-site. You may have good reasons to persist the types in your repository, just wanted to mention it.)
Best,
Daniel


Json formatting is corrupted in Safari

Steps to reproduce

Login to Zafira (Admin) in Safari
Open test run tab
Click on "test launcher"
Expand launcher
Select test run and edit

Actual behavior
json formatting is corrupted

Environment
Safari
ui v.1.27.RC3 | server v.4.1.81.RC1 | client v.4.1.65

Wasn't able to repro in ui v.1.24-SNAPSHOT | server v.1.489-SNAPSHOT | client v.1.0-SNAPSHOT.


MapInstance::on_description_and_battlecry is unhandled

Summary
This is one of many events in MapInstance.cpp that is unhandled in one way or another.
Details
Begins on line 686 of MapInstance.cpp.
When called, it gives "Unhandled description and battlecry request" along with description and battlecry to qWarning().
TODO: client expects us to force it to fill description and battlecry fields in UI?

Current build saves information entered on the ID (profile) page correctly, but does not load BattleCry or Description on this page properly. Not sure if there's another MapEvent that is supposed to send this information, or if we're sending something incorrect elsewhere, but this is sort of "half" working.

To the best of my knowledge, this now does everything it's supposed to do. Closing.


AMBARI-25207 The Ubuntu repository id for the cached apt package list is generated wrong in case if were used URL with https protocol (dgrinenko)

What changes were proposed in this pull request?
Port of #2888 to tunk
How was this patch tested?
On cluster.

Refer to this link for build results (access rights to CI server needed):
https://builds.apache.org/job/Ambari-Github-PullRequest-Builder/5117/
Test PASSed.


Implement array-selector

<array-selector> is a dependency of iron-list.

Is this related to my issue in iron-list?

@Alos That's right

Interesting! What are you guys thinking? Should <array-selector> be a behavior or maybe temporarily spawn <array-selector> as a util element and make it available for other elements that use it *cough* iron-list *cough*? It might be a little over my head, but I could try to help?

@Alos Thanks for the offer Alos... array-selector in particular is affected by our proposed changes to how object dirty checking works. I went ahead and did a first-pass implementation to work out the kinks that we'll be reviewing shortly.  I did go ahead and make it a mixin for more lightweight integration.

Fixed by https://github.com/Polymer/polymer/pull/4230


Exporting a Collection into Local Computer Disk

HI!,
I would like to download an Image collection (more than 80 GB) into my personal computer, because google drive doesn't offer a lot of storage.
Is that possible? and if yes, How?
Thank you

Hi!
There is a way to use geetools for downloading a single ee.Image to a local folder, you can adapt it to download an entire image collection. I drop you an example that is working for me.
from geetools import batch
import ee
geom = ee.Geometry.Point([-72,-42]).buffer(1000)
col = ee.ImageCollection.fromImages([ee.Image.random(1), ee.Image.random(2), ee.Image.random(3)])
size = col.size().getInfo()
clist = col.toList(size)
for i in range(size):
    image = ee.Image(clist.get(i))
    iid = image.id().getInfo()
    name = 'test_'+iid
    print('downloading '+name)
    batch.Image.toLocal(image, name, scale=100, region=geom)

Hi @KonstantinosF , how did it go?

@fitoprincipe I want to do the same. Is there documentation on all the functions in geetools? I can't find it the folder I downloaded, but I could easily be looking in the wrong spot. Also, can you specify the directory to save the images to when exporting to a local computer? Thanks in advance!

Hi @Adriano, I couldn't find this message in GitHub.. I haven't made good
documentation yet, but I know I need to. Meanwhile you can do
help(batch.Image.toFile)
El jue., 23 de may. de 2019 a la(s) 19:24, Adriano Matos (
<EMAIL_ADDRESS>escribió:

@fitoprincipe https://github.com/fitoprincipe I want to do the same. Is
there documentation on all the functions in geetools? I can't find it the
folder I downloaded, but I could easily be looking in the wrong spot. Also,
can you specify the directory to save the images to when exporting to a
local computer? Thanks in advance!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/gee-community/gee_tools/issues/27?email_source=notifications&email_token=ACSA4EIEWOFXL727EMZCX2DPW4KSTA5CNFSM4G6ZZBWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWDU4XY#issuecomment-495406687,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ACSA4EJTFYYSBKG37UNFFFDPW4KSTANCNFSM4G6ZZBWA
.

--
Rodrigo E. Principe
Forest Engineer
linkedin.com/in/rprincipe82 http://www.linkedin.com/in/rprincipe82
github.com/fitoprincipe

Hi @fitoprincipe ! I am trying to also download imagery to my local computer, but I keep getting this error:
"zipFile.BadZipFile: File is not a zip file." I think it has something to do with the image collection I am trying to export (particularly Landsat 8 Surface Reflectance). Are you familiar with this error?
I provided a link to my script in case you wanted to replicate the error. It should work until you get that error I mentioned. It takes like 5 minutes until the error message appears.
[example.zip]
(https://github.com/gee-community/gee_tools/files/3214444/example.zip)
Thanks so much in advance!

Hi @adriano, I couldn't find this message in GitHub.. I haven't made good documentation yet, but I know I need to. Meanwhile you can do help(batch.Image.toFile) El jue., 23 de may. de 2019 a la(s) 19:24, Adriano Matos<EMAIL_ADDRESS>escribió:
…
@fitoprincipe https://github.com/fitoprincipe I want to do the same. Is there documentation on all the functions in geetools? I can't find it the folder I downloaded, but I could easily be looking in the wrong spot. Also, can you specify the directory to save the images to when exporting to a local computer? Thanks in advance! — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#27?email_source=notifications&email_token=ACSA4EIEWOFXL727EMZCX2DPW4KSTA5CNFSM4G6ZZBWKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODWDU4XY#issuecomment-495406687>, or mute the thread https://github.com/notifications/unsubscribe-auth/ACSA4EJTFYYSBKG37UNFFFDPW4KSTANCNFSM4G6ZZBWA .
-- Rodrigo E. Principe Forest Engineer linkedin.com/in/rprincipe82 http://www.linkedin.com/in/rprincipe82 github.com/fitoprincipe

@fitoprincipe Oh sorry! I deleted the reply because I figured out the "toLocal" function myself. I did message you with an error message I am getting when using "toLocal." I will continue to look into this myself, unless you know of this error.

@fitoprincipe I'm trying to do the same but match the outputs to what I do in google earth engine.
I'm after a multi-band tif with named bands the same as the following, but saved to the local disk rather than google drive
var batch = require('users/fitoprincipe/geetools:batch')
batch.Download.ImageCollection.toDrive(S2_AOI, 'EP',
                                      {name:ee.String(Name).cat("_{GRANULE_ID}"),region:inputShape,scale:10});

I have seen your suggestions, but toLocal() saves bands to individual tifs and there is no toLocal() for image collections.
Any tips would be appreciated.

You can try geemap. see https://geemap.org/notebooks/11_export_image

I didn't see the filePerBand parameter before.. how long has been there? 😆 🤦♂ thanks @giswqs! =)

Thanks for the suggestion - that's part way there.
I would also like to add the named bands as part of the export so the user can tell which band is which, to make like-for-like band selection easier later on down the track.
batch.imagecollection.toDrive() already does this and in QGIS it looks like this

Compared to geemap.ee_export_image()

As downloading large imagecollection to local requires your session to remain open a long time I decided to drop this functionality from v1. Instead you can download image collections to the Google supported platforms (GEE assets, GCS bucket and Google drive) using the function presented in this guide:
https://geetools.readthedocs.io/en/latest/usage/export.html


Streamline Boost tests for compiled libraries and add documentation on Boost module usage

Should hopefully close #145

We could improve the running time of tests by downloading the archive for Boost 1.59.0 only once and then pointing both tests to it. @bast do you think this is feasible?

Thanks Roberto. For the moment I am happy and if this becomes a problem we streamline further.

:wink:


VSCode CodeChecker plugin

It will be possible to execute the analysis from VSCode.
Findings will be marked over the source code with bug path steps.
It will be possible to configure the analysis execution from CodeChecker config files.

The development is in progress under this repository: CodecheckerVSCodePlugin


please demonstrate a new way now that heroku is not free anymore

please demonstrate a new way now that heroku is not free anymore

Pay for hosting?!!?!??!!~

Hey! You can use cyclic over at https://www.cyclic.sh/ works like a charm!

You can either set up a self-host proxy using another repository (https://github.com/lewisakura/webhook-proxy)
or use other free hosts, like https://webhook.newstargeted.com/


Try fixing ptlsbox environment

Might need a few resources moved around
Does this PR introduce a breaking change? (check one with "x")
[ ] Yes
[x] No

Plan Result (sandbox_enterprise)
No changes. Your infrastructure matches the configuration.

Plan Result (prod_video_hearings)
No changes. Your infrastructure matches the configuration.

Plan Result (prod_enterprise)
:warning: Resource Deletion will happen :warning:
This plan contains resource delete operation. Please check the plan result very carefully!
Plan: 15 to add, 0 to change, 15 to destroy.

Replace

module.subscription["DTS-CFTSBOX-INTSVC"].azuread_group_member.dts_operation_members
module.subscription["DTS-CFTSBOX-INTSVC"].azuread_group_member.members["Contributor-0"]
module.subscription["DTS-CFTSBOX-INTSVC"].azuread_group_member.members["Key Vault Administrator-0"]
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault.kv
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_access_policy.permissions
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.aks_admin_group_id
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.aks_user_group_id
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.sp_app_id
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.sp_object_id
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.sp_token
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["Key Vault Contributor"]
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["Storage Account Contributor"]
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["Storage Blob Data Contributor"]
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["User Access Administrator"]
module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_storage_account.sa

Change Result (Click me)

  # module.subscription["DTS-CFTSBOX-INTSVC"].azuread_group_member.dts_operation_members must be replaced
-/+ resource "azuread_group_member" "dts_operation_members" {
      ~ group_object_id  = "af66f4e5-bd36-4ad9-a265-d9e7c947cbab" -> "000f31d7-c041-4afe-8a2f-b1c8e9e6032d" # forces replacement
      ~ id               = "af66f4e5-bd36-4ad9-a265-d9e7c947cbab/member/2070d748-c35c-478f-a5ca-ec8a5c4ff10d" -> (known after apply)
        # (1 unchanged attribute hidden)
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azuread_group_member.members["Contributor-0"] must be replaced
-/+ resource "azuread_group_member" "members" {
      ~ id               = "b01634eb-45c1-40c6-8550-0d1b019a9a7e/member/af66f4e5-bd36-4ad9-a265-d9e7c947cbab" -> (known after apply)
      ~ member_object_id = "af66f4e5-bd36-4ad9-a265-d9e7c947cbab" -> "000f31d7-c041-4afe-8a2f-b1c8e9e6032d" # forces replacement
        # (1 unchanged attribute hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azuread_group_member.members["Key Vault Administrator-0"] must be replaced
-/+ resource "azuread_group_member" "members" {
      ~ id               = "459d4d36-2c15-464e-be9f-33398348d2ea/member/af66f4e5-bd36-4ad9-a265-d9e7c947cbab" -> (known after apply)
      ~ member_object_id = "af66f4e5-bd36-4ad9-a265-d9e7c947cbab" -> "000f31d7-c041-4afe-8a2f-b1c8e9e6032d" # forces replacement
        # (1 unchanged attribute hidden)
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault.kv must be replaced
-/+ resource "azurerm_key_vault" "kv" {
      ~ access_policy                   = [
          - {
              - application_id          = ""
              - certificate_permissions = []
              - key_permissions         = [
                  - "Get",
                  - "List",
                ]
              - object_id               = "cd61f617-1cfa-458d-820f-9f674f091f3a"
              - secret_permissions      = [
                  - "Get",
                  - "List",
                ]
              - storage_permissions     = []
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
          - {
              - application_id          = ""
              - certificate_permissions = [
                  - "Get",
                  - "List",
                  - "Update",
                  - "Create",
                  - "Import",
                  - "Delete",
                  - "Recover",
                  - "Backup",
                  - "Restore",
                  - "ManageContacts",
                  - "ManageIssuers",
                  - "GetIssuers",
                  - "ListIssuers",
                  - "SetIssuers",
                  - "DeleteIssuers",
                ]
              - key_permissions         = [
                  - "Get",
                  - "List",
                  - "Update",
                  - "Create",
                  - "Import",
                  - "Delete",
                  - "Recover",
                  - "Backup",
                  - "Restore",
                ]
              - object_id               = "fd709296-724b-4cf9-b3bb-733de9eceb8a"
              - secret_permissions      = [
                  - "Get",
                  - "List",
                  - "Set",
                  - "Delete",
                  - "Recover",
                  - "Backup",
                  - "Restore",
                ]
              - storage_permissions     = []
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
          - {
              - application_id          = ""
              - certificate_permissions = [
                  - "Backup",
                  - "Create",
                  - "Delete",
                  - "DeleteIssuers",
                  - "Get",
                  - "GetIssuers",
                  - "Import",
                  - "List",
                  - "ListIssuers",
                  - "ManageContacts",
                  - "ManageIssuers",
                  - "Recover",
                  - "Restore",
                  - "SetIssuers",
                  - "Update",
                ]
              - key_permissions         = [
                  - "Backup",
                  - "Create",
                  - "Decrypt",
                  - "Delete",
                  - "Encrypt",
                  - "Get",
                  - "Import",
                  - "List",
                  - "Recover",
                  - "Restore",
                  - "Sign",
                  - "UnwrapKey",
                  - "Update",
                  - "Verify",
                  - "WrapKey",
                ]
              - object_id               = "b01634eb-45c1-40c6-8550-0d1b019a9a7e"
              - secret_permissions      = [
                  - "Get",
                  - "Set",
                  - "List",
                  - "Delete",
                  - "Restore",
                  - "Recover",
                  - "Backup",
                ]
              - storage_permissions     = [
                  - "Backup",
                  - "Delete",
                  - "DeleteSAS",
                  - "Get",
                  - "GetSAS",
                  - "List",
                  - "ListSAS",
                  - "Recover",
                  - "RegenerateKey",
                  - "Restore",
                  - "Set",
                  - "SetSAS",
                  - "Update",
                ]
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
          - {
              - application_id          = ""
              - certificate_permissions = []
              - key_permissions         = []
              - object_id               = "dad693c4-36ad-468f-94e9-76faa4bc844b"
              - secret_permissions      = [
                  - "Get",
                  - "Set",
                  - "List",
                  - "Delete",
                  - "Restore",
                  - "Recover",
                  - "Backup",
                ]
              - storage_permissions     = []
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
          - {
              - application_id          = ""
              - certificate_permissions = []
              - key_permissions         = []
              - object_id               = "0ec60e03-4262-44ce-abcf-83e2131c9207"
              - secret_permissions      = [
                  - "Get",
                  - "Set",
                  - "List",
                ]
              - storage_permissions     = []
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
          - {
              - application_id          = ""
              - certificate_permissions = []
              - key_permissions         = []
              - object_id               = "46f87b41-2951-4c0e-95c0-f6b8bcafd024"
              - secret_permissions      = [
                  - "Get",
                  - "List",
                ]
              - storage_permissions     = []
              - tenant_id               = "531ff96d-0ae9-462a-8d2d-bec7c0b42082"
            },
        ] -> (known after apply)
      - enable_rbac_authorization       = false -> null
      - enabled_for_deployment          = false -> null
      - enabled_for_disk_encryption     = false -> null
      - enabled_for_template_deployment = false -> null
      ~ id                              = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" -> (known after apply)
        name                            = "c1497c3d7b51d03189ee3kv"
      ~ resource_group_name             = "azure-control-sbox-rg" -> "azure-control-ptlsbox-rg" # forces replacement
        tags                            = {
            "application"  = "core"
            "builtFrom"    = "hmcts/azure-enterprise"
            "businessArea" = "CFT"
            "criticality"  = "Low"
            "environment"  = "sandbox"
            "expiresAfter" = "3000-01-01"
        }
      ~ vault_uri                       = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/" -> (known after apply)
        # (6 unchanged attributes hidden)

      - network_acls {
          - bypass                     = "AzureServices" -> null
          - default_action             = "Allow" -> null
          - ip_rules                   = [] -> null
          - virtual_network_subnet_ids = [] -> null
        }

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_access_policy.permissions must be replaced
-/+ resource "azurerm_key_vault_access_policy" "permissions" {
      ~ id                      = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/objectId/b01634eb-45c1-40c6-8550-0d1b019a9a7e" -> (known after apply)
      ~ key_vault_id            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
        # (6 unchanged attributes hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.aks_admin_group_id must be replaced
-/+ resource "azurerm_key_vault_secret" "aks_admin_group_id" {
      ~ id                      = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/aks-admin-rbac-group-id/d8371fefb3d64249a78cf07349dab83d" -> (known after apply)
      ~ key_vault_id            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
        name                    = "aks-admin-rbac-group-id"
      ~ resource_id             = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/aks-admin-rbac-group-id/versions/d8371fefb3d64249a78cf07349dab83d" -> (known after apply)
      ~ resource_versionless_id = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/aks-admin-rbac-group-id" -> (known after apply)
      - tags                    = {} -> null
      ~ version                 = "d8371fefb3d64249a78cf07349dab83d" -> (known after apply)
      ~ versionless_id          = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/aks-admin-rbac-group-id" -> (known after apply)
        # (1 unchanged attribute hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.aks_user_group_id must be replaced
-/+ resource "azurerm_key_vault_secret" "aks_user_group_id" {
      ~ id                      = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/aks-user-rbac-group-id/c6221b7ba0c74cb2a1ed93949a044ca6" -> (known after apply)
      ~ key_vault_id            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
        name                    = "aks-user-rbac-group-id"
      ~ resource_id             = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/aks-user-rbac-group-id/versions/c6221b7ba0c74cb2a1ed93949a044ca6" -> (known after apply)
      ~ resource_versionless_id = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/aks-user-rbac-group-id" -> (known after apply)
      - tags                    = {} -> null
      ~ version                 = "c6221b7ba0c74cb2a1ed93949a044ca6" -> (known after apply)
      ~ versionless_id          = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/aks-user-rbac-group-id" -> (known after apply)
        # (1 unchanged attribute hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.sp_app_id must be replaced
-/+ resource "azurerm_key_vault_secret" "sp_app_id" {
      ~ id                      = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/sp-application-id/21fd29f5c0ab4b9eabeb7fc3fce71db2" -> (known after apply)
      ~ key_vault_id            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
        name                    = "sp-application-id"
      ~ resource_id             = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/sp-application-id/versions/21fd29f5c0ab4b9eabeb7fc3fce71db2" -> (known after apply)
      ~ resource_versionless_id = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/sp-application-id" -> (known after apply)
      - tags                    = {} -> null
      ~ version                 = "21fd29f5c0ab4b9eabeb7fc3fce71db2" -> (known after apply)
      ~ versionless_id          = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/sp-application-id" -> (known after apply)
        # (1 unchanged attribute hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.sp_object_id must be replaced
-/+ resource "azurerm_key_vault_secret" "sp_object_id" {
      ~ id                      = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/sp-object-id/e0383d31b4fb4f44bf7c8932eed9ddfc" -> (known after apply)
      ~ key_vault_id            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
        name                    = "sp-object-id"
      ~ resource_id             = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/sp-object-id/versions/e0383d31b4fb4f44bf7c8932eed9ddfc" -> (known after apply)
      ~ resource_versionless_id = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/sp-object-id" -> (known after apply)
      - tags                    = {} -> null
      ~ version                 = "e0383d31b4fb4f44bf7c8932eed9ddfc" -> (known after apply)
      ~ versionless_id          = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/sp-object-id" -> (known after apply)
        # (1 unchanged attribute hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_key_vault_secret.sp_token must be replaced
-/+ resource "azurerm_key_vault_secret" "sp_token" {
      ~ id                      = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/sp-token/8ec2fab38b55457892df9fe7781d8226" -> (known after apply)
      ~ key_vault_id            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
        name                    = "sp-token"
      ~ resource_id             = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/sp-token/versions/8ec2fab38b55457892df9fe7781d8226" -> (known after apply)
      ~ resource_versionless_id = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/secrets/sp-token" -> (known after apply)
      - tags                    = {} -> null
      ~ version                 = "8ec2fab38b55457892df9fe7781d8226" -> (known after apply)
      ~ versionless_id          = "https://c1497c3d7b51d03189ee3kv.vault.azure.net/secrets/sp-token" -> (known after apply)
        # (1 unchanged attribute hidden)
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["Key Vault Contributor"] must be replaced
-/+ resource "azurerm_role_assignment" "local_role_assignments" {
      ~ id                               = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv/providers/Microsoft.Authorization/roleAssignments/174973a9-63ac-c9a3-5f01-5c32caaf481e" -> (known after apply)
      ~ name                             = "174973a9-63ac-c9a3-5f01-5c32caaf481e" -> (known after apply)
      ~ principal_type                   = "Group" -> (known after apply)
      ~ role_definition_id               = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/providers/Microsoft.Authorization/roleDefinitions/f25e0fa2-a7c8-4377-a976-54943a77a395" -> (known after apply)
      ~ scope                            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.KeyVault/vaults/c1497c3d7b51d03189ee3kv" # forces replacement -> (known after apply)
      + skip_service_principal_aad_check = (known after apply)
        # (2 unchanged attributes hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["Storage Account Contributor"] must be replaced
-/+ resource "azurerm_role_assignment" "local_role_assignments" {
      ~ id                               = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.Storage/storageAccounts/c1497c3d7b51d03189ee3sa/providers/Microsoft.Authorization/roleAssignments/56f62777-f91b-f2af-e213-12cdcedacf7c" -> (known after apply)
      ~ name                             = "56f62777-f91b-f2af-e213-12cdcedacf7c" -> (known after apply)
      ~ principal_type                   = "Group" -> (known after apply)
      ~ role_definition_id               = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/providers/Microsoft.Authorization/roleDefinitions/17d1049b-9a84-46fb-8f53-869881c3d3ab" -> (known after apply)
      ~ scope                            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.Storage/storageAccounts/c1497c3d7b51d03189ee3sa" # forces replacement -> (known after apply)
      + skip_service_principal_aad_check = (known after apply)
        # (2 unchanged attributes hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["Storage Blob Data Contributor"] must be replaced
-/+ resource "azurerm_role_assignment" "local_role_assignments" {
      ~ id                               = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.Storage/storageAccounts/c1497c3d7b51d03189ee3sa/providers/Microsoft.Authorization/roleAssignments/0d141d04-b194-b929-ad99-998e7a72e4da" -> (known after apply)
      ~ name                             = "0d141d04-b194-b929-ad99-998e7a72e4da" -> (known after apply)
      ~ principal_type                   = "Group" -> (known after apply)
      ~ role_definition_id               = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/providers/Microsoft.Authorization/roleDefinitions/ba92f5b4-2d11-453d-a403-e96b0029c9fe" -> (known after apply)
      ~ scope                            = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.Storage/storageAccounts/c1497c3d7b51d03189ee3sa" # forces replacement -> (known after apply)
      + skip_service_principal_aad_check = (known after apply)
        # (2 unchanged attributes hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_role_assignment.local_role_assignments["User Access Administrator"] must be replaced
-/+ resource "azurerm_role_assignment" "local_role_assignments" {
      ~ id                               = "/subscriptions/1497c3d7-ab6d-4bb7-8a10-b51d03189ee3/providers/Microsoft.Authorization/roleAssignments/469d15df-37a8-04a5-a5e5-b58f7a0eb84b" -> (known after apply)
      ~ name                             = "469d15df-37a8-04a5-a5e5-b58f7a0eb84b" -> (known after apply)
      ~ principal_id                     = "af66f4e5-bd36-4ad9-a265-d9e7c947cbab" -> "000f31d7-c041-4afe-8a2f-b1c8e9e6032d" # forces replacement
      ~ principal_type                   = "Group" -> (known after apply)
      ~ role_definition_id               = "/subscriptions/1497c3d7-ab6d-4bb7-8a10-b51d03189ee3/providers/Microsoft.Authorization/roleDefinitions/18d7d88d-d35e-4fb5-a5c3-7773c20a72d9" -> (known after apply)
      + skip_service_principal_aad_check = (known after apply)
        # (2 unchanged attributes hidden)

      - timeouts {}
    }

  # module.subscription["DTS-CFTSBOX-INTSVC"].azurerm_storage_account.sa must be replaced
-/+ resource "azurerm_storage_account" "sa" {
      ~ access_tier                       = "Hot" -> (known after apply)
      ~ id                                = "/subscriptions/04d27a32-7a07-48b3-95b8-3c8691e1a263/resourceGroups/azure-control-sbox-rg/providers/Microsoft.Storage/storageAccounts/c1497c3d7b51d03189ee3sa" -> (known after apply)
      + large_file_share_enabled          = (known after apply)
        name                              = "c1497c3d7b51d03189ee3sa"
      ~ primary_access_key                = (sensitive value)
      ~ primary_blob_connection_string    = (sensitive value)
      ~ primary_blob_endpoint             = "https://c1497c3d7b51d03189ee3sa.blob.core.windows.net/" -> (known after apply)
      ~ primary_blob_host                 = "c1497c3d7b51d03189ee3sa.blob.core.windows.net" -> (known after apply)
      ~ primary_connection_string         = (sensitive value)
      ~ primary_dfs_endpoint              = "https://c1497c3d7b51d03189ee3sa.dfs.core.windows.net/" -> (known after apply)
      ~ primary_dfs_host                  = "c1497c3d7b51d03189ee3sa.dfs.core.windows.net" -> (known after apply)
      ~ primary_file_endpoint             = "https://c1497c3d7b51d03189ee3sa.file.core.windows.net/" -> (known after apply)
      ~ primary_file_host                 = "c1497c3d7b51d03189ee3sa.file.core.windows.net" -> (known after apply)
      ~ primary_location                  = "uksouth" -> (known after apply)
      ~ primary_queue_endpoint            = "https://c1497c3d7b51d03189ee3sa.queue.core.windows.net/" -> (known after apply)
      ~ primary_queue_host                = "c1497c3d7b51d03189ee3sa.queue.core.windows.net" -> (known after apply)
      ~ primary_table_endpoint            = "https://c1497c3d7b51d03189ee3sa.table.core.windows.net/" -> (known after apply)
      ~ primary_table_host                = "c1497c3d7b51d03189ee3sa.table.core.windows.net" -> (known after apply)
      ~ primary_web_endpoint              = "https://c1497c3d7b51d03189ee3sa.z33.web.core.windows.net/" -> (known after apply)
      ~ primary_web_host                  = "c1497c3d7b51d03189ee3sa.z33.web.core.windows.net" -> (known after apply)
      ~ resource_group_name               = "azure-control-sbox-rg" -> "azure-control-ptlsbox-rg" # forces replacement
      ~ secondary_access_key              = (sensitive value)
      + secondary_blob_connection_string  = (sensitive value)
      + secondary_blob_endpoint           = (known after apply)
      + secondary_blob_host               = (known after apply)
      ~ secondary_connection_string       = (sensitive value)
      + secondary_dfs_endpoint            = (known after apply)
      + secondary_dfs_host                = (known after apply)
      + secondary_file_endpoint           = (known after apply)
      + secondary_file_host               = (known after apply)
      + secondary_location                = (known after apply)
      + secondary_queue_endpoint          = (known after apply)
      + secondary_queue_host              = (known after apply)
      + secondary_table_endpoint          = (known after apply)
      + secondary_table_host              = (known after apply)
      + secondary_web_endpoint            = (known after apply)
      + secondary_web_host                = (known after apply)
        tags                              = {
            "application"  = "core"
            "builtFrom"    = "hmcts/azure-enterprise"
            "businessArea" = "CFT"
            "criticality"  = "Low"
            "environment"  = "sandbox"
            "expiresAfter" = "3000-01-01"
        }
        # (16 unchanged attributes hidden)

      - blob_properties {
          - change_feed_enabled           = false -> null
          - change_feed_retention_in_days = 0 -> null
          - last_access_time_enabled      = false -> null
          - versioning_enabled            = false -> null

          - delete_retention_policy {
              - days = 7 -> null
            }
        }

      - network_rules {
          - bypass                     = [
              - "AzureServices",
            ] -> null
          - default_action             = "Allow" -> null
          - ip_rules                   = [] -> null
          - virtual_network_subnet_ids = [] -> null
        }

      - queue_properties {
          - hour_metrics {
              - enabled               = true -> null
              - include_apis          = true -> null
              - retention_policy_days = 7 -> null
              - version               = "1.0" -> null
            }
          - logging {
              - delete                = false -> null
              - read                  = false -> null
              - retention_policy_days = 0 -> null
              - version               = "1.0" -> null
              - write                 = false -> null
            }
          - minute_metrics {
              - enabled               = false -> null
              - include_apis          = false -> null
              - retention_policy_days = 0 -> null
              - version               = "1.0" -> null
            }
        }

      - share_properties {
          - retention_policy {
              - days = 7 -> null
            }
        }

      - timeouts {}
    }

Plan: 15 to add, 0 to change, 15 to destroy.


Caps Lock permanently disabled if PowerToys isn't running.

Microsoft PowerToys version
0.68.0, been happening since 0.63
Installation method
GitHub, PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
Keyboard Manager
Steps to reproduce
I have had this bug for probably over 6 months and I do not remember how to replicate it nor how it started.
My best guess would be to rebind caps lock to another key, save it, delete that bind then see if caps lock comes back as undefined when typed because that's what happens for me. I have had this issue consistently. with many. different. keyboards.
The one time I saw someone report something close to this, it was shrugged off as "oh, your keyboard's firmware is messed up" which is not possibly the case here. Here is my Bug Report file: PowerToysReport_2023-03-18-23-17-54.zip

✔ Expected Behavior
I expected the Caps Lock key to work even if Keyboard Manager (KM) isn't enabled.
I also expected Caps Lock to show up as Caps Lock when typed in KM.
❌ Actual Behavior
Caps Lock refuses to function if KM isn't running and shows up as "Undefined" when typed into KM.
Other Software
No response

So, update:
I just updated to 0.7.0 and it seems to have added a new bug.
With KM enabled, if I held LCtrl and held Space, it would register as "   " / 0xFF or Caps Lock as you can see below.

Fully exiting PowerToys as a whole fixes BOTH issues.

Is this issue still relevant in v0.73? /needinfo

No, It seemed to be an issue with my install of Windows 11 because I reset
my PC and re-installed PowerToys and it works flawlessly now. I'm gonna
assume this was a niche one-off issue just for me.
On Wed, Sep 20, 2023 at 1:11 PM Joseph Finney @.***>
wrote:

Is this issue still relevant in v0.73? /needinfo
—
Reply to this email directly, view it on GitHub
https://github.com/microsoft/PowerToys/issues/24899#issuecomment-1728360842,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AL4ESO36A6TJKCKBC3RS52LX3NEWHANCNFSM6AAAAAAV75LZZA
.
You are receiving this because you authored the thread.Message ID:
@.***>


Generating keys for Quorum nodes

Hello guys ,
Im trying to build a quorum network from scratch, and im trying to get inspired by the 7 nodes example of quorum-examples.
Here is what i did :
I used the Quorum-Genesis utility in order to create the genesis file. Then i have set up my bootnode and saved its key and enode address to use it later when starting my nodes .
Then i wanted to make an init.sh and start.sh scripts similar to those in the 7 nodes example in order to make it easier to start my network. However i found some issues.
In the 7 nodes example there is a folder called "keys" which contains the UTC files for all the accounts specified in the genesis.json file also it has the public keys,private keys  and archival keys to start constellations . I don't understand how am i supposed to generate all those keys???? and obviously i need those public keys and archival keys in order to populate the "tm.conf" files so i can start my constellations later by doing :
constellation-node tm.conf.
If anyone could clarify this for me i would really appreciate it,
thank you .

The command to generate constellation key pairs is constellation-node --generatekeys=foo (will create foo.pub and foo.key).


Capture all open tabs

Although this is a great effort thus far, it would be even better if you could capture the group of tab's URLs and dump them into org mode. I sometimes have 50+ tabs open and capturing each ones URL individually is not practical.

I like the idea but don't know how to integrate it nicely within current UI without degrading usability for people who capture one page at a time. Do you have suggestions?
One possibility would be to add an options panel where one could choose whether to capture one tab or all tabs, or to add a special keybinding for that. Would you like to write such a panel?

Thanks for your reply. Yes I agree it may be difficult to add to the current UI. Maybe either a key binding, or how about holding down a key while clicking the capture button? For example hold down shift and click the button to capture all open tabs in the window where you click. Then the list of tab URLs gets added to the org capture.
Anyway, just a suggestion, I already find it really useful as it is :)

Thanks 👍
Sounds like a good solution. A pull request would be welcome. Otherwise, I'll probably eventually implement it... :-)

Coming back to this, I'd like to ask - do you think that having such a feature justifies adding a "tabs" permission to the extension (users need to accept that extension can "monitor your activity")?

You can do this with the "Copy all URLs" extension (ID: djdmadneanknadilpjiknlnanaolmbfk).  Use this as the custom format (note the linebreak):
- [[$url][$title]]


Tests failing with stack overflow

Repro
I'm trying to get ramped up to contribute to this project, and looked at .travis.yml to figure out how to run the tests:
$ git submodule update --init --recursive
$ RUST_BACKTRACE=full cargo test --color always --all --all-features

(lots of passing tests)

test test262::golden::6b36b5ad4f3ad84d.js ... ok
test test262::golden::6b0e8bbdc3dca1c5.js ... ok

thread 'test262::golden::6b5e7e125097d439.js' has overflowed its stack
fatal runtime error: stack overflow
error: process didn't exit successfully: `/Users/mistewar/fpe/swc/swc/target/debug/deps/test262-58b8bbdf62b82a29` (signal: 6, SIGABRT: process abort signal)

It looks like the tests are passing on TravisCI, so it could be that I'm running these on OSX?
(NOTE: I had to fix #354 to be able to run the tests)
Versions:
$ cargo --version
cargo 1.35.0-nightly (0e35bd8af 2019-03-13)

$ rustc --version
rustc 1.35.0-nightly (82e2f3ec2 2019-03-20)

$ jest --version
24.5.0

I had to ignore these tests:
"6b5e7e125097d439.js",
"714be6d28082eaa7.js",
"882910de7dd1aef9.js",
"dd3c63403db5c06e.js",

in ecmascript/parser/tests/test262.rs, ecmascript/codegen/tests/test262.rs, and ecmascript/transforms/tests/fixer.rs, and now the tests are all running and passing

Use RUST_MIN_STACK=16777216


Add Hub deployment

I thought we were getting crashes.  @ethancheez does this work with crash?  Should we merge it here or spin into a separate reference?

I thought we were getting crashes.  @ethancheez does this work with crash?  Should we merge it here or spin into a separate reference?

No crashes, but not all RPi telemetries can be seen in the GDS.
I still prefer this to be separate from main because this Hub work was experimental.


Nodejs Log correlation bug: only reports the root spanID of trace

What version of OpenTelemetry are you using?
"@opentelemetry/api": "^1.8.0",
"@opentelemetry/api-logs": "^0.50.0",
"@opentelemetry/auto-instrumentations-node": "^0.43.0",
"@opentelemetry/core": "^1.22.0",
"@opentelemetry/exporter-jaeger": "^1.22.0",
"@opentelemetry/exporter-logs-otlp-http": "^0.50.0",
"@opentelemetry/exporter-trace-otlp-grpc": "^0.50.0",
"@opentelemetry/exporter-trace-otlp-http": "^0.49.1",
"@opentelemetry/instrumentation": "^0.50.0",
"@opentelemetry/instrumentation-winston": "^0.36.0",
"@opentelemetry/otlp-exporter-base": "^0.49.1",
"@opentelemetry/resources": "^1.22.0",
"@opentelemetry/sdk-logs": "^0.50.0",
"@opentelemetry/sdk-node": "^0.49.1",
"@opentelemetry/sdk-trace-node": "^1.22.0",
"@opentelemetry/semantic-conventions": "^1.22.0",
"@opentelemetry/winston-transport": "^0.2.0",

What version of Node are you using?
21.7.3
What did you do?
new NodeSDK({
    traceExporter: getOtelTraceExporter({ url: traceExportUrl }, errorSilent),
    instrumentations: [
      nodeInstrumentation,
      new WinstonInstrumentation({
        logHook: (span, record) => {
          record["service_name"] = serviceName;
        },
      }),
    ],
    resource: new Resource({
      [SEMRESATTRS_SERVICE_NAME]: serviceName,
    }),
  });

with
const loggerProvider = new LoggerProvider();
  loggerProvider.addLogRecordProcessor(
    new BatchLogRecordProcessor(
      new OTLPLogExporter({
        url: exportUrl,
        headers: { serviceName: service },
      }),
    ),
  );
  logsAPI.logs.setGlobalLoggerProvider(loggerProvider);

  const winston = require("winston");
  const { messageFormat, timestampFormat } = require("./formats");

  return winston.createLogger({
    level: "info", // Log only info and above. Change to 'debug' for more detailed logs.
    format: winston.format.combine(
      winston.format.timestamp(),
      winston.format.colorize(),
      messageFormat,
      timestampFormat,
      winston.format.printf(
        ({ level, message }: { level: string; message: any }) =>
          `[${level}] ${message}`,
      ),
    ),
    transports: [
      new winston.transports.Console(),
      // @ts-ignore ongoing solved typing issue: https://github.com/open-telemetry/opentelemetry-js-contrib/issues/2015
      // new OpenTelemetryTransportV3(),
    ],
  });

and
app.get("/protected", async (req, res) => {
    const span = tracer.startSpan("Route: /protected");
    logger.info("Route: /protected");
    await sleep(500);
    res.send("Protected");
    span.end();
  });

What did you expect to see?
Log attribute should display spanID of its immediate span
What did you see instead?
Log attribute showing the spanID of the trace's root span. Isn't this kinda useless if we just get two IDs of the same level?

My bad. context management error. Rookie mistake


convert to unix line endings

This isn't really a practical change. It's best to have git / the editor convert this for you.


feat(backend):  Figure out how to get the user's animelist

What feature does this satisfy?
Describe the feature

[ ] Data function to set username property inside a user's document in the database db.
[ ] Route to set username and return the user document.

Additional context
Recommended/suggested endpoints (please modify as you see fit when working on the issue):
To be edited

Moved to other issue.


Possibly convert from mixin-based multiple-inheritance to an implementation using Proxy.

Based on my implementation here.

If we decide not to do this, then we shall do https://github.com/infamous/infamous/issues/50.


Use Tiller/Helm ServiceAccount  (RBAC)

Currently is not possible to define serviceAccount for draft, so it will use default one in whatever namespace command is run. This cause troubles when running draft as part of CI/CD.

using gitlab-runner in namespace testing for CI
in last CI step this happens:

$ draft init --client-only
Creating /root/.draft
Creating /root/.draft/plugins
Creating /root/.draft/packs
Creating pack gradle...
Creating pack python...
Creating pack go...
Creating pack php...
Creating pack ruby...
Creating pack javascript...
Creating pack java...
Creating pack csharp...
$DRAFT_HOME has been configured at /root/.draft.
Skipped installing Draft's server side component in Kubernetes due to 'client-only' flag having been set
Happy Sailing!
$ draft up
Error: User "system:serviceaccount:testing:default" cannot list pods in the namespace "kube-system". (get pods)
ERROR: Job failed: error executing remote command: command terminated with non-zero exit code: Error executing in Docker Container: 1

Even out of CI/CD system draft may need to deploy to different name-spaces (like Helm)
I edited draftd deployment and added:
serviceAccount: tiller
serviceAccountName: tiller

but got same error
Is there any workaround?

Hey! You should be able to follow the steps as mentioned in https://github.com/Azure/draft/issues/358#issuecomment-336495386. Draft is deployed as a bunch of kubernetes resources so you can hack around this by deploying your own custom resources.

@bacongobbler I already tried to add serviceAccount: tiller to draftd deployment in kube-system (it saves and apply without complains) but I get same error.
Can you point me where do you suggest I modify this?
Thanks

To be clear, my goal is to be able to use draft for CD, so running 'draft' cli in namespaceA must be able to deploy/upgrade app in any other namespace (like helm does)

I don't have any suggestions, but if you get it working then please let us know and we can document it. :)

I will!
This is my only blocker to use draft in my CI/CD workflow in ACS
@backpackerjmk is this not a common use case for draft?

not necessarily. It's more designed as a dev tool to hack on your app. It's better to use helm for your CI/CD pipeline, which is what Draft uses under the covers. See the linked design doc for more background. :)

@bacongobbler then Draft readme must be edited to clear this confusion, I quote:
"Once the developer is happy with changes made via Draft, they commit and push to version control, after which a continuous integration (CI) system takes over. Draft builds upon Kubernetes Helm and the Kubernetes Chart format, making it easy to construct CI pipelines from Draft-enabled applications."

Ah, yes. That sentences was intended to say that once you're happy with the app on which you're working, you'd push that code to git and a webhook would kick of a CI/CD build/testing/staging process -- not draft itself.
Does that make sense? Ultimately, the result of draft usage is code+dockerfile+chart, which is the full complement of artifacts necessary to build, contain, stash images, and deploy images with service configuration.

for me the wording means draft can be used for the whole cycle
On Sat, 4 Nov 2017 at 02:43 Ralph Squillace<EMAIL_ADDRESS>wrote:

Ah, yes. That sentences was intended to say that once you're happy with
the app on which you're working, you'd push that code to git and a webhook
would kick of a CI/CD build/testing/staging process -- not draft itself.
Does that make sense? Ultimately, the result of draft usage is
code+dockerfile+chart, which is the full complement of artifacts necessary
to build, contain, stash images, and deploy images with service
configuration.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Azure/draft/issues/404#issuecomment-341863120, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAGGV8k6EiAKcPmtfPnrXRrdKzDiDORXks5sy8EqgaJpZM4P99jz
.


scikit based training and prediction

Hi,  is the scikit train/prediction usable? The document has a TBD on it so not sure what steps to follow - I'll explore, but if you can give some starting guidance it will be faster. I'd prefer to use scikit compared to octave. Thanks.

got the scikit version working. Thanks.


Some annotations for your plugins

Finally, I got your plugin working and I must tell you that I really appreciate your work as part of an open source project. Now, after testing both, the Firefox and the Chrome plugin, I would like to ask you some questions:

Why is there no option to define the URL of the Chrome extension file on the Jitsi Meet server? When using Firefox I can set a link to my XPI file, but with Chrome's CRX I can not. Even if the CRX would have been installed instantly after downloading it, it should be possible to inform the user to right click and save it to a certain location of the current PC.

In Chrome you are able to share the whole screen, but with the Firefox Addon only Windows can be streamed to the other person. Is this due to the Firefox API or could you also implement a feature to share the whole screen with the Firefox Plugin?

Thank you so much for your work
I'm looking forward to your reply

Please use the mailinglist for discussing things and asking questions before creating issues.

jidesha for chrome is supposed to be installed in Chrome webstore, and it is automatically downloaded and installed from there depending the id that is set in the config file. Sending CRX file is the way to go doing it by hand and as there is automatic way of downloading stuff there is no implementation currently for downloading and installing by hand by users. Any patches are welcome.
That behavior is browser specific and how they implemented desktop sharing.


automate renewal of SSL certificates

Describe the bug
Users cannot login
To Reproduce
Steps to reproduce the behavior:
wait until cert expires and try to authenticate
Expected behavior
If possible, schedule automatic renewal so we're not surprised by this
Desktop (please complete the following information):
Any browser, any platform

@jkunze Are we using certbot on the production server?

@cr625 isn't this automated? does it need another look?


RunTotal on PivotData

Looked around for a couple hours. Just wondering if your module currently supports putting a value field setting "show value as" for the pivotdata values. I am trying to view the running total specifically. For now I am just making the change manually as I could not figure out how to change the extra value field setting in an automated fashion.
Hope this makes sense. I tried briefly looking at this, but I need to learn more about EPPlus, because I couldn't figure out how to set this data on my PivotTable other than manually at this point
https://www.epplussoftware.com/docs/5.1/api/OfficeOpenXml.Table.PivotTable.eShowDataAs.html
Thanks for your module makes my life much easier! Hoping I just need to know how to format data correctly using the -pivotdata parameter and maybe you can provide an example.

Please could you post a small sample of the input data and how you are using Export-Excel to create the sheet and also post the xlsx with the pivot table updated how you would like it.

Hope this works. New to Github as well.
` function Get-RandomDateBetween{
<#
.EXAMPLE
Get-RandomDateBetween -StartDate (Get-Date) -EndDate (Get-Date).AddDays(15)
#>
[Cmdletbinding()]
param(
[parameter(Mandatory=$True)][DateTime]$StartDate,
[parameter(Mandatory=$True)][DateTime]$EndDate
)
    process{
       return Get-Random -Minimum $StartDate.Ticks -Maximum $EndDate.Ticks | Get-Date -Format d
    }
}

function Get-RandomTimeBetween{
  <#
    .EXAMPLE
    Get-RandomTimeBetween -StartTime "08:30" -EndTime "16:30"
    #>
     [Cmdletbinding()]
    param(
        [parameter(Mandatory=$True)][string]$StartTime,
        [parameter(Mandatory=$True)][string]$EndTime
        )
    begin{
        $minuteTimeArray = @("00","15","30","45")
    }
    process{
        $rangeHours = @($StartTime.Split(":")[0],$EndTime.Split(":")[0])
        $hourTime = Get-Random -Minimum $rangeHours[0] -Maximum $rangeHours[1]
        $minuteTime = "00"
        if($hourTime -ne $rangeHours[0] -and $hourTime -ne $rangeHours[1]){
            $minuteTime = Get-Random $minuteTimeArray
            return "${hourTime}:${minuteTime}"
        }
        elseif ($hourTime -eq $rangeHours[0]) { # hour is the same as the start time so we ensure the minute time is higher
            $minuteTime = $minuteTimeArray | ?{ [int]$_ -ge [int]$StartTime.Split(":")[1] } | Get-Random # Pick the next quarter
            #If there is no quarter available (eg 09:50) we jump to the next hour (10:00)
            return (.{If(-not $minuteTime){ "${[int]hourTime+1}:00" }else{ "${hourTime}:${minuteTime}" }})

        }else { # hour is the same as the end time
            #By sorting the array, 00 will be pick if no close hour quarter is found
            $minuteTime = $minuteTimeArray | Sort-Object -Descending | ?{ [int]$_ -le [int]$EndTime.Split(":")[1] } | Get-Random
            return "${hourTime}:${minuteTime}"
        }
    }
}

#create data
while ($i -lt 40){
$user = ('UserA', 'UserB', 'UserC' | Get-Random)
$group = ('GroupA', 'GroupB' | Get-Random)
[datetime]$randdate = Get-RandomDateBetween -StartDate (Get-Date).AddDays(-15) -EndDate (Get-Date)
$outtime = $randdate + (Get-RandomTimeBetween -StartTime "08:30" -EndTime "9:30")
$intime = $randdate + (Get-RandomTimeBetween -StartTime "19:30" -EndTime "23:30")
$Datetime =
    $test += @(
    [pscustomobject]@{User=$user;Group=$Group;Date=$randdate;Time=$outtime;Direction='1'}
    )
    $test += @(
    [pscustomobject]@{User=$user;Group=$Group;Date=$randdate;Time=$intime;Direction='-1'}
    )
$i++
}

$test | Export-Excel -path 'C:\Users\Brad\Documents\test.xlsx' -KillExcel -WorkSheetname "Testpt1" -ClearSheet -IncludePivotChart -PivotChartType ColumnStacked -PivotRows 'Time' -PivotColumns 'Group' -PivotData @{"Direction"="Sum"}`

ShowValueasRunningTotalTime.xlsx
test.xlsx

Yeah, the EPPlus library I use to create the xlsx does not support that. The new EPPlus lib does, lot's of breaking changes and they require a paid license to use it in a business setting. So, at the moment that cannot be accomplished.

Totally understand. Thanks for the fast feedback!


Improve display quality on desktop platform

This is a previously reported issue in Skia/Xamarin/Chrome. There are several topics about this, for example: https://bugs.chromium.org/p/chromium/issues/detail?id=562162
So far it is not considered a bug, it is the expected operation of the Linear algorithm. As you yourself suggested, the best choice is to switch to Cubic. We did performance tests and there was no impact. However, we will refuse your pull request as the values of parameters B and C are not ideal. Instead, we opted for Mitchell (B = 1/3, C = 1/3), which is Skia's default Cubic. Learn more about Cubic: https://entropymine.com/imageworsener/bicubic/


Rename all operators that are duplicates of static operators to xWith variants

concat -> concatWith
zip -> zipWith
merge -> mergeWith
etc.
Related #3798

The plan here, of course, is to add aliases and deprecations in the short term.

Go for it, one thing less that can cause confusion. While at this, can you make it so that (Not sure this is possible at all) the old operators can't be found anymore by the auto-import tools in editors?
Every now and then I lose a bit of time because my auto-import tool imported the wrong thing.

I ran into this over the weekend, and spent several hours trying to work out why concat wasn't working as expected when I was inadvertently importing the rxjs/operators one. Semantically, I think using ...With is clearer too.

As someone that spends a fair bit of time introducing people to rxjs, this is an early pain point. While the two import locations make sense once you're experienced, it's something that seems really arbitrary early on, and the type errors you get from it are not helpful or enlightening to beginners. And even for experienced users it degrades the editor experience... Would be awesome to see fixed in v7!

I think renaming them is a good idea because this confusion keeps popping on StackOverflow regularly and from the error it throws it's not obvious what you're doing wrong.

I'm now thinking if when some static operators like merge are marked as deprecated does this issue mean that they won't be deprecated and just renamed?

@benlesh
Is the renaming still a thing? I really really hope so!!!!

Following things should be considered:

combineLatest, merge, concat, zip got deprecated in version 6.0.0-rc.0 and should be removed
race got deprecated in version 6.2.0 and should be removed

Closing this because it has been done - except for onErrorResumeNext which is going to be removed entirely.


[Release 1.23] Fix dualStack test

Backport: https://github.com/k3s-io/k3s/pull/6245
Issue: https://github.com/k3s-io/k3s/issues/6249

Codecov Report
Base: 9.80% // Head: 9.80% // No change to project coverage :thumbsup:

Coverage data is based on head (62b1e87) compared to base (39361a8).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff              @@
##           release-1.23   #6251   +/-   ##
============================================
  Coverage          9.80%   9.80%
============================================
  Files               138     138
  Lines             10083   10083
============================================
  Hits                989     989
  Misses             8890    8890
  Partials            204     204

Flag
Coverage Δ

unittests
9.80% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add crayon

Terminal string styling with expressive api and 256/TrueColor support.
Project URL

https://github.com/jianstm/Crayon
Category

Command Line
Description

Add Crayon to Command Line category.
Why it should be included to awesome-ios (mandatory)
I think more and more people will use swift to build cli apps, but there is not a good choice for terminal string styling.  Existing libraries either do too much or not enough. Some's api is verbose; some extend String, which will cause naming collision; some doesn't support 256/TrueColor. I miss chalk in javascript, so i write Crayon.
Checklist

[x] Only one project/change is in this pull request
[x] Has unit tests, integration tests or UI tests
[x] Addition in chronological order (bottom of category)
[x] Supports iOS 9 / tvOS 10 or later
[x] Supports Swift 4 or later
[x] Has a commit from less than 2 years ago
[x] Has a clear README in English

          1 Warning

:warning:
Found 1 link issue, a project collaborator will take care of these, thanks :)

Link issue by awesome_bot

Line
Status
Link

1594
301
https://github.com/facebook/facebook-sdk-swift redirects tohttps://github.com/facebook/facebook-swift-sdk

  Generated by :no_entry_sign: Danger


iOS foreground app can not receive notifications

I have setup awesome_notifications step by step, build app successfully, everything work well in Android, but in iOS, I only received notifications push from server (by firebase), but cannot receive notifications when the app is in foreground. Kindly help out in fixing this issue.
Thanks in advance

Please, check if this topic can help you:
https://github.com/rafaelsetragni/awesome_notifications/issues/41

Please, check if this topic can help you:
#41
Thank you, but I can not find the answer for my case :(


Any plans to change the license?

Amazing work, guys!
Do you have any plans to migrate it to a more permissive license?

Hi mode89,
That's a great idea, we may migrate some other platform in the future. However, for now we are focusing on helping everyone getting start with Livox Lidar.