Data quality

[Short description explaining the high-level reason for the pull request]
Changes

Testing

Notes
Checklist

[x] PR has an informative and human-readable title (this will be pulled into the release notes)
[ ] Changes are limited to a single goal (no scope creep)
[x] Code can be automatically merged (no conflicts)
[ ] Code passed the pre-commit check & code is left cleaner/nicer than when first encountered.
[ ] Passes all existing automated tests
[ ] Any change in functionality is tested
[ ] New functions are documented (with a description, list of inputs, and expected output)
[ ] Placeholder code is flagged / future TODOs are captured in comments
[ ] Project documentation has been updated if adding/changing functionality.
[ ] Reviewers requested with the Reviewers tool :arrow_right:

Testing checklist
Python - local testing

[ ] python 3.6
[ ] python 3.7

See docstring for check_output for basic design.
Will need to rebase/fix some stuff up. However, there are some questions that this raises:

How to handle the notion of "anonymous nodes". E.G. nodes that are used as intermediaries in a subdag. Our example of this is the node that computes the results before feeding it to a data validator. I propose a central name\_node(prefix, suffix, **kwargs) function that does a stable hash of the inputs, allowing for readable prefixes/suffixes

The weird API that we have in wihch you pass either a set of kwargs for the default resolver or a list of custom resolvers. I propose two separate APIs. Both check_outputs and check_outputs.custom(*validators). Ideally they should both go to the same API, but the problem is that we can't resolve arguments without knowing the dependent node types...

Say we decorate @extract_columns with @check_output. This brings up some qs. (1) Should this create one DQ checks for each column. IMO yes. (2) What if you just want to decorate specific columns? I think this is too much complexity to handle for now, but we could add provisions later on. (3) What

How to get a report of DQ results? IMO node tags should be decorated with DQ metadata -- we should be able to pretty easily query it.

Some tasks prior to this being ready:

[ ] Add a set of new default decorators
[ ] Add documentation
[ ] Move to experimental
[ ] Add unit tests
[ ] Rebase from main
[ ] Merge tagging branch, set this to merge against main

Alright, not 100% done but functional. Remaining:

[ ] End to end examples in documentation
[ ] Solve a bug in which layering decorators will cause two nodes of the same name
[ ] Fish around for feedback

And then later tasks:

[ ] Provide some integrations (looking at whylabs)
[ ] Market

OK, this is pretty close for a first release (rc version).

A quick summary for the whylogs folks.
what this does
This PR adds a new decorator for hamilton functions. This decorator does data quality checks. It has two modes: warn and fail -- should be easy to figure out what these do :)
The decorator has two modes of working with it:

Passing in default arguments to use a set of included validators (check_output)
Passing in a custom validator

(1) looks something like this:
# Note that this actually produces two as it uses two arguments
@check_output(range=(0, 1), allow_nans=False, importance='fail')
def data_between_0_and_1_with_no_nans(some_input: pd.Series) -> pd.Series:
    ...

