Documentation is outdated

This documentation contains an outdated script. It still uses Xrm.Page and doesn't leverage Xrm.WebApi.online.execute.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2430af49-5aa5-f1d5-2df7-af99e529d40e
Version Independent ID: 87058b43-3478-ebd1-a32d-d601e4858ac0
Content: Set up booking rules in Dynamics 365 Field Service
Content Source: ce/field-service/set-up-booking-rules.md
Service: dynamics-365-field-service
GitHub Login: @FieldServiceDave
Microsoft Alias: daclar

Hello Martijn @mVermaat   - thank you for sharing the feedback and apologies for the delay in getting back to you.
We're looking into this issue and will circle back with an update.
Thanks!
Michael

Thank you for your feedback. We are tracking this internally and hope to add updated samples in the future.


API documentation difficult to read

The API documentation is difficult to go through—the sidebar menus don't expand when clicked on, and don't really need to be collapsed ever in the first place.

Should be fixed now. Can you have a look?

It is! Thanks!


Fix ledger

Abstract
Ledger was broken due to it being classified as a 'view only key' despite it having spending authority.
This is considered a temporary fix until #270 is implemented.
Fixed bugs:

You couldn't make transactions on ledger (Introduced by #271 and not present in the stable release)
Lock/Unlock buttons were present (Introduced earlier and present in the stable release, but the overall functionality still works)

Testing

Test that you can make ledger TXs
Test that lock/unlock dialogs are not visible

This bug is fixed in the master branch


correct JSON log format

today I upgraded to 0.25.2 version and noticed that the json format is not working
after a quick scan of the code I noticed that factory is always nil.
some related problems #991 and #965
I'm sure there is a much more elegant solution to this problem.

The last change in the formatting was performed in https://github.com/kubernetes-sigs/descheduler/commit/c9b0fbe46742b4e00a39336d30f98ffaec20a77f. @wakeful would undoing the change help?

@ingvagabund I believe so but then the external dep upgrade will also be rollback,
-
-			factory, _ := registry.LogRegistry.Get(s.Logging.Format)
+			var factory registry.LogFormatFactory
 			if factory == nil {
 				klog.ClearLogger()

looking at the above patch I suspect the underlying API has change and the code was just adjusted to compile
as this project is lacking tests around flags it went unnoticed.

Thank you for finding this @wakeful

personally I think we should fix it without rollback / revert, add test(s) and push out a patch version

+1

/approve
/lgtm

@ingvagabund wdyt about another patch release for this?

@wakeful is releasing a new descheduler version paramount for your business? Or, can you build the descheduler image from the latest master:HEAD and run in meantime?
@damemi unless there's a strong need for it, I prefer to wait until more fixes are merged.

hey @ingvagabund for now we are running a custom build from top of master :)


HTML Setup

HTML setup,
NOT READY:

/{username} not working when accessing a user profile, ref: user_timeline in minitwit.py
Follow user -> just redirects to "follow" instead of "localhost:5000/{username}/follow, ref: follow_user in minitwit.py
Unfollow user -> estimated guess that if we cant follow we probably cant unfollow, check after fixing above
Shows "Public Timeline" on both public and your own timeline. See timeline.html l. 1-3

Not working (15/02/2024 14:30):
Shows "Public Timeline" on both public, user timelines and your own timeline. See timeline.html l. 1-3
You are prompted to follow user on personal and public timeline.
You are prompted to follow user you are already following.
Adding flashes to restore functionality.


view: extend view service for auctions

We want to amend the view service definition to add an Auctions rpc that the transaction planner will be able to use:
service ViewService {
    // ...

    // Gets the auctions controlled by the user's wallet.
    rpc Auctions(AuctionsRequest) returns (stream AuctionsResponse);

    // ...
}

message AuctionsRequest {
    // If present, filter balances to only include the account specified by the `AddressIndex`.
    core.keys.v1.AddressIndex account_filter = 1;
    // If present, include inactive auctions as well as active ones.
    bool include_inactive = 2;
    // If set, query a fullnode for the current state of the auctions.
    bool query_latest_state = 3;
}

message AuctionsResponse {
    core.component.auction.v1.AuctionId id = 1;
    // The note recording the auction NFT.
    SpendableNoteRecord note_record = 4;

    // The state of the returned auction.
    //
    // Only present when `query_latest_state` was provided.
    google.protobuf.Any auction = 2;
    // The state of any DEX positions relevant to the returned auction.
    //
    // Only present when `query_latest_state` was provided.
    // Could be empty, depending on the auction state.
    repeated core.component.dex.v1.Position positions = 3;
}

should we wait to close this until a storage impl is filled into the stub?

@TalDerei  Created #4251 to track impl.


Is development still continuing?

Not an issue, but just a quick question - I really enjoy Discordo but see that there has been very little development on it for the last 2 months...
Just curious if it is still being developed...?
Thanks! :)

not really.
something as simple as unread channel indicators are yet to be implemented.
a lot of login errors
and the original owner lost most of his hope

Yes, but Discord API for user accounts is very difficult to work with, things change very quickly and there is no way to keep track without documentation which Discord does not provide since user accounts are against ToS.


arch/sim: Fix the up_cpu_start initialisation on OSX with SMP config enabled

Summary
This PR fixes the issue described in #1708 . On Mac the sem_init(..) host call returns with error as unnamed semaphores are not supported. Because of this, the call to up_cpu_start fails and the simulation hangs.
The patch fixes this issue by using named semaphores when CONFIG_HOST_MACOS=y.

After more reviewing, I think we can remove the semphare from the code since the synchronization isn't really needed.

After more reviewing, I think we can remove the semphare from the code since the synchronization isn't really needed.

Ok I will remove it, in that case I will also drop the changes from nuttx-names.in

i suspect it's simpler to use pthread mutex/condvar.

i suspect it's simpler to use pthread mutex/condvar.

I updated the patch to use pthread_con_t signalling  mechanism

LGTM.


e.URL.Port undefined (type *url.URL has no field or method Port)

e.URL.Port undefined (type *url.URL has no field or method Port)

Port was added in Go 1.8. You can't use go-git with versions older than that


Programmatically calling pane.activate() does not update its isFocused() state

Prerequisites

[x] Put an X between the brackets on this line if you have done all of the following:

Reproduced the problem in Safe Mode: https://flight-manual.atom.io/hacking-atom/sections/debugging/#using-safe-mode
Followed all applicable steps in the debugging guide: https://flight-manual.atom.io/hacking-atom/sections/debugging/
Checked the FAQs on the message board for common solutions: https://discuss.atom.io/c/faq
Checked that your issue isn't already filed: https://github.com/issues?utf8=✓&q=is%3Aissue+user%3Aatom
Checked that there is not already an Atom package that provides the described functionality: https://atom.io/packages

Description
Programmatically activating a pane does not update the pane's isFocused() status (the pane is still reporting as not being focused), despite the docs stating that upon calling this function the pane should gain focus. The pane actually does gain focus as I can type in the pane's view and perform all the expected operations inside the view; this is only an internal inconsistency with how the pane's focus is reported when the pane is focused programmatically.
Steps to Reproduce

Programmatically activate a pane:

const pane = atom.workspace.paneForURI('atom://nuclide-terminal-view')
// Check that the pane is not focused
assert.ok(!pane.isFocused())
pane.activate()

Programmatically observe the pane's focus state

assert.ok(pane.isFocused()) // fails

Expected behavior: Programmatically focusing a pane should update it's .isFocused() status
Actual behavior: Programmatically focusing a pane does not update the pane's .isFocused() status, causing plugins to not recognise that pane as being focused
Reproduces how often: 100%
Versions
Atom    : 1.35.0-beta0
Electron: 2.0.16
Chrome  : 61.0.3163.100
Node    : 8.9.3

Additional Information
I believe the Pane.activate() method should call this.focus() to toggle the focus programmatically. Alternatively, this is some Electron issue where the expectation would be that the "view layer" toggles the focus once the pane becomes activated, though I am uncertain how these things work in Atom. 🤔

Possibly related
The Pane class also has an .activateItemForURI(URI) method. This method's name suggests that the pane would become activated, much like what would happen when you call .activate() on the pane, thus gaining focus etc. However, this method does not make the pane activated at all. In other words, to actually activate the pane, I have to manually activate it after activating the item for URI:
pane.activateItemForURI('atom://nuclide-terminal-view')
// Dock does not appear if it is currently hidden, but the pane switches to the correct view
// To actually open the dock and focus the item, I have to activate the pane explicitly:
pane.activate()

Not sure if this is intended behaviour or a separate bug. 🤷♂

Thanks @robertrossmann :+1:   Can you share a code sample that works without Nuclide?  E.g. is this the equivalent assuming I have settings open?
const assert = require('assert')
const pane = atom.workspace.paneForURI('atom://config')
assert.ok(!pane.isFocused())
pane.activate()
assert.ok(pane.isFocused())

@rsese Yes, the above code snippet exhibits the problem - just tried on Atom 1.36.0-beta2.

Great thanks for confirming @robertrossmann :+1:

I'm not super familiar with the lifecycle of panes in Atom (@nathansobo may not much better), but I can send a PR changing the logic to set the focused flag to true whenever activate() is called and see if all tests pass.


How do group bindings work?

I used this binding:
binding write binding '[{"fabricIndex": 1, "group": 1}]' 1 2
I then executed a LevelControl Move command in my code.  But that is not the issue, the issue is remote_device is null.
0x42013f2e in esp_matter::cluster::level_control::command::send_move (remote_device=0x0, remote_endpoint_id=36532, move_mode=0 '\000', rate=1 '\001', option_mask=0 '\000', option_override=0 '\000') at /home/jonsmirl/aosp/esp-matter/components/esp_matter/esp_matter_client.cpp:169
When it got to line 175 of esp_matter_client.cpp, faults because remote_device is null.
chip::Controller::LevelControlCluster cluster(*remote_device->GetExchangeManager(), remote_device->GetSecureSession().Value(), remote_endpoint_id);
Can you add a group example similar to this Nordic one at the bottom...
https://github.com/project-chip/connectedhomeip/tree/master/examples/light-switch-app/nrfconnect#binding-process

