automate cockroachdb

Automate fetching releases & versions for CockroachDB.
I'd eventually like to bring automated CockroachDB support to EOL & this PR is an attempt at doing that. I have to be honest I've no real clue on what I'm doing here, but I wanted to open & iterate on a PR rather than just asking for you to do all the work; hopefully, I'm not a million miles away here 🙏🏻

I'll look to raise a PR for the product against EOL 👀

Hi @rcrowe, thanks for this contribution.
I looked at the script and it looks OK. But given the information on https://www.cockroachlabs.com/docs/releases/release-support-policy, I think we already have a script that can scrape those dates: release_table.py.
It may be a bit complex to configure (see https://github.com/endoflife-date/endoflife.date/pull/4686 for example), but I will provide you the configuration in https://github.com/endoflife-date/endoflife.date/pull/4698.

Closing this: existing automation scripts are sufficient to automate versions, release dates/support/EOL dates of CockroachDB.


error: identifier "i" is undefined (C99 variable declaration in for loop)

Trying to build the main branch with icc, and get this error.
.6-zlib-szip/include -fno-strict-aliasing -MT libdispatch_la-nc.lo -MD -MP -MF .deps/libdispatch_la-nc.Tpo -c ../../libdispatch/nc.c -o libdispatch_la-nc.o
../../libdispatch/nchashmap.c(387): error: type name is not allowed
      for (size_t i=1; i < NC_nprimes - 1; i++) {
           ^

../../libdispatch/nchashmap.c(387): error: expected a ";"
      for (size_t i=1; i < NC_nprimes - 1; i++) {
                  ^

../../libdispatch/nchashmap.c(387): error: identifier "i" is undefined
      for (size_t i=1; i < NC_nprimes - 1; i++) {

size_t i should be declared separately if not using C99
https://github.com/Unidata/netcdf-c/blob/26ac2a6cba7cc7749f1e8b2fa8e2c7bc0c3169dc/libdispatch/nchashmap.c#L387
I was able to work around the issue by moving the variable declaration to the line above.

Thanks!


Fix job execution condition for auto-merge

The job execution condition has been fixed so that automatic merging is possible even if the following case.
https://github.com/vdaas/vald-client-clj/pull/109

@coderabbitai review

@coderabbitai review


Styling issues with UI in different browsers

Side nav may have unnecessary scroll bars.
Height of content can be too large.

Merged into develop.


[HPC] Proposals to increase popularity with submitters, press, and entities seeking to purchase systems

This issue is intended to be used as an index for this collection of 6 proposals we recently presented to the WG.
Introduction:
After collecting feedback from engineers, clients, and press, NVIDIA presented a list of proposals that aim to improve the popularity of the MLPerf HPC benchmark suite. Please see our slide deck for more information on our feedback gathering process and insights.
Proposal breakdown (prioritized from most urgent to least):

Most impactful but also most invasive proposals, focusing on reducing submission overhead:

#507
#508

Focusing on increasing participation and prioritization:

#509

Focusing on presentation:

#511
#510
#512

Timeline proposal:
We should decide at least on the top 3 proposals as soon as possible because those affect benchmark development and capacity reservations. We propose the following expedited timeline, which will likely require discussion by WG member offline through these GitHub issues.

Feedback and discussion: +2 weeks from now (or, one WG round). Discussion dates proposed to be 02/13/2022 and 02/20/2023.
Reach final decision: +4 weeks from now. Final decision deadline: 03/06/2023

Thanks a lot for putting together all these issues. It's really helpful.
We've had some discussions in our WG meetings but I'm still not sure we're ready to have final decisions by next week. I would suggest that we shoot for Mar 13 or 20.
I think the first two affect each other so I doubt we'll be able to decide on them fully independently, but maybe we could try to reach consensus or vote on at least the data movement one on Mar 13, and if we run out of time we can decide the throughput one on Mar 20. Does this sound reasonable?

@sparticlesteve @memani1 Should we form a task force for this so we can get some dedicated time and faster progress? Otherwise we are only opportunistically discussing the subjects whenever we find a gap in the agenda.

maybe we can discuss the taskforce and meetings here, for visibility.
I'm at a conference this week but besides Fri I can make most times work if we want to meet.

I'm available to meet at any time for this, as we believe it's critical for the HPC benchmark to move towards this direction.


Correct route precedence logic for k8s ingress

Please provide a description of this PR:
Sort generated vs routes to meet ingress route precedence requirements, please refer to https://kubernetes.io/docs/concepts/services-networking/ingress/#multiple-matches

In some cases, multiple paths within an Ingress will match a request. In those cases precedence will be given first to the longest matching path. If two paths are still equally matched, precedence will be given to paths with an exact path type over prefix path type.

Fixes #35033

@dddddai: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
d3f2b7e5f55bc249d293a7b9222b7e251b6b0745
link
true
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@dddddai: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

lint_istio
d3f2b7e5f55bc249d293a7b9222b7e251b6b0745
link
true
/test lint_istio

unit-tests_istio
d3f2b7e5f55bc249d293a7b9222b7e251b6b0745
link
true
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@dddddai: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

integ-security-multicluster-tests_istio
af5e25e8615342de44f6816265574553f521848e
link
true
/test integ-security-multicluster-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

Thank you!

Can we are a feature flag to retain the old behavior for backwards compatibility?

OK, so should the default value be false?

Also what happens for 2 ingress with same hostname?

They will be merged to one vs whose routes are sorted, as the unit test shows:
ingress 1:
https://github.com/istio/istio/blob/af5e25e8615342de44f6816265574553f521848e/pilot/pkg/config/kube/ingressv1/conversion_test.go#L142-L149
ingress 2:
https://github.com/istio/istio/blob/af5e25e8615342de44f6816265574553f521848e/pilot/pkg/config/kube/ingressv1/conversion_test.go#L215-L222
result:
https://github.com/istio/istio/blob/af5e25e8615342de44f6816265574553f521848e/pilot/pkg/config/kube/ingressv1/conversion_test.go#L281-L283

nginx ingress-controller:
https://github.com/nginxinc/kubernetes-ingress/tree/v2.1.0/examples/mergeable-ingress-types
Also have CRD: https://docs.nginx.com/nginx-ingress-controller/configuration/virtualserver-and-virtualserverroute-resources/
Not all ingress controllers support ingress merge

Thanks for the info

Not all ingress controllers support ingress merge

Yes but we do merge ingresses
https://github.com/istio/istio/blob/994621ac3efbebbbadf1ed661a32d93e854d7508/pilot/pkg/config/kube/ingress/conversion.go#L134-L136

@dddddai: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Required
Rerun command

gencheck_istio
387083ee26115430a45545eae5c29ae022aa6b24
link
true
/test gencheck_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


[HELP] Unwanted Slash Interactions Visible

When I run the bot and look at the slash commands through Discord, I see is has commands like /admin embed, /admin say, /info ping, and /info userinfo. I want to get rid of these but I can't find them anywhere in the bots files.

Yes

Just that

 All command interactions fail (except help). I have restarted the bot multiple times. I don't understand number 3

This indeed means that the commands are actually not available. You should try restarting your discord client (discord app), do Ctrl + R also try restarting your network connection. I don't see this issue from the coding side.

Please explain in brief.

I believe this is caching then, did you made the commands global? or it is guild based?

Routes.applicationGuildCommands(client_id, test_guild_id),

Yeah, looks cool for guild. I will assume you have done your config file properly.
So yeah, you can use the ApplicationCommand methods as mentioned in docs, to forcefully delete it.

How would I do that tho

Make a slash command manager? Or just raw scripts using a eval command?

Hit me up on discord rn allroundernaman#3915 and I'll test it in your server.


[3.0] Lock-free ConfigManager and improve config checking

What is the purpose of the change

Change ConfigManager to lock-free with ConcurrentHashMap
Improve config equals() and toString() performance
Improve checking large numbers of reference/service configs

Brief changelog
Verifying this change

Checklist

[x] Make sure there is a GitHub_issue field for the change (usually before you start working on it). Trivial changes like typos do not require a GitHub issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[ ] Each commit in the pull request should have a meaningful subject line and body.
[ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[ ] Check if is necessary to patch to Dubbo 3 if you are work on Dubbo 2.7
[ ] Write necessary unit-test to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add sample in dubbo samples project.
[ ] Add some description to dubbo-website project if you are requesting to add a feature.
[ ] GitHub Actions works fine on your own branch.
[ ] If this contribution is large, please follow the Software Donation Guide.

Codecov Report

Merging #8289 (5fb6ab3) into 3.0 (026fb43) will decrease coverage by 0.20%.
The diff coverage is 89.89%.

@@             Coverage Diff              @@
##                3.0    #8289      +/-   ##
============================================
- Coverage     64.04%   63.84%   -0.21%
+ Complexity      313      312       -1
============================================
  Files          1073     1077       +4
  Lines         45271    45486     +215
  Branches       6813     6840      +27
============================================
+ Hits          28994    29039      +45
- Misses        13063    13212     +149
- Partials       3214     3235      +21

Impacted Files
Coverage Δ

...org/apache/dubbo/config/context/ConfigManager.java
76.63% <89.28%> (-3.50%)
:arrow_down:

...n/java/org/apache/dubbo/config/AbstractConfig.java
80.23% <90.24%> (-0.47%)
:arrow_down:

...g/apache/dubbo/config/AbstractInterfaceConfig.java
87.27% <100.00%> (+0.33%)
:arrow_up:

...o/registry/zookeeper/ZookeeperRegistryFactory.java
66.66% <0.00%> (-33.34%)
:arrow_down:

...tore/zookeeper/ZookeeperMetadataReportFactory.java
66.66% <0.00%> (-33.34%)
:arrow_down:

...ookeeper/ZookeeperDynamicConfigurationFactory.java
66.66% <0.00%> (-33.34%)
:arrow_down:

...dubbo/common/status/support/LoadStatusChecker.java
46.15% <0.00%> (-15.39%)
:arrow_down:

...ng/transport/dispatcher/WrappedChannelHandler.java
47.82% <0.00%> (-15.22%)
:arrow_down:

...ng/transport/dispatcher/all/AllChannelHandler.java
68.96% <0.00%> (-13.80%)
:arrow_down:

.../remoting/transport/netty4/NettyClientHandler.java
61.01% <0.00%> (-6.78%)
:arrow_down:

... and 40 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 026fb43...5fb6ab3. Read the comment docs.


Resolves #4 - As a user I would like to be able to process a payment

Fix you commit message
@FredSoares

@FredSoares in my comments on the unit tests please remove the test cases that will never fail.


Bugfix affine coefficients

Fixes # 822.
Checklist

[yes ] I have included examples or tests
[yes ] I have updated the change log
[no ] I am listed in the CONTRIBUTORS file
[ ?] I have cleaned up the commit history (use rebase and squash)

Changes proposed in this pull request:
Fixed code to make it consistent with the first and fourth affine coefficients being the coordinates of the center of the top-left cell (as opposed to top-left of top-left cell)

@ghgetonup do you want to add yourself into CONTRIBUTORS file?

@ghgetonup One more thing. _dataset.GetGeoTransform() used in some other places. I think there also presented same error. Lets fix these places too?

GdalImage.cs, line 126
GdalImageSource.cs, line 185
GdalTiledImage.cs, line 70

Yes makes sense to fix those as well, I'll update...

I noticed that there was already a method to shift origin of the affine coefficients, namely AffineTransform.TransformToCorner()), so I'm using this now to adjust the origin in the various Gdal*.cs sources. I changed input arguments of the method from int to double to allow for fractional rows and columns.

I've merged it into master. Thanks for the pull request!
P.S. @ghgetonup if you want to be added into CONTRIBUTORS files, just let me know :)


VS 17.8 Blazor missing and additional components missing

URL
https://dotnet.microsoft.com/en-us/learn/aspnet/blazor-tutorial/install
Operating system
windows 10 enterprise 10.0.19045
More information about your system
windows 10 x64 Enterprise 10.0.19045
visual studio 17.8 LTSC Professional
Description
We installed VS Pro 17.8 LTSC installer from MSDN subscription account.
The resultant download was c:\temp\vs_professional.exe
We ran the installer simply as c:\temp vs_professional.exe
We selected just ASP.NET and web development workload, To the right, Installation Details listed:

Visual Studio core editor
ASP.NET and web development

Included:

.NET Framework 4.7.2 development tools
ASP.NET and web development perquisites

Optional:

.NET Framework 4.8 Development tools
.NET Framework project and item templates
.NET profiling tools
Entity Framework 6 tools
IntelliCode
.NET Framework 4.6.2-4.7.1 development tools
Additional project templates
.NET Framework 4.8.1 development tools

When installation completes, we tried to create a new project and searched for "blazor". There are no razor or blazor project templates.
We ran the InstallerCleanup.exe and it removed everything as expected. We repeated and observed the same result. We then tried to create an offline install, creating a Layout and running the vs_professional.exe from the Layout folder. We again observed the same result.
Where on earth is Blazor?
We then ran dotnet --info command and noticed .NET 8 was not installed nor any SDK despite them being checkboxed on the installer's Additional Components screen. We had checkboxed .NET 8 core, SDK etc.
We then downloaded dotnet-sdk-8.0.107-win-x64 and installed that.
Still no Blazor.
? What gives ?

dotnet --info
.NET SDK:
Version:           8.0.107
Commit:            1bdaef7265
Workload version:  8.0.100-manifests.c915c39d
Runtime Environment:
OS Name:     Windows
OS Version:  10.0.19045
OS Platform: Windows
RID:         win-x64
Base Path:   C:\Program Files\dotnet\sdk\8.0.107\
.NET workloads installed:
Workload version: 8.0.100-manifests.c915c39d
There are no installed workloads to display.
Host:
Version:      8.0.7
Architecture: x64
Commit:       2aade6beb0
.NET SDKs installed:
8.0.107 [C:\Program Files\dotnet\sdk]
.NET runtimes installed:
Microsoft.AspNetCore.App 8.0.7 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.6 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.7 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 6.0.6 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.7 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Other architectures found:
x86   [C:\Program Files (x86)\dotnet]
registered at [HKLM\SOFTWARE\dotnet\Setup\InstalledVersions\x86\InstallLocation]
Environment variables:
Not set
global.json file:
Not found
Learn more:
https://aka.ms/dotnet/info
Download .NET:
https://aka.ms/dotnet/download

Sorry you're running into this issue. Could you type the command where.exe dotnet on command prompt or powershell to see what it returns? I want to check if this is a PATH issue.
@danroth27 any other suggestions?

@DrHoneyBear That is very strange! After you installed the .NET 8 SDK manually, are you at least able to run dotnet new blazor from the command-line?


pvc namespace is mixed with image namespace when exporting a volume to create an image

Describe the bug
Image namespace should be configurable when being created from exporting a volume

close as this will be verified by the https://github.com/harvester/harvester/issues/568


Working with latest angular family and company...

I have used mrvdot angular-sixpack without problems on a previous project, but I found some small bugs when trying it with the latest angular and co.
This small changes should fix the issues.

Sorry for the double pull request :)

@ischnura Hey, sorry, I completely missed this, but thanks for the updates, that looks great. I just merged it in with my latest updates for angular 1.4.
Thanks again

Great, thanks for the update!
On Apr 26, 2015 21:09, "Alex Vanston"<EMAIL_ADDRESS>wrote:

@ischnura https://github.com/ischnura Hey, sorry, I completely missed
this, but thanks for the updates, that looks great. I just merged it in
with my latest updates for angular 1.4.
Thanks again
—
Reply to this email directly or view it on GitHub
https://github.com/mrvdot/angular-sixpack/pull/2#issuecomment-96421544.


Division by zero with 'precomputed' matrix

Please see the log below:
lbl = hd.HDBSCAN(min_cluster_size=3,metric="precomputed").fit_predict(dst)
File "/usr/local/lib/python2.7/dist-packages/hdbscan/hdbscan_.py", line 549, in fit_predict
self.fit(X)
File "/usr/local/lib/python2.7/dist-packages/hdbscan/hdbscan_.py", line 531, in fit
self.min_spanning_tree) = hdbscan(X, **self.get_params())
File "/usr/local/lib/python2.7/dist-packages/hdbscan/hdbscan.py", line 379, in hdbscan
return tree_to_labels(X, single_linkage_tree, min_cluster_size) + (result_min_span_tree,)
File "/usr/local/lib/python2.7/dist-packages/hdbscan/hdbscan.py", line 53, in _tree_to_labels
labels, probabilities = get_clusters(condensed_tree, stability_dict)
File "hdbscan/_hdbscan_tree.pyx", line 466, in hdbscan._hdbscan_tree.get_clusters (hdbscan/_hdbscan_tree.c:9279)
File "hdbscan/_hdbscan_tree.pyx", line 508, in hdbscan._hdbscan_tree.get_clusters (hdbscan/_hdbscan_tree.c:9142)
File "hdbscan/_hdbscan_tree.pyx", line 418, in hdbscan._hdbscan_tree.get_probabilities (hdbscan/_hdbscan_tree.c:7703)
ZeroDivisionError: float division
'dst' is a Numpy array which encodes the distance matrix. I would appreciate if you would comment on this issue.

Yes, this is a small bug in the soft cluster calculation that can arise is slightly pathological cases (from the point of view of the soft cluster computation -- the clustering could be fairly normal otherwise). Thanks for catching this.

Thank you very much, I look forward to it; my distance matrix is not positive definite so I can't Cholesky-decompose it.


type 'typing.TypeVar' is not an acceptable base type

Package Name: azure-storage-blob azure-identity
Package Version: azure-core 1.26.4, azure-identity 1.12.0, azure-storage-blob 12.16.0
Operating System: Windows
Python Version: 3.12.0

Describe the bug
We have a python script running as part of our build system  It's been running fine for the better part of a year (both locally on developer machines and on DevOps under Windows, Linux, and MacOS).
This script started breaking a few days ago for one member of our team after they upgraded to Python 3.12.  (At least, we think that's the reason.)
To Reproduce
The part of the script that breaks is as follows:
from azure.storage.blob import BlobServiceClient, ContainerClient

Under Python 3.12 this throws an exception with the following suitably cryptic message:
type 'typing.TypeVar' is not an acceptable base type

Expected behavior
Under Python 3.11.3 (the version I am using on Windows) the packages are imported as expected.  On DevOps running Python 3.9.13, this script also works as expected.

Thanks for the feedback, we’ll investigate asap.

Hi @crazydef James, thanks for your inquiry. From a cursory search, it seems that this is a known issue with Python 3.12+ and certain versions of typing_extensions (seems to be 4.4.0 and 4.5.0):
https://github.com/python/typing_extensions/issues/243
With that being said, to verify this is the root cause of the issue, can you please check what installed version of typing_extensions you are using? If it is one of versions stated above, then simply updating to the latest version (or at the minimum 4.6.0), should resolve your issue.
Please let me know if this works for you and seems to be the cause! As a follow up, we will look to possibly bump up our typing_extensions version when possible if this does seem to be the case.
Thanks!

Hi @vincenttran-msft.
Unfortunately the person in question had to roll back his python installation to continue working.
However, it turns out another person in our team has been successfully using Python 3.12 for quite some time with no issues.  He is using typing_extensions version 4.8.0.
I have just upgraded my Python to 3.12 and I get typing_extensions version 4.9.0 by default.  So I'm not sure what was going on with this other broken machine.  Probably a messed up Python install more than anything else.

Hi @crazydef James, I have confirmed the issue to be the bug in typing-extensions==4.4.0-4.5.0 and Python 3.12 so anybody running into this issue should go ahead an update their typing-extensions dependency which should resolve the issue. What likely happened to the person who first encountered the issue is they updated their Python version but did not update any of the package versions in their environment. If they wish to use Python 3.12, they can try again but be sure to update their typing-extensions version (pip install typing-extensions --upgrade). However, it may be better to just start with a clean environment and install everything again to make sure they get the latest for everything. I do also want to just note we have not released official support for Python 3.12 yet but plan to in our next release.
Additional details on how this can occur
As our dependencies stand today, it is still possible for new users to get into this scenario but unlikely. Our dependency typing-extensions>=4.3.0 can allow for broken versions but azure-core (also our dependency) has their dependency set to typing-extensions>=4.6.0 meaning recent versions of that will not allow the broken version to be installed. However, our dependency on core is quite old, so it's possible to install an older versions of azure-core as well which would allow for a broken version of typing-extensions. All that is to say, any new installs of the package should almost definitely not be seeing this issue but if someone upgrades just azure-storage-blob without updating dependencies its possible. So, I will put out a PR soon that bumps our dependency on typing-extensions to >=4.6.0 so that in our next release we guarantee this error will not occur on the latest version of blob.

OK, good to know.  Thanks for the update.


Support for WordPress Mastodon plugin

This plugin supports the mastodon API and should therefore be simple enough to add: https://wordpress.org/plugins/enable-mastodon-apps/
Here is a nodeinfo response: https://alex.kirk.at/wp-json/nodeinfo/2.1
{
    "version": "2.1",
    "software": {
        "name": "wordpress",
        "version": "6.3.1",
        "repository": "https://github.com/wordpress/wordpress"
    },
    "usage": {
        "users": {
            "total": 1
        },
        "localPosts": 219,
        "localComments": 211
    },
    "openRegistrations": false,
    "services": {
        "inbound": [
            "atom1.0",
            "rss2.0",
            "pop3"
        ],
        "outbound": [
            "atom1.0",
            "rss2.0",
            "wordpress",
            "smtp"
        ]
    },
    "protocols": {
        "0": "activitypub",
        "inbound": [
            "webmention"
        ],
        "outbound": [
            "webmention"
        ]
    },
    "metadata": {
        "email"<EMAIL_ADDRESS>        "generator": {
            "name": "NodeInfo WordPress-Plugin",
            "version": "2.1.1",
            "repository": "https://github.com/pfefferle/wordpress-nodeinfo/"
        }
    }
}

Unfortunately this isn't possible, because the plugin identifies itself with
{
  "software": {
    "name": "wordpress",
  }
}

which is the same as https://wordpress.org/plugins/activitypub/ and that plugin (which has more installations) doesn't support mastodon, so we'd be bombarding all those sites with useless traffic


[Enhancement] config-daemon: add a periodic validation routine

This enhancement proposes to add a routine to the config-daemon that verifies (in a polling fashion) the
underlying hardware configuration is aligned with the SriovNetworkNodePolicies.
External actors (or privileged workloads) may change the VF's driver [1] or any other underline
hardware configuration that may break subsequent pod deployment. The proposed routine should
apply the SriovNetworkNodePolicies specs to the hardware whenever a divergence is detected.
[1] https://github.com/k8snetworkplumbingwg/sriov-network-operator/issues/443

this was implemented https://github.com/k8snetworkplumbingwg/sriov-network-operator/pull/530


Example Repo (wgpu boids port)

I'm still fairly new to both Rust and GPU programming, but very excited about this project and been following it for quite a while (I even submitted the first compute example PR a few months ago). But I'm not sure I'm exactly the target audience at the moment? There's a lot of prior knowledge that seems to be expected, I'm not sure how much that's intentional?
One thing that's surprised me is that the examples are not actually that simple in terms of setting up a new project. For instance I didn't realise that this repo can actually just be used as a Cargo dependency, even though the various crates aren't officially published yet. Based on that new-found knowledge I've made a standalone repo that ports wgpu's Boids example, which is noteworthy because it involves both a compute and render pass.
https://github.com/tombh/boids
I found it very educational and wish I'd known sooner how simple it all was. Of course there's still some big holes in my knowledge, like there's some kind of undocumented convention for the ordering of arguments to GL entry points?
So I don't have a specific recommendation, I'm just a keen potential user of the project trying to navigate it in its current state. Maybe I'm still just a bit too early?

Hi Tom!
I'm also fairly new to both Rust and GPU programming, you should join the discord for this project if you haven't already.
Your Boids also seems like it might be worth submitting to the "Share Your Creations" page on the GitHub 'discussion'

Thanks for the example! As @AidanConnelly, github discussions would be a great place to share this.
As for the severely lacking documentation - unfortunately yeah, it is indeed severely lacking, the two of us have been pretty overwhelmed with other parts of the project and are struggling to find time for documentation. Hopefully we can get on that soon! Thanks for pointing out the pain points, too, that really helps us figure out how to structure new docs we write.

@AidanConnelly thanks for the link!
@khyperia thanks for the reply! I don't think I explained myself well. Where I've got to is that I think this project is more ready than it appears. I think my associations with a project that is as functional as this one are that there is usually more fanfare about that in the README and such. So for me there's been an interesting dissonance "reading" the project: on the one hand I find myself surprised by how I'm continuously pulled into it through its lack (yes lack!) of showstopping issues, but on the other hand, when things do get tricky, my immediate response is something like, "oh right yeah, I've never been initiated into SPIRV, of course I can't use this project". But the fact is that familiarity with SPIRV isn't a hard requirement, it's just a bonus.
Ok, so my conclusion I think is something like this: I should have a light touch with this project, not because of my unfamiliarity with SPIRV, but rather simply because the project is still beta. Now of course the beta state is made clear in the README, but the beta state isn't so clear when I manage to have so much success with my pet projects 😂 I mean just the sheer fact of sharing the very same structs between CPU and GPU is incredible to me. Let alone all the other joys of clippy, tests, etc on the GPU.
So transitioning out of beta isn't just about the readiness of the code, it's also about public expectations right? Whereas I, someone uninitiated into SPIRV and the deeper side of GPUs, see something very ready, others have higher expectations of what would constitute ready in this space.
Ok so my final, final point is not a question of the documentation, it's just this question of how much a part of the target audience I am?
Either way, thanks so much for making all your hard work public like this. It's an inspiration ✨


Mouse captured after selecting item from context menu in FlowGraphWidget

Describe the bug
After poping up a context menu (right-click) and then selecting an item (left-click) in the FlowGraphWidget the mouse is captured.

Fixed in 2.3.2828


fix[SWA-174]: Enable partial-text matching for contact information

Resolves SWA-174
Added partial match in email search
https://user-images.githubusercontent.com/21379857/148966361-67b1dc05-c489-4ef2-8bc9-ecb0b6c913bf.mov

Closed, because this commit was merged with SWA-175😓


how to config multi-level path?

Hi, i want to know is there any recommend config when meeting with multi-level apps,
such as :
/A1/B1/C1
/A1/B1/C2
/A1/B2/C3
/A1/B2/C4
/A2/B3/C5
/A2/B3/C6
C1-6 are all different pages,
A1,A2 as features or B1 B2 B3 as features?
thanks for answering.

Actually there aren't certain relationship between features and url paths. Features should be used used to organize elements by domains. Though usually pages under a feature starts with the same path. You can define nested router rules in route.js. Such as:
export default {
  path: 'A1',
  name: 'Home',
  childRoutes: [
    { name: 'B1', component: B1Page, childRoutes: [
        { path: 'C1', component: C1Page }
    ]},
  ],
};


Repeated ipfs.cat() failures when indexing new blocks

Do you want to request a feature or report a bug?
bug
What is the current behavior?

We use the following ipfs method:
let data = ipfs.cat(ipfsHash)

We have been using this method for many months and within the last few weeks its almost a daily occurrence that the we see failures when trying to index and load the IPFS data, usually failing with the following exception, which we catch and try to handle gracefully.
Failed ipfs.cat, returning `null`, error: Uncategorized("\r\n<title>504 Gateway Time-out</title>\r\n\r\n
504 Gateway Time-out
\r\n
nginx/1.19.2\r\n\r\n\r\n"), link: Qmf1GKcPWDrSNJbwDfjPcHgc5PGeTXmixhD28hNHNGSMFV, runtime_host: 1/1, block_hash: 0x4cd0c9ac2558f8558891d7b49838dd8c8ba9583c88b1404c7de3c36428b8e2d8, block_number: 10999510

06/10/2020, 03:37:24

ERROR

Failed to find IPFS, data null for token URI [Qmf1GKcPWDrSNJbwDfjPcHgc5PGeTXmixhD28hNHNGSMFV], data_source: KnownOrigin, runtime_host: 1/1, block_hash: 0x4cd0c9ac2558f8558891d7b49838dd8c8ba9583c88b1404c7de3c36428b8e2d8, block_number: 10999510

Internally we pin the hash to two different public IPFS providers - Pinata and Infura to try give the hash more availability when being resolved in order to avoid this. We also have implemented a basic retry mechanism which will retry and failed IPFS load 10 times before bombing out.
However these two mechanisms seem to have little effect on the bug and it keeps happening.
If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem.
I am unsure of how to exactly reproduce it as all the error IPFS we log can be immediately resolved when we try.
What is the expected behavior?
Previously this was not an issue but we are kind of stumped...
Atm we resync daily which fixes all the errors which happen but it would be great to know how to avoid this in the future and what is causing it.
It is something we are doing?
Has TheGraphs IPFS node recently changed?
Any thoughts in general?
Cheers
James

Thanks for looking at this. I guess what you say is the problem and seems to align with the dates of the release. Is there any ideas on how to resolve this from our side, is there anything I can do? @leoyvens
Atm it is causing us some headache and as the entire IPFS network upgrades to the latest version this problem is going to be compounded further I expect.
Let me know any ideas or things I can help with to expedite this further.

The first thing to be said about IPFS support is that the ipfs.cat API will not be allowed in the network. We will still support it in the hosted service while we work on a deterministic API for IPFS. So having a version of your subgraph that doesn't use IPFS is something to consider.
@jamesmorgan Ideally we'd upgrade our nodes and have graph-node support newer IPFS versions, but I can't give you a time frame as we have a lot going on right now. If you manage to get these files pinned on an IPFS 0.4 node, see these docs https://thegraph.com/docs/define-a-subgraph#ipfs-pinning for how to pin them to the hosted service nodes.

Ye that's not ideal, I have been doing some investigation myself and this is going to be wider problem I believe as more of the IPFS network upgrades, running on 0.4 basically means its wont connect to any other peers and will stop working completely. So the hosted version will stop working fullstop as eventually no other IPFS peers will be contactable on that version.
Feels like a real big problem tbh...
I have a possible solution and we will need to rework our dapp but kind of upset that there is no better support for what is advertised as a core feature of the subgraph which will soon stop working without any upfront warning. Really that link (https://thegraph.com/docs/define-a-subgraph#ipfs-pinning) should real state that this is no longer supported if this is the stance.

Closing this, as graph-node has been updated to be compatible with the latest IPFS, and the hosted service's IPFS node is also up to date. Please re-open if you are still having issues. Thanks!


Template for Podcast Website - PsychoPod Website

Issue Type:

[x] Project Addition

Possible solution

This can be used as template for Psychology Podcast providing companies. They can use it as a Landing Page/Website to showcase their services provided.

Please consider it under GSSoC'22 and assign it to me.

Hey @VidhiBhatt01 why this Psychopod website is not opening ?


Input ports for Text.find_all disappear a short moment after showing up

As shown in the video
https://github.com/enso-org/enso/assets/1436948/1550a1f4-c2be-43a4-9787-ec3607ad2258
Repro:

Create a text value
Press Tab on it to open CB, type find_all and select that entry from CB (by LMB or enter)
Observe

For a brief second the input ports do show up but they actually are wrong - find_all on Text does not have a path argument.

These logs may be related:
[warn] [2023-05-25T17:09:07.294Z] [enso] Visualisation evaluation failed: Compile error: The name `find_all` could not be found..
[warn] [2023-05-25T17:09:07.436Z] [enso] Visualisation evaluation failed: Compile error: The name `find_all` could not be found..
[error] [2023-05-25T17:09:25.039Z] [org.enso.languageserver.requesthandler.visualisation.AttachVisualisationHandler] Request [Number(61)] timed out.

bookclub_05_25.zip
I attach my project files.
Weirdly, when I reopen the project in the IDE, nothing seems to compute until I remove find_all from the stage.

The nodes, up to find_all do have they colors, so seems like the values thesmselves did compute (apart from find_all), but the visualizations don't want to show up.
Later on I deleted find_all. This triggered something. In my verbose logging terminal I saw tons of text scrolling by and finally the visualization reappeared.

My logs: 20230525-171138-691-enso-project-manager.log

Now I'm getting tons of
[warn] [2023-05-25T17:43:43.592Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).
[error] [2023-05-25T17:43:44.294Z] [enso] Error executing org.enso.interpreter.instrument.job.EnsureCompiledJob@61efe268
[warn] [2023-05-25T17:43:44.307Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).
[error] [2023-05-25T17:43:44.832Z] [enso] Error executing org.enso.interpreter.instrument.job.EnsureCompiledJob@8728896
[warn] [2023-05-25T17:43:44.844Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).
[error] [2023-05-25T17:43:45.957Z] [enso] Error executing org.enso.interpreter.instrument.job.EnsureCompiledJob@46d387be
[warn] [2023-05-25T17:43:45.971Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).
[error] [2023-05-25T17:43:46.315Z] [enso] Error executing org.enso.interpreter.instrument.job.EnsureCompiledJob@3db6b9c
[warn] [2023-05-25T17:43:46.321Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).
[error] [2023-05-25T17:43:46.481Z] [enso] Error executing org.enso.interpreter.instrument.job.EnsureCompiledJob@42ce5475
[warn] [2023-05-25T17:43:46.493Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).
[warn] [2023-05-25T17:43:47.17Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).

It's something to do with find_all on .* pattern. I'll take a look in the morning.

Works
but if you replace with find_all will crash.

As @Akirathan noted (possibly that should get its own issue), ideally we should somehow detect the common message meaning the engine is failing - Execution of function main failed and display some message to the user in the IDE. We probably cannot explain much, but we can at least say that the engine is in a bad state and an undo+restart may be needed to bring it back. Currently, knowing this requires quite a bit of know-how and inspecting the logs - which we cannot expect the users to do.

Agree we should have another issue for that.

[warn] [2023-05-25T17:43:43.592Z] [enso] Execution of function main failed (Compiler Internal Error: Operators should be desugared by the point of underscore to lambda conversion.).

That certainly looks like a -compiler error.  If I only had the source code that's causing this Compiler Internal Error! I am trying to install the provided Unnamed_17 project and see if I can obtain the same error.

When I execute the long.enso program:
from Standard.Base import all
from Standard.Base.Data.Boolean import Boolean
from Standard.Table import all
from Standard.Database import all
from Standard.AWS import all
import Standard.Visualization

main =
    operator1 = "Press TAB key to create a new node"
    text1 = "https://www.football-data.co.uk/englandm.php"
    operator2 = Data.fetch text1 parse=Boolean.True
    operator3 = operator2.body
    operator4 = operator3.bytes
    operator5 = Text.from_utf_8 operator4
    operator6 = operator5.find_all

it spends 1200% of my CPU in an endless circle. I managed to get following stacktrace from it:
case_branch (/Standard/Base/0.0.0-dev/src/Data/Vector.enso:1069)
Builder.append (/Standard/Base/0.0.0-dev/src/Data/Vector.enso:1066)
case_branch (/Standard/Base/0.0.0-dev/src/Data/Text/Regex/Pattern.enso:75)
go (/Standard/Base/0.0.0-dev/src/Data/Text/Regex/Pattern.enso:73)
Pattern.match_all<arg-2> (/Standard/Base/0.0.0-dev/src/Data/Text/Regex/Pattern.enso:78)
Pattern.match_all<arg-1> (/Standard/Base/0.0.0-dev/src/Data/Text/Regex/Pattern.enso:70)
case_branch (/Standard/Base/0.0.0-dev/src/Data/Text/Helpers.enso:12)
Helpers.expect_text (/Standard/Base/0.0.0-dev/src/Data/Text/Helpers.enso:11)
Pattern.match_all (/Standard/Base/0.0.0-dev/src/Data/Text/Regex/Pattern.enso:68)
Text.find_all (/Standard/Base/0.0.0-dev/src/Data/Text/Extensions.enso:275)
long.main (/home/devel/NetBeansProjects/enso/enso/long.enso:15)
Value.execute() (/home/devel/.config/Code/User/globalStorage/asf.apache-netbeans-java/userdir/var/cache/java-server/s8/org/graalvm/polyglot/Value.java:878)
Function.execute() (/home/devel/NetBeansProjects/enso/enso/engine/polyglot-api/src/main/scala/org/enso/polyglot/Function.scala:16)
Main$.runMain() (Unknown Source:836)
Main$.runSingleFile() (Unknown Source:748)
Main$.run() (Unknown Source:630)
Main$.main() (Unknown Source:1131)
Main.main() (Unknown Source:0)

the code never reaches match_all line 79 - e.g. the primary problem I see is an endless loop in regular expressions processing. Passing to @GregoryTravis

Already have a fix for this on my branch. Should be merged tomorrow.


Documentation for get_fields() mentions the wrong function

https://uptakeopensource.github.io/uptasticsearch/reference/get_fields.html
These docs mention retrieve_mapping instead of the actual function name get_fields(). I believe we change the name mid-development but missed this in the docs

I will be taking care of this.

Just submitted a PR for this.


Add term: Debugging

@iamNoah1  ok, I will have a look on how to simplify. On the other hand, we should not over complicate.
What is debugging at the end?
A category of tools and multiple techniques to find bugs.
Nothing more and nothing less.
Or am I wrong @CathPag  ?

@fsbaraglia sure I am not aiming for complicating things as well :) But for correctness. Consider the following two sentences.
"A category of tools and multiple techniques to find bugs."
"Multiple techniques to find bugs, which can be tool based/assisted"
My opinion is that Debugging per se is not tools, and can be done without additional tooling at all.
But lets see what other folks think. @JasonMorgan @seokho-son @jihoon-seo @CathPag

While reading the term definition I had the impression that we are mixing up Debugging itself as a process and IDE supported Debugging. Especially the how it helps section focuses on IDE based or to be more general tool based debugging. The other sections read more like the general debugging concept or process. My suggestion is to step back and think about the scope of this term. Is it really about debugging as a process/concept? Or is it about Tool based Debugging?

I think it should be about the concept itself

@fsbaraglia sure I am not aiming for complicating things as well :) But for correctness. Consider the following two sentences.
"A category of tools and multiple techniques to find bugs."
"Multiple techniques to find bugs, which can be tool based/assisted"
My opinion is that Debugging per se is not tools, and can be done without additional tooling at all.
But lets see what other folks think. @JasonMorgan @seokho-son @jihoon-seo @CathPag

I'll let the technical approvers chime in. My knowledge ton that subject is very limited.

Ok, I got you point @iamNoah1
Less tool more on concept right?
if you can please help us and make some suggestions on what to change , really appreciated

I like it , I am fine with the new version @iamNoah1  , thank you for your support

@fsbaraglia thanks for the patience. I had to think this one through and made some suggestions. I am keen to hear your opinion :=

alles klar, danke dir 💯


json file cache race condition bug fix unit test

This PR adds a unit test based off the changes from https://github.com/boto/botocore/pull/2721
I wasn't sure where to put it so I threw it in the TestCreadeCredentialResolver test case class, but not sure that makes sense since this test is unrelated. This will be merged only after 2721 is.

Codecov Report
Base: 95.25% // Head: 95.25% // Decreases project coverage by -0.00% :warning:

Coverage data is based on head (88acac0) compared to base (4efda8d).
Patch coverage: 100.00% of modified lines in pull request are covered.

Additional details and impacted files
@@             Coverage Diff             @@
##           develop    #2772      +/-   ##
===========================================
- Coverage    95.25%   95.25%   -0.01%
===========================================
  Files           62       62
  Lines        12900    12895       -5
===========================================
- Hits         12288    12283       -5
  Misses         612      612

Impacted Files
Coverage Δ

botocore/credentials.py
98.65% <100.00%> (ø)

botocore/utils.py
93.51% <0.00%> (-0.08%)
:arrow_down:

botocore/httpsession.py
91.79% <0.00%> (-0.04%)
:arrow_down:

botocore/retries/adaptive.py
98.46% <0.00%> (-0.03%)
:arrow_down:

botocore/crt/auth.py
0.00% <0.00%> (ø)

botocore/retries/base.py
100.00% <0.00%> (ø)

botocore/retries/throttling.py
100.00% <0.00%> (ø)

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

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


add rule for disallowing naive variables

Some variable patterns are not preferred since it hurts readability. For example,
var tmp = 123; // what the heck of tmp? It should be specific
var arr = "hello world".split(" "); // arr is meaningless. Variable words would be better
Is this kind of rule aligned with JSCS goals? If yes, I can contribute a PR.

This issue has been open more than a month without supported PR for it.
Unfortunately, we don't have the resources to implement rules that could not be included in any of the supported presets (if it could be, please point that out).
However, if you or anybody else submit PR for it, we will gladly consider it.

Duplicate of #41

I think blacklisting variable names is a possible solution, but prone to circumvention through "inventiveness" of other developers trickiness. However, together with a min length, this might actually already be quite helpful. In fact anything that helps to kerb "silly" variables and widely scoped "short" variables helps.


Fix incentives query filtering

Closes: #1218
What is the purpose of the change
Fix gauges query filter:

handle accumulate
no use GetActiveGauges anymore in ActiveGaugesPerDenom query
no use GetUpcomingGauges anymore in UpcommingGaugesPerDenom query
Add more test

Thanks for the PR!
Since your touching this area, would you be open to de-duplicating logic across:
Gauges, ActiveGauges, UpcomingGauges, ActiveGaugesByDenom, etc?
Basically make a generic method that takes in the prefix, and an optional parameter for 'denom', and re-uses all of the logic here? It would be a very welcome 100 line deletion here :)
Also can you add a comment above the
newGauges, err := q.getGaugeFromIDJsonBytes(ctx, value)

line saying to the extent of "This may return multiple gauges at once if two gauges start at the same time. For now this is treated as an edge case that is not of importance"

thanks for the suggestion.
I moved duplicate logic to a separate function, filtering by prefix types and denom.

Thanks, this LGTM! Can you add a bug fix changelog entry, for making gauge queries respect pagination?
Then I think this is good to go!

Yes I did


[BUG] Mismatch between stub files and autosummary toctrees

Describe the bug
While investigating why https://github.com/alan-turing-institute/sktime/pull/1158 doesn't produce a proper gallery without executing the notebooks first (which, as per https://github.com/spatialaudio/nbsphinx/issues/586, should be possible), it was mentioned that reducing the number of warnings would simplify finding the root cause for the problem. Therefore, I executed sphinx-build with -W ("turn warnings into errors") and started with the first one:
$ python -m sphinx -v -W -T -E -b html -d _build/doctrees -D language=en source/ _build/html
...
    self.builder.build_update()                                                                                (27/27 results) [2068/9792]
  File "/home/juanlu/Projects/RTD/tmp/sktime/.venv/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 299, in build_update
    len(to_build))
  File "/home/juanlu/Projects/RTD/tmp/sktime/.venv/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 311, in build
    updated_docnames = set(self.read())
  File "/usr/lib/python3.7/contextlib.py", line 130, in __exit__
    self.gen.throw(type, value, traceback)
  File "/home/juanlu/Projects/RTD/tmp/sktime/.venv/lib/python3.7/site-packages/sphinx/util/logging.py", line 213, in pending_warnings
    memhandler.flushTo(logger)
  File "/home/juanlu/Projects/RTD/tmp/sktime/.venv/lib/python3.7/site-packages/sphinx/util/logging.py", line 178, in flushTo
    logger.handle(record)
  File "/usr/lib/python3.7/logging/__init__.py", line 1524, in handle
    self.callHandlers(record)
  File "/usr/lib/python3.7/logging/__init__.py", line 1586, in callHandlers
    hdlr.handle(record)
  File "/usr/lib/python3.7/logging/__init__.py", line 890, in handle
    rv = self.filter(record)
  File "/usr/lib/python3.7/logging/__init__.py", line 751, in filter
    result = f.filter(record)
  File "/home/juanlu/Projects/RTD/tmp/sktime/.venv/lib/python3.7/site-packages/sphinx/util/logging.py", line 421, in filter
    raise exc