Where (2) looks something like this:
# Note that this actually produces two as it uses two arguments
@check_output_custom(
    MyCustomDataInRangeValidator(low=0, high=1),
    MyCustomNoNansAllowedValidator()
def data_between_0_and_1_with_no_nans(some_input: pd.Series) -> pd.Series:
    ...

how this fits into hamilton/the hamilton plan
This is another step towards making an all-encompassing dataflow tool. The small set of included validators should cover some base cases (and are extensible). We hope to encourage
your task
We would love feedback! From you...

Check out the branch/mess around with it -- write a basic dataflow to use for testing
Look at the class DataValidator
Write one!

Happy to pair as needed. Also happy to make changes in case we need any more abstractions.

Example showing check_output nodes and what the graph would look like:

Some pandera riffs:
Idea: don't pass in any kwargs and instead pull from the Pandera type annotation?
import pandera as pa
from pandera.typing import DataFrame, Series

@check_output(level=) # pull info from type annotations
def foo(bar: Series[int]) -> Series[float]:
    """Could also just use pandera for more explicit typing!"""
    return float(bar)

class DFSchema(pa.SchemaModel):
    hourly_pay: Series[float] = pa.Field(ge=7)
    hours_worked: Series[float] = pa.Field(ge=10)

class AugmentedSchema(DFSchema):
    revenue: Series[float]

@check_output(level=) # assume Pandera types with no further info.
def baz(my_df: DataFrame[DFSchema]) -> DataFrame[AugmentedSchema]:
    copy = my_df.copy()
    copy.assign(revenue=100.0)
    return copy

Or what if you didn't need check_output? You instead just annotated the types as expected.
Then in the driver you import the hamilton pandera module (this is what flytekit does to turn on the integration) -- and boom it enforces checks when the graph is built?
So from a guiding principles stand point, we should support the simplest things possible. To me there are some equivalences here -- and we could use Pandera under the hood for Pandas types it seems? 🤔
Reference docs:

https://pandera.readthedocs.io/en/latest/reference/generated/pandera.typing.html
https://pandera.readthedocs.io/en/latest/dtypes.html

Also this appears to show all that Pandera implements (see kwargs):

https://pandera.readthedocs.io/en/stable/reference/generated/pandera.model_components.Field.html

series_schema = pa.SeriesSchema(...)
def foo(i: Series[int]) -> Series[series_schema]:
    # turn on runtime checking in driver for everything - else we do static.

@check_output(level=hamilton.WARN)
def foo(i: Series[int]) -> Series[series_schema]:
    # turns on checks -- makes this warn.

@check_output(level=WARN, ge=12, le=100, ...)
def foo(i: pd.Series) -> pd.Series:
    # equivalent to series_schema, but static checks are less useful.

@check_output(level=WARN, ge=12, le=100, ...)
def foo(i: Series[int]) -> Series[series_schema]:
    # inherit from schema, and override/or only add from decorator.

@check_output_custom(MyValidator(...))
def foo(i: Series[int]) -> Series[series_schema]:
    # we only use the annotation for type checking
    # -- otherwise the validation only comes from running the validator

Some things I'd like to do:
Before release

[ ] Prove out that we can do the whylogs goal of having multiple checks share the same profile (just need to show that we can have the right abstraction)
[ ] Prove that we can have column-level decorators -- IMO this is a node-specific argument. E.G. this check applies to this node...

After release

[ ] Add configs to shut off specific validators at config-time
[ ] Add configs to shut off all validations

FYI all the above are illustrated in this PR: https://github.com/stitchfix/hamilton/pull/149. Not working yet but it demonstrates that we can do what we want, and that's enough for me.

assign

OK so pandera integration is here and its pretty clean IMO. That said, the above is going to be tricky due to decorators...
E.G. when we do an extract_columns on a DataFrame[df_schema] to do this right we'll need that to handle the typing correctly so each node produces the right Series[series_schema] where series_schema represents the subschema of df_schema. Doable, but not sure how worth it it is (as of now), from the implementation perspective.


function() implements () => unknown {}

Suggestion

🔍 Search Terms

function implements
✅ Viability Checklist

My suggestion meets these guidelines:

[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 feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion

Allow to add a implements Type for a function (not arrow functions). This would allow to easily use a function type on a non-arrow function.
📃 Motivating Example

export default function Component(props) implements React.FC {
    // ...
}

💻 Use Cases

Usually whenever we want to use a function type from a library such as react, we tend to do one of the two things:

add the argument and return types ourselves
create a new variable for a function with most likely an arrow function

This isn't awful to have to deal with but most people prefer using function  instead of arrow functions whenever declaring a function which is not a call-back for a function.  Another problem is that we can't type a function whenever using export.
Here is how we currently make and export a function:
const Component: React.FC = (props) => {
    // ...
}

export default Component;

or
export default function Component(props: {}): React.ReactElement<any, any> {
    // ...
}

Here is how it could be done:
export default function Component(props) implements React.FC {
    // ...
}

Duplicate of #22063 and other similar proposals

Duplicate of #22063 and other similar proposals

5 years ago and still no implementation....

Wait until you hear how long there have been feature suggestions in C++!


Servo gimbal

Added servo gimbal class provided by @LorenzMeier
Enabled attitude compensation by default
Implemented yaw compensation
Added missing MAVLink enum definitions for Gimbal related operations
Got rid of float equality checks in Gimbal class
Defined gimbal mixer scales for the "default" SK450 DeadCat inline servo gimbal with recommended servos.
Made aux output pwm rate, min, max, disarmed and failsafe values configurable the same way as for the main outputs

Its a bit surprising most CI systems failed on this PR - is there some build breakage?

Ah yes - you need to rebase on master. The CI tools don't accept ancient branches.

This PR was rebased to the latest master right before creating it. This is the branch parent commit:
Commit: cf7f59e1f32977e49be9367b6441076ef77fa884 [cf7f59e]
Parents: 0261f5dfbe, dfd6be78bf
Author: Lorenz Meier<EMAIL_ADDRESS>Date: March 3, 2015 at 9:33:11 AM PST
Labels: origin/master origin/HEAD master
Merge pull request #1874 from DonLakeFlyer/RCParams
Add RC_CHAN_CNT, RC_TH_USER for QGC

git -c core.askpass=true fetch --tags --progress https://github.com/PX4/Firmware +refs/pull/:refs/remotes/origin/pr/
ERROR: Timeout after 10 minutes
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from https://github.com/PX4/Firmware

Cloning into 'Tools/genmsg'...
No output has been received in the last 10 minutes, this potentially indicates a stalled build or something wrong with the build itself.
The build has been terminated

It loos like there were some problems with the git repos access.

@LorenzMeier all build issues are gone.

@LorenzMeier I have implemented the conversion from Quaternion to Euler, but I have not tested this code as not quite sure how to do this.
Can you either help me out or test it yourself, please?

Looks good, there is little chance its not correct. I will try it in the next days, just received my servo gimbal.

Hey Anton,
I'm testing this ServoGimbal implementation but I'm having some problems: https://groups.google.com/forum/#!topic/px4users/24id7IhwcHM
Could you help me with this?


Missing NSUs that should exist in US.en.json

Recently I checked some titles only exist in KR.ko.json (01000C9015D42000 and 0100F0E01CADC000) but these supposedly also exist in US shop.
Then I checked these titles should be contained in these USA nsus, but they don't exist in US.en.json:
01000C9015D42000:<PHONE_NUMBER>4362
0100F0E01CADC000:<PHONE_NUMBER>1305
There could be more but these are the ones I've spotted for now.

Here are more missing nsu entries in US.en.json that I found (and their expected id and releaseDate values)
nsuId:70010000044362 id:01000C9015D42000 releaseDate:20231109
nsuId:70010000071305 id:0100F0E01CADC000 releaseDate:20231109
nsuId:70010000070081 id:0100CAC01C3EC000 releaseDate:20231109
nsuId:70010000073459 id:010018401D34E000 releaseDate:20231111
nsuId:70010000069038 id:01002F801BEA8000 releaseDate:20231112
nsuId:70010000064674 id:0100B6301ABD6000 releaseDate:20231114
nsuId:70010000061768 id:0100ADB019DDA000 releaseDate:20231114
nsuId:70010000064211 id:010094E01AA20000 releaseDate:20231114
nsuId:70010000073068 id:01009E300F83A000 releaseDate:20231115
nsuId:70010000070346 id:010037A01C53A000 releaseDate:20231117

I see them now. Thank you for updating!

I see them now. Thank you for updating!

Its still updating, I took the opportunity to refresh the entire database which will take days. You should see a lot more data coming in, in about 2 days.


[prim_dom_and_2share] Switch to single randomness input and prim_xor2/prim_flop_en

This PR contains two commits:

Switch to a single randomness input as in the paper. Previously, we were using two but they always had to be driven the same value for correct operation anyway.
Use prim_xor2/prim_flop_en instead of inline synthesis contraints/comments as in the AES S-Boxes. This is more portable.

Could you remove EnNegedge parameter?

Yes sure.


misc(net): unify naming

unify some internal naming conventions and misc renaming.

Codecov Report

Merging #358 (747e6fa) into main (70635b7) will increase coverage by 0.00%.
The diff coverage is 67.85%.

@@           Coverage Diff           @@
##             main     #358   +/-   ##
=======================================
  Coverage   73.72%   73.72%
=======================================
  Files         231      231
  Lines       21950    21947    -3
=======================================
- Hits        16183    16181    -2
+ Misses       5767     5766    -1

Impacted Files
Coverage Δ

crates/net/network/src/state.rs
50.22% <65.38%> (+0.44%)
:arrow_up:

crates/net/network/src/fetch/mod.rs
73.50% <100.00%> (-0.85%)
:arrow_down:

crates/net/network/src/manager.rs
42.77% <100.00%> (ø)

crates/net/network/src/listener.rs
84.09% <0.00%> (+2.27%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


How can we edit containers without getting NullPointerException?

I am trying to populate a comboBox (Also set text to some labels, and a couple more things, but let's keep it simple in this example, let's focus on the comboBox, as every case basically has the same problem):
I have a comboBox declared in a FXML file, the FXML file loads well but I get NullPointerException when trying to edit the information of the ComboBox, this is what I have (Reduced, to keep it simple, the actual code adds a lot more cities):
@FXML
ComboBox myComboBox;

@PostConstruct
public void init() throws Exception {
    myComboBox.getItems().clear(); //Make sure it is clear
    myComboBox.getItems().add("Madrid");
}

I get NullPointerException when trying to clear the information, if I delete the clear(), I also get NullPointerException when trying to add any element to the ComboBox, it feels like the ComboBox is still not loaded even though I set init() to @PostConstruct.
What am I doing wrong here?
Thank you for your patience.

Hello,
if you can provide the fxml for this controller, we might able to help.
Regards,

@mayuso In your FXML file have you set the ComboBox's fx:id to fx:id="myComboBox"? If not this would cause a NullPointerException. As referencing FXML from Java requires the Java variable name to be the same as the fx:id of the desired FXML element, example @FXML ComboBox myComboBox needs fx:id="myComboBox". Otherwise the compiler, throws a NullPointerException because the FXML is never injected during initialization therefore your ComboBox variable is null, yet your init method is still attempting to call its methods.

Example
For the Java code you have provided
@FXML
ComboBox myComboBox;

@PostConstruct
public void init() throws Exception {
    myComboBox.getItems().clear(); //Make sure it is clear
    myComboBox.getItems().add("Madrid");
}

Requires an FXML ComboBox element with fx:id="myComboBox"
<ComboBox fx:id="myComboBox" maxHeight="-Infinity" maxWidth="-Infinity" minHeight="-Infinity" minWidth="-Infinity" prefWidth="150.0" />

Thank you both for your answers.
I just checked my whole code and realised I was trying to add text to my elements (ComboBox, Labels...) from another controller class which was trying to add new text before the elements were loaded. Newbie fails, I guess.
I am sorry. JFoenix is working fine, I am the one who is not.


Forwarded email does not retain columns

Describe the bug
Forwarded email does not retain columns, they change to rows instead.
To Reproduce
Steps to reproduce the behavior:

Create a file with this MJML code:

<mjml>
  <mj-body>
    <mj-section>
      <mj-column>
        <mj-text font-size="20px" color="#F45E43" font-family="helvetica">1</mj-text>
      </mj-column>
      <mj-column>
        <mj-text font-size="20px" color="#F45E43" font-family="helvetica">2</mj-text>
      </mj-column>
      <mj-column>
        <mj-text font-size="20px" color="#F45E43" font-family="helvetica">3</mj-text>
      </mj-column>
    </mj-section>
  </mj-body>
</mjml>

Render it to HTML by using https://mjml.io/try-it-live
Send the HTML - columns are OK.
Forward the message - columns are no more, rows appear instead.

Expected behavior
Forwarded message should be consistent with the original and retain columns.
MJML environment (please complete the following information):

OS: Windows
MJML Version 4.9.3
MJML tool used https://mjml.io/try-it-live

Email sending environment(for rendering issues):

Sending via Debian Apache2 Server with PHP
Forwarding via gmail.com

Affected email clients (for rendering issues):

Email Client gmail.com
OS: Windows
Browser Google Chrome

Screenshots
Original message:

Forwarded message:

Forwarding email alter the HTML, there's nothing we can do about this


Sj filter

@devinmarieb We have some refactoring to do but the filter is now working!  Take a look and let me know what you think!

Also just pushed up the user list functionality that we just went through.


Apply flat discounts to Infracost (e.g. AWS EDP or Azure EA discounts)

Feature Request: Apply a flat discount rate to the infracost output.
Request for feedback

Which of the following 3 options do you need?
👍 if you'd like to upvote this or receive updates.

Option 1 will be sufficient for now.

Will it work on a self-hosted model too as discounted contracts could be sensitive?

Hi everyone, option 1, that we discussed is now live on Infracost Cloud 🎉 You can define the percentage discounts that should be applied for AWS, Azure and Google, see the docs for more information - feel free to email me at<EMAIL_ADDRESS>if you need more help with custom prices.


Bump trunk version to 0.12.12

Build is blocked by https://linear.app/tembo/issue/TEM-2826/trunk-install-expecting-wrong-sha


Add pyproject.toml for Custom Node Registry

We are working with dr.lt.data and comfyanon to build a global registry for custom nodes (similar to PyPI). Eventually, the registry will be used as a backend for the UI-manager. All nodes go through a verification process before being published to users.
The main benefits are that authors can

publish nodes by version and users can safely update nodes knowing ahead of time if their workflows will break or not
automate testing against new commits in the comfy repo and existing workflows through our CI/CD dashboard

Action Required:

[ ] Go to the registry. Login and create a publisher id (everything after the @ sign on your registry profile).
[ ] Add the publisher id into the pyproject.toml file.
[ ] Merge the separate Github Actions PR, then merge this PR.

If you want to publish the node manually, install the cli by running pip install comfy-cli, then run comfy node publish
Check out our docs if you want to know more about the registry. Otherwise, feel free to message me on discord at haohao_81202 or join our server if you have any questions!

hey @nicofdga, wanted to send a small nudge and ask if you had any questions!

@nicofdga, wondering if there's any way we can support you on this PR!


Error: Traceback (most recent call last):

          Error: Traceback (most recent call last):

File "/telegram-onedrive/modules/handlers/transfer.py", line 43, in transfer_handler
onedrive.stream_upload(buffer, name)
File "/telegram-onedrive/modules/onedrive/init.py", line 88, in stream_upload
request.send(data=buffer)
File "/usr/local/lib/python3.8/site-packages/onedrivesdk/request_base.py", line 132, in send
self._client.auth_provider.authenticate_request(self)
File "/telegram-onedrive/modules/onedrive/_rewrite.py", line 71, in authenticate_request
self.refresh_token()
File "/usr/local/lib/python3.8/site-packages/onedrivesdk/auth_provider.py", line 263, in refresh_token
self._session.refresh_session(rcont["expires_in"],
KeyError: 'expires_in'
This is the error that occurred recently

Originally posted by @ShamilSd-ux in https://github.com/hlf20010508/telegram-onedrive/issues/13#issuecomment-2063150874

Recreate container and try again.
Here it works fine.
It felt like it was your network problem.


Sencha cmd 5.0.3 and touch 2.4.1 - build failed

Hi, when I build a sencha touch 2.4.1 app using deftjs 0.9.1 with sencha cmd 5.0.3 I get the following:
[ERR] C2008: Requirement had no matching files (data.controller) -- /home/ubuntu/workspace/[...]/packages/deft/src/js/mixin/Controllable.js:94:1
[ERR]
[ERR] BUILD FAILED
[ERR] com.sencha.exceptions.ExBuild: Failed to find any files for /home/ubuntu/workspace/[...]/packages/deft/src/js/mixin/Controllable.js::ExtRequire::data.controller
[ERR]
[ERR] Total time: 7 seconds
[ERR] The following error occurred while executing this line:
/home/ubuntu/bin/Sencha/Cmd/<IP_ADDRESS>4/plugins/touch/2.3/plugin.xml:334: The following error occurred while executing this line:
/home/ubuntu/workspace/[...]/.sencha/app/build-impl.xml:378: The following error occurred while executing this line:
/home/ubuntu/workspace/[...]/.sencha/app/init-impl.xml:296: com.sencha.exceptions.ExBuild: Failed to find any files for /home/ubuntu/workspace/[...]/packages/deft/src/js/mixin/Controllable.js::ExtRequire::data.controller

If I use sencha cmd 4 it works; should we expect a new release of deftjs? Or is deftjs5 the "newcomer"?
Many thanks for considering my request.

@Majstore, I have the very same problem. Did you find a solution to this?

@bentrm I still have the problem - I didn't find the solution.

Looks like Sencha addressed the bug I filed on this in Cmd 5.1.1: http://www.sencha.com/forum/showthread.php?296405

Was able to build with CMD version Sencha Cmd v<IP_ADDRESS>installed via sencha upgrade. Seems to be fixed.

Excellent, good to hear. Thanks.


The "function based values" example on the documentation page shows an unexpected behaviour

The "function based values" example on the documentation page shows an unexpected behaviour. Indeed, we can see that the translateX and translateY are not animating in parallel (so the div don't move diagonally but vertically then horizontally or vice versa) it seems that there is a different delay between these properties animation though the documentation mentions that function based property parameters get different values (of delay for example) for every target and not for every target and property. Could you please clarify? Could you also please explain why the duration property is mentioned twice (one with anime.random(1200, 1800) and the other with anime.random(800, 1600)) and what is its effect (it isn't explained in the documentation).
Thank you in advance for your explanations.

You're right, it was misleading, but having different values for every target and property is the correct behaviour.
Will be fixed in next release.
(The double duration was a typo)

Thank you very much for these clarifications !


Turbolinks issue with doubleclick floodlights

Hi,
I have a website which uses many doubleclick floodlights.
With Turbolinks enabled when I navigate to a page which uses floodlight i end up with a blank page.
If I look at the code, looks like the "document.write" in the floodlight replaces the whole page, while normally it should only append a iframe to the DOM structure.
Is there anything we can do to make it work? Something to replace in the floodlight?

This sounds like an issue with floodlights. Please post code / reproducible steps or close this issue.


Add I2S pinctrl definition for ESP32C3 and ESP32S3

Add I2S pinctrl definition for ESP32C3 and ESP32S3
Compile components/hal/i2s_hal.c

BTW, would you squash all commits in a single one? I see no reason to not doing so.

Thanks for the review. The only reason is that I do not have an esp32s2 to test it, I can do it in another commit :)
Ok, I"ll squash them!


Input files from obtaining the arrays should be deleted

Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

Description of the bug
Getting array parameters leave a bunch of temps files.

Steps To Reproduce
NA
Which Operating System are you using?
Windows
Which Python version are you using?
3.7
Installed packages
NA

I think this has been fixed in:

https://github.com/pyansys/pymapdl/pull/1835
https://github.com/pyansys/pymapdl/pull/943


MudDataGrid =>Server Side Filtering, Sorting and Pagination

Feature request type
Performance improvement
Component name
MudDataGrid
Is your feature request related to a problem?
Server Side Filtering, Sorting and Pagination such as MudTable
Describe the solution you'd like
such as MudTable
Have you seen this feature anywhere else?
No response
Describe alternatives you've considered
No response
Pull Request

[ ] I would like to do a Pull Request

Code of Conduct

[X] I agree to follow this project's Code of Conduct

+1

How about the ServerData-property on MudDataGrid?
https://mudblazor.com/api/datagrid#properties

I'm trying to wrap around the ServerData property. Can someone provide example how to initiate and use it?

Hi, try something like this:
MudDataGrid ServerData="(at)Products"
private async Task<GridData<Product?>> Products(GridState<Product?> gridState)
{
// Here request with informations from "gridState"
// and return new GridData
}

The ServerData property isn't super useful when using a Flux/Redux pattern such as Fluxor. I'd prefer to use the Items property, but I still want to implement server-side filtering, sorting, and paging.
Not directly related, but I think resolving #6433 & #6583 (and also an EventCallback for page changed) will allow for more direct control over implementing custom server-side logic.

How can I send the object of a line as the information of the same line to the ServerData method?

Hope my demonstration of how to use ServerData here is useful to someone:
https://stackoverflow.com/questions/77008207/use-mudblazor-muddatagrid-to-load-paged-data-from-an-api

@zootius thank you your answer, it helped me a lot.
I have grid in tab component and when I go to another tab and back then I lose grid state (pagination, sorts and filters..)
I was able to store current page and pageSize with your solution.
Then
Filters I restored via:
_grid.FilterDefinitions
Sorts I restored via:
foreach (var sortDefinition in sortDefinitions)
        {
            _grid.SortDefinitions.Add(sortDefinition.SortBy, sortDefinition);
        }

but a sort index in grid header (on UI) is always zero.
Do you know how to fix it, please?
Thank you.

@zootius thank you your answer, it helped me a lot.
I have grid in tab component and when I go to another tab and back then I lose grid state (pagination, sorts and filters..) I was able to store current page and pageSize with your solution. Then Filters I restored via: _grid.FilterDefinitions
Sorts I restored via:
foreach (var sortDefinition in sortDefinitions)
        {
            _grid.SortDefinitions.Add(sortDefinition.SortBy, sortDefinition);
        }

but a sort index in grid header (on UI) is always zero. Do you know how to fix it, please? Thank you.

Use:
await dataGrid.ExtendSortAsync(datagrid_column.PropertyName, YOUR_SOURCE.IsDescending ? SortDirection.Descending : SortDirection.Ascending, ( => YOUR_SOURCE.Name) or what you want to use as sort func, null);

@XPhilipp thank you it works :)

think this can be closed?


is this support nest Viewpager?

Tablayout+viewpager+fragment, and the swipecard is in third fragmen， is there have any conflict? my english is badly- - - -

The library's AdapterView is consuming onTouch events like any other view. You need to workaround on your parent view to capture and consume the touch events.


Feature try-out exploration [Matter controller + Border Router] (TZ-402)

Hello there,
I would like to combine the esp-matter-controller with the esp-thread-br as a single application.
What is the suggested way of getting this started?
By the way, are there any internal development for the same planned already?
Curious to know.

We have an example to integrate Thread BR and matter controller, the code is under internal review. I will update here once it's available on Github.

@chshu - Thanks for your response. Would you mind asking the ETA?

@chshu - Thanks for your response. Would you mind asking the ETA?

It will be available in the next week.

The Thread BR and Matter controller integration example is now available: https://github.com/espressif/esp-matter/tree/main/examples/controller, please refer to this commit https://github.com/espressif/esp-matter/commit/fd033440c7a9147f45800eb9d2e7e4c9e258e46a for the major change.

Hey @chshu - Thanks for sharing this. After having a look, my first question is, are the pairing functionalities (pairing ble-wifi and pairing ble-thread) been purged in this release?
If so, this integration needs additional device acting as Matter controller for commissioning things to the network?

Yeah, if so, we need the chip-tool running, right? I'm looking for getting the controller with commissioning ability running combined with esp-thread-br, how can I do it?

Yeah, if so, we need the chip-tool running, right? I'm looking for getting the controller with commissioning ability running combined with esp-thread-br, how can I do it?

The commission command is also supported: https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html#pairing-commands
But note that it uses the local test PAA for device attestation, it's only an experimental feature, can't be used for production.
Commissioner is normally the Phone APP, and need some cloud based solution for NOC signing.


[HxInputDate] - Navigation in calendar with MinDate&MaxDate - previous month click skipped, next month returns to the first month

HxInputDate value is limited by MinDate and MaxDate
Click on the next month
Click on the previous month
The selected month does not change (bug)
Click on the next month until the last month is selected.
Click on the next month, first month is selected (bug)

Note, the Value of the HxInputDate is out of the MinDate-MaxDate range.
https://github.com/havit/Havit.Blazor/assets/5111719/a8e5915b-62dc-42a3-bac8-52c9b364def2

"Value of the HxInputDate is out of the MinDate-MaxDate range".
Lets resolve the #794 first (we might come to conclusion, that we should throw exception on invalid combination of parameters and this issue becomes obsolete then?)

To me, if #794 is resolved, then this one will become obsolete. Unless there's something else about this bug, of course :)
Since validation is on the end-user side, technically you would only need to change the month that is displayed according to previous/next buttons. Invalid months would be striked-through, indicating an out-of-bounds date.


Search for a particular string in EventHub messages

Hi ,
I am using the  Service bus explorer to see the messages in EventHub Kafka . I am able to see the messages in the explorer . But I dont see any way to search for a particular string in the message . Let us say, I am getting thousands of messages in the Eventhub and I want to search whether I have received a message with a particular string .I am not sure whether that option is already there .Can you please help me here

I would also love this feature for the message queues. I have, since taking on a project, put significant fields in the message properties so we can query that way, but to be able to query the content of all the historical messages without these properties would be amazing.

Disclaimer: I am not trying to shoot down the idea, rather discuss the feasibility of this feature request.
Messaging services are not the same as databases. They were not designed to query data. Querying is usually done on the data that is processed and stored. Take the Azure Service Bus for example. Messages can be at most peeked and that's it. If you want to perform a search on the payload of the messages it would mean peeking all those messages (downloading them for a preview) and performing the search. While it could be done, it poses some questions. For example, Would you expect to be able to search through all the messages? Even if there are thousands of those?
Perhaps the need to search stems from a business requirement that should be thought of in a different way? I don't have all the information and can't really guess, but I would love to learn about your scenarios.


Monitor: add checkbox to monitor list

so that users don't have to hold CTRL to select multiple entries, and it's more obvious what to do to show the graph.
Merge after #12343 as there might be some conflicts, but changes are compatible.

This has a nice PR number.

Conflicts indeed.

Oops

Conflict resolved


updated color module references in the combobox module

Fixes the broken dependency references for SystemColors in the ComboBox module.

@currtis,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot


Large Amount of nodes slow to reload

Godot version
"3.5 stable"
Plugin version
1.1.0
Platform
Win10
Issue description
I was testing this amazing plugin and filled up a scene with thousands of blades of grass.
The scene is over 20MB!
Yet, I cannot reopen it in Godot now, as it's possibly too big. It eventually loads (after 5 minutes).
Steps to Reproduce

Fill up scene with thousands of nodes
Save the scene
CLose the scene
4.Try to reopen

Minimal reproduction project
If applicable, please paste a link to minimal reproduction project that shows this issue in action.

I made a similar scene just now. Not AS big but takes a while to even open.
It should be attached here. (testSpatialGardener.zip)

Github dislikes my brower so the file (testSpatialGardener.zip) is here:
https://ufile.io/ii2bw5xg

Okay, I took a look at your project.
If you have the same setup in your actual game, then the plugin itself is not the issue here.
I opened the scene, it loaded after around 15 seconds, and then lagged hard, and the lag persisted.
However, I noticed that you have a Spawned Spatial assigned for your sole LOD Variant. This means that every one of 15 thousand instances spawns a node in your level. Godot is simply not meant to handle this amount of 3D nodes. You don't really need to assign a Spawned Spatial unless you want custom logic or physics on each of your plants/cones. Assigning a Mesh is enough. Spawned Spatial was promarily made to handle collision with rarer plants, like trees (100-500 instances for one level).
I deleted the Spawned Spatial, reopened the project and it took only around 3-5 seconds to load. AND the lag was gone.
Also, your current scene totals at around 1'000'000 triangles (64 per cone), which might have a performance impact if you want other geometry in your level like terrain, buildings and characters. Stick with simpler meshes for grass and make heavy use of LODing and KIll Distance.
If you're not familiar with these, check out my tutorials:

Video
Text

That said, if you were to go into into 50k-100k instances you would see some saving/loading slowdown.
To reiterate: it doesn't seem to be the root of your problems.
But I think I know of a way to optimize level size, but it will affect/break backward compatability.
So I'll have to consider it carefully for now.

Ah yes, it is the spatials, I see.
Some thoughts:
1)Could a message appear if the scene was taking too long to load, e.g.:
"Spatials are causing a long delay. Do you wish to stop loading the spatials and just load the meshes?"
It would allow the user to open the scene quickly and delete some spatials.
2)A dream addition to this plugin would be:
When the mesh is loaded the spatial is loaded, when the mesh is killed, the spatial is killed too!
But this is probably not possible, just putting it out there!
Thank you anyway for this fine plugin