The architecture of this callback has problems...
void app_driver_client_command_callback(client::peer_device_t *peer_device, uint16_t remote_endpoint_id,
                                        void *priv_data)
{
    /** TODO: Find a better way to get the cluster_id and command_id.
    Once done, move the console commands to esp_matter_client. */
    if (g_cluster_id == OnOff::Id) {
        if (g_command_id == OnOff::Commands::Off::Id) {
            on_off::command::send_off(peer_device, remote_endpoint_id);
        } else if (g_command_id == OnOff::Commands::On::Id) {
            on_off::command::send_on(peer_device, remote_endpoint_id);
        } else if (g_command_id == OnOff::Commands::Toggle::Id) {
            on_off::command::send_toggle(peer_device, remote_endpoint_id);
        }
    } else if (g_cluster_id == LevelControl::Id) {
        if (g_command_id == LevelControl::Commands::Move::Id) {
            level_control::command::send_move(peer_device, remote_endpoint_id, g_mode, g_rate, 0, 0);
        }
    }
}

That *priv_data should be a function pointer to the command plus the vargs it needs. Then this callback pretty much goes away and becomes generic.  If code needs big if-then like this, something is architecturally wrong.
https://github.com/espressif/esp-matter/issues/27

@jonsmirl We've updated the SDK to support group bindings. Added documentation here
Please give it a try.

@jonsmirl The group commands for level control and color control will be added later.

@jonsmirl  Could you try out the https://github.com/espressif/esp-matter/commit/84db3c810a508b4e793fdce9c3cd14add01afc5a for new group commands, please help to close the issue if it works for you.

Closing this now


Popper.js messing up dropdown styles

Loving the new popper.js but was wondering if there was a way to disable the custom styles it auto adds to elements?
Its adding the following:
    position: absolute;
    transform: translate3d(0px, 0px, 0px);
    top: 0px;
    left: 0px;
    will-change: transform;

This in turn overrides some custom animations I am trying to implement, it also messes up alignment if I wanted to put dropddowns in a container. The plugin is great but there must be a way to disable this custom "hardcode" style feature?

These styles are the ones needed to actually position the dropdown. Without them the dropdown would not be positioned.

Yep but that's possible to disable Popper.js style we did it when Dropdown are in a navbar so why not add a feature to allow folks to do that

But then what's the point to use a dropdown?

Yep I agree they won't take any advantage of Popper.js

Perhaps @myorangeca can elaborate on the custom animations being applied so we can see what properties conflict? I definitely understand the desire to customize animations for positioned elements.

It's probably because of the transform property. Ideally dropdowns should allow an intermediate wrapper people can use to apply custom css and animations to it.
Doing so the outer most wrapper is used for the position and the inner one for the animations

I have customized the dropdown to do the following animation below. I had to use !important style to override popper.js styles (clearly not the best solution).
.show > .dropdown-menu {
    -moz-transform: scale(1) !important;
    -o-transform: scale(1) !important;
    -ms-transform: scale(1) !important;
    -webkit-transform: scale(1) !important;
    transform: scale(1) !important;
    moz-transform-origin: 29px -50px;
    -o-transform-origin: 29px -50px;
    -ms-transform-origin: 29px -50px;
    -webkit-transform-origin: 29px -50px;
    transform-origin: 29px -50px;
    opacity: 1;
    visibility: visible;
}

.dropdown-menu {
    -moz-transform: scale(0.8) !important;
    -o-transform: scale(0.8) !important;
    -ms-transform: scale(0.8) !important;
    -webkit-transform: scale(0.8) !important;
    transform: scale(0.8) !important;
    transition: all 270ms cubic-bezier(0.34, 1.25, 0.3, 1);
    opacity: 0;
    visibility: hidden;
    display: block;
}

Where I understand that popper inserts these classes dynamically to position the dropdown, but it causes problems if the dropdown is inside some container or in a nav bar with 'boxed layout view'
I think popper.js should have an option to check elements with certain data attributes (ie data-popper-static) to ignore hardcoded styles for that particular element.

Would like to add, if I have any custom scroll plugins inside any dropdowns (ie. slimscroll.js), popper's custom style messes up the plugin from being rendered (translate3d bug maybe).  We will be needing some form of control to disable the plugins ability to add custom styles for some elements.

@myorangeca may you open an issue on the popper.js repo about the scroll plugins? I use a scroll plugin in the demo website popper.js.org and works just fine

@FezVrasta I might just do that. But don't you think a css solution would be more prefered over a JS solution. And the option to disable the popper's custom style might be needed in some cases?

But don't you think a css solution would be more prefered over a JS solution. And the option to disable the popper's custom style might be needed in some cases?

I'm a yes on both accounts, for what it's worth.

You can just turn off the transform placement on Popper to make it only use top/left for positioning instead. Then you can use transform for any animations/transitions as you wish.
Popper.Defaults.modifiers.computeStyle.gpuAcceleration = false;

@klaslundberg thanks for that! I still think there should be an option via data-tooltip to disable this;

This hurt me for several hours today as well, trying to figure out why all my dropdown animations suddenly started going crazy. A lot of people are going to want to animate their dropdowns...

my dropdown  was flying all over the document), the problem solved only by turning off the computeStyle
Popper.Defaults.modifiers.computeStyle.enabled = false;

Popper.Defaults.modifiers.computeStyle.gpuAcceleration no longer works when used popper in bootstrap.bundle.js

@logolevel's hack works!

In Bootstrap >=4.1 there is an 'data-display="static"' attribute that you could add to the toggle element. That way Popper wont mess with de position of that dropdown specifically.

'data-display="static"

This solved my issue. Thanks a lot.

I have customized the dropdown to do the following animation below. I had to use !important style to override popper.js styles (clearly not the best solution).
.show > .dropdown-menu {
    -moz-transform: scale(1) !important;
    -o-transform: scale(1) !important;
    -ms-transform: scale(1) !important;
    -webkit-transform: scale(1) !important;
    transform: scale(1) !important;
    moz-transform-origin: 29px -50px;
    -o-transform-origin: 29px -50px;
    -ms-transform-origin: 29px -50px;
    -webkit-transform-origin: 29px -50px;
    transform-origin: 29px -50px;
    opacity: 1;
    visibility: visible;
}

.dropdown-menu {
    -moz-transform: scale(0.8) !important;
    -o-transform: scale(0.8) !important;
    -ms-transform: scale(0.8) !important;
    -webkit-transform: scale(0.8) !important;
    transform: scale(0.8) !important;
    transition: all 400ms ease-in;
    opacity: 0;
    visibility: hidden;
    display: block;
}

.dropdown-menu-custom {
    right: 15px !important;
    top: 59px !important;
    left: auto !important;
}

Where I understand that popper inserts these classes dynamically to position the dropdown, but it causes problems if the dropdown is inside some container or in a nav bar with 'boxed layout view'
I think popper.js should have an option to check elements with certain data attributes (ie data-popper-static) to ignore hardcoded styles for that particular element.

That worked for me! thank you
.show > .dropdown-menu{         transform: translate3d(0px, 106px, 0px)!important;     }


Import error

Hi, I'm trying to use money into a GAE app.
For testing purposes, I've tried into the console and keep raising the same error.

Nevermind... I've used Python 3.x into 2.x.

Hi Rafael, thanks for sharing.
For anyone else getting this: when using the package source code directly, there are two source directories: src and src-py2. You need to use the appropriate one depending on your python version. If you install the package using setup.py, it will automatically install the right source, and you don't have to worry about this.


Remove-SPOSiteUserInvitations - No synopsis and description given

This CmdLet lacks a correct synopsis and description

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 074a913a-6f98-c246-6873-7e7a98a03ac5
Version Independent ID: eb201d27-2802-0fbc-7a6b-560c2e3381bd
Content: Remove-SPOSiteUserInvitations (sharepoint-online)
Content Source: sharepoint/sharepoint-ps/sharepoint-online/Remove-SPOSiteUserInvitations.md
Service: sharepoint-powershell
GitHub Login: @trent-green
Microsoft Alias: trgreen

@officedocsbot assign @yogkumgit

@trent-green Please help us with you comment. Thanks

@andikrueger from my research, the *-SPOSiteUserInvitations appear to not function, looking into it more.

@tseward  Thank you very much for the contribution and sharing this explanation. @andikrueger
Hope this comment is helpful for you. If you see a documentation update is required, please feel free to open an issue for the same. We proceed here to close it. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


[ Enhancement ]  fetch parameters.

This is just suggestion - It will be good if we have a setting for the fetch request. Some sites does not accept method GET and only post. Moreover we can configure the cache option to preserve repeated request to the server. Other useful options can be set too
Currently only signal is set exclusively .

yes that makes a lot of sense
added in https://github.com/lekoala/bootstrap5-autocomplete/releases/tag/1.1.4


Expose action masking in Pathmind Helper

Hi!
I have to Train a PPO model with action masks and the action space is multi discrete. Did you guys solved this issue? can I have a sample of a custom model with action mask which the actions are more that one?

@amirhossein-dezhboro Yes. It should work out-of-box using the custom model defined here: https://github.com/SkymindIO/nativerl/blob/48f1a9897ca67fd892165818904fe8a33c5c19d4/nativerl/python/pathmind_training/models.py#L61
Basically, you just need to pass in a boolean array like the below.


When a Category is completed.

Is there a way to like hide it, it seems like there's not a way to do so, so far.

Currently there is no. Maybe it worth to hide category which contains only completed items when you click 'Show/Hide completed to-do items'. What do you think?

Great, just like i want it.


Tournaments: Use gen 7 when no gen is specified

Simply an update to the tournaments system so that if you don't specify a generation, it assumes gen7 instead of gen6.
examples: (same applies for whatever format other than ou too)
gen7ou => gen7ou
gen6ou => ou
ou => gen7ou
gen5ou => gen5ou (same for all other older gens)

Sorry if the commit message isn't up-to-par, I couldn't think of a good one.

Shouldn't we wait until all tiers have been transferred to gen 7? Or is that checked in the code and I'm missing something?