sphinx.errors.SphinxWarning: /home/juanlu/Projects/RTD/tmp/sktime/docs/source/source/api_reference/classification.rst.rst:16:autosummary: stub file not found 'sktime.classification.compose.ColumnEnsembleClassifier'. Check your autosummary
_generate setting.

After some investigation, I realized that sktime.classification.compose.ColumnEnsembleClassifier stub is located in api_reference/modules/auto_generated/, however api_reference/classification.rst points to modules/auto_generated/:
https://github.com/alan-turing-institute/sktime/blob/d149b2379aa213f24cc260d1b6a35bea15d829db/docs/source/api_reference/classification.rst#L17
It turns out that stub files are being generated in two directories: api_reference/modules/auto_generated/ and modules/auto_generated, which might be the source of confusion. For this particular warning to go away, I made this one-line change:
diff --git a/docs/source/api_reference/classification.rst b/docs/source/api_reference/classification.rst
index dfa882cb..b4e552d6 100644
--- a/docs/source/api_reference/classification.rst
+++ b/docs/source/api_reference/classification.rst
@@ -14,7 +14,7 @@ Composition
 .. currentmodule:: sktime.classification.compose

 .. autosummary::
-    :toctree: modules/auto_generated/
+    :toctree: api_reference/modules/auto_generated/
     :template: class.rst

     ColumnEnsembleClassifier

