NullPointerException Thrown Trying to Auth Client

Describe the bug
When trying to authenticate a client connection to the broker, getting a NullPointerException.
2020-12-11 00:03:13,999 DEBUG o.e.j.u.t.ReservedThreadExecutor [pulsar-web-46-16] ReservedThreadExecutor@562457e1{s=1/1,p=0}@b5fb1d size 1 > capacity
2020-12-11 00:03:14,001 DEBUG o.a.p.c.p.PulsarDecoder [pulsar-io-26-14] [/<IP_ADDRESS>:59258] Received cmd CONNECT
2020-12-11 00:03:14,001 DEBUG o.a.p.b.s.ServerCnx [pulsar-io-26-14] Received CONNECT from /<IP_ADDRESS>:59258, auth enabled: true: has original principal = false, original principal =
2020-12-11 00:03:14,001 WARN o.a.p.b.s.ServerCnx [pulsar-io-26-14] [/<IP_ADDRESS>:59258] Unable to authenticate java.lang.NullPointerException
	at org.apache.pulsar.broker.authentication.AuthenticationProviderTls.authenticate(AuthenticationProviderTls.java:75)
	at org.apache.pulsar.broker.authentication.OneStageAuthenticationState.<init>(OneStageAuthenticationState.java:46)
	at org.apache.pulsar.broker.authentication.AuthenticationProvider.newAuthState(AuthenticationProvider.java:76)
	at org.apache.pulsar.broker.service.ServerCnx.handleConnect(ServerCnx.java:716)
	at org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:167)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191)
	at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1486)
	at io.netty.handler.ssl.SslHandler.decodeJdkCompatible(SslHandler.java:1235)
	at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1282)
	at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:498)
	at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:437)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:276)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:357)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:379)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:365)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919)
	at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
	at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475)
	at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378)
	at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989)
	at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
	at java.lang.Thread.run(Thread.java:748)

To Reproduce
Steps to reproduce the behavior:

Generate a CSR and Private Key using the following documentation:
https://pulsar.apache.org/docs/en/security-tls-authentication/#create-client-certificates

#openssl.conf
[ req ]
default_bits           = 2048
distinguished_name     = req_distinguished_name
prompt                 = no
default                = sha256
req_extensions         = req_ext

# distinguished_name
[ req_distinguished_name ]
stateOrProvinceName    = "FL"                                           # ST=
countryName            = "US"                                           # C=
localityName           = "Delray Beach"                                 # L=
organizationName       = "mParticle"                                    # O=
organizationalUnitName = "ops"                                          # OU=
commonName             = "services.pluster-01.example.com"    # CN=
emailAddress           =<EMAIL_ADDRESS>                          # CN/emailAddress=

[ req_ext ]
extendedKeyUsage=serverAuth,clientAuth

Generate a Computer-ClientAuth Certificate using Active Directory Certificate Services CA:

Configure client.conf:

# client.conf
webServiceUrl=https://pulsar-pluster-01.example.com:8443/
brokerServiceUrl=pulsar+ssl://pulsar-pluster-01.example.com:6651/
authPlugin=org.apache.pulsar.client.impl.auth.AuthenticationKeyStoreTls
authParams={"keyStoreType":"JKS","keyStorePath":"/opt/pulsar/tls/client.keystore.jks","keyStorePassword":"XXXXXXXXXXXXXXX"}
tlsAllowInsecureConnection=false
tlsEnableHostnameVerification=false
useKeyStoreTls=true
tlsTrustStoreType=PEM
tlsTrustStorePath=/opt/pulsar/tls/truststore.jks
tlsTrustStorePassword=XXXXXXXXXXXXXXX
useTls=true

Attempt to produce to the broker:

# producer
sudo /opt/pulsar/bin/pulsar-perf produce persistent://public/default/test-partitioned-perftool --batch-max-messages 1

22:30:33.866 [pulsar-client-io-2-1] INFO  org.apache.pulsar.client.impl.ConnectionPool - [[id: 0x1327459b, L:/<IP_ADDRESS>:59344 - R:pulsar-pluster-01.example.com/<IP_ADDRESS>:6651]] Connected to server
22:30:33.883 [pulsar-client-io-2-1] WARN  org.apache.pulsar.client.impl.ClientCnx - [id: 0x1327459b, L:/<IP_ADDRESS>:59344 - R:pulsar-pluster-01.example.com/<IP_ADDRESS>:6651] Received error from server: Unable to authenticate
22:30:33.883 [pulsar-client-io-2-1] WARN  org.apache.pulsar.client.impl.ClientCnx - [id: 0x1327459b, L:/<IP_ADDRESS>:59344 - R:pulsar-pluster-01.example.com/<IP_ADDRESS>:6651] Received unknown request id from server: -1
22:30:33.884 [pulsar-client-io-2-1] INFO  org.apache.pulsar.client.impl.ClientCnx - [id: 0x1327459b, L:/<IP_ADDRESS>:59344 ! R:pulsar-pluster-01.example.com/<IP_ADDRESS>:6651] Disconnected

Expected behavior
Client should authenticate and produce messages.
Desktop (please complete the following information):

OS: Amazon Linux 2 (Both client and server)

Additional context
@sijie has mentioned that this appears to be a failure to extract the common name: https://apache-pulsar.slack.com/archives/C5Z4T36F7/p1607707789124200?thread_ts=1607446610.061600&cid=C5Z4T36F7
# Confirmed with Openssl that CN is in the Subject line
[ec2-user@monitoring tls]$ openssl x509 -in pulsar-client-certificate.cer -text -noout | grep 'Subject:'
        Subject: C=US, ST=FL, L=Delray Beach, O=Company, OU=ops<EMAIL_ADDRESS>