This dosen't edit any of the actual format names, it simply removes the [Gen 7] marker from gen 7 formats and adds the [Gen 6] marker to those formats that lack one (which should only be gen 6 formats at this point)

ah ok

This is wrong, you should be editing format names instead.

@Zarel in formats.js? Or in the tournaments plugin? If its the latter I assume id edit the visible format name.

In formats.js

Actually, it might be best if I do it myself.

Sure, PM me on PS if you want some help with it or if you change your mind.


Log response body

Sometimes it can be useful to inspect the response body before parsing it with JSON3. Log level -3000 should be sufficient such that you do not fill your logs accidentally.

I fixed the PR locally but I suggest we close it: The HTTP.jl package uses the Julia logging system, and hence by enabling debug logging globally or for the HTTP package (possibly among other packages) the response is logged. Logging in FHIRClient as well could even duplicate these logging messages.
Possibly, an improvement in FHIRClient could be to support the verbosity keyword argument in HTTP.jl and forward it to HTTP.request for adjusting the verbosity of the logging messages from HTTP: https://juliaweb.github.io/HTTP.jl/stable/reference/#HTTP.request

Hmmm. At what log level does HTTP output the full response? Is it DebugLevel (-1000)?
I'd prefer we keep this logging in FHIRClient.jl, and only output it at a lower log level, e.g. -3000.

Hmmm. At what log level does HTTP output the full response? Is it DebugLevel (-1000)?

Yes, it uses @debug with different levels of verbosity.

Closing in favor of #132


Ask what is the reason for this error, how to deal with it?

File "/home/ubuntuserver426/guoprogram/study/BQP/models/QP_layer.py", line 24, in forward
a = qp.QPFunction(verbose=False)(Q,p,G,h,A,b)
File "/home/ubuntuserver426/guoprogram/study/BQP/models/qpth0/qp.py", line 94, in forward
self.eps, self.verbose, self.notImprovedLim, self.maxIter)
File "/home/ubuntuserver426/guoprogram/study/BQP/models/qpth0/solvers/pdipm/batch.py", line 153, in forward
Q, D, G, A, rx, rs, rz, ry)
File "/home/ubuntuserver426/guoprogram/study/BQP/models/qpth0/solvers/pdipm/batch.py", line 340, in factor_solve_kkt
S_LU = btrifact_hack(S_)
File "/home/ubuntuserver426/guoprogram/study/BQP/models/qpth0/solvers/pdipm/batch.py", line 14, in btrifact_hack
return x.btrifact(pivot=not x.is_cuda)
File "/usr/local/lib/python3.5/dist-packages/torch/tensor.py", line 252, in btrifact
return super(Tensor, self).btrifact(pivot=pivot)
RuntimeError: failed to factorize some batch elements (min info == 52, max info == 52) at /pytorch/aten/src/THC/generic/THCTensorMathBlas.cu:821

It's likely that the Q you're passing in is not SPD. I just added a check that should give a more reasonable error message in this case.


ImportError: No module named netbox.wsgi

So I keep getting this error. Any ideas to where netbox.wsgi is?
[2016-12-06 08:31:49 +0000] [4984] [INFO] Starting gunicorn 19.6.0
[2016-12-06 08:31:49 +0000] [4984] [INFO] Listening at: http://<IP_ADDRESS>:8001 (4984)
[2016-12-06 08:31:49 +0000] [4984] [INFO] Using worker: sync
[2016-12-06 08:31:49 +0000] [4989] [INFO] Booting worker with pid: 4989
[2016-12-06 08:31:49 +0000] [4989] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/arbiter.py", line 557, in spawn_worker
    worker.init_process()
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 126, in init_process
    self.load_wsgi()
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/workers/base.py", line 136, in load_wsgi
    self.wsgi = self.app.wsgi()
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/base.py", line 67, in wsgi
    self.callable = self.load()
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 65, in load
    return self.load_wsgiapp()
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/app/wsgiapp.py", line 52, in load_wsgiapp
    return util.import_app(self.app_uri)
  File "/usr/local/lib/python2.7/dist-packages/gunicorn/util.py", line 357, in import_app
    __import__(module)
ImportError: No module named netbox.wsgi
[2016-12-06 08:31:49 +0000] [4989] [INFO] Worker exiting (pid: 4989)
[2016-12-06 08:31:49 +0000] [4984] [INFO] Shutting down: Master
[2016-12-06 08:31:49 +0000] [4984] [INFO] Reason: Worker failed to boot.

This looks like an installation issue; I'd suggest going through the web server portion of the installation instructions again.
The GitHub issues should only be used for feature requests or bug reports. I'm going to close this issue, but please post to the mailing list if you require further assistance.


Jesus Saviour Wonderful Saviour

Title: Jesus Saviour Wonderful Saviour
Author: Zac Poonen
Media url: https://youtu.be/FRpIISxWRUU
Lyrics:
I will love Thee, Lord forever,
Thou wast crucified for me.
With Thy blood Thou hast redeemed me.
Now I'm Thine eternally.
Chorus:
Jesus, Saviour, Wonderful Saviour,
Thou art more than life to me
Whom have I on earth beside Thee?
Whom have I in heaven but Thee?
O my Saviour, Lord and Master,
Thou art all in all to me.
I am waiting for that morning
When Thy glorious face I'll see.
Till then let this world despise me,
Saviour, I will walk with Thee.

Jesus Saviour, Wonderful Saviour (Zac Poonen).xml.zip


Add revalidateMode prop to Form

this is regarding: https://remix-forms.seasoned.cc/examples/actions/field-error
If I enter<EMAIL_ADDRESS>and submit the form it returns with Email already taken. => Ok
If I change the email to foo the error changes to Invalid email without requiring a submit => not sure if this is a bug or a feature. I think it should only re-validate if I use mode="onChange"
If I now change the email to a valid one like<EMAIL_ADDRESS>the old/cached error appears:  Email already taken  => Not Ok. I think this is confusing, as it might lead to the assumption that<EMAIL_ADDRESS>is taken too.
My proposal would be to allow resetting errors

Thanks @johnsonthedev! My suggestion for this issue is:

Add a revalidateMode prop to Form and pass it to react-hook-form's useForm. Right now, we're always using the onChange default for revalidation.

Reset server-side errors upon revalidation.

How does that sound to you?
We'll work on this soon, but it probably won't be a top priority. Feel free to send a PR in the meantime :) thank you!

We'll track the server-side revalidation on #111 and use this issue only for adding the revalidateMode to Form.


Ensure the initializer is required in the railtie

This was breaking before because the sidekiq_initializer file
hadn't been loaded before the railtie runs.

Is this running tests on travis?

Doesn't look like it. I'm happy to set that up if someone could point me in the right direction?

There are jenkins jobs for it and I asked for hooks to be added to this repo, but I don't know whether they were added.


Injected effects not showing up on zoom G3n

Injected FlipTop, BassMetal and BMAN100 from B3n 2.20 (latest) firmware onto G3n 2.20 (also latest) firmware and updated my G3n using the modified firmware. Nothing changed at all. The new effects don't show up on Guitar Lab either. Also, my G3n version was already the latest. (2.20)

Also tried deleting an existing effect and giving another its file name, but even after updating, the deleted effect is still there. I’m not sure if updating works on my side.

Everything works fine by downgrading to version 2.00.


json modules should not treated as affecting global scope

This makes changing json modules more performant.
Before they did invalidate all other modules.
After that change they only invalidate modules that import them.
JSON does not leak anything into the global scope

The idea seems great but I have no idea if there's a weird corner case where JSON is global.


Feature/batch/metric selection

waiting on #171 -> draft
This PR adds include and exclude parameters to batch.GetDataBuilder.add_metrics, which allows users to select which metrics to calculate.

Codecov Report

Merging #172 (adcb0fa) into development (eee419c) will increase coverage by 0.12%.
The diff coverage is 85.00%.

@@               Coverage Diff               @@
##           development     #172      +/-   ##
===============================================
+ Coverage        61.19%   61.32%   +0.12%
===============================================
  Files               33       33
  Lines             2528     2544      +16
===============================================
+ Hits              1547     1560      +13
- Misses             981      984       +3

Impacted Files
Coverage Δ

endaq/batch/core.py
95.55% <85.00%> (-1.10%)
:arrow_down:

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 eee419c...adcb0fa. Read the comment docs.


Some sites are still not opening

I recently used your script, basically everything works well and fast, but some sites still don't open. For example, the android studio website looks like this. Any ideas?

@Shura-Joy
Can you restart the service and test again?
bash <(curl -sL https://bit.ly/realityez) -r


feat: add resolution of $refs in subdirectories

This PR:

Adds resolution of $refs in subdirectories.

Refactors the application's code, getting the codebase ready for future implementations.

Resolves https://github.com/asyncapi/bundler/issues/178

/rtm


respond to CORS headers in private-s3-bucket

Makes it choosable whether it set CORS headers or not in S3.
See: https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/s3_bucket#cors_rule

doubtful that private bucket should have CORS rule

I see, that's right.
I thinking about the case of publish S3 object using CloudFront.


No way to instrument directories with absolute filenames

E.g. Karma's preprocessor instruments file by file. In this case the instrumentation is done with absolute path. Whereas the cli allows instrumentation off directories which are enforced by code to be relative.
instrument.js:#204                relative: true

Merging these results with a middleware does not work. It is desired to expose the option relative to the cli.

I add this problem and forked the source-map branch and force the collector to use always absolute paths: carneiror/istanbul#source-map


Can't install any chroot within the new ChromeOs update.

I can't install any chroot and i get this
chronos@localhost / $ sudo sh ~/Downloads/crouton -t xfce
Downloading latest crouton installer...
######################################################################## 100.0%
WARNING: USB booting is enabled; consider disabling it.
WARNING: Legacy booting is enabled; consider disabling it.
You can use the following command: sudo crossystem dev_boot_usb=0 dev_boot_legacy=0
Installing xenial-amd64 chroot to /usr/local/chroots/xenial
Downloading latest debootstrap...
/tmp/crouton-installer-cache/crouton: 14: /tmp/crouton.5zp/installer/ubuntu/bootstrap: wget: not found
Download from Debian gitweb failed. Trying latest release...
/tmp/crouton-installer-cache/crouton: 19: /tmp/crouton.5zp/installer/ubuntu/bootstrap: wget: not found
Failed to download debootstrap.
Check your internet connection or proxy settings and try again.
I even tried unity and unity-desktop and get the same thing. I really don't wanna format my chromebook or start continuously reverting to a previous version (because ChromeOs keeps auto updating) so if someone has a fix it's gladly needed.

Should be fixed in the latest crouton.

I have this problem. I have downloaded the latest crouton (as far as I can tell) and I get very similar output to @New2GitHub1 when trying to install xenial (or trusty). Any hints?


Make enabled/disabled for subscriptions work in TS

i think this is the same as #198 which is now implemented

This was meant to be the runtime side. Previously onStarted was just executed on the client instead of waiting for the server to report the subscription was created which I kinda feel like it should have.
I haven't checked tRPC's behaviour.


New tutorial: Securing AKS Secrets with Key Vault

Learn how to get Secrets from Azure Key Vault in Azure Kubernetes Service (AKS) using AAD Pod Identity and Secrets Store CSI provider

@HoussemDellai : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @HoussemDellai - Thanks for your submission. The content team will be reviewing it shortly, and will be in touch with you.

@HoussemDellai  can you please use the private pr  ?  azure-docs-pr

PR created on the private repo :)