If by 'when the mesh is killed, the spatial is killed too' you meant zooming away and triggering the KIll Distance Treshold - it's already a thing.
If you meant clearing the Mesh property inside LOD Variant - that's counterintuitive and souldn't happen.
I'll think about adding a message, but that seems like a bit too much handholding. It is also explicitly stressed in the tutorial, so it seems excessive
Perhaps there can be an additional counter which shows how many Spatials are spawned? That way you'll see the problem before it leads to lags. Idk.

Optimized in v1.2.0


(342) Return users answers when returning to the questionnaire

This adds a Check Your Answers page to the end of each section in the referral questionnaire. It's required a few tweaks to the plumbing, but I think we're overall in a better place. I could have improved the e2e tests to check the responses show in the CYA page, but this can come later
Screenshots of UI changes

 Return user's answers when returning to the questionnaire


Submit matike

LGTM

Coverage decreased (-1.6%) to 72.195% when pulling 037a9dbf3a3d6cf743ba5787bbc353f7f63b555f on submit-matike into 8d8d0419fd4dc2c9eb55a645e351508d6dfc82a8 on master.

Coverage decreased (-2.03%) to 72.892% when pulling d95e696af44badc8fdd3cf709bc54d1efb333208 on submit-matike into ebb590bee98495bbdab4e7e2e4bff942b06874d5 on master.