Did some digging on this.  The issue is because the certs array is null, and that's null because Java threw a SSLPeerUnverifiedException which the getter caught and ate (and returned null).  I'd argue that's confusing and a log line should be added where that exception is eaten so it's obvious at least why the connection is being refused (or even don't eat that exception at all, and just bubble it back to the caller; it will just NRE on it anyhow currently).
After checking our trust store configurations, everything seemed to be valid, so why Java would not trust our client certificate is another mystery.  One thing we changed which we are currently testing as a workaround is we changed the broker's tlsRequireTrustedClientCertOnConnect from false to true.  With it set to true, a test that was persistently failing before now succeeds, but it's non-obvious from the setting or documentation that such a setting should be required for client certs to work at all.

Also remarking that the parameter specified in the keystore docs requireTrustedClientCertOnConnect is different than the one in the default broker config tlsRequireTrustedClientCertOnConnect https://pulsar.apache.org/docs/en/security-tls-keystore/#broker-authentication-config.
I don't see either mentioned in the tls docs https://pulsar.apache.org/docs/en/security-tls-authentication/#enable-tls-authentication-on-brokers.

@Chickenzilla your analysis is correct. I meant to ask in the slack channel but got busy with different things.
We would improve the error handling to make the error more clearly.
Regarding the documentation concerns, I am looping @Jennifer88huang and @Huanli-Meng to help improve the documentation.

Yeah, the docs of https://pulsar.apache.org/docs/en/security-tls-transport/#broker-configuration is old and will be updated soon.
The issue is with your TLS broker conf, you can see https://github.com/apache/pulsar/blob/459ba1ffd12d1aa20cbaea680cf396550314fd3c/pulsar-broker/src/test/java/org/apache/pulsar/client/api/TlsProducerConsumerBase.java#L62-L74 for the sample config.
brokerServicePortTls=<port-1>
webServicePortTls=<port-2>
tlsCertificateFilePath=<tls-server-cert-file-path>
tlsKeyFilePath=<tls-server-key-file-path>
tlsTrustCertsFilePath=<tls-trust-cert-file-path>
# this config is necessary
tlsRequireTrustedClientCertOnConnect=true
tlsProtocols=<tls-protocols>

And tlsEnabled is a deprecated config that is redundant when pls port is configured.

@evfurman and @Chickenzilla Thanks for raising the issue. We should write it more clear in the doc.

Just as @BewareMyPower said, tlsEnabled is deprecated, you can use  webServicePortTls and brokerServicePortTls instead, see configuration reference: tlsEnabled.
To solve your current issue, I've add the tlsRequireTrustedClientCertOnConnect configuration and usage in #9095, hope it helps you. Any further issue, feel free to comment in this PR.
When checking the issue here, I went through your steps and found that it's not easy to find all needed info at one place for the TLS content, I'll  make a plan and further improve this part later.


right-side navbar Unable to locate in Chinese mode

https://fdango.github.io/bookT/intro.html#linux的起源，
I made a demo.

I see the right sidebar - perhaps your screen is too narrow? Once the screen becomes to narrow then the sidebar disappears. Here's a screenshot from my computer:

When you click on the Chinese Catalogue on the right，Unable to locate intermediate specific fragments。It jumps to the top of the page。 @choldgraf

Ah interesting - I see what you mean. I'm not sure why that happens, unfortunately :-(  I've never worked with Chinese characters before. I'd guess maybe it is a UTF-8 encoding problem? Would love some help figuring out a fix for this one if somebody has an idea.

At the same time，I am also looking for this problem。Thank you for your attention。

Ah interesting - I see what you mean. I'm not sure why that happens, unfortunately :-( I've never worked with Chinese characters before. I'd guess maybe it is a UTF-8 encoding problem? Would love some help figuring out a fix for this one if somebody has an idea.

I found this fragment in the \jupyter_book\book_template_includes\onthispage.html
`

{% assign toc_items = my_toc | split: '#' %}
{% if toc_items.size > 1 %}

 {{ page.toc_label | default: site.data.ui-text[site.locale].toc_label }}
      {{ my_toc | markdownify | strip }}

{% endif %}
`
I guess this line `{{ my_toc | markdownify | strip }}` didn't encoding the chinese charset into url-encoding format..  maybe that cause the problem.

I'm happy to review PRs that give a shot at fixing this, I'd love for Jupyter Book to support chinese characters

I'm happy to review PRs that give a shot at fixing this, I'd love for Jupyter Book to support chinese characters

tks for your help. and another multi-language support problem when a  md or ipynb file include chinese charset was built or create.
I modify the source code from the build.py, because python open method didn't speficy the encoding parameter, that default use the GBK encoding, i added it and specify into UTF-8. that works.
BUT the right in page anchor still fail~

@choldgraf I have done a lot of experiments and found that the anchor itself is not a problem, but there is a little hit, but I do not know where to capture this incident, can you help me look at it? Thank you

Hmmm - could you describe what the issue seems to be? I don't have a ton of time to devote to this particular issue right now, but if you post information then hopefully folks in the community could help out (and I can help as I have the cycles)

I found that the root of the problem is that this anchor. JS conflicts with its own anchor, but the library has only one anchors. add ("main h1, main h2, main h3, main h4") custom, so ask for help.

So I had this same issue with Cyrrilic TOC and anchors in my book. I dig a bit and found that there are, basically, 3 different problems:

tocbot generates wrong classes for the right-side TOC links, if the activeListItemClass is set to an empty string:

forEach.call(tocLis, function (tocLi) {
  tocLi.className = tocLi.className.split(SPACE_CHAR + options.activeListItemClass).join('')
})

(See here in the tocbot repo.)
In case of an empty activeListItemClass this code will generate a mangled class like toc-linknode-name--H2, which you can observe right now in any Jupyter Book instance. Here it expects that class to be toc-link node-name--H2. This is even causing an error in the console when clicking on the TOC links.
I set activeListItemClass to be a space char and it fixed this particular issue.

Turbolinks has a longstanding issue with anchors: see turbolinks/turbolinks#75

The best solution is to add data-turbolinks="false" to the TOC links. Because they are generated dynamically at page load we'll need to do this in initToc().

Anchors from anchor.js are not working because of the same Turbolinks issue. It's fixed the same way as 2.

Thanks for the analysis, and looking forward to a PR @GasperPaul !

@choldgraf Here's a PR. Hope this helps. If things work out and I have time I'll be glad to work on a few other issues too.


Add longer timeouts to aws_ec2_client_vpn_route

Default timeout for aws_ec2_client_vpn_route is 1 minute for all operations.
Trying to attach routes in eu-central-1 for a peered VPC, it constantly fails with:
│ Error: error waiting for EC2 Client VPN Route (cvpn-endpoint-xxx,subnet-yyy,<IP_ADDRESS>/16) create: timeout while waiting for state to become 'active' (last state: 'creating', timeout: 1m0s)
│
│   with module.ec2_client_vpn[0].aws_ec2_client_vpn_route.default[0],
│   on .terraform/modules/ec2_client_vpn/main.tf line 242, in resource "aws_ec2_client_vpn_route" "default":
│  242: resource "aws_ec2_client_vpn_route" "default" {

and
│ Error: error waiting for EC2 Client VPN Route (cvpn-endpoint-xxx,subnet-yyy,<IP_ADDRESS>/16) delete: timeout while waiting for resource to be gone (last state: 'deleting', timeout: 1m0s)

With this commit, we increment the timeout to 5 minutes. In my experiments, the route is always available in around 90 seconds. 5 minutes gives us plenty of time, and still is not too long to wait in case of problems.
Upstream issue: https://github.com/hashicorp/terraform-provider-aws/issues/23787
I think fixing here is good, until we wait for an upstream improvement, because I am currently blocked
what

Increase Terraform timeouts for aws_ec2_client_vpn_route

why

Route creation fails constantly due to timeout, leaving the resources tainted

references

https://github.com/hashicorp/terraform-provider-aws/issues/23787

/cc @Gowiem
(sorry for the direct ping, but this is currently a blocker for me)

/test all

/test all

@Gowiem, I don't have a stable state, all my 3 routes are tainted, so I tested in this way:

I removed one of the routes ('cause it is stale!), and imported it again:

aws-vault exec dock-vpn -- terragrunt state rm "module.ec2_client_vpn[0].aws_ec2_client_vpn_route.default[2]"
aws-vault exec dock-vpn -- terragrunt import "module.ec2_client_vpn[0].aws_ec2_client_vpn_route.default[2]" "cvpn-endpoint-04da04851fedf3b7b,subnet-0805d79cdca015578,<IP_ADDRESS>/16"

I replaced the module with my fork:

➜ git --no-pager diff
diff --git a/client_vpn.tf b/client_vpn.tf
index 5e1e3ea..48206d2 100644
--- a/client_vpn.tf
+++ b/client_vpn.tf
@@ -22,8 +22,7 @@ locals {
 }

 module "ec2_client_vpn" {
-  source  = "cloudposse/ec2-client-vpn/aws"
-  version = "0.11.0"
+  source = "git::git@github.com:rpadovani/terraform-aws-ec2-client-vpn.git?ref=patch-1"

   count = var.client_vpn != null ? 1 : 0

I ran plan:

aws-vault exec dock-vpn -- terragrunt plan -target="module.ec2_client_vpn[0]"
Initializing modules...
Downloading git::ssh://git@github.com/rpadovani/terraform-aws-ec2-client-vpn.git?ref=patch-1 for ec2_client_vpn...
- ec2_client_vpn in .terraform/modules/ec2_client_vpn

[...useless part...]

Terraform will perform the following actions:

  # module.ec2_client_vpn[0].aws_ec2_client_vpn_route.default[0] is tainted, so must be replaced
-/+ resource "aws_ec2_client_vpn_route" "default" {
      ~ id                     = "cvpn-endpoint-04da04851fedf3b7b,subnet-0c9e828c615486624,<IP_ADDRESS>/16" -> (known after apply)
      ~ origin                 = "add-route" -> (known after apply)
      ~ type                   = "Nat" -> (known after apply)
        # (4 unchanged attributes hidden)

      + timeouts {
          + create = "5m"
          + delete = "5m"
        }
    }

  # module.ec2_client_vpn[0].aws_ec2_client_vpn_route.default[1] is tainted, so must be replaced
-/+ resource "aws_ec2_client_vpn_route" "default" {
      ~ id                     = "cvpn-endpoint-04da04851fedf3b7b,subnet-0477c31fa00337f2f,<IP_ADDRESS>/16" -> (known after apply)
      ~ origin                 = "add-route" -> (known after apply)
      ~ type                   = "Nat" -> (known after apply)
        # (4 unchanged attributes hidden)

      + timeouts {
          + create = "5m"
          + delete = "5m"
        }
    }

Plan: 2 to add, 0 to change, 2 to destroy.

So, it seems to want to replace only the tainted routes, not the 3rd one I imported. I would say we are safe :-)

@rpadovani Thanks for the contribution! Released as https://github.com/cloudposse/terraform-aws-ec2-client-vpn/releases/tag/0.12.0


[ipados 15] cmd+s does not work to save files

Originally reported: https://github.com/gitpod-io/gitpod/issues/4823

Related https://github.com/microsoft/vscode/issues/131638
//cc @isidorn

Merging into https://github.com/microsoft/vscode/issues/131638


💡[Feature]: OkCupid Profiles Analysis

Is there an existing issue for this?

[X] I have searched the existing issues

Feature Description
The goal of this project is to analyze the OkCupid Profiles and classify accordingly.
Use Case
To know more about the users of OkCupid and classify them accordingly
Benefits
No response
Add ScreenShots
No response
Priority
High
Record

[X] I have read the Contributing Guidelines
[X] I'm a GSSOC'24 contributor
[X] I want to work on this issue

@TAHIR0110  can you please assign this to me?


standalone_2/io/arguments_test failing on vm-kernel-precomp

The kernel-precomp test harness passes runtime arguments to the compiler instead of the runtime, so this test for runtime access to script arguments is failing until the harness is fixed.


Create Database Artifacts Using Core Data Services (CDS) for SAP HANA Cloud

Tutorials: https://developers.sap.com/tutorials/hana-cloud-cap-create-database-cds.html
In Step 3 - Explore generated design time artifacts, I run into an issue when I try to bind to the HDI instance:
This is for item 8:
This part works partly.  The HDI service is created, but the binding fails because it cannot obtain the SharedDevKey
It will take a minute or two for the service to be created in HANA. A progress bar will be shown in the message dialog
Failed to chdir to /local/source/openvscode-server: No such file or directory Error: Binding Service MyHANAApp-dev failed : Unable to get service key 'SharedDevKey' details: Cannot obtain service key 'SharedDevKey' details: CF-ResourceNotFound (Creation of service key initial) [10010]
When this happens, I have to manually run:
cds bind -2 MyHANAApp-dev:SharedDevKey
Then it works.  So it looks like the SharedDevKey is created - I can see the MyHANAApp-db in the instances and the SharedDevKey service key.  But somehow there is an issue when we do this from clicking on the bind button.  Hope this helps someone out there with the same issue.
Thanks,
Jay

Thomas, can you please respond to this user's issue?

If you just repeat the bind operation in the tooling it will work. This is documented in the tutorial already:
"Sometimes the binding step fails due to a timing issue. If so simply repeat the binding but this time do not create a new container name but select the existing HDI container that has been created from the previous attempt MyHANAApp-dev"


index after .count of TsGroup

After upgrading to 0.7.0, some old ways of indexing won't work.
For instance, given a TsGroup, where neurons have indices, I can access the Ts based on the index of the neuron, eg:

However, after .count the TsGroup, I can no longer access the same neuron with the same index

This behavior is quite confusing to me. It used to not give an error.

I think you are comparing very old versions of pynapple. This behavior relied on pandas. Pandas has been removed since 0.4. For backward compatibility, there is still the method .loc. You can do spike_trains.count().loc[376] and it should work.
Closing this issue if there is no error.


Unexpected logout after long sessions

After keeping TweetDeck open for extended periods (10+ hours), it automatically logs me out unexpectedly.

Having the same issues here, it's been happening for the past day or so.

Having the same issues here

I can't confirm this is caused by using OldTweetDeck, if you search, you'll see a lot of people getting locked out for no reason and they use normal Twitter, so this might be just a random issue

anecdotal evidence: every time i load OldTweetDeck within a few hours i'm logged out
if i simply do not load OldTweetDeck anywhere then i remain logged in
it may be something like a search column updating that's hitting a limit and forcing the logout, but i'm uncertain exactly.  i tried disabling the rate limit bypass, but i am still logged out
confusingly, using OldTweetDeck with a separate setup in a container in firefox with different accounts i have not yet been logged out

Are we talking about logging out as in you're not logged into Twitter, but after a login is everything fine
or
your account gets locked/temporarily banned and you have to solve a captcha?

in my case it is usually the former, the first time and one other time i had to solve a rock counting puzzle

in my case it is usually the former, the first time and one other time i had to solve a rock counting puzzle

This could also be a different issue like your cookie (login) getting lost. Maybe create a new browser profile and see if you can reproduce it with that.

Just happened to me. Food for thought: I keep old tweetdeck open in 3 different tabs, in 3 different Firefox containers, for 3 accounts I have but want to keep totally separate.
I only got logged out of one of them, even if all have been open for the same time.
Also, some people mention +10 hours. I must have logged in at around 8 am and it's 11 hours now since then.

in my case it is usually the former, the first time and one other time i had to solve a rock counting puzzle

This could also be a different issue like your cookie (login) getting lost. Maybe create a new browser profile and see if you can reproduce it with that.

this is unlikely to be the case, nevertheless in the last hour i created a new profile to test and was again logged out, this time asked to complete more puzzles
i have a second account in a separate tab container and that account does not encounter this issue, the account that is experiencing the issue does have more traffic
it is also worth mentioning that bettertweetdeck is also installed, i'll try testing again with that disabled

This has been happening to me for the past 3 days. Basically after a few hours a message flashes across the top of the screen:
"TweetDeck no longer has permission to access your main login account. You will be logged out to prevent unauthorized access."
Then after a few seconds, it logs me out.
Most of the time I can sign back in without issue. But two times my account was locked for "suspicious activity" and I had to do a rock counting captcha.
Just to note, my usage with twitter consists solely of tweetdeck being open on a separate monitor. I only use one account and I don't have any extra tabs open or anything connected to twitter's main site. It's literally just tweetdeck idle for a few hours followed by a random log out.
I wanted to actually contact twitter's support about my account being locked, but their support page is so trash that it's impossible to file any ticket and contact anyone.

It's been happening all day, it says I have conducted suspicious activity as others have said.

Just happened to me. Food for thought: I keep old tweetdeck open in 3 different pinned tabs, in 3 different Firefox containers, for 3 accounts I have but want to keep totally separate.
I only got logged out of one of them, even if all have been open for the same time. However, the one I got logged out from does have a lot more traffic (mentions, home timeline) than the other two.
Also, some people mention +10 hours. I must have logged in at around 8 am and it's 11 hours now since then.

Also yesterday, when I checked my phone, I had to solve one of those rock count catchpas.
Dunno, I may have to stop using old tweetdeck for a while if we confirm it's related to it, as I don't want my account being suspended over suspicious activity, whatever that may be. Probably some Elmo attempt to limit number of API calls to save money.

Hi, I had the same phenomenon.
I have two PCs and I am running one account on each of them.
I use the same state data on both computers, but one day, when I closed OldTweetDeck on the subdomain and made the official application (using Old Twitter Layout) idle, I saw a forced logout without account lock.
The time when the forced logout occurred is unknown, but there is a suspicious access response even after a while after closing OldTweetDeck.
I've also had two account locks occur on one account at the time of the occurrence,
I don't know if dimden will address this, but at this time it is recommended to be patient and use Old Twitter Layout for a while until an improved version comes along.
(In the worst case scenario, it might not be surprising that this extension could be Outdated if the account lock improvement is not addressed...)

On my end it seems to happen much faster if the rate limit bypass option is enabled. Possible it's related to that.

I saw some tweets that search column might be causing it, can't confirm it

I use several search columns, so that's definitely a possibility. I'll delete those columns for a bit and see how it responds.
Trying to log in immediately after seeing the forced logout message greets me with this as well. Possible they made this some sort of blanket protection against getting around the rate limit?

anecdotal:
i have two separate instances of OTD running with two different accounts. only one of these has been affected by the random log outs. the only meaningful difference i can think of is, as suggested on the pop up, the use of search columns on my affected account.

I have this issue for a couple of days now. I am logged out several times a day, sometimes within short intervals. I thought about what I changed before the issue appeared. The only thing I could think of, I added a hashtag column (search column). The hashtag has a few tweets, but not a gigantic amount - no more than I have had in other columns (lists) before.

I have 2 accounts in different browsers, using 2 different PCs to view OldTweetDeck 24 hours a day and have not seen this happen.
It is the search column that is suspicious, but I think it is the User column that is most suspicious.
After TweetDeck broke before, I reached the rate limit after less than a day of displaying the User column and the search column.
Even when I add myself to the user column, I was still stuck at the rate limit, the User column consumes the rate limit of the search.
After adding myself and one other person to the list and displaying them, the rate limit has never been caught.
JP Translated DeepL

No random logouts for me so far.

No logouts for me, I have TweetDeck (OTD) open 24/7 with multiple search columns active

No logouts for me, I have TweetDeck (OTD) open 24/7 with multiple search columns active

Same! I have like 10 search columns

I have two accs using OTD, both are logged in permanently. One I use a lot (Firefox stable), hardly any logouts. But the other acc (Chrome), which I use rarely, gets looged out various times per day.

When this happens it is also the case that i'm logged out of my twitter account on the normal twitter with reason "suspected account, and sometimes i can just log in back normally, but on 2 occasions I had to take a challenge test to prove im not some bot or something i guess.

I was locked out for "suspicious activity" 2 days in a row and had to complete an Arkose challenge to regain access. I don't actively tweet, but I do use TweetDeck often. I have a total of 3 search columns. This had never happened prior to a couple days ago.

It wasn't logging me out but currently it logged me out and i cannot log back in it just goes to black screen with url
https://twitter.com/login?hide_message=true&redirect_after_login=https%3A%2F%2Ftwitter.com%2Fi%2Ftweetdeck%3Fvia_twitter_login%3Dtrue

I was also locked out for "suspicious activity" and I can't log in in X.....

FWIW, i'm using brave browser with ublock and ghostery, and have not had this issue. but i dont leave it on for hours, just when i check the news. for me, its working great. windows and linux.

This is actually a longstanding issue I've been experiencing since March 2023. It occurs with such insane frequency, and after being forcibly logged out enough, it locks your account and forces you to do multiple Arkose Challenges (which is beyond annoying).
I have never known what causes them, other than that it is not a question of if, but when. It will always inevitably happen after a given amount of time has passed.

Reporitng: got logged out again since my last comment

Hi,
Just to add some info, I've been getting logged out every 2 days or so, for the past weeks. I keep the tab loaded every time im at PC, with 2 home tabs, 2 notif tabs, 1 user tab and 1 DM tab.
If I refresh instead of login, and then importState() again, it works, no need to re-login.
Using BTD+OTD, and uBlock. No Search tabs, and I dont use the search bar a lot. No ratelimit patch or anything. Sometimes if I see too many profiles (user columns) it keeps loading indefinetly, probably because of the ratelimit. Other tabs work fine.
Standard twitter with OldTwitter has no issues (sometimes I go in to see links or profiles)

Update: locked again after a couple days. I noticed this time that I had Tweetdeck open in the background before I got kicked out.

anecdotal:
i have two separate instances of OTD running with two different accounts. only one of these has been affected by the random log outs. the only meaningful difference i can think of is, as suggested on the pop up, the use of search columns on my affected account.

This seems to be my experience as well. I deleted my search columns to test as of the timestamp of my last comment. I haven't been locked out since, rate limit bypass or not. Very odd.

I suddenly logged out four days ago, but after I found this issue and deleted the search column, it started to work properly maybe. For a while following person goes to 0 but it was fixed.

I logged out for the first time today and couldn't even logged in to my Twitter account, had to clear cache. Now Tweetdeck is working again but I've lost all my columns, will rearrange them again.

I keep Old Tweetdeck running in Chrome on 3 machines, usually with one machine active and two in sleep mode. The search columns I had were flakey, wouldn't update consistently. And going to Twitter.com and logged in with the account I use for Old Tweetdeck,  it regularly wouldn't load tweets because it said I was rate limited. But on Old Tweetdeck, my timeline and Lists would always load and update in real time, so that wasn't a big deal to me.
With the update to Old Tweetdeck a couple weeks ago, where it required us to rebuild our columns, I just didn't re-add any search columns (partially because they were so inconsistent, and partially due to laziness on my part).
But now that I have no active search columns, I've not been logged out once, nor rate limited on Twitter.com

It gets weirder: yesterday evening i shut down my PC where i'm running OTD on. I've checked Twitter on mobile (Android App, no modifications) a couple of times before i went to bed - no issues. But this morning i've had to solve this rock counting puzzle to log in again which didnt happen on mobile before. Later when i was using OTD on PC again i was logged out again. I was asked for my e-mail plus additionally my phone number or username before my password and 2FA code was requested - which also never happend before. I might stop using OTD for a while and see what happens. I dont wanna lose my account.

It took me an embarrassing amount of time to realize I started getting this problem after I installed an extension for the first time in a while, called "Twemoji for Chrome" which turned out to be causing OldTweetDeck to poll the search endpoints every 1-2 seconds rather than minutes (and un-hiding all the accounts I have muted)
I recommend that everyone monitors their rate of API calls via browser's DevTools or equivalent and selectively disabling any extensions or scripts that could be parsing or otherwise modifying Twitter's layout

I stopped getting logged out after adding https://twitter.com/i/tweetdeck* to the user excludes in Tampermonkey settings for every Twitter-enhancer userscript I use
There might be similar browser extensions consuming the OldTweetDeck endpoint as part of twitter.com/* triggering some anti-scraper protection

Good evening.
I've tried running OldTweetDeck with the search and user columns removed for verification,
When I ran it with the search columns removed, the sub accounts were locked within a day.
I also deleted the user column, and after 2 days, the sub account was locked again.
And only the sub account is locked more often...
I guess it still locks the account even if I delete the user column and the search column...
I wonder what is the cause of account lock...

Good evening. I've tried running OldTweetDeck with the search and user columns removed for verification, When I ran it with the search columns removed, the sub accounts were locked within a day. I also deleted the user column, and after 2 days, the sub account was locked again. And only the sub account is locked more often... I guess it still locks the account even if I delete the user column and the search column... I wonder what is the cause of account lock...

PS: I tried running Tweetdeck on the main account's PC while Tweetdeck had not been running on the sub-account's PC for a while, and once again the sub-account was locked for the same reason of suspicious activity.
There are many theories, but it is highly possible that the account is locked due to "twitter.com" or "api.twitter.com" being checked for access to the site in the extension.

For me - it helped to remove the search column. I have not been locked out since the removal. I've tried adding search column again and after a short time i've got logged out again. So no more search columns for me right now =/

For me - it helped to remove the search column. I have not been locked out since the removal. I've tried adding search column again and after a short time i've got logged out again. So no more search columns for me right now =/

this! I used to have 2, sometimes 3 search columns and i would have this problem. Last time i logged in i had to redo all my columns and leave only 1 search column and haven't been logged out anymore

i rarely use the search column,, like next to never, & i also get frequent logouts, so don't think that is the complete issue. it doesn't matter what i do, i can keep the browsers up while im at work, or close them completely, and at some point i get logged out.. so not sure

For me - it helped to remove the search column. I have not been locked out since the removal. I've tried adding search column again and after a short time i've got logged out again. So no more search columns for me right now =/

i will go ahead & try this, thank you

As to search column, since my last comment I've not been logged out and I've had one search column and one user column (just throwing info out there for statistics)

I finally implemented the last header that's missing in OldTweetDeck's requests in comparison to Twitter Web App. Generator for it is very obfuscated and is basically a security check done to verify requests are actually made from web app. I really hope it's the culprit since it's basically the only thing that's different from normal requests.
You can get new version here, try using it for some time and report if it fixed logouts for you. Keep in mind that you might still get logged out for a bit since you already made a lot of requests without this header before installing the update.
If you want to confirm header generation is working for you correctly after reinstalling extension, open devtools with F12, go to Network tab, and click on any api.twitter.com request and check if there's x-client-transaction-id header in Request Headers

I finally implemented the last header that's missing in OldTweetDeck's requests in comparison to Twitter Web App. Generator for it is very obfuscated and is basically a security check done to verify requests are actually made from web app. I really hope it's the culprit since it's basically the only thing that's different from normal requests.
You can get new version here, try using it for some time and report if it fixed logouts for you. Keep in mind that you might still get logged out for a bit since you already made a lot of requests without this header before installing the update.
If you want to confirm header generation is working for you correctly after reinstalling extension, open devtools with F12, go to Network tab, and click on any api.twitter.com request and check if there's x-client-transaction-id header in Request Headers

I've had no issues since re-adding my search columns. Thank you for your hard work <3

I updated OldTweetDeck and exported my state data to use it, but within minutes of using it, the subdomain was locked.

I finally implemented the last header that's missing in OldTweetDeck's requests in comparison to Twitter Web App. Generator for it is very obfuscated and is basically a security check done to verify requests are actually made from web app. I really hope it's the culprit since it's basically the only thing that's different from normal requests.
You can get new version here, try using it for some time and report if it fixed logouts for you. Keep in mind that you might still get logged out for a bit since you already made a lot of requests without this header before installing the update.
If you want to confirm header generation is working for you correctly after reinstalling extension, open devtools with F12, go to Network tab, and click on any api.twitter.com request and check if there's x-client-transaction-id header in Request Headers

Keep in mind that you might still get logged out for a bit since you already made a lot of requests without this header before installing the update.

Keep in mind that you might still get logged out for a bit since you already made a lot of requests without this header before installing the update.

Please wait 1-2 days after installing update and make sure header is being set for you

Thank you very much.
I will wait 1~2 days.
By the way, I checked the network tab to see if there is a header tab for the x-client-transaction-id of the api.twitter.com request, and it is there.

Been using the updated version of OTD with re-added search column for almost 2 days now and didnt got logged out since then. Looks like it solved the problem - many thanks!

I went 2 days without any issues and thought this issue was resolved. However, I just now got randomly locked out of my account and hit with an Arkose challenge.
Observations:

Prior to updating, I had not used search columns for over a week. I only re-enabled search columns after updating.
I confirmed that the x-client-transaction-id header is present on api.twitter.com requests.

If even this doesn't help then I have no idea at this point

I'm currently running three search columns on latest update with rate bypass toggled on and off as needed, I have not been logged out once since the update.

I went 2 days without any issues and thought this issue was resolved. However, I just now got randomly locked out of my account and hit with an Arkose challenge.
Observations:

Prior to updating, I had not used search columns for over a week. I only re-enabled search columns after updating.
I confirmed that the x-client-transaction-id header is present on api.twitter.com requests.

Unfortunately I now have to report the same thing. I've been logged out twice today, after two 2 days with zero log-outs.

just an idea. Is it possible to add a button to manually reload the search column? I have a few search columns but I don't need them updated all the time. I wonder if manual reloads (and thus less reloads) could help with the account lock issue.

After months of these logouts, my twitter/x account has now just been suspended. Has this happened to anyone else? Will they unsuspend my account?

من نمی توانم تأیید کنم که این به دلیل استفاده از OldTweetDeck ایجاد شده است، اگر جستجو کنید، می بینید که افراد زیادی بی دلیل قفل می شوند و از توییتر معمولی استفاده می کنند، بنابراین ممکن است این یک مشکل تصادفی باشد.
I noticed that without automatic update, the account is not banned. If I can change the method of updating, the problem will disappear completely. Thank you to the manufacturer, please pay attention.

به خاطر داشته باشید که ممکن است هنوز برای مدتی از سیستم خارج شوید زیرا قبلاً قبل از نصب به‌روزرسانی بدون این هدر درخواست‌های زیادی کرده‌اید.

لطفاً 1 تا 2 روز پس از نصب به‌روزرسانی صبر کنید و مطمئن شوید که هدر برای شما تنظیم شده است

what is your mean

اگر حتی این کمکی نمی کند، در این مرحله هیچ ایده ای ندارم

I noticed that without automatic update, the account is not banned. If I can change the method of updating, the problem will disappear completely. Thank you to the manufacturer, please pay attention.

I noticed that without automatic update, the account is not banned. If I can change the method of updating, the problem will disappear completely. Thank you to the manufacturer, please pay attention.

داشتن همین مسائل در اینجا

I noticed that without automatic update, the account is not banned. If I can change the method of updating, the problem will disappear completely. Thank you to the manufacturer, please pay attention.

پس از باز نگه داشتن TweetDeck برای مدت طولانی (بیش از 10 ساعت)، به طور خودکار من را به طور غیرمنتظره ای از سیستم خارج می کند.

I noticed that without automatic update, the account is not banned. If I can change the method of updating, the problem will disappear completely. Thank you to the manufacturer, please pay attention.


docs: Minor fixes & rewordings to the documentation

I updated the PR with two additional commits fixing some more things. Additionally, I had a look at the README and CONTRIB files

You seem to have some conflicts to main @Laubi please rebase this and let me know when to review :)


Fix tf.keras.initializers.get: return initializer object if type object initializer is provided

Summary:
Models with layers instantiated with initializers provided as type objects couldn't be saved after training, despite models were initialized and trained fine (colab with example).  This problem have been resolved the same way as in the add_weight method: now type objects are converting to objects in the function initializers.get. A unit test covering this case was implemented.
Possible alternative fixes:

Remove support for type object initializers from add_weight. Drawback: would break backward compatibility
Make any initializer class (not just object) serializable. Could work, but hard to maintain and confusing.
Add instantiation of type objects of initializer type to the serialization function. Drawbacks: this function affects many other things and we should not overcomplicate it. Also it could lead to bugs in the parts of the code base non-related to initializets.

Closed due to CLA problem


Is it possible to use full/kurly and still have working call stack from browser ?

Currently as soon as I use kurly stuff, it shows "structured.js" as the caller of the console.log

My config :
localStorage.setItem('log', 'debug');
localStorage.setItem('log_format', '{date}{time}{lvl}{name}{message}{perf};clientUtil=simple;kurly=none');
My project is running Vuetify

Yes you are right. All kurly formatters are dynamic formatters atm.
I am actually working on the formatters at the moment and I'm trying to improve the usefulness of the static formatters. I think I can make them a whole lot more useful than they are now. But I don't see a way of making kurly formatters static. So I'm actually thinking about removing kurly altogether though I am not sure yet. Watch the next beta as it should have much more in terms of formatters (oh and don't tell anyone but I'm adding colors 😉 )

Ok so I have a small update on this.
Yes, it will be possible to use full/kurly with a working call stack.
I am preparing a new v2 release of kurly to support that.
It turns out that I can make a formatter that detects whether you are only using 'static formatters' (see Kurly v2 docs for more info) and if so, creates a static pipeline that does not mess up your call stack. Of course if you need access to the message, a static formatter will not do. But I found there is a lot that you can do with static formatters alone!
In the next beta I am trying to give you:

Edit the format string just like in beta 10 with Kurly
Kurly braces optional for shorter/simpler format strings
If all formatters used are static, the call stack remains untouced
If you use dynamic formatters, it will detect this automatically and switch to a dynamic formatting pipeline
Colors!!

I had it all working great but I as completely sidestepping Kurly because it did not support te concept of static formatters. So I did what a good dev does and I refactored Kurly. Check out Kurly v2 and it has all new features for optional kurly braces and static formatters!
The next step is refactoring ulog v2 beta 12 to not sidestep kurly but use the new features introduced in kurly v2, So atm nothing is working anymore as I am refactoring ulog again to not reinvent the weel but rely on kurly. So it will take a bit more time still but it is coming! And ulog will be the only logger I know that is able to do this so I am very proud. Will comment here again when I released it. So a bit more patience please but it is coming.

Ok so I have a small update on this.
Yes, it will be possible to use full/kurly with a working call stack.
I am preparing a new v2 release of kurly to support that.
It turns out that I can make a formatter that detects whether you are only using 'static formatters' (see Kurly v2 docs for more info) and if so, creates a static pipeline that does not mess up your call stack. Of course if you need access to the message, a static formatter will not do. But I found there is a lot that you can do with static formatters alone!
In the next beta I am trying to give you:

Edit the format string just like in beta 10 with Kurly
Kurly braces optional for shorter/simpler format strings
If all formatters used are static, the call stack remains untouced
If you use dynamic formatters, it will detect this automatically and switch to a dynamic formatting pipeline
Colors!!

I had it all working great but I as completely sidestepping Kurly because it did not support te concept of static formatters. So I did what a good dev does and I refactored Kurly. Check out Kurly v2 and it has all new features for optional kurly braces and static formatters!
The next step is refactoring ulog v2 beta 12 to not sidestep kurly but use the new features introduced in kurly v2, So atm nothing is working anymore as I am refactoring ulog again to not reinvent the weel but rely on kurly. So it will take a bit more time still but it is coming! And ulog will be the only logger I know that is able to do this so I am very proud. Will comment here again when I released it. So a bit more patience please but it is coming.

@Oksy-d
Please check out the latest beta. It supports formatting with kurly, nicer format strings and preserving the call stack as long as you only use static formats. Oh I also added alignment (nicely lining up all messages in browsers and node) and colors!
Let me know what you think and feel free to re-open or open new issues with your findings.


risor: 1.1.2 -> 1.3.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/risor-io/risor/releases.
meta.description for risor is: Fast and flexible scripting for Go developers and DevOps
meta.homepage for risor is: https://github.com/risor-io/risor
meta.changelog for risor is: https://github.com/risor-io/risor/releases/tag/v1.3.0
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.3.0 with grep in /nix/store/09m0xa9za5l6i7pxkkhwiq1san02cymr-risor-1.3.0
found 1.3.0 in filename of file in /nix/store/09m0xa9za5l6i7pxkkhwiq1san02cymr-risor-1.3.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
risor

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/09m0xa9za5l6i7pxkkhwiq1san02cymr-risor-1.3.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A risor https://github.com/r-ryantm/nixpkgs/archive/998e483194a1950d4c56ddd1951a22062f4efa89.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/998e483194a1950d4c56ddd1951a22062f4efa89#risor

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/09m0xa9za5l6i7pxkkhwiq1san02cymr-risor-1.3.0
ls -la /nix/store/09m0xa9za5l6i7pxkkhwiq1san02cymr-risor-1.3.0/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

risor

Maintainer pings
cc @figsoda for testing.

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/risor-io/risor/releases.
meta.description for risor is: Fast and flexible scripting for Go developers and DevOps
meta.homepage for risor is: https://github.com/risor-io/risor
meta.changelog for risor is: https://github.com/risor-io/risor/releases/tag/v1.3.2
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.3.2 with grep in /nix/store/yfsny920a1xzp1j4lkadf5ai4k9r84dy-risor-1.3.2
found 1.3.2 in filename of file in /nix/store/yfsny920a1xzp1j4lkadf5ai4k9r84dy-risor-1.3.2

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
risor

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/yfsny920a1xzp1j4lkadf5ai4k9r84dy-risor-1.3.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A risor https://github.com/r-ryantm/nixpkgs/archive/2cf6db07ee287652ca9d52671cd5aefce8e436f0.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/2cf6db07ee287652ca9d52671cd5aefce8e436f0#risor

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/yfsny920a1xzp1j4lkadf5ai4k9r84dy-risor-1.3.2
ls -la /nix/store/yfsny920a1xzp1j4lkadf5ai4k9r84dy-risor-1.3.2/bin

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

risor

Maintainer pings
cc @figsoda for testing.


Update to preferred citation formation for ERC-721

This PR updates the citation to ERC-721 to the preferred citation format.
Reference: https://github.com/ethereum/EIPs#preferred-citation-format
Thank you.

Thanks.
You got it, PR coming.

It's at: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/1646


From v0.14.32 "invalid foreign key table" if table name in Blocklist

What version of Super Graph are you using?
v0.14.35
Steps to reproduce the issue (config used to run Super Graph)
Using this config:
core.Config{
  Debug:        !IsProduction,
  UseAllowList: IsProduction,
  DefaultBlock: true,
  Blocklist: []string{
    "password",
    "account_id",
    "accounts",
  },
  Tables: []core.Table{
    {Name: "me", Table: "users"},
  },
  Vars: map[string]string{
    "account_id": "sql:select account_id from users where id = $user_id",
  },
  Roles: []core.Role{
    {
      Name: "user",
      Tables: []core.RoleTable{
        {
          Name: "me",
          Query: &core.Query{
            Filters: []string{
              "{ id: { _eq: $user_id }",
            },
          },
        },
        {
          Name: "teams",
          Query: &core.Query{
            Filters: []string{
              "{ account_id: { _eq: $account_id } }",
            },
          },
        },
        {
          Name: "players",
          Query: &core.Query{
            Filters: []string{
              "{ account_id: { _eq: $account_id } }",
            },
          },
          Insert: &core.Insert{
            Presets: map[string]string{
              "account_id": "sql:select account_id from users where id = $user_id",
            },
          },
          Update: &core.Update{
            Presets: map[string]string{
              "account_id":  "sql:select account_id from users where id = $user_id",
              "updated_at": "now",
            },
          },
        },
      },
    },
  },
}

Expected behaviour and actual result
I expect this to work (it was working with v0.14.31), but it gives an error instead:
PNC  error="invalid foreign key table 'accounts'"
I think this is happening because of:
Blocklist: []string{
  "password",
  "account_id",
  "accounts", // this line
},

and I know I can use this instead:
{
  Name: "accounts",
  Query: &core.Query{
    Block: true,
  },
  Insert: &core.Insert{
    Block: true,
  },
  Update: &core.Update{
    Block: true,
  },
  Delete: &core.Delete{
    Block: true,
  },
},

but as you can see this is repetitive and error-prone.
Ideas
Here you said, @dosco, you are thinking of creating two blocklists, one for tables and one for columns.
And I agree a lot.
Additional
When using Blocklist the tables are not showing in introspection info.
When using Block: true instead they are.
I think they should not in both cases.
Concerns
I know in production it's impossible to query something not in allow.list but also this is error-prone and potentially dangerous and can lead to the exclusion of SuperGraph from the choices for some high-security projects (you have to convince the boss who finally decides).
I'll explain it better:
When some programmers on the project are trying the queries locally and SuperGraph updates the allow.list file, it can happen that inadvertently (I know it shouldn't happen, but it does) that file is put into production.
And the damage is done! 💀💀💀
So I would prefer to lock the tables by configuration.

I know in production it's impossible to query something not in allow.list but also this is error-prone and potentially dangerous and can lead to the exclusion of SuperGraph from the choices for some high security projects.
I'll explain it better:
When some programmers on the project are trying the queries locally and SuperGraph updates the allow.list file, it can happen that inadvertently (I know it shouldn't happen, but it does) that file is put into production.
And the damage is done.
So I would prefer to lock the tables by configuration.

I see the problem currently blocked tables are just excluded from the schema and this is breaking the code that walks the relationship graph between tables since it can't find the foreign key table accounts. I'll fix this. We should just throw an error in development when blocked tables are used, we currently do this when blocked columns are used.
{
  Name: "accounts",
  Query: &core.Query{
    Block: true,
  },
  Insert: &core.Insert{
    Block: true,
  },
 ...
},

This above code is not the same as the block list, it does not block columns or tables from being used it only blocks operations. Also to prevent repeating yourself you can mark the role tables as read-only read_only: true. I can look into how operations are exposed in introspections and see if we can block those.
{
  Name: "accounts",
  read_only: true,
  Query: &core.Query{
    Block: true,
  },

}
Also yes separate block lists might be good.

I love you, @dosco.

I have been thinking about this and it's a complex problem.

Does blocking mean we block the tables and columns entirely as of they never existed or just hide and throw errors?

If blocked means drop from the original schema then blocking primary key columns like 'id' would break relationships between tables. We could log a message to the console when this happens.

If blocked means hidden then should  they be allowed in where clauses etc.

Hideing the columns and throwing errors all over the place is hard and can  be prone to holes. While just dropping the column or table when the schema is read in and logging issues like primary key blocked is easier and more solid.

For hiding columns on tables we already have the allowed columns option.

Improvements to blocking however it's still a single list for now.
https://github.com/dosco/super-graph/commit/f7d26e67e4042776d176a972e26111aa8c211ff9

Blocks tables, columns and functions from introspection and queries
Columns are blocked even when used in where clauses expect for in filters set in the config file


Version v0.1.0 RC (#64)

Sync Version v0.0.9 RC (#58) from master (#60)

Version v0.0.8 (#49)

Co-authored-by: yqrashawn<EMAIL_ADDRESS>

Fix: changelog.md (#50)

Fix e2e tests (#56)

Add: arrow-parens eslint rule

Attempt ENS resolution on any valid domain name (#8059)

ENS currently supports a variety of tlds in addition to .eth, and
more will be supported in the future. Rather than hard-code a list of
supported ENS tlds, all valid domain names will now be interpreted as
potential ENS addresses in our address input component.
Closes #7978

Remove unused sinon sandboxes (#8063)

These sandboxes were created, then not utilized at all.

Enable core ESLint no-mixed-operators rule

Update redux-related dependencies (#8068)

Add optional chaining (#8052)

Add plugin-proposal-optional-chaining

Use optional chaining to provide error fallback

Remove redux-test-utils dependency (#8070)

Remove usages of redux-test-utils

Remove redux-test-utils dependency

Use<EMAIL_ADDRESS>(#8069)

Implementation encrypt/decrypt feature (#7831)

Implement eth_decrypt and eth_getEncryptionPublicKey. This allows decryption backed by the user's private key. The message decryption uses a confirmation flow similar to the messaging signing flow, where the message to be decrypted is also able to be decrypted inline for the user to read directly before confirming.

Fix: handle getCode error

Fix: e2e WIP

Add: tmp for dev

Fix: getCode error

Fix: remove max gas limit

Add: use new version of conflux-local-network-lite

Fix: raise gas for create token contract

Fix: hide edit button when use advanced gas inputs only

Fix: more e2e fix WIP

Fix: hide more currency

Fix: more e2e

Fix: lint

Fix: second e2e test

Fix: responsive ui e2e test

Fix: rest e2e test

Fix: lint

Fix: more delay to get the right gas limit

Fix: respect max gas limit, set nonce in estimate gas params

Fix: more gas

Fix: lint

Fix: estimate gas, disable infura controller

Fix: remove debugger

Fix: modal block clickable element

Fix: e2e, locate reject button

Fix: disable ens resolution

Fix: e2e confirm and reject together

Fix: tiny deplay before input state check

Fix: sentry url

Fix: getCode cb error

Fix: currency input remove onblur

Fix: lint, remove currency input onBlur code

Add: e2e test back to all test pass

Co-authored-by: Mark Stacey<EMAIL_ADDRESS>Co-authored-by: Whymarrh Whitby<EMAIL_ADDRESS>Co-authored-by: ricky<EMAIL_ADDRESS>Co-authored-by: Konstantin<EMAIL_ADDRESS>

Add rlp to support new version of testnet (#57)

Add: new version of local lite

Add: missing svg file

Add: use new version of testnet

Fix: e2e test

Version v0.0.9

Co-authored-by: yqrashawn<EMAIL_ADDRESS>Co-authored-by: Mark Stacey<EMAIL_ADDRESS>Co-authored-by: Whymarrh Whitby<EMAIL_ADDRESS>Co-authored-by: ricky<EMAIL_ADDRESS>Co-authored-by: Konstantin<EMAIL_ADDRESS>Co-authored-by: Conflux Bot<EMAIL_ADDRESS>Co-authored-by: Conflux Bot<EMAIL_ADDRESS>Co-authored-by: Mark Stacey<EMAIL_ADDRESS>Co-authored-by: Whymarrh Whitby<EMAIL_ADDRESS>Co-authored-by: ricky<EMAIL_ADDRESS>Co-authored-by: Konstantin<EMAIL_ADDRESS>Co-authored-by: Conflux Bot<EMAIL_ADDRESS>

new sign logic (#62)

Add: sign logic

Add: disable eth-contract-registry

Fix: e2e test

Change logo, mail, faq, tos links (#63)

Add: logo change

Add: use static image instead of 3d model

Add: remove ens description

Add: hide conversion rate ui

Add: hide some help link

Add: change support mail address, ConfluxPortal -> Conflux Portal

Fix: lint

Add: change mail tos policy link

Add: changelog

Version v0.1.0

Co-authored-by: yqrashawn<EMAIL_ADDRESS>Co-authored-by: Mark Stacey<EMAIL_ADDRESS>Co-authored-by: Whymarrh Whitby<EMAIL_ADDRESS>Co-authored-by: ricky<EMAIL_ADDRESS>Co-authored-by: Konstantin<EMAIL_ADDRESS>Co-authored-by: Conflux Bot<EMAIL_ADDRESS>

This change is

Builds ready [cef3187]builds: chrome, firefox, opera
bundle viz: background, ui, inpage, contentscript, ui-libs, bg-libs, phishing-detect
dep viz: background
all artifactsPage Load Metrics (591 ± 11 ms)PlatformPageMetricMin (ms)Max (ms)Average (ms)StandardDeviation (ms)MarginOfError (ms)ChromeNotificationfirstPaint358242105domContentLoaded5576565892311load5596585912311domInteractive5576565892311


missing documentation for vehicle breaks

I want to add break constraints to a routing problem. I know that ortools has some support for adding break constraints, because in its reference I found:

GlobalVehicleBreaksConstraint
SetBreakIntervalsOfVehicle
SetBreakDistanceDurationOfVehicle

Searching the web I found numerous discussions and questions related to breaks. There are, for example, suggestions to modify the cumul var at a stop so that the stop can not be visited in a certain interval:
time_dimension.CumulVar(index).RemoveInterval(A, B)

Then there is a Python script:

cvrptw_break.py

in which breaks are defined using FixedDurationIntervalVar together with SetBreakIntervalsOfVehicle:
break_intervals = {}
for v in [0]:
    vehicle_break = data['breaks'][v]
    break_intervals[v] = [
        routing.solver().FixedDurationIntervalVar(
            15, 100, vehicle_break[0], vehicle_break[1], 'Break for vehicle {}'.format(v))
    ]
    time_dimension.SetBreakIntervalsOfVehicle(
        break_intervals[v], v, node_visit_transit)

and then reading the intervals with IntervalVarContainer:
intervals = assignment.IntervalVarContainer()
for i in xrange(intervals.Size()):
    brk = intervals.Element(i)
    if brk.PerformedValue() == 1:
        print('{}: Start({}) Duration({})'.format(
            brk.Var().Name(),
            brk.StartValue(),
            brk.DurationValue()))
    else:
        print('{}: Unperformed'.format(brk.Var().Name()))

The code suggests that that breaks may be unperformed, i.e. optional.
But, as far as I can see FixedDurationIntervalVar is not explained. I can guess that it is start time (int), end time (int), duration (int) and is_optional (bool). But then, I discovered that the resource example uses the FixedDurationIntervalVar in yet a different way, without, I am quoting: "..fixed start and end times..".
This leaves me puzzled as to what exactly ortools means by a break and which variations are available for users. There are beautiful tutorials that explain time windows or pickup and delivery probems but something comparable for driver breaks is missing as far as I can see.
An official page on

https://developers.google.com/optimization/routing

that summarizes at least what a break is and how to speficy it would be very helpful.
Specifically, it appears to me that ortools can not model breaks that are relative to vehicle start times and relative driving time would be helpful.

I would like to be able to say "after 6 hours of driving the driver needs a 60 minute rest"
I usually let ortools decide that vehicle start time

A remark along these lines on the official page would add clarity.

You can select the label routing_break to see all related issues (i.e. and doc). AFAIK routing breaks was buggy so until it is battle tested it was not our top priority to advertise it in the doc...

@Mizux
I looked into vehicle breaks that begin relative to the vehicle's start time (in time dimension) as determined by the solver, which may not necessarily start at 0 or be forced to 0.  Current scheme uses model.solver().MakeFixedDurationIntervalVar which defines an IntervalVar whose start-min & start-max are both fixed absolute values.
Given your comment above, is there a way to apply breaks with fixed start min/max value over a special dimension, but offset the start of this special dimension the value by each vehicle's CummulVar(@start node) in the time dimension?
Thx

I mean you can create a "duration" dimension, with set cumulvar to zero = True, and having the same transit callback than the "time" dimension.
Then you can apply your break to this duration dimension instead.
time + duration = time
duration + duration = duration
so time dimension is useful for Time Windows, break at 13:00pm etc
while duration dimension is better to model max working hours (I.e.simply the vehicle capacity), break after 5 hours from start node etc...
note: You can have both i.e. two dimensions in your model...

@Mizux
Seems like a neat approach!
However, if the solver introduces Slack in the time-dimension accumulating the (same) transits may not reflect the driving time. Right?

good point, maybe adding some constraints like for any location both slackVar must be equal ?

Should work!  hoping that it would not over-constrain the problem.
Offseting the vehicle's IntervalVar by its starting time, and using a single dimension would have been be more elegant.
Applying a single break per vehicle seemed to work for me. I think it was v7.5 or v7.8

Limiting the slack var in the time-dimension could also help, by capping the difference.

Should work! hoping that it would not over-constrain the problem.
Offseting the vehicle's IntervalVar by its starting time, and using a single dimension would have been be more elegant.
Applying a single break per vehicle seemed to work for me. I think it was v7.5 or v7.8

Did you have any success with this? I tried the approach, but the solution turned out to be infeasible.
Trying a smaller instance, it appears that all breaks were put at the end and the latest break time limited the maximum duration of a route (in the duration dimension).

@gattom
I finally figured out a way to do this. Addition duration dimension does not work here and I faced the same issue you mentioned. However, offsetting the departure time in time dimension is successful after a long time of exploration. Here is the detail.
IntExpr startVar = timeDimension.cumulVar(routing.start(i));
IntVar newVar = solver.makeSum(startVar, break[0]).var();
vehicleBreaks[j] = solver.makeFixedDurationIntervalVar(newVar, break[2], "break1");
timeDimension.setBreakIntervalsOfVehicle(vehicleBreaks, i, serviceTimes);


[Update Snap] Cosmos Extension

Checklist
All items in the list below needs to be satisfied.

[ ] Is the summary of the change documented in this ticket?
[ ] Has a MetaMask Snaps team member reviewed whether the changes need to be vetted?
[ ] If there are changes that need to be vetted, attach a description and the relevant fixes/remediations to this issue.
[ ] The corresponding pull request in this repo has been merged.

This update includes the following changes: https://github.com/cosmos/snap/commit/ccec2f078360071e9854daff91ba296a0bc22fbf

Spelling, alert verbage, a fix for offline signer signDirect and signAmino (the account number was being sent out encoded oddly so was failing when offline signing a tx like a lot of dapps in cosmos, so it was changed to send out as string and then in our provider parse it into JSON) and then two requests from developers.

A getKey request that mimics the API of keplr for getting the same thing as getAccoutInfo just formatted exactly like Keplr for plug and play.

txAlert so when they use offline signer through CosmJS they can send a success message and the tx hash copyable to the user easily through MetaMask

The version has been bumped to 0.1.15


Comments on README

Just a couple of comments on the README:

[ ]  In the intro, you mentioned that this package is the "Julia version of an optimization library originally written in Fortran77". Is this Fortran library available online? If not I would remove the statement as it is probably not necessary for potential users. Otherwise, could you add a link? What do you think?
[ ] It would be good to add a complete citation or a link to the original paper from Per Lindstrom and Per Ake Wedin.
[ ] norm in after the problem statement is not the same as in the problem. (I noticed it is ok in the documentation so this is probably a markdown issue)
[ ] "First, you need to define to create a model of your problem with the CnlsModel structure." -> choose "to define" or "to create"
[ ] The mathematical formulation does not include bounds constraints while you CnlsModel include those. It could be good to add them in the mathematical formulation and just precise that those are treated as classical inequalities.

Indeed there is a link the Fortran library and I agree it's better to add it,
Thanks for taking a look at the README, it needed a small update!


Translation integration section in French

What: Translation "integration" section in french

Why: To be more accessible to French speakers

How: French is my mother tongue 🇫🇷
Issue: https://github.com/kentcdodds/glamorous-website/issues/239

Super! Looks good to me! @iGitScor could you get one or more french speakers to review this? Maybe @ mention some of the reviewers of your past PRs?

Sorry I didn't notice your comment. I'm going to try to find help for french content reviewers in addition to previous reviewers

cc @forresst, @Macxim, @etiennetalbot, @bulby97, @Philmod, @xtuc, @garlab, and @Tom-Bonnike
Thanks for any help you can give :)

French guys are usually not used to read and talk to english peoples. Making a french accessible website is awesome, thanks!

I totally agree with @xtuc but junior french devs like students are not all comfortable with English and could learn interesting concepts with some translated documentation

@iGitScor yes.
On the website, there is 'initial' written in the language menu, is this normal ?

Nope, if you could submit an issue, it would be nice. It's not a translation issue but a style issue.
I'll may try to fix later it if I can.
👏 Thanks

Yeah, I've fixed that already. Don't worry about it 😅

Great! Thanks everyone! 👏


Binary Sensor Off Adds Disabled Tag/Changes Color

Current Behavior
Hi,
I've attached a screenshot of what my binary door sensor looks like when the door is closed. I've attached the default lovelace card for reference:

This is what it looks like when opened:

As you can see it adds a disabled tag and changes the color from blue filled to gray filled. Is it possible to remove/disable the disable tag? I've attached a screenshot of how it looks when I manually use inspect editor to remove the tag:

Expected Behavior

Steps To Reproduce
`code
type: custom:mushroom-entity-card
entity: binary_sensor.aqara_front_door_sensor

secondary_info: state

fill_container: false

hide_icon: false

use_entity_picture: true

primary_info: name`

Environment
- Hassio: 2022.6.2

Anything else?
Thanks! I just want it to look the same as the default Home Assistant while I get used to it.

Hello 🙂 it's not a bug, it's by design.
You can use template card if you need custom color rules.

Oh ok.
I was able to fix it with a custom template card, here's the code for anyone else:
    primary: '{{ device_attr("binary_sensor.aqara_front_door_sensor", "name_by_user") }}'
    secondary: >
      {% if is_state("binary_sensor.aqara_front_door_sensor", "on") -%} Opened
      {%- else -%} Closed {%- endif %}
    icon: >
      {% if is_state("binary_sensor.aqara_front_door_sensor", "on") -%}
      mdi:square-outline {%- else -%} mdi:square {%- endif %}
    entity: binary_sensor.aqara_front_door_sensor
    icon_color: >
      {% if is_state("binary_sensor.aqara_front_door_sensor", "on") -%} red {%-
      else -%} blue {%- endif %}```


Getting axis values from zoomable

I'm trying to get the current zoom extremes in the financetime axis as the axis value, but it doesn't seem to work.  This is about what I'm doing:
  zoomable = x.zoomable();
  zoomable.domain([0, data.length]);

then later:
  var ext = zoomable.domain();
  low = x.invert(ext[0]);
  high = x.invert(ext[1]);

The low is a valid date, but the high is always null.  It works if I zoom in enough, but by default with the limits I gave to zoomable.domain() I can never get the high value.
How can I reliably get the axis values from the zoomable?

Figured it out by rounding properly.


Added file-based requests store. Fixes #28

This should fix #28
Of course this is not the full-DB solution, but it should work for now.

Current coverage is 58.12% (diff: 63.63%)

Merging #40 into master will increase coverage by 0.78%

@@             master        #40   diff @@
==========================================
  Files            11         12     +1
  Lines           715        812    +97
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits            410        472    +62
- Misses          234        255    +21
- Partials         71         85    +14

Powered by Codecov. Last update d8654f4...b1ca692


Add file distribution skeleton to config proxy

I am not able to do a full review as I do not have the full picture yet.
Feel free to merge as the code is not active yet.


updating readme

Adding my project excalichart to this..
https://github.com/excalichart/excalichart

Woah! Looks very cool @tc-cole. I'll be playing with it tomorrow. :smiley:


👩💻📞 WinUI Community Call (May 20, 2020)

The next WinUI Community Call will take place on May 20, 2020 and will be streamed via YouTube Live. You can catch the live stream here:
https://www.youtube.com/watch?v=TeS4rX3i_Ls
Details
Date: Wednesday May 20, 2020
Time: 16:00-17:00 UTC (9:00-10:00am Pacific)
Anyone and everyone is welcome - no pre-registration is required.
This will be an informal interactive live stream directly with members of our engineering team.
Format
In this community call we'll be doing a deeper dive into WinUI 3 Preview 1 and sharing some bonus content from our team's //Build sessions, alongside some of our partners.
At the end of every community call we have a Q&A session where our team answers your questions about all things WinUI. Ask your questions in the comments of this issue!
Agenda
TBD

A great question from @mdtauk : #2439
Will the Segoe MDL2 icons be replaced with the fluent icon system?
Something I wonder: Once WinUI 3 has been released, are there already plans on what will done next? Any controls that are planned, that will be developed (immediately) once WinUI 3 shipped?

@chingucoding  I know Input Validation is on that todo list.
Also there is the DataGrid and WinUI Ribbon.  I guess there is stuff from the freezer to be considered.

@mdtauk Input Validation will come with WinUI 3.0 if nothing unexpected happens.

Any info about https://github.com/microsoft/microsoft-ui-xaml/issues/668 and https://github.com/microsoft/microsoft-ui-xaml/issues/1080 would be appreciated

@mdtauk Input Validation will come with WinUI 3.0 if nothing unexpected happens.

I thought it had been scaled back quite a bit to hit 3.0 release?
As for other controls, some I have noted are:

Long Lived Status Messages; #913
Pagination Control; #60
UWP Ribbon; #168

Some proposals I would like to see personally:

Task Dialog; #2313
Prefix and Suffix for TextBoxes; #784
Pivot fit and finish; #940 #844
Updated Light and Dark theme colours; #920
Better Shadow support; #1009
Updates to form controls for Density with flyouts;
Updates to various form controls for better keyboarding; #918 #2255

In general I think we need to go over most UI to align where possible with Fluent Web and other post Windows 10 UWP UI frameworks.  WinUI is lacking in some areas, some controls missing.
Windows 10X could be a catalyst for hurrying the pace of updating the UI and controls - hopefully inbox apps that have remained untouched can get updated too.  Of course that would be helped by Microsoft allowing Insiders to install versions on devices (if anyone is listening, I would be happy to run it on my Surface Go 🙂).  So feedback can be submitted.

@mdtauk To my understanding it wasn't scaled back. Instead, some folks have certain extra wishes (like support for attributes such as MaxLength(n)) which would likely only arrive post WinUI 3.0. Input Validation will work just fine with WinUI 3.0 (i..e checking for a min/max input length).
Working on new controls immediately after WinUI 3.0 is out is nice and all but in my view, signinifcant resources should be invested in addressing the many bugs and small feature requests which accumulated to hundreds of issues here in the WinUI repo.
We also have a few controls which have been in preview for months now, such as the new ScrollViewer control. Those should be finished first before resources are diverted to work on entirely new controls.

I think to summarize/reiterate over the last few comments: What are the immediate plans after WinUI 3 release? What are the next steps steps the team is planning to do after the WinUI 3 release?

Working on new controls immediately after WinUI 3.0 is out is nice and all but in my view, significant resources should be invested in addressing the many bugs and small feature requests which accumulated to hundreds of issues here in the WinUI repo. In a priority-based approach, of course.
We also have a few controls which have been in preview for months now, such as the new ScrollViewer control. Those should be finished first before resources are diverted to work on entirely new controls.

Microsoft must spend the time after the initial WinUI 3.0 release to fix the open bugs. This is the best way to get confidence back in Microsoft XAML tooling. It will also make development a joy again which will spur new ideas, new applications and new developers. I continuously find bugs that would never happen in the WPF days.

Hi, a very basic question. Sorry if that is already answered somewhere else. Apps developed with WinUI with .net core - Will they run on Windows 7 as well?
Thanks a lot,

Hi, a very basic question. Sorry if that is already answered somewhere else. Apps developed with WinUI with .net core - Will they run on Windows 7 as well?
Thanks a lot,

I think it is safe to assume WinUI still depends on Windows 10, and for Windows 7 or 8 you will need to use WPF, or WinForms - which are also now Open Source

Another option you can use is the Uno project: https://platform.uno/
That allows you to run WinUI apps on Windows 7, the web and mobile platforms.

I think it is safe to assume WinUI still depends on Windows 10, and for Windows 7 or 8 you will need to use WPF, or WinForms - which are also now Open Source

Yes, we are using WPF. (Can XAML islands be used for an app targeting compatibility with Windows 7?)

Another option you can use is the Uno project: https://platform.uno/
That allows you to run WinUI apps on Windows 7, the web and mobile platforms.
That is great, yes I am tracking Uno as well.

Thank you very much for your replies @chingucoding !

Hey @gopal-amlekar, how about using Kinnara/ModernWpf. It has necessary controls and styles for WPF to match WinUI and will be useful for non-win10 projects

Please talk about input validation. It's a deal breaker and I'm so glad it's in progress. Please elaborate on your implementation plans.
Thanks folks, you're awesome!

News about ink controls like InkCanvas, InkToolbar? It would be also nice to have ink integration in the new Webview2 (like the old Edge)

I'm very excited with the WinUI plan (at last a serious UI strategy for Windows), and I can't wait for it :-) My questions:
I understand WinUI will run only on Windows 10 (as I understand, uno on Windows 7 is "just" PWA or electron based) , but what version explicitly as there are many? Will it be possible to use some features on 1703, others 1809, and so on?
Also any reasonable WinUI 3 release date?
Also, what will be the dependencies (like dll or nugets)? For example, if I write a "pure" .NET Framework or .NET Core app using C# (not UWP, not winrt, not c++), will I need Win2D with its nuts-driving MSVC deps deployment issues? This is just an example.
Also, will I be able to use the raw DirectX or Direct2D surfaces/rendertarget/devicecontexts below? without Win2D?
Will Xaml Islands will go? (as show in the roadmap picture?) Or is just they will become useless?
Also, what's the relation between Windows.UI.Xaml and Microsoft.UI.Xaml? why these two?

@smourier

I understand WinUI will run only on Windows 10 (as I understand, uno on Windows 7 is "just" PWA or electron based) , but what version explicitly as there are many? Will it be possible to use some features on 1703, others 1809, and so on?

WinUI 3 will run on 1803 Windows 10 and above. If you need to target even older Windows 10 versions, you will need to use WinUI 2 (at least 1703 and above).

Also any reasonable WinUI 3 release date?
A first WinUI preview will be released around Build next week. Release of WinUI 3 is currently slated for end of the year.

Will Xaml Islands will go? (as show in the roadmap picture?) Or is just they will become useless?
XAML Islands will be included in WinUI 3 going forward. You can still modify your existing Win32 apps progressively with WinUI 3 like you can with XAML Islands now.

Also, what's the relation between Windows.UI.Xaml and Microsoft.UI.Xaml? why these two?
Windows.UI.Xaml.* is the namespace for the OS UWP UI APIs. These won't go away (as they ship with the OS). No investments will happen in them any longer though, only necessary (security) support if required. You can still write an UWP app which will not use WinUI. Such an app will use that namespace.

Microsoft.UI.Xaml is the namespace of the WinUI components (controls, input APIs,...). If you are using WinUI 2 already you are already using both namespaces. Some controls like NavigationView exist both in the OS and WinUI 2, the namespace will indicate which version you are using in your app.
On a sidenote, you won't be able to mix both Windows.UI.Xaml.* and Microsoft.UI.Xaml.* in a WinUI 3 app.

Compilation times please - will these be improved any time soon? Or do we need to wait another year?
(my app right now compiles in about 2 minutes 13 seconds, which is insanely much)

I have a few questions

What timescales/features are likely for new datagrid?
Will community toolkit datagrid work for potential preview release in May on Win32?
Is there a propertygrid in the pipeline for WinUI?
Is there a roadmap outlining what is likely to be delivered and when?

🦙 @cirrusone some quick initial info for you:

I'm assuming they won't work on new DataGrid until after WinUI 3 ships, so see 4 below.
We've been doing some tests of the Toolkit with WinUI 3, but not sure if we've tested the current DataGrid yet - I'll have to check. However, to use the Toolkit with WinUI 3 you would need a version of the Toolkit built for WinUI 3. While we have a branch we're working from, it's not trivial to build due to dependencies which also need to support WinUI 3. I'll have an update on this work on the call though, so tune in and join us!
PropertyGrid is an interesting and complex control. We kind of have a modern internal one for the Toolkit's sample app, but it's not generalized enough to ship. If you want to open an issue on the toolkit repo we can certainly start a discussion around what it'd take to lift ours as a starting point and going from there.
The roadmap for WinUI is here, though @ryandemopoulos maybe it could get an update based on all the info mentioned in community calls this year? In the meantime check out the recording of the last couple of community calls as they've shared updates there.

Even after a long period of investigation, WinUI Team cannot found the cause of the following problems. I hope these very obvious bugs can be resolved as soon as possible.
#1820 #2040 #2331

Is there any progress / timeframe on nugets for us to convert existing UWP to  UWP (winui3.0) + .net core.
When are we going to see :

Winui3.0  Preview Nugets
Winui3.0 templates for UWP/.net core
Windows Community Preview (based on winui3.0) nugets.

Too really add value / spot issues we need the above to start converting existing projects.

Is it possible to have an update and a discussion of all the bugs I'm finding on TreeView?

@pinox

When are we going to see :
Winui3.0 Preview Nugets
Winui3.0 templates for UWP/.net core

Both those things were already in the alpha (except .net core support which they didn't commit to supporting until preview)

Yes! Excited to see Uno Platform on the schedule! 🎉

I just finished seeing The Journey to One .NET session from Build 2020 and heared about Multi-platform App UI (MAUI).
So the questions are what will be the relation (if there will be a relation) between this two projects?
There will be integration between WinUI 3 and MAUI?
We will be able to create WinUI3 apps through MAUI? There will be a convergence of the XAML dialects?

Will Microsoft provide a preview version of win2d for winui 3.0 soon?

Will the Segoe MDL2 icons be replaced with the fluent icon system?

Very good question. And please update the license of the Segoe MDL2 icons font, we want to use it on other platforms than Windows with Uno Platform.

Some guidance on porting a UWP app with desktop extensions to WinUI for Desktop would be great. (activation, getting win32 companion app in the main UWP app, conversion tools)


How can I ignore a story?

Maybe there's a story that's currently flakey and I want to ignore it in the meantime while it is fixed. Is there a way to exclude the story from storyshot's automation?

You should now be able to ignore stories via a configuration file .storyshots.config.json and add the following:
{
    "ignoreStories": [
        "your-story--to-ignore"
    ]
}

See the README.md for more details! :)


Bugfix/#29 - fix off method

add callback parameter to the off method
_e[event] now contains array of tuples - [function name, handler]
off can be called:

without arguments - all event handlers are removed
with events only - all handlers for provided events are removed
with events and handler - the given handler is removed from provided events

Fixes #29

Are you sure your solution works? I have no luck with my test example:
    const dupa = () => alert('DUPA');

    @Component('.count-control')
    class CountControl {
      init() {
        this.$element.on('click', '.control-increment', dupa);
      }

      @Evt('click', '.control-increment')
      increment() {
        this.$emit('counter.increment');
      }

      @Evt('click', '.control-decrement')
      decrement() {
        this.$element.off('click', dupa);
      }
    }

Also upon investigation, handlerName doesn't look very unique:

Now my example, works, should one like below also work?
HTML:
  <div class="count-control">
    <button class="control-increment">+1</button>
    <button class="control-decrement">-1</button>
    <button class="remove">REMOVE</button>
  </div>

JS:
    @Component('.count-control')
    class CountControl {
      @Evt('click', '.control-increment')
      increment() {
        this.$emit('counter.increment');
      }

      @Evt('click', '.control-decrement')
      decrement() {
        this.$emit('counter.decrement');
      }

      @Evt('click', '.remove')
      remove() {
        this.$element.off('click', this.increment)
      }
    }

Hitting REMOVE button making +1 to stop work

I talked with @xolir and @michaldziubek and I was told that if the event is given by decorator @Evt then we assume that it was done on purpose thus the event won't be taken off.


JIRA Identity Provider

We should think about JIRA Identity Provider, so we can retrieve information from JIRA and operate there. API should be similar to existing GitHub Identity Provider

For now, lets focus entirely on GitHub, these are just notes