[Feature] Select multiple images #4

This feature allows you to select multiple images by Ctrl+LeftClick.
I have done implementing multiple selection. I am now working on implementing actions for multiple selection.
Note that the actions will be limited compared to single selection although I am thinking which action should be supported for multiple selection.
For example, copying multiple images and deleting multiple images should be supported for multiple selection, but I guess we don't need copying multiple filepaths or opening multiple images. Also, I am struggling to design the behavior of editing tags for multiple images (I am sure that it must be useful if I could implement multiple editing tags)
Not selected (default)

Last 5 images are selected


Fix description rewriting

Validations DSL writes something to route_setting(:description)[:params] but doesn't clean it in reset_validations!.
See new spec spec/grape/api_spec.rb — this is similar to our case in a real application where we got grape-swagger generating wrong documentation.
desc 'global description'
  params do
    requires :param1
    optional :param2
  end
  namespace 'ns1' do
    get do; end
  end
  params do
    optional :param2
  end
  namespace 'ns2' do
    get do; end
  end
end

grape-swagger shows that /ns2/ requires param1 but in fact it's callable without it.

Also squash your commits, please.

@dblock what about unset_ helper you proposed? Implement it or not?

I mean "Helpers like description_field and unset_description_field would be good?", my answer is yes :)

@dblock I refactored my code with new helpers, please look at it. If it's good for you i'll open new PR with squashed changes.
About namespace_setting — it's actually not used anywhere but there are a lot of specs to change after removing it. We should remove all namespace_setting related specs and also rewrite many specs in spec/grape/dsl/settings_spec.rb that cover generic settings dsl behavior using namespace_setting storage — it should now use route settings or namespace_stackable.
It'll be better to do it in a separate PR.

This looks good, fix the build, squash please (you can do this in-place I am sure, good git exercise ;)).

@dblock I prefer not to do git push -f here because it'll erase all the discussions here.

@dblock please see #1052


⚠ Fortnite has degraded performance

In 2b08571, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1501 ms

Resolved: Fortnite performance has improved in 2e32681.


fix: query forms which require evaluation shows loading

Description
Fixes #15127
Being on a mongo query page(or any other query which requires form evaluation) and creating another mongo query(or any other query which requires form evaluation) calls RUN_FORM_EVALUATION before INIT_FORM_EVALUATION which calls extractQueueOfValuesToBeFetched with an undefined which then results in an error.
The fix ignores the RUN_FORM_EVALUATION calls if INIT_FORM_EVALUATION hasn't been called before because workerResponse will not have the formId.
Type of change

Bug fix (non-breaking change which fixes an issue)

How Has This Been Tested?
Cypress test
Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[x] I have added tests that prove my fix is effective or that my feature works
[x] New and existing unit tests pass locally with my changes

/ok-to-test sha=70424d6

/ok-to-test sha=22be15f


Cluster-health changes status every second

We had a storage issue come up recently. It corrupted the .wal files on two hosts. This isn't product so it wasn't a big deal so I just shutdown the etcd on the one working node. On each node I deleted the directory in /var/lib/etcd called default and after the service started on all hosts. Now when I do etcd cluster-health one second it will give me an output like
member b45eeda590aaa3de is healthy: got healthy result from http://<IP_ADDRESS>:2379
member c4fb4448dd62539f is unhealthy: got unhealthy result from http://<IP_ADDRESS>:2379
member fded82065929ad4b is healthy: got healthy result from http://<IP_ADDRESS>:2379
and the next second I could get
member b45eeda590aaa3de is healthy: got healthy result from http://<IP_ADDRESS>:2379
member c4fb4448dd62539f is healthy: got healthy result from http://<IP_ADDRESS>:2379
member fded82065929ad4b is healthy: got healthy result from http://<IP_ADDRESS>:2379
What would cause members to go from healthy to unhealthy in the matter of seconds? There are no networking issues as other services such as docker-swarm on these hosts are working as normal.

Can you provide server logs?

On each node I deleted the directory in /var/lib/etcd called default and after the service started on all hosts

How did you do this? Do you mean you stop etcd server, delete data, restart cluster?

@PleaseTakeItEasy
kindly ping.

I am closing this due to low activity. What might happen is that the cluster was unstable, and the leader was flipping. Without logging, it is impossible to tell what exactly happened.


ipv6 address required on edge cache for ip_allow.config to get written out on mid

The ip_allow.config for the mid cache is not updated by the ORT script (Fatal Error: Can't call method "network" on an undefined value at blib/lib/NetAddr/IP.pm (autosplit into blib/lib/auto/NetAddr/IP/coalesce.al) line 1273). The only way to get it to update is to add an ipv6 address for any edge caches (or possibly only one edge cache) that are children of the mid cache being updated.

CDETS CSCuw28583

closed - this has all been rewritten


Minor test and docs improvements for main OpenTelemetry module

View by commit.

It'll be easier with classes when we'll develop SDK part and subclass the default (no-op) tracer/meter, I suppose.

I don't think the SDK will subclass the default tracer/meter. I think we'll just rely on 🦆 typing and a decent conformance test suite. I'm not convinced about the change to use classes, except that it is a little less magical to Ruby newcomers (evidenced by the fact that I got it wrong when I wrote the initial version).


SAK-50693 Accessibility expand/collapse state of More link is not rendered

Added aria-controls attribute to make it accessible and now the screen reader announces "More link expand".

can you use data-bs-toggle aka Bootstrap 5 toggle?

Removed unnecessary tags

No need for JSF verbatim
No need for aria-label as the link text is there
No need for tabindex as links are always tabbable
No need for role as  is naturally a link

There seems to be an issue at my end if I don't explicitly mention role as link - it only expands and never collapses on pressing enter again. Just wanted to let you know. Thank you!

Semantically, this should be a button, right?
https://getbootstrap.com/docs/5.0/components/collapse/#:~:text=Generally%2C we recommend using a,data-bs-target attribute.

what's wrong with being announced as a button? it seems appropriate to me?

Generally we want to use the semantically correct tag and then style it
so if it is functioning like a button and not going to a new page, then a <button class=btn-link">More</button> makes more sense than overloading a link

Got it, thank you.

Accepted the alternate PR #13069


Update Chinese translations

I will regularly submit PRs to update the Chinese translations, so there is no need to mention this PR in the changelog when the submitted translations correspond to the original text added in the current version.
Additionally, should this line be tempRefl = tempRefl.parent!;? Since refl and refl.parent keep unchanged inside the while scope.

Thanks!

I will regularly submit PRs to update the Chinese translations, so there is no need to mention this PR in the changelog when the submitted translations correspond to the original text added in the current version.

I do want to recognize your contributions, so will at least continue adding a thanks line :)

Additionally, should this line be tempRefl = tempRefl.parent!;? Since refl and refl.parent keep unchanged inside the while scope.

Good catch! Yes, it absolutely should be


add missing backup labels

Signed-off-by: Subbarao Meduri<EMAIL_ADDRESS>

/lgtm

/retest-required


Very high CPU usage on Wayland

Is your issue REALLY a bug?

[X] My issue is indeed a bug!
[X] I am not crazy! I will not fill out this form just to ask a question or request a feature. Pinky promise.

Is there an existing issue for this?

[X] I have searched the existing issues.

Is this issue related to iced?

[X] My hardware is compatible and my graphics drivers are up-to-date.

What happened?
Running the hello world example on Wayland results in 170% CPU usage. Running the same example on X11 results in ~0% CPU usage. Running wgpu's hello_triangle also results in ~0% CPU usage.
I've tried some basic profiling with samply but have been unsuccessful as my call stack is full of radeonsi_dri.so calls in the first 400ms after launch, and is then empty, so my profiling must be missing some calls.
What is the expected behavior?
I would expect very low CPU usage on Wayland when running the hello world example.
Version
crates.io release
Operating System
Linux
Do you have any log output?
No response

I'm tracking this in https://github.com/rust-windowing/winit/issues/3933.
In an attempt to debug this, I'm printing events from the winit event loop in winit/src/program.rs.
It seems that any event, such as the mouse being moved, causes a RedrawRequested. I think this seems wrong?

Could this issue be happening because pre_present_notify is not used in iced?

https://docs.rs/winit/latest/winit/window/struct.Window.html#method.pre_present_notify
https://github.com/rust-windowing/winit/issues/3933#issuecomment-2380853105

I'd note that it does segfault for me on exit, but it's likely an iced bug due to how it manages external Wayland libs it's using...

Thanks so much for having a look @kchibisov. That's odd. I'm using Sway.
My detailed steps to reproduce are:

Move mouse around
Window is redrawn a lot, and many Wayland events will be shown

And