Use the new protocol APIs and upload package callbacks in GDT CCT

Also regenerate the proto classes for the addition of the event_code field.

It's probably time to go home when I'm failing to count to 7 :) LGTM


Add an option to choose the sass compiler

Looks like my latest PR but with sass option instead of compiler? Well yes, it's ok for me :)

Released in v2.4.0!


Allow mixins to describe custom elements

Addresses feedback in https://github.com/runem/web-component-analyzer/pull/157

I would still like to clarify this before merging https://github.com/webcomponents/custom-elements-manifest/pull/31#discussion_r523755782

Hey @justinfagnani now that all the holidays are behind us, any chance we could pick up this discussion again? 🙂

Hey @justinfagnani now that all the holidays are behind us, any chance we could pick up this discussion again? 🙂

Nice, LGTM 👍


feat: minimal deployment docker image

super small docker image for nitro

What's the impact of this? What would devs/users be able to do?

Providing a docker image would allow people to create a docker-compose.yml file that has Nitro and an application that uses the API, such as SillyTavern. The minimal size of Nitro makes it great for this type of use. Other people can create a docker image easily, but it is nice when it is provided by an official source so it is known to be up-to-date.


Add new datasource interface

When adding more datasource supports in the future, it will be more easy.

/kind cleanup
/lgtm
/approve
/hold
leave hold cancel to @vicoooo26, which means if you agree with this approach, you should put the hold cancel command here.

I'll approve this as blocking on the PR, if you have other concerns, we can follow up on them.
/hold cancel
/lgtm


No internet connectivity from WSL2/Ubuntu

Your Windows build number:  10.0.19041.84

What you're doing and what's happening:

I'm getting timeouts when trying to connect to internet from a WSL2 instance. DNS works, and the WSL2 instance can see/ping the host without problem.
$ ip route
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/20 dev eth0 proto kernel scope link src <IP_ADDRESS>
$ cat /etc/resolv.conf
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to /etc/wsl.conf:
# [network]
# generateResolvConf = false
nameserver <IP_ADDRESS>
$ dig +noall +answer microsoft.com
microsoft.com.          0       IN      A       <IP_ADDRESS>
microsoft.com.          0       IN      A       <IP_ADDRESS>
microsoft.com.          0       IN      A       <IP_ADDRESS>
microsoft.com.          0       IN      A       <IP_ADDRESS>
microsoft.com.          0       IN      A       <IP_ADDRESS>
$ curl -4sv -m5 https://microsoft.com/
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* After 2498ms connect time, move on!
* connect to <IP_ADDRESS> port 443 failed: Connection timed out
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* After 1249ms connect time, move on!
* connect to <IP_ADDRESS> port 443 failed: Connection timed out
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* After 623ms connect time, move on!
* connect to <IP_ADDRESS> port 443 failed: Connection timed out
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* After 311ms connect time, move on!
* connect to <IP_ADDRESS> port 443 failed: Connection timed out
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* After 155ms connect time, move on!
* connect to <IP_ADDRESS> port 443 failed: Connection timed out
* Failed to connect to microsoft.com port 443: Connection timed out
* Closing connection 0

Based on what I know about Hyper-V networking, my Internal switch may or may not route packets from the VM to the internet, but in order for packets to be routed back, the traffic from the WSL2 VM will need to be NAT'ed.
On the host, in Powershell, Get-NetNat returns no results:
PS C:\WINDOWS\system32> Get-NetIPAddress -InterfaceIndex 59 | Format-Table

ifIndex IPAddress                                       PrefixLength PrefixOrigin SuffixOrigin AddressState PolicyStore
------- ---------                                       ------------ ------------ ------------ ------------ -----------
59      fe80::xxxx:xxxx:xxxx:xxxx%59                              64 WellKnown    Link         Preferred    ActiveStore
59      <IP_ADDRESS>                                               20 Manual       Manual       Preferred    ActiveStore

PS C:\WINDOWS\system32> Get-VMSwitch -name WSL | Format-List

Name                                             : WSL
Id                                               : 32874a54-04c6-4677-a51f-77c5245345a5
Notes                                            :
Extensions                                       : {Microsoft Windows Filtering Platform, Microsoft Azure VFP Switch Extension, Microsoft NDIS Capture}
BandwidthReservationMode                         : Absolute
PacketDirectEnabled                              : False
EmbeddedTeamingEnabled                           : False
IovEnabled                                       : False
SwitchType                                       : Internal
AllowManagementOS                                : True
NetAdapterInterfaceDescription                   :
NetAdapterInterfaceDescriptions                  :
NetAdapterInterfaceGuid                          :
IovSupport                                       : False
IovSupportReasons                                :
AvailableIPSecSA                                 : 0
NumberIPSecSAAllocated                           : 0
AvailableVMQueues                                : 0
NumberVmqAllocated                               : 0
IovQueuePairCount                                : 0
IovQueuePairsInUse                               : 0
IovVirtualFunctionCount                          : 0
IovVirtualFunctionsInUse                         : 0
PacketDirectInUse                                : False
DefaultQueueVrssEnabledRequested                 : True
DefaultQueueVrssEnabled                          : False
DefaultQueueVmmqEnabledRequested                 : True
DefaultQueueVmmqEnabled                          : False
DefaultQueueVrssMaxQueuePairsRequested           : 16
DefaultQueueVrssMaxQueuePairs                    : 0
DefaultQueueVrssMinQueuePairsRequested           : 1
DefaultQueueVrssMinQueuePairs                    : 0
DefaultQueueVrssQueueSchedulingModeRequested     : StaticVrss
DefaultQueueVrssQueueSchedulingMode              : Dynamic
DefaultQueueVrssExcludePrimaryProcessorRequested : False
DefaultQueueVrssExcludePrimaryProcessor          : False
SoftwareRscEnabled                               : False
BandwidthPercentage                              : 0
DefaultFlowMinimumBandwidthAbsolute              : 0
DefaultFlowMinimumBandwidthWeight                : 0
CimSession                                       : CimSession: .
ComputerName                                     : NB-XXXXXXX
IsDeleted                                        : False
DefaultQueueVmmqQueuePairs                       : 0
DefaultQueueVmmqQueuePairsRequested              : 16

When trying to set up a new NAT rule, I get a seemingly unrelated error:
PS C:\WINDOWS\system32> New-NetNat -Name "WSLNetworkNAT" -ExternalIPInterfaceAddressPrefix <IP_ADDRESS>/20
New-NetNat : The parameter is incorrect.
At line:1 char:1
+ New-NetNat -Name "WSLNetworkNAT" -ExternalIPInterfaceAddressPrefix 17 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (MSFT_NetNat:root/StandardCimv2/MSFT_NetNat) [New-NetNat], CimException
    + FullyQualifiedErrorId : Windows System Error 87,New-NetNat

I have the same problem, however I get this output from Get-NetNat:
Name                             : NATNetwork2
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : <IP_ADDRESS>/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

Name                             : NATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : <IP_ADDRESS>/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

Name                             : MyNATnetwork
ExternalIPInterfaceAddressPrefix :
InternalIPInterfaceAddressPrefix : <IP_ADDRESS>/24
IcmpQueryTimeout                 : 30
TcpEstablishedConnectionTimeout  : 1800
TcpTransientConnectionTimeout    : 120
TcpFilteringBehavior             : AddressDependentFiltering
UdpFilteringBehavior             : AddressDependentFiltering
UdpIdleSessionTimeout            : 120
UdpInboundRefresh                : False
Store                            : Local
Active                           : True

$ ip route
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/20 dev eth0 proto kernel scope link src <IP_ADDRESS>