However, there are a lot of these, so someone would have to go and amend those manually. In addition, it would be useful to clarify why these two directories hold stub files, and if this is the normal thing to do. I am not an expert in sphinx.ext.autosummary so I can't give much more guidance yet.
I think this is a good first step towards reducing the number of warnings in the documentation, although there is still a long road ahead.

(Reported https://github.com/sphinx-doc/sphinx/issues/9481 upstream about the weird paths appearing in the errors)

Thanks @astrojuanlu - I don't think this is intentional, I noticed that a while ago but didn't have the time to further investigate why this happens.


Try out Rectified Adam, a new optimizer less sensitive to learning rates

Background and Context
https://medium.com/@lessw/new-state-of-the-art-ai-optimizer-rectified-adam-radam-5d854730807b
TL;DR: Performance similar to ADAM,  but a lot less sensitive to the learning rate choice, something we struggle with when training KGE.
Description
Keras unnofficial implementation:
https://github.com/CyberZHG/keras-radam
https://github.com/niley1nov/keras_rnadam
I could not find any TF 1.13 / 1.14 implementation.

TF implementation: https://github.com/taki0112/RAdam-Tensorflow

Using the implementation above and the same parameters as used in the predictive_performance.py script, I got the following results:

The performance of RAdam was slightly better than Adam in WN18RR, but it was virtually the same in FB15K-237. The training times, however, were clearly worse.
Note that training times are highly dependent on early stopping, which was configured in the same manner used in the predictive_performance.py script.
Considering that there would be one extra dependency, RAdam does not seem worth the trouble and I am closing this issue for now. If RAdam is eventually incorporated into the official TensorFlow, we should consider adding it as one other optimizer.


Support for Firefox versions older than 45

Older versions of Firefox don’t support innerText, I've added textContent method as backup. Also this method (textContent) works faster, if it matches library needs you can replace innerText with textContent, check reference.
Thanks.

Thanks for the PR!
I used the same reference you provided when I implemented this, and concluded to use .innerText since it's more or less consistently implemented in all major browsers (opposed to .textContent).
Changes look fine as a fallback. :+1:

Hi @PabloSichert ! Thank you for looking into this PR.
I changed code little and now it looks so:
....
const div = document.createElement('div');
const contentKey = 'innerText' in div ? 'innerText' : 'textContent';
....

Anyway we use this div variable inside code, so it will be checked without creating second div or checking like 'innerText' in HTMLElement.prototype, because second variant creates issue in testing: https://travis-ci.org/One-com/react-truncate/builds/224020846
Hope this is good now 😄

I am still not able to see the above changes in master. Can you please merge the above changes in master (if not merged).

Changes are out with v2.1.5.


Upload Memory Error

When trying to upload a file that has more bytes than a string can hold, I get an OverflowError.
>>> import smartfile

>>>
>>>
>>>
>>> api = smartfile.BasicClient('**********', '*****************')
>>> file = open('Downloads/Win10_1511_2_English_x64.iso', 'rb')
>>> api.upload('test.io', file)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/site-packages/smartfile/__init__.py", line 145, in upload
    return self.post('/path/data/', file=arg)
  File "/usr/lib/python2.7/site-packages/smartfile/__init__.py", line 130, in post
    return self._request('post', endpoint, id=id, data=kwargs)
  File "/usr/lib/python2.7/site-packages/smartfile/__init__.py", line 109, in _request
    return self._do_request(request, url, **kwargs)
  File "/usr/lib/python2.7/site-packages/smartfile/__init__.py", line 206, in _do_request
    return super(BasicClient, self)._do_request(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/smartfile/__init__.py", line 52, in _do_request
    response = request(url, stream=True, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 111, in post
    return request('post', url, data=data, json=json, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/api.py", line 57, in request
    return session.request(method=method, url=url, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python2.7/site-packages/requests/adapters.py", line 403, in send
    timeout=timeout
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 578, in urlopen
    chunked=chunked)
  File "/usr/lib/python2.7/site-packages/requests/packages/urllib3/connectionpool.py", line 362, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "/usr/lib64/python2.7/httplib.py", line 1057, in request
    self._send_request(method, url, body, headers)
  File "/usr/lib64/python2.7/httplib.py", line 1097, in _send_request
    self.endheaders(body)
  File "/usr/lib64/python2.7/httplib.py", line 1053, in endheaders
    self._send_output(message_body)
  File "/usr/lib64/python2.7/httplib.py", line 897, in _send_output
    self.send(msg)
  File "/usr/lib64/python2.7/httplib.py", line 873, in send
    self.sock.sendall(data)
  File "/usr/lib64/python2.7/ssl.py", line 721, in sendall
    v = self.send(data[count:])
  File "/usr/lib64/python2.7/ssl.py", line 687, in send
    v = self._sslobj.write(data)
OverflowError: string longer than<PHONE_NUMBER> bytes
string longer than<PHONE_NUMBER> bytes

I believe moving towards chunked uploading would be beneficial to looking past this problem.

Chunked uploading is not the best answer here. Requests can do bidirectional streaming of large files, THAT is the answer.
http://docs.python-requests.org/en/master/user/advanced/#streaming-uploads
http://stackoverflow.com/questions/16694907/how-to-download-large-file-in-python-with-requests-py

I like @btimby 's answer. Although, I am curious to know if SmartFile's API accepts streamed uploads. We should investigate this further before trying to implement.

The idea of the streamed upload, is the file isn't read into memory before it is uploaded. On the server side, it looks like one big upload.


Added Get-AzureMigrateAssessedMachines

Adds addition feature to pull information about assessed VMs

Thanks for this and sorry that I didn't see it sooner - I just added almost exactly the same new command while fixing an issue with the API version used to get assessment summary information.


Update lowpass-filter to 2.2.5

Please update my adapter ioBroker.lowpass-filter to version 2.2.5.
This pull request was created by https://www.iobroker.dev c0726ff.

Release 2.2.4 increases to requirement for js-controller to 5.0.19.
This requires a new minor release. In Addition please add this info to README so that users can read it.
Please create a new minor release and create a new PR after the release is available at latest for app 1 to 2 weeks.


A proper way to use vue-router with Vue 3

I'm new to Vue, but I've been working with single-spa in our team these days and gave Vue 3 a try.
It seems that passing router to appOptions not working with new global API createApp (differs from the way it works with the Vue constructor in Vue 2).
const vueLifecycles = singleSpaVue({
  createApp,
  appOptions: {
    render() {
      return h(App);
    },
    router, // NOT WORKING
  },
});

single-spa-vue docs only mentions the way to use Vue 3 createApp in Vue 3 chapter, and the way to use vue-router in Custom props chapter. It costs me a lot of time debugging why router is not working, and at last I figured it out the maybe correct way to combine Vue 3, vue-router and single-spa-vue together.
// Correct way!
const vueLifecycles = singleSpaVue({
    createApp: (...args) => {
        const vueInstance = createApp(...args);
        vueInstance.use(router);
        return vueInstance;
    },
    appOptions,
});

Since single-spa-vue doesn't expose vue instances to users, I have to "hijack" the createApp method to get the instance. BTW, this solution is also mentioned in Vue migration docs.
I'm wondering if anything can be done in single-spa-vue? Maybe a new router option or generic plugins option can be added, or at least mention the usage above in docs? I'm happy to submit a pr if you can pick any of the ideas.

Some thoughts:
generic plugins option
// usage
singleSpaVue({ plugins: [router] });

// single-spa-vue implementation
// before `vueInstance.mount(el)`
userOpt.plugins.forEach(plugin => vueInstance.use(plugin));

If you don't wanna change API of single-spa-vue for now, I'm also willing to help with single-spa docs!

Yea this is a good observation. We do provide the instance as described at the end of this section here: https://single-spa.js.org/docs/ecosystem-vue/#usage but that happens after .mount has been called, so adding a router after this doesn't work as expected (at least from my quick test). Initially, I agree that an option could be exposed that provides a list of plugins to be used. Though I think I'd prefer to have it called use to match the Vue api.
I wonder if instead we can provide the app instance in bootstrap and allow users to provide additional things there. The Vue 3 instance API is a lot more than just .use so hooking into bootstrap would be much more flexible is possible.

Thanks for the research on this @iplus26 and @filoxo. I agree we should update single-spa-vue to allow the user to modify the instance any way they'd like. As an alternative to the workaround you found, you can access the vue instance as the return value of the mount lifecycle:
const vueLifecycles = singleSpaVue({
  createApp,
  appOptions: {
    render() {
      return h(App, {
        props: {
        },
      });
    },
  },
});

export const bootstrap = vueLifecycles.bootstrap;
export const mount = props => vueLifecycles.mount(props).then(vueInstance => {
  vueInstance.use(router)
})
export const unmount = vueLifecycles.unmount

See code below that shows why this works:
https://github.com/single-spa/single-spa-vue/blob/5162f780ddd70d6c88e4088e60ea58a0430761a9/src/single-spa-vue.js#L134
However, the above is perhaps a bit tedious and could be improved. I agree with @filoxo that it would be better just to let the user do anything they want to the Vue instance. Perhaps an api like this??
singleSpaVue({
  createApp,
  appOptions: {...},
  handleInstance: vueInstance => {
    vueInstance.use(router)
    // do anything else to the instance, too
  }
})

Thank you guys for your insights!
However, I'd like to mention that I've tried this workaround to extend mount method, but it didn't work. app.use(router) must be executed before Vue instance mounted, as @filoxo mentioned, and after createApp.
So do we all agree that we should provide a new api, which will be executed between createApp and app.mount? Would getInstance still be a good name? If so, I'd like to submit a PR serval hours later (It's late night here 😁)

I was able to put together an example of the additional mount lifecycle function last night, and it does not work properly. You can see the code here here: https://github.com/filoxo/test-single-spa-vue3-router
I think its because createApp's mount is called before the  user-provided mount function is called so the app has already started before the router is provided; .use appears to need to be called before .mount. I could totally be wrong though, I'm not a daily Vue user.

ha nice! Looks like we've come to the same conclusion.

I'd like to mention that I've tried this workaround to extend mount method, but it didn't work. app.use(router) must be executed before Vue instance mounted, as @filoxo mentioned, and also after createApp(so we can get the instance).

Ah I see. Thanks for the clarification. Yes it sounds like we need the handleInstance. Thanks for your work in putting together #59


Bug: test throws an error when using a MouseEvent with jsdom environment

Describe the bug
Tests fail when simulating mouse events. The tests pass when using Vitest and happy-dom, and the tests pass when using Jest and jest-environment-dom.
Error message
 FAIL  test/mouse-event.test.ts > repro
TypeError: Failed to construct 'MouseEvent': member view is not of type Window.
 ❯ new UIEventImpl node_modules/jsdom/lib/jsdom/living/events/UIEvent-impl.js:30:15
 ❯ new MouseEventImpl node_modules/jsdom/lib/jsdom/living/events/MouseEvent-impl.js:9:1
 ❯ exports.setup node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js:59:12
 ❯ new MouseEvent node_modules/jsdom/lib/jsdom/living/generated/MouseEvent.js:117:22
 ❯ eval test/mouse-event.test.ts:9:17
      7|
      8|   const onClick = vi.fn();
      9|   button.onclick = onClick;
       |                 ^
     10|
     11|   document.body.append(button);

Reproduction
https://stackblitz.com/edit/vitest-dev-vitest-dzgdze?file=vite.config.ts&initialPath=__vitest__/
System Info
System:
    OS: macOS 12.6.8
    CPU: (10) arm64 Apple M1 Pro
    Memory: 115.47 MB / 32.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.17.1 - ~/.nvm/versions/node/v18.17.1/bin/node
    Yarn: 1.22.15 - ~/.yarn/bin/yarn
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.1/bin/npm
    pnpm: 8.10.5 - ~/.nvm/versions/node/v18.17.1/bin/pnpm
    bun: 1.0.2 - ~/.bun/bin/bun
  Browsers:
    Chrome: 119.0.6045.199
    Safari: 15.6.1
  npmPackages:
    @vitest/coverage-v8: ^0.34.6 => 0.34.6
    @vitest/ui: ^0.34.6 => 0.34.6
    vite: ^4.4.8 => 4.5.0
    vitest: ^1.0.0 => 1.0.1

Used Package Manager
npm
Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

@sheremet-va is that something we can do through the config, or will it be handled internally?

@sheremet-va is that something we can do through the config, or will it be handled internally?

You can change the config like this:
export default defineConfig({
  test: {
    pool: 'vmThreads',
  }
})

I didn't actually test it, but I would expect it to work (this is how jest does it).

@sheremet-va is that something we can do through the config, or will it be handled internally?

You can change the config like this:
export default defineConfig({
  test: {
    pool: 'vmThreads',
  }
})

I didn't actually test it, but I would expect it to work (this is how jest does it).

Yep, that worked for my tests locally. It seems to not be recommended from the docs though. Would it be better to only recommend it for certain tests?

Would it be better to only recommend it for certain tests?

You can do that with poolMatchGlobs:
export default defineConfig({
  test: {
    poolMatchGlobs: [
      ['**/tests/jsdom-global-context/**', 'vmThreads'],
    ]
  }
})

Great. Closing as resolved with the workaround, thanks


day_of_week to work with DATE and not only with TIMESTAMP

select day_of_week('2014-04-24')
gives:

Unexpected parameters (varchar(10)) for function day_of_week. Expected: day_of_week(timestamp) , day_of_week(timestamp with time zone) , day_of_week(date)

select day_of_week(TIMESTAMP '2014-04-24')
Gives
4
Can the function also work with Date type? This will save the trouble of casting all the time...

day_of_week should work with date (technically: date should get coerced to timestamp).
@RosterIn Please try:
select day_of_week(DATE '2014-04-24')

ok i stand corrected. I see it works with date.
Why can't it work with varchar?
The way I see it the function can handle the convert for the user or there is a specific reason why presto prefer not to do that?

@RosterIn thanks for checking.
This is a broader discussion, not really specific to day_of_week.
In database world, there are certain coercions which are mandated by SQL spec,
which should happen implicitly, without user requesting it explicitly (e.g. from date to timestamp).
Conversion from varchar to date is not one of them.
While I see how it could be useful for this specific case of day_of_week function,
such a coercions should be -- by consistency -- applied to e.g. comparison between
varchar and date values. Example: joining two tables where one side is varchar
and the other is date). However, in such an example, implicit coercion could be
harmful and it's really not obvious which direction types should be coerced to
(date to varchar or varchar to date`).
Let me close this, as I think it answers your question. Of course, you can continue
discussion if you have any follow-ups.
I invite you to our slack https://prestosql.io/slack.html if you haven't joined it yet.


Authenticating failed.

icloudpd version 1.5.0,
It worked well before, but it doesn't work from about a week ago.
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 453, in wrap_socket
    cnx.do_handshake()
  File "/usr/lib/python3/dist-packages/OpenSSL/SSL.py", line 1915, in do_handshake
    self._raise_ssl_error(self._ssl, result)
  File "/usr/lib/python3/dist-packages/OpenSSL/SSL.py", line 1647, in _raise_ssl_error
    _raise_current_error()
  File "/usr/lib/python3/dist-packages/OpenSSL/_util.py", line 54, in exception_from_error_queue
    raise exception_type(errors)
OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 343, in _make_request
    self._validate_conn(conn)
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 841, in _validate_conn
    conn.connect()
  File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 344, in connect
    ssl_context=context)
  File "/usr/lib/python3/dist-packages/urllib3/util/ssl_.py", line 344, in ssl_wrap_socket
    return context.wrap_socket(sock, server_hostname=server_hostname)
  File "/usr/lib/python3/dist-packages/urllib3/contrib/pyopenssl.py", line 459, in wrap_socket
    raise ssl.SSLError('bad handshake: %r' % e)
ssl.SSLError: ("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])",)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 449, in send
    timeout=timeout
  File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 638, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 398, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='setup.icloud.com', port=443): Max retries exceeded with url: /setup/ws/1/login?clientBuildNumber=17DHotfix5&clientMasteringNumber=17DHotfix5&ckjsBuildVersion=17DProjectDev77&ckjsVersion=2.0.5&clientId=C4F434E4-B23E-11EA-A85C-DCA632B0A857 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/bin/icloudpd", line 10, in <module>
    sys.exit(main())
  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python3.7/dist-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/icloudpd/base.py", line 258, in main
    client_id=os.environ.get("CLIENT_ID"),
  File "/usr/local/lib/python3.7/dist-packages/icloudpd/authentication.py", line 32, in authenticate
    client_id=client_id)
  File "/usr/local/lib/python3.7/dist-packages/pyicloud_ipd/base.py", line 193, in __init__
    self.authenticate()
  File "/usr/local/lib/python3.7/dist-packages/pyicloud_ipd/base.py", line 212, in authenticate
    data=json.dumps(data)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 581, in post
    return self.request('POST', url, data=data, json=json, **kwargs)
  File "/usr/local/lib/python3.7/dist-packages/pyicloud_ipd/base.py", line 68, in request
    response = super(PyiCloudSession, self).request(*args, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 533, in request
    resp = self.send(prep, **send_kwargs)
  File "/usr/lib/python3/dist-packages/requests/sessions.py", line 646, in send
    r = adapter.send(request, **kwargs)
  File "/usr/lib/python3/dist-packages/requests/adapters.py", line 514, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='setup.icloud.com', port=443): Max retries exceeded with url: /setup/ws/1/login?clientBuildNumber=17DHotfix5&clientMasteringNumber=17DHotfix5&ckjsBuildVersion=17DProjectDev77&ckjsVersion=2.0.5&clientId=C4F434E4-B23E-11EA-A85C-DCA632B0A857 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

Had the same error on Raspbian, forcing the certifi package update with pip install -U certifi fixed it. Hope that helps.

@vide It worked! Thank you :)


Better Message-ID handling

Right now messages ids vary only by date. They don't vary by slack group name or channel. They should, so separate threads are kept separate.
Probably blocked by #2. Once better meta data is in there, we can use it for these purposes.

Message-ID can be computed using the combination of:

Date
Slack group name (retrievable from Slack API)
Slack channel (passed as config var / docopt)

Therefore, this is not necessarily blocked by #2?

How do I get the slack group name from the API? I was looking for that route but couldn't find it.

Maybe this? https://api.slack.com/methods/team.info

Ah yes! I think I had seen it but for some reason thought it was something else. Maybe I confused it with user groups.
Indeed, in that case this isn't blocked by #2.

Resolved by #18.


add inflation asset

Description:
In this PR, I try to implement the rgb20 inflation allowance asset schema:

Add new inflation schema, add new OS_INFLATION_ALLOWANCE, MS_ALLOWED_INFLATION, GS_MAX_SUPPLY, TS_ISSUE, ERRNO_INFLATION_EXCEEDED_ALLOWANCE types.
Add a new inflation iface iimpl
Add a new issue wrapper for the inflation asset.
Add new script to check:

I have no good idea about how to implement the issue transition now, so I set the issue transition validator to None.

Hi @dr-orlovsky , do you mean this https://github.com/RGB-WG/rgb-interfaces/pull/7 , if yes, then I will close this pr.

Yes sorry


Readme structure

@bakins I've split the readme into two sections: Usage and Development.
Additionally I've added some notes I found useful for developing on this project.
wdyt?

Thanks. This is great!


Morphing + complete frame issue : Stop reloading turbo frames when complete attribute changes

I encountered the following problem :
consider a turbo frame like so on index.html
<turbo-frame id="foobar">
  Click me
</turbo-frame>

When the link is clicked, the HTML will look like this
<turbo-frame id="foobar" src="/some/path" complete>
  Some content
</turbo-frame>

If the page is then refreshed with morphing, my expectation was that everything will return to the initial state.
However, in practice, the frame first appears to be reset, but then is reloaded and ends up in the second state.
This is because we have a callback that reloads the frame when there is any change on the complete attribute :
https://github.com/hotwired/turbo/blob/e2e5782776e565e80358c5ecd34e05c3b3bcf28c/src/core/frames/frame_controller.js#L101-L105
The morphing causes this attribute to change thus the frame to reload.
I don't really understand why we want to reload a frame when the complete attribute changes, isn't it supposed to be only a read-only value ?
This PR removes the callback on the complete attribute, this is probably very naive, happy to explore another route if you point me in the right direction !
Repro and video in this comment : https://github.com/hotwired/turbo/pull/1175#issuecomment-1935561849

@Intrepidd if you mark the turbo-frame with refresh="morph", when a page refresh happens:

It won't get replaced.
It will reload, and its contents will be reloaded with morphing.

Would that cover your use case?

No, I want the frame to be replaced with the content from the page that is being refreshed.
Imagine a page where you have a list of record as rows, and by clicking on an edit button you transform the row to a form.
When submitting the form, you expect it to "close" and render as if you refresh the page ( this behavior happens naturally )
But with a morph refresh, this will happen then a few milliseconds later the form will "open" again.
I can try to write a repro if that helps understanding the issue ?

@jorgemanrubia here is a repository with a repro : https://github.com/Intrepidd/turbo_8_bug_demo
And here is a video of the issue
https://github.com/hotwired/turbo/assets/803765/96b51843-7c48-4a5a-b0c4-000bd7e8bf84
As you can see, the frame first resets with the content of the index (expected) but then since the morphing removes the complete attribute, the callback is executed and the frame is loaded from its src attribute

@Intrepidd changing the complete callback behavior would be a breaking change, so I don't love that.
As a workaround here, you could prevent the morphing of the attribute relying on the event. Is not ideal, but that should do it.
import { Controller } from "@hotwired/stimulus"

export default class extends Controller {
  prevent(event) {
    event.preventDefault()
  }
}

To use like:
<%= turbo_frame_tag "frame", data: { controller: "event-default", action: "turbo:before-morph-attribute->event-default#prevent" }  do %>
# ...

As a longer term solution, I wonder if we could use some convention around the current refresh=morph attribute. For example, if the new turbo-frame arrives without a URL, instead of reloading the frame morph the contents 🤔 .

@jorgemanrubia Thanks for having a look !
I understand, however this callback is not documented as far as I know, and doesn't seem to make sense in the first place, I fail to understand when such behaviour is expected or wanted. Do you know why it is here in the first place ?
I would argue that now more than ever is the perfect time to make a "breaking" change as people are going to upgrade from 7 to 8 and expect some breaking changes.

As a longer term solution, I wonder if we could use some convention around the current refresh=morph attribute. For example, if the new turbo-frame arrives without a URL, instead of reloading the frame morph the contents 🤔 .

There is definitely going to be some improvements around the refresh attribute of turbo frames I believe, as many behaviours can be desired ( I was toying with the idea of having refresh="none" )
But this would still leave the broken behaviour when no refresh attribute is specified, wouldn't it ?

@afcapel @seanpdoyle what do you think about removing that callback? I'm trying to think of real scenarios where one wants to mutate the complete but I can't think of any example.  That was added here. Could you add some context there @seanpdoyle?

Do you know why it is here in the first place

I'm trying to think of real scenarios where one wants to mutate the complete and get this behavior, but I can't think of any example.

From the commit message (the [loaded] attribute was renamed to [complete] before merging that PR):

The act of "reloading" involves the removal of the [loaded] attribute,
which can be done either by FrameElement.reload() or
document.getElementById("frame-element").removeAttribute("loaded").

Thanks for the context @seanpdoyle, I had missed that.
It seems that this is an internal implementation detail. No reference to this behavior in the docs. So it seems that @Intrepidd original approach is good: it's a callback we can remove. Of course, we need to make sure that reload() reloads the frame as expected.

Good ! Thanks to you both 🙏
What are the next steps to make it a go ?
We should probably write a regression test but it's a bit tricky to test that the frame does not reload after a bit of time :
- navigate inside the frame
- trigger a morph
- make sure the content is the one we expect
- wait a bit?
- make sure the content has not changed ?

@Intrepidd why not try to imitate the example you used in the description for the test: after morphing, the turbo frame contents – which changed through the test – should be reset to the initial state?

@jorgemanrubia the problem is that it does get changed to the initial state but shortly after switched to the navigated state once the frame has been reloaded. So I'm afraid such test will pass even if the frame gets reloaded in the end.
I'll draft up something and we can iterate if needed

@jorgemanrubia I managed to write a spec that seems to fail on main and to pass on this branch ! However it appears to be flaky, although I can't seem to reproduce the flakyness with --headed on my machine, do you have any insights ? Thanks !

Hi @jorgemanrubia, @Intrepidd, any updates on this PR? This issue is affecting my projects as well, am happy to help.

Waiting as well regarding the specs 🙏

@Intrepidd sorry what's the problem with the specs? The referred flakiness? Is that happening in CI? We definitely need to sort that out, if you want to help with that @benwalks.

@jorgemanrubia my specs were indeed flaky but I think I managed to fix it. So I don't think there are any blockers anymore for this ?

Thanks a lot @jorgemanrubia for merging !
Any chance we can get a release soon ? As I believe this issue is a blocker for some to update to turbo 8. Thanks !

@Intrepidd I've just cut a new release https://github.com/hotwired/turbo/releases/tag/v8.0.4

I actually was relying on removing the 'complete' attribute as a convenient way to be able to reload a turbo_frame. I was doing it using turbo_power and sending turbo_streams like turbo_stream.remove_attribute('#comp-packages', 'complete'). Is there an official way to trigger a turbo_frame to reload from its src?

I actually was relying on removing the 'complete' attribute as a convenient way to be able to reload a turbo_frame. I was doing it using turbo_power and sending turbo_streams like turbo_stream.remove_attribute('#comp-packages', 'complete'). Is there an official way to trigger a turbo_frame to reload from its src?

You may use the reload method.
FrameElement.reload() is a function that reloads the frame element from its src.

Thanks @alexgerber. I have discovered that turbo_power has turbo_stream.turbo_frame_reload which is perfect!

Thanks for fixing this @Intrepidd 😍


Improved feature merging

The current line and polygon merging logic groups features in a tile with the same attributes, then uses the JTS line merger (or polygon unioning) to combine them into a single feature. This is not very flexible and causes issues like #54 #149 and #296. This should get refactored into a more flexible utility that lets you:

Filter what's being grouped
group by a subset of tags and specify how to combine the remaining ones
optionally prevent line merging from changing the direction of linestrings

and also maybe:

a way to specify that when you reverse a linestring it should swap the value of a particular attribute (i.e. oneway=1 to oneway=-1)
smarter support for 3-way merges or "fuzzy" matching on endpoints.

Originally posted by @msbarry in https://github.com/onthegomap/planetiler/issues/54#issuecomment-1013710629

Aggressive unioning would be valuable for roadway areas, to avoid inevitable seams between them.
/ref ZeLonewolf/openstreetmap-americana#486


UI Paint Point: Renaming Attributes

When editing the attribute "nice names" in the SMK Editor, I noticed that every time i would scroll down the list to an attribute and then click the attribute name , the attribute panel expanded but focus was set at the bottom of the expanded attribute panel so that i then had to scroll up a little bit to actually edit the attribute nice name.  If you have to edit, for example, 10 attributes in a list of 24, the additional scrolling up takes some can add up in terms of extra time/effort.

1.0.0-beta.6
reworked attribute list. shows name and title and ordering controls in header. only title is editable.


[Notification] Accept an Icon as Props

Description
The Notification component uses icons for the success and error variants, but it is difficult to use an icon otherwise.  For example a design for My Account Usage called for a Notification similar to the branded variant, but with an icon.
The design can be seen here (...hopefully): https://telus.invisionapp.com/d/main#/console/13507983/282372732/preview
Recommendation
I am recommending that the Notification component accept an icon as an optional prop.
This prop would override the default icons for the success and error variants, and be a way to add icons to variants that otherwise don't have them.  If this props isn't supplied, the behaviour would be as it is now (success and error variants get icons, others do not).
Without investigating too much, I would think the value of this icon prop would be one of the symbol enums used by the Icon TDS components.
This will make code easier to write, as I had to do a lot of snowflake coding to hack an icon into a Notification component using the branded variant.
See for reference:
https://github.com/telusdigital/my-account-usage/pull/24/commits/4e1eeab0c7d5ec550d96721992c6e1a7f884ea0b#diff-a95de90fcda49e296f7e6bbcb92022ab
https://github.com/telusdigital/my-account-usage/pull/24/commits/4e1eeab0c7d5ec550d96721992c6e1a7f884ea0b#diff-4d142ef5e79d6f015e251e1f55e91353
Meta

TDS version: v1.0.0
Willing to develop solution: YES!!!!
Has workaround: I guess...?
High impact: I don't know

hey @saxtron can you relink the designs? it doesn't seem to be working. Would like to better understand the use case so we can see where we can help.

Here's the InVision link: https://telus.invisionapp.com/d/main#/console/13507983/282430616/preview
You'll have to page left or right to see the different use cases.
Here's the JIRA ticket linking to the designs: https://telusdigital.atlassian.net/browse/NUT-1422
@stellambaka and Daniel Genuardi are working on the designs, so if you still don't have access please reach out to them.
Let me know if there's any other questions!  More than happy to chat and solution together.

hey @saxtron will be speaking to Stella and Daniel about the design. I'd like to see if we can use what we currently have without modifying the notification types. Perhaps introducing subtle animation/motion to draw focus to the notifications without changing the style.
My concern is that if we introduce the icon prop that in the future we can start getting various icons for various messaging and it could get a little messy and inconsistent with all the variants.

Perhaps a solution could be to add a new warning variant to the Notification component which has the styling required for the above design (aside from the dismiss X, which is covered in #423).
I agree, opening up an icon prop could get messy and lead to inconsistency.  Adding a warning variant makes the component more flexible while still keeping things consistent.
As a real-world example, right now I'm using the branded variant to achieve the above "Warning" message, which feels a little clunky.

yeah, i think if this becomes an issue where it's something that you guys require totally open to going that route. spoke to @stellambaka and we're going to try the generic for now and see if it works and revisit if we learn that it's not working.
doing the dismiss #423 would be amazing though! :)

closing this issue as per discussions with @saxtron and @stellambaka

team will use TDS notification components as is and will revisit if it becomes an issue
team will build out #423 and potentially contribute! :)


static_memory_forced doesn't always force static memory & other memory config issues

I'm running into some troubles with the Engine configuration settings around memories in wasmtime = "0.33". There may be a few different issues here, but because everything is entangled together I will post them all here.
I'm trying to spawn 100k wasm instances and am hitting a few problems that I assume are related around virtual memory exhaustion.
This is a minimal example that demonstrates the first issue:
use wasmtime::{Config, Engine, Memory, MemoryType, Store};

fn main() {
    let mut config = Config::new();
    config.static_memory_maximum_size(15 * 65536);
    config.static_memory_guard_size(65536);
    config.static_memory_forced(true);

    let engine = Engine::new(&config).unwrap();

    let mut hold = Vec::new();
    for _ in 0..100_000 {
        let mut store = Store::new(&engine, ());
        Memory::new(&mut store, MemoryType::new(10, None)).unwrap();
        hold.push(store);
    }
}

My reasoning here is:

config.static_memory_forced(true) will force the engine to always use static memory.
config.static_memory_maximum_size(15 * 65536) will allocate up to 15 wasm pages of virtual memory.
config.static_memory_guard_size(65536) will add one more wasm page of virtual memory.
There is also going to be one extra OS page (4kb?) of virtual memory as a guard before the memory.

This works fine on 64bit MacOs, but fails to finish on 64bit linux with an error:
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value:
Insufficient resources: System call failed: Cannot allocate memory (os error 12)', src/main.rs:14:60

I have also unsuccessfully tried to use dynamic memories instead:
    config.static_memory_maximum_size(0);
    config.dynamic_memory_reserved_for_growth(15 * 65536);

I assume this should force all memories to be dynamic (static_memory_maximum_size(0)), but only allocate up to 15 wasm pages of virtual memory initially. However, this fails again with an Insufficient resources error on Linux, but works on MacOs.
What would be a correct approach here that lets me specify a maximum virtual memory size, but also works on Linux so I can spawn more than 16k memories?
While experimenting with this, I also noticed another inconsistency. If we change the config.static_memory_maximum_size to a lower value than the wasm module is requesting:
use wasmtime::{Config, Engine, Memory, MemoryType, Store};

fn main() {
    let mut config = Config::new();
    // 5 Wasm pages
    config.static_memory_maximum_size(5 * 65536);
    config.static_memory_guard_size(4096);
    config.static_memory_forced(true);

    let engine = Engine::new(&config).unwrap();

    let mut hold = Vec::new();
    for _ in 0..100_000 {
        let mut store = Store::new(&engine, ());
        // 10 Wasm pages requested
        Memory::new(&mut store, MemoryType::new(10, None)).unwrap();
        hold.push(store);
    }
}

The Engine is going to use a dynamic memory, even it was configured with static_memory_forced(true). This previous example will be failing also on MacOs too with an Insufficient resources error. Only if we add a config.dynamic_memory_reserved_for_growth(65536); it will work.
Personal thoughts
There is a lot of documentation around these settings, but I have read multiple times through it and somehow still can't figure it out. The most annoying issue is that the documentation only lists defaults for 32 bit and 64 bit machines, but the behaviour also seems to differ depending on the OS you are running.
With memory64 and dynamic_memory_reserved_for_growth  the lines are even more blured between static and dynamic memory. I'm wondering if maybe we could get away with just one memory model that makes it clearer what is happening in the background?
It would be a dynamic memory with the following settings:

memory_initial_virtual_size(u64) - The dynamic memory can grow until this point without copying.
memory_virtual_resize(bool) - This would turn it into a static memory.
memory_guard_size(u64) - The guard page.

The defaults (64bit systems) would be:
memory_initial_virtual_size(4G);
memory_virtual_resize(false);
memory_guard_size(2G);

Resulting in the same properties the current defaults have.
This model is less feature rich, but I feel like the current system is so complicated that it's almost impossible to reason about what is going to be happening when you mix multiple settings.

Thanks for the report on this! I completely agree the settings are confusing, even as the one who tried to document them all originally I still struggle and reread the docs every time... I think what you've proposed actually makes a lot more sense and would be great to implement. I think we can probably keep wasmtime's internals the same they are now but it should be much easier to consume with the API you've proposed (or something similar). Would you be up for making a PR for this?
For the first example of yours, though, I think Wasmtime is performing as expected. AFAIK there's no OS-specific behavior of Wasmtime itself but I think you're running into OS-specific limitations and behavior of mmap itself. Using strace to follow the programs:

The first program (forced static, 15 page maximum) I see virtual memory reservations of 17 wasm pages, which corresponds to one page before, one page after, and 15 for the static memory. This is followed by an mprotect for 10 pages which makes the first 10 pages accessible.
The second program (forced dynamic, 15 pages growth) I see virtual memory reservations of 27 wasm pages which corresponds to 1 page guard at the front, 1 at the end, 10 for the initial memory, and 15 to grow into. There's then an mprotect for 10 pages to initialize the memory.
For the third program ("forced static", 5 page maximum) I see virtual memory reservations of 2GB + 12 wasm pages. You're right in that this is mistakenly selecting the dynamic strategy so the 2GB is the default amount of room to grow into and otherwise there's a guard in front, guard at the end, and 10 pages for the initial memory.

So for the first two programs I think that Wasmtime is actually behaving as expected, although perhaps the OS is not behaving as you expect? I am not personally very familiar with the nuances of mmap on OS-es and how it relates to overcomit and such. For Linux I see that the failing syscall is mprotect where we make the initial pages read/write. Otherwise though fixing the issue where a static memory is "forced" but we still pick dynamic I think would be fixed with an easier-to-understand configuration scheme like you're proposing. The specific bug here is that instantiation of a 10-page memory into a 5-page-maximum config should simply fail, not accidentally fall back to dynamic allocation.

Thank you Alex for investigating this!
You are right, this is a linux specific setting and Wasmtime is behaving as expected. The setting is vm.max_map_count and can be increased (until the next reboot) with sysctl -w vm.max_map_count=262144.
I can try to contribute both PRs, one fixing the actual bug:

The specific bug here is that instantiation of a 10-page memory into a 5-page-maximum config should simply fail, not accidentally fall back to dynamic allocation.

And one for the memory config simplification.

Awesome, sounds great, and thanks!


Fix shutdown logic and wait for background tasks

Fixes #2483
Based on #2453
Short description
The bug was triggered by the removal of a wait between transfer completed and cli node stop on that scenario. It was caused by the CLI not waiting gracefully for all background tasks to be sent before exiting, and then the MonitoringRequest could not make it to the global room.
This PR ensures the SDK properly waits (up to httpTimeout=30s) for all epics to flush and complete their pending tasks before waiting for the database to finish writing and then exit, and also that the CLI honors this instead of forcefully exiting.
Definition of Done

[x] Steps to manually test the change have been documented
[x] Acceptance criteria are met
[ ] Change has been manually tested by the reviewer (dApp)

Steps to manually test the change (dApp)

MS1 passes

@palango good call, added the tests, I'll merge as soon as the test run is green. Thanks

@palango good call, added the tests, I'll merge as soon as the test run is green. Thanks