Open window
Open another window fully covering it
Focus that second window
Window is redrawn a lot, and many Wayland events will be shown

Happy to do my best to continue debugging, just really not sure how to continue at this stage. Could iced be doing something to trigger a huge amount of Wayland events?
If it helps, I placed some println!() in winit, and I'm getting a lot of logs in this loop, which is repeating thousands of times for some events: https://github.com/rust-windowing/winit/blob/master/src/platform_impl/linux/wayland/event_loop/mod.rs#L210

Which sway version is that?

1.9

Do you have something else running along your app? Maybe some clipboard manager?

Not that I can think of. I'd be happy if the issue was on my end, but some other people have reacted with 👍🏻 above too, hmm…

Also, I'm testing with iced from git and your app using that iced version, is that the same thing you're testing?

I get the issue with both:
iced = { version = "0.13.1", default-features = false, features = ["wgpu"] }

and:
iced = { git = "https://github.com/iced-rs/iced", features = ["wgpu"], default-features = false }

If it helps, I placed some println!() in winit, and I'm getting a lot of logs in this loop, which is repeating thousands of times for some events: https://github.com/rust-windowing/winit/blob/master/src/platform_impl/linux/wayland/event_loop/mod.rs#L210

The loop can only repeat if and only if you're using Poll or you're getting spammed with events from compositor due to e.g. other threads waking up it. But the Wait behavior will just call to epoll waiting for something to appear, it won't issue any Wayland requests since the sync is never requested here.
From what I can see in the short snippet of logs, something asks for wl_display.sync, which means something calls roundtrip to the display server or does so explicitly. Winit can not call this during the regular loop operation and only does so once you create the loop or window, and only once, so it rules it out. smithay-clipboard can not do so as well if you're using 0.7.0+, which iced does).
So what is left is mesa (I'm really assuming that you're using it and not nvidia here)? And there're certainly ways to reach stuff like that from within mesa, but you should never wake up due to that because winit won't give you the control flow at all and you can not touch mesa's stuff unless you actually call something like eglSwapBuffers(any other code path won't lead to wl_display_sync).
Are you using Vulkan or EGL with your wgpu btw? Vulkan is more proof to stuff like that from what I can see within the mesa code.
I'd also suggest to post the entire WAYLAND_DEBUG=1 log from when it starts to busy loop for you.

Here's a full log. I've truncated the repetitive parts since my log got to 200,000+ lines after running for less than a second.
https://paste.sr.ht/~vladh/e0205d552587f138c49200f60b1cdeb28755400b

The loop can only repeat if and only if you're using Poll or you're getting spammed with events from compositor due to e.g. other threads waking up it. But the Wait behavior will just call to epoll waiting for something to appear, it won't issue any Wayland requests since the sync is never requested here.

As far as I've been able to tell, iced is only using Wait, but I might be wrong?

So what is left is mesa (I'm really assuming that you're using it and not nvidia here)?

Yep.

smithay-clipboard

Just as a note, I've disabled smithay-clipboard, to make sure that's not contributing to the issue.

Are you using Vulkan or EGL with your wgpu btw? Vulkan is more proof to stuff like that from what I can see within the mesa code.

Looks like EGL is being used, I could try Vulkan.
My forks are here, if it matters (though keep in mind my issue occurs just the same on upstream):

https://github.com/vladh/iced/tree/silly-prints
https://github.com/vladh/winit-iced

Looks like EGL is being used, I could try Vulkan.

Yeah, would suggest to try Vulkan. Also ensure that all the deps are as recent as they could.
Like I really don't see who can issue this wl_display.sync since the only function that does so in libwayland-client is roundtrip, and the only one in wayland-rs is also a roundtrip, however mesa will do so for every swap_buffers call, but you don't seem to be doing so?
Anyway, I'd assume that with plain window example in winit it doesn't happen?

Anyway, I'd assume that with plain window example in winit it doesn't happen?

Yep, the issue does not occur when running winit/examples/window.rs.

Yeah, would suggest to try Vulkan.

Just tried running with WGPU_BACKEND=vulkan, and the issue still persists. The logs don't confirm that Vulkan is being used, but they don't say egl anymore, so I'm assuming Vulkan is being used.

If you update the winit fork up to 0.30.5 does it still happen?

If you update the winit fork up to 0.30.5 does it still happen?

Yep. :(

Does this issue happen with wgpu examples? I have a feeling that whatever does wl_drm stuff is the issue, since it's 99% that it's not mesa, since all its queues are named(unless things were built against different libwayland versions on your system???) and winit can not do that as well, since usually wl_drm is used by mesa.
Or you're giving me log from something other than your simple oneliner with counter.

Does this issue happen with wgpu examples? I have a feeling that whatever does wl_drm stuff is the issue, since it's 99% that it's not mesa, since all its queues are named(unless things were built against different libwayland versions on your system???) and winit can not do that as well, since usually wl_drm is used by mesa.

Running wpgu/examples/src/hello_triangle doesn't cause the issue.

Or you're giving me log from something other than your simple oneliner with counter.

To be specific, the log I posted above comes from running iced-hello-world like this:
WAYLAND_DEBUG=1 cargo run > /tmp/log 2>&1

To be specific, the log I posted above comes from running iced-hello-world like this:

That's what I've used as well and I don't have any issue with it using the latest git of iced.
The wl_drm is coming from the Vulkan in mesa, it's just coming from the default queue, so if you were running on EGL you wouldn't have wl_drm at all in the logs.
The best way forward is probably attach with gdb and figure out who is calling the wl_display.sync for you, once we know it should be easy to fix.

Got it, will investigate — thank you again.

The results are, uhh, not immediately clear to me:
[4202091.511]  -> wl_display#1.sync(new id wl_callback#72)
gdb.error: Cannot convert value to long.
[Switching to Thread 0x7fffa7e006c0 (LWP 20754)]

Thread 54 "iced-hello-worl" hit Breakpoint -4.2, wl_closure_send (closure=0x7ffed8000cc0, connection=0x55555759c370) at ../wayland-1.23.1/src/connection.c:1436
1436		size = serialize_closure(closure, buffer, buffer_size);
(gdb) bt
#0  wl_closure_send (closure=0x7ffed8000cc0, connection=0x55555759c370) at ../wayland-1.23.1/src/connection.c:1436
#1  wl_proxy_marshal_array_flags (proxy=proxy@entry=0x7ffed8001680, opcode=opcode@entry=0, interface=interface@entry=0x7ffff7fbcb00 <wl_callback_interface>, version=version@entry=0, flags=flags@entry=0, args=args@entry=0x7fffa7dffa80)
    at ../wayland-1.23.1/src/wayland-client.c:934
#2  0x00007ffff7fb73bb in wl_proxy_marshal_flags (proxy=proxy@entry=0x7ffed8001680, opcode=opcode@entry=0, interface=interface@entry=0x7ffff7fbcb00 <wl_callback_interface>, version=0, flags=flags@entry=0) at ../wayland-1.23.1/src/wayland-client.c:857
#3  0x00007ffff7fb745c in wl_display_sync (wl_display=0x7ffed8001680) at src/wayland-client-protocol.h:1084
#4  wl_display_roundtrip_queue (display=0x55555759c1c0, queue=0x555557bba8c0) at ../wayland-1.23.1/src/wayland-client.c:1440
#5  0x00007fff877eb802 in ?? () from /usr/lib/amdvlk64.so
#6  0x00007fff877eb8d5 in ?? () from /usr/lib/amdvlk64.so
#7  0x00007fff877f6024 in ?? () from /usr/lib/amdvlk64.so
#8  0x00007fff8785c7d1 in ?? () from /usr/lib/amdvlk64.so
#9  0x00007ffff7d1439d in start_thread (arg=<optimized out>) at pthread_create.c:447
#10 0x00007ffff7d9949c in __GI___clone3 () at ../sysdeps/unix/sysv/linux/x86_64/clone3.S:78
(gdb)

Oh, could you try with radv driver and not amdvlk one?

Oh, could you try with radv driver and not amdvlk one?

Ahh, that fixed it! :)
I'm simultaneously very grateful for your help, and very confused as to what the issue is.