A colleague helpfully pointed out that Symantec Endpoint Protection includes a firewall that blocks the requests from the WSL2 context. (Incidentally, Symantec EP is according to themselves "not supported" for workloads that include running VM's in Hyper-V.)
As for the NAT rules -- with the firewall temporarily disabled I can do a request to the internet, but Get-NetNAT still does not return anything, so, apparently, these NAT rules are not needed for WSL2. I'm now wondering how it does work under the hood.

@rm-bergmann Those NAT rules you're seeing could be related to other virtual switches. You should be able to find out using Get-NetIPAddress | Format-Table and Get-NetAdapter cmdlets -- you can correlate the interfaceIndex fields.

@j0057 Thank you, you have helped me solve my problem that I have been debugging for over 3 months! Those NAT rules that I had there (probably from previous VM's) were conflicting with WSL2, so I removed them with Remove-NetNat and boom! WSL2 networking is fixed (in my case)!

I ran into this for much of today on 10.0.19546. I have no NetNATs, have Windows AV, and disabled the firewall for testing. WSL1 works fine, WSL2 does not.
From inside WSL2 I could ping my host interfaces and DNS worked fine, but nothing routed.
I experimented with removing options, explicitly setting interface metrics, uninstalling and reinstalling docker, reboots, but nothing worked. I eventually found this partial workaround:

Manually enable Internet Connection Sharing: right click the network adapter you want to share, properties, sharing, then enable it for vEthernet (WSL).

The IP address for WSL now changed to some default ICS IP, <IP_ADDRESS>. In WSL2 Ubuntu, edit the eth0 interface to be in the same subnet:  ip addr add <IP_ADDRESS>/24 dev eth0

Change the default gateway (ip route delete default and ip route add default via <IP_ADDRESS>)

Change DNS (manually edit /etc/resolv.conf)

And it finally had internet. It goes back to defaults on wsl2 shutdown, of course. This also doesn't handle moving from wired to wireless.
Something is definitely broken in the Hyper-V NAT / Routing pieces for vEthernet (WSL), but I couldn't figure it out.

@natronkeltner Small data point: when I navigate to the Sharing tab of both my uplink adapter as well as the vEthernet adapter, they say "Internet Connection Sharing has been disabled by the Network Administrator". So I'm not even sure how networking is supposed to work in WSL2!

So I went through this entire thread as well as #4731 with no solution to my problem, which is slightly different:
I am able to ping internet resources, such as google.com or <IP_ADDRESS>, but I can't access them with wget or curl (e.g., curl -4v google.com).
I went so far as to uninstall Ubuntu-18.04, disable the Windows Feature Windows Subsystem for Linux, then re-enable/re-install. I've messed with the network address and routing settings. I've messed with Hyper-V adaptors. I've messed with Windows reserved ports and dynamic port ranges which have been an issue for me in the past. Still no-go. Some output:
$ ping <IP_ADDRESS>
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=56 time=55.9 ms
$ curl -4v <IP_ADDRESS>
* Rebuilt URL to: <IP_ADDRESS>/
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
^C

So I thought, what else is a lightweight utility VM? Windows Sandbox! So I opened that and in there I can ping, but not browse (with edge) as well... However with curl.exe I can get google.com's redirect page to www.google.com but not www.google.com itself... :(

I eventually found the underlying problem I had which caused my networking to break in WSL2. My previous fix (hack) to set up a network bridge didn't fix my underlying problem. I found that I had some NAT adapters from previous VM's that were set up in Hyper-V. Removing them fixed all my network issues.
In powershell I ran the cmd Get-NetNat and there were 3 NAT's listed. I shutdown WSL and I ran the Remove-NetNat cmd, which restored my networking and internet connectivity in WSL2.

Yeah, I tried that - I had no NetNat objects listed.
I should add that I'm on the latest insider build and have the Docker WSL engine installed, but I disabled that as part of hunting down this issue.
~Sidney Borne

From: Rick Bergmann<EMAIL_ADDRESS>Sent: Monday, March 9, 2020 9:29:42 AM
To: microsoft/WSL<EMAIL_ADDRESS>Cc: Sidneys1<EMAIL_ADDRESS>Comment<EMAIL_ADDRESS>Subject: Re: [microsoft/WSL] No internet connectivity from WSL2/Ubuntu (#4926)
I eventually found the underlying problem I had which caused my networking to break in WSL2. My previous fix (hack) to set up a network bridge didn't fix my underlying problem. I found that I had some NAT adapters from previous VM's that were set up in Hyper-V. Removing them fixed all my network issues.
In powershell I ran the cmd Get-NetNat and there were 3 NAT's listed. I shutdown WSL and I ran the Remove-NetNat cmd, which restored my networking and internet connectivity in WSL2.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHubhttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FWSL%2Fissues%2F4926%3Femail_source%3Dnotifications%26email_token%3DAANQNYO5EKR3SFITXRJO273RGTVMNA5CNFSM4K2LF42KYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEOHDZTQ%23issuecomment-596524238&data=02|01||3fca426de3fe457243a908d7c42dedb7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637193573840897310&sdata=6AIGivGThP83E0uyjtPZdIkT5EVv%2BhaBbR8e4l16znE%3D&reserved=0, or unsubscribehttps://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAANQNYLQGOORIJMAQ5C62WTRGTVMNANCNFSM4K2LF42A&data=02|01||3fca426de3fe457243a908d7c42dedb7|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637193573840907315&sdata=H7HxvxN83G%2B04Yvm0RoJyuAJz0f6qpgN8OSe512BqY0%3D&reserved=0.

I finally found the underlying problem! I installed Wireshark and attached to the WSL vSwitch to see if I could diagnose the problem there and...
Turns out all the Ping replies were coming from the same MAC address - and that MAC belonged to an OpenVPN TAP NIC on my host. I uninstalled the NIC and wsl --shutdown/restarted and networking works again!
It looks like WSL2 connects to the "best looking" NIC on the host, even if that NIC isn't network-connected. They should add a wsl.conf setting to control what NIC WSL2 gets attached to.

They should add a wsl.conf setting to control what NIC WSL2 gets attached to... and do that for each WSL2 distro, and allow not to use bridge, and... it is still going to worldwide distribution "as is" apparently as W10 2004. I had high hopes for WSL2, but as it stands now, I'm better off keep having few Linux VMs on my local Hyper-V. At least I know which VM is tied to which adapter, which VLAN, which subnet, and which (static!) IP.

It took forever to figure this out so I'll document it here in case someone comes along and finds this. I used Microsoft Message Analyzer with the Hyper-V-VmSwitch and NDIS-PacketCapture providers, which will show exactly how the internal switches are routing packets.

This allowed me to see the outbound TCP packets, the inbound TCP responses, and that they were being filtered at the switch level due to a VLAN tag.
MessageNumber	DiagnosisTypes	Timestamp	TimeElapsed	Source	Destination	Module	Summary
502	None	2020-03-20T16:21:09.3340883				Microsoft_Windows_Hyper_V_VmSwitch	NBL 0xFFFF90079978BA40 received from Nic 14B75DAC-3764-4D7F-84B6-8F39004014B2 (Friendly Name: WSL) in switch D57EE459-57B6-4965-B86E-1906ABAECB70 (Friendly Name: WSL)
503	None	2020-03-20T16:21:09.3340929				Microsoft_Windows_Hyper_V_VmSwitch	NBL originating from Nic 14B75DAC-3764-4D7F-84B6-8F39004014B2 (Friendly Name: WSL) was dropped in switch D57EE459-57B6-4965-B86E-1906ABAECB70 (Friendly Name: WSL), Reason VLAN Filtered (Status:Unknown NTSTATUS Error code (0xE0000003))

... was dropped in switch D57EE459-57B6-4965-B86E-1906ABAECB70 (Friendly Name: WSL), Reason VLAN Filtered

My network port was slightly misconfigured and VLAN tagged packets were being sent to my system, but I had never noticed before because nothing connected to this switch port had ever cared before. Windows didn't care (and didn't show me, either, when using Wireshark/npcap). WSL1 also didn't care that inbound packets were tagged. WSL2, however, uses hyper-v switches, which do care about VLAN tags and silently drop packets that are tagged.
Fixing my network port to strip packets of VLAN tags fixed my issue and the hyper-v switches now work fine.

In my environment, I disabled everything in the BIOS except for the interface connected to the internet.
After that, the internet connectivity was restored.

my issue was wit AVG Internet security enhanced firewall

For those that use Symantec Endpoint Protection and disabling it works
the specific config that seems to get things working again without a complete disable is to allow unmatched IP traffic as per the attached screenshot

Turns out all the Ping replies were coming from the same MAC address - and that MAC belonged to an OpenVPN TAP NIC on my host. I uninstalled the NIC and wsl --shutdown/restarted and networking works again!

Had the same issue here, there was a TAP NIC left from some old OpenVPN installation. Working as expected now 🚀

For those that use Symantec Endpoint Protection and disabling it works
the specific config that seems to get things working again without a complete disable is to allow unmatched IP traffic as per the attached screenshot

This is unfortunate! In my case in a work PC the damn Symantec Endpoint Protection is blocking the communications for WSL2 (not WSL though..), but on the other end I cannot modify that setting because it's blocked by the organization.
Why this is a problem only for WSL2?
And most importantly, is there anything else that can be done without touching the SEP settings?

Your only options is to downgrade to wsl1 and wait for Symantec to release an update
Or ask your org it team for the setting to be changed temporarily
Anthony Somerset
Please excuse the brevity or any typos, tapped out from my iPhone

On 30 May 2020, at 13:02, Claudio Cocciarelli<EMAIL_ADDRESS>wrote:

For those that use Symantec Endpoint Protection and disabling it works
the specific config that seems to get things working again without a complete disable is to allow unmatched IP traffic as per the attached screenshot
This is unfortunate! In my case in a work PC the damn Symantec Endpoint Protection is blocking the communications for WSL2 (not WSL though..), but on the other end I cannot modify that setting because it's blocked by the organization.
Why this is a problem only for WSL2?
And most importantly, is there anything else that can be done without touching the SEP settings?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.

Hi, I solved this issue -- being able to ping addresses but not 'communicate' directly with them (in particular, github.com).
I have avast firewall turned on.
Checking the avast fw settings, a few things stood out:
The adapter description was Hyper-V Virtual Ethernet Adapter #3.

My network was set as a public network. I changed it to a private network (which it is :)).

In settings (a blue link under firewall profile) I set ALLOW For programs with no defined rules (i.e. programs not listed on the Application Rules page) This setting was defaulted to 'Auto-Decide'

I haven't done too much more at this point than verify that I can curl google, and git pull without issue within Ubuntu on WSL2.
I'm on build 19041.330

For me, the "resolution" ended up being to restart my PC 🤦 ..
So make sure you try that before anything too crazy

Having the same issue, installed brand new ubuntu 20.04 with WSL 2 but cannot ping <IP_ADDRESS> nor any IP out in the internet from ubuntu

@Karlheinzniebuhr make sure you didn't hit this bug #5437

Fixed by applying this https://github.com/microsoft/WSL/issues/5336#issuecomment-668773304
=============================================================================
FIX WSL2 NETWORKING IN WINDOWS 10
cmd as admin:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
Windows Search > Network Reset
Restart Windows

Fixed by applying this #5336 (comment)
=============================================================================
FIX WSL2 NETWORKING IN WINDOWS 10
cmd as admin:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
Windows Search > Network Reset
Restart Windows

Thank you for the tip. I followed these steps, but unfortunately I completely lost my internet connection even for windows...
ipconfig /all shows media disconnected, and I tried methods that I found on line, but no one worked... Any clue?

Do you need to set up a static IP with a specific gateway? I suspect your
lan has no DHCP server and you might need to setup your previous
configuration
On Mon, Aug 31, 2020, 9:30 AM fkguo<EMAIL_ADDRESS>wrote:

Fixed by applying this #5336 (comment)
https://github.com/microsoft/WSL/issues/5336#issuecomment-668773304
=============================================================================
FIX WSL2 NETWORKING IN WINDOWS 10
cmd as admin:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
Windows Search > Network Reset
Restart Windows
Thank you for the tip. I followed these steps, but unfortunately I
completely lost my internet connection even for windows...
ipconfig /all shows media disconnected, and I tried methods that I found
on line, but no one worked... Any clue?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/microsoft/WSL/issues/4926#issuecomment-683779124, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/ABIIZUA62445EW6DEZPBXC3SDOQXNANCNFSM4K2LF42A
.

Do you need to set up a static IP with a specific gateway? I suspect your lan has no DHCP server and you might need to setup your previous configuration

Thanks for the quick reply. No, the previous setting was automatic. I don't need to set anything in principle...
One of the steps I followed was to netsh int ip reset reset.log as an administrator. One of the resettings failed. Don't know whether this is related or not.

One of the output lines says "Resetting , failed. Access is denied."

Fixed by applying this #5336 (comment)
=============================================================================
FIX WSL2 NETWORKING IN WINDOWS 10
cmd as admin:
wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns
Windows Search > Network Reset
Restart Windows

I was using Ubuntu on windows, Following the above mentioned steps I also had to Reset the app.
Steps to Follow:
Windows -> Ubuntu -> App Settings ( context menu/right click ) -> Reset App.
This will delete your data, I was just setting up this so I did not have any data.
Thank you

Having the same issues after updating windows insiders into build 20215. I solved this by restarting my PC.

Having the same issues after updating windows insiders into build 20215. I solved this by restarting my PC.

Me too. But sometimes it still doesn't work. It is pathetic when playing gambling. 👎

Another way of allowing traffic for people use Symantec Endpoint Protection without allowing all IP traffic:
Add a firewall rule that allows IP traffic (or traffic you want, like IP protocol 1 (ICMP), 6 (TCP) and 17 (UDP)) on the Hyper-V adapter, both directions. You can find which adapter WSL2 uses in Network & Sharing Center (it will say vEthernet (WSL) in its name).

I have the same problem and I've lost close to 3 hours of my time today alone. Machine goes to sleep. WSL2 loses internet.
Reset Hyper-V. Shutdown WSL. Reset Winsock. Reset Network. Try setup routing manually. Try use two nics. URRRGH
There are so many of these reported problems and they just seem be getting closed without resolution.
😪😪😥😥😥😥😥😥😥😥😥😥😥😥😥😥😥😥😥😥😥😥

For me ping to IP-addresses (even on the internet) are working. But DNS was not working :-(
So I changed my /etc/resolv.conf to use <IP_ADDRESS> as DNS-server and created the /etc/wsl.conf as described in /etc/resolv.conf
Might be a workaround but now the internet-connection from WSL2 is working again - at least for me. :-)
BTW: I'm using Win10 Build 19041.508 and Ubuntu with WSL2 and no additional Kaspersky/Symantec/whatever and have restarted my system.

I was having the same problem with WSL2/Ubuntu. Ping did work but general connectivity (e.g. curl or telnet) did not. When I downgraded WSL version to 1 everything worked fine.
I solved the issue by disabling Hyper-V in Windows Features.

In my case just disabling the TAP OpenVPN Adapter worked. thanks to sydneys1 answer.

For me remvoing the TAP OpenVPN adapter indeed seems to have solved the issue. Fingers crossed it will keep working now 🤞

Windows Search > Network Reset

Worked as a charm. But as my Windows is set in another language, just had a trouble to find this specific Network reset step. To help others: Windows Configurations -> Network -> On the "Status" tab, which should be already opened -> Last button on the page, there is the reset network

If you have multiple NICs try to set metric manually.
I've one GbE NIC for Internet and one 10GbE NIC for internal network, I've tried all workarounds but nothing works.
Finally I saw the metric of 10GbE is lower than GbE, so I set the metric of GbE to 1 and problem solved.

Facing the same issue here, it's very strange
ip a | grep eth0
4: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    inet <IP_ADDRESS>/20 brd <IP_ADDRESS> scope global eth0

ip route
default via <IP_ADDRESS> dev eth0
<IP_ADDRESS>/20 dev eth0 proto kernel scope link src <IP_ADDRESS>

ipconfig
Ethernet adapter vEthernet (Default Switch):

   Connection-specific DNS Suffix  .  :

Ethernet adapter vEthernet (WSL):

   Connection-specific DNS Suffix  .
Can ping the debian network ip from powershell
Pinging <IP_ADDRESS> with 32 bytes of data:
Reply from <IP_ADDRESS>: bytes=32 time<1ms TTL=64
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=64
Reply from <IP_ADDRESS>: bytes=32 time=1ms TTL=64

but the other way, just doesnt work at all
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
^C
--- <IP_ADDRESS> ping statistics ---
6 packets transmitted, 0 received, 100% packet loss, time 191ms

Tried uninstalling and reinstalling several times, with no success, also setting static routes doesn't work, and tried changing Hyper-V Virtual Switch, but whenever i select my wifi adapter, wifi connection goes down, and a reboot is needed to get it back working.

Another way of allowing traffic for people use Symantec Endpoint Protection without allowing all IP traffic:
Add a firewall rule that allows IP traffic (or traffic you want, like IP protocol 1 (ICMP), 6 (TCP) and 17 (UDP)) on the Hyper-V adapter, both directions. You can find which adapter WSL2 uses in Network & Sharing Center (it will say vEthernet (WSL) in its name).

How can one do that? Apparently, symantec endpoint protection firewall rules ('security exception risks') should relate to either 1)  known risks, 2) files, 3) folders, 4) extensions, or 5) web domains. (these might not be the exact terms: I am roughly translating back from my interface, which is in Portuguese).
i have tried to make an exception to wsl.exe, under Windows/System32, but it apparently did not work properly. How could one make exceptions only for certain types of IP traffic?
In my case, internet seems to be working rather properly (I can ping google.com with good results), but ubuntu's servers (for apt get update, for instance) do not work, and http addresses within command line instructions do not work either.

