Make it possible to figure out why packages conflict

What's the problem this feature will solve?
Using pip-tools 7.3.0
I'm trying to generate a requirements.txt file from a requirements.in file that has constraints based on another file.  There's a dependency conflict, but pip-compile no longer provides enough useful information to troubleshoot the issue.  I feel like it was easier to interpret in earlier versions of pip-compile (maybe 1-2 years ago?), but now it's practically uninterpretable.
Here's my dbt.in file:
-c dagster.txt

dagster-dbt~=0.22.9

dbt-snowflake~=1.7.0
snowflake-connector-python[secure-local-storage]~=3.4
sqlfluff~=2.3.5
sqlfluff-templater-dbt~=2.3.5

When I try to pip-compile it, I get an error:
pip-compile -v --strip-extras requirements/dbt.in > requirements/dbt.txt
Using pip-tools configuration defaults found in 'pyproject.toml'.
Using indexes:
  https://pypi.org/simple

                          ROUND 1
  ERROR: Cannot install dagster and dbt-core because these package versions have conflicting dependencies.
Traceback (most recent call last):
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 316, in _backjump
    name, candidate = broken_state.mapping.popitem()
KeyError: 'dictionary is empty'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
    result = self._result = resolver.resolve(
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 434, in resolve
    success = self._backjump(causes)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 318, in _backjump
    raise ResolutionImpossible(causes)
pip._vendor.resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=SpecifierRequirement('importlib-metadata; python_version < "3.9"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/7f/50/9fb3a5c80df6eb6516693270621676980acd6d5a9a7efdbfa273f8d616c7/alembic-1.13.1-py3-none-any.whl (from https://pypi.org/simple/alembic/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata~=6.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/9d/a8/718950dfc5975f49f5b05cd3604d266a5d68c37e2e2e95d353363d33a01c/dbt_semantic_interfaces-0.4.4-py3-none-any.whl (from https://pypi.org/simple/dbt-semantic-interfaces/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata; python_version < "3.9"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/7f/50/9fb3a5c80df6eb6516693270621676980acd6d5a9a7efdbfa273f8d616c7/alembic-1.13.1-py3-none-any.whl (from https://pypi.org/simple/alembic/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata~=6.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/eb/97/d7c34a8f0b23b9483f9adcd3183221198654b0ad883ba9b659ecdb1ca816/dbt_semantic_interfaces-0.4.3-py3-none-any.whl (from https://pypi.org/simple/dbt-semantic-interfaces/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata; python_version < "3.9"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/7f/50/9fb3a5c80df6eb6516693270621676980acd6d5a9a7efdbfa273f8d616c7/alembic-1.13.1-py3-none-any.whl (from https://pypi.org/simple/alembic/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata~=6.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/a1/50/a76646f7031fdb63834a2b70226752b1d4d09c02d70b58273474ef3a9017/dbt_semantic_interfaces-0.4.2-py3-none-any.whl (from https://pypi.org/simple/dbt-semantic-interfaces/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata; python_version < "3.9"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/7f/50/9fb3a5c80df6eb6516693270621676980acd6d5a9a7efdbfa273f8d616c7/alembic-1.13.1-py3-none-any.whl (from https://pypi.org/simple/alembic/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata~=6.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/74/7e/522b489d8735c7d44e2184b16a0ee7ffa8ec89c9c58b39f195e87659cc6b/dbt_semantic_interfaces-0.4.1-py3-none-any.whl (from https://pypi.org/simple/dbt-semantic-interfaces/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata; python_version < "3.9"'), parent=LinkCandidate('https://files.pythonhosted.org/packages/7f/50/9fb3a5c80df6eb6516693270621676980acd6d5a9a7efdbfa273f8d616c7/alembic-1.13.1-py3-none-any.whl (from https://pypi.org/simple/alembic/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('importlib-metadata~=6.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/67/a5/9e503109f2228fcbf5ee3b5b6546248b55e53b06141cce75140a6b645288/dbt_semantic_interfaces-0.4.0-py3-none-any.whl (from https://pypi.org/simple/dbt-semantic-interfaces/) (requires-python:>=3.8)'))]

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/bin/pip-compile", line 8, in <module>
    sys.exit(cli())
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/click/decorators.py", line 33, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/piptools/scripts/compile.py", line 659, in cli
    results = resolver.resolve(max_rounds=max_rounds)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/piptools/resolver.py", line 604, in resolve
    is_resolved = self._do_resolve(
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/piptools/resolver.py", line 636, in _do_resolve
    resolver.resolve(
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 104, in resolve
    raise error from e
pip._internal.exceptions.DistributionNotFound: ResolutionImpossible: for help visit https://pip.pypa.io/en/latest/topics/dependency-resolution/#dealing-with-dependency-conflicts

The only thing I can tell clearly is:
ERROR: Cannot install dagster and dbt-core because these package versions have conflicting dependencies.

The dagster.txt file does not have any dbt-core packages, but presumably dagster and dbt-core both have some shared dependency that is in conflict.  How can I use pip-compile to figure out what that is?
Describe the solution you'd like
A human-readable version of the garbage following pip._vendor.resolvelib.resolvers.ResolutionImpossible in the error message above.

Seems like a bug in the depresolver (resolvelib that pip relies on) or our exception handling.
Try different pip versions, because we don't test each pip-tools release with every pip version. At least try using the pip version that was latest at the time of release.
This is because we use pip internals that are not public API. So I recommend locking pip-tools itself with its transitive deps just like you do for your app's deps.

Alternatively, if you use one of the latest pip versions, try upgrading pip-tools that can handle them.

I tried with pip-tools 7.4.1 and pip 24.0 (latest versions of both) and got the same error message.
I switched to the legacy resolver and got something much more interpretable:

I think the latest pip has removed the legacy resolver already. I know that resolvelib is more correct and can't output conflicting deps like the old one could. If you use the old resolver, it might be worth running pip check post install to verify the integrity. Plus, it's recommended anyway, when you issue multiple pip install commands.

Does using just pip install -r dbt.in without pip-tools work?

Here's a simplified version of the files that reproduces this issue (still using pip-tools 7.4.1 and pip 24.0):
# dagster.txt

pyOpenSSL==24.1.0
cryptography==38.0.4

# dbt.in

-c dagster.txt

snowflake-connector-python[secure-local-storage]~=3.4

No, pip install -r dbt.in doesn't work, but it does give me a better error message.
ERROR: Cannot install -r dbt.in (line 3) because these package versions have conflicting dependencies.

The conflict is caused by:
    snowflake-connector-python 3.7.0 depends on pyOpenSSL<24.0.0 and >=16.2.0
    snowflake-connector-python 3.6.0 depends on pyOpenSSL<24.0.0 and >=16.2.0
    snowflake-connector-python 3.5.0 depends on pyOpenSSL<24.0.0 and >=16.2.0
    snowflake-connector-python 3.4.1 depends on pyOpenSSL<24.0.0 and >=16.2.0
    snowflake-connector-python 3.4.0 depends on pyOpenSSL<24.0.0 and >=16.2.0
    The user requested (constraint) pyopenssl==24.1.0

Compare this with pip-compile dbt.in:
  ERROR: Cannot install -r dbt.in (line 3) because these package versions have conflicting dependencies.
Traceback (most recent call last):
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 95, in resolve
    result = self._result = resolver.resolve(
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 546, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/Users/sterling.paramore/miniconda3/envs/eta-dagster/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 439, in resolve
    raise ResolutionImpossible(self.state.backtrack_causes)
pip._vendor.resolvelib.resolvers.ResolutionImpossible: [RequirementInformation(requirement=SpecifierRequirement('pyOpenSSL<24.0.0,>=16.2.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/5d/72/67a35dbd9414e07ca99e767733fe0bb0eccc508fb300e104ae2d450e0f73/snowflake_connector_python-3.7.0-cp38-cp38-macosx_11_0_arm64.whl (from https://pypi.org/simple/snowflake-connector-python/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('pyOpenSSL<24.0.0,>=16.2.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/b1/c2/5ecaadfc00dc55d8155a1bf44bcc6f060f7f9193f20296ee78776538ebbe/snowflake_connector_python-3.6.0-cp38-cp38-macosx_11_0_arm64.whl (from https://pypi.org/simple/snowflake-connector-python/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('pyOpenSSL<24.0.0,>=16.2.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/0a/a2/296f0bf74f1027cd8664bd8defd69f7d676d42be65396ffed3a308ca2035/snowflake_connector_python-3.5.0-cp38-cp38-macosx_11_0_arm64.whl (from https://pypi.org/simple/snowflake-connector-python/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('pyOpenSSL<24.0.0,>=16.2.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/1e/da/02591d9f263c00d557c421123cf65685cc7c210e136d6c3c6c65787c6015/snowflake_connector_python-3.4.1-cp38-cp38-macosx_11_0_arm64.whl (from https://pypi.org/simple/snowflake-connector-python/) (requires-python:>=3.8)')), RequirementInformation(requirement=SpecifierRequirement('pyOpenSSL<24.0.0,>=16.2.0'), parent=LinkCandidate('https://files.pythonhosted.org/packages/6f/de/4d45c29beb1a3f4d430af54ff8184108c3e5d0a73c419bddd2bf6b6929a9/snowflake_connector_python-3.4.0-cp38-cp38-macosx_11_0_arm64.whl (from https://pypi.org/simple/snowflake-connector-python/) (requires-python:>=3.8)'))]

It looks like the conflict information I need is somewhere in there, but it's not readable (at least not by a mere human like me).

Yeah, this is definitely worth improving. I guess, pip-tools needs to intercept the exception and print out the attached metadata in a more human-oriented format.

OTOH, if the error output is coming from a subprocess, we wouldn't be able to do anything about it. Somebody needs to inspect this deeper.

pip-tools does catch pip's DistributionNotFound error, although one is not able to guess that from the exception. The error is, after resolution is found to be impossible, raised here:
https://github.com/jazzband/pip-tools/blob/6f2c9cd6838d95afb6876fc8d1e33f0eb991e5d7/piptools/resolver.py#L662-L663
We could definitely refrain from doing that and instead print out the conflict causes in human-readable format.


invalid memory address or nil pointer dereference when accessing UserInfoAddress

Describe the bug
When user info is missing address field it's decoded into userinfo struct where Address field has UserInfoAddress type but nil value.
UserInfoAddress type doesn't expect nil as receiver, so code like info.GetAddress().GetCountry() panics.
To Reproduce
Steps to reproduce the behavior:

Unmarshal userinfo without address
Try info.GetAddress().GetCountry()
See panic

Expected behavior
Probably, returning default values for all fields (e.g. "").
Another (IMO better but breaking) way is to return a pointer. So it will be possible to check value GetAddress() == nil
Additional context
Temp workaround:
func isNil(val any) bool {
	return val == nil || (reflect.ValueOf(val).Kind() == reflect.Ptr && reflect.ValueOf(val).IsNil())
}

addr := info.GetAddress()
if !isNil(addr) {
  // ...
}

This sound really like a bug 😁
Thank you for reporting this.
CC @hifabienne

my proposal would be to do de nil check in GetAddress:
func (u *userinfo) GetAddress() UserInfoAddress {
	if isNil(u.Address) {
		return nil
	}
	return u.Address
}

so it would return nil, which i believe was the intention at first anyway
@morigs or @adlerhurst is this even breaking?
the UserInfoAddress return value is an interface and and thus could already have been nil

Well, it should be breaking. However, using reflection to detect nil here looks a bit strange...
It's like embedding workaround right into codebase instead of fixing)

Well, it should be breaking. However, using reflection to detect nil here looks a bit strange... It's like embedding workaround right into codebase instead of fixing)

Any interface type can be compared directly to nil:
func (u *userinfo) GetAddress() UserInfoAddress {
	if u.Address == nil {
		return nil
	}
	return u.Address
}

However, that's kind of pointless, because if u.Address == nil, than a nil was going to be returned anyway. The OP describes the panic in case of chaining.

info.GetAddress().GetCountry()

There are multiple solutions to this problem:
1. Make it the responsibility of the caller
One might argue that chaining is not supported by the project and is unsafe. The caller must check if UserInfoAddress is not nil.
For example this would not panic:
var country string

if info := u.GetAddress(); info != nil {
    country = info.GetCountry()
}

The fix would be just a documentation update:
type UserInfo interface {
    ...
    // GetAddress returns nil if UserInfoAddress is not present.
    GetAddress() UserInfoAddress
     ...
}

2. Does it need to be an interface type?
Why not get rid of the UserInfo interface type and rename the private userInfoAddress to UserInfoAddress and return a value of it?
I'm not familiar enough with the project to know if the UserInfoAddress ever changes underlying implementation. That would  break.
3. Provide a nilUserInfoAddress implementation
Implement UserInfoAddress with methods that return nothing.
type nilUserInfoAddress struct{}

func (nilUserInfoAddress) GetFormatted() (s string) { "" }
func (nilUserInfoAddress) GetStreetAddress() string { return "" }
func (nilUserInfoAddress) GetLocality() string { return "" }
func (nilUserInfoAddress) GetRegion() string { return "" }
func (nilUserInfoAddress) GetPostalCode() string { return "" }
func (userInfoAddress) GetCountry() string { return "" }

func (u *userinfo) GetAddress() UserInfoAddress {
	if u.Address == nil {
		return nilUserInfoAddress{}
	}
	return u.Address
}

However, this is a slippery slope. Do you intend to support safe chaining of Get methods that return interface types throughout the project? Similar bugs might be hiding elsewhere, where chaining is allowed. (if not, go for option 1 or 2)
For example, after a quick walk through the go docs I found op.Authorizer whose IDTokenHintVerifier() IDTokenHintVerifier returns an interface type. It would require quite some additions for all those similar cases if you make the choice to support chaining in your project.
4. Make the current userInfoAddress implementation safe
Check if *userInfoAddress is nil in every Get method. I would say this is a quite typical approach, also used in protobuf generated Getters. But again, do you intend to support Get chaining?
func (u *userInfoAddress) GetFormatted() string {
    if u == nil {
        return ""
    }
    return u.Formatted
}

func (u *userInfoAddress) GetStreetAddress() string {
    if u == nil {
        return ""
    }
    return u.StreetAddress
}

// repeat for all methods

Please discard the rant above. I missed the fact that we can just return an empty instance of userInfoAddress in case of nil, with no further complications.
func (u *userinfo) GetAddress() UserInfoAddress {
	if u.Address == nil {
		return new(userInfoAddress)
	}
	return u.Address
}

I will submit a PR in the next minutes.

Hey @muhlemmer I finally found some time to go through all the comments and your PR.
The problem is caused by the fact that checking an interface on nil will only check the interface itself and not the underlying value. Therefore @morigs used a temporary workaround in his code using reflection.
The PR therefore does not solve the problem for all cases, e.g. this would still panic:
info := &userinfo{}
var address *userInfoAddress
info.SetAddress(address)
info.GetAddress().GetCountry() //<- panics

While digging into it, I've found the initial reason for the error to occur. The custom Unmarshal function of the userinfo type always sets the userInfoAddress:
func (u *userinfo) UnmarshalJSON(data []byte) error {
	type Alias userinfo
	a := &struct {
		Address *userInfoAddress `json:"address,omitempty"`
		*Alias
		UpdatedAt int64 `json:"update_at,omitempty"`
	}{
		Alias: (*Alias)(u),
	}
	if err := json.Unmarshal(data, &a); err != nil {
		return err
	}
	u.Address = a.Address
	...

A simple nil check on a.Address there would solve at least the problem there and we can then check for nil in GetAddress(). The issue mentioned above will still exist though.

Hi, any plans for fixing this?

Hi, any plans for fixing this?

Sure, this week @livio-a is in vacation but I am sure he will look into this next week

@livio-a , yes you are right. I've adjusted the tests to use actual json and I was able to reproduce the same panic.
There are two options to fix this:

Catch the nil value for a.Address in userinfo.Unmarshal and set it to new instance of userInfoAddress -> see updated PR #207;
Don't use pointers for userInfoAddress implementation -> see new PR #211;

Both options work, and might be a matter of taste.


testing very simple GridView.count fails

Steps to Reproduce
This simple test fails
  testWidgets('GridView.count', (tester) async {
    await tester.pumpWidget(
      MaterialApp(
        home: GridView.count(
          crossAxisCount: 1,
          children: <Widget>[
            Text('1'),
            Text('2'),
            Text('3'),
            Text('4'),
          ],
        ),
      ),
    );

    expect(find.byType(Text), findsNWidgets(4));
  });

the error message:
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure object was thrown running a test:
Expected: exactly 4 matching nodes in the widget tree
Actual: _WidgetTypeFinder:<exactly one widget with type "Text" (ignoring offstage widgets):
Text("1", dependencies: [MediaQuery, DefaultTextStyle])>
Which: is not enough
Flutter doctor :
[√] Flutter (Channel master, v1.14.7-pre.103, on Microsoft Windows [Version 10.0.18362.657], locale en-US)
[!] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
X Android license status unknown.
Try re-installing or updating your Android SDK Manager.
See https://developer.android.com/studio/#downloads or visit https://flutter.dev/setup/#android-setup for
detailed instructions.
[√] Chrome - develop for the web
[!] Android Studio (version 3.2)
X Flutter plugin not installed; this adds Flutter specific functionality.
X Dart plugin not installed; this adds Dart specific functionality.
[√] VS Code (version 1.42.0)
[√] Connected device (2 available)

Similar to https://github.com/flutter/flutter/issues/51096
But in this case skipOffstage: false doesn't help

Hi @GIfatahTH,
Can you please confirm if you still experience this issue on latest Stable or master version ?
Thanks.

Unfortunately, the issue persists. I am on Flutter (Channel master, 1.21.0-10.0.pre.70,)

Still reproducible on latest master channel.
A work around for this issue is to set crossAxisCount to 2.
flutter doctor -v
[✓] Flutter (Channel master, 1.22.0-10.0.pre.221, on Mac OS X 10.15.6 19G2021 x86_64, locale en)
    • Flutter version 1.22.0-10.0.pre.221 at /Users/pedromassango/dev/SDKs/flutter_master
    • Framework revision fa646339d6 (12 hours ago), 2020-09-16 17:47:04 -0700
    • Engine revision 933f811d94
    • Dart version 2.10.0 (build 2.10.0-135.0.dev)

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.1)
    • Android SDK at /Users/pedromassango/Library/Android/sdk
    • Platform android-30, build-tools 30.0.1
    • Java binary at: /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 11.7)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Xcode 11.7, Build version 11E801a
    • CocoaPods version 1.9.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[!] Android Studio (version 4.0)
    • Android Studio at /Applications/Android Studio.app/Contents
    ✗ Flutter plugin not installed; this adds Flutter specific functionality.
    ✗ Dart plugin not installed; this adds Dart specific functionality.
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Community Edition (version 2020.2.2)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 49.0.4
    • Dart plugin version 202.7319.5

[✓] VS Code (version 1.48.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.14.1

[✓] Connected device (4 available)
    • sdk gphone x86 arm (mobile) • emulator-5554 • android-x86    • Android 11 (API 30) (emulator)
    • macOS (desktop)             • macos         • darwin-x64     • Mac OS X 10.15.6 19G2021 x86_64
    • Web Server (web)            • web-server    • web-javascript • Flutter Tools
    • Chrome (web)                • chrome        • web-javascript • Google Chrome 85.0.4183.102

! Doctor found issues in 1 category.
Process finished with exit code 0


Add Javadocs badge

Using this badge it will be easy to find and read the Javadocs.

Using this badge it will be easy to find and read the Javadocs.

Thanks for this pr. I also startet to improve the javadoc and tests in 0.24.0 sadly I cannot publish the release because ossrh is down.


Changed python version in description

Description had Python version 2.7 listed, changed to 3.7

Thank you!


Assist User in Zero or Low Balance of Cash and Ether

"Submit a Market" form could use some text prompt, above the liquidity field or something, telling people their balance is empty. Otherwise, there's no indication for the uninitiated (besides the empty balance) of why a market submission isn't getting through.

Yes, this is actually related to the larger issue of UX patterns and actions that require resources you don't have and how to handle this.
While I could start pasting more words around explaining stuff. I'm aiming for something less noisy, more intuitive and higher order.  Such as not allowing the action in the first place or an initial hand-holding for users with no cash or ether.
As I need to track this, going to hijack this issue and change it's title.  Thanks Perry.

Just catching up - very cool. I hadn't reviewed the demo since before the individual accounts were introduced so I've really picked up on all the big and subtle changes. Everything - features, loading time, responsiveness, overall flow, etc. -- everything is much, much better. This is a big help for future demo presentations. Many, many thanks, Scott.

Rolling this into #277.


Account for zlib.error and UnicodeDecodeError

The scan_log4j_versions.py may profit from additional exception catching (there may be more) as
neither catching zlib.error nor UnicodeDecodeError ends the scan runs rather prematurely.
Example 1/2 - fun with invalid unicode in filenames
# ...
  File "/some/place/jfrog-log4j-tools/scan_log4j_versions.py", line 126, in zip_file
    with ZipFile(file) as jarfile:
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/zipfile.py", line 1257, in __init__
    self._RealGetContents()
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/zipfile.py", line 1359, in _RealGetContents
    filename = filename.decode('utf-8')
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xa2 in position 12: invalid start byte

Example 2/2 - zlib.error (is off-exception hierarchy)
# ...
  File "/some/place/jfrog-log4j-tools/scan_log4j_versions.py", line 173, in tar_file
    with tar_open(fileobj=file) as tarfile:
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/tarfile.py", line 1611, in open
    return func(name, "r", fileobj, **kwargs)
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/tarfile.py", line 1682, in gzopen
    t = cls.taropen(name, mode, fileobj, **kwargs)
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/tarfile.py", line 1659, in taropen
    return cls(name, mode, fileobj, **kwargs)
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/tarfile.py", line 1522, in __init__
    self.firstmember = self.next()
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/tarfile.py", line 2327, in next
    tarinfo = self.tarinfo.fromtarfile(self)
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/tarfile.py", line 1112, in fromtarfile
    buf = tarfile.fileobj.read(BLOCKSIZE)
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/gzip.py", line 300, in read
    return self._buffer.read(size)
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/_compression.py", line 68, in readinto
    data = self.read(len(byte_view))
  File "/another/place/.pyenv/versions/3.9.6/lib/python3.9/gzip.py", line 495, in read
    uncompress = self._decompressor.decompress(buf, size)
zlib.error: Error -3 while decompressing data: invalid distance too far back

Hi @sthagen ,
Thanks a lot for the report!
Will catch that and update here when it's fixed.

@curious-fox nice - will give it a try tomorrow (European time)

Closing for now, assuming the fix worked for your cases. Let me know if the problem was not resolved!
Thanks

Thanks @ilya-k-1  and sorry for being wrong by a factor of 21 …


(how i can solve it ).Pix.LoadFromFile get a error

using (var img = Pix.LoadFromFile(imgPath))
{
using (var page = engine.Process(img))
{
ret = page.GetText().Trim();
}
}
error
 Error in pixReadStreamWebP: function not present
Error in pixReadStream: webp: no pix returned
Error in pixRead: pix not read
``

I have the same errors  when using project running in docker

I think tesseract on linux requires an additional install. apt-get something. I might look in the tesseract notes.

Same error on linux
Error in pixReadMemTiff: function not present
Error in pixReadMem: tiff: no pix returned
Error in pixaGenerateFontFromString: pix not made
Error in bmfCreate: font pixa not made
Error in pixReadMemTiff: function not present
Error in pixReadMem: tiff: no pix returned
Error in pixaGenerateFontFromString: pix not made
Error in bmfCreate: font pixa not made
Error in pixReadStreamPng: function not present
Error in pixReadStream: png: no pix returned
Error in pixRead: pix not read


Update Variable metadata when using 'a' mode in Zarr

[x] Closes #8116, #3536
[x] Tests added
[ ] User visible changes (including notable bug fixes) are documented in whats-new.rst
[ ] New functions/methods are listed in api.rst

Because the DataArray in a DataSet's data variable when saving to zarr, the incorrect metadata update behaviour applies to it. This is an attempt to fix the TODO left by PR5252. The tests are passing, but as I'm quite new to this repo, I'm not sure what cases should be tested as well. @shoyer could you share some insight please?

Sorry this hasn't got a review.
Without being the best informed person on this — one potential issue here — if we're updating the metadata, do we risk a issue with two concurrent writers where each writer needs to read the current metadata, and the first writer can leave the files in a partially corrupted state?


"Unable to load compilation data: No root directory found"

VSCode Version: 1.28.2 7f3ce96ff4729c91352ae6def877e59c561f4850
OS Version: macOS 10.14.1

Steps to Reproduce:

Reinstall VS Code, install jaredly.reason-vscode
Open up any .ml file

Does this issue occur when all extensions are disabled?: Yes/No

This issue was moved to jaredly/reason-language-server#177


purge unneeded properties reorder window code

Most public properties could be made private, some variables are not needed anymore or should be used differently right now.
properties and methods should be reordered sensibly.

create extension methods for the tedious WPF stuff, like

positioning in grids
setting tooltips
initializing elements with styles


[ENH] scatter plots enhancement.

See #1030

Some examples:
Higher is better and no statistical tests.

Higher is better and statistical tests.

Lower is better and no statistical tests.

Lower is better and statistical tests.

btw, the warning with the tight layout only happens with statistical_tests=True. Though it is not important imo.


Draft workshop reviews

Please leave your review comments for our authors here.

Please rename this to something like end to end Machine and Deep Learning due to FY20 Prioritization and maintainability

In the "Deep Learning with Text" notebook, I'd explain this step a bit more:

Now take a look at how the text was encoded as an array in the above. Run the following cell to take a peek.
print("The text '{text}' is represented as the vector '{data}'".format(text=components[indices[0]], data=x_train[0]))

For instance, why is the vector longer than the sentence? (Because of maxlen) Perhaps even show a visual of how the encoding works. Check out how Andrew Ng explains word embeddings and borrow some visuals from him.

In "Deep Learning with Text" notebook, the cell that plots the accuracy and loss is not showing both plots that were created. You should create a 2D Figure to show everything. Like this:
fig, axes = plt.subplots(ncols=2, figsize=(12.6, 4.8))

axes[0].plot(epochs, acc, 'bo', label='Training acc')
axes[0].plot(epochs, val_acc, 'b', label='Validation acc')
axes[0].set_title('Training and validation accuracy')
axes[0].legend()

axes[1].plot(epochs, loss, 'bo', label='Training loss')
axes[1].plot(epochs, val_loss, 'b', label='Validation loss')
axes[1].set_title('Training and validation loss')
axes[1].legend()

display(fig)

In the "Deep Learning with Time Series" notebook, the results are underwhelming... we should either explain why or improve the results.

My guess (just based on a quick review) is that Daily_Cycles_Used is essentially a random walk and the prediction that optimizes loss is just the average, but there might be something else going on here.

In "Model Explainability" - for some reason when I show features_df in the last step, I got back this:
   ...
0  ...
1  ...
2  ...
3  ...
4  ...
5  ...
6  ...
7  ...
8  ...
9  ...
10 ...
11 ...
12 ...

[13 rows x 2 columns]

I have no idea why, but if others have that same issue, you might need to run pd.set_option('display.max_columns', 10) or something like that...

It seems pretty easy to lose your place in the monolithic Hands-On Guides. It would be a nicer experience to split them by steps and have links between them.

Bryan Cafferky brought up some very good feedback here. I agree with him we should specify the what exact services we use in Azure Machine Learning like AML Service, AutoML, or Azure Machine Learning (the GUI interface). And I think we can specify in the readme page that we are performing model management and note in bold that there will be a separate MCW on ML Ops in detail, per the documentation I have sent to you
Bryan's feedback:

Azure Machine Learning is used a lot in docs and I have found it better to always use Azure Machine Learning service which most of the documentation does.  AML service is a specific thing.
I assume the Python AML service SDKs are used from the Azure Databricks notebooks but it is not stated that I could see.
I assume MLFlow and AMLS MLOps is part of this but don’t see it mentioned in the ReadMe page. --- @Bryan - we will have have a more detailed MCW coming on MLOps

@swan-am-i There is no MLFlow being used and I think that’s fine for this workshop.

Please add the following links as resources:
https://docs.microsoft.com/en-us/learn/browse/?roles=data-scientist

Very very minor change:
In the ->Hands-on lab/Before the HOL - AI
Select "Machine Learning service workspace" from the results.
should be Select "Machine Learning service workspace**s**" from the results.

A number of us have run into the last cell the dataframe dump of “features_df” renders ellipses – it either needs a display() which is costly or some rework on the format.
Erik's fix works nicely : pd.options.display.max_columns = 2 #or default 20
I also added a matplotlib plot which works nicely ..
import matplotlib.pyplot as plt
features_df.columns = ['name','value']
plt.clf()
features_df.plot(x='name', y='value', kind='barh', rot=60, fontsize=6)
display()`

In the AI with Databricks and Azure Machine Learning hands-on lab step-by-step
Exercise 1: Creating a forecast model using automated machine learning
Exercise 2: Understanding the automated ML generated forecast model using model explainability
Task 1: Explore the model using a notebook
Browse to your Azure Notebooks project (Please mention about Databricks Workspace otherwise people may think about going into https://notebooks.azure.com ) and open AI with Databricks and AML \ Model Explainability. This is the notebook you will step thru executing in this lab.

Issue AK-1: Externalize common configuration using in notebooks
Externalize the subscription, resource group etc details into a separate notebook and call the same from the notebooks, with %run

Issue AK-2: Stream scoring notebook - reuse registered best model
We have repetitive code in the stream scoring notebook - the AutoML bit.  Consider persisting best model in "Model Explainability" notebook and loading the same.

Issue AK-3: Stream scoing notebook - scoring a scikit model in PySpark - options to parallelize
When you are dealing with a ML model that is not in Spark MLlib, and/or not natively parallelizable in PySpark - there are options to achieve this - somewhat.  Would help if options are laid out - e.g. create a pandas UDF and leverage this (I volunteer Erik Zwiefel for an example) etc.
And rationalization as to why this approach....why we are switching between pandas DF and spark DF..

Issue AK-4: Best practice - use external storage instead of DBFS, leverage key vault for secrets
Would be great if we can add a note that the best practice is to store data in a separate storage account versus DBFS.  And that in the lab - we have stored it in DBFS for simplicity and ease.
Also a note to secure credentials in Key vault.

I'm stuck on #6 of the first task.  Trying to upload the xls file... it does nothing. I've tried it in Edge, Chrome and with the new Portal app (did you know we have a portal app????!!!!!).
Not sure why this is... but I checked the file it opens fine in Excel and notepad.  In excel it's just one big chunk of data in the first column.  Each row puts the data in the first column.

I renamed the file extension to .csv and it worked.  There should be instructions on doing that as the file is downloaded as xls.

I'm stuck on #6 of the first task.  Trying to upload the xls file... it does nothing. I've tried it in Edge, Chrome and with the new Portal app (did you know we have a portal app????!!!!!).
Not sure why this is... but I checked the file it opens fine in Excel and notepad.  In excel it's just one big chunk of data in the first column.  Each row puts the data in the first column.

Issue AK-5: Deep Learning with Text - some notes

The following vars in command 3 are unused:
experiment_name = 'deep-learning'
project_folder = './dl'
deployment_folder = './deploy'

In command 3 two URLs are declared but unused
glove_url
data_url

In command 12 - function get_data is defined but unused
This could potentially be used with accepting data_url as a parameter from command 3 in command 14 where the same code is repeated.
But then again its a one-time-use snippet that need not be a function at all.

In command 12 - function download_glove, variable glove_url from command 3 can be used as a parameter.

Finished the workshop. Exercise #2 (Model Expandability) didn't really work out for me and I'm not sure what I did wrong but the others did work. I'm guessing I may have named something incorrectly.
The notebooks have previous results and subscription IDs in them still.  Not sure if this is intended or not.
It wasn't too difficult to follow along, although I will admit that my ML knowledge was close to 0 when starting. I feel a bit lost still due to a lack of ML background, but it was great exposure to code and how the different parts of Azure work together (getting the Models in ML workspace to work and then be called by Databricks - really helped me see the big picture).
Thanks, great stuff!!

Issue AK-3: Stream scoring notebook - scoring a scikit model in PySpark - options to parallelize
When you are dealing with a ML model that is not in Spark MLlib, and/or not natively parallelizable in PySpark - there are options to achieve this - somewhat. Would help if options are laid out - e.g. create a pandas UDF and leverage this etc. Also rationalization as to why we are switching between pandas DF and spark DF..
This doc from Databricks shows how to use Pandas UDFs and the performance improvement.
https://databricks.com/blog/2017/10/30/introducing-vectorized-udfs-for-pyspark.html
(Thanks Erik)

Great suggestion. We will consider it for the next update. Thanks.

Issue AK-5: Deep Learning with Text - some notes

The following vars in command 3 are unused:
experiment_name = 'deep-learning'
project_folder = './dl'
deployment_folder = './deploy'
In command 3 two URLs are declared but unused
glove_url
data_url
In command 12 - function get_data is defined but unused
This could potentially be used with accepting data_url as a parameter from command 3 in command 14 where the same code is repeated.
But then again its a one-time-use snippet that need not be a function at all.
In command 12 - function download_glove, variable glove_url from command 3 can be used as a parameter instead of redefining the URL

Thanks for the suggestions. We have made the changes.

Issue AK-4: Best practice - use external storage instead of DBFS, leverage key vault for secrets
Would be great if we can add a note that the best practice is to store data in a separate storage account versus DBFS. And that in the lab - we have stored it in DBFS for simplicity, ease and maintain focus on workshop learning goals.
Also a note to secure credentials in Key vault.

Thank you for the suggestion. We have updated the documentation to include the information.

Issue AK-5: Please update the PyPi name to the following product team recommended
Please modify the PyPi name to the following:
azureml-sdk[automl_databricks]
Latest docs on this are at:
https://docs.microsoft.com/en-us/azure/machine-learning/service/how-to-configure-environment#azure-databricks


Add releases/download-latest route

Possible partial fix (the "download url for latest release" part) for https://github.com/go-gitea/gitea/issues/3712
Draft PR posted for comment, tests currently missing.

{repo}/releases/latest is already a existing download link. So you should use {repo}/releases/latest/{filename} instead of {repo}/releases/download-latest/{filename}. A big problem I see here, is that many Projects tend to include the Version on the filename.

I don't think {repo}/releases/latest works here because it only redirects to the specific release page.
It doesn't allow for downloading a named artifact from the latest release, like:
$ curl http://gitea.local:3000/org/repo/releases/download-latest/file

I know, that currently you can't download through {repo}/releases/latest, as it's only a redirect. I was suggest, that you use {repo}/releases/latest/{file} instead of {repo}/releases/download-latest/{file}as route in this PR, as this is more intuitive.

I was suggest, that you use {repo}/releases/latest/{file} instead of {repo}/releases/download-latest/{file}as route in this PR

I didn't do that because the download route seems to be subject to different auth checks and I don't understand enough about the routing library to know if that would be problematic. But if you think it's ok, it's fine with me.

Pushed a commit that changes the path to {repo}/releases/latest/{file}.
Manually tested. Auth works as expected (unauthenticated access to {repo}/releases/latest/{file} is permitted while still disallowed to {repo}/releases/latest).
Now looking at how to add a test...

I found existing tests here: https://github.com/go-gitea/gitea/blob/main/tests/integration/api_releases_test.go but doesn't look like there is a test for download already. I will look at adding one for the existing download, and the latest release download code added in this PR.

Should we expose the new link on UI somewhere?

Should we expose the new link on UI somewhere?

I'm not sure. GH just documents this (search for "Linking to the latest release").

A test would be nice, likely in tests/integration/release_test.go.

Closing because this PR has already been merged. It seems to achieve roughly the same goal, except presumably will cause problems if anyone ever makes a real tag named "latest". This PR handled that case by using a distinct route rather than overloading the meaning of the vTag.


Request: add dapper-tutorial.net to the filter

DDG query: dapper insert multiple rows
FAKE: https://dapper-tutorial.net/knowledge-base/49864946/does-dapper-support-inserting-multiple-rows-in-a-single-query-
REAL: https://stackoverflow.com/questions/49864946/does-dapper-support-inserting-multiple-rows-in-a-single-query
Thanks!

Thanks!


net/http: TestIssue3595 failure with "write: broken pipe"

--- FAIL: TestIssue3595 (0.67s)
    transport_test.go:2031: Post: Post "http://<IP_ADDRESS>:12511": write tcp <IP_ADDRESS>:12512-><IP_ADDRESS>:12511: write: broken pipe
FAIL
FAIL	net/http

greplogs --dashboard -md -l -e 'FAIL: TestIssue3595 ' --since=2021-01-01
2022-02-08T23:38:05-0b7e586/freebsd-amd64-race

Just looking at the scenario this is testing, I suspect that it is a real bug in the net/http client (CC @neild).
My hypothesis is that the test is racing between filling up the server's input buffer and receiving its error response.

There is another issue here that seems to be closely related.
Running the test locally, I noticed that it always takes a little over 500ms. Most of that time is spent waiting on the sync.WaitGroup that wraps the Serve call on the underlying (*net/http).Server:
https://cs.opensource.google/go/go/+/master:src/net/http/httptest/server.go;l=249;drc=770f1de8c54256d5b17447028e47b201ba8e62c8
That server is itself stuck waiting on the following goroutine:
goroutine 18 [sleep]:
runtime.gopark(0x7367ee60ccff9?, 0x5fa4db?, 0x0?, 0x0?, 0x89cc00?)
        /usr/local/google/home/bcmills/go/src/runtime/proc.go:366 +0xd6 fp=0xc000133ae0 sp=0xc000133ac0 pc=0x439b96
time.Sleep(0x1dcd6500)
        /usr/local/google/home/bcmills/go/src/runtime/time.go:194 +0x12e fp=0xc000133b20 sp=0xc000133ae0 pc=0x46622e
net/http.(*conn).closeWriteAndWait(0xc0000b2000)
        /usr/local/google/home/bcmills/go/src/net/http/server.go:1734 +0x4f fp=0xc000133b58 sp=0xc000133b20 pc=0x6c786f
net/http.(*conn).serve(0xc0000b2000, {0x97f4a0, 0xc0000a00c0})
        /usr/local/google/home/bcmills/go/src/net/http/server.go:1975 +0x79a fp=0xc000133fb8 sp=0xc000133b58 pc=0x6c839a
net/http.(*Server).Serve.func3()
        /usr/local/google/home/bcmills/go/src/net/http/server.go:3071 +0x2e fp=0xc000133fe0 sp=0xc000133fb8 pc=0x6cddae
runtime.goexit()
        /usr/local/google/home/bcmills/go/src/runtime/asm_amd64.s:1571 +0x1 fp=0xc000133fe8 sp=0xc000133fe0 pc=0x4693c1
created by net/http.(*Server).Serve
        /usr/local/google/home/bcmills/go/src/net/http/server.go:3071 +0x4db

which was the very delay added for #3595. 🤔

That delay occurs even if the client closes the request body immediately upon receiving the server's response, which seems like a bug to me (but perhaps a separate one).

Indeed, I can replicate this failure mode by commenting out the time.Sleep in closeWriteAndWait. The test is marked parallel (presumably precisely because of that extra shutdown latency), and it's plausible that — especially on a race-detector-enabled builder — the scheduling overhead could perhaps push the test over that arbitrary 500ms boundary, or select the wrong branch when both the response and the write error are available.
(The latter scenario was described in https://github.com/golang/go/issues/3595#issuecomment-66066976.)


update transit url to use WebSocket over TLS with standard port

This change should fix two problems:

We avoid the known interoperability issues between WebSocket or TCP based relay connection as https://github.com/LeastAuthority/winden uses wss:// for these by default.
see: https://github.com/magic-wormhole/magic-wormhole-transit-relay/issues/28

We avoid using a non standard port 4001 which will be the cause for connection issues in many private networks having restrictions on outgoing connections.

In addition there was a missing import to have Uint8List defined.

Code Review Checklist

[ ] Description accurately reflects what changes are being made.
[ ] Description explains why the changes are being made (or references an issue containing one).
[ ] The PR appropriately sized.
[ ] New code has enough tests.
[ ] New code has enough documentation to answer "how do I use it?" and "what does it do?".
[ ] Existing documentation is up-to-date, if impacted.

Having a mobile app (which I expect will be the main use-case for Destiny) we need to get away from using non standard ports for our connections. This will get us a number of bad reviews, because for the end user the app will just not work when it is being used in a network which restricts access. This happens quite often if you are using public wireless offerings.
I would even go in the direction of enabling the CLI to use WebSocket to get away from that non standard port usage. (If there are no technical reasons against it).

We are depending from this PR: https://github.com/LeastAuthority/wormhole-william/pull/80, because which if we switch to early, we will not be interoperable with older destiny versions (or initial released version). Require some internal discussion for this.

You can use the TCP relay on 443 (if that's what you're getting at).

We are depending from this PR: https://github.com/LeastAuthority/wormhole-william/pull/80, because which if we switch to early, we will not be interoperable with older destiny versions (or initial released version). Require some internal discussion for this.

What? No, why are we talking about changing the transit protocol??
Next-gen file transfer will use Dilation, right?

As there is no more changes regarding websocket framing fix, maybe we can merge this PR and have default websocket connect via relay for Destiny. To my understanding, there should be no interoperability issues with older versions or other implementations. Any objections @vu3rdd @ewanas @meejah?

Right, half of the reason for this PR is gone.
(If there really are good reasons to use "standard" ports maybe a bug about that in particular should be filed, since we we could in principal listen for both kinds of connections on one port e.g. 443).
I put "standard" in quotes because 4001 is the standard relay port for TCP. I think what is meant here is "work around dumb port-based blocking by re-using the HTTPS port for everything"...?

I put "standard" in quotes because 4001 is the standard relay port for TCP. I think what is meant here is "work around dumb port-based blocking by re-using the HTTPS port for everything"...?

Neither IANA nor Wikipedia give any hint about port 4001 being part of some established standard.
Already had the experience with an Android App fetching data on port 7080. Over the years there were many bad reviews because the App did not work properly in some restricted network environments. This PR was intended to avoid that we need to learn that again.

I think main question or discussion here: keeping default ports of magic-wormhole or using standard HTTPS port.
Is default magic-wormhole ports documented and recommended to be used? What are benefits or downside keeping 4001 and 4002?
From HTTPS port usage, another benefit is that it "hides" under regular traffic to my understanding. If someone monitor activity on network, I think it is easier to notice uncommon port usage, then traffic via 443. Question, can usage of HTTPS port conflict with other traffic?
CLI probably can be used on servers, where for example httpd is running. However if we thing about Winden and Destiny, these are mostly desktop/browser application used in graphical environment.

I think main question or discussion here: keeping default ports of magic-wormhole or using standard HTTPS port.

Seems moreso the question is "use WebSocket for Transit" versus "use TCP for Transit" from Destiny.

Proposal: pass both TCP and WS addresses. Other side will receive two hints and will try to call both.
Simples solution would be just add another parameter and pass to dart and C transitRelayUrlWs. Or make more flexible and do more coding to pass array of urls

Proposal: pass both TCP and WS addresses. Other side will receive two hints and will try to call both.

I think this is the least-good way to do it.
This means every client has to care about every kind of transport, forever.

I think this is the least-good way to do it. This means every client has to care about every kind of transport, forever.

So the idea behind this PR was originally to move all communication to standard ports. Now after all that discussion it seems to be not right to move in any direction.
So I propose to follow the direction to focus on using WebSocket in the future. With Winden we have no other choice anyway.

Anyway closing this PR in favour of #209.

Maybe I misunderstood something then? Or was confused with the PRs about interop .. if this is just about putting more hints from one side (so long as Destiny is indeed listening/connecting on them all) that should work. If we need the other side to put in hints, then it won't.

Maybe I misunderstood something then? Or was confused with the PRs about interop .. if this is just about putting more hints from one side (so long as Destiny is indeed listening/connecting on them all) that should work. If we need the other side to put in hints, then it won't.

We put two hints instead of one, which is allowed from protocol perspective. Sender will send two relay addresses via hints. These address are common to Sender and Receiver on w-w, so it means that Receiver also will add two hints instead of one and exchange with whatever client Sender is. But this should not be a problem for Destiny and Winden, especially after if we merge this https://github.com/LeastAuthority/wormhole-william/pull/95 as it removes duplicates, but even know, receiver is consuming only Sender hints for relay.

Yes, sending multiple hints are fine from the protocol perspective (I must have been confused with the interop PRs, i.e. depending on a client to send a WebSocket hint when it doesn't know about WS).


[StableHLO] Use stablehlo submodule

Use the stablehlo submodule to provide stablehlo, since we do not need the 'mhlo' part or mlir-hlo anymore.
Fixes: https://github.com/openxla/iree/issues/12678

The failing lint check is for some existing issues in build_tools/scripts/integrate/patch_module.py. This PR only modified a comment so it shouldn't require formatting changes there.

Ping

CODEOWNERS added lots of reviewers for this. I pruned the list a bit, but it might also help to do that sooner / explicitly say who you expect reviews from.

Awesome, congrats!!


Add pointer to the jasmine test framework.

The example uses it() from jasmine, but there is no mention of that in the documentation, so new users unfamiliar with jasmine will be confused.
I found
https://stackoverflow.com/questions/28353232/what-is-the-it-function-here-doing
which pointed me in the right direction.

Q
A

Fixed Issues?
No issue mentions this, but i can open one if so desired

Patch: Bug Fix?
Documentation improvement

Major: Breaking Change?
No

Minor: New Feature?
No

Tests Added + Pass?
Yes

Any Dependency Changes?
No

I added a pointer to the jasmine test framework in https://redux-saga.js.org/docs/advanced/TaskCancellation.html

If the demo was supposed to be using https://github.com/antoinejaussoin/redux-saga-testing/
which also uses it(), I can change the patch accordingly.

Fix typo in https://redux-saga.js.org/docs/advanced/Testing.html
middlware -> middleware

describe/it globals are not exclusive to Jasmine - so I think it's better to leave the name of a particular test runner out of this. Especially given the fact that the used here expect doesn't quite use Jasmine's matchers.


Is returning command result anti-pattern/bad idea?

Hi
I have a command which creates a record in database. At the moment,  I have command as below
 public class CreateModelOverrideCommand : IRequest<CommandResult<ModelOverrideDto>
    {
        public CreateModelOverrideCommand(int modelId,  int year, double value)
        {
            ModelId = modelId;
            Year = year;
            Value = value;
        }
        public int ModelId { get; set; }
        public int Year { get; set; }
        public double Value { get; set; }
    }

My handler takes this command, creates row and returns the created row as data transfer object.  Is this a correct way to use command? or I should have another query and handler for retrieving created row?
I have many cases like this, and shedding a bit of light on this will help me a lot  going forward.
Many thanks

Nope, it's not. I think I blogged about it here:
https://jimmybogard.com/domain-command-patterns-validation/ maybe that
helps?
On Mon, Oct 23, 2017 at 7:05 AM, anarchistgeek<EMAIL_ADDRESS>wrote:

Hi
I have a command which creates a record in database. At the moment, I have
command as below
public class CreateModelOverrideCommand : IRequest<CommandResult
{
public CreateModelOverrideCommand(int modelId,  int year, double value)
{
ModelId = modelId;
Year = year;
Value = value;
}
public int ModelId { get; set; }
public int Year { get; set; }
public double Value { get; set; }
}
My handler takes this command, creates row and returns the created row as
data transfer object. Is this a correct way to use command? or I should
have another query and handler for retrieving created row?
I have many cases like this, and shedding a bit of light on this will help
me a lot going forward.
Many thanks
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jbogard/MediatR/issues/203, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAGYMuhI9fJ8DpPc0LvvEwPmPLnWSa1Nks5svIEcgaJpZM4QCuuO
.

Thanks @jbogard . It is helpful. Closing the issue.


Update building-net-docker-images.md

Hello @bednarz1990 ... Please re-open this as an issue using the This page feedback button and form at the bottom of the English-US topic because the change must be versioned correctly for all versions of the topic. Use of the This page feedback form adds metadata to your GitHub issue that cross-links the topic and automatically pings the author.

Actually, no ... this will be easy to edit in place. Hold on a sec ... I'll give a quick update.


Flaky test failure during v2.4.2 release

During v2.4.2 release preparations we've encountered a test failure in our integration-tests-enterprise-postgres suite
The following tests failed:

TestHTTPRouteExample
TestKongIngressEssentials
TestIngressEssentials

Looked at recent e2e tests, there seems to be one remaining flaky case: TestDeployAllInOnePostgresWithMultipleReplicas, the other cases are not failing in recent tests.
This case is related to leader election, so more effects would be used to check what was wrong in leader election.

TestKongIngressEssentials failed again in https://github.com/Kong/kubernetes-ingress-controller/runs/7320947630?check_suite_focus=true
=== CONT  TestKongIngressEssentials
    kongingress_test.go:116:
        	Error Trace:	/home/runner/work/kubernetes-ingress-controller/kubernetes-ingress-controller/test/integration/kongingress_test.go:116
        	Error:      	Condition never satisfied
        	Test:       	TestKongIngressEssentials
    kongingress_test.go:87: ensuring that KongIngress minking is cleaned up
    kongingress_test.go:66: ensuring that Ingress resources are cleaned up
    kongingress_test.go:52: cleaning up the service minking
    kongingress_test.go:39: cleaning up the deployment minking

Additionally, during the same run, a failure in TestKongIngressEssentials has been observed:
=== CONT  TestPluginEssentials
    plugin_test.go:161:
        	Error Trace:	/home/runner/work/kubernetes-ingress-controller/kubernetes-ingress-controller/test/integration/plugin_test.go:161
        	Error:      	Condition never satisfied
        	Test:       	TestPluginEssentials
    plugin_test.go:171: updating Ingress to use cluster plugin legal
    plugin_test.go:194: validating that clusterplugin legal was successfully configured
time="2022-07-13T12:56:55Z" level=debug msg="parsing kubernetes objects into data-plane configuration"
time="2022-07-13T12:56:55Z" level=debug msg="fetching endpoints" service_name=httpbin service_namespace=47f0eb7f-89dd-4b6c-9323-25afd285a27d service_port="&ServicePort***Name:,Protocol:TCP,Port:80,TargetPort:***0 80 ***NodePort:30466,AppProtocol:nil,***"
time="2022-07-13T12:56:55Z" level=debug msg="found endpoints: [***<IP_ADDRESS> 80***]" service_name=httpbin service_namespace=47f0eb7f-89dd-4b6c-9323-25afd285a27d service_port="&ServicePort***Name:,Protocol:TCP,Port:80,TargetPort:***0 80 ***NodePort:30466,AppProtocol:nil,***"
time="2022-07-13T12:56:55Z" level=debug msg="listener missing status information" gateway=kong listener=tls
time="2022-07-13T12:56:55Z" level=error msg="failed to fetch secret" error="Secret 90d7adeb-4e5d-4c95-8553-f8a10151b383/secret-test not found" gateway=kong listener=tls secret_name=secret-test secret_namespace=90d7adeb-4e5d-4c95-8553-f8a10151b383
time="2022-07-13T12:56:55Z" level=error msg="secret reference not allowed by ReferencePolicy" error="<nil>" gateway=kong gateway_namespace=90d7adeb-4e5d-4c95-8553-f8a10151b383 listener=tlsother secret_name=secret2 secret_namespace=fe62d10c-af54-4e4c-89e1-49d6fe8fda62
time="2022-07-13T12:56:55Z" level=debug msg="successfully built data-plane configuration"
time="2022-07-13T12:56:55Z" level=debug msg="converting configuration to deck config"
time="2022-07-13T12:56:55Z" level=debug msg="sending configuration to Kong Admin API"
updating plugin request-termination for route 47f0eb7f-89dd-4b6c-9323-25afd285a27d.httpbin.00  ***
   "config": ***
     "body": null,
     "content_type": null,
     "echo": false,
     "message": null,
-    "status_code": 418,
+    "status_code": 451,
     "trigger": null
   ***
   "enabled": true,
   "id": "eb838820-49f9-4ab5-817b-5fac08290f34",
   "name": "request-termination",
   "protocols": [
     "http",
     "https"
   ],
   "route": ***
     "id": "887d04cc-9936-4a87-972e-b76641c9f8ea",
     "name": "47f0eb7f-89dd-4b6c-9323-25afd285a27d.httpbin.00"
   ***
   "tags": [
     "managed-by-ingress-controller"
   ]
 ***
    plugin_test.go:205: deleting Ingress and waiting for routes to be torn down
--- FAIL: TestKongIngressEssentials (365.69s)

Sure thing. Let's reopen if that flake reoccurs, however it's going to be detected.


Reduce CPU usage

I started to play with ksync today (on Docker For Mac), and noticed, that, it is periodically starting to eat 100% cpu. Not sure what exactly triggers this behavior (I suspect laptop sleep mode) as directly after ksync watch start the CPU is not used that much (except of the fact that ksync watch start might cause like 30-60 container restarts, which is probably another bug...) - but after a while (4-5 times per day?) laptop fans are working on full speed and the process works on 100% cpu, until I restart it.

@Nopik Hmm, that's not good, and definitely not what we see here. I'm concerned foremost by the container restarts. The process for watch is pretty straightforward, we launch a container in the background with an instance of syncthing configured to the scheme you specified in your configuration. The foreground process starts an grpc server. If you choose --daemon, both processes are launched in the background.
If you're referring to cluster containers (which I guess is also running locally for you), then it gets a bit more tricky. Any change to the filesystem, locally or on the cluster, will cause the target container to restart. The details on this are somewhat annoying, but it's mostly because docker doesn't refresh the mount table outside of a restart and we're using that table to manage directories being synced.
It could be that frequent changes on either side are causing rapid turn over, but it shouldn't be that frequent. How frequently are changes made to either mirrored directory tree? Do you see high CPU usage when not making changes on either side?

So, most of the time the dirs on my setup are perfectly synced (I'm not coding 100% of the time, so mostly ksync is just waiting for me to edit some files). Last night I was putting laptop to sleep, when there was nothing to sync again, with ksync watch running, on one folder. This morning laptop was warm (clearly was waking up during the night) - and ksync watch was at 100% cpu when I unlocked the machine. When I restarted it, following logs were there:
INFO[0000] listening                                     bind=<IP_ADDRESS> port=40322
INFO[0000] new pod detected                              pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0003] folder sync running                           pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0006] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0006] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0006] update complete                               pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0006] issuing reload                                pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0007] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0007] update complete                               pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0007] reloaded                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0007] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0007] update complete                               pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0008] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0008] update complete                               pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0008] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0008] update complete                               pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0008] updating                                      pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird
INFO[0008] update complete                               pod=pouring-dog-deserializer-75c89b8896-j274b spec=natural-ladybird

so, pretty standard, I think. This time it was short, it stopped at [0008]. Usually when I do restart kwatch it goes to 30 or 58 (highest I've seen) - just issuing reloads one after another on seemingly previously synced dir.
The container is a Node.js app, with its node_modules black hole, ~25k files, ~3k dirs, ~134MiB. Yesterday I did added .stignore with node_modules on it, hoping that it will reduce the problems, but situation didn't change. After ignoring it is like 34 files, 14 dirs, 250KiB.
Answering your questions:

I was referring to ksync watch itself draining CPU, not any containers. I do see it in top getting 100% cpu, and ctrl-c + restart fixes the problem for short time (my laptop is often going to sleep when I'm away from keyboard, so maybe the problem happens only on machine sleep)
I wasn't using any --daemon flags, at least not consciously
the changes are not that frequent. They do come only from me typing in the IDE + gulp doing TS to JS conversion. When that happens, usually dir is synced in <2 seconds. I.e. one of the first things I've measured is how fast new code boots up after I press cmd-s in IDE, and the time was pretty good (could be 0.5-1s better, but still not bad). Interestingly, if I just modify some file, without gulp doing its compilation phase (which usually takes 2-3 seconds on this particular folder, producing lots of files), then I need to wait like 4-6 seconds until ksync notices that there was a change on a filesystem. That alone is pretty annoying, could be nice if I could tweak it somehow.
typically when there are no filesystem changes, ksync watch is not eating cpu. I'm monitoring it in top the whole time I'm writing this, it gets like 0.3% cpu or something like that. Until it decides to take 100% and begs for restart, that is.

For what it's worth, for some reason time in my k8s cluster is slightly off, about 56 seconds ahead, not sure why Docker For Mac didn't synced the time properly. And, on top of that it is 1 hour earlier, probably due to different timezone settings.

One detail more, it is not that any laptop sleep is causing the problem. Like, when I do intentionally put laptop to sleep and wake it 2-3 minutes later, ksync behaves perfectly.

Is the time off in your cluster when you intentionally put it to sleep?

I didn't measured it, but I think that the time got synced incorrectly upon k8s install (weeks ago), and got stuck at fixed offset, or at least drifting very slowly.

@Nopik We think we've tracked down your issue. When I use a local cluster (like Docker for Mac k8s), we can't assume uptime like we did with server side clusters (go figure). The problem arises when the cluster becomes unresponsive (in your case due to a sleep event) and the client half of the sync process, to put it technically, "freaks out". There's debounce and backoff on the entire watch process (both sides of it), but apparently not when an already established connect goes dead without a shutdown notice. There may also be a race condition aspect as it only happens when the watch process is not also shut down at the same time. I'm guessing we didn't run into this in our testing since we weren't running long running local clusters.
We're still tracking down the exact process that is causing the repeated checks, but that should give you some more info about causes in the meantime. Cycling the watch process after any such event should clear the problem temporarily.

Great! Thanks for the update. Indeed, that could be the issue. Once I started monitoring it closer, I didn't noticed 100% cpu usage in normal operation, only after (some) laptop sleeps. Ksync is quite nice tool I started to use for my normal workflow (first time really trying to develop on k8s directly), and this is one of the 2 most annoying bits (the second one is that the sync process sometimes takes lot of time to kick in - which maybe is configurable somehow..).

Good to know! We're happy it brought someone else some use.
If you want, you can file another issue for the sync time. Off the top of my head, I'm not sure why it would take a while, but that could be an internal syncthing configuration.

Also, when you'll have a chance to release a version with this bug fixed or at least mitigated?

@Nopik @grampelberg Is still tracking down why exactly this occurs. We'll try to update you when a fix is merged, then we can cut a new release.

That will be awesome, thanks!

@Nopik FTFY https://github.com/vapor-ware/ksync/releases/tag/0.1.2


[ts-sdk] avoid bundling and set up modular exports

Description
This PR creates a new build script for the typescript sdk (that should be applied to other packages in the future).  Rather than bundling the sdk into a single file, the build now compiles files 1:1 from src into dist/{esm|cjs}.
The Build script will generate a number of artifacts:

dist/esm

package.json - used to set "module": "module" so that files imported are treated as esm modules
*.js files for each typescript in in src
*.d.ts files with type-definitions for src file

dist/esm

This mirrors the esm directory with ``"module": "commonjs"inpackage.json`

/builder/package.jsoin

This is generated automatically based off exportsdefined in package.json
Each exported directory creates a package.json that maps main, module, and types to the corresponding files in the dist directory.  This enables importing from @mysten/sui.js/builder in tools that don't respect exports in package.json

Some stats on minified bundle sizes for files importing from the sdk in various ways:

esm: import { TransactionBlock } from<EMAIL_ADDRESS>- 62.0kb
esm: import { TransactionBlock } from<EMAIL_ADDRESS>- 223.6kb
cjs: import { TransactionBlock } from<EMAIL_ADDRESS>- 64.0kb
cjs: import { TransactionBlock } from<EMAIL_ADDRESS>- 227.8kb
old bundle size: 261.5kb

Results from https://arethetypeswrong.github.io/ for the new build:

Test Plan
How did you test the new or updated feature?

If your changes are not user-facing and not a breaking change, you can skip the following section. Otherwise, please indicate what changed, and then add to the Release Notes section as highlighted during the release process.
Type of Change (Check all that apply)

[ ] protocol change
[ ] user-visible impact
[ ] breaking change for a client SDKs
[ ] breaking change for FNs (FN binary must upgrade)
[ ] breaking change for validators or node operators (must upgrade binaries)
[ ] breaking change for on-chain data layout
[ ] necessitate either a data wipe or data migration

Release notes

@Jordan-Mysten if you have time tomorrow can you help me figure out what's going on with the vercel deploys that are failing?


How to set column width for certain sheet only

Hello,
Is there any options to set column width for certain sheet only ?

Currently, no: many options indeed apply to all sheets unfortunately. We should have a better separation between workbook options and worksheet ones.
Any PR is welcome though


git.exe, pageant.exe, ssh.exe builds up over time

Currently I have four of each process (git.exe, pageant.exe, ssh.exe) in my process manager (win 7 ent). I'm using vscode for diff handling and gitex for everything else. I tried not using gitex but push and pulls to github hangs through vscode.
V. 0.10.3

Closing, this should be resolved by now.


Validate output against jsonschema

There should also be an additional step between generating and uploading to ensure the data is within the expected format (jq only makes sure it is valid JSON, so something like jsonschema should be added to ensure that bad data is discarded and not uploaded).

Implemented in #13


stdio_usb.c does not compile

Missing include file in file
src/rp2_common/pico_stdio_usb/stdio_usb.c
needs
#include "pico/stdio_usb.h"

Sounds like something hasn't been set up correctly. And we'll need a lot more info to figure out what's happened...
Which OS are you using? Which compiler are you using? Which instructions have you followed? What command-line were you using that failed? What other output do you see?

no updates; closing


Error:For input string: ""

gradle message

I have the same issue too.

I hava too

too

too

too


Restarting in docker doesn't always work

When the docker container is restarted I get the following error:
unable to create control socket: listen unix /tmp/wag.sock: bind: address already in use
I expect wag.sock not to be cleared when the container exits, because when I create the container it starts without any issue. Within a docker environment the wag.sock can be cleared on startup since there won't be any other instance using it.

Ahhhhhh yes, so whats happening here is that wag has a signal handler that only catches SIGINT rather than SIGTERM which is what docker uses when killing them (iirc).
THis is super annoying and I'll look at getting that sorted! Thanks for the report, gives me motivation to get it done.

Hm I actually cant replicate this, can you give me the version and how you're using the docker image?


Google apps for business

I using Swift Mailer on localhost and live server using a SMTP connection (no-reply@isportsnational.com). It's works fine, but not sending emails to email address created with "Google apps for business". For example, I want to send an email to<EMAIL_ADDRESS>The domain 'ipagescanada.com' have the following MX records: alt1.aspmx.l.google.com, aspmx.l.google.com, aspmx2.googlemail.com, aspmx3.googlemail.com, aspmx4.googlemail.com, alt2.aspmx.l.google.com, aspmx5.googlemail.com
The email address<EMAIL_ADDRESS>is real. But I cannot send emails to this address. This is the error log:
++ Starting Swift_SmtpTransport << 220 ca7.design2web.ca ESMTP Postfix >> EHLO isportsnational.tst << 250-ca7.design2web.ca 250-PIPELINING 250-SIZE 41943040 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN >> STARTTLS << 220 2.0.0 Ready to start TLS >> EHLO isportsnational.tst << 250-ca7.design2web.ca 250-PIPELINING 250-SIZE 41943040 250-ETRN 250-AUTH LOGIN PLAIN DIGEST-MD5 CRAM-MD5 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN >> AUTH CRAM-MD5 << 334 PDExODM0Njc3MzAuMTU2MjExODVAY2E3LmRlc2lnbjJ3ZWIuY2E+ >> bm8tcmVwbHlAaXNwb3J0c25hdGlvbmFsLmNvbSBiMjI4Y2ZlYTgyY2EwZTI3YmQ1YTRkM2JhZWY3MTFlZg== << 235 2.7.0 Authentication successful ++ Swift_SmtpTransport started >> MAIL FROM<EMAIL_ADDRESS><< 250 2.1.0 Ok >> RCPT TO<EMAIL_ADDRESS><< 550 5.1.1<EMAIL_ADDRESS>Recipient address rejected: User unknown in virtual mailbox table !! Expected response code 250/251/252 but got code "550", with message "550 5.1.1<EMAIL_ADDRESS>Recipient address rejected: User unknown in virtual mailbox table " >> RSET << 250 2.0.0 Ok
My code, for reference:
        $transport = Swift_SmtpTransport::newInstance()
                ->setHost($smtp_host)
                ->setPort($smtp_port)
                ->setEncryption($smtp_ecryption)
                ->setUsername($smtp_user)
                ->setPassword($smtp_pass);
        $mailer = Swift_Mailer::newInstance($transport);
        $logger = new Swift_Plugins_Loggers_ArrayLogger();
        $mailer->registerPlugin(new Swift_Plugins_LoggerPlugin($logger));
        $message = Swift_Message::newInstance()
                ->setSubject('=?utf-8?Q?=F0=9F=94=91?= Password reset request')
<EMAIL_ADDRESS>=> 'iSportsNational.com'))
                ->setTo(array($email))
<EMAIL_ADDRESS>                ->setBody($body_html, 'text/html')
                ->addPart($body_text, 'text/plain')
                ->setPriority(2);
        $result = $mailer->send($message);
        FB::log($logger->dump());

Tldr-summary : not a swiftmailer bug, should be on mailing list as usual
Are you hosted on the same server with some kind of webmin / ispconfig /
... ?
If so, this is a simple variation of rtfm, you need to configure your
server not to handle emails for those destinations.
Hope this helps,
it's not a bug in swiftmailer.
Le jeu. 26 févr. 2015 00:38, dalcris<EMAIL_ADDRESS>a écrit :

I using Swift Mailer on localhost and live server using a SMTP connection (
bounces@isportsnational.com). It's works fine, but not sending emails to
email address created with "Google apps for business". For example, I want
to send an email to<EMAIL_ADDRESS>The domain 'ipagescanada.com'
have the following MX records: alt1.aspmx.l.google.com, aspmx.l.google.com,
aspmx2.googlemail.com, aspmx3.googlemail.com, aspmx4.googlemail.com,
alt2.aspmx.l.google.com, aspmx5.googlemail.com
The email address<EMAIL_ADDRESS>is real. But I cannot send
emails to this address. This is the error log:
++ Starting Swift_SmtpTransport << 220 ca7.design2web.ca ESMTP Postfix >>
EHLO isportsnational.tst << 250-ca7.design2web.ca 250-PIPELINING 250-SIZE
41943040 250-ETRN 250-STARTTLS 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN

STARTTLS << 220 2.0.0 Ready to start TLS >> EHLO isportsnational.tst <<
250-ca7.design2web.ca 250-PIPELINING 250-SIZE 41943040 250-ETRN 250-AUTH
LOGIN PLAIN DIGEST-MD5 CRAM-MD5 250-ENHANCEDSTATUSCODES 250-8BITMIME 250
DSN >> AUTH CRAM-MD5 << 334
PDExODM0Njc3MzAuMTU2MjExODVAY2E3LmRlc2lnbjJ3ZWIuY2E+ >>
bm8tcmVwbHlAaXNwb3J0c25hdGlvbmFsLmNvbSBiMjI4Y2ZlYTgyY2EwZTI3YmQ1YTRkM2JhZWY3MTFlZg==
<< 235 2.7.0 Authentication successful ++ Swift_SmtpTransport started >>
MAIL FROM<EMAIL_ADDRESS><< 250 2.1.0 Ok >> RCPT TO: <
<EMAIL_ADDRESS><< 550 5.1.1<EMAIL_ADDRESS>Recipient address rejected: User unknown in virtual mailbox ta ble !!
Expected response code 250/251/252 but got code "550", with message "550
5.1.1<EMAIL_ADDRESS>Recipient address rejected: User unknown
in virtual mailbox table " >> RSET << 250 2.0.0 Ok

—
Reply to this email directly or view it on GitHub
https://github.com/swiftmailer/swiftmailer/issues/587.

I have no rights to change something on server. I can manage only my application. And, I cannot put email restriction to my customers. I need all email addresses to be handled. You said that is not a bug. If you think that is normal that your library to handle some email adresses from a list, and don't  handle other (real) email adresses, for unclear (for me) reasons, you are right... But think about these: the unhandled addresses are used for registration, communications, payments confirmation, to receive orders and so on... I reported this issue to help you make your application better. I really apreciated your job. But in these conditions, I'm afraid that is not usable for me. Thank you!

The issue is not in swiftmailer, the server on which your app runs is
misconfigured, in more words, the server is considering himself as being
the final mailserver for those addresses, as such, it does not look at mx
records and only check if the email address exists.
As it does not exists (you don't host mail there) it returns a 5xx error,
which, given the misconfiguration of the server is correct.
You'll have the exact same problem with the mail() function or phpmail, or
any other system, (i strongly encourage you to check).
I'll gladly check with your hosting provider, but, it's not a library bug :)
If your  hosting provider can't reconfigure this, my recommendation is to
use a professional hosting provider, because this error is way too common.
Regards,
Xavier.
On Thu, Feb 26, 2015 at 6:58 AM, dalcris<EMAIL_ADDRESS>wrote:

I have no rights to change something on server. I can manage only my
application. And, I cannot put email restriction to my customers. I need
all email addresses to be handled. You said that is not a bug. If you think
that is normal that your library to handle some email adresses from a list,
and don't handle other (real) email adresses, for unclear (for me) reasons,
you are right... But think about these: the unhandled addresses are used
for registration, communications, payments confirmation, to receive orders
and so on... I reported this issue to help you make your application
better. I really apreciated your job. But in these conditions, I'm afraid
that is not usable for me. Thank you!
—
Reply to this email directly or view it on GitHub
https://github.com/swiftmailer/swiftmailer/issues/587#issuecomment-76126684
.

--
Xavier De Cock
GPG Fingerprint: 93CA EE3F 9F57 5BE1 AE4A  794D 3C74 CA9E E7A5 0C1B
GPG Id: 0xE7A50C1B

Hmm ... You had right ... everything is messed on my server ... I tried to contact my web hosting service provider, but they answered me that does not offers support for such problems and recommended me to use mailgun.com or critsend.com to handle emails. The server that I use is a VPS (Ubuntu 14.04). On this server are installed servers: Postfix, Dovecot and Sendmail ... but unfortunately they are not configured properly. If I will provide you root access to SSH / Webmin, you think can you investigate the problem and could give me some practical solutions to remedy them? I partially solved the problem with sending emails, also with SwiftMailer, changing the transport: if SMTP fails, it change with Sendmail, and if it fails, it change with Mail. The problem is that I can not use my SMTP server for handle emails, and I have to use an external server. For web server credentials, contact me at<EMAIL_ADDRESS>. Thank you!


chore(main): release 0.3.0

:robot: I have created a release beep boop
0.3.0 (2024-10-01)
Features

add confidence threshold option --conf (419ede9)
add kraken2 classification output file option -k (a4146bb)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/mbhall88/nohuman/releases/tag/0.3.0 :sunflower:


Add template for Svelte (JS)

@farskid Can you review when you get the chance? 🙏  I trust your Svelte expertise over mine

I am on the way of replacing the https://github.com/sveltejs/template with https://github.com/sveltejs/vite-plugin-svelte

Project is created with https://github.com/vitejs/vite/tree/main/packages/create-vite by running:
pnpx create-vite template-svelte-js --template svelte

Example on CodeSandbox works: https://codesandbox.io/embed/github/annaghi/xstate/tree/examples/template-svelte-js/examples/template-svelte-js


Reduce number of NDArray.__init__() overloads and make it a pure container

This proposal is for long term.
Situation
Currently, we have many overloads for __init__() of NDArray struct. On the one hand, overload is a good feature that allows more flexibility. On the other hand, it prevents developers/users conveniently checking the arguments during programming, and it means that we are using different overloading functions in other functions/modules. This causes ambiguity and difficulties in maintenance. Thus, we should try to avoid using overloads unless it is necessary.
Solution
For numpy, the solution is quite straightforward: there is only one initializer, which reads in (1) shape (tuple), (2) buffer (can left empty), (3) order (C or F), etc. For other constructors (fill a value, randomize, from string), use separate construction functions.
This makes the function signature clear and makes the ndarray type a pure container.
I think we can also follow this. For NDArray, we only keep ONE initializer: fn __init__[dtype](shape, buffer, order). All other constructors should be included in the module array_creation_routines.
Obstacle
The biggest obstacle at the moment is that the Tuple type is not iterable. This means that we cannot calculate size, strides, etc, from the shape (as Tuple). In future, when Tuple becomes iterable, we can completely align the arguments with numpy.

Why tuple and not List or ListLiteral for shape? Tuple is not only not iterable it doesn't implement setting values either, and both Tuple and StaticTuple have sizes set at compile time (meaning the number of dimensions is set at compile time). ListLiteral also has some problems (having to do a loop to move it into a List, which I guess you can do to a Tuple as well), why is there not a trait for collections of scalar types?
With conditional conformance now implemented we might be able to make initializers that cover two traits Takeable for the types that implement get but not __get_item__ and another that covers types with __get_item__ methods.
Another thing to consider is having an array function with overloads that generate NDarrays which would make it more similar to how most people use numpy initialization np.array(anything_that_this_crazy_thing_can_accept).

Why tuple and not List or ListLiteral for shape?
List is indeed better as we sometimes need to infer shape from input (e..g, str).

The main concern of this Issue is to reduce the number of reload of __init__.  Too many overload means ambiguity and difficulty in maintenance. Reducing number of reloads (options) means reducing possibility of mistakes.

Maybe remove this. shape should be better in a container. Also aligned with numpy.
Similar to (1). Either keep or remove.
Maybe remove this, so that shape can never be an NDArray.
This should go to a function numojo.array(object, shape, order), consistent with `numpy.
This should go to random module.
This should go to random module.
This should go to a function numojo.from_string(string, order).
Many arguments of this initializer can actually be calculated from other arugments. For example, size can be calculated directly from shape. We can remove this.
This shoud go to a function numojo.from_numpy.

To summarize, we only use List as the type of shape.  Or other constructors goes to functions like numpy.array, numpy.full, numpy.identity...

@MadAlex1997 @forFudan
I agree with some of the points such as moving 6. and 7. to random module.

9. was meant to be only used internally, it's never meant to be exposed to the user. We can keep it or make it an internal function explicitly.
We can remove 3. since it's equivalent to 2..
5. and 8. should be external function like numojo.array().

5. and 8. should be external function like numojo.array().

Yes, 5 is more laike numojo.array() that reads in an data object.
8 is not in numpy. I will create a from_str function in creation routine module and migrate there.

@forFudan I think it's better to keep both 5 and 5 under numojo.array() and not separate it.

This has been addressed by PR #139.


You need to rerun "npm install" when you install a new module

You need to rerun "npm install" when you install a new module, or it occurs error that "xxx module is not found", this is usually puzzled and not efficent when developing, how does this problem happen?

Yes, sometimes it doesn't need to reinstall it. I dont't know what goes wrong. Anyway, thanks for your answer.


Fix: adds unset listing status to marketplace utils

PR-Codex overview
This PR adds support for an "UNSET" status in marketplace listings.
Detailed summary

Added "UNSET" status for marketplace listings in utils.ts
Updated getAllInBatches function to handle the new status

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

Underlying cause turned out to be an ABI thing so I don't think we need this anymore


Expression error in edit rule using column with white space

Describe the bug
An expression is truncated in an edit rule that uses a column with spaces.
To Reproduce
Steps to reproduce the behavior:

Menu> Data Preparation > Dataflow
Click a dataflow
Click a W.DS
Edit rules
Add rule (aggregate) expressions that uses a column with spaces.
Edit rule and check expressions

Expected behavior
The exact expression must be set.
Screenshots

Desktop (please complete the following information):
Additional context
need an array type result in the API.
As an example
"uiRuleString":{
"name": "aggregate",
"value" : ["sum(column22)", "sum(column 23)"],
"group": column2"
},

@paigechoi @sang-hee-lee
Server works done.


java.net.SocketTimeoutException: Accept timed out in UI tests for 2024.1 EAPs

Last passing EAP-SNAPSHOT: 241.11761.10-EAP-SNAPSHOT.
Last passing EAP-CANDIDATE-SNAPSHOT: 241.12166-EAP-CANDIDATE-SNAPSHOT (#1819).
Error first observed in 241.12662.62-EAP-SNAPSHOT (PR #1814, see for some troubleshooting details).
Still occurring in 241.13688.18-EAP-SNAPSHOT (PR #1818).
My suspicion is that it might be caused by IJPL-633 — given that we observe that robot server plugin isn't loaded when IntelliJ starts (?)

Escape hatch: use runIdeForUiTests task from gradle-intellij-plugin, it somehow works:

But ideally, let's see what's different in ide-probe and this task if it comes to plugin setup.

runIdeForUiTests works correctly even with gradle-intellij-plugin v1.17.0... so it's not a matter of recent changes in gradle-intellij-plugin that would adapt this plugin to a new 2024.1 EAP.

Yeah... it seems that all plugins in ide-probe are treated as bundled:
https://github.com/VirtusLab/ide-probe/blob/master/core/driver/sources/src/main/scala/org/virtuslab/ideprobe/ide/intellij/IntelliJProvider.scala#L42-L52

Indeed! https://github.com/VirtusLab/ide-probe/pull/413 seems to fix the issue


Inconsistent errors when running Runelite through Steam

Further to the issue written in a comment of #11, I've got a little bit more detail on the second error I was having.
The primary fix in #11 was successful for the AppImage, however this seems to be something separate.
I'm launching RuneLite through steam with the following launch option;
/home/deck/.local/appimages/KeePassXC-2.7.1-x86_64.AppImage & "/home/deck/.local/share/Steam/steamapps/common/Old School RuneScape/bin/win64/RuneLite.AppImage" %command% && pkill -15 keepassxc
This should be fairly self explanatory, loading both KeePass and RuneLite. It then kills keepassxc once runelite is closed, so it's not hanging open in the background of gamescope.
This works, however it's very intermittent. Most of the time I receive the following error;
2022-08-15 11:57:08 [KeePassXCSocketConnection] INFO  a.os.keepassxc.proto.KeePassXCSocket - failed to read keyring
abex.os.keepassxc.proto.IOTimeoutException: Hit deadline
	at abex.os.keepassxc.proto.InterruptableInputStream.check(InterruptableInputStream.java:30)
	at abex.os.keepassxc.proto.InterruptableInputStream.read(InterruptableInputStream.java:46)
	at com.google.common.io.LittleEndianDataInputStream.readAndCheckByte(LittleEndianDataInputStream.java:231)
	at com.google.common.io.LittleEndianDataInputStream.readInt(LittleEndianDataInputStream.java:117)
	at abex.os.keepassxc.proto.KeePassXCSocket.call(KeePassXCSocket.java:194)
	at abex.os.keepassxc.proto.KeePassXCSocket.ensureAssociate(KeePassXCSocket.java:253)
	at abex.os.keepassxc.proto.KeePassXCSocket.init(KeePassXCSocket.java:137)
	at abex.os.keepassxc.KeePassXcPanel.lambda$load$2(KeePassXcPanel.java:63)
	at java.base/java.lang.Thread.run(Unknown Source)
2022-08-15 11:57:08 [KeePassXCSocketConnection] WARN  abex.os.keepassxc.KeePassXcPanel - error connecting to KeePassXC
java.io.IOException: Nonce mismatch [104, -78, -47, -16, -20, -6, -4, -94, 101, 107, -62, 47, 94, 10, 97, 113, 32, 88, -28, 124, -39, 79, 14, 1] != [-81, -124, -36, 75, -47, 95, -113, -128, 0, 73, -105, 60, -30, 64, 10, -110, -78, 20, -127, 108, -92, 38, -77, -112]
	at abex.os.keepassxc.proto.KeePassXCSocket.call(KeePassXCSocket.java:213)
	at abex.os.keepassxc.proto.KeePassXCSocket.ensureAssociate(KeePassXCSocket.java:272)
	at abex.os.keepassxc.proto.KeePassXCSocket.init(KeePassXCSocket.java:137)
	at abex.os.keepassxc.KeePassXcPanel.lambda$load$2(KeePassXcPanel.java:63)
	at java.base/java.lang.Thread.run(Unknown Source)

If I keep pressing retry, eventually it works. Sometimes it works immediately, sometimes it takes one or two retries, and sometimes it can be 50+. It does work eventually though, so I know this isn't some other weird conflict.
Once it's connected it works absolutely fine, so I'm assuming this is just a bit slow for whatever reason.
If not running it through steam and just directly running the KeePassXC AppImage and the RuneLite AppImage on the desktop, it works every time. I don't know why this is only the case when running it through Steam, though obviously it's necessary on the Steam Deck when running in game mode (which is the main reason for me wanting to use this plugin, it's an absolute life saver for logging in without a keyboard!).

The flatpack thing is on me, I was reading the chrome docs when trying to emulate firefox and I assumed that they would pass the same arguments...
I think you have mutliple versions of keepassxc running and listening to the socket, or something else is trying to read data from it. Try running a browser under steam and see if that works, because I suspect it will not.

Haha, why do something one way when you can do it multiple! =p
I've got keepassxc set to single instance mode, so I'd be surprised if that was the problem. It also happens if I do a hard restart of the steam deck and launch it.
Annoyingly I can't test a browser due to another, different bug, which is that flatpak firefox doesn't like to work with anything except a natively installed keepass. While it doesn't work on steam, it also just doesn't work generally.
Is there any way I could log the activity on the socket to see if there's a conflict?

Ok I have looked at this again (and fixed the flatpak thing I think) and I believe I see what is happening, its hitting the deadline, then continuing with the same socket so it reads the previous response for the current request. I have made it fail correctly in this case, and made it tolerate being slow so hopefully that should prevent the deadline from being hit as easily

Just gave it a test, extremely pleased to say that it seems to have fixed the problem!
Was able to load it up without any issues and it let me select my password every time.
Thank you so much!

Great!


Arrow button

Description
Create the component as shown in the video attached below.
Animation Preview

Screenshot/Video:

https://github.com/user-attachments/assets/15ea3188-e3c8-4375-92f4-f764dfedf945

[!NOTE]
Please refer to the Animata contributing guidelines available here for rules on how to contribute to the project. Let us know in the comments if you’re working on this issue, and feel free to ask any questions!

Requirements

Create a new animated component that matches the provided design.
Add example usage of the component in the documentation or storybook.

 Guidelines & Best Practices

Write reusable and clean code following the project’s style guide.
The component should be fully customizable. The user should be able to modify props such as duration, easing, color, and size where applicable.
Follow the Contributing Guidelines before submitting your pull request.

[!IMPORTANT]
To ensure more contributors have the opportunity to participate, we kindly request that:

Each contributor submits only one pull request related to this issue.
If you're interested in working on this issue, please comment below. We will assign the issue on a first-come, first-served basis.

Additional Resources
Referenced from: https://astronote.framer.website/

[!Tip]
Join our Discord community if you need help or have any questions. We're here to help you get started and guide you through the process. Join now

Hello @sudhashrestha , can you please assign this issue to me?

@wolfofdalalst Done

Hi @sudhashrestha , I would like to work on this

hey  @sudhashrestha  can i work on this

As it has already been a week, can I be assigned this issue? I can push the PR in two days.

I am actively working on this issue. Due to some family emergency i was unable to work on it last week. I will complete this within this week. Please consider.

Oh, it's no problem. I just thought you forgot about it.
I hope everyone in your family is well and praying for the same. Take care.

Hey @sudhashrestha,
I’ve created PR #369. Please review it and let me know if any changes are needed. Looking forward to your feedback.