The issue is that driver(amdvlk) calls wl_display.sync, which will make compositor to reply(write to socket) meaning that everyone polling the fd will wake-up with read(winit, smithay-clipboard, amdvlk). So winit read e.g. Ok(0) (means that nothing was queued to its queue) and went back to sleep, (smithay-clipboard was disabled, but it'll do the exact same thing as winit), and amdvlk, which was calling wl_display_sync again, causing everything to repeat.
Once we've switched to radv it started using mesa's WSI and it's not doing anything like that unless you explicitly ask for something that involves e.g. drawing/surface creation, etc from what I can see.
That's also the reason why I've asked you about nvidia(since I'd know where to look at for other threading doing operations around wayland), but I wasn't expecting amdvlk... But it kind of started making sense once some queues in mesa were named but others don't (where mesa names all of them and mesa is usually rebuild all-together by distros once it needs it).
So, you should generally bring it to amdvlk, since radv works fine here and the issue is clearly due to amdvlk trying to sync something(I'm not sure what though, it doesn't send anything else...). Like you usually sync operations you want to complete, like get_registry, etc, etc.

Got it, thanks so much @kchibisov, I would have wasted many days without your help!
I am still seeing 10% CPU usage when moving my mouse, but that seems to be a different issue, so I'll close this.

I am still seeing 10% CPU usage when moving my mouse, but that seems to be a different issue, so I'll close this.

yeah, could be just debug build being slow or iced doing a lot of updates, in winit it's like 0 for me since we just forward things.


add a small value to all edge scores

Right now, BTE reports a score for each result that is the sum of the semmeddb NGD scores for each edge in the result.  In cases where the NGD score(s) are all zero (which occurs when semmed does not report any publications that co-mention the two concepts), then the overall result score is zero.
I would like to change this behavior to add a small score for every edge in the result.  The rationale is two-fold:

the ARAX UI currently returns n/a when the score is zero, leading to some confusion
from a user perspective, a zero score doesn't make sense, since the fact that BTE retrieves the edge is alone worth something

So to start, I propose adding a value of 0.1 to the NGD score for every edge.

implemented in https://github.com/biothings/bte_trapi_query_graph_handler/commit/62b4ea17af9ab12369ac8e698a7a630d2da961ea

From today's lab meeting:
Jackson implemented adding 0.1 to each result (aka 0.1 became the baseline) above.
We discussed the wording of the original post and clarified that AS actually asked for adding 0.1 * (number of edges in result) to the current score.

Other notes:

The current score is the sum of pairwise NGD scores from semmeddb, where the pairs come from the UMLS IDs of the result nodes. (number of pairs) =/= number of edges in the result because each result node can have > 1 equivalent UMLS ID
Related to this issue of custom weighing. We could increase / decrease scores in the figure based on what the edge came from

Behavior corrected by https://github.com/biothings/bte_trapi_query_graph_handler/commit/e81dee9ba5710dc8123e37d28b21bba701770678
Leaving issue open until deployment to prod, whoops :P

Deployed to prod 🚀


Universal server side rendering

What kind of change does this PR introduce? (check one with "x")

[x] Bugfix
[x] Feature
[ ] Code style update (formatting, local variables)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] CI related changes
[ ] Other... Please describe:

What is the current behavior? (You can also link to an open issue here)
Any references to Window, Document, MouseEvent, KeyboardEvent cause errors.
https://github.com/swimlane/ngx-datatable/issues/173
What is the new behavior?
Similar to the comment here..
https://github.com/swimlane/ngx-datatable/issues/173#issuecomment-295388147
I've gone through all references and attempted to create a suitable workaround when the mentioned references are used.
Does this PR introduce a breaking change? (check one with "x")

[ ] Yes
[x] No

If this PR contains a breaking change, please describe the impact and migration path for existing applications: ...
Other information:
Open to suggestions if anyone can suggest better approaches to my workarounds.

Doesn't typescript handle the MouseEvent and KeyboardEvent types automatically?

If you look at the transpiled code
https://github.com/swimlane/ngx-datatable/blob/master/release/index.js#L3809
There are dozens of mentions of MouseEvent and KeyboardEvent, all these are not defined.

What's the status on this PR? We are looking for the same change.

Merged.

@amcdnl humm... looks like the build had an issue, some sort of merge issue.

@stupiduglyfool This has now been merged into version 9.3.0 but on the universal side of things I'm still getting the following error:

/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:9038
var testStyle = document !== undefined ? document.createElement('div').style : undefined;
                ^

ReferenceError: document is not defined
    at Object../src/utils/prefixes.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:9038:17)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/utils/index.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:8812:10)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/components/datatable.component.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:5325:15)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/components/index.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:7307:10)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/datatable.module.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:7471:20)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)

/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:9038
var testStyle = document !== undefined ? document.createElement('div').style : undefined;
                ^

ReferenceError: document is not defined
    at Object../src/utils/prefixes.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:9038:17)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/utils/index.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:8812:10)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/components/datatable.component.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:5325:15)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/components/index.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:7307:10)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)
    at Object../src/datatable.module.ts (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:7471:20)
    at __webpack_require__ (/usr/src/project/node_modules/@swimlane/ngx-datatable/release/index.js:35:30)

Any suggestions?

@stupiduglyfool and @amcdnl I've found a solution. I'll issue a bug and a pull request later today.

Using 9.3.0, still experience the same issue just like @rsparrow .
Using with @angular/service-worker

@rsparrow I think all document !== undefined and window !== undefined whould to be changed to typeof document !== 'undefined'  and typeof window !== 'undefined'

@mattma My fixes didn't get packaged into a release until 9.3.1...

by updating to 9.3.1, it works as expected. Still waiting on 10.0.0 release for the immutability data.
I am using ngrx and ngrx-store-freeze module. Due to the library modifying the original dataset with $$, I have to disable the storeFreeze. I believe @amcdnl will fix it by ``10.0.0` release.
Is there a timeline on when the feature will drop?
Thinking of switching to Angular CDK table module. i will be a quick bit of code refactor that I hope I can avoid with the future release of the library.


Link to command line utilities v15?

Shouldn't there be a link to the install page for command line utilities v15 in the "command-line tools" section? Right now it only discusses v11 and v13, which seems confusing.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 4123780b-93ac-e188-87a8-ffd4d5d37aa3
Version Independent ID: fec60355-b6d1-1c41-bcd5-d202e0d09d90
Content: System Requirements, Installation, and Driver Files - SQL Server
Content Source: docs/connect/odbc/windows/system-requirements-installation-and-driver-files.md
Product: sql
Technology: connectivity
GitHub Login: @David-Engel
Microsoft Alias: v-daenge

@Avyncentia Thanks for the heads up. We also noticed this recently and it will be updated within the next couple of weeks as part of another set of changes in progress.
The update will link to https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility?view=sql-server-ver15.
Thanks,
David
#please-close


Rework plugin support [phab:T200]

Created by zarko at 2017-01-06 18:22:07:
We have two flavors of plugin for the C++ indexer (IndexerLibrarySupport and MetadataSupport). These have different lifetimes and are registered in different ways. We should normalize this.

zarko wrote at 2017-01-26 22:21:49:
Requirement: plugins should have a chance to initialize after a CU is typechecked. This is so they can check to see whether they apply to the CU in question; for example, the text proto plugin should only enable itself if it can find proto2::contrib::parse_proto::internal::ParseProtoHelper.

zarko wrote at 2017-01-27 01:16:56:
(Note that some plugins might also be interested in preprocessor events, which must be captured before typechecking.)


Consider make Timeline as statefull widget

Currently, thread line size is unknown.
It seems to get the size from global key.
So, consider it.

No need to do anymore.


trezor base wallets

With the trezor it is possible to have no password (the password being an extension of the seed). We can call it the base wallet. (and there is also a mode without password you can choose when you initialize the trezor).
If I create a trezor-wallet in electron cash, I can not get past the "password" entry unless I input something. So I can not use the base wallet in electron cash. I don't remember if this was also a problem in electrum.

this might help https://www.reddit.com/r/btc/comments/6s15m8/electron_cash_and_trezor/


Connet create a console

<!---   *** BEFORE SUBMITTING: PASTE CLIPBOARD HERE TO COMPLETE YOUR REPORT ***   ---!>

Met the problem when opening Spyder 5.1.5
"Your Python environment or installation doesn't have the spyder‑kernels module or the right version of it installed (>= 2.1.0 and < 2.2.0). Without this module is not possible for Spyder to create a console for you.

You can install it by running in a system terminal:

conda install spyder‑kernels=2.1"

I tried but didn't work.
 the spyder in conda is work.

The info of Spyder:
* Spyder version: 5.1.5 None
* Python version: 3.9.5 64-bit
* Qt version: 5.12.10
* PyQt5 version: 5.12.3
* Operating System: Darwin 21.1.0

Closing due to lack of response


Incorrect redirection when working with dynamic endpoints

Description:
When we click the arrow button, it redirects us to Runtime Configurations. Since the policies and sequences are moved to Policies section, this should redirect to that.

Affected Product Version:
4.1.0-alpha

Fixed with PR https://github.com/wso2/apim-apps/pull/209


TBI - exclude pnpm-lock.yaml from prettier formatting

Description
To reduce conflicts and allow for easier comparison of changes in dependencies and devDependencies, we should consider excluding file pnpm-lock.yaml from prettier formatting.
This could be achieved by adding the file to .prettierignore.
Value

Less merge conflicts
Simpler comparison of new or modified dependencies

Architecture Elaboration
n/a

Fixed with #717


Linking not working

I'm using react-native 0.63.3 version. Linking.canOpenURL("whatsapp://send?text=hello") not working.
if we try to open the above url its shows package is not install even though it is installed
this issue is only in android 30

Hello @chandrashekarioolabs.
I just try to reproduce the issue but it was working perfectly.
Attempt to reproduce
Create a default React Native app from scratch
npx react-native init example
Update package.json to your current version
-"react-native": "0.63.4"
+"react-native": "0.63.3"

Open Android SDK Google Pixel 2 with WhatsApp installed.
Start app
yarn start
Conclusion
The issue is not related to React Native directly as you can see. So please send us a link to a repo/ steps to reproduce.
Best regards!

Hello @chandrashekarioolabs.
I just try to reproduce the issue but it was working perfectly.
Attempt to reproduce
Create a default React Native app from scratch
npx react-native init example
Update package.json to your current version
-"react-native": "0.63.4"
+"react-native": "0.63.3"

Open Android SDK Google Pixel 2 with WhatsApp installed.
Start app
yarn start
Conclusion
The issue is not related to React Native directly as you can see. So please send us a link to a repo/ steps to reproduce.
Best regards!
please try this part of code Linking.openURL("whatsapp://send?text=hello") in android 11.

expected result it should open the what's app,

Exactly @chandrashekarioolabs
I tested this using the following Android Simulator:
Pixel 2 API 30
Android 11.0 (Google Play)

Exactly @chandrashekarioolabs
I tested this using the following Android Simulator:
Pixel 2 API 30
Android 11.0 (Google Play)

Linking. canOpenURL("whatsapp://send?text=hello")
sorry can test this method once. I think openURL is working fine but before that if we try to check whether the app is installed or not using the above line of code then its returning false

Hi @chandrashekarioolabs
I just tried
if(Linking.canOpenURL("whatsapp://send?text=hello")){
     console.log("WhatsApp is installed and should work!")
}

And it works perfectly.
I think what you should do is to create a repo/something with Expo Snack that can reproduce the issue. Unless it won't be easy to find out the real issue.
Have you tried running this on a real device with WhatsApp installed?

Hi @chandrashekarioolabs
I just tried
if(Linking.canOpenURL("whatsapp://send?text=hello")){
     console.log("WhatsApp is installed and should work!")
}

And it works perfectly.
I think what you should do is to create a repo/something with Expo Snack that can reproduce the issue. Unless it won't be easy to find out the real issue.
Have you tried running this on a real device with WhatsApp installed?

thanks franznkemaka for your reply.
onWhatsPress= async ()=>{
const res = await  Linking.canOpenURL("whatsapp://send?text=hello")
if(res){
console.log("WhatsApp is installed and should work!")
}else{
console.log("not working")
}
}
please check this part of code

Hi @chandrashekarioolabs
I just tried
if(Linking.canOpenURL("whatsapp://send?text=hello")){
     console.log("WhatsApp is installed and should work!")
}

And it works perfectly.
I think what you should do is to create a repo/something with Expo Snack that can reproduce the issue. Unless it won't be easy to find out the real issue.
Have you tried running this on a real device with WhatsApp installed?

thanks franznkemaka for your reply.
onWhatsPress= async ()=>{
const res = await Linking.canOpenURL("whatsapp://send?text=hello")
if(res){
console.log("WhatsApp is installed and should work!")
}else{
console.log("not working")
}
}
please check this part of code

Hi @chandrashekarioolabs
I'm keen to know how you finally solved this!

r

ok I will test it async and let you know

HI @chandrashekarioolabs
I just tested what you suggested and it works perfectly fine.
Here are some suggestions to fix this issue ASAP!

Try to create a repo here on GitHub where you can reproduce the issue. If you can't reproduce the issue then it would be difficult for the collaborators of RN to find it either.

Try to run your app on a real device and find out if it works or not

Share your build.gradle & app/build.gradle to find out how your app is configured

Step 1 is very important!
Hope it helps!

For me,
Linking.canOpenURL(url) is returning false for all tel: and mailto: urls.
Android 11
ReactNative: 0.63.4

https://stackoverflow.com/questions/62535856/intent-resolveactivity-returns-null-in-api-30

This is to do with the new package visibility rules in Android 11.
You'll need to add  to your AndroidManifest.xml
https://medium.com/androiddevelopers/package-visibility-in-android-11-cc857f221cd9

@chandrashekarioolabs @ausshadu  What are you guys android/build.gradle ?

Hello @chandrashekarioolabs @ausshadu,
I just checked it on Android SDK 30 and it doesn't work.
You guys didn't specify that.
So the issue is related to Android SDK 30

Solution
Add the following in your android/app/src/main/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example">

    <uses-permission android:name="android.permission.INTERNET" />

+    <queries>
+     <package android:name="com.whatsapp" />
+   </queries>

...

@tankers746 is of course right!
Hope it works. @chandrashekarioolabs @ausshadu can you check it out?

This appears to be related to a new requirement when targeting Android SDK 30 - fixable by https://developer.android.com/training/basics/intents/package-visibility-use-cases#check-browser-available

I also faced the same issue. However, found an alternative for WhatsApp. Instead of using whatsapp:// URL, I used web URL https://wa.me/?text=<url encoded text>. In this case, user is prompted to select Whatsapp / Chrome to open the URL. However, even if the user selects Chrome, he is automatically redirected to WhatsApp (if WhatsApp is installed on the device) or is asked to download Whatsapp.

For the record I had this issue when upgrading from API 29 to 30. I fixed it by using the following values in android/build.gradle:
    ext {
        buildToolsVersion = "30.0.2"
        minSdkVersion = 21
        compileSdkVersion = 30
        targetSdkVersion = 30
    }
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:3.5.4")
        classpath('com.google.gms:google-services:4.3.8')
        classpath 'com.google.firebase:firebase-crashlytics-gradle:2.7.1'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
    ```

    Then adding the following clause to `android/app/src/main/AndroidManifest.xml`, as mentioned in an earlier comment:
    ```
    <queries>
      <package android:name="com.mydomain.myapp" />
    </queries>
    ```