For people with SEP. I had to add new firewall rule in SEP console to allow both local and remote port 80,443.  Only remote doesn't work, for some reason.

For people with SEP. I had to add new firewall rule in SEP console to allow both local and remote port 80,443.  Only remote doesn't work, for some reason.

I have tried with SEP disabled, but still not working.

Since I found myself here and then eventually found a workaround elsewhere, sharing that resource as well: https://github.com/microsoft/WSL/issues/4150#issuecomment-504209723

A colleague helpfully pointed out that Symantec Endpoint Protection includes a firewall that blocks the requests from the WSL2 context. (Incidentally, Symantec EP is according to themselves "not supported" for workloads that include running VM's in Hyper-V.)
As for the NAT rules -- with the firewall temporarily disabled I can do a request to the internet, but Get-NetNAT still does not return anything, so, apparently, these NAT rules are not needed for WSL2. I'm now wondering how it does work under the hood.

I confirm the issue with WSL2 is if Symantec Endpoint Protection running. I was able to connect to the internet after stopping Symantec Endpoint Protection. Thank you.

I ran into the same problem (ping working, not curl). In my case it seems it was another occurrence of https://github.com/microsoft/WSL/issues/4926#issuecomment-597146860. I couldn't find how to capture packets from the WSL network interface in Wireshark, so I just shutdown WSL, disabled a bunch of network adapters, and ran WSL again, and it worked.

Our team reports about verified workaround https://github.com/sakai135/wsl-vpnkit with window 10 build 1909, that you could try

Hi, I solved this issue -- being able to ping addresses but not 'communicate' directly with them (in particular, github.com).
I have avast firewall turned on.
Checking the avast fw settings, a few things stood out:
The adapter description was Hyper-V Virtual Ethernet Adapter #3.

My network was set as a public network. I changed it to a private network (which it is :)).
In settings (a blue link under firewall profile) I set ALLOW For programs with no defined rules (i.e. programs not listed on the Application Rules page) This setting was defaulted to 'Auto-Decide'

I haven't done too much more at this point than verify that I can curl google, and git pull without issue within Ubuntu on WSL2.
I'm on build 19041.330

It worked for me.
Thank you!

Hi, I solved this issue -- being able to ping addresses but not 'communicate' directly with them (in particular, github.com).
I have avast firewall turned on.
Checking the avast fw settings, a few things stood out:
The adapter description was Hyper-V Virtual Ethernet Adapter #3.

My network was set as a public network. I changed it to a private network (which it is :)).
In settings (a blue link under firewall profile) I set ALLOW For programs with no defined rules (i.e. programs not listed on the Application Rules page) This setting was defaulted to 'Auto-Decide'

I haven't done too much more at this point than verify that I can curl google, and git pull without issue within Ubuntu on WSL2.
I'm on build 19041.330

It worked for me.
Thank you!

