text:
Some pytests not found for flake8 during execution

Clone, configure everything as described in https://github.com/microsoft/PTVS/issues/5598
Run all tests
Output window:
[8/16/2019 12:48:42.934 PM Error] ERROR: not found: C:\Users\huvalo\source\repos\flake8\tests\unit\test_utils.py::test_invalid_file_list[f.py:E,g.pyf.py::]
[8/16/2019 12:48:42.934 PM Error] (no name 'C:\\Users\\huvalo\\source\\repos\\flake8\\tests\\unit\\test_utils.py::test_invalid_file_list[f.py:E,g.pyf.py::]' in any of [<Module tests/unit/test_utils.py>])
[8/16/2019 12:48:42.934 PM Error] ERROR: not found: C:\Users\huvalo\source\repos\flake8\tests\unit\test_utils.py::test_parse_files_to_codes_mapping[f.py: E/ng.py: F\n-expected7]
[8/16/2019 12:48:42.935 PM Error] (no name 'C:\\Users\\huvalo\\source\\repos\\flake8\\tests\\unit\\test_utils.py::test_parse_files_to_codes_mapping[f.py: E/ng.py: F\\n-expected7]' in any of [<Module tests/unit/test_utils.py>])
[8/16/2019 12:48:42.935 PM Error] ERROR: not found: C:\Users\huvalo\source\repos\flake8\tests\unit\test_utils.py::test_parse_files_to_codes_mapping[f.py:/n    E,F/ng.py:\n    G,H-expected9]
[8/16/2019 12:48:42.940 PM Error] (no name 'C:\\Users\\huvalo\\source\\repos\\flake8\\tests\\unit\\test_utils.py::test_parse_files_to_codes_mapping[f.py:/n    E,F/ng.py:\\n    G,H-expected9]' in any of [<Module tests/unit/test_utils.py>])
[8/16/2019 12:48:42.940 PM Error] ERROR: not found: C:\Users\huvalo\source\repos\flake8\tests\unit\test_utils.py::test_parse_unified_diff[diff --git a/flake8/utils.py b/flake8/utils.py/nindex f6ce384..7cd12b0 100644/n--- a/flake8/utils.py/n+++ b/flake8/utils.py/n@@ -75,8 +75,8 @@ def stdin_get_value():/n     return cached_value.getvalue()/n /n /n-def parse_unified_diff():/n-    # type: () -> List[str]/n+def parse_unified_diff(diff=None):/n+    # type: (str) -> List[str]/n     """Parse the unified diff passed on stdin./n /n     :returns:/n@@ -84,7 +84,10 @@ def parse_unified_diff():/n     :rtype:/n         dict/n     """/n-    diff = stdin_get_value()/n+    # Allow us to not have to patch out stdin_get_value/n+    if diff is None:/n+        diff = stdin_get_value()/n+/n     number_of_rows = None/n     current_path = None/n     parsed_paths = collections.defaultdict(set)/ndiff --git a/tests/fixtures/diffs/single_file_diff b/tests/fixtures/diffs/single_file_diff/nnew file mode 100644/nindex 0000000..77ca534/n--- /dev/null/n+++ b/tests/fixtures/diffs/single_file_diff/n@@ -0,0 +1,27 @@/n+diff --git a/flake8/utils.py b/flake8/utils.py/n+index f6ce384..7cd12b0 100644/n+--- a/flake8/utils.py/n++++ b/flake8/utils.py/n+@@ -75,8 +75,8 @@ def stdin_get_value():/n+     return cached_value.getvalue()/n+/n+/n+-def parse_unified_diff():/n+-    # type: () -> List[str]/n++def parse_unified_diff(diff=None):/n++    # type: (str) -> List[str]/n+     """Parse the unified diff passed on stdin./n+/n+     :returns:/n+@@ -84,7 +84,10 @@ def parse_unified_diff():/n+     :rtype:/n+         dict/n+     """/n+-    diff = stdin_get_value()/n++    # Allow us to not have to patch out stdin_get_value/n++    if diff is None:/n++        diff = stdin_get_value()/n++/n+     number_of_rows = None/n+     current_path = None/n+     parsed_paths = collections.defaultdict(set)/ndiff --git a/tests/fixtures/diffs/two_file_diff b/tests/fixtures/diffs/two_file_diff/nnew file mode 100644/nindex 0000000..5bd35cd/n--- /dev/null/n+++ b/tests/fixtures/diffs/two_file_diff/n@@ -0,0 +1,45 @@/n+diff --git a/flake8/utils.py b/flake8/utils.py/n+index f6ce384..7cd12b0 100644/n+--- a/flake8/utils.py/n++++ b/flake8/utils.py/n+@@ -75,8 +75,8 @@ def stdin_get_value():/n+     return cached_value.getvalue()/n+/n+/n+-def parse_unified_diff():/n+-    # type: () -> List[str]/n++def parse_unified_diff(diff=None):/n++    # type: (str) -> List[str]/n+     """Parse the unified diff passed on stdin./n+/n+     :returns:/n+@@ -84,7 +84,10 @@ def parse_unified_diff():/n+     :rtype:/n+         dict/n+     """/n+-    diff = stdin_get_value()/n++    # Allow us to not have to patch out stdin_get_value/n++    if diff is None:/n++        diff = stdin_get_value()/n++/n+     number_of_rows = None/n+     current_path = None/n+     parsed_paths = collections.defaultdict(set)/n+diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py/n+index d69d939..21482ce 100644/n+--- a/tests/unit/test_utils.py/n++++ b/tests/unit/test_utils.py/n+@@ -115,3 +115,13 @@ def test_parameters_for_function_plugin():/n+     plugin = plugin_manager.Plugin('plugin-name', object())/n+     plugin._plugin = fake_plugin/n+     assert utils.parameters_for(plugin) == ['physical_line', 'self', 'tree']/n++/n++/n++def read_diff_file(filename):/n++    """Read the diff file in its entirety."""/n++    with open(filename, 'r') as fd:/n++        content = fd.read()/n++    return content/n++/n++/n++SINGLE_FILE_DIFF = read_diff_file('tests/fixtures/diffs/single_file_diff')/ndiff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py/nindex d69d939..1461369 100644/n--- a/tests/unit/test_utils.py/n+++ b/tests/unit/test_utils.py\n@@ -115,3 +115,14 @@ def test_parameters_for_function_plugin():\n     plugin = plugin_manager.Plugin('plugin-name', object())\n     plugin._plugin = fake_plugin\n     assert utils.parameters_for(plugin) == ['physical_line', 'self', 'tree']\n+\n+\n+def read_diff_file(filename):\n+    """Read the diff file in its entirety."""\n+    with open(filename, 'r') as fd:\n+        content = fd.read()\n+    return content\n+\n+\n+SINGLE_FILE_DIFF = read_diff_file('tests/fixtures/diffs/single_file_diff')\n+TWO_FILE_DIFF = read_diff_file('tests/fixtures/diffs/two_file_diff')\n-parsed_diff2]
[8/16/2019 12:48:42.941 PM Error] (no name 'C:\\Users\\huvalo\\source\\repos\\flake8\\tests\\unit\\test_utils.py::test_parse_unified_diff[diff --git a/flake8/utils.py b/flake8/utils.py/nindex f6ce384..7cd12b0 100644/n--- a/flake8/utils.py/n+++ b/flake8/utils.py/n@@ -75,8 +75,8 @@ def stdin_get_value():/n     return cached_value.getvalue()/n /n /n-def parse_unified_diff():/n-    # type: () -> List[str]/n+def parse_unified_diff(diff=None):/n+    # type: (str) -> List[str]/n     """Parse the unified diff passed on stdin./n /n     :returns:/n@@ -84,7 +84,10 @@ def parse_unified_diff():/n     :rtype:/n         dict/n     """/n-    diff = stdin_get_value()/n+    # Allow us to not have to patch out stdin_get_value/n+    if diff is None:/n+        diff = stdin_get_value()/n+/n     number_of_rows = None/n     current_path = None/n     parsed_paths = collections.defaultdict(set)/ndiff --git a/tests/fixtures/diffs/single_file_diff b/tests/fixtures/diffs/single_file_diff/nnew file mode 100644/nindex 0000000..77ca534/n--- /dev/null/n+++ b/tests/fixtures/diffs/single_file_diff/n@@ -0,0 +1,27 @@/n+diff --git a/flake8/utils.py b/flake8/utils.py/n+index f6ce384..7cd12b0 100644/n+--- a/flake8/utils.py/n++++ b/flake8/utils.py/n+@@ -75,8 +75,8 @@ def stdin_get_value():/n+     return cached_value.getvalue()/n+/n+/n+-def parse_unified_diff():/n+-    # type: () -> List[str]/n++def parse_unified_diff(diff=None):/n++    # type: (str) -> List[str]/n+     """Parse the unified diff passed on stdin./n+/n+     :returns:/n+@@ -84,7 +84,10 @@ def parse_unified_diff():/n+     :rtype:/n+         dict/n+     """/n+-    diff = stdin_get_value()/n++    # Allow us to not have to patch out stdin_get_value/n++    if diff is None:/n++        diff = stdin_get_value()/n++/n+     number_of_rows = None/n+     current_path = None/n+     parsed_paths = collections.defaultdict(set)/ndiff --git a/tests/fixtures/diffs/two_file_diff b/tests/fixtures/diffs/two_file_diff/nnew file mode 100644/nindex 0000000..5bd35cd/n--- /dev/null/n+++ b/tests/fixtures/diffs/two_file_diff/n@@ -0,0 +1,45 @@/n+diff --git a/flake8/utils.py b/flake8/utils.py/n+index f6ce384..7cd12b0 100644/n+--- a/flake8/utils.py/n++++ b/flake8/utils.py/n+@@ -75,8 +75,8 @@ def stdin_get_value():/n+     return cached_value.getvalue()/n+/n+/n+-def parse_unified_diff():/n+-    # type: () -> List[str]/n++def parse_unified_diff(diff=None):/n++    # type: (str) -> List[str]/n+     """Parse the unified diff passed on stdin./n+/n+     :returns:/n+@@ -84,7 +84,10 @@ def parse_unified_diff():/n+     :rtype:/n+         dict/n+     """/n+-    diff = stdin_get_value()/n++    # Allow us to not have to patch out stdin_get_value/n++    if diff is None:/n++        diff = stdin_get_value()/n++/n+     number_of_rows = None/n+     current_path = None/n+     parsed_paths = collections.defaultdict(set)/n+diff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py/n+index d69d939..21482ce 100644/n+--- a/tests/unit/test_utils.py/n++++ b/tests/unit/test_utils.py/n+@@ -115,3 +115,13 @@ def test_parameters_for_function_plugin():/n+     plugin = plugin_manager.Plugin(\'plugin-name\', object())/n+     plugin._plugin = fake_plugin/n+     assert utils.parameters_for(plugin) == [\'physical_line\', \'self\', \'tree\']/n++/n++/n++def read_diff_file(filename):/n++    """Read the diff file in its entirety."""/n++    with open(filename, \'r\') as fd:/n++        content = fd.read()/n++    return content/n++/n++/n++SINGLE_FILE_DIFF = read_diff_file(\'tests/fixtures/diffs/single_file_diff\')/ndiff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py/nindex d69d939..1461369 100644/n--- a/tests/unit/test_utils.py/n+++ b/tests/unit/test_utils.py\\n@@ -115,3 +115,14 @@ def test_parameters_for_function_plugin():\\n     plugin = plugin_manager.Plugin(\'plugin-name\', object())\\n     plugin._plugin = fake_plugin\\n     assert utils.parameters_for(plugin) == [\'physical_line\', \'self\', \'tree\']\\n+\\n+\\n+def read_diff_file(filename):\\n+    """Read the diff file in its entirety."""\\n+    with open(filename, \'r\') as fd:\\n+        content = fd.read()\\n+    return content\\n+\\n+\\n+SINGLE_FILE_DIFF = read_diff_file(\'tests/fixtures/diffs/single_file_diff\')\\n+TWO_FILE_DIFF = read_diff_file(\'tests/fixtures/diffs/two_file_diff\')\\n-parsed_diff2]' in any of [<Module tests/unit/test_utils.py>])
[8/16/2019 12:48:42.941 PM Error] ERROR: not found: C:\Users\huvalo\source\repos\flake8\tests\unit\test_utils.py::test_parse_unified_diff[diff --git a/flake8/utils.py b/flake8/utils.py/nindex f6ce384..7cd12b0 100644/n--- a/flake8/utils.py/n+++ b/flake8/utils.py/n@@ -75,8 +75,8 @@ def stdin_get_value():/n     return cached_value.getvalue()/n /n /n-def parse_unified_diff():/n-    # type: () -> List[str]/n+def parse_unified_diff(diff=None):/n+    # type: (str) -> List[str]/n     """Parse the unified diff passed on stdin./n /n     :returns:/n@@ -84,7 +84,10 @@ def parse_unified_diff():/n     :rtype:/n         dict/n     """/n-    diff = stdin_get_value()/n+    # Allow us to not have to patch out stdin_get_value/n+    if diff is None:/n+        diff = stdin_get_value()/n+/n     number_of_rows = None/n     current_path = None/n     parsed_paths = collections.defaultdict(set)/ndiff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py/nindex d69d939..21482ce 100644/n--- a/tests/unit/test_utils.py/n+++ b/tests/unit/test_utils.py\n@@ -115,3 +115,13 @@ def test_parameters_for_function_plugin():\n     plugin = plugin_manager.Plugin('plugin-name', object())\n     plugin._plugin = fake_plugin\n     assert utils.parameters_for(plugin) == ['physical_line', 'self', 'tree']\n+\n+\n+def read_diff_file(filename):\n+    """Read the diff file in its entirety."""\n+    with open(filename, 'r') as fd:\n+        content = fd.read()\n+    return content\n+\n+\n+SINGLE_FILE_DIFF = read_diff_file('tests/fixtures/diffs/single_file_diff')\n-parsed_diff1]
[8/16/2019 12:48:42.942 PM Error] (no name 'C:\\Users\\huvalo\\source\\repos\\flake8\\tests\\unit\\test_utils.py::test_parse_unified_diff[diff --git a/flake8/utils.py b/flake8/utils.py/nindex f6ce384..7cd12b0 100644/n--- a/flake8/utils.py/n+++ b/flake8/utils.py/n@@ -75,8 +75,8 @@ def stdin_get_value():/n     return cached_value.getvalue()/n /n /n-def parse_unified_diff():/n-    # type: () -> List[str]/n+def parse_unified_diff(diff=None):/n+    # type: (str) -> List[str]/n     """Parse the unified diff passed on stdin./n /n     :returns:/n@@ -84,7 +84,10 @@ def parse_unified_diff():/n     :rtype:/n         dict/n     """/n-    diff = stdin_get_value()/n+    # Allow us to not have to patch out stdin_get_value/n+    if diff is None:/n+        diff = stdin_get_value()/n+/n     number_of_rows = None/n     current_path = None/n     parsed_paths = collections.defaultdict(set)/ndiff --git a/tests/unit/test_utils.py b/tests/unit/test_utils.py/nindex d69d939..21482ce 100644/n--- a/tests/unit/test_utils.py/n+++ b/tests/unit/test_utils.py\\n@@ -115,3 +115,13 @@ def test_parameters_for_function_plugin():\\n     plugin = plugin_manager.Plugin(\'plugin-name\', object())\\n     plugin._plugin = fake_plugin\\n     assert utils.parameters_for(plugin) == [\'physical_line\', \'self\', \'tree\']\\n+\\n+\\n+def read_diff_file(filename):\\n+    """Read the diff file in its entirety."""\\n+    with open(filename, \'r\') as fd:\\n+        content = fd.read()\\n+    return content\\n+\\n+\\n+SINGLE_FILE_DIFF = read_diff_file(\'tests/fixtures/diffs/single_file_diff\')\\n-parsed_diff1]' in any of [<Module tests/unit/test_utils.py>])
[8/16/2019 12:48:42.942 PM Error] ERROR: not found: C:\Users\huvalo\source\repos\flake8\tests\unit\test_utils.py::test_parse_unified_diff[diff --git a/flake8/utils.py b/flake8/utils.py/nindex f6ce384..7cd12b0 100644/n--- a/flake8/utils.py/n+++ b/flake8/utils.py\n@@ -75,8 +75,8 @@ def stdin_get_value():\n     return cached_value.getvalue()\n\n\n-def parse_unified_diff():\n-    # type: () -> List[str]\n+def parse_unified_diff(diff=None):\n+    # type: (str) -> List[str]\n     """Parse the unified diff passed on stdin.\n\n     :returns:\n@@ -84,7 +84,10 @@ def parse_unified_diff():\n     :rtype:\n         dict\n     """\n-    diff = stdin_get_value()\n+    # Allow us to not have to patch out stdin_get_value\n+    if diff is None:\n+        diff = stdin_get_value()\n+\n     number_of_rows = None\n     current_path = None\n     parsed_paths = collections.defaultdict(set)\n-parsed_diff0]
[8/16/2019 12:48:42.942 PM Error] (no name 'C:\\Users\\huvalo\\source\\repos\\flake8\\tests\\unit\\test_utils.py::test_parse_unified_diff[diff --git a/flake8/utils.py b/flake8/utils.py/nindex f6ce384..7cd12b0 100644/n--- a/flake8/utils.py/n+++ b/flake8/utils.py\\n@@ -75,8 +75,8 @@ def stdin_get_value():\\n     return cached_value.getvalue()\\n\\n\\n-def parse_unified_diff():\\n-    # type: () -> List[str]\\n+def parse_unified_diff(diff=None):\\n+    # type: (str) -> List[str]\\n     """Parse the unified diff passed on stdin.\\n\\n     :returns:\\n@@ -84,7 +84,10 @@ def parse_unified_diff():\\n     :rtype:\\n         dict\\n     """\\n-    diff = stdin_get_value()\\n+    # Allow us to not have to patch out stdin_get_value\\n+    if diff is None:\\n+        diff = stdin_get_value()\\n+\\n     number_of_rows = None\\n     current_path = None\\n     parsed_paths = collections.defaultdict(set)\\n-parsed_diff0]' in any of [<Module tests/unit/test_utils.py>])

Currently this is limitation of pytest itself and passing single test ids.
the workaround is to give your parameterized tests a simpler Id using pytest.param()
https://docs.pytest.org/en/latest/example/parametrize.html?highlight= pytest.param

authors: bschnurr huguesv

repo: microsoft/PTVS


text:
Refactor rename incorrect when the referenced method is defined in another project.

Describe the bug

Steps to Reproduce

Create python application named PythonAppication1
Create python application named PythonAppication2
Right-click in PythonAppication1 and select Add->reference..., select PythonApplication2 as referenced
Typing code in PythonApplication2.py

def add(a, b):
    print(a + b)

Typing code in PythonAppication1.py

import PythonApplication2
PythonApplication2.add(1,2)

Open PythonApplication2.py and select function name add and right-click to select rename...
Input a new name addTest in rename dialog and press enter

Expected behavior
The name add can be renamed as addTest both in PythonApplication2.py and PythonApplication1.py
Actual behavior
Nothing has changed.

Very weird. Only repros with the cross project reference. Otherwise rename works fine.

In today's build 17.1.0 Preview 3.0 [32030.14.main] , The name of the place where this method is called has not changed.

In today's build 17.2.0 Preview 2.0 [32228.339.main].In the same project, rename a method, but the method name of this method in other places where it is called has not changed

The original bug is reported for two projects, with one referencing the other. But the latest screenshots show this is broken for two files in the SAME project. We need to investigate and fix both of these cases if they still repro.

@ttSpace Can you please verify if this is still happening on the latest version of Visual Studio? For both single project and multiproject cases. Thank you!

@AdamYoblick In today's build 17.6.0 Preview 2.0 [33406.287.main], Python Package: 17.0.23033.1, In two Projects, Renamed only in PythonApplication2.py. The name of the place where this method is called has not changed. foo --> footest

This works fine for the two files in the SAME project. foo --> footest

In today's latest build:17.7.0 Preview 2.0 [33709.378.main],Python package:17.0.23115.2
In two Projects, the 'rename' command doesn't have any responce after selecting it

@linette-zyy I was trying to repro this issue, how did you find the other project to add as reference? Mine shows nothing was found.

source: gharchive/issue

authors: AdamYoblick StellaHuang95 linette-zyy rchiodo ttSpace

license_type: permissive

license_source: github-api


text:
Delete FeatureFlags

This static flag has lived too long. In the future we should avoid static flags such as this one.

Can this delete the FeatureFlag file completely?

:heavy_check_mark: No Binary Compatibility issues for Microsoft.PowerFx.Connectors.dll
:x: 1 Binary Compatibility issues for Microsoft.PowerFx.Core compared against version 0.2.3-preview.20221118-329922.

TypesMustExist : Type 'Microsoft.PowerFx.Preview.FeatureFlags' does not exist in the implementation but it does exist in the contract.

:heavy_check_mark: No Binary Compatibility issues for **Microsoft.PowerFx.Interpreter.dll**
:heavy_check_mark: No Binary Compatibility issues for **Microsoft.PowerFx.LanguageServerProtocol.dll**
:heavy_check_mark: No Binary Compatibility issues for **Microsoft.PowerFx.Transport.Attributes.dll**

source: gharchive/pull-request

authors: BruceHaley MikeStall bryancroteau-MSFT

repo: microsoft/Power-Fx

license: MIT


text:
Disabling Windows Task View including edge swipe

Provide a description of the new feature / enhancement
Windows allows you to remove the task view button from the taskbar but there are still multiple ways task view itself can be triggered often unintentionally, including by swiping 3/4 fingers on the touchpad (an accidental brush with the hand in passing) or dragging across the left edge of a touch screen (it's very easy to trigger this accidentally by selecting and dragging something that is partially off screen like a jigsaw piece placed next to the puzzle in Microsoft Jigsaw). There is also a Logitech keyboard that causes task view to trigger frequently.
Some users also wish to prevent deliberate activation on eg a tablet used as a kiosk device.
There are numerous support requests in official and unofficial forums from users wanting to turn off task view (usually the response is to turn off the task view button on the taskbar and the OP then explains in some frustration that they want to remove the feature, not the button).
Although you can turn off the multifinger touchpad features, this doesn't turn off edge swipe and other accidental triggers and it doesn't block the feature for kiosk cases.
Currently users have to edit the registry to set (or usually create) the HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\EdgeUI\AllowEdgeSwipe DWORD and set it to 0.
This seems like exactly the kind of thing PowerToys is there for.

Neat idea @marypcbuk!

authors: crutkas marypcbuk

repo: microsoft/PowerToys


text:
General Positive Feedback

Hi All, I'd like to leave thanks for everyone who has worked on this project!  I couldn't find a place to leave this, so I thought I'd make one.
This tool is FANTASTIC!!!  I wish I could express how wonderful this tool has made Windows.  I had previously been using a number of unreliable flaky workarounds to achieve a portion of what you have built.  Your tool is super reliable, does exactly what it says, and has provided options that I did not think were likely or even possible.  I sincerely hope that this project gets MS funding as it absolutely deserves to a built in option.  I'm sure dealing with bugs and upset users is frustrating and uninspiring.  I hope my note (and hopefully more from others), will give you a sense of the appreciation I (we) have for this tool!  Thanks again for all of your work!

Thank you for the kind words and for using PowerToys!

Thanks a lot for the feedback and for using PowerToys! 😄

Thank you! We appreciate the feedback and hope you continue to enjoy the product! 😄

authors: Aaron-Junker dedavis6797 jaimecbernardo syserss


text:
[PowerToys Run] Time Calculator

Description of the new feature / enhancement

Scenario when this would be used?
Use this calculator to add or subtract two or more time values in the form of an expression.
https://www.calculator.net/time-calculator.html?tcexpression=1d+2h+3m+4s+%2B+4h+5s+-+2030s+%2B+28h&ctype=3&x=57&y=21#expression
Supporting information
No response

Try this: (by @ebraminio)
data:text/html;charset=utf8,<textarea id=input style="width: 50%; height: 5em; white-space: pre" oninput="result.innerText = calculate(this.value)"></textarea>

Thos feels for me like an addition to calculator.

Hi @htcfreek, just a confusion, can we use the TimeSpan struct here?
References -

https://learn.microsoft.com/en-us/dotnet/api/system.timespan?view=net-8.0

Need to try. But sounds to me, like it make sense to use it.

Hi @htcfreek, I looked into this issue and found that this feature can be introduced in Mages, not our repo. Since the whole query string is being given to Mages, it makes much more sense to process it then and there (or add any new functionality). Could you add the External Dependency label here? Also, could you add the same to #31740?

Came over from duplicate issue #35709 . In that one I also suggested that PowerToy Run's Calculator plugin should be able to calculate time differentials between dates. For example, typing 6/13 - 3 would spit out 6/10.
Also, being able to divide/multiply a time string would be nice! For instance, when you want to find out how long a YouTube video will be at a certain speed.

authors: GhostVaibhav htcfreek unrealed xmha97


text:
Win+Shift+T and Win+Shift+M clash with default Windows hotkeys

Microsoft PowerToys version
0.62 and up
Area(s) with issue?
PowerOCR, Screen Ruler
Steps to reproduce
Default PT hotkeys have an overlooked function:

Together with Win+T it puts focus on the taskbar icons for pinned/opened apps. In Win 11 and Win 10.
https://support.microsoft.com/en-us/windows/keyboard-shortcuts-in-windows-dcc61a57-8ff0-cffe-9796-cb9706c75eec#WindowsVersion=Windows_10:~:text=Windows logo key  %2B T,through apps on the taskbar.
Win+Shift+M (opposite of Win+M) is to restore minimized windows.

✔ Expected Behavior
Focus on taskbar / restore windows
❌ Actual Behavior
Open Text Extractor or Measure tool

What are some possible solutions here? Change the shortcut? Is there any other way to fix this?

authors: Jay-o-Way TheJoeFin


text:
Locksmith  keeps circling and doesn't show the applications occupying the folder

Microsoft PowerToys version
0.65
Installation method
Microsoft Store
Running as admin
Yes
Area(s) with issue?
File Locksmith
Steps to reproduce
The Locksmith  keeps circling and doesn't show the applications occupying the folder
✔ Expected Behavior
display applications that occupy folders
❌ Actual Behavior
keeps circling and doesn't show the applications occupying the folder
Other Software
No response

Also in version 0.66?

Thanks for your reply, I have  updated to 0.66 version today. It's ok now.
| |
l
|
|
@.***
|
---- Replied Message ----
| From | @.> |
| Date | 1/9/2023 00:41 |
| To | @.> |
| Cc | @.> ,
@.> |
| Subject | Re: [microsoft/PowerToys] Locksmith keeps circling and doesn't show the applications occupying the folder (Issue #23198) |
Also in version 0.66?
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you authored the thread.Message ID: @.***>

authors: Jay-o-Way dowier


text:
FancyZones - Tabification-option for zones

Description of the new feature / enhancement
Tab-like overview for zones when multiple windows are in the same zone.
Scenario when this would be used?
You can visually see which programs and windows are in the area. You have a better overview of your monitor when working, coding etc.
Supporting information
Windows Explorer has implemented the tab-option in the past year, could be look like this.

Or browser-tabs like here:

/dup #15921

authors: stefansjfw zahedhelmand


text:
Include screenrecording

Description of the new feature / enhancement
Hi,
It would be nice to have a screen recording tool included
Scenario when this would be used?
I don't think I need to elaborate on this :)
Supporting information
No response

Screen Recording will soon come to Snipping Tool on Windows 11. You can also use the XBOX Game bar (Win+G) to record your screen.

authors: Aaron-Junker eebeeDEV


text:
0.74.1 update crashes Windows Explorer on Windows 22621.2361

Microsoft PowerToys version
0.74.1
Installation method
PowerToys auto-update
Running as admin
Yes
Area(s) with issue?
General
Steps to reproduce

Try to attach file to email (in firefox).

and 2) Open PowerToys. (attempting to solve the first problem)
✔ Expected Behavior

File to upload to email.

PowerToys to open

❌ Actual Behavior

All open instances of Windows Explorer froze, browse window in Firefox froze, taskbar disappeared. Computer did not respond to Ctrl+Alt+Delete and computer had to be manually turned off and back on with power button. (This happened twice.)

PowerToys did not open, and did not show up in Task Manager. I finally decided the update must have installed weirdly and tried to uninstall PowerToys so I could reinstall it. Uninstall froze, caused taskbar to disappear, computer did not respond to Ctrl+Alt+Delete and computer had to be manually turned off and back on with the power button. (Second attempt, uninstall was succesful. Have not tried to reinstall yet because I don't want to deal with another freeze.)

Other Software
No response

Thanks for opening this issue.
I think we need some more information to try to replicate.
What type of file was this, what was its extension?
What e-mail client was this, to see if it can be related?
What OS version are you on?
/needinfo

I have the same issue - after running the auto-update of Powertoys the Explore-process freezes. Reboots doesn't solve the issue.
I tried to downgrade, but the problem persisted...?!!
It has been necessary for me to uninstall Powertoys completely.
OS:  Edition	Windows 11 Pro
Version	22H2
OS build	22621.2361
Experience	Windows Feature Experience Pack 1000.22674.1000.0

Would love to get a /bugreport somehow 🤔 but that's a bit hard without PowerToys installed.
So you're saying it also started occurring when you tried to downgrade to 0.74.0 ?

@jaimecbernardo

So you're saying it also started occurring when you tried to downgrade to 0.74.0 ?

Yes, very strange I know. I suspect that 0.74.1 may have installed and registered a component that doesn't get uninstalled completely - and is only triggered by Powertoys.
I'm pretty sure that it is unrelated and just a simple text issue, but when uninstalling it says "Installing Powertoys" - but then says "Uninstall complete" (or something like that). But it did make me wonder during my multiple installs and uninstalls.
Regarding a bug report - that would not be possible for me using the context menu. The issue is triggered by just clicking the Powertoys icon.

I am having a similar issue.  I have two systems, both Win11 Pro.
After the 0.74.1 update, both systems function normally up until I attempt to open the Power Toys settings menu by either right click > settings from system tray or double clicking the sys tray icon.
Either of these actions seem to cause Windows to hang for long periods of time.  All apps seem to hang for over 2 minutes but they eventually do open but the system overall is slow when performing any action. Also, opening task manager causes explorer to crash.
I am able to replicate this consistently on both machines.
On PC#1, I have all Power Toys features disabled except Fancy Zones and Text Extractor.
On PC#2, I only have Text Extractor enabled, everything else is disabled.
I should also note that since the update, left clicking on the Power Toys sys tray icon does not bring up the usual popup menu.  It does nothing, but doesn't cause the system to hang like right clicking or double clicking does.
Let me know if you need any more info.

I'm another user with similar issues to those described above.
Windows 11 Pro 22H2 22621.2361

Another user with the same issues, on Windows 11 Pro 22H2 22621.2361.
I'm beginning to think it's the recent Windows update which has broken PowerToys, the one that delivers CoPilot. Everything was working fine until then. A fresh Windows install seemed to fix my issues with PowerToys- I incorrectly assumed the Windows install had become corrupted - until I updated to  22H2 22621.2361

I am on Windows 10 22H2 19045.3516 and have same issue so uninstalled and waiting for new version.

Interesting, I'm still on 22621.2283 . So it seems to be related to 22621.2361 🤔 So this is for people who updated to the Cumulative Update Preview, is that right?
If you try to install 0.73.0, this still occurs?

I am on Windows 10 Pro 22H2 19045.3516 and have same issue so uninstalled and waiting for new version.

What's your specific issue @jaburmester ?

I am having a similar issue. I have two systems, both Win11 Pro (22H2 Build 22621.2283).

@Penjuugo , I suspect in your case this might be caused by the update to Windows App SDK 1.4.1 that we did for 0.74.0.
Can you please try installing 0.74.0 and 0.73.0 to double-check if they're working? I suspect 0.74.0 won't work but 0.73.0 will. If that's the case, let's try to check if other PowerToys are also broken? I'm thinking Peek, PowerRename, FileLocksmith, Hosts File Editor, Registry Preview, Measure Tool. (those all use Windows App SDK)

Interesting, I'm still on 22621.2283 . So it seems to be related to 22621.2361 🤔 So this is for people who updated to the Cumulative Update Preview, is that right? If you try to install 0.73.0, this still occurs?

I've just reverted to 0.73.0. Same Problem.

I am on Windows 10 Pro 22H2 19045.3516 and have same issue so uninstalled and waiting for new version.

What's your specific issue @jaburmester ?

When installed everything goes slow and the whole of windows 10 is unresponsive. I also can never open app.
The only way to uninstall app is to reboot and before app fully starts uninstall app.

Trying to update to "2023-09 Cumulative Update Preview for Windows 11 Version 22H2 for x64-based Systems (KB5030310)". It's an optional update, but I guess it won't be forever, so it's better to see what's happening and if I can reproduce it there 🤔

I am having a similar issue. I have two systems, both Win11 Pro (22H2 Build 22621.2283).

@Penjuugo , I suspect in your case this might be caused by the update to Windows App SDK 1.4.1 that we did for 0.74.0. Can you please try installing 0.74.0 and 0.73.0 to double-check if they're working? I suspect 0.74.0 won't work but 0.73.0 will. If that's the case, let's try to check if other PowerToys are also broken? I'm thinking Peek, PowerRename, FileLocksmith, Hosts File Editor, Registry Preview, Measure Tool. (those all use Windows App SDK)

Results are as follows:
Uninstall 0.74.1 > install 0.74.0 - Issue persists
Uninstall 0.74.0 > install 0.73.0 - Issue persists
@jaimecbernardo Is there a way to do a "clean" install?
I will say that I did not notice this issue with 0.73.0 back when it was the latest release, as I just re-installed Windows at around that time and was able to go into settings and configure everything normally.
I should also note that I am able to use fancy zones and text extractor no problem up until I try to open settings. It isn't until that point that everything stops working.

@Penjuugo , you can try going into the install folder of PowerToys and deleting it manually, to check if that helps in case some files were still there ( default: C:\Program Files\PowerToys )
To reset PowerToys Settings to default, you can delete "%localappdata%\Microsoft\PowerToys" (copy it first to backup in case you want to restore your Settings later on)

Uninstalled 0.73.0
Deleted "%localappdata%\Microsoft\PowerToys" (C:\Program Files\PowerToys was removed during uninstall)
Rebooted
Installed 0.73.0
Rebooted

Issue persists

Another user with the same issues, on Windows 11 Pro 22H2 22621.2361.
I'm beginning to think it's the recent Windows update which has broken PowerToys, the one that delivers CoPilot. Not saying the issue relates directly to CoPilot but the update through which this was installed. Everything was working fine until then. A fresh Windows install seemed to fix my issues with PowerToys- I incorrectly assumed the Windows install had become corrupted - until I once again updated to 22H2 22621.2361

Alright, just installed 22621.2361, but no CoPilot? How were you able to get CoPilot @ThePundit663 ?

So for people who are getting this issue, if it happens after opening Settings, are you able to get a bug report by right-clicking the tray icon and selecting "Report bug"? That will take a while and then create a zip file in your Desktop that you can upload.

I'm on 22621.2283 no Copilot, but I have an Optional Update for the Preview which I believe is 2361.
@jaimecbernardo Clicking on the "Report Bug" option also causes issue for me.

This is the Report Bug we're talking about, right?

This is the Report Bug we're talking about, right?

Yes. clicking on anything but Exit causes everything to hang.

I was able to get it to generate the report. I had to run it as soon as I logged in.  It generated and when I attempted to generate it again, everything stopped working haha.
PowerToysReport_2023-10-04-09-14-02.zip
Also, I noticed that last time I rebooted while everything was hanging, the reboot took a while (over 5 min) but it did eventually prompt me saying that Text Extractor was preventing the reboot.  I had to then hard power off then on as it wouldn't let me do anything after.

I was able to get it to generate the report. I had to run it as soon as I logged in. It generated and when I attempted to generate it again, everything stopped working haha.
PowerToysReport_2023-10-04-09-14-02.zip
Also, I noticed that last time I rebooted while everything was hanging, the reboot took a while (over 5 min) but it did eventually prompt me saying that Text Extractor was preventing the reboot. I had to then hard power off then on as it wouldn't let me do anything after.

Wow, no Settings logs or crashes on Event Viewer. So it's having issues even before it's able to write logs.

@jaimecbernardo Let me know if you need me to try anything else. I'm ramping up at work right now, but should be able to do some more testing later this evening.

@jaimecbernardo Let me know if you need me to try anything else. I'm ramping up at work right now, but should be able to do some more testing later this evening.

I've got no idea how to go about this, but thank you! Do you have any weird crashes listed on Event Viewer?
It seems PowerToys.Settings.exe isn't even crashing so we're unable to get a Dump to analyze.

OP here. I was trying to attach a PDF in gmail on Firefox. The hang itself started when I clicked "Browse" to find the file to attach, which is why I thought it was related to Windows Explorer. I am on Windows 10 Pro 22H2 19045.3448. I think Windows updated while I was doing the reboot for PowerToys, so that might have very well caused the issue. I'm sorry I can't generate a bug report as I don't have the tray icon anymore.
Also possibly it does have something to do with not uninstalling/installing correctly.

@jaimecbernardo
I'm pretty sure that it is unrelated and just a simple text issue, but when uninstalling it says "Installing Powertoys" - but then says "Uninstall complete" (or something like that). But it did make me wonder during my multiple installs and uninstalls.

That happened to me as well the first time I tried to (unsuccessfully) uninstall PowerToys. The second time I rebooted I uninstalled PowerToys first thing, so that may be why it worked the second time.
Also not sure if this is related, but when I'm in Settings/Apps & Features in the list of apps to uninstall/modify, I still have PowerToys 0.68.1 in the app list. If I try to delete it, Windows just tells me it can't be found. Maybe that has something to do with not doing a clean install?
Sorry I can't be more help. I can't mess around with it much more because I have a tight deadline for work. But thank you for all your help.

@jaimecbernardo
The only things in event log I'm seeing are hang errors on PowerToys.Settings.exe and other, I would assume, related processes or processes I started at that time:

Because I decided to do a clean windows install when this issue first emerged, I have been able to try various versions of windows and various versions of PowerToys and many combinations of both. In all circumstances, PowerToys worked fine at first and then eventually started to display the issues we are experiencing.
This morning, I decided to be more structured. Clean windows install, PowerToys installed first and then one-by-one readded my software. The issue re-emerged when I installed Malwarebytes, and went away when I excluded all PowerToys folders from being scanned by Malwarebytes.
This makes sense to me, because even when PowerToys was misbehaving, I could still activate the crosshairs option with windows/alt/P - so it was to some degree 'working'. It seems to be an issue sparked when clicking the tray app for PowerToys.
Now, I've not finished reinstalling all my software and, the issue may re-emerge, but I've messaged here so others can at least test this out and see if it solves the issue, as it has for me until this point.

@ThePundit663

The issue re-emerged when I installed Malwarebytes, and went away when I excluded all PowerToys folders from being scanned by Malwarebytes.

Interesting. I also use Malwarebytes...!!!

@ThePundit663

The issue re-emerged when I installed Malwarebytes, and went away when I excluded all PowerToys folders from being scanned by Malwarebytes.

Interesting. I also use Malwarebytes...!!!
Edit:
I just tried it on a machine running 0.74.0:

Excluded the Powertoys-folder in Malwarebytes - problem fixed
Removed the exlusion in Malwarebytes - problem reappeared

Awesome!

I use Malwarebytes too....
Which folder needs excluding though? I don't appear to have a "C:\program files\power toys" folder.

I use Malwarebytes too....
Which folder needs excluding though? I don't appear to have a "C:\program files\power toys" folder.

Should be in appdata

Well I excluded the Power Toys folder in appdata and Power Toys settings still did nothing when selected, then I quit MalwareBytes  and the settings options immediately appeared,

Well I excluded the Power Toys folder in appdata and Power Toys settings still did nothing when selected, then I quit MalwareBytes and the settings options immediately appeared,

'C:\users\yournamehere\AppData\local\Powertoys' added to the 'allow list' in MalwareBytes?

Well I excluded the Power Toys folder in appdata and Power Toys settings still did nothing when selected, then I quit MalwareBytes and the settings options immediately appeared,

'C:\users\yournamehere\AppData\local\Powertoys' added to the 'allow list' in MalwareBytes?

My mistake - I added C:\users\yournamehere\AppData\local\Microsoft\Powertoys.

So someone needs to raise a ticket with Malwarebytes? The last release was a couple  of weeks ago, but I'm not sure when my PC installed the update.

I can also confirm that after adding C:\Program Files\PowerToys and C:\Users\USERNAME\AppData\Local\Microsoft\PowerToys to the Malwarebytes Allow List, the issue appears to have been fixed.

I can also confirm that after adding C:\Program Files\PowerToys and C:\Users\USERNAME\AppData\Local\Microsoft\PowerToys to the Malwarebytes Allow List, the issue appears to have been fixed.
Also updated from 0.73.0 to 0.74.1 with no issues.

Thanks I am on Windows 10 and with adding Allow List in Malwarebytes all is now OK.

WOW, great investigation by the community 😄
Thanks a lot for figuring this issue out!

Our binary files are signed by Microsoft, so I'm wondering if there was any specific files being flagged.

Our binary files are signed by Microsoft, so I'm wondering if there was any specific files being flagged.

Malwarebytes doesn't throw up any warning/notification in this situation though, the whole PC just starts running very slow.

I've reproduced this on a VM I had with Windows 10. If Malwarebytes "Malware Protection" is turned on, Settings won't show up at all. Trying to start PowerRename for example breaks explorer.

I've added a topic in the forums: https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/

Hey everyone,
Malwarebytes just received a package update. It seems to have fixed it for me.
Can you please update Malwarebytes and verify if it fixes it for you as well?
https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/?do=findComment&comment=1593506

Hey everyone, Malwarebytes just received a package update. It seems to have fixed it for me. Can you please update Malwarebytes and verify if it fixes it for you as well?
https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/?do=findComment&comment=1593506

The package update did not resolve the issue for me. I checked three times, including a reboot. My PowerToys install directory is 'C:\users\yournamehere\AppData\local\Powertoys' and not in Program Files, if that is relevant.

Sorted for me. My installation directory is also under AppData.
Malwarebytes package version 1.0.75991 is required for the fix.

Sorted for me. My installation directory is also under AppData.
Malwarebytes package version 1.0.75991 is required for the fix.

Yes, I have 1.0.75991 installed but the issue remains unresolved for me...

@ThePundit663 , can you please join the thread in the forum and get one of the diagnostic files they're requesting? Saying that that still didn't solve it for you?
https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/

@ThePundit663 , can you please join the thread in the forum and get one of the diagnostic files they're requesting? Saying that that still didn't solve it for you? https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/

Bit busy atm. I'll double-check before I report anything.

The update Malwarebytes released within the last couple of hours fixed the problem for me - https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/#comment-1593506
I clicked the Malwarebytes tray icon and did a "check for updates". Even though I did this a few hours ago, it again came up with an update, applied it and now PowerToys Settings comes up fine.

@ThePundit663 , can you please join the thread in the forum and get one of the diagnostic files they're requesting? Saying that that still didn't solve it for you? https://forums.malwarebytes.com/topic/303158-malwarebytes-and-powertoys-incompatibility/

The package is now updated to 1.0.75993... and since then PT runs as expected. Great work one and all in sorting this out...

Sounds like we can resolve this now, correct? /needinfo
we know what the root cause was too

@crutkas - Thanks much Clint. It certainly appears to have been a Malwarebytes bug and they have been quick to resolve the problem. Kudos on them as well as you and the PowerToys team. I am REALLY happy to have the PowerToys working again. Thanks again!

authors: Blackbat007 ChrisJohnTaylor MBerantzino Penjuugo ThePundit663 amplifythought crutkas jaburmester jaimecbernardo


text:
select text + hot key + translate on screen

Description of the new feature / enhancement
When selecting any text on the screen, press any key combination and open a small window where the selected text is on one side, and on the other side the translation of it, (the destination and source languages would be predefined) but have the option to change the source and destination languages
Scenario when this would be used?
At any time I would like to translate some text, but I would not like to open the browser, look for a translation site, it would be for a very fast and handy translation
Supporting information
No response

/dup https://github.com/microsoft/PowerToys/issues/18014

authors: cramirezoliveros crutkas


text:
Color picker add copy default code when color selected

Description of the new feature / enhancement
When a color is selected, we should have an option to automatically copy our default code (I use hex, but you can set other defaults) so you can save an extra mouse-click.
Scenario when this would be used?
All the time when selecting colors and needing a code for it. Just select it, and then go to the application you are using it in, instead of selecting color, selecting copy button, then changing apps and pasting.
Supporting information
No response

Hi @jeranon, it actually does that behavior.  I just tested and verified on 0.85.1.  The editor 'copy' was added for when you want to quickly fetch prior selections quickly.
Can you verify quickly?  Thanks!  /needinfo

O.o l will test in the morning! Thank you!


text:
Possible Productivity Mode

When enabled the productivity mode would mildly alter the desktop environment, and also open up a certain number of set applications (VSC, terminal).
A user who uses the same laptop for work and entertainment can easily switch between both of them. When they wish to work, they would enable productivity mode, and the enviroment would appear to change, setting the mood.
Proposed technical implementation details
When enabled:

The desktop wallpaper might change
A fixed set of applications will startup (User defined)

These could be VSC, Terminal, To-Do, Sticky Notes

Other Power Toys might be enabled or disabled (FancyZones)

merging this in with #86

authors: Exorust crutkas


text:
Impossible to use PowerToys Run

Environment
Windows build number: Microsoft Windows [Version 10.0.18363.836]
PowerToys version: v0.18.2
PowerToy module for which you are reporting the bug (if applicable): PowerToys Run

Steps to reproduce
Attempt to launch PT Run via Alt+Space shortcut (or other defined shortcut)
Expected behavior
PowerToys Run should trigger, displaying UI
Actual behavior
PowerToys Run does not trigger

It was working for me before, but recently it stopped working for me as well... :(

It was working for me before, but recently it stopped working for me as well... :(

Before what? Same Windows version?

Same here - seemed to break after 18.2 for me; also W10 Enterprise 1909 (18363.836).

hi @Yellow-Submarine215 Can you share your event logs?

hi @Yellow-Submarine215, another clarification question, are you running PowerToys with admin privileges?

I found it will not run if Power Toys is open as Admin.  Power Toys Run will work if you not using it in Admin mode.

I have verified the problem both when running with and without admin privileges and am sorry to report that the problem seems to persist.

I am able to run PT Run from a command prompt (need the quotes):
"C:\Program Files\PowerToys\modules\launcher\PowerLauncher.exe"

Yep, can confirm working for me when launched from command prompt. Still not working when using keyboard shortcut. Have uninstalled and re-installed to no avail.

authors: Quantum-Prophet Yellow-Submarine215 htcfreek jhuylebroeck jyuwono neilmitchell-goodson saahmedm


text:
KBM sends unnecessary key up on releasing a modifier in a remapped shortcut to key

ℹ Computer information

PowerToys version: master
PowerToy Utility:
Running PowerToys as Admin:
Windows build number: [run "winver"]

📝 Provide detailed reproduction steps (if any)
View keyboard events using a tool like AHK or any other keyboard event logger

Remap Win+Ctrl+A->B
Press Win+Ctrl+A
Release A followed by Ctrl

✔ Expected result
What is the expected result of the above steps?
Key up should be sent for B only once
❌ Actual result
What is the actual result of the above steps?
Key up is sent for B twice successively.
📷 Screenshots
Are there any useful screenshots? WinKey+Shift+S and then just paste them directly into the form

Added in 0.25.  https://github.com/microsoft/PowerToys/releases/tag/v0.25.0

authors: arjunbalgovind crutkas


text:
UI glitches

ℹ Computer information

PowerToys version: 0.29.3
PowerToy Utility:Image Resizer
Running PowerToys as Admin:yes
Windows build number: 19402.685

📝 Provide detailed reproduction steps (if any)

Right click on a jpg file
Click on Resize pictures
Hover or click on elements

✔ Expected result
Regular UI element's behavior
❌ Actual result
Glitch and crash on UI elements
(this happens in layout editor windows too)
📷 Screenshots

@mehrdad-helmi

Glitch and crash on UI elements

Can you elaborate on the crash. Did Image Resizer and FZ Editor crash after you took the snapshot?
Can you check in the Event Viewer is there are events showing the crash log?

@mehrdad-helmi

Glitch and crash on UI elements

Can you elaborate on the crash. Did Image Resizer and FZ Editor crash after you took the snapshot?
Can you check in the Event Viewer is there are events showing the crash log?

Nope this is a problem with WPF where UIElements scale randomly.
One of my users reported this bug
https://github.com/ModernFlyouts-Community/ModernFlyouts/issues/287
Hope this information would help.

Nope this is a problem with WPF where UIElements scale randomly.
One of my users reported this bug
https://github.com/ModernFlyouts-Community/ModernFlyouts/issues/287
Hope this information would help.

authors: ShankarBUS enricogior mehrdad-helmi


text:
Powertoy suggestion: Idle user tracker

Today there is no good and simple way to configure logout of user after a certain amount of idle time, in for example a virtualized zero/thin client environment like vmware horizon. you have the GPO for idle rdp sessions, thats all. it would be helpful with a idle time tracker that could easily be configured to log out someone after a certain amount of time.

You can, thanks to GPO, send a logoff command instead of a screensaver.
You can enforce an idletime before the screensaver is started.

Log off or lock?  I don't know if we'd do a log off as doesn't seem 'power user' and lock already has this ability.  /needinfo

authors: Magissia crutkas janvik207


text:
New array functions

This PR proposed some new functions for the M.Q.Arrays namespace (PR into feature branch).

I branched of the wrong branch. Am going to close this one, and re-create it.

repo: microsoft/QuantumLibraries


text:
Incompatible

I am using on of the Release of Pretrained Models used in USB.
My configuration regarding the network are:
    'net': 'wrn_28_2',
    'use_pretrain': True,
    'pretrain_path': 'https://github.com/microsoft/Semi-supervised-learning/releases/download/v.0.0.0/wrn_28_2_mlp_im_1k_32.pth',

However, I got this error.
_IncompatibleKeys(missing_keys=['classifier.weight', 'classifier.bias'], unexpected_keys=['block1.layer.0.conv1.bias', 'block1.layer.0.conv2.bias', 'block1.layer.0.convShortcut.bias', 'block1.layer.1.conv1.bias', 'block1.layer.1.conv2.bias', 'block1.layer.2.conv1.bias', 'block1.layer.2.conv2.bias', 'block1.layer.3.conv1.bias', 'block1.layer.3.conv2.bias', 'block2.layer.0.conv1.bias', 'block2.layer.0.conv2.bias', 'block2.layer.0.convShortcut.bias', 'block2.layer.1.conv1.bias', 'block2.layer.1.conv2.bias', 'block2.layer.2.conv1.bias', 'block2.layer.2.conv2.bias', 'block2.layer.3.conv1.bias', 'block2.layer.3.conv2.bias', 'block3.layer.0.conv1.bias', 'block3.layer.0.conv2.bias', 'block3.layer.0.convShortcut.bias', 'block3.layer.1.conv1.bias', 'block3.layer.1.conv2.bias', 'block3.layer.2.conv1.bias', 'block3.layer.2.conv2.bias', 'block3.layer.3.conv1.bias', 'block3.layer.3.conv2.bias'])

Sure.
from torchvision import transforms
from semilearn import get_data_loader, get_net_builder, get_algorithm, get_config, Trainer
from semilearn import split_ssl_data, BasicDataset
from semilearn import get_dataset, get_data_loader, get_net_builder, get_algorithm, get_config, Trainer

# define configs and create config
config = {
    'algorithm': 'fixmatch',
    'net': 'wrn_28_2',
    'use_pretrain': True,
    'pretrain_path': 'https://github.com/microsoft/Semi-supervised-learning/releases/download/v.0.0.0/wrn_28_2_mlp_im_1k_32.pth',

    # optimization configs
    'epoch': 100,  # set to 100
    'num_train_iter': 102400,  # set to 102400
    'num_eval_iter': 1024,   # set to 1024
    'num_log_iter': 256,    # set to 256
    'optim': 'SGD',
    'lr': 0.03,
    'batch_size': 16,
    'eval_batch_size': 16,

    # dataset configs
    'dataset': 'imagenet',
    'num_labels': 6727,
    'num_classes': 10,
    'img_size': 224,
    'crop_ratio': 0.875,
    'data_dir': '/root/data1/data',

    # algorithm specific configs
    'hard_label': True,
    'uratio': 2,
    'ulb_loss_ratio': 1.0,
    'include_lb_to_ulb': True,

    # device configs
    'gpu': 0,
    'world_size': 1,
    "num_workers": 6,
    'distributed': False,
    # more
    'amp': False
}

## ---------------------
config = get_config(config)
algorithm = get_algorithm(config,  get_net_builder(config.net, from_name=False), tb_log=None, logger=None)
dataset_dict = get_dataset(config, config.algorithm, config.dataset, config.num_labels, config.num_classes, data_dir=config.data_dir, include_lb_to_ulb=config.include_lb_to_ulb)
train_lb_loader = get_data_loader(config, dataset_dict['train_lb'], config.batch_size)
train_ulb_loader = get_data_loader(config, dataset_dict['train_ulb'], int(config.batch_size * config.uratio))
eval_loader = get_data_loader(config, dataset_dict['eval'], config.eval_batch_size)
algorithm.model = algorithm.model.cuda()
algorithm.train()
algorithm.evaluate()

Can you compare the state_dict of the model and the state_dict of the checkpoint? This might give us some clue where the error is.

Ok.
Here is what I get
check = torch.load('/root/data/wrn_28_2_mlp_im_1k_32.pth')

len(check['model'].keys())
192
##--------------------------------------------------------------------------------------------
## checkpoint keys:
odict_keys(['conv1.weight', 'conv1.bias', 'block1.layer.0.bn1.weight', 'block1.layer.0.bn1.bias', 'block1.layer.0.bn1.running_mean', 'block1.layer.0.bn1.running_var', 'block1.layer.0.bn1.num_batches_tracked', 'block1.layer.0.conv1.weight', 'block1.layer.0.conv1.bias', 'block1.layer.0.bn2.weight', 'block1.layer.0.bn2.bias', 'block1.layer.0.bn2.running_mean', 'block1.layer.0.bn2.running_var', 'block1.layer.0.bn2.num_batches_tracked', 'block1.layer.0.conv2.weight', 'block1.layer.0.conv2.bias', 'block1.layer.0.convShortcut.weight', 'block1.layer.0.convShortcut.bias', 'block1.layer.1.bn1.weight', 'block1.layer.1.bn1.bias', 'block1.layer.1.bn1.running_mean', 'block1.layer.1.bn1.running_var', 'block1.layer.1.bn1.num_batches_tracked', 'block1.layer.1.conv1.weight', 'block1.layer.1.conv1.bias', 'block1.layer.1.bn2.weight', 'block1.layer.1.bn2.bias', 'block1.layer.1.bn2.running_mean', 'block1.layer.1.bn2.running_var', 'block1.layer.1.bn2.num_batches_tracked', 'block1.layer.1.conv2.weight', 'block1.layer.1.conv2.bias', 'block1.layer.2.bn1.weight', 'block1.layer.2.bn1.bias', 'block1.layer.2.bn1.running_mean', 'block1.layer.2.bn1.running_var', 'block1.layer.2.bn1.num_batches_tracked', 'block1.layer.2.conv1.weight', 'block1.layer.2.conv1.bias', 'block1.layer.2.bn2.weight', 'block1.layer.2.bn2.bias', 'block1.layer.2.bn2.running_mean', 'block1.layer.2.bn2.running_var', 'block1.layer.2.bn2.num_batches_tracked', 'block1.layer.2.conv2.weight', 'block1.layer.2.conv2.bias', 'block1.layer.3.bn1.weight', 'block1.layer.3.bn1.bias', 'block1.layer.3.bn1.running_mean', 'block1.layer.3.bn1.running_var', 'block1.layer.3.bn1.num_batches_tracked', 'block1.layer.3.conv1.weight', 'block1.layer.3.conv1.bias', 'block1.layer.3.bn2.weight', 'block1.layer.3.bn2.bias', 'block1.layer.3.bn2.running_mean', 'block1.layer.3.bn2.running_var', 'block1.layer.3.bn2.num_batches_tracked', 'block1.layer.3.conv2.weight', 'block1.layer.3.conv2.bias', 'block2.layer.0.bn1.weight', 'block2.layer.0.bn1.bias', 'block2.layer.0.bn1.running_mean', 'block2.layer.0.bn1.running_var', 'block2.layer.0.bn1.num_batches_tracked', 'block2.layer.0.conv1.weight', 'block2.layer.0.conv1.bias', 'block2.layer.0.bn2.weight', 'block2.layer.0.bn2.bias', 'block2.layer.0.bn2.running_mean', 'block2.layer.0.bn2.running_var', 'block2.layer.0.bn2.num_batches_tracked', 'block2.layer.0.conv2.weight', 'block2.layer.0.conv2.bias', 'block2.layer.0.convShortcut.weight', 'block2.layer.0.convShortcut.bias', 'block2.layer.1.bn1.weight', 'block2.layer.1.bn1.bias', 'block2.layer.1.bn1.running_mean', 'block2.layer.1.bn1.running_var', 'block2.layer.1.bn1.num_batches_tracked', 'block2.layer.1.conv1.weight', 'block2.layer.1.conv1.bias', 'block2.layer.1.bn2.weight', 'block2.layer.1.bn2.bias', 'block2.layer.1.bn2.running_mean', 'block2.layer.1.bn2.running_var', 'block2.layer.1.bn2.num_batches_tracked', 'block2.layer.1.conv2.weight', 'block2.layer.1.conv2.bias', 'block2.layer.2.bn1.weight', 'block2.layer.2.bn1.bias', 'block2.layer.2.bn1.running_mean', 'block2.layer.2.bn1.running_var', 'block2.layer.2.bn1.num_batches_tracked', 'block2.layer.2.conv1.weight', 'block2.layer.2.conv1.bias', 'block2.layer.2.bn2.weight', 'block2.layer.2.bn2.bias', 'block2.layer.2.bn2.running_mean', 'block2.layer.2.bn2.running_var', 'block2.layer.2.bn2.num_batches_tracked', 'block2.layer.2.conv2.weight', 'block2.layer.2.conv2.bias', 'block2.layer.3.bn1.weight', 'block2.layer.3.bn1.bias', 'block2.layer.3.bn1.running_mean', 'block2.layer.3.bn1.running_var', 'block2.layer.3.bn1.num_batches_tracked', 'block2.layer.3.conv1.weight', 'block2.layer.3.conv1.bias', 'block2.layer.3.bn2.weight', 'block2.layer.3.bn2.bias', 'block2.layer.3.bn2.running_mean', 'block2.layer.3.bn2.running_var', 'block2.layer.3.bn2.num_batches_tracked', 'block2.layer.3.conv2.weight', 'block2.layer.3.conv2.bias', 'block3.layer.0.bn1.weight', 'block3.layer.0.bn1.bias', 'block3.layer.0.bn1.running_mean', 'block3.layer.0.bn1.running_var', 'block3.layer.0.bn1.num_batches_tracked', 'block3.layer.0.conv1.weight', 'block3.layer.0.conv1.bias', 'block3.layer.0.bn2.weight', 'block3.layer.0.bn2.bias', 'block3.layer.0.bn2.running_mean', 'block3.layer.0.bn2.running_var', 'block3.layer.0.bn2.num_batches_tracked', 'block3.layer.0.conv2.weight', 'block3.layer.0.conv2.bias', 'block3.layer.0.convShortcut.weight', 'block3.layer.0.convShortcut.bias', 'block3.layer.1.bn1.weight', 'block3.layer.1.bn1.bias', 'block3.layer.1.bn1.running_mean', 'block3.layer.1.bn1.running_var', 'block3.layer.1.bn1.num_batches_tracked', 'block3.layer.1.conv1.weight', 'block3.layer.1.conv1.bias', 'block3.layer.1.bn2.weight', 'block3.layer.1.bn2.bias', 'block3.layer.1.bn2.running_mean', 'block3.layer.1.bn2.running_var', 'block3.layer.1.bn2.num_batches_tracked', 'block3.layer.1.conv2.weight', 'block3.layer.1.conv2.bias', 'block3.layer.2.bn1.weight', 'block3.layer.2.bn1.bias', 'block3.layer.2.bn1.running_mean', 'block3.layer.2.bn1.running_var', 'block3.layer.2.bn1.num_batches_tracked', 'block3.layer.2.conv1.weight', 'block3.layer.2.conv1.bias', 'block3.layer.2.bn2.weight', 'block3.layer.2.bn2.bias', 'block3.layer.2.bn2.running_mean', 'block3.layer.2.bn2.running_var', 'block3.layer.2.bn2.num_batches_tracked', 'block3.layer.2.conv2.weight', 'block3.layer.2.conv2.bias', 'block3.layer.3.bn1.weight', 'block3.layer.3.bn1.bias', 'block3.layer.3.bn1.running_mean', 'block3.layer.3.bn1.running_var', 'block3.layer.3.bn1.num_batches_tracked', 'block3.layer.3.conv1.weight', 'block3.layer.3.conv1.bias', 'block3.layer.3.bn2.weight', 'block3.layer.3.bn2.bias', 'block3.layer.3.bn2.running_mean', 'block3.layer.3.bn2.running_var', 'block3.layer.3.bn2.num_batches_tracked', 'block3.layer.3.conv2.weight', 'block3.layer.3.conv2.bias', 'bn1.weight', 'bn1.bias', 'bn1.running_mean', 'bn1.running_var', 'bn1.num_batches_tracked', 'fc.weight', 'fc.bias', 'mlp.net.0.weight', 'mlp.net.0.bias', 'mlp.net.1.weight', 'mlp.net.1.bias', 'mlp.net.1.running_mean', 'mlp.net.1.running_var', 'mlp.net.1.num_batches_tracked', 'mlp.net.3.weight', 'mlp.net.3.bias'])

##--------------------------------------------------------------------------------------------
from semilearn.nets import *

net = wrn_28_2(num_classes=1000, pretrained=False)

len(net.state_dict().keys())

156

##--------------------------------------------------------------------------------------------
## Model keys:

odict_keys(['conv1.weight', 'conv1.bias', 'block1.layer.0.bn1.weight', 'block1.layer.0.bn1.bias', 'block1.layer.0.bn1.running_mean', 'block1.layer.0.bn1.running_var', 'block1.layer.0.bn1.num_batches_tracked', 'block1.layer.0.conv1.weight', 'block1.layer.0.bn2.weight', 'block1.layer.0.bn2.bias', 'block1.layer.0.bn2.running_mean', 'block1.layer.0.bn2.running_var', 'block1.layer.0.bn2.num_batches_tracked', 'block1.layer.0.conv2.weight', 'block1.layer.0.convShortcut.weight', 'block1.layer.1.bn1.weight', 'block1.layer.1.bn1.bias', 'block1.layer.1.bn1.running_mean', 'block1.layer.1.bn1.running_var', 'block1.layer.1.bn1.num_batches_tracked', 'block1.layer.1.conv1.weight', 'block1.layer.1.bn2.weight', 'block1.layer.1.bn2.bias', 'block1.layer.1.bn2.running_mean', 'block1.layer.1.bn2.running_var', 'block1.layer.1.bn2.num_batches_tracked', 'block1.layer.1.conv2.weight', 'block1.layer.2.bn1.weight', 'block1.layer.2.bn1.bias', 'block1.layer.2.bn1.running_mean', 'block1.layer.2.bn1.running_var', 'block1.layer.2.bn1.num_batches_tracked', 'block1.layer.2.conv1.weight', 'block1.layer.2.bn2.weight', 'block1.layer.2.bn2.bias', 'block1.layer.2.bn2.running_mean', 'block1.layer.2.bn2.running_var', 'block1.layer.2.bn2.num_batches_tracked', 'block1.layer.2.conv2.weight', 'block1.layer.3.bn1.weight', 'block1.layer.3.bn1.bias', 'block1.layer.3.bn1.running_mean', 'block1.layer.3.bn1.running_var', 'block1.layer.3.bn1.num_batches_tracked', 'block1.layer.3.conv1.weight', 'block1.layer.3.bn2.weight', 'block1.layer.3.bn2.bias', 'block1.layer.3.bn2.running_mean', 'block1.layer.3.bn2.running_var', 'block1.layer.3.bn2.num_batches_tracked', 'block1.layer.3.conv2.weight', 'block2.layer.0.bn1.weight', 'block2.layer.0.bn1.bias', 'block2.layer.0.bn1.running_mean', 'block2.layer.0.bn1.running_var', 'block2.layer.0.bn1.num_batches_tracked', 'block2.layer.0.conv1.weight', 'block2.layer.0.bn2.weight', 'block2.layer.0.bn2.bias', 'block2.layer.0.bn2.running_mean', 'block2.layer.0.bn2.running_var', 'block2.layer.0.bn2.num_batches_tracked', 'block2.layer.0.conv2.weight', 'block2.layer.0.convShortcut.weight', 'block2.layer.1.bn1.weight', 'block2.layer.1.bn1.bias', 'block2.layer.1.bn1.running_mean', 'block2.layer.1.bn1.running_var', 'block2.layer.1.bn1.num_batches_tracked', 'block2.layer.1.conv1.weight', 'block2.layer.1.bn2.weight', 'block2.layer.1.bn2.bias', 'block2.layer.1.bn2.running_mean', 'block2.layer.1.bn2.running_var', 'block2.layer.1.bn2.num_batches_tracked', 'block2.layer.1.conv2.weight', 'block2.layer.2.bn1.weight', 'block2.layer.2.bn1.bias', 'block2.layer.2.bn1.running_mean', 'block2.layer.2.bn1.running_var', 'block2.layer.2.bn1.num_batches_tracked', 'block2.layer.2.conv1.weight', 'block2.layer.2.bn2.weight', 'block2.layer.2.bn2.bias', 'block2.layer.2.bn2.running_mean', 'block2.layer.2.bn2.running_var', 'block2.layer.2.bn2.num_batches_tracked', 'block2.layer.2.conv2.weight', 'block2.layer.3.bn1.weight', 'block2.layer.3.bn1.bias', 'block2.layer.3.bn1.running_mean', 'block2.layer.3.bn1.running_var', 'block2.layer.3.bn1.num_batches_tracked', 'block2.layer.3.conv1.weight', 'block2.layer.3.bn2.weight', 'block2.layer.3.bn2.bias', 'block2.layer.3.bn2.running_mean', 'block2.layer.3.bn2.running_var', 'block2.layer.3.bn2.num_batches_tracked', 'block2.layer.3.conv2.weight', 'block3.layer.0.bn1.weight', 'block3.layer.0.bn1.bias', 'block3.layer.0.bn1.running_mean', 'block3.layer.0.bn1.running_var', 'block3.layer.0.bn1.num_batches_tracked', 'block3.layer.0.conv1.weight', 'block3.layer.0.bn2.weight', 'block3.layer.0.bn2.bias', 'block3.layer.0.bn2.running_mean', 'block3.layer.0.bn2.running_var', 'block3.layer.0.bn2.num_batches_tracked', 'block3.layer.0.conv2.weight', 'block3.layer.0.convShortcut.weight', 'block3.layer.1.bn1.weight', 'block3.layer.1.bn1.bias', 'block3.layer.1.bn1.running_mean', 'block3.layer.1.bn1.running_var', 'block3.layer.1.bn1.num_batches_tracked', 'block3.layer.1.conv1.weight', 'block3.layer.1.bn2.weight', 'block3.layer.1.bn2.bias', 'block3.layer.1.bn2.running_mean', 'block3.layer.1.bn2.running_var', 'block3.layer.1.bn2.num_batches_tracked', 'block3.layer.1.conv2.weight', 'block3.layer.2.bn1.weight', 'block3.layer.2.bn1.bias', 'block3.layer.2.bn1.running_mean', 'block3.layer.2.bn1.running_var', 'block3.layer.2.bn1.num_batches_tracked', 'block3.layer.2.conv1.weight', 'block3.layer.2.bn2.weight', 'block3.layer.2.bn2.bias', 'block3.layer.2.bn2.running_mean', 'block3.layer.2.bn2.running_var', 'block3.layer.2.bn2.num_batches_tracked', 'block3.layer.2.conv2.weight', 'block3.layer.3.bn1.weight', 'block3.layer.3.bn1.bias', 'block3.layer.3.bn1.running_mean', 'block3.layer.3.bn1.running_var', 'block3.layer.3.bn1.num_batches_tracked', 'block3.layer.3.conv1.weight', 'block3.layer.3.bn2.weight', 'block3.layer.3.bn2.bias', 'block3.layer.3.bn2.running_mean', 'block3.layer.3.bn2.running_var', 'block3.layer.3.bn2.num_batches_tracked', 'block3.layer.3.conv2.weight', 'bn1.weight', 'bn1.bias', 'bn1.running_mean', 'bn1.running_var', 'bn1.num_batches_tracked', 'classifier.weight', 'classifier.bias'])
##--------------------------------------------------------------------------------------------
# Comparing keys
for key in check['model'].keys():
    if key not in net.state_dict().keys():
        print(key)
##--------------------------------------------------------------------------------------------
block1.layer.0.conv1.bias
block1.layer.0.conv2.bias
block1.layer.0.convShortcut.bias
block1.layer.1.conv1.bias
block1.layer.1.conv2.bias
block1.layer.2.conv1.bias
block1.layer.2.conv2.bias
block1.layer.3.conv1.bias
block1.layer.3.conv2.bias
block2.layer.0.conv1.bias
block2.layer.0.conv2.bias
block2.layer.0.convShortcut.bias
block2.layer.1.conv1.bias
block2.layer.1.conv2.bias
block2.layer.2.conv1.bias
block2.layer.2.conv2.bias
block2.layer.3.conv1.bias
block2.layer.3.conv2.bias
block3.layer.0.conv1.bias
block3.layer.0.conv2.bias
block3.layer.0.convShortcut.bias
block3.layer.1.conv1.bias
block3.layer.1.conv2.bias
block3.layer.2.conv1.bias
block3.layer.2.conv2.bias
block3.layer.3.conv1.bias
block3.layer.3.conv2.bias
fc.weight
fc.bias
mlp.net.0.weight
mlp.net.0.bias
mlp.net.1.weight
mlp.net.1.bias
mlp.net.1.running_mean
mlp.net.1.running_var
mlp.net.1.num_batches_tracked
mlp.net.3.weight
mlp.net.3.bias

It looks like only some bias terms are missing from the backbone. I suspect that this is because we have changed the minor code of wrn once during last update. Can you use other backbones except wrn for now?

I am doing some experiments specifically on the the wrn network. May I know why you changed the minor code of wrn ?
could you please provide the old code for the wrn that corresponding to the existing Release of Pretrained Models used in USB ? In addition, do you think that training using the pretrained weight with those missing keys is working well? or the performance will be the same as training from scratch.
Thanks indeed for clarifying this out.

I am doing some experiments specifically on the the wrn network. May I know why you changed the minor code of wrn ? could you please provide the old code for the wrn that corresponding to the existing Release of Pretrained Models used in USB ? In addition, do you think that training using the pretrained weight with those missing keys is working well? or the performance will be the same as training from scratch.
Thanks indeed for clarifying this out.

We were not using the pre-trained wrn anyway (wrn is only used for training from scratch)...you can trace back the commits and use the wrn network there. Or you can copy wrn network from TorchSSL which I think would be the same as the checkpoint.
BTW, in your user case, it doesn't make sense to conduct semi-supervised learning on ImageNet using ImageNet pre-trained  wrn.

We were not using the pre-trained wrn anyway (wrn is only used for training from scratch)...you can trace back the commits and use the wrn network there. Or you can copy wrn network from TorchSSL which I think would be the same as the checkpoint. I do think without those missing bias terms, it will still work.

Ok, Thank you.

BTW, in your user case, it doesn't make sense to conduct semi-supervised learning on ImageNet using ImageNet pre-trained wrn.

I am not using it for imagenet, my datasets are small, probably at the scale of CIFAR-10 or even smaller. That's why I opted for wrn. Correct me if I'm wrong in this regard.

We were not using the pre-trained wrn anyway (wrn is only used for training from scratch)...you can trace back the commits and use the wrn network there. Or you can copy wrn network from TorchSSL which I think would be the same as the checkpoint. I do think without those missing bias terms, it will still work.

Ok, Thank you.

BTW, in your user case, it doesn't make sense to conduct semi-supervised learning on ImageNet using ImageNet pre-trained wrn.

I am not using it for imagenet, my datasets are small, probably at the scale of CIFAR-10 or even smaller. That's why I opted for wrn. Correct me if I'm wrong in this regard.

Then I think it is okay to use the pre-trained weights.

My question has been fully answered! Thanks

authors: Hhhhhhao opencomvis

repo: microsoft/Semi-supervised-learning


text:
Unable to set up spconv in Python 3.12

I'd like to open this one.
Seems like none of the versions of cumm would work in Python 3.12.
The error I'm getting
File "E:\tmp\spconv\setup.py", line 154, in
from cumm.gemm.main import GemmMainUnitTest
File "E:\ComfyUI\ComfyUI_windows_portable\python_embeded\Lib\site-packages\cumm\gemm\main.py", line 30, in
from cumm import tensorview as tv
File "E:\ComfyUI\ComfyUI_windows_portable\python_embeded\Lib\site-packages\cumm\tensorview_init_.py", line 27, in
from cumm.core_cc import tensorview_bind
ImportError: DLL load failed while importing core_cc: The specified module could not be found.
Happens on any version, both when installed from pip and compiled from source with CUMM_DISABLE_JIT=1
I also tried to compile with CUMM_DISABLE_JIT=0, but it has some weird linker error (uses x86 compiler instead of x64), even though I use the correct VC environment
Anyone's got any solutions to this?

Issue with spconv was addressed in this commit https://github.com/FindDefinition/cumm/commit/3c858fad554acca476a13b6e668348a305bbc740
Make sure to install spconv and cumm separately. Since spconv requires cumm <v0.5.0, it either has to be compiled from source, or installed with --no-deps

repo: microsoft/TRELLIS


text:
Try add PWA support

Let's see what this looks like on the PR build, can't easily test.

OK, that looks good 👍  from 0 -> 1

repo: microsoft/TypeScript-Website


text:
Wrong typing for document.open

TypeScript Version:  3.6.3
document.open (lib.d.ts) typing is wrong:
open(url?: string, name?: string, features?: string, replace?: boolean): Document;

correct is:
open(url: string, name: string, features: string): Window | null;
open(type?: string, replace?: string): Document;

https://developer.mozilla.org/en-US/docs/Web/API/Document/open
Related Issues:
https://github.com/Microsoft/TypeScript/issues/25495

See #31246

@RyanCavanaugh it's about document.open, not window.open

http://help.dottoro.com/ljvkwlod.php

If more than two parameters are set for the document.open method, then it works like the window.open method. This page describes that case only if at most two parameters are set for the document.open method. For other cases, please see the page for the window.open method

I have no idea how all the different browsers behave here but don't really see the point in breaking people using the 4-argument variant for the sake of getting better argument names as proposed here (or maybe I'm missing something). Is there some case where you're getting an error that you shouldn't be?

@RyanCavanaugh Problem with return type. When document.open called with 3 (or more) arguments -
return type should be Window | null. But now it returns Document

As of #44684, Document's open is now:
open(unused1?: string, unused2?: string): Document;
open(url: string | URL, name: string, features: string): WindowProxy | null;

authors: RyanCavanaugh jakebailey sirian

repo: microsoft/TypeScript


text:
typeRoots are ignored for normal type resolution when types are specified.

TypeScript Version:  3.x - 4.0.3
Search Terms: types typeRoots
Code
tsconfig.json
{
  "compilerOptions": {
    "strict": true,
    "esModuleInterop": true,
    "outDir": "dist",
    "types": ["node"],
    "typeRoots": [
      "node_modules/@types",
      "src/typings"
    ]
  },
  "files": [
    "src/index.ts"
  ]
}

Expected behavior:
https://www.typescriptlang.org/tsconfig#typeRoots

By default all visible ”@types” packages are included in your compilation.
If typeRoots is specified, only packages under typeRoots will be included.

https://www.typescriptlang.org/tsconfig#types

This option does not affect how @types/* are included in your application code ...
When you have this option set, by not including a module in the types array it:

Will not add globals to your project (e.g process in node, or expect in Jest)
Will not have exports appear as auto-import recommendations

So according to docs types option does not prevent resolving normal import "foo" (as it is related only to types of global symbols), and typeRoots should modify the lookup list when resolving normal imports.
Actual behavior:
If types are specified, typeRoots are ignored for imported modules not listed in types, tsc looks for types in  node_modules and node_modules/@types.
Playground Link: N/A
Related Issues:

Another more obvious setup which fails because of this is when local typings are not in the include list.
This one fails to look into ./typings.
{
  "compilerOptions": {
    "strict": true,
    "esModuleInterop": true,
    "outDir": "dist",
    "types": ["node"],
    "typeRoots": [
      "./node_modules/@types",
      "./typings"
    ]
  },
  "include": [
    "src"
  ]
}

But this one is ok.
{
  "compilerOptions": {
    "strict": true,
    "esModuleInterop": true,
    "outDir": "dist",
//    "types": ["node"],
    "typeRoots": [
      "./node_modules/@types",
      "./typings"
    ]
  },
  "include": [
    "src"
  ]
}

And this one is ok as a workaround.
{
  "compilerOptions": {
    "strict": true,
    "esModuleInterop": true,
    "outDir": "dist",
    "types": ["node"]
  },
  "include": [
    "src",
    "./typings"
  ]
}

Note that these subtly differ from the original intention, as with typeRoots missing or ignored tsc looks for additional node_modules in .., ../.. etc.

Which files are you putting where, and how are you trying to import them?

Created repro https://github.com/pelepelin/TypeScript-issue-41198

Another person advised me that

The goal of types and typeRoots is to eagerly pull in types
types and typeRoots is not part of module resolution

If that's true, then my issue is invalid. However, I did not see this in the documentation.

If you specify types, as you did here, then the automatic enumeration of your typeRoots doesn't happen. A correct tsconfig would be
    "types": ["node", "dnscache"],
    "typeRoots": [
      "node_modules/@types",
      "src/typings"
    ]

authors: RyanCavanaugh pelepelin


text:
Unexpected lack of type error when the exactOptionalPropertyTypes flag is not set

Bug Report
🔎 Search Terms
is:issue exactoptionalpropertytypes
🕗 Version & Regression Information
This changed between versions 4.4.3 and later.
⏯ Playground Link
Playground link with relevant code
💻 Code
type BaseEntity = Object;

type DrillDownToEntity<T> = T extends BaseEntity ?
    T : T extends ReadonlyArray<infer U> ? DrillDownToEntity<U> : never;

type Relations<T extends BaseEntity> = {
    [K in keyof T as DrillDownToEntity<T[K]> extends never ? never : K]?: Relations<DrillDownToEntity<T[K]>>
}

/**
 * If T is not array-like, replace it with U. If it is, replace it with same level of arrays of U.
 */
type ChangeType<T, U> = T extends Array<infer A> ? Array<ChangeType<A, U>> : U;

type PickKeysInRelation<T extends BaseEntity, R extends Relations<T>> = {
  [K in keyof T as DrillDownToEntity<T[K]> extends never ? K : (K extends keyof R ? K : never)]: K extends keyof R ? ChangeType<T[K], PickKeysInRelation<DrillDownToEntity<T[K]>, R[K]>> : T[K]
}

🙁 Actual behavior
Following error occurs even when exactOptionalPropertyTypes flag is set.
Type 'R[K]' does not satisfy the constraint 'Relations<DrillDownToEntity<T[K]>>'.
  Type 'R[string] | R[number] | R[symbol]' is not assignable to type 'Relations<DrillDownToEntity<T[K]>>'.
    Type 'R[string]' is not assignable to type 'Relations<DrillDownToEntity<T[K]>>'.
      Type 'Relations<DrillDownToEntity<T[string]>> | undefined' is not assignable to type 'Relations<DrillDownToEntity<T[K]>>'.
        Type 'undefined' is not assignable to type 'Relations<DrillDownToEntity<T[K]>>'.(2344)

🙂 Expected behavior
No such error to occur, since when exactOptionalPropertyTypes flag is set, R[K] cannot be undefined according to the type definition.
ℹ Further information
The error is gone when I select 4.5.0-beta or Nightly (which is v4.5.0-dev.20211007 as of now). However, it is gone in these versions even when the exactOptionalPropertyTypes flag is not set. If my understanding is correct, the error should actually be there when this flag is unset, hence not sure why the error is gone in these versions even with the flag is unset.
Also, the following attempt to workaround this error does not work either:
type PickKeysInRelation<T extends BaseEntity, R extends Relations<T>> = {
  [K in keyof T as DrillDownToEntity<T[K]> extends never ? K : (K extends keyof R ? K : never)]:
    K extends keyof R ?
        (R[K] extends Relations<DrillDownToEntity<T[K]>> ? ChangeType<T[K], PickKeysInRelation<DrillDownToEntity<T[K]>, R[K]>> : never) :
        T[K]
}

We don’t put all bug fixes into patch releases, only super critical ones. The fix for 4.4.3 will go out in 4.5. The behavior you’re currently seeing in nightly will probably not be addressed right away. It would be helpful if you could come up with the smallest repro possible that doesn’t depend on any external libraries.

@andrewbranch Removed external library from the code sample.

authors: andrewbranch ugultopu


text:
Type all exported members according to some interface

🔍 Search Terms

"type export with" keyword combination.
quality of life change

✅ Viability Checklist

[X] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[X] This wouldn't change the runtime behavior of existing JavaScript code
[X] This could be implemented without emitting different JS based on the types of the expressions
[X] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[X] This isn't a request to add a new utility type: https://github.com/microsoft/TypeScript/wiki/No-New-Utility-Types
[X] This feature would agree with the rest of our Design Goals: https://github.com/Microsoft/TypeScript/wiki/TypeScript-Design-Goals

⭐ Suggestion
Allow typing all exported tokens as if they were members of some defined interface or type.
// interface.ts
export interface Person {
  age?: number;
  name: string;
}

// my-person.ts
import { Person } from "./interface";

// this is new and does the following
// require all exports to be one of the member properties of Person
// enables autocomplete on exported token names
// types exported tokens according to matching member names in Person
type export with Person;

// this named export is required and must be a string
export const name = "Foo";

// this named export is optional, but if defined must be a number
export const age = 42;

// not sure if other exports should be allowed

// other.ts

import * as person from "./my-person";

// person has type Person as defined in interface.ts

📃 Motivating Example
Next.js has many files which it looks for. Next expects these files to export members conforming to its own interface. Currently it's up to developer to type each individual member separately. These types need to be separately imported from Next as well. Documentation (if it exists) needs to be consulted for each expected member export.
type export with solves or improves many of these issues. type export with defines what tokens should be exported, so auto-complete can be used to fill in names after typing export const .... Furthermore it defines types for each of these tokens, so individual tokens don't need to be independently typed.
Here's an example of what is currently needed to properly type a layout.
import { Metadata } from "next";
import { ReactNode } from "react";

export const generateMetadata = async () => {
	const { t } = await loadPageTranslations("layout-root");

	return {
		title: t("title"),
		description: t("description")
	} satisfies Metadata as Metadata;
};

export default async function RootLayout({
	children
}: {
	children: ReactNode;
	// other props must be individually typed
}) {
	// nothing verifies the component return type
	return (

				{children}

	);
}

Here's how this file could be typed with this proposal.
import { LayoutFile } from "next";

type export with LayoutFile;

// generateMetadata is optional
// if defined it must be an async function with a return value of a specific shape
// `generateMetadata` is also mutually exclusive with `metadata`, so error if both are defined
export const generateMetadata = async () => {
	const { t } = await loadPageTranslations("layout-root");

	// return object key names are autocompleted and values are type-checked
	return {
		title: t("title"),
		description: t("description")
	};
};

// default export is required to be defined by LayoutFile and must satisfy React's component type with proper typings for expected props
export default async function RootLayout({ children }) {
	return (

				{children}

	);
}

💻 Use Cases

What do you want to use this for? I want strict type-checking with as little friction as possible. This would be especially helpful for frameworks that expect certain files to define certain exports.
What shortcomings exist with current approaches? Assuming types are provided, each individual export in a file needs to be typed separately. There is no mechanism to verify exports conform to a particular interface.
What workarounds are you using in the meantime? Importing multiple types and using them ad-hoc to check exported members, as shown above.

Duplicate of #38511.

Woops! Sorry about that! I did look, but I guess not hard enough. My proposal uses a different keyword, but I'm not married to that detail.

authors: MartinJohns ravinggenius


text:
Only print "file change detected" if program changed

Fixes #46949
Testing on a few projects, updateProgram is cheap (a couple of milliseconds), so I don't think this will have a negative impact. I'm not sure if this is generically true, though, or just specific to my Linux machine and what I tested.
I have no idea how to test this, though, except manually.

@typescript-bot pack this

I have no idea how to test this, though, except manually.

I said, not realizing there are tests for it that I could have run and now fail. Oops.

This is the wrong fix as-is, as updateProgram can print out the Watching for file changes message immediately, whereas I assumed it would be scheduled for some unspecified time in the future.


text:
Windows /mnt files all marked as EXEC despite file ending settings in dircolors

When in WSL/Bash and I run ls within and Windows /mnt all files are marked as EXEC despite file ending settings in dircolors. I know that all files within Windows have the executable permission and that is baked in, but shouldn't a configuration which is specific to a file extension override a configuration for a general classification of EXEC in dircolors or ex in LS_COLORS?
My config:
LS_COLORS="rs=0:mh=00:di=01;36:fi=0:ln=35:pi=35:so=35:bd=35:cd=35:or=35:mi=35:ow=37:ex=34:*.env=32"; echo ${LS_COLORS} | tr \: \\n; ls -la;
rs=0
mh=00
di=01;36
fi=0
ln=35
pi=35
so=35
bd=35
cd=35
or=35
mi=35
ow=37
ex=34
*.env=32

Also, leaving ex unset just keeps the default settings, continuing to override the file ending specific one.
LS_COLORS="rs=0:mh=00:di=01;36:fi=0:ln=35:pi=35:so=35:bd=35:cd=35:or=35:mi=35:ow=37:*.env=31"; echo ${LS_COLORS} | tr \: \\n; ls -la;
rs=0
mh=00
di=01;36
fi=0
ln=35
pi=35
so=35
bd=35
cd=35
or=35
mi=35
ow=37
*.env=31

Yields:

In both of these, I would expect for vars.env to be colored differently (Green in the top image and red in the bottom one) from the other files.
This is on build 14393.1198

In both of these, I would expect for vars.env to be colored differently (Green in the top image and red in the bottom one) from the other files.

Blue on top and green on the bottom is the behaviour on Real Linux™ for a 0777 vars.env with your two configs.

So file extensions will never override the 2 letter 'main' categories?

@erichiller - I wouldn't know. I just tried your scenario on the Ubuntu VM I had up and it behaves the same as WSL.
@benhillis (apologies for the ping). Something that's been nagging at the back of my head for some time is whether WSL could use the GENERIC_EXECUTE bit of ACCESS_MASK on DrvFs to some advantage. The use-case here is literally that people don't like the color of their ls output. Literally. That's the problem. So maybe give them 0666 if GENERIC_EXECUTE is set and 0777 if is not. Forget the extended attributes in this context.
Concretely: For chmod(2) calls on DrvFs files, if S_IXUSR is set, then set the GENERIC_EXECUTE bit, and report the mode as 0777. Mask S_IXGRP and S_IXOTH entirely. If GENERIC_EXECUTE is not set, report the mode as 0666. This is "incorrect" behaviour of course. But then doing a no-op on chmod() is not correct behaviour either.
I don't know if doing that would have other unintended consequences that I haven't considered, which is why I've kept the thought to myself. But you'd make a lot of people happy with the incremental change. Not me mind you. I just want to underline that when people say "I need the permission bits for development" what they really mean is "I don't like the colors ls gives me". Possibly that can be addressed.

@therealkenc - This is probably a better question for @SvenGroot but I think the problem is that virtually all files have the GENERIC_EXECUTE bit set.

Drvfs already uses the execute permission to determine whether the execute bit is set in the permission it reports in WSL. The problem is, as @benhillis said, that pretty much all files in Windows have the execute permission.
Allowing chmod usage to remove the execute bit is not easily done. We would have to manipulate the ACL of the file, and it's not straight forward to just remove execute permissions. Which users are we removing it from? Everyone? What if the file has inherited permissions? Permissions on Windows aren't as simple as on Linux, so an approximation is the best we can do.
We do have plans to bring more Linux metadata support to Drvfs, which may at least partially alleviate this issue for some cases.

@SvenGroot

The problem is, as @benhillis said, that pretty much all files in Windows have the execute permission.

Yes that's most unfortunate. Maybe places the idea in the "not worth it" category. The theory here is that libraries like libuv's uv_fs_chmod could, I think, follow suit. Meaning Windows VSCode would automatically follow suit. Ditto Cygwin/MSYS2, ie Windows Git. Needless to say, NOTEPAD.EXE is a write-off.

Allowing chmod usage to remove the execute bit is not easily done.

That I believe.

Which users are we removing it from? Everyone?

No, the SID of the user running the lx session. If that user doesn't have an entry in the ACL for the file, do nothing. Which is no worse that what chmod() on WSL does now.

What if the file has inherited permissions?

Then you follow them (I don't think you have a choice, right). If you can't change the bit, do nothing. Just like now.

We do have plans to bring more Linux metadata support to Drvfs

Awesomeness. But... Anything you do in that area would need the same kind support in libuv, Cygwin, or (for that matter) WRT anyway. If you bring more metadata to DrvFs, that work would supersede any improvement done with respect to allowing WSL chmod() to flip the GENERIC_EXECUTE bit.
But you can fix the original poster's problem right now (I think?). You tell him to chmod(1) the files and his ls colors will look fine.
Allowing for the caveat: maybe not worth it, of course. Call it an idle thought.

chmod has no effect on windows files though does it? (At least it did not on my machine)

chmod has no effect on windows files though does it? (At least it did not on my machine)

Yep.

Chmod has one effect: you can use it to toggle the read-only attribute. If you remove all writable bits, the read-only attribute will be turned on; if you add writable bits, it will be turned off. This is the same behavior that CIFS uses with a mounted SMB share on real Linux.

My system sees all files as EXEC, and directories as either STICKY_OTHER_WRITABLE, OTHER_WRITABLE. It appears orphan symlinks are working too but I haven't had a chance to verify. For anyone else wrestling with getting a decently readable terminal that should get you limping along at least.
The following settings get me

STICKY_OTHER_WRITABLE 34
OTHER_WRITABLE 34
EXEC 37

It would be great to get full support of course, but I couldn't begin to understand the undertaking that might require.

This is an old thread, but I just stumbled across this with exactly the original question: on WSL, all files under /mnt are recognized as exectutable by default; this is fine, but can I tell ls to ignore this executable bit and just color by file ending?
Turns out, you can do exactly this (at least it worked for me): just set ex=0. Equivalently, if you're using .dircolors to generate LS_COLORS, set EXEC 0.
Stolen from here: https://unix.stackexchange.com/questions/458482/how-to-prevent-ls-colors-ex-from-overriding-extension-color-settings

authors: SGrosse-Holz SvenGroot benhillis erichiller matthewsimo therealkenc

repo: microsoft/WSL


text:
can not map \wsl$\xxx\xxx path to a network drive

Please use the following bug reporting template to help produce issues which are actionable and reproducible, including all command-line steps necessary to induce the failure condition. Please fill out all the fields! Issues with missing or incomplete issue templates will be closed.
If this is a console issue (a problem with layout, rendering, colors, etc.), please post to the console issue tracker.
Important: Do not open GitHub issues for Windows crashes (BSODs) or security issues.  Please direct all Windows crashes and security issues to secure@microsoft.com.  Ideally, please configure your machine to capture minidumps, repro the issue, and send the minidump from "C:\Windows\minidump".\
See our contributing instructions for assistance.
Please fill out the below information:

Your Windows build number:  (Type ver at a Windows Command Prompt)
10.0.19013.1
wsl2 with ubuntu 18.04

What you're doing and what's happening:  (Copy&paste the full set of specific command-line steps necessary to reproduce the behavior, and their output. Include screen shots if that helps demonstrate the problem.)

in explorer, mapping a network driver with path \wsl$\Ubuntu-18.04 succeeded,
in console, "dir \wsl$\Ubuntu-18.04\home" can display directory correctly.
in explorer mapping a network driver with path \wsl$\Ubuntu-18.04\home failed, with error windows can not access \wsl$\Ubuntu-18.04\home

What's wrong / what should be happening instead:
mapping \wsl$\Ubuntu-18.04\home a network driver should succeed

Strace of the failing command, if applicable:  (If some_command is failing, then run strace -o some_command.strace -f some_command some_args, and link the contents of some_command.strace in a gist here).

For WSL launch issues, please collect detailed logs.

Ref #3854. Could you please rephrase this as a step of Powershell CLI steps to be clear what you are doing.

Not the author, but I was able to reproduce this. The general idea is that you can map to the root folder of a WSL, but not any deeper.  The author is able to map \\wsl$\Ubuntu to a drive, but if you add the \home, the mapping fails.
I don't believe there's any way to map drives through powershell.

Alright.... for lack...

I'm experiencing the same limitation on 10.0.19030.1 & wsl2 with Ubuntu 18.04.

Any progress on this? A year later and it still persists.

authors: Tulitomaatti Vaelek dustyjewett ijesonchen therealkenc