As a Javascript developer this sort of stuff is confusing but I'm happy to be past the issue.

I'm facing same issue for mailto and tel in android 11 (30).
for whatsapp i added

in AndroidManifest.xml  file, and whatsapp working.
how does tel and mailto working for andorid 11 (30)?

@franznkemaka what are the queries for tel and mailto in AndroidManifest.xml ?

i found solution for tel and mailto for android 11
add this in AndroidManifest.xml file between "queries" tags

working for gmail and google dailer app.

i found solution for tel and mailto for android 11 add this in AndroidManifest.xml file between "queries" tags package android:name="com.google.android.gm" package android:name="com.google.android.dialer" package write in tag
working for gmail and google dailer app.

Btw in order to avoid having to specify the email and dial apps, you can declare the intents instead:
      <intent>
        <action android:name="android.intent.action.SENDTO" />
        <data android:scheme="mailto" />
      </intent>
      <intent>
        <action android:name="android.intent.action.DIAL" />
      </intent>

My case Linking. canOpenURL("viber://chat?number=+380633639080"), it doesn't work on Samsung s10(android 11) device, it works fine on other android devices, for whatsapp it works fine.
I also added   but it still doesn't work.

Someone please help me

If someone  can't insert this solution because after that android doesn't compile anymore:

Solution
Add the following in your android/app/src/main/AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.example">

    <uses-permission android:name="android.permission.INTERNET" />

+    <queries>
+     <package android:name="com.whatsapp" />
+   </queries>

...

@tankers746 is of course right!
Hope it works. @chandrashekarioolabs @ausshadu can you check it out?

Try upgrading gradle like this: https://stackoverflow.com/a/67820136
Just upgrading gradle i made that queries work.
i hope i saved you a few hours and stress in debugging 🥰

For expo users add this in app.json:
{
  android: {
    intentFilters: [
      {
        action: 'SENDTO',
        data: [
          {
            scheme: 'mailto',
          },
        ],
      },
      {
        action: 'DIAL',
      },
    ]
  }
}

here's an expo config plugin that does what @veraldo mentioned:
// eslint-disable-next-line @typescript-eslint/no-var-requires
const { withAndroidManifest } = require('@expo/config-plugins')

function addIntentToQuery({ mod, intent }) {
  const r = { ...mod }
  if (!r.modResults.manifest.queries) {
    r.modResults.manifest.queries = [
      {
        intent: [],
      },
    ]
  } else if (!r.modResults.manifest.queries[0].intent?.[0]) {
    r.modResults.manifest.queries[0].intent = []
  }

  r.modResults.manifest.queries[0].intent.push({
    action: [
      {
        $: {
          'android:name': intent.actionName,
        },
      },
    ],
    ...(intent.dataScheme && {
      data: [
        {
          $: { 'android:scheme': intent.dataScheme },
        },
      ],
    }),
  })
  return r
}

const withAndroidMailPhoneQueries = (config) => {
  const r = withAndroidManifest(config, (mod) => {
    let modified = addIntentToQuery({
      mod,
      intent: {
        actionName: 'android.intent.action.SENDTO',
        dataScheme: 'mailto',
      },
    })
    modified = addIntentToQuery({
      mod,
      intent: {
        actionName: 'android.intent.action.DIAL',
      },
    })
    return modified
  })
  return r
}

module.exports = withAndroidMailPhoneQueries

then add in your app.json or app.config.js:
  plugins: ['./config-plugins/withAndroidMailPhoneQueries']

Modify this file android/app/src/main/AndroidManifest.xml file
<manifest ...>

hi @pushkar8723 @geraintwhite @kylanhurt @ausshadu @iway1
I am using the react native version 0.71.3 and android v 14.0 , i am using Linking.openURL to open the terms and privacy policy in my app in android but it not working in android 14 but working fine in android v 11. any suggestions?? how can i fix it? if anyone can help me out this?
Thnks.


Remove Example folder & its related scripts

The example folder is removed in order to make it compatible with windows machine

@KiruthikaJeyashankar something looks off in this PR, maybe you need to checkout from release-0.3.x branch and push the deletion of the files from examples directory in a new branch which is checked out from release-0.3.x branch


button-has-type does not allow for dynamic assignment

My Button component allows to override the type arg but button-has-type is still complaining about. It seems it does not validate the real AST path of prop assignment
Button = ({ type = "button" }) => <button type={type}/>
Button.propTypes = {
  type: PropTypes.arrayOf(["submit", "button", "reset"]),

Does the plugin have access to the propTypes and can match that the only possible allowed values are within the rules allowed values and that the default type is also set to something specific, like in my example to button?

Stateless React Components should not use JS default values; that needs to be a defaultProp.

When you say "should not" where does this recommendation come from? Is this a lint suggestion or are there language/runtime implications?

defaultProps are introspectable by React and other tools; default arguments are not. #1184 has more discussion on it.

Regardless of the defaultProps discussion, something’s buggy with this rule.
The following code:
<button type={submit ? "submit" : "button"} onClick={onClick}>
  {children}
</button>

… gives the following lint error:
"null" is an invalid value for button type attribute

Surely it shouldn’t say "null" there?

@lydell very true! the ternary case would probably have to be explicitly handled; however, I'd say that the rule should be forcing a single, hardcoded type value - and that you should conditionally render two different elements if you want two types.

I agree this rule is handled poorly. defaultProps with a type of either button, reset, or submit should not trigger.
A work-around is to just disable the rule temporarily:
/* eslint-disable react/button-has-type */
return <button {...passProps} className={buttonClassNames} type={type}/>;
/* eslint-enable react/button-has-type */

The type should not be dynamic, full stop.
If you want the type to be one of the 1, 2, or 3 options, use if/else and hardcode those three.

Why shouldn't it be dynamic? Can you explain please?

I am also interested in "why" it should be dynamic (because dev typo in props?).  Seems weird to duplicate the button three times for a hardcoded value.
htmlType: PropTypes.oneOf(['button', 'submit', 'reset']),
static defaultProps = { htmlType: 'button' }
<button type={htmlType || 'button'} />

Only twice, since reset buttons are a terrible UX pattern :-)

It shouldn’t be dynamic because all three button types have wildly different semantics - i can’t conceive of when you’d want a submit button randomly changing to be an entirely different kind of button, or vice versa.
A submit button must be inside a form; a regular button must have some kind of javascript behavior - these are different components/elements, not just two flavors of the same thing.

Isn't that true for input types as a whole? Not just specific button?  Why wouldn't this give an error as well?
type: PropTypes.oneOf(['text','email','tel','password','url','search','number','date','range','file']),
static defaultProps { type: 'text' }
<input type={type || 'text'} ... />