After trying every single way mentioned above and failed, I finally manage to find a way that works for me. Just run netsh int ipv4 set dynamic tcp start=49152 num=16384 as Administrator and wsl could reach the internet.
I've set some Protocol tcp Port Exclusion Ranges before as Docker and JetBrains' IDEs could not run properly, which might just cause this issue.

Our team reports about verified workaround https://github.com/sakai135/wsl-vpnkit with window 10 build 1909, that you could try

I can confirm this helped me get around SEP (14.2.RU2 MP1 build 5569 - 14.2.5569.2100) issues.  The configuration for my version of SEP also had 'allow IP traffic' on unmatched IP traffic settings but the logs were still showing it blocking wsl outbound connections.

Another way of allowing traffic for people use Symantec Endpoint Protection without allowing all IP traffic:
Add a firewall rule that allows IP traffic (or traffic you want, like IP protocol 1 (ICMP), 6 (TCP) and 17 (UDP)) on the Hyper-V adapter, both directions. You can find which adapter WSL2 uses in Network & Sharing Center (it will say vEthernet (WSL) in its name).

How can one do that? Apparently, symantec endpoint protection firewall rules ('security exception risks') should relate to either 1) known risks, 2) files, 3) folders, 4) extensions, or 5) web domains. (these might not be the exact terms: I am roughly translating back from my interface, which is in Portuguese).
i have tried to make an exception to wsl.exe, under Windows/System32, but it apparently did not work properly. How could one make exceptions only for certain types of IP traffic?
In my case, internet seems to be working rather properly (I can ping google.com with good results), but ubuntu's servers (for apt get update, for instance) do not work, and http addresses within command line instructions do not work either.

By adding a firewall rule on the WSL network adapter. Not the application settings, but configure firewall rules.

Can anyone tall me what exact steps should be performed to allow WSL2 traffic from WSL2 Ubuntu  to Internet trough primary host Win10 workstation?
I tried this specifying an IP address of the WSL adapter that I received from ipconfig /all but had no luck
Am i missing something?