Yes, that is certainly true! However, the primary point of the rule is to ensure that button is used safely.
If we wanted to make a generic rule that governed input types, that would also force them to be static (and I'd encourage you not to make a non-private generic input component that takes "type" as a parameter, for the reasons I mentioned above)

In a REST level 3 kind of app where the app state is completely controlled by the server, the server dictates the fields of a form. That's a valid scenario for when the button type needs to be dynamic. Since hardcoding the now known button types defeats the entire reason for going REST level 3, which is to have an evolutionary API, which can change in the future without touching the server.
But since REST level 3 apps are such a rare breed as of now I'll just disable this rule that's supposed to make the button type usage "safe".

I'm not familiar with any HTML 6 nor any plans for it in the near or far future, nor any plans for any new button type ever. When one appears, the server shouldn't be controlling that - it should only be explicitly supported in the UI.

I think we can agree to disagree on that so I'll close this issue here. A workaround was mentioned that works just fine.
Thanks for all the work on this plugin!

@pke which workaround works to you?

I don't remember @vaske :/ Maybe I just disabled the rule.

@pke yeah I did the same ;)

Yep, I disabled the rule too.
const Button = ({ type }) => {

  /*
   * JSX line disabled for ESLint due to questionable rule implementation
   */

  return (
    // eslint-disable-next-line react/button-has-type
    <button type={type} className="button">Test</button>
  );
};

Button.propTypes = {
  type: PropTypes.string,
}

Button.defaultProps = {
  type: 'button',
}

@josephshambrook at the least, make a propType that used oneOf, so you’re not just wildly accepting any random string (or worse, “reset”).
Using an override comment inside a component where you’re knowingly violating a best practice is indeed the proper way to handle it.

Since propTypes are not used in production builds anyway such safeguards against "reset" type should happen in code, not in propTypes.

If your propType warnings are properly set up to fail your tests, there’s no need to check it in production.

Just to add, the above "solution" doesn't work for TypeScript.

@mattdell I did the same ;)

A little gross IMO, but I'm doing the "disable the rule" thing.

defaultProps will be deprecated on function components.
I have this use case:
function Button({children, type = 'button'}) {
  return <button type={type}>{children}</button>;
}

At least an opt-in for dynamic assignment would be great. The only option is for me to disable the rule.

@amannn the other option is to use an if/else with a hardcoded type, which would help ensure you’re using the correct type, and not using reset.

Yep, that's true. To me that's more the job of propTypes or a type system though.

It shouldn’t be dynamic because all three button types have wildly different semantics - i can’t conceive of when you’d want a submit button randomly changing to be an entirely different kind of button, or vice versa.

Commonly people create a Button element of which it's main purpose is to style a button and handle all the different states of the button. This button could then be used in a form with the type 'submit'. Another use-case would be a button with an onClick handler. This button would need the type 'button'. I'm pretty sure these two use-cases are spec compliant.

@Bram-Zijp sure. and the implementation of that Button element can still use hardcoded types with an if/else, or, use an eslint override comment.

@ljharb It can, it will look hacky and it shouldn't have to considering the legitimacy off the use-cases.

I don’t agree; an eslint override comment is the appropriate non-hacky solution to a false positive eslint warning.

If your propType warnings are properly set up to fail your tests, there’s no need to check it in production.

OT: Excuse me, but that assumption is nonsense. Any input not in the control of the code should be checked for validity. Relaying on a dev mode only feature for stabilising an API seems risky to me.
And with the deprecation of defaultPropTypes for stateless components your recommendation for "fixing" this ill rule discussed here, outdated very quickly. And whoever followed this advise will have to fix some tests soon I guess?
But there you go. This rule could have long had a config option to allow the behaviour some users would like this rule to have. Would you accept a PR for a rule option?

The assumption isn’t nonsense, it’s the justification for PropTypes not running in production, and for type systems not compiling to runtime checks. If you don’t agree, that’s also fine, but then you’ll be writing your runtime checks in addition to compile/test-time checks, if you’re that concerned with correctness.
Deprecating defaultProps for SFCs in favor of JS function defaults doesn’t have any impact on this discussion.

but then you’ll be writing your runtime checks in addition to compile/test-time checks, if you’re that concerned with correctness.

Every decent software engineer should be that concerned with correctness. And no static typing or ASSERT will prevent invalid input. But I'm afraid this kind attitude is one the reasons there is so many sloppy insecure software released today.
On the other hand you did not answer my question if the team would accept a PR with the option to enabled dynamic type assigned for the many reasons voiced and voted here by users of the plugin? The option would default to the current restrictive behaviour but could be relaxed.

How would using this option be different than simply disabling the rule, or using an override comment? The rule, despite it's name, does not merely care of your button has a type attribute, the point is to assert it's a correct one - which your option does not ensure.

The rule, despite it's name, does not merely care of your button has a type attribute,

Perhaps the name should change then to be more indicative of what it's actually doing.
A codebase I'm working on now has many different groups of buttons, and nearly all buttons are generated from an array of "object"s and then props are put onto the button as we iterate over the object.
There are definitely valid use cases to only want to check the existence of non-empty type property on a button.
If you don't want to support this that's alright but

The rule, despite it's name,

Clearly indicates a problem and should be looked at it. It's clearly misleading.

This thread is hilarious. Thanks for all your input @ljharb and contributions to open source, but you are enforcing your opinions on everyone else and saying 'deal with it'. Eslint is designed to be non-opinionated (unless you are using opinionated plugins/presets) and customisable to the users' needs. Here you are saying 'I don't agree with everyone else so I'm not going to give them the option to do what they need to do, tough luck'.

You are more than welcome to make your own plugin that does whatever you want; this plugin (like every other) is allowed to be as opinionated as its maintainers want to be.

You see, that's exactly the answer I was afraid would appear any time in this thread.
Many users get confused by the rule. Judging by all your arguments (against "reset" types) the rule should maybe have been named button-has-correct-type and correct means one and foremost "not reset". All the use cases users presented are basically dismissed by you by asking the users to change their code (into needlessly convoluted if/else structs) just to get rid of the false positive.
Responding to valid concerns regarding the usage of a rule should not be countered by "you can fork" or lecturing users on their code.
I am beyond this, as I do currently not work with react anymore but this "you can fork" just sounded rude to me considering all the above constructive feedback on this very opinionated rule.
But then maybe its also not easily possible to change the rule to support dynamic types ("reset" not included) even if the maintainers wanted to.

@pke my response saying to fork was to "eslint is supposed to be unopinionated", any package can be as opinionated as it wants to - this plugin is opinionated like every other.
I totally agree that changing the rule name would help, but the churn of doing that isn't worth it.
It's not at all practical and possible to support dynamic types; that's just the nature of JavaScript itself (it could be supported in extremely limited ways that would require massive complexity, but that wouldn't be sufficient for virtually any of the use cases folks have complained about)

the ternary case would probably have to be explicitly handled

This sounds like a good solution to me. Would a PR adding this be welcome?

@Hypnosphi sure, seems harmless enough, as long as both branches in the ternary were static strings.

I'm having the same Eslint issue, hence I found this page.  Much of the conversation essentially claimed that buttons should be hard-coded due to the different 'schemas' needed for different button types. I came up with this:
export const Button = ({ className, type, ...props }) => {
  Button.defaultProps = { className: '', type: 'button' };

  /* eslint-disable react/button-has-type */
  return (
    <button
      className={['button', className].join(' ')}
      type={type}
      {...props}
    />
  );
};

As you can see, I was forced to disable the linter here, but as far as dynamic, this is about as good as I could make it to support every style of button via overloading, including if you wanted to add additional class names.
I've only been coding for about 2 months, so any feedback (positive AND constructive) would be greatly appreciated!

@musicMan1337 do you ever use <Button type="submit" />? If not, you can just remove the type prop from Button and specify <button type="type" /> explicitly

@musicMan1337
export const Button = ({ className, type, ...props }) => {
  if (type === 'button') {
    return (
      <button
        className={['button', className].join(' ')}
        type="button"
        {...props}
      />
    );
  }
  if (type === 'submit') {
    return (
      <button
        className={['button', className].join(' ')}
        type="submit"
        {...props}
      />
    );
  }
};
Button.propTypes = {
  className: PropTypes.string,
  type: PropTypes.oneOf(['button', 'submit']),
};
Button.defaultProps = { className: '', type: 'button' };

There is never a need to dynamically specify a Button's type (and you never ever want a "reset" button, so those two are sufficient).

To preface, I'm not the best with forms!
@Hypnosphi I've found in React I tend to only use submit buttons when I actually need a real button. If I'm just testing functionality with dummy buttons then it doesn't matter, then again I'm sure you can do wonderous effects using buttons!
@ljharb It's interesting how you feel about the "reset" type, I'll have to look into that some more since I have used them in other small projects, so thanks for the nod! And as for the "if" statement, I definitely see the logic, but I personally find it very cumbersome to repeat code in that way, particularly from a readability perspective.
Also, I didn't know you could put default props outside of the component, I'll have to play with that, thanks!

@musicMan1337 you can only defaultProps outside the component. Your statement doesn’t take effect until after the component has been rendered.

@ljharb Oh nice that's good to know! I was being misdirected by my linter since the error turns off both ways (I guess in that specific case it just scrubs the whole file without scope?).
Definitely need more practice with React, most of my time has been spent on backend stuff. Also I now clearly understand the taboo of the "reset" button type!

type ButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {
  /**
   * enforcing the type attribute to be required and limited to "submit" and "button"
   */
  type: 'submit' | 'button';
};

export const Button = (props: ButtonProps) => {
  // see ButtonProps
  // eslint-disable-next-line react/button-has-type
  return <button {...props} />;
};

const Btn = () => <Button />; // <- ts error

my 2cents on this.

fix it please

It worked for me:
import { type ButtonHTMLAttributes, type FC } from 'react';

export const Button: FC<ButtonHTMLAttributes<HTMLButtonElement>> = ({
  children,
  ...props
}) => {
  return (
    <button type="button" {...props} className="myCustomClass">
      {children}
    </button>
  );
};