Thanks @anthonysomerset , I could also ping google.com but apt update or git clone fails :(
So I checked my Avast firewall and it was it :(.
More here: https://businesshelp.avast.com/Content/Products/AfB_Antivirus/ConfiguringSettings/NetworkSettings.htm
Goto Protection -> Firewall -> Settings -> Enable "Internet Connection sharing mode"
Now internet works!
I don't know if this option is completely safe or not, will try to find out more.

Thanks @anthonysomerset , I could also ping google.com but apt update or git clone fails :(
So I checked my Avast firewall and it was it :(.
More here: businesshelp.avast.com/Content/Products/AfB_Antivirus/ConfiguringSettings/NetworkSettings.htm
Goto Protection -> Firewall -> Settings -> Enable "Internet Connection sharing mode"
Now internet works!
I don't know if this option is completely safe or not, will try to find out more.

I got the network working in Ubuntu 20.04 WSL2 after I unchecked IPv6 from my WLAN and VPN properties and made few changes to .conf-files.
For the .conf-files I used the solution found in https://github.com/microsoft/WSL/issues/5420#issuecomment-646479747 to stop WSL from rewriting the nameservers.
sudo rm /etc/resolv.conf
sudo bash -c 'echo "nameserver <IP_ADDRESS>" > /etc/resolv.conf'
sudo bash -c 'echo "[network]" > /etc/wsl.conf'
sudo bash -c 'echo "generateResolvConf = false" >> /etc/wsl.conf'
sudo chattr +i /etc/resolv.conf

These steps worked for me and I hope it helps others as well. Now I have network connection in Ubuntu everytime I launch it.

@sboonyakiatACR hello mate, I'm having issue with SEP & WSL2 but I've the GUI locked by my corporation. Could you please give me your policy.xml that you could generate through SEP -> Troubleshooting -> Export profile so I can import it with the firewall exception on. Thank you so much, you can find my contact detail in my github profile, thanks!

Hi，我也遇到了这个问题，我是在更新了windows 6月份的补丁之后发现的这个问题，我参考这篇文章：ipconfig shows only "Windows IP Configuration" after upgrade to Win10

我卸载掉电脑上的checkpoint vpn然后重启电脑后，我的ubuntu子系统就正常了，我真是个幸运儿！:yum:

I had a similar issue - to narrow down the problem, I avoided DNS and worked with IPs - so it was a routing / nat related issue (and because I couldn't reach my windows local network from the virtual network, DNS fails, but it's not the root cause).
Problem description: My Windows host is on network a.0.0.0/24 with a default gateway of a.0.0.1. from windows. I can ping from Windows to default gateway, or out onto the network (e.g. <IP_ADDRESS>). I had full network functionality in WSL1 (Ubuntu 20). After WSL2 upgrade, networking was lost. From Ubuntu, was not able to ping a.0.0.1, my local network gateway (and therefore any external IP like <IP_ADDRESS>).
Resolution:

I had WSL + Virtual Machine Platform installed in Windows Features, but did not have Hyper-V components. I added all Hyper-V components and restarted.
Still not able to reach local gateway. The solution posted by @Karlheinzniebuhr did the trick, but a full Network Reset was not needed (I didn't want to reconfigure VPNs and other network settings that I needed). To confirm the commands, executed from an Admin powershell / command prompt:

wsl --shutdown
netsh winsock reset
netsh int ip reset all
netsh winhttp reset proxy
ipconfig /flushdns

Reboot.
After that, ping to local gateway confirmed, plus ping to external IP was possible, but DNS was not working.
In Ubuntu, /etc/resolv.conf was autogenerated with a virtual network address (172.31 - the same as the WSL gateway, i.e. virtual network adapter on the Windows host). Am guessing that the DNS proxy or forwarding there was not working - I didn't resolve this by getting this dns forward / masq or whatever it is to work, but used the /etc/wsl.conf method described above to disable auto resolv config. My router / local network gateway (a.0.0.1) is a DNS forwarder, so I set up resolv.conf to use that. Not sure yet if this would affect any WSL to WSL resolution that i might need.
$ sudo -i
# cat >/etc/wsl.conf <<-EOF
[network]
generateResolvConf = false
EOF
# mv /etc/resolv.conf /etc/resolv.conf-autogen-symlink
# echo nameserver a.0.0.1 > /etc/resolv.conf
# host www.google.com
www.google.com has address x.y.z.b

1 other item worth noting, not sure if it impacted this, was that I was upgrading to WSL2 in order to get docker working in Linux. Not sure if the docker networking affected this in any way, I didn't verify networking after WSL2 before Docker installation.
HTH, happy networking.

p.s. if anyone has a solution to get the generated resolv.conf working, would be great to use this so I don't have to maintain this myself - didn't see a fix or root cause on this.

Nothing works for me, I have looked at the other threads too. I am using win 10.0.19043.1081.
I had to go back to the older WSL1 and older Linux distro, openSUSE-15.2 is the only one fully working on my machine currently, everything else has some DNS issues, it can ping <IP_ADDRESS> but can't ping google.com.

Crazy idea, and it actually worked...
Why not just run VPN on the VM itself?
apt-get install openconnect
openconnect vpn.domain.com
# <CTRL+Z>
# bg

hello, we got the same issue.
the SEP(Symantec Endpoint Protection) blocks the traffic from WSL2.
but we cannot modify the SEP settings because it's blocked by the organization.
do we having any other WA to put the way forward, thanks.

hello, we got the same issue.
the SEP(Symantec Endpoint Protection) blocks the traffic from WSL2.
but we cannot modify the SEP settings because it's blocked by the organization.
do we having any other WA to put the way forward, thanks.

same issue

Hi
update the latest status about who using SEP(Symantec Endpoint Protection) having this issue.
we using geek(uninstall tool) to remove the SEP totally, now everything works as expected.
BR//lo

I think what helped for me was:

Uninstall all Ubuntu versions
Disable "Enable integration with my default WSL distro" in Docker's settings (Resources -> WSL Integration)
Restart computer
Install Ubuntu 20.04 LTS
Check "Ubuntu-20.04" in "Enable integration with additional distros" in mentioned Docker's settings panel (do not check "Enable integration with my default WSL distro"
Click "Apply & Restart"
Optionally restart computer again

Fixed by applying this #5336 (comment)
============================================================================= FIX WSL2 NETWORKING IN WINDOWS 10 cmd as admin: wsl --shutdown netsh winsock reset netsh int ip reset all netsh winhttp reset proxy ipconfig /flushdns
Windows Search > Network Reset
Restart Windows

This worked like a charm for me in W11 and WSL2

For those using Symantec Endpoint Protection, I shared a workaround at https://github.com/MicrosoftDocs/WSL/pull/1046#issuecomment-1010092796.
Perhaps it could be useful for other firewalls as well.

For anyone still struggling I have found that allowing incoming traffic on the public profile in the firewall instantly makes DNS resolution work in WSL without having to make any changes to /etc/resolv.conf or having to create /etc/wsl.conf file.
Windows Defender Firewall with Advanced Security -> Windows Defender Firewall Properties -> Public Profile -> Inbound Connections set to Allow.
My company uses Firewall to block certain ports which causes this issue. When I set this to allow all inbound connections DNS resolution inside WSL starts working instantly.

For anyone still struggling I have found that allowing incoming traffic on the public profile in the firewall instantly makes DNS resolution work in WSL without having to make any changes to /etc/resolv.conf or having to create /etc/wsl.conf file.
Windows Defender Firewall with Advanced Security -> Windows Defender Firewall Properties -> Public Profile -> Inbound Connections set to Allow.
My company uses Firewall to block certain ports which causes this issue. When I set this to allow all inbound connections DNS resolution inside WSL starts working instantly.

IT WORKED, without even a reboot.

Windows Defender Firewall with Advanced Security -> Windows Defender Firewall Properties -> Public Profile -> Inbound Connections set to Allow.

works for dns and http[s], but not for ssh from wsl2 to external network

sudo ip link set dev eth0 mtu 1350 fixes all other problems (see https://github.com/microsoft/WSL/issues/4253 for details)

Nothing works for me, so I gave my windows user Administrative access and reinstall the WSL and then It works like a charm

For anyone still struggling I have found that allowing incoming traffic on the public profile in the firewall instantly makes DNS resolution work in WSL without having to make any changes to /etc/resolv.conf or having to create /etc/wsl.conf file.
Windows Defender Firewall with Advanced Security -> Windows Defender Firewall Properties -> Public Profile -> Inbound Connections set to Allow.
My company uses Firewall to block certain ports which causes this issue. When I set this to allow all inbound connections DNS resolution inside WSL starts working instantly.

Fixed it for me. Anyone create a rule to not have to allow all incoming traffic?

For those using ESET Antivirus, all you have to do is unblock the connection below.

Open your ESET settings > Resolved blocked communication

And it should work!

@j0057 Thank you, you have helped me solve my problem that I have been debugging for over 3 months! Those NAT rules that I had there (probably from previous VM's) were conflicting with WSL2, so I removed them with Remove-NetNat and boom! WSL2 networking is fixed (in my case)!

Thank you! Remove-NetNat worked for me! This has been bugging me for three days!

hello, i found a solution. https://github.com/dorssel/usbipd-win/issues/714
if you run it in mirrored mode you should not have the same issue.

I am facing this problem in company computer which is Symantec Endpoint Protection. It is no way to enable to configure SEP to enable WSL 2 to access Internet.
Since WSL 1 is working fine with SEP. As Microsoft allow both WSL 1 and WSL 2 running at the same time. I just install a squid proxy at WSL 1. Configurate the WSL2 Ubuntu to use WSL1 as HTTP / HTTPS Proxy. It is working fine. But you have to manually configure for each application.

Hi,
I have had the same issue when switching from WSL1 to WSL2 on my company laptop. It was (I think but I am not sure since I need Administrator privilege to check that) due to Symantec Endpoint Protection that is installed on the Windows side of my machine. Most of the proposed solutions require administrator rights on Windows, which I don’t have.
I was pretty frustrated and really needed WSL2 in order to use VScode on windows while having a Linux development environment.
HOWEVER, serendipity has always been a good friend: in the "Windows Subsystem for Linux Settings" app, under "Network", using the "VirtioProxy" "Networking mode" simply solved the issue.
Yeah, really, just that simple.
I have no idea of what is happening under the hood since there is nothing on the WSL official documentation. Whatever, it works for me and that is all I need.
I hope it will work for you and that Microsoft will explain a bit more about this "VirtioProxy Networking mode".
Enjoy your day,
Martin


[CYB-201] [UI][COMPONENT] Fix Karma unit test.

Updating all pom files is required, because otherwise it uses transient dependencies from other mvn packages, which is not good, especially when they are marked as provided.


Title customization

Opened from #192
Related to #138

The page title can be built using title - description format and I don't think we need another variable for it.
I don't really want to force people to display Reposilite on their page - they may leave a note in a description, but we should let 'em hide it. It is why any kind of footer is not a good idea.

Can you explain what you mean? Currently the title is hard-coded as Reposilite
That's fair, it could be turned off with a config (depending on proposal acceptance).
Do I take this to mean you'd rather not have a footer at all?

You could replace hard-coded Reposilite with {{ title }} - {{ description}} format (title and description are already available in configuration)
I think that it is not a good idea to add footer at all. We can consider changes in this area during GH-138 where we will improve the overall layout and design of frontend.

Since the title is part of index.html and outside Vue's mount, I don't think Vue can change it currently.
Do you have an idea on how to work around that?

You can define title using metaInfo property from vue-meta. As an example, it is already used in Index.vue

Got it! Do you want me to be committing compiled production JS with PRs? Or do you do that yourself prior to release?

Yeah, commit changes to frontend with updated production app :)


Setup Sentry to capture errors

As more and more users use Ferdi, I think it could be nice to implement Sentry to capture the errors instead of having to ask for console logs. WDYT?
Related: https://github.com/getsentry/sentry-electron

I think we'll need to fix #146 first, otherwise we'll get a lot of errors because of this hack.

That's not a problem, same errors are grouped and can be muted if necessary.

I just saw you created https://github.com/getferdi/debugger after I opened this ticket; is that related? What did you have in mind with this repository?

The debugger is something that I worked on the last few days - its just a better way to view the debug information that Ferdi can output.
My idea with this is that we could create a new menu item "Publish debug information" that would push the debug information to this debugger server to help us get important information without users having to publish screenshots of it to the GitHub issues.

I saw this today https://blog.sentry.io/2019/11/06/relicensing-sentry/. I don't know if this is important.

@Makazzz all good for us:

The BSL lets us hit our goals in a clean and low-impact way: it won’t change anyone’s ability to run Sentry at their company, but it will ensure that we are protected from our work being used in an anti-competitive fashion.

But ... to be fair, we should:

Make sure users are informed that Ferdi is sending exception traces to Sentry, and there should be a way to opt out of sending any data to Sentry (i.e. technically, opt out of activating Sentry).
Actually, Ferdi should even ask for opt in (and not activate Sentry integration at all, by default). It should be more like, "Do you want to help us make Ferdi better?"

We need to be aware of privacy issues. Sending data, even anonymous data, leaves traces.
Let's be a role model for privacy, not piracy.

+1 for making it opt-in, asking the user if he wants to contribute on first launch.
@kytwb Can you implement this?

@bittner @vantezzen understood! 👍

Related: https://github.com/getsentry/sentry-javascript/issues/2039#issuecomment-486674574

The way we implement Sentry, I think we will have to prompt to reload Ferdi to make changes effective.

Isn't it possible the way you reference it above?
If for now controlling exception logging is available just as an option in the Settings and activated or deactivated only after restarting the app that's better than nothing w.r.t. privacy. Still better than silently sending data w/o user control. -- BTW, in the end, we also need to make clear that this is not (intentional) user behavior tracking but just logging application error details when exceptions (i.e. "bugs") occur.
Still sounds weird to me that it should be so difficult to turn it off. If everything else fails it should be possible to keep a reference in the sentry.js and act on that to disable or cripple the Sentry instance.
References:

Commit fc6e64329773f29fc9eee28bc3f4a1a1b01f218d
Official sentry/electron docs

As suggested by David Cramer we should also make logging anonymous by default. Don't you think?
I'm not sure how this is done, though. There's no mention on it in the docs. :roll_eyes:  I asked @dcramer via Twitter about it ... (:duck:s & :running_man:s)

All noted, I will implement as I can and follow up in here. I will follow the Twitter thread to see what can be done at Sentry's level to make logging anonymous (data scrubbing?). Thank you @bittner by the way for your contribution to the OpenCollective 🙏

You’d want to only set user context (so user = ...) when they opt in to that experience. You also may want to enable the organization setting in Sentry to scrub IP addresses. I’d suggest sending a unique identifier for all users (unique to the install?) and an email contact when they opt in.

LGTM! 🙏 Well done @vantezzen! What you did with the debugger looks interesting! 👀

@vantezzen I have noticed that we have a lot of old clients still installed with Sentry turned on by default sending a lot of errors and making us reach our quota within a couple of days within the rolling month. I reached out to support regarding this matter and said they could only recommend to look at deploying our own Sentry on-premise; WDYT about setting up our own and updating the DSN in a new release so we only receive data from opted-in/debugging people?

Hmm, I don't know if that is necessary as I think that the number of events sent to Sentry will slowly decrease as people update. We can only switch to our self-hosted Sentry on versions that already have it disabled by default so that won't really solve the problem, does it?

@vantezzen the self-hosted would not be flooded/exceed quota and we could ditch the hosted one that is/does, so I think that would solve the issue.

If you think that that's needed then we can set it up.
I just thought that as our number of events will probably go into the range of our quota in the next weeks that there isn't really a reason to set up a self-hosted solution just for that time. As far as I can tell there is no real consequence of us going over the quota until then (unless there is some bill I don't know about).

Once we're over the quota, we don't receive new events anymore; we exceed our quota in 48h every month, so we're missing most of the events; that's the issue I'm trying to address by ditching the old hosted DSN and use a fresh self-hosted one. Or we can also just create a new hosted one now that it's opt-in only and use that for upcoming releases. WDYT?

Aside, ya'll qualify for our open source sponsorship, want me to just flip the flag? Probably more than enough quota at that point.

@dcramer Awesome, let's give it a try! 😄 Thank you!

:+1: you're set

David, you are awesome! Thank you!
Glad you take care of us, so we didn't even have to apply! :smile:


final of first version

check all changes throughly and correct it, if there is an error on it. just fix your seldf i won't take the risk

we made we did it !


"es2020.string" - Property 'matchAll' does not exist on type 'string'.ts(2339)

No matter the target/lib settings I set, I cannot get string.matchAll to be recognized by the editor tooling anywhere, including the Playground.
TypeScript 3.7.2
Playground link
Compiler Options:
{
  "compilerOptions": {
    "noImplicitAny": true,
    "strictNullChecks": true,
    "strictFunctionTypes": true,
    "strictPropertyInitialization": true,
    "strictBindCallApply": true,
    "noImplicitThis": true,
    "noImplicitReturns": true,
    "useDefineForClassFields": false,
    "alwaysStrict": true,
    "allowUnreachableCode": false,
    "allowUnusedLabels": false,
    "downlevelIteration": false,
    "noEmitHelpers": false,
    "noLib": false,
    "noStrictGenericChecks": false,
    "noUnusedLocals": false,
    "noUnusedParameters": false,
    "esModuleInterop": true,
    "preserveConstEnums": false,
    "removeComments": false,
    "skipLibCheck": false,
    "checkJs": false,
    "allowJs": false,
    "experimentalDecorators": false,
    "emitDecoratorMetadata": false,
    "target": "ES2017",
    "module": "ESNext"
  }
}

Input:
const foo = 'hi';

// matchAll is defined in "2020.string",
// which is included by "2020",
// which is included by "esnext"
const bar = foo.matchAll(/./)

Output:
"use strict";
const foo = 'hi';
// matchAll is defined in "2020.string",
// which is included by "2020",
// which is included by "esnext"
const bar = foo.matchAll(/./);

Expected behavior:
matchAll should be recognized and it's not.
Even the playground link for #32737 doesn't work

I think this is due to a bad assumption on my part and some weird problems locally.. closing this

Did you have a solution for this, by chance?

Solved. Here's my tsconfig.json:
{
  "compilerOptions": {
    "target": "esnext"
  }
}

I was making a noob mistake: I did not realize that tsconfig.json is ignored when running tsc on specific files.

@nsaunders  i do it follow you. but the problem is still existed!

@heavenkiller2018 I bumped into the same issue, apparently it is only included in typescript version 3.7 and higher. See also #32737


KAFKA-3051 KAFKA-3048; Security config docs improvements

@junrao, I updated the code to take into account your feedback. Tests passed locally. Please take a look when you have a chance.

Thanks for the patch. LGTM