how to use forward secrecy with TLS?

I'm trying to configure tls_ciphers to use something with forward secrecy. I've tried to use the same ciphers list I use for apache httpd (so it's tested and it works) but was not able to get a connection working with XRDP when using these.
Starting point (it works like this):
security_layer=tls
crypt_level=high
certificate=/etc/xrdp/cert.pem
key_file=/etc/xrdp/key.pem
ssl_protocols=TLSv1.2
tls_ciphers=HIGH

xrdp logs will show
[20180202-10:44:21] [INFO ] Socket 12: AF_INET connection received from <client IP> port 37802
[20180202-10:44:21] [DEBUG] Closed socket 12 (AF_INET <server IP>:3389)
[20180202-10:44:21] [DEBUG] Closed socket 11 (AF_INET <IP_ADDRESS>:3389)
[20180202-10:44:21] [DEBUG] TLSv1.2 enabled
[20180202-10:44:21] [DEBUG] Security layer: requested 3, selected 1
[20180202-10:44:31] [INFO ] connected client computer name: <client hostname>
[20180202-10:44:31] [INFO ] TLS connection established from <client ip> port 37802: TLSv1.2 with cipher AES256-GCM-SHA384

As far as I know AES256-GCM-SHA384 doesn't provide any forward secrecy. If the server private key is leaked all previously recorded traffic could be decrypted.
So I tried the following:
security_layer=tls
crypt_level=high
certificate=/etc/xrdp/cert.pem
key_file=/etc/xrdp/key.pem
ssl_protocols=TLSv1.2
tls_ciphers=ECDHE-RSA-AES128-GCM-SHA256

Trying to connect with xfreerdp or the Windows remote desktop client doesn't work in this case, TLS handshake fails. For example xfreerdp shows
$ xfreerdp /v:vcl1034.fmi.ch /log-level:TRACE
[10:55:11:769] [10219:10220] [DEBUG][com.freerdp.channels.cliprdr.client] - VirtualChannelEntryEx
[10:55:11:769] [10219:10220] [INFO][com.freerdp.client.common.cmdline] - loading channelEx cliprdr
[10:55:11:769] [10219:10220] [INFO][com.freerdp.client.x11] - No user name set. - Using login name: taglenri
[10:55:12:777] [10219:10220] [DEBUG][com.freerdp.client.x11] - Searching for XInput pointer device
[10:55:12:777] [10219:10220] [DEBUG][com.freerdp.client.x11] - Pointer device: 11
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Enabling security layer negotiation: TRUE
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Enabling restricted admin mode: FALSE
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Enabling RDP security: TRUE
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Enabling TLS security: TRUE
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Enabling NLA security: TRUE
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Enabling NLA extended security: FALSE
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - state: NEGO_STATE_NLA
[10:55:12:779] [10219:10220] [DEBUG][com.freerdp.core.nego] - Attempting NLA security
[10:55:12:782] [10219:10220] [DEBUG][com.freerdp.core.nego] - RequestedProtocols: 3
[10:55:12:789] [10219:10220] [DEBUG][com.freerdp.core.nego] - RDP_NEG_RSP
[10:55:12:789] [10219:10220] [DEBUG][com.freerdp.core.nego] - selected_protocol: 1
[10:55:12:789] [10219:10220] [DEBUG][com.freerdp.core.nego] - state: NEGO_STATE_FINAL
[10:55:12:789] [10219:10220] [DEBUG][com.freerdp.core.nego] - Negotiated TLS security
[10:55:12:789] [10219:10220] [DEBUG][com.freerdp.core.nego] - nego_security_connect with PROTOCOL_TLS
[10:55:12:790] [10219:10220] [ERROR][com.freerdp.core] - freerdp_set_last_error ERRCONNECT_TLS_CONNECT_FAILED [0x00020008]
[10:55:12:790] [10219:10220] [DEBUG][com.freerdp.core.nego] - Failed to connect with TLS security
[10:55:12:790] [10219:10220] [ERROR][com.freerdp.core.connection] - Error: protocol security negotiation or connection failure

and the xrdp logs are showing
[20180202-10:54:53] [INFO ] Socket 12: AF_INET connection received from <client IP> port 37970
[20180202-10:54:53] [DEBUG] Closed socket 12 (AF_INET <server IP>:3389)
[20180202-10:54:53] [DEBUG] Closed socket 11 (AF_INET <IP_ADDRESS>:3389)
[20180202-10:54:53] [DEBUG] TLSv1.2 enabled
[20180202-10:54:53] [DEBUG] Security layer: requested 3, selected 1
[20180202-10:54:53] [DEBUG] Closed socket 12 (AF_INET <server IP>:3389)

Is it me doing something wrong or is this a bug / unsupported cipher(s)?
Server info:

CentOS 7
xrdp 0.9.5 from EPEL repository

Tested clients are Fedora 27 using freerdp 2.0 and Windows 10 remote desktop client

Mhm this might actually be a bug in the EPEL package for xrdp. Just tried a Fedora 27 test server machine and that worked as expected. I'll try to double check and post my findings here. Sorry for the noise if this was actually a packaging issue.

Actually turns out this might be a limitation of the current xrdp code when using openssl 1.0.2 (which is what CentOS / Red Hat are shipping) vs. the newer openssl 1.1 shipped in Fedora. According to the official openssl wiki [1] the Perfect Forward Secrecy cipher suite must be explicitly enabled in the application or it will be silently ignored. I looked for the mentioned code in xrdp but I didn't found anything like that.
I can also confirm Red Hat / CentOS is patching their default httpd daemon package to activate the Perfect Forward Secrecy cipher suite as can be found in [2]
[1] https://wiki.openssl.org/index.php/Diffie-Hellman_parameters
[2] https://git.centos.org/blob/rpms!httpd.git/c7/SOURCES!httpd-2.4.6-ssl-ecdh-auto.patch

I opened pull request #1024 . With that code change applied automatic ECDH was working when using openssl 1.0.2k as found in CentOS as of today. This made possible a connection using the ECDHE-RSA-AES256-GCM-SHA384 cipher and fixed the issue.

Merged #1024.


[Feature Request]: module for Microsoft.Network/p2svpnGateways@2020-11-01 for hub deployment

Description
provide a module to deploy P2S VPN into virtual wan hub

Hey @GeraldGoldstein,
This is an absolut legit request. Please note, since last September, we've been migrating all modules as per the AVM (Azure-Verified-Modules) specs to AVM-modules that are published in the Public Bicep Registry. This repository in turn will 'only' be continued as a CI for inner sourcing.
That being said, the request is absolutely legit, and I'd invite you to create a module proposal here.
Will close the issue for CARML though :)


Rethink the predefined document structure

Context
we need to discuss if  docarray.documents should have all of this field (embedding etcc).
I think we should say to the user that they should almost always define their own BaseDocument

Action points:

[ ] Keep them
[ ] Handle storytelling by telling it's only "onboarding help" to get you off the ground


Allow ['catch'] as a synonym for .catch

If code has to support being parsed by IE8, it is necessary to avoid using the reserved word "catch" as an identifier, i.e.:
new Promise(function(resolve, reject) {
  ...
})
.then(...)
['catch'](function(err) { ... })

See this note in es6-promise for details.
Unfortunately, this pattern triggers the "promise/catch-or-return" rule, so one must consistently disable that rule to avoid having warnings. It would be ideal if ['catch'] would be interpreted the same as .catch. Is that possible, or is there a workaround (without using a transpiler to rewrite the code)?

I think there's already an eslint rule for this. I can check!
On Wed, Jun 21, 2017 at 1:33 PM Tyler Brandt<EMAIL_ADDRESS>wrote:

If code has to support being parsed by IE8, it is necessary to avoid using
the reserved word "catch" as an identifier, i.e.:
new Promise(function(resolve, reject) {
...
})
.then(...)
['catch'](function(err) { ... })
See this note in es6-promise
https://github.com/stefanpenner/es6-promise#usage-in-ie9 for details.
Unfortunately, this pattern triggers the "promise/catch-or-return" rule,
so one must consistently disable that rule to avoid having warnings. It
would be ideal if ['catch'] would be interpreted the same as .catch. Is
that possible, or is there a workaround (without using a transpiler to
rewrite the code)?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/xjamundx/eslint-plugin-promise/issues/65, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAPBf6du4jqzcPEx-cWfgh5BlTPy3Wf2ks5sGX4pgaJpZM4OBe6I
.

Sorry I had misinterpreted this request. This should be fairly straight forward to support.

I'll try and work on this today if I can

Published in 3.6.0


Azure SQL Database Deployment - Invoke-sqlcmd fails when password has special characters

Task - Azure SQL Database Deployment
Version - 1
Agent - Hosted
Phase - Release
Issue Description - On trying to run Inline SQL script we get login failed error if the SQL Password contains special characters like semi-colon(;)
Solution - Enclose user ID and password between single quotes when executing Invoke-sqlcmd command through this task. Thanks!

@debashis1982
I really appreciate your efforts to raise PR in order to fix this Bug.
Since we are planning to deploy this fix with the deployment of the current sprint. Today is the second last day for the check. And we have to address a few more scenario along with your fix. So, I have addressed the fix for this issue as below mentioned PR
PR - #8155


vscode: remove invalid json from tasks and launch

Checklist:

[x] Read the Code of Conduct and Contributing Guidelines.

[x] Followed the commit message guidelines.

[x] Stack adheres to Appsody stack structure.

Related Issues:
refs: https://github.com/appsody/stacks/issues/230

I have a PR for this now. https://github.com/appsody/stacks/pull/251


Pricing for spelled items.

Add a way to have separate sell listings for spelled variants of the same item

Seems like this would effectively be adding/finishing spell skus right? I might be willing to take this next.
Can another member confirm the work needed here. I'll post again if I get to look closer sooner.

Yes, it's pretty much the same as how I implement support for painted items, but keep in mind that you can have more than one spell on an item.

Relevant: https://github.com/TF2Autobot/tf2autobot/commit/a8662706034b4d236ae6fbab0549a8e02b97cbdc


oauth2: added token revocation handling

Signed-off-by: Jason Rossiter<EMAIL_ADDRESS>

Related to #111.
Here's my proof of concept for token revocation.
I tried to keep it as close as the other implementations as possible.

Awesome, this looks really good already! I think that we should try and include this here as well:

If the particular
token is a refresh token and the authorization server supports the
revocation of access tokens, then the authorization server SHOULD
also invalidate all access tokens based on the same authorization
grant (see Implementation Note).

Refresh tokens and access tokens are linked implicitly through the request object at the moment, for example: https://github.com/ory-am/fosite/blob/master/handler/oauth2/flow_resource_owner.go#L64-L76
We could add a unique id to the request objects and use that id to look up linked tokens.
request.go
func (a *Request) GetID() url.Values {
	if a.ID == nil {
		a.ID = uuid.New()
	}
	return a.ID
}

What do you think?

Yes that would seem like the only way to link them together at the moment.
The refresh token ID could be linked with PersistRefreshTokenGrantSession().
Would the access token request be assigned the same request ID or have another field like GeneratedBy with the ID of the refresh token?

The refresh token ID could be linked with PersistRefreshTokenGrantSession().
Would the access token request be assigned the same request ID or have another field like GeneratedBy with the ID of the refresh token?

I think that we don't need to go that far. The request object and request id is generated only once per OAuth2 request. If two tokens (one refresh, one access) are generated during that same request, and they store the request object (true for both refresh and access), the will have access to that request id parameter. Thus, it will be possible to find which access token has been issued using the given refresh token.
Or did I miss something here?

They don't state if I can revoke an already used refresh token, or if I can revoke only "active" refresh tokens. The first (revoking used rt's) would imply that all tokens followed by that rt must be invalidated. The second would imply that we only need to revoke the at and rt that was issued when performing the refresh_token grant.

Yes that's right, I thought a bit too far ahead for that one.
I suspect it may be the latter option for revoking refresh tokens. The clients should have already cycled their old refresh token if they ever went ahead with the refresh_token grant.
Which interface would be responsible for removing the additional access token when revoking a refresh token?

Will the implemented storage interface have to be responsible for cleaning up the access token?
If the implemented storage interface is responsible then would there need to be a flag to specify:

Only delete this refresh token (refresh_token grant type in PersistRefreshTokenGrantSession() does this)
Delete this refresh token and the linked access token

I suspect it may be the latter option for revoking refresh tokens. The clients should have already cycled their old refresh token if they ever went ahead with the refresh_token grant.

I think so too, but I'll check out the RFC one more time to be sure. It would still be possible to achieve the former (revoking expired RTs) by passing down the request id when the refresh_token grant is used.

Which interface would be responsible for removing the additional access token when revoking a refresh token?
Will the implemented storage interface have to be responsible for cleaning up the access token?

I think yes, the storage will be responsible for removing the access token as well.

If the implemented storage interface is responsible then would there need to be a flag to specify:

Only delete this refresh token (refresh_token grant type in PersistRefreshTokenGrantSession() does this)
Delete this refresh token and the linked access token

Good thinking here. One possibility would be a separate API call in the storage interface, so it's super-self explaining and transparent during development. So adding something like to TokenRevocationStorage:
type TokenRevocationStorage interface {
	RefreshTokenStrategy
	// RefreshTokenStorage
	AccessTokenStorage
	AccessTokenStrategy

	RevokeRefreshToken(ctx, signature)
}

We could even go so far and separate Delete[Refresh|Access]TokenSession and Revoke[Access|Refresh]Token, so it's uber-clear that this store action is for revokation. The idea behind Delete[Refresh|Access]TokenSession was originally to let developers think about token revokation, but I think that the signature doesn't make that clear enough.
What is your take on this?

Adding RevokeRefreshToken(ctx, signature) would definitely make things a lot clearer for developers.
Creating RevokeAccessToken(ctx, signature) would depend on if there are any specific use cases to do additional logic.
We could add both and leave it up to the developer on what extra functionality they'd want in each?

We could add both and leave it up to the developer on what extra functionality they'd want in each?

Yes, let's do it that way!

One more thing to consider with RevokeToken().
Should this function only be responsible for making sure both Revoke[Access|Refresh]Token are called? Should it leave the token revocation and access token discovery process to the storage implementation?

Should this function only be responsible for making sure both Revoke[Access|Refresh]Token are called? Should it leave the token revocation and access token discovery process to the storage implementation?

Good question. I think that fosite should be responsible for handling most the logic so that developers who use this library make less mistakes. Therefore, I think that discovery should be done in RevokeToken.

If RevokeToken needs to do the discovery then there will need to be an efficient way to retrieve a token by the generated request ID.
We'd need a method to do this for both refresh and access tokens. What do you think?

If the particular
token is a refresh token and the authorization server supports the
revocation of access tokens, then the authorization server SHOULD
also invalidate all access tokens based on the same authorization
grant (see Implementation Note).  If the token passed to the request
is an access token, the server MAY revoke the respective refresh
token as well.

If RevokeToken needs to do the discovery then there will need to be an efficient way to retrieve a token by the generated request ID.

I think this is something that the storage is responsible for! People could use in-memory access, etcd, redis, or something else. Our goal is to make it effective and easy to use, efficiency with backend stores is not our task imho :)

If the token passed to the request is an access token, the server MAY revoke the respective refresh token as well.

This makes a lot of sense! If the access token was compromised, the refresh token might be compromised as well, so why not remove both and be safe!

Therefore, I think that discovery should be done in RevokeToken.

By this did you mean discover should be done in Revoke[Access|Refresh]Token?
I may have misread something; RevokeToken being a fosite implementation which would call Revoke[Access|Refresh]Token which would then do the discovery? Is this correct?

Ah, sorry for the misunderstanding. I think that token discovery should be done here: https://github.com/ory-am/fosite/pull/112/files#diff-c668075dab6cdbe66be88b6e77f8e7efR14

Haha, no problem.
Is my understanding of discovery correct here?
Discovery being the workflow where, given one token type, you'd look for the other token pair.
Eg: Refresh token with request ID 1, look for access token with request ID 1.

I think this is something that the storage is responsible for! People could use in-memory access, etcd, redis, or something else. Our goal is to make it effective and easy to use, efficiency with backend stores is not our task imho :)

If it's up to the storage then Revoke[Access|Refresh]Token would be doing the discovery right?

Is my understanding of discovery correct here?

Partially :D So yes, this is correct:

Discovery being the workflow where, given one token type, you'd look for the other token pair.
Eg: Refresh token with request ID 1, look for access token with request ID 1.

With the following paragraph:

I think this is something that the storage is responsible for! People could use in-memory access, etcd, redis, or something else. Our goal is to make it effective and easy to use, efficiency with backend stores is not our task imho :)

I meant that making this look up performant is the task of the store, so a response to:

If RevokeToken needs to do the discovery then there will need to be an efficient way to retrieve a token by the generated request ID.

which I understood as: "how do we make this lookup fast?"
I hope this clears up the picture :)

Okay that much is clear :)
What about this?

If it's up to the storage then Revoke[Access|Refresh]Token would be doing the discovery right?

If it's up to the storage then Revoke[Access|Refresh]Token would be doing the discovery right?

💯

PR updated.

Removed context from Write RevocationResponse

Added GetID and ID fields to Requester interface

Fixed RevokeToken logic to match RFC flow

Awesome, I will take a look in the afternoon!

Added discovery, let me know if it's along the lines of what you were thinking.

yes! awesome! are you planning any cleanup or is this ready for final review?

Final review (hopefully) :)

Updated the sections you mentioned. I hope I didn't miss anything.

I this may be caused by the mixture of storage and strategy interface embedded in TokenRevocationStorage.
The example storage is also missing the key example functions so I'll need to add those in tomorrow.

Okay this commit was a lot more involved :)

Moved strategies out of TokenRevocationStorage interface
Added revoke token options to the authorize code workflow on the example store page
Added revoke functionality to the example store
Generated mocks and removed old ones (I assume the project had a different structure previously which caused duplicate definitions are running ./generate_mocks.sh)

Thanks!

@jrossiter you are now a part of the hall of fame :) ec24a6eba332b7960f207a4247e74f8b97786217


No sound on RPi 4 3.5mm connector

Describe the problem
After deploying I don't get any sound through the 3.5mm connector on the Raspberry Pi.
I did not change any settings (so multiroom and automatic output are enabled)
balenasound.log
What is weird is that the audio container only detected two HDMI audio cards, but the 3.5mm connector works (I tried it with another software).
Device information

Raspberry Pi 4B 8GB
16 GB microSDHC Class 10
balenaOS v2.103.1+rev1 (Production Mode)
Supervisor v14.0.14

Looks related to this:
https://github.com/balenablocks/audio/issues/100

Thanks!
As the issue suggested, just moving the lines
# Enable VC4 Graphics
dtoverlay=vc4-kms-v3d

to the end of the file fixes the problem.


DLA Cores for Jetson

Hello, I would like to understand if the code runs on DLA cores or not? Even after changing the settings for dla_cores from -1 to 0 or 1, for a jetson device, I see no improvement in the model. When looking at the clock frequencies of the two cores, they are shown inactive on a nvidia jetson device.

Same issue here - Seems like this would give a nice performance bump if it were working

might be a bit late to this...but using the provided pretrained onnx models, I believe superpoint does not use DLA whereas some of the superglue layers can be run on DLA. You can look at the attached profile log for more details. The reason why superpoint and some of the superglue layers are not run on DLA is because they are not supported.
superglue.log
superpoint.log


Issue_security - Inclusion of functionality from an untrusted source

Tracking issue for:

[x] https://github.com/se2024-jpg/WolfTrack6.0/security/code-scanning/5

No changes needed for this security issue as it is false positive.


Perfview option to display/export actual time/ticks instead of/in addition to the time offset

This is important when comparing PerfView logs with network traces or other logs and trying to line them up.

This seems reasonable.  Where specifically would you want to see this?  Would you be looking to have this information in the events view?

I also would like to have this option to facilitate analysis of long trace logs. Specifically, I would like the Events view to display a column with the absolute (UTC or local) time instead of or in addition to the existing time from the start of trace capture.  The time range controls would also accept absolute time.

This seems reasonable to have.  Would you be interested in submitting a PR for this?

I would, but I’m not familiar with the codebase and would need detailed guidance on where to make the changes, test requirements, etc.

From: Brian Robbins @.>
Sent: Wednesday, November 16, 2022 3:29:28 PM
To: microsoft/perfview @.>
Cc: Oleg Sych @.>; Comment @.>
Subject: Re: [microsoft/perfview] Perfview option to display/export actual time/ticks instead of/in addition to the time offset (Issue #1700)
This seems reasonable to have. Would you be interested in submitting a PR for this?
—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fmicrosoft%2Fperfview%2Fissues%2F1700%23issuecomment-1317816476&data=05|01|olegsych%40microsoft.com|d602dc3b916b4139c2f508dac82a6856|72f988bf86f141af91ab2d7cd011db47|1|0|638042381721941367|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=G9%2FIGSW2VTXhotxrA5%2BdZuP18xQPGDMuc5%2BTovMJWLo%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAB7X2E7E5ZSGSQIQBDQQ7LTWIVU5RANCNFSM5764BCDQ&data=05|01|olegsych%40microsoft.com|d602dc3b916b4139c2f508dac82a6856|72f988bf86f141af91ab2d7cd011db47|1|0|638042381721941367|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=ltySTCc0Xha8hBcvTL9iVE8EJsSuYNcgKF36%2FsKOZoU%3D&reserved=0.
You are receiving this because you commented.Message ID: @.***>

Hey, this feature is very useful to me too. Seems there're not update since 2022, I will try make a PR for it. Just FYI. 😀


Projects are not listed in the Ui

I deployed the latest docker image and got this error. The project page is not getting populated.

Please follow the ISSUE_TEMPLATE. We can't help you without your environment information.


In-skill products fail to obtain Product IDs, Deployment Fails

Ask deploy is not working despite verifying everything is correct several times as well as trying to deploy it several times. Please help! Thank you!
`Profile for the deployment: [default]
In-skill product deployment failed.
[Error]: No skill Id found in the current skill project. Use "ask deploy" to deploy in-skill product with skill if the skill has not been deployed yet.
Redacted:Premium_Facts_Live Redacted$ ask deploy -pl --profile IAM
Skill Id: redacted
Skill deployment finished.
Model deployment finished.
Lambda deployment finished.
Lambda function(s) updated:
[URI] redacted:ask-custom-Premium_Facts_Live-IAM
No in-skill product to be deployed.

I answered a similar question here: https://forums.developer.amazon.com/questions/169461/cant-deploy-a-skill-with-iap-via-ask-cli.html

The skill id used can be found is in the .ask/config file.  Is there a skill_id present there?

@iknowzo when you use a different profile, the cli reads from a different part of the config file.  Try creating the ISP's with the profile flag, e.g. ask add isp --profile <profile name>.   If that doesn't do it, and you fell comfortable editing your .ask/config file directly, combine the different profile sections into the one you want to use.  Note: if you don't specify a profile, it will use 'default'.

When I attempt to deploy, I receive the following errors:
Invalid in-skill product file: [ID] undefined [FILE] isps\entitlement\history_pack.json
Invalid in-skill product file: [ID] undefined [FILE] isps\entitlement\space_pack.json
Here's a snippet of the .ask/config file:
{
"deploy_settings": {
"default": {
"skill_id": "amzn1.ask.skill.0075094c-144e-4a63-8272-7a44e75672a6",
"was_cloned": false,
"merge": {
"manifest": {
"apis": {
"custom": {
"endpoint": {
"uri": "ask-custom-Premium_Facts_Sample-default"
}
}
}
}
},
"in_skill_products": [
{
"deploy_status": "Add",
"filePath": "isps\entitlement\history_pack.json"
},
{
"deploy_status": "Add",
"filePath": "isps\entitlement\space_pack.json"
},
{
"deploy_status": "Add",
"filePath": "isps\subscription\all_access.json"
},
{
"deploy_status": "Associate",
"filePath": "isps\entitlement\science_pack.json",
"productId": "amzn1.adg.product.808ee538-9a20-4e61-a1c3-79efda3b77e4"
}
]
}
}
}
The science_pack.json product updates without issue. The each "pack" looks identical, with a future release date the same in each. I get an error on deployment on the all_access.json file because I don't have images and the product name needs to be 2 to 50 characters, but I know those are easy fixes.
I have yet to add an ISP by specifying the profile (@franklin-lobb), but any tips in the meantime?


Update to Swift 5

Any update on this?

Hi @Kalvin126,
unfortunately some libraries I use broke the API, which make the update to Swift 5 a little bit more complicated than I thought, for this reason, I have two news for you here:
The sad one: the current version won't have any update anymore.
The good one: I'm working on the new version of the app, and this new version will be completely fresh and new.
I'm still researching some things that I will bring to the app and as soon I restart the development, you will be able to see here if you watch the repo.

Alrighty. I was hoping to contribute if you are open to that. Any time lines on the next version?

Not yet, but I'm going to organize better the Projects and the code will be open since the very beginning, then you will be able to send some PRs, which will help a lot!


Migrate all apollo relate packages to 3.0

https://github.com/UnlyEd/next-right-now-admin/blob/88b4be5da9e765e6550ae2b68dc4250979a5926b/package.json#L54
https://www.apollographql.com/docs/react/v3.0-beta/migrating/apollo-client-3-migration/

The Apollo Boost project is now retired, because Apollo Client 3.0 provides a similarly straightforward setup.

Includes functionality that previously required installing additional packages also includes numerous bug fixes and optimizations.

WARNING: Apollo Client 3.0 is a major-version release that includes breaking changes. If you are updating an existing application to use Apollo Client 3.0, please see the changelog for details about these changes.

Hi @cristian05 thanks for the heads-up.
This lib is not maintained as stated per https://github.com/UnlyEd/next-right-now-admin#status-stablepocnon-maintained
Also, the Apollo v3 support is still Beta version and I wouldn't include it until a proper release is made. Therefore, I have no intention of migrating to Apollo v3.


Update Theme

[x] update theme color
[x] update theme font

@adamshakhabov change theme font is also an important function.

@adamshakhabov ThemeFont contains EastAsianFont and LatinFont, maybe two properties need to be exposed.
And the font of textFrame also should have this two properties.

The new ISlideMaster.ITheme property has been added. It contains properties that allow read/update fonts and colors of theme scheme.
The feature will be available in the next v0.40.0 version.


Payment

Hi
I would like to create payment control and insert it into registration form. Where do I put my legacy C# payment code?
Does anybody have sample how to combine two forms and server code?
thx in advance

You can put your server side code in xyzEndpoint, creating a service that you can call when needed.

Closing due to inactivity.

@Estrusco Hi. I was able to create payment panel (control) and insert it into User entity dialog.
User pays on registration. Now I have two entities saved, but somehow I would like to combine saving together into one transaction, bill Creadit Card, save payment record and only then create user.
Can I somehow stuff two entities into request to be send to EndPoint? Or how is this to be done?


Trouble with perms

I'm having trouble setting permissions to roles, I've added roles to the permissions file, but it's still saying people don't have permission to change volume and such
EDIT: Never mind, I've done it
cant figure out how to delete this.

@JammyWaffles Can you tell me how exactly I set the perms to I can use commands ? I added my ID<PHONE_NUMBER>74924544) to UserList at [MusicMaster] but it wont work


Continuous hashing

Based on #249. Fixes #237 and provides groundwork for #235.

Was this actually merged? I don't see it in master.

reopened as #252


Removes .catch(done) from the tests

Sets up migrations so that a user can clone the repo and run "truffle test" right away.
Removes all .catch(done)'s from the tests because they are unnecessary. (See issue #17)

Hi @DavidKnott. Thanks for this. This was needed. We merged this in another PR!


MM Crashes after a few second

I tryed disabling the calendar, the feeds an even the compliments, but it is still chrasing.
I´ve tested it in two php servers (both Windows).
Any suggestions?
Thanks!!

Nevermind, started from scratch and everything works now!


Bump lifecycle to 0.11.3

Release

@jabrown85 Does this S3 asset need updating too?
https://github.com/heroku/pack-images/blob/9822d5f5137ccd23079ebb2311b7d614e992e3ba/Dockerfile.build#L20

Yeah - we really should remove that binary at this point. I can open that in another PR though.


[HELP] mutable borrow somehow left captured in InputStreamExtManual::read_all_future

I'm currently dipping my toes in GTK+4 using this library, and wanted to make a network request using GIO. Connecting to a HTTPS server I own, I tried to read its homepage (just as a test), but instead I got apparently some lifetime issues:
error[E0597]: `_res` does not live long enough
  --> src/main.rs:37:36
   |
37 |             output.read_all_future(&mut _res, glib::Priority::default())
   |             -----------------------^^^^^^^^^----------------------------
   |             |                      |
   |             |                      borrowed value does not live long enough
   |             argument requires that `_res` is borrowed for `'static`
...
43 |         };
   |         - `_res` dropped here while still borrowed

error[E0505]: cannot move out of `_res` because it is borrowed
  --> src/main.rs:41:41
   |
37 |             output.read_all_future(&mut _res, glib::Priority::default())
   |             ------------------------------------------------------------
   |             |                      |
   |             |                      borrow of `_res` occurs here
   |             argument requires that `_res` is borrowed for `'static`
...
41 |             let res = String::from_utf8(_res).unwrap();
   |                                         ^^^^ move out of `_res` occurs here

I wonder if the buffer argument on InputStreamExtManual::read_all_future having its lifetime declared as 'static is somehow linked to this...
Here's my main.rs file, stripped of everything non-essential:
use gtk::{glib, gio};

fn main() {
    glib::MainContext::default().spawn_local(async move {
        let client = gio::SocketClient::new();
        let dest = gio::NetworkAddress::new("fireburn.ru", 443);
        let socket = client.connect_future(&dest).await.unwrap();
        // A little bit awkward that TlsClientConnection::new() doesn't consume the socket.
        // Is this an artefact of the underlying C API or a feature?
        let tls = gio::TlsClientConnection::new(&socket, Some(&dest)).unwrap();
        tls.set_advertised_protocols(&["http/1.1"]);
        tls.handshake_future(glib::Priority::default()).await.unwrap();
        // Swapped because it looks better to me from my standpoint,
        // where output is what we get, and input is what we give
        let (input, output) = (tls.output_stream(), tls.input_stream());

        // bitbang HTTP protocol
        input.write_all_future("GET / HTTP/1.1\r\nHost: fireburn.ru\r\nConnection: close\r\n\r\n".as_bytes(), glib::Priority::default()).await.unwrap();

        let res: String = {
            let mut _res: Vec<u8> = Vec::default();
            output.read_all_future(&mut _res, glib::Priority::default())
                .await
                .unwrap();

            let res = String::from_utf8(_res).unwrap();
            res.to_string()
        };
        tls.close_future(glib::PRIORITY_DEFAULT).await.unwrap();

        println!("{}", res);
    });
}

There are multiple problems here

You have to use block_on() instead of spawn_local() here or otherwise your application just exits immediately because you're not running an actual main loop on the main context
You're ignoring the return value of read_all_future(). You have to pass in an owned buffer and will get back that buffer with content. Borrowing the buffer is not possible safely.
You have to provide an initialized buffer of a big enough size. read_all_future() will read as many bytes as there are available in the buffer.
You have to truncate the buffer afterwards as potentially fewer bytes are read (the connection is closed before that many bytes are read).

The following works fine here:
use gio;
use gio::prelude::*;

use glib;
use glib::prelude::*;

fn main() {
    glib::MainContext::default().block_on(async move {
        let client = gio::SocketClient::new();
        let dest = gio::NetworkAddress::new("fireburn.ru", 443);
        let socket = client.connect_future(&dest).await.unwrap();
        // A little bit awkward that TlsClientConnection::new() doesn't consume the socket.
        // Is this an artefact of the underlying C API or a feature?
        let tls = gio::TlsClientConnection::new(&socket, Some(&dest)).unwrap();
        tls.set_advertised_protocols(&["http/1.1"]);
        tls.handshake_future(glib::Priority::default())
            .await
            .unwrap();
        // Swapped because it looks better to me from my standpoint,
        // where output is what we get, and input is what we give
        let (input, output) = (tls.output_stream(), tls.input_stream());

        // bitbang HTTP protocol
        input
            .write_all_future(
                "GET / HTTP/1.1\r\nHost: fireburn.ru\r\nConnection: close\r\n\r\n".as_bytes(),
                glib::Priority::default(),
            )
            .await
            .unwrap();

        let res: String = {
            let res: Vec<u8> = vec![0; 4096];
            let (mut res, len, _err) = output
                .read_all_future(res, glib::Priority::default())
                .await
                .unwrap();
            res.truncate(len);

            let res = String::from_utf8(res).unwrap();
            res.to_string()
        };
        tls.close_future(glib::PRIORITY_DEFAULT).await.unwrap();

        println!("{}", res);
    });
}

Wow thanks for the quick reply and the detailed explanation!

spawn_local() got copied because of me initially using this snippet inside of the Glib main loop spawned by GtkApplication
Yeah, I wondered about that part and it was a little bit confusing to me, but your explanation made it a lot clearer.
Quick follow-up question: I assume if I can't estimate the response size ahead of time, I need to run this in a loop with a buffer of small-to-average size and then once len == 0 I can carry on, am I correct?

Quick follow-up question: I assume if I can't estimate the response size ahead of time, I need to run this in a loop with a buffer of small-to-average size and then once len == 0 I can carry on, am I correct?

yes that is correct

3. I assume if I can't estimate the response size ahead of time

You could parse the HTTP headers and if you're lucky there's a Content-Length header that you can use as an indication for the full body size (might still be more or less than that).


Parallel Temporal Sampler logic question

Hi,
I'm not sure if this is the right place to ask, but in the sampler if we perform multi-layer sampling, and the current layer is not the first one, why are we doing binary search in each snapshot to find each root node instead of using the pointer array like in the initial layer?

Hi, thanks for your interest in our work. For multiple layers, the neighbors to sample may not be from the current timestamp. Say at time t, we have n1 at time t1<t as a neighbor for the root node n0. Then, for n1, we want the neighbors to be sampled until time t1 but not the current time t which is pointed by the pointer array. However, this is a design choice in the sampler. Feel free to modify to meet your needs.

Thanks for explaining!


[Summer of code] Add sh conf for controller

Make sure set the target branch to develop
What is the purpose of the change
Tracking issue: https://github.com/apache/rocketmq/issues/4330
Brief changelog
Add sh conf for startup controller
Verifying this change
XXXX
Follow this checklist to help us incorporate your contribution quickly and easily. Notice, it would be helpful if you could finish the following 5 checklist(the last one is not necessary)before request the community to review your PR.

[x] Make sure there is a Github issue filed for the change (usually before you start working on it). Trivial changes like typos do not require a Github issue. Your pull request should address just this issue, without pulling in other changes - one PR resolves one issue.
[x] Format the pull request title like [ISSUE #123] Fix UnknownException when host config not exist. Each commit in the pull request should have a meaningful subject line and body.
[x] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
[x] Write necessary unit-test(over 80% coverage) to verify your logic correction, more mock a little better when cross module dependency exist. If the new feature or significant change is committed, please remember to add integration-test in test module.
[x] Run mvn -B clean apache-rat:check findbugs:findbugs checkstyle:checkstyle to make sure basic checks pass. Run mvn clean install -DskipITs to make sure unit-test pass. Run mvn clean test-compile failsafe:integration-test  to make sure integration-test pass.
[ ] If this contribution is large, please file an Apache Individual Contributor License Agreement.

Codecov Report

Merging #4404 (8ffb662) into 5.0.0-beta-dledger-controller (addd307) will decrease coverage by 0.13%.
The diff coverage is n/a.

@@                         Coverage Diff                         @@
##             5.0.0-beta-dledger-controller    #4404      +/-   ##
===================================================================
- Coverage                            43.35%   43.21%   -0.14%
+ Complexity                            6346     6330      -16
===================================================================
  Files                                  839      839
  Lines                                59637    59637
  Branches                              8130     8130
===================================================================
- Hits                                 25855    25773      -82
- Misses                               30442    30513      +71
- Partials                              3340     3351      +11

Impacted Files
Coverage Δ

...org/apache/rocketmq/common/stats/StatsItemSet.java
41.79% <0.00%> (-8.96%)
:arrow_down:

...etmq/namesrv/routeinfo/BatchUnRegisterService.java
94.73% <0.00%> (-5.27%)
:arrow_down:

...ache/rocketmq/common/stats/MomentStatsItemSet.java
39.13% <0.00%> (-4.35%)
:arrow_down:

...ava/org/apache/rocketmq/filter/util/BitsArray.java
59.82% <0.00%> (-3.42%)
:arrow_down:

...a/org/apache/rocketmq/broker/BrokerController.java
44.53% <0.00%> (-3.31%)
:arrow_down:

...ava/org/apache/rocketmq/test/util/VerifyUtils.java
46.26% <0.00%> (-2.99%)
:arrow_down:

...he/rocketmq/controller/impl/DLedgerController.java
72.67% <0.00%> (-2.91%)
:arrow_down:

...he/rocketmq/client/trace/AsyncTraceDispatcher.java
77.22% <0.00%> (-1.49%)
:arrow_down:

.../apache/rocketmq/logging/inner/LoggingBuilder.java
63.44% <0.00%> (-1.43%)
:arrow_down:

...cketmq/broker/schedule/ScheduleMessageService.java
56.00% <0.00%> (-1.18%)
:arrow_down:

... and 8 more

Continue to review full report at Codecov.

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

Coverage decreased (-0.04%) to 47.42% when pulling 8ffb662754613eb698673d34bcf403858b4c7557 on hzh0425:feature/add-controller-sh into addd307e01286033b24c6bbd8d44042345426d57 on apache:5.0.0-beta-dledger-controller.

Coverage decreased (-0.04%) to 47.42% when pulling 8ffb662754613eb698673d34bcf403858b4c7557 on hzh0425:feature/add-controller-sh into addd307e01286033b24c6bbd8d44042345426d57 on apache:5.0.0-beta-dledger-controller.


missing email field on info (user profile)

I override the get_or_create_user to include the user's email on the process of creating the new Django's user but it seems that the email is not comming along with the base request for the profile. I'm currently testing only with facebook. I'm sure that i passed the correct scopes for this type of request. It's shows up on the login window that i'am requesting "email" and i was testing with my own profile which i provided an public email. :/
So i kinda confusing here. The facebook page is not much clear if the email come along through the profile url  or i need to make additional request.
my get_additional_parameters is the same from the docs
and here is the get_or_create_user
class OAuthScopedCallback(OAuthCallback):

    def get_or_create_user(self, provider, access, info):
        user = super(OAuthScopedCallback, self).get_or_create_user(provider, access, info)
        # Check for a name
        print('Check for a name')
        try:
            names = info['name'].split()
            user.first_name = names[0]
            if len(names) > 1:
                user.last_name = names[-1]
            else:
                user.last_name = ''
        except:
            print('no names :(')
        # Check for a email
        print('Check for a email')
        try:
            user.email = info['email']
        except:
            print('no email, bitch! :(')
        user.save()
        return user

What is the output here? What's the value of info? Note that get_or_create_user is only called during handle_new_user, that is if you've previously authenticated via Facebook and your user matches an AccountAccess then it won't be called.

Yeah that's why i choose to override this method. I wanted to fill up this infos right up on the user model creation. Here is the output of the info: {'name': 'Ramon Moraes', 'id': '1653467144933268'}.

There you go. Facebook didn't give you the email: https://developers.facebook.com/docs/facebook-login/permissions/v2.4#reference-email

Note, even if you request the email permission it is not guaranteed you will get an email address. For example, if someone signed up for Facebook with a phone number instead of an email address, the email field may be empty.

Hum. I'm pretty sure that my account was maded with email! .-.

The first sentence if more important than the second, which is only one example why it may be missing. Facebook doesn't have any way to guarantee you will get an email back. Twitter does not provide any way to get the user's email. If you require an email then you will have to enforce that in your application.  I think there is an open case to document this as a workflow customization. The basic follow would be to store the AccountAccess in the session redirect the user to a new form to give the email. Once you have the email, you would create the user and associate with the AccountAccess. Email verification would be another potential step.

Yeah. Thanks again for the help! I will try to put an example of this over my fork before the pull

Closing because I don't believe there is anything to address here. This project doesn't claim to guarantee the email will available for the newly created because it can't in general for any provider.


dependabot_security_updates field missing in repo's security_and_analysis

SecurityAndAnalysis struct is missing dependabot_security_updates field.
Note: The field is not yet documented in docs but is returned when requesting https://api.github.com/repos/{owner}/{repo} so we may wait until new API revision is released.

Just FYI, this repo has historically implemented features regularly based upon empirical evidence, so we're fine to add this before it is officially documented. 😁


Appstudio update test-component-pac-jfnb

Pipelines as Code configuration proposal
To start the PipelineRun, add a new comment with content /ok-to-test
For more detailed information about running a PipelineRun, please refer to Pipelines as Code documentation Running the PipelineRun
To customize the proposed PipelineRuns after merge, please refer to Build Pipeline customization

Pipelines as Code CI/test-component-pac-jfnb-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
19 seconds
clone-repository

✅ Succeeded
2 minutes
build-container

✅ Succeeded
17 seconds
deprecated-base-image-check

✅ Succeeded
17 seconds
inspect-image

✅ Succeeded
59 seconds
clamav-scan

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
12 seconds
sbom-json-check

✅ Succeeded
15 seconds
label-check

✅ Succeeded
8 seconds
show-summary

✅ Succeeded
8 seconds
show-sbom

Pipelines as Code CI/test-component-pac-jfnb-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
8 seconds
init

✅ Succeeded
19 seconds
clone-repository

✅ Succeeded
2 minutes
build-container

✅ Succeeded
17 seconds
deprecated-base-image-check

✅ Succeeded
17 seconds
inspect-image

✅ Succeeded
3 minutes
clair-scan

✅ Succeeded
59 seconds
clamav-scan

✅ Succeeded
12 seconds
sbom-json-check

✅ Succeeded
15 seconds
label-check

✅ Succeeded
8 seconds
show-summary

✅ Succeeded
8 seconds
show-sbom

Pipelines as Code CI/test-component-pac-jfnb-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
19 seconds
clone-repository

✅ Succeeded
32 seconds
build-container

✅ Succeeded
16 seconds
inspect-image

✅ Succeeded
15 seconds
deprecated-base-image-check

✅ Succeeded
10 seconds
clair-scan

✅ Succeeded
48 seconds
clamav-scan

✅ Succeeded
10 seconds
sbom-json-check

✅ Succeeded
16 seconds
label-check

✅ Succeeded
7 seconds
show-summary

✅ Succeeded
6 seconds
show-sbom

Pipelines as Code CI/test-component-pac-jfnb-on-pull-request has successfully validated your commit.

StatusDurationName

✅ Succeeded
7 seconds
init

✅ Succeeded
19 seconds
clone-repository

✅ Succeeded
32 seconds
build-container

✅ Succeeded
16 seconds
inspect-image

✅ Succeeded
15 seconds
deprecated-base-image-check

✅ Succeeded
10 seconds
clair-scan

✅ Succeeded
48 seconds
clamav-scan

✅ Succeeded
10 seconds
sbom-json-check

✅ Succeeded
16 seconds
label-check

✅ Succeeded
7 seconds
show-summary

✅ Succeeded
6 seconds
show-sbom


Ok, you asked, you got it!

I started #195 some time ago and still sure it's actual, because I don't see any positive steps at colossus on clay legs.
Here is implementation of router concept that do what exactly needed without any prediction or wheel invention. Easy concept with only 5-10 minutes to learn and remember how to use. I stabilized API (it was partially used in internal projects, so took some time to make as npm) and don't see any changes (as I said it was used internally for quite long time).
I'm still working on examples and documentation, but you can look and decide - to use or not to use.
Here is links:
https://github.com/plandem/rrrouter
https://github.com/plandem/rrrouter-provider-history
https://github.com/plandem/rrrouter-provider-redux
P.S.: DVA is quite small library and  the only reason we can't use it - hardcoded support of colossus on clay legs that you can't replace.
If you have any question - ask :)

dva@2 will try to seperate view and data, then we can choose other router implement when using dva. Track progress in #530


No dragging functionality with imgui-sdl2-support

Describe the bug
I set up a simple test project using the recently added imgui-sdl2-support module and it seems to work fine except that I can neither move or resize windows nor use scroll bars by dragging with left mouse button. Nothing happens when I try. Actions that only span a single frame (clicks and scrolling areas via mouse wheel) seem to work alright.
To Reproduce
Here's my test code:
use sdl2::{
    video::GLProfile,
    event::Event,
    keyboard::Keycode,
};

fn main() {
    let sdl = sdl2::init().unwrap();
    let video_subsystem = sdl.video().unwrap();

    let gl_attr = video_subsystem.gl_attr();
    gl_attr.set_context_flags().debug().set();
    gl_attr.set_context_profile(GLProfile::Core);
    gl_attr.set_context_version(3, 3);
    gl_attr.set_double_buffer(true);
    gl_attr.set_depth_size(24);
    gl_attr.set_stencil_size(8);

    let window = video_subsystem
        .window("MSGRL", 1024, 768)
        .position_centered()
        .opengl()
        .resizable()
        .build()
        .unwrap();

    let gl_context = window.gl_create_context().unwrap();
    window.gl_make_current(&gl_context).unwrap();
    gl::load_with(|s| video_subsystem.gl_get_proc_address(s) as *const std::os::raw::c_void);
    window.subsystem().gl_set_swap_interval(1).unwrap();

    // imgui setup
    let glow = unsafe {
        glow::Context::from_loader_function(|s| window.subsystem().gl_get_proc_address(s) as _)
    };
    let mut imgui = imgui::Context::create();
    imgui.set_ini_filename(None);
    imgui.set_log_filename(None);
    let mut imgui_platform = imgui_sdl2_support::SdlPlatform::init(&mut imgui);
    let mut imgui_renderer = imgui_glow_renderer::AutoRenderer::initialize(glow, &mut imgui).unwrap();

    let mut event_pump = sdl.event_pump().unwrap();
    'main: loop {
        for event in event_pump.poll_iter() {
            imgui_platform.handle_event(&mut imgui, &event);

            match event {
                Event::Quit{..} |
                Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
                    break 'main;
                },
                _ => ()
            }
        }

        let (window_w, window_h) = window.size();
        unsafe {
            gl::Viewport(0, 0, window_w as i32, window_h as i32);
            let col = COLOR4_DODGERBLUE;
            gl::ClearColor(col.x, col.y, col.z, 1.0);
            gl::Clear(gl::COLOR_BUFFER_BIT|gl::DEPTH_BUFFER_BIT);
        }

        imgui_platform.prepare_frame(&mut imgui, &window, &event_pump);

        let ui = imgui.new_frame();
        imgui::Window::new(&ui, "Hello world")
            .movable(true)
            .build(|| {
                ui.text("Hello world!");
                ui.text("こんにちは世界！");
                ui.text("This...is...imgui-rs!");
                ui.separator();
                let mouse_pos = ui.io().mouse_pos;
                ui.text(format!(
                        "Mouse Position: ({:.1},{:.1})",
                        mouse_pos[0], mouse_pos[1]
                ));
            });
        ui.show_demo_window(&mut true);
        imgui_renderer.render(imgui.render()).unwrap();

        window.gl_swap_window();
    }
}

Here's my Cargo.toml:
[package]
name = "mgsrl"
version = "0.1.0"
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
sdl2                = { version = "0.34.*", features = ["bundled", "static-link"] }
sdl2-sys            = "0.34.*"
gl                  = "0.14.*"
imgui               = { git = "https://github.com/imgui-rs/imgui-rs" }
imgui-sdl2-support  = { git = "https://github.com/imgui-rs/imgui-rs" }
imgui-glow-renderer = { git = "https://github.com/imgui-rs/imgui-rs" }
glow                = "0.10.*"

Expected behavior
I expected to be able to move windows and drag the handles of scrollbars.
Screenshots
Here's a screenshot (not that there's much to see):

It's probably unrelated but should the unicode text and rounded window corners work with the glow renderer?
Please describe your environment

imgui-rs version 0.8.1-alpha.0
Windows 10 Home: 10.0.19043 Build 19043
rustc 1.55.0 (c8dfcfe04 2021-09-06); stable-x86_64-pc-windows-msvc

Other information
I just started getting back into rust today so it very well be something stupid on my end. Thanks for looking into it!

👍 frankly probably my fault. I ran it and went "yup that works" and then closed it. I think I clicked some menus but didn't mess with the window


Load config as valid JSON string in case it's not

make sure config is loaded as a valid JSON string. fixes #42

Coverage decreased (-0.09%) to 85.067% when pulling 2b2519930f7140f4dc574b88a1775d03e9dedec9 on fix/load-validation-config into 5cad9ed061f9d50da47d4b73fc31baebdfa39772 on master.

INVALID see related issue


[Cookbook] Use of slot-scope

It would be nice to have some examples of how powerful slot-scopes can be. There are many use cases for this, like having a component that gives you the current cursor position and let you render whatever you want.
Given how popular the render props pattern is in the React world and how many of those things can be achieved with slot-scopes, having a recipe with some examples would be nice.

Great! Sounds like a wonderful addition

Closing this because now we have a great example of scoped slots in https://github.com/vuejs/vuejs.org/pull/1754


Wrong behaviour between named parameters and query string on URL generation

I have a route with no arguments. When I call action('EventController@getSearch', ['place' => 'My City']) I expect the place to be concatenated as a querystring in my URL. Instead, it gets added as a URL parameter (such as event/search/My City instead of event/search?place=My+City).
Also, the URL helpers won't urlencode() parameters. Is this an expected behaviour?

What version?

Your route won't work this way, event/search/My City will generate 404 error.
You should define optional argument if it is not required: /event/search/{place?}

Your route won't work this way, event/search/My City will generate 404 error.

Isn't @igorsantos07 saying that he's getting that behaviour but thinks it's wrong?

Sorry. I misunderstood the issue.

But I don't want my arguments in this case in the URL. I want them as query
strings. That's why my method has no argument.
My route is defined as Route::controller(), and this is Laravel 5.1,
updated a couple of days ago.
On 19 Oct 2015 04:47, "Roman Kinyakin"<EMAIL_ADDRESS>wrote:

Your route won't work this way, event/search/My City will generate 404
error.
You should define optional argument if it is not required:
/event/search/{place?}
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/10659#issuecomment-149118065
.

Actually the wrong URL (/events/search/My city) does work, as my method has
no arguments. But that's not the URL I expected to get feeding an
associated array to action() and using a no-args method :(
On 19 Oct 2015 05:19, "Igor Santos"<EMAIL_ADDRESS>wrote:

But I don't want my arguments in this case in the URL. I want them as
query strings. That's why my method has no argument.
My route is defined as Route::controller(), and this is Laravel 5.1,
updated a couple of days ago.
On 19 Oct 2015 04:47, "Roman Kinyakin"<EMAIL_ADDRESS>wrote:

Your route won't work this way, event/search/My City will generate 404
error.
You should define optional argument if it is not required:
/event/search/{place?}
—
Reply to this email directly or view it on GitHub
https://github.com/laravel/framework/issues/10659#issuecomment-149118065
.

@igorsantos07 I tried to reproduce the behavior you were talking about, but I got the desired result:
event/search?place=My+City

I defined the route as following:
Route::get('event/search', ['as' => 'event', 'uses' => 'EventController@getSearch']);

Can you post your route definition

Sounds even more like a bug now!
Originally, my route definition was simply Route::controller('event', 'EventController');. Using action('EventController@getSearch', ['place' => 'My City']) yields /event/search/My City.
However, if I include Route::get('event/search', ['as' => 'event', 'uses' => 'EventController@getSearch']); the line after that controller definition, the same action() call correctly generates the URL as per your comment, @c4pone. I don't even have to change it to route() or any of its arguments.
Just make things clearer, my action signature is public function getSearch() - no args at all.

Originally, my route definition was simply Route::controller('event', 'EventController');. Using action('EventController@getSearch', ['place' => 'My City']) yields /event/search/My City.

You need to delete the cached routes file.

Thats because Route::controller generates routes with 5 optional arguments at the end (use artisan route:list to see the generated route): (event/search/{one?}/{two?}/{three?}/{four?}/{five?}. Thats just how controllers work, if you want to add place as query parameter, you have to use Route::get.
There was a PR to fix this, by generating the wildcard parameters of controller methods using reflection: #9756

I really can't understand how such "basic" feature like this was postponed with arguments like "use resources for what's not a resource" or "too much to maintain, I prefer to have developers hardcode their routes".
Reflections are used in other frameworks to have a more meaningful and understandable API matching between methods and routes. It makes little to no sense to have five hardcoded arguments bound to actions. It makes even less sense to have to repeat some routes that should have query methods - as they're usually more meaningful - as they've been described before using the Route::controller call.
I would even add here that this poses a real bug to application routing behaviour. As this is a search, it has optional arguments that must be sent over the URL - so the search results are shareable. This generates those two issues:

everywhere I generate a shortcut link to a search result throughout the system, I'll have to remember the parameters order - or else, the search implementation will get screwed up
if I create a search form (searchs are usually made through forms, right?), I'll actually have to find out my parameters in a different way, as they'll be named instead of indexed? WTF?

@GrahamCampbell I think you misunderstood me :) I said "my route was" because I added the second ::get() call as your example, not because my routes changed and they were cached.

There was a PR to fix this, by generating the wildcard parameters of controller methods using reflection: #9756

The PR was already rejceted, thus this is a nofix, so can be closed.

There was indeed a reason for @GrahamCampbell to close the issue. However, my questionings raised new problems that should be addressed - probably, by ressurrecting the PRs related to static params.


Docker Environment Variables Not Working (OPENAI_ORGANIZATION= DEFAULT_TEMPERATURE= DEFAULT_SYSTEM_PROMPT=)

I've searched previous issues and found comments stating the environment variables needed to have "NEXT_PUBLIC_" placed in front. However, also saw those older issues were marked as completed a few weeks ago. I've tried both, with & without "NEXT_PUBLIC_" but they do not seem to be read correctly in the docker environment
OPENAI_ORGANIZATION=
DEFAULT_TEMPERATURE=
DEFAULT_SYSTEM_PROMPT=

Unfortunately we no longer support the legacy version and recommend migrating to V2 (current README).


Fix a GitHub Actions warning about using triple-equals

Resolves the following warning:

If this still works we can keep this change.

I just retested this on TS1 and it appears to still work the same as on develop.

I would prefer if we do not use null any more
== null and == undefined are the same
Please use == undefined then

I recently changed the lint rules regarding this

are you sure there is a warning after the latest version of develop was merged?
== undefined should be fine. I close this PR


Hiding controls when disabled is awkward and buggy

I think the extension should not hide its controls while it's disabled. This makes it really awkward to use:

Enabling and showing the mimic scale control needs at least two clicks.
When enabled by default, the controls are missing until the disabled and enabled again.

At the very least, the controls should not be hidden; that's what the accordion is for.
Ideally, I would like to see it work like the Hires. fix and the Refiner accordions, where opening and closing the accordion automatically enables and disables the extension, except if the user has clicked the checkbox before.

Looks like the visibility gets fixed by https://github.com/mcmonkeyprojects/sd-dynamic-thresholding/pull/97.


[BUG] SAML Authentication does not apply local database roles to the user.

Describe the bug
A user authenticated in the OpenSearch Dashboard via SAML authentication doesn't have the backend roles assigned to him in the local database.
If the authentication configuration is changed from SAML to Basic, the roles are handled properly in the Dashboard.
To Reproduce
Steps to reproduce the behavior:

Create a user in the local database with a username matching to an existing user in the SAML Authentication Server
Assign a backend role to the created user. admin, by example
Configure the OpenSearch Dashboard to authenticate via the SAML Authentication Server
After authenticating the user check the backend roles via the menu View roles and identities
Dashboards show 0 backend_roles.

Expected behavior
OpenSearch should match the username received in the SAML element NameID and match the existing roles configured in the local database.
Plugins
[opensearch@ngls-opensearch ~]$ bin/opensearch-plugin list
opensearch-alerting
opensearch-anomaly-detection
opensearch-asynchronous-search
opensearch-index-management
opensearch-job-scheduler
opensearch-knn
opensearch-notebooks
opensearch-performance-analyzer
opensearch-reports-scheduler
opensearch-security
opensearch-sql
Screenshots

From the logs it seems that the code tries to get roles from the SAML response instead of using the local database.
[2021-08-17T20:53:19,075][WARN ][c.a.d.a.h.j.AbstractHTTPJwtAuthenticator] [opensearch-node] Failed to get roles from JWT claims with roles_key 'roles'. Check if this key is correct and available in the JWT payload.
[2021-08-17T20:53:19,075][DEBUG][o.o.s.a.BackendRegistry  ] [opensearch-node] Rest user 'User [name=*************, backend_roles=[], requestedTenant=null]' is authenticated

Transferring to the security plugin.  If this is an incorrect transfer, please @ me and I'll move it back.
Thanks!
/C

Hi @clenkiu as this issue doesn't seem to be related to any bug or feature request, It might be more helpful to raise a ticket in the OpenSearch forum where we are usually quick to help with similar questions.

@Anthony7774 Hey, can you say a few more words on why you think this isn't a bug?  It seems like a gap in expected behavior.  Thanks!
/C

@clenkiu This is by design, the internal backend role db is only for basic_auth, in case of SAML, the roles need to be provided and extracted from SAML response.

Closing. @clenkiu please feel free to reopen if you disagree with @Anthony7774's assessment.


Pane Not Going Above Header

Hello @abhishekdana1999
There is choose:
A. Set z-index for pane hight than header. Move pane on same DOM level as header.
B. Decrease top breakpoint height


How to Train using Our Own Documents ?

How to Train using Our Own Documents ?
when this features will be added ?
Thank you

I also would love to see that, as far as I believe that is actually a chatgpt 4 feature, isn't it?

ChatGPT is separate from the OpenAI API, which this library covers. You can fine-tune a model using this library, but requires your data in a very specific structured format. Otherwise you need to use a whole suite of different scripts/software to query on your own documents (see projects like LangChain). It's not something that OpenAI provides a direct solution for.


[Bug] TypeError: tuple indices must be integers or slices, not tuple

Branch
1.x branch (1.x version, such as v1.0.0rc2, or dev-1.x branch)
Prerequisite

[X] I have searched Issues and Discussions but cannot get the expected help.
[X] I have read the documentation but cannot get the expected help.
[X] The bug has not been fixed in the latest version.

Environment
sys.platform: linux
Python: 3.8.13 | packaged by conda-forge | (default, Mar 25 2022, 06:04:10) [GCC 10.3.0]
CUDA available: True
numpy_random_seed:<PHONE_NUMBER>
GPU 0,1,2,3: Tesla V100-SXM2-16GB
CUDA_HOME: /usr/local/cuda
NVCC: Cuda compilation tools, release 11.3, V11.3.109
GCC: gcc (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0
PyTorch: 1.12.1+cu113
PyTorch compiling details: PyTorch built with:
  - GCC 9.3
  - C++ Version: 201402
  - Intel(R) Math Kernel Library Version 2020.0.0 Product Build 20191122 for Intel(R) 64 architecture applications
  - Intel(R) MKL-DNN v2.6.0 (Git Hash 52b5f107dd9cf10910aaa19cb47f3abf9b349815)
  - OpenMP 201511 (a.k.a. OpenMP 4.5)
  - LAPACK is enabled (usually provided by MKL)
  - NNPACK is enabled
  - CPU capability usage: AVX2
  - CUDA Runtime 11.3
  - NVCC architecture flags: -gencode;arch=compute_37,code=sm_37;-gencode;arch=compute_50,code=sm_50;-gencode;arch=compute_60,code=sm_60;-gencode;arch=compute_70,code=sm_70;-gencode;arch=compute_75,code=sm_75;-gencode;arch=compute_80,code=sm_80;-gencode;arch=compute_86,code=sm_86
  - CuDNN 8.3.2  (built against CUDA 11.5)
  - Magma 2.5.2
  - Build settings: BLAS_INFO=mkl, BUILD_TYPE=Release, CUDA_VERSION=11.3, CUDNN_VERSION=8.3.2, CXX_COMPILER=/opt/rh/devtoolset-9/root/usr/bin/c++, CXX_FLAGS= -fabi-version=11 -Wno-deprecated -fvisibility-inlines-hidden -DUSE_PTHREADPOOL -fopenmp -DNDEBUG -DUSE_KINETO -DUSE_FBGEMM -DUSE_QNNPACK -DUSE_PYTORCH_QNNPACK -DUSE_XNNPACK -DSYMBOLICATE_MOBILE_DEBUG_HANDLE -DEDGE_PROFILER_USE_KINETO -O2 -fPIC -Wno-narrowing -Wall -Wextra -Werror=return-type -Wno-missing-field-initializers -Wno-type-limits -Wno-array-bounds -Wno-unknown-pragmas -Wno-unused-parameter -Wno-unused-function -Wno-unused-result -Wno-unused-local-typedefs -Wno-strict-overflow -Wno-strict-aliasing -Wno-error=deprecated-declarations -Wno-stringop-overflow -Wno-psabi -Wno-error=pedantic -Wno-error=redundant-decls -Wno-error=old-style-cast -fdiagnostics-color=always -faligned-new -Wno-unused-but-set-variable -Wno-maybe-uninitialized -fno-math-errno -fno-trapping-math -Werror=format -Werror=cast-function-type -Wno-stringop-overflow, LAPACK_INFO=mkl, PERF_WITH_AVX=1, PERF_WITH_AVX2=1, PERF_WITH_AVX512=1, TORCH_VERSION=1.12.1, USE_CUDA=ON, USE_CUDNN=ON, USE_EXCEPTION_PTR=1, USE_GFLAGS=OFF, USE_GLOG=OFF, USE_MKL=ON, USE_MKLDNN=OFF, USE_MPI=ON, USE_NCCL=ON, USE_NNPACK=ON, USE_OPENMP=ON, USE_ROCM=OFF,

TorchVision: 0.13.1+cu113
OpenCV: 4.6.0
MMEngine: 0.3.2
MMCV: 2.0.0rc3
MMCV Compiler: GCC 9.3
MMCV CUDA Compiler: 11.3
MMSelfSup: 1.0.0rc3+

Describe the bug
When attempting to run visualize_tsne.py on a MAE checkpoint, I get a TypeError in models/utils/data_preprocessor.py.
Reproduces the problem - code sample
command below
Reproduces the problem - command or script
python /opt/mmselfsup/tools/analysis_tools/visualize_tsne.py /opt/ml/model/config.py --checkpoint /opt/ml/model/model.pth --work-dir /opt/ml/model/output --dataset-config /opt/ml/model/tsne_imagenet.py --max-num-class 20 --seed 0 --n-components 2 --perplexity 30.0 --early-exaggeration 12.0 --learning-rate 200.0 --n-iter 1000 --init random

Reproduces the problem - error message
Traceback (most recent call last):
  File "/opt/mmselfsup/tools/analysis_tools/visualize_tsne.py", line 276, in <module>
    main()
  File "/opt/mmselfsup/tools/analysis_tools/visualize_tsne.py", line 227, in main
    features = extractor(model)
  File "/opt/mmselfsup/mmselfsup/models/utils/extractor.py", line 114, in __call__
    feats = nondist_forward_collect(func, self.data_loader,
  File "/opt/mmselfsup/mmselfsup/utils/collect.py", line 32, in nondist_forward_collect
    result = func(data)  # output: feat_dict
  File "/opt/mmselfsup/mmselfsup/models/utils/extractor.py", line 103, in func
    return self._forward_func(model, packed_data)
  File "/opt/mmselfsup/mmselfsup/models/utils/extractor.py", line 76, in _forward_func
    batch_inputs, batch_data_samples = model.data_preprocessor(packed_data)
  File "/opt/conda/lib/python3.8/site-packages/torch/nn/modules/module.py", line 1130, in _call_impl
    return forward_call(*input, **kwargs)
  File "/opt/mmselfsup/mmselfsup/models/utils/data_preprocessor.py", line 44, in forward
    batch_inputs = [
  File "/opt/mmselfsup/mmselfsup/models/utils/data_preprocessor.py", line 45, in <listcomp>
    _input[:, [2, 1, 0], ...] for _input in batch_inputs
TypeError: tuple indices must be integers or slices, not tuple

Additional information
No response

Just now, I create a PR to fix this bug. Please refer to it.

But currently we do not support T-SNE on MAE. This new feature will be coming soon, please stay tuned~

Thanks!

Hello, we have fixed this bug, feel free to create new issues if you have any other questions~


Persistent storage

I've had a number of people (especially at universities) ask me if it'd possible to enable persistent storage with BinderHub. The most common use case seems to be to use a BinderHub server to let teachers create repositories/environments for their classes / bootcamps / etc, but they'd like students to have their own "space" where things will persist over time.
I anticipate these requests to just increase with time, but it's also a bit unclear to me exactly how this functionality would be combined w/ BinderHub.  Maybe this could behave in the same way that nbgitpuller does.
Just opening this issue since I noticed we don't have another place in this repo where we discuss the topic. I'm curious if people have thoughts on a path forward for something like this.

You could use this to provide access to data or longer term storage. Providing a mechanism/example config for people to setup read-only storage that gets mounted to say ~/data and a read-write storage mounted to ~/personal would be useful I think. One thing that is a bit tricky is that a repo could contain a directory with the same name as personal/ or data/. Maybe mount the repo at ~/repo instead of directly at ~ (https://github.com/jupyter/repo2docker/pull/134)

The primary thing preventing us from using persistent storage with binder is Authentication. We have no idea which disk should be mounted for which user. #323 should help fix that.
@betatim Mounting the repo in a path under $HOME won't help, since mounting persistent volumes in $HOME will just overwrite everything under. What you need is ability to mount the persistent volume somewhere else, which is already supported. We could also consider a postStart hook that copies files over. We aren't dependent on that repo2docker PR for this particular feature IMO

You could mount the repository at ~/repo and a read only volume at ~/data and they'd happily coexist no?
You could also mount the shared/persistent volumes somewhere like /data but then you can't navigate there with the jupyter tree view because that is rooted in ~/.

I agree! It's not necessary for supporting persistent volumes, but very nice to have! Authentication is a blocker though.

ok cool - I've updated the top-level comment w/ the current state of this issue so we can keep track of what needs to be done

Curious - this is handled by JupyterHub, right? The difference is JupHub doesn't built new images/use multiple images...?

@ctb yep, JupyterHub can serve a pre-existing docker image that's in a registry, but it doesn't have the machinery to automatically build/register images from git repositories. Hopefully as @yuvipanda says, we can eventually merge these so they don't have to be two totally separate things, then Binder is more of a service, rather than a service and a specific piece of technology that's custom built for it.

The primary thing preventing us from using persistent storage with binder (https://github.com/jupyterhub/binderhub/pull/666) is now in place and we would like to go ahead with persistent storage. However
“”in a vanilla jupyterhub we mount the persistent disk to /home/jovyan
now we combine them and ... mount both to /home/jovyan?”” (@betatim, at gitter)
A number of proposals have been discussed which seem to fall roughly into these categories:
repository at ~/repo and persistent storage at ~/data
repository at ~ (as is the case now) and a persistent storage at ~/data
persistent storage at ~ and repository at ~/ or ~/
Each user would then have his own persistent storage that is shared across sessions.
I think it would be desirable to have persistency at ~ (as in jupyterhub) and having it at ~/data seems already to be possible with something like jupyterlab-google-drive. This makes option 3 look currently the most useful to me. What are your thoughts?
We would like to implement persistency and while there have already been numerous discussions in different directions (@yuvipanda here or @nthiery here) it would be good to have some more understanding about the consequences of the different options (e.g. are there repositories that assume to be mounted at ~, what could be the role of nbgitpuller).

I am working on setting up a hub with auth and persistent storage (exploring options for @nthiery) over the next few weeks -> we should coordinate.
My short term plan to get something working and used by people is to mount the repo to ~/repo and the persistent volume to ~/home.
The next iteration would be to explore how having /home/jovyan be a persistent volume. With repo2docker copying the contents of the repository to /repo and using nbgitpuller to copy/pull stuff over to /home/jovyan/<repo-name> when the container launches. This means you'd get the semantics of nbgitpuller for keeping changes to the repo (or not).
Both require some work on repo2docker, BinderHub and how the hub is deployed. What do you think of this kind of two stage approach? I'm not sure I am 100% convinced of the second phase yet as the "perfect" solution (and it will require a bit of work in repo2docker) hence going for something simpler first to gain some more ideas and experience.
Some things I am pondering:

repos assuming they are in ~
some repos use pip install -e. which breaks if we move the repo via nbgitpuller
what if I want to mount a data volume in addition to a persistent volume (my home drive) and have a repo?

I am working on setting up a hub with auth and persistent storage (exploring options for @nthiery) over the next few weeks -> we should coordinate.

Sure

My short term plan to get something working and used by people is to mount the repo to ~/repo and the persistent volume to ~/home.

I think @bitnik has already something like this running. @bitnik is that correct?

The next iteration would be to explore how having /home/jovyan be a persistent volume. With repo2docker copying the contents of the repository to /repo and using nbgitpuller to copy/pull stuff over to /home/jovyan/ when the container launches.

This is what would imo allow the users to keep their expectations on how JHub behaves and is what we are currently aiming at. Yet, we are likewise not 100% convinced of this being already "perfect".

I am working on setting up a hub with auth and persistent storage (exploring options for @nthiery) over the next few weeks -> we should coordinate.

Sure

so how to coordinate best?

I think we had already something like this running. @bitnik is that correct?

Yes, once we tried it by using Kubespawener.lifecycle_hooks.postStart which does some cp, rm and ln but I am not sure if it was a good implementation.


docs: nuxt build - Better document disabling GZIP report

Environment
$ npx nuxi info

Working directory: /reproduction
Nuxt project info:

------------------------------
- Operating System: Linux
- Node Version:     v20.6.1
- Nuxt Version:     3.7.3
- CLI Version:      3.9.0
- Nitro Version:    2.6.3
- Package Manager<EMAIL_ADDRESS>- Builder:          -
- User Config:      vite
- Runtime Modules:  -
- Build Modules:    -
------------------------------

Reproduction
# Setup reproduction environment + demo project:
$ docker run --rm -it node:20-bookworm-slim bash
$ npx -y nuxi init --packageManager npm --gitInit false .

# Add `vite.build.reportCompressedSize: false` to `nuxt.config.ts`:
$ sed -i 's/devtools.*/vite: { build: { reportCompressedSize: false } }/' nuxt.config.ts
$ cat nuxt.config.ts
// https://nuxt.com/docs/api/configuration/nuxt-config
export default defineNuxtConfig({
  vite: { build: { reportCompressedSize: false } }
})

$ time npm run build

Nuxt 3.7.3 with Nitro 2.6.3

ℹ Building client...
ℹ vite v4.4.9 building for production...
ℹ ✓ 112 modules transformed.
ℹ .nuxt/dist/client/manifest.json                   1.59 kB
ℹ .nuxt/dist/client/_nuxt/error-500.c5df6088.css    1.95 kB
ℹ .nuxt/dist/client/_nuxt/error-404.7fc72018.css    3.63 kB
ℹ .nuxt/dist/client/_nuxt/entry.3c4ebcd6.css       12.13 kB
ℹ .nuxt/dist/client/_nuxt/error-500.e5a1dd9d.js     1.88 kB
ℹ .nuxt/dist/client/_nuxt/error-404.d5f8e506.js     6.53 kB
ℹ .nuxt/dist/client/_nuxt/entry.8be7e620.js       197.90 kB
ℹ ✓ built in 1.07s
✔ Client built in 1083ms

ℹ Building server...
ℹ vite v4.4.9 building SSR bundle for production...
ℹ ✓ 61 modules transformed.
ℹ .nuxt/dist/server/_nuxt/entry-styles.8755339a.mjs             0.08 kB
ℹ .nuxt/dist/server/_nuxt/error-404-styles.1e0dde27.mjs         0.15 kB
ℹ .nuxt/dist/server/_nuxt/error-500-styles.cf4b3e80.mjs         0.15 kB
ℹ .nuxt/dist/server/styles.mjs                                  0.46 kB
ℹ .nuxt/dist/server/_nuxt/island-renderer-bc39a2f4.js           1.06 kB │ map:   1.38 kB
ℹ .nuxt/dist/server/_nuxt/error-500-styles-1.mjs-8fa81fcc.js    2.17 kB │ map:   0.12 kB
ℹ .nuxt/dist/server/_nuxt/error-500-57cb52a6.js                 3.03 kB │ map:   3.77 kB
ℹ .nuxt/dist/server/_nuxt/error-404-styles-1.mjs-e0837f4f.js    3.86 kB │ map:   0.12 kB
ℹ .nuxt/dist/server/_nuxt/error-404-3dc619ae.js                 9.70 kB │ map:  18.97 kB
ℹ .nuxt/dist/server/_nuxt/entry-styles-1.mjs-8b8449e7.js       12.38 kB │ map:   0.11 kB
ℹ .nuxt/dist/server/server.mjs                                120.84 kB │ map: 163.36 kB
ℹ ✓ built in 536ms
✔ Server built in 543ms
✔ Generated public .output/public

ℹ Building Nitro Server (preset: node-server)
✔ Nitro server built
  ├─ .output/server/chunks/app/_nuxt/entry-styles.8755339a.mjs (12.4 kB) (2.61 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/entry-styles.8755339a.mjs.map (312 B) (202 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-3dc619ae.mjs (9.81 kB) (3.12 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-3dc619ae.mjs.map (8.02 kB) (1.97 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs (3.98 kB) (1.25 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-404-styles.1e0dde27.mjs.map (346 B) (215 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-57cb52a6.mjs (3.07 kB) (1.35 kB gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-57cb52a6.mjs.map (1.68 kB) (600 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs (2.28 kB) (870 B gzip)
  ├─ .output/server/chunks/app/_nuxt/error-500-styles.cf4b3e80.mjs.map (346 B) (217 B gzip)
  ├─ .output/server/chunks/app/_nuxt/island-renderer-bc39a2f4.mjs (1.17 kB) (525 B gzip)
  ├─ .output/server/chunks/app/_nuxt/island-renderer-bc39a2f4.mjs.map (897 B) (413 B gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs (2.52 kB) (461 B gzip)
  ├─ .output/server/chunks/app/client.manifest.mjs.map (2.04 kB) (405 B gzip)
  ├─ .output/server/chunks/app/server.mjs (123 kB) (23.7 kB gzip)
  ├─ .output/server/chunks/app/server.mjs.map (220 B) (164 B gzip)
  ├─ .output/server/chunks/app/styles.mjs (533 B) (269 B gzip)
  ├─ .output/server/chunks/app/styles.mjs.map (429 B) (216 B gzip)
  ├─ .output/server/chunks/error-500.mjs (4.26 kB) (1.82 kB gzip)
  ├─ .output/server/chunks/error-500.mjs.map (193 B) (157 B gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs (12.9 kB) (4.08 kB gzip)
  ├─ .output/server/chunks/handlers/renderer.mjs.map (424 B) (227 B gzip)
  ├─ .output/server/chunks/multipart-parser.mjs (5.04 kB) (2.1 kB gzip)
  ├─ .output/server/chunks/multipart-parser.mjs.map (210 B) (167 B gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs (260 kB) (66.5 kB gzip)
  ├─ .output/server/chunks/nitro/node-server.mjs.map (3.21 kB) (834 B gzip)
  ├─ .output/server/chunks/rollup/_virtual_spa-template.mjs (94 B) (100 B gzip)
  ├─ .output/server/chunks/rollup/_virtual_spa-template.mjs.map (112 B) (112 B gzip)
  ├─ .output/server/index.mjs (389 B) (210 B gzip)
  └─ .output/server/package.json (708 B) (294 B gzip)
Σ Total size: 2.33 MB (558 kB gzip)
✔ You can preview this build using node .output/server/index.mjs

real    0m5.046s
user    0m8.667s
sys     0m3.070s

Describe the bug
This feature is enabled by default. Tracking down the Vite setting was easy enough. Not quite sure where the equivalent is for "Nitro Server" build step.
In a real-world project the build time takes 40s+ (which is fine):

Vite Client 8s, Vite Server 12s, Nitro Server 20s.
Running a build again takes just as long, .nuxt/ and .output/ don't appear to be configurable to be leveraged as cache and reduce build times?
SourceMap generation can be toggled easily. I can only find GZIP with Vite, nothing seems relevant for the "Nitro Server" build step, it doesn't support opt-out?

Initially I only noticed the GZIP report and earlier Vite steps, thinking vite.build.reportCompressedSize was responsible for this, but it seems all three steps are performing builds from scratch and unable to leverage a build cache?

time GZIP=-9 tar --gzip -cf compressed.tar.gz .output seems to roughly match the compression size suggested by nuxt build log.
For reference 220MB node_modules gzipped that way takes 13s on this system.

While I'm aware that improving future builds with a cache doesn't seem supported, it would be good to improve documentation / clarity on the gzip compression (or a similar setting like there is for SourceMaps).
Additional context
I have tried a few search engine queries, and searching existing issues on github, looking upstream at vite, rollup, nitro and the nuxt docs.
I raised the bug report when the third part of the build step was still showing the GZIP report, which I have mistaken Vite as the config source. It looks like the config change I added does disable it for the "Vite Client" build step, whereas "Vite Server" build step seemed to already disable the gzip reporting (probably because the "Nitro Server" build step does it?).
This information is a bit difficult to track down related config. I was more interested in minimizing the build time for use in CI. This would still likely drop 1-2 secs 😅

https://nuxt.com/docs/getting-started/configuration#external-configuration-files
https://nuxt.com/docs/api/configuration/nuxt-config#vite

Configuration that will be passed directly to Vite.
See https://vitejs.dev/config for more information. Please note that not all vite options are supported in Nuxt.

Listed build options are:

assetsDir
emptyOutDir (default: false)

Enable/disable gzip-compressed size reporting.
Compressing large output files can be slow, so disabling this may increase build performance for large projects.
Source - Vite docs

Logs
No response

I think we should probably disable vite compression report in favour of nitro doing it for us.
But to answer your question, likely you want to set nitro.compressPublicAssets to false. Does that help?

set nitro.compressPublicAssets to false. Does that help?

No? Look at the output for that step it is not public assets.
Nuxt docs point to Nitro docs for config where that setting is false by default.
The point of the issue is that I can't easily find where this step is happening. I'd rather delegate this functionality further up the chain, so if it could be documented how to disable it in the Nitro step that'd be great :)

I understand. That's a feature that doesn't yet exist in Nitro. I've opened a PR to add it.

Regarding the separate mention of build cache / time, I've raised a separate issue for that here: https://github.com/nuxt/nuxt/issues/23392


Add SDK category for breaking changes

This PR adds the SDK category to the TOC and to the overview page (internal preview). I thought this might be useful since SDK changes affect apps that might still be targeting an older version of .NET too.
Please let me know your thoughts on this @dsplaisted @PriyaPurkayastha.
Also, I'm leaning towards moving the existing "code analysis" category breaking changes into the SDK category, since you see the CA warnings based on the SDK you're using. Along those lines, should the MSBuild category breaking changes be moved into the SDK category as well?
(#24363 adds the SDK category to the new issue template for breaking changes.)

Cool @Youssef1313, the links verifier found some links that I need to update. (Build didn't show warnings because I added a redirect.)

Adding @marcpopMSFT and @KathleenDollard so that they can provide feedback.


SW-5187 Add valid user-supplied withdrawal purposes

In preparation for adding a new withdrawal purpose for undoing previous
withdrawals, update the "create withdrawal" endpoint to use its own list of
valid withdrawal purposes.
When the new purpose is added, it will appear in the WithdrawalPurpose
enum, but with this change it won't be listed as a valid user-supplied
purpose for withdrawal creation in the OpenAPI schema.

In isolation, adding this enum doesn't change anything. But it will have an effect once the rest of the PRs in the stack are merged.
Using WithdrawalPurpose directly means that all the values of the enum show up in the OpenAPI schema as valid values for the field in the request payload for withdrawal creation. But "Undo" won't be a valid user-supplied withdrawal purpose; you'll use a separate endpoint to create undo withdrawals.
This new enum is how we document and enforce that "Undo" isn't accepted as a valid withdrawal purpose when creating withdrawals. But we still use WithdrawalPurpose directly in the response payloads because undo withdrawals (created by the dedicated endpoint) can be fetched.

Merge activity

Apr 15, 10:16 AM EDT: @sgrimm started a stack merge that includes this pull request via Graphite.


Not compatible with Ivy Compiler

Before submitting an issue, please verify the following:
If this is a request for help, please use Stack Overflow and use the ngx-leaflet tag, or review the Getting Help section of the README. We watch the ngx-leaflet tag on Stack Overflow and will respond there. We will no longer be responding to help and 'how-to' requests on GitHub.
If this is a bug, issue, enhancement request, etc. verify the following before submitting your issue:

[x] Review the README to see if your issue is covered, and pay particular attention to the Getting Help section.
[x] Tell us what version of Leaflet, Angular, and ngx-leaflet you're using
[x] Include error messages

I'm using:

angular 8.0.0
leaflet 1.5.1 (doesn't matter)
ngx-leaflet 5.0.2

I just created a fresh angular 8 project using angular-cli, added ngx-leaflet, and added "angularCompilerOptions": {"enableIvy": true} to tsconfig.app.json.
I tried different things, using LeafletModule and LeafletModule.forRoot(). Here are the different error messages I got:
ERROR in node_modules/@asymmetrik/ngx-leaflet/dist/leaflet/leaflet.module.d.ts(2,22): error TS-996002: Appears in the NgModule.imports of MapModule, but could not be resolved to an NgModule class

ERROR in src/app/app.module.ts(16,12): error TS-991010: Value at position 6 in the NgModule.importss of AppModule is not a reference: [object Object]
__ng_typecheck__.ts(212,9): error TS2339: Property 'leafletOptions' does not exist on type 'HTMLDivElement'.
__ng_typecheck__.ts(213,9): error TS2339: Property 'leafletLayers' does not exist on type 'HTMLDivElement'.

I can't provide a stackblitz example, because stackblitz doesn't provide a tsconfig as far I could see.

Testing a PR for Angular 8, which addresses Ivy support.

Check out ngx-leaflet v6.x. That version provides Angular 8 support and should work with the Ivy compiler. Let me know if you have any more issues. Thanks!


Broken outline around varrock sewers

Please check if your issue is not a duplicate by searching existing issues
Describe the bug
A blue border above the walls in the varrock sewer
To Reproduce
Steps to reproduce the behavior:

Go to the varrock sewers
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
https://imgur.com/a/5VMWpu9
Environment (please complete the following information):

OS: Windows 10
RuneLite version: 1.7.24
Launcher version: 2.1.3

same issue as #2 and #23
juste give him a few days :P

ah didnt see, my bad

thank you evaan for closing the issue


how to handle upper (downward direction) versus lower (upward direction) tonic value?

If the tonic is C and octave shift is 0 then which C is it really? Is it 60? or 72?
Keep the non tonic C as a live button?
Indicate visually but subtly which one is the current tonic?

Maybe it's similar to how pressing a tonic selector looks? See screen grabs.


fix typo sctipts -> scripts

This typo is breaking the "Simple script" link here.

Oh, Thank you a lot!


Limit Number of children and spill over

Hello,
Just wanted to find out if it's possible with this package to limit the number of children and cause a spill over to left most leaf node once the limit is reached.
Thanks

Hello,
Any update on this issue?
Thanks


adding note types in 0.4.2 / 0.5 wip / github main branch version via the source code?

Describe your problem here.
i cant seem to find the note type switch case in goodNoteHit for damage values, effects, etc. etc. in playstate as easily as i could in 0.4.1, dont get me wrong, the switch case is still, THERE per say, but the damage value seems like it went the way of the dodo, btw for context i generated my repro using the template feature around this commit, i've tried looking in note.hx and chartingstate as well, but even if i search the exact damage value (0.26) it comes up with no results, so. where do i look, is it in a different .hx file? am i just dumb?
here's a comparison
0.4.1

0.4.2 / 0.5 WIP

if this issue is confusing feel free to mark it as invalid. thank you for reading
Are you modding a build from source or with Lua?
Source
What is your build target?
Windows x64
Did you edit anything in this build? If so, mention or summarize your changes.
i've edited playstate, clientprefs, the option menus, and the title screen, as well as adding a new bf variant

wait...... 0.5 WIP?!?!??!?!?!??

wait...... 0.5 WIP?!?!??!?!?!??

version number got changed to that recently in the gitversion.txt file lol

The stuff for that is in Note.hx now I assume.

You're looking for this stuff right?

The stuff for that is in Note.hx now I assume.  You're looking for this stuff right? They probably updated the damage from 0.26 to 0.3
oh, im just dumb, thank you


How to update state?

I use angular2-hmr module and I need to update state if developer changes any file in the project. I created two methods in AppModule: hmrOnInit() and hmrOnDestroy()
If developer changes any file, then hmrOnDestroy is called. I save current state in this method ( let state = this.redux.getState() ). Then hmrOnInit is called, I should update current state in this method. How to do it?

Hmm looks like you need to allow a way to 'sideload' the state somehow. Would a custom action (e.g. INIT_STORE) work or does that cause issues when called as part of the HMR init?

Cool to see an NG2 HMR solution though, certainly would like to make it easy to use with ng2-redux.

@SethDavenport custom action works, but I have many reducers that are combined with combineReducers() function:
// root reducer
combineReducers<IAppState>({
	reducer1,
	reducer2,
	reducer3
})

And I would not like to change each reducer for adding INIT_STORE event handler. But if there is no method to update state directly I will have to use custom action

Oh right.
Well we do expose the store.replaceReducer function used for hot loading in the React world: https://github.com/erikras/react-redux-universal-hot-example/issues/44#issuecomment-132260397

Just searched for it too, would be glad for a nicer solution :),
is there anything new?

Only what I said before - hot loading in the redux world uses replaceReducer, which we already expose. It should be possible to do the same thing.

Well, excuse me, I'm new to this.
But reducers suppose to be the pure function which handle data manipulations ,
Lets say my state is : { counter : 6 }
how does replacing my reducers to suppose to help?

even if they do change the state, it becomes to 0 because it's a new reducer. isn't it? so I didn't really achieved anything.

I'm really confused.
Sorry for my english.

Sorry @gviligvili, I'm not an expert in HMR either. My comment was simply to say that whatever magic makes it work in a react-redux project should also be possible in an Angular one.  I haven't had time to really study what either HMR loader is actually doing in detail.

What they seem to be doing is persisting state and rehydrating it from local storage (the persistState does that for them under the hood when the store is reconstructed with replaceReducer); I agree now that I look at it that it seems kind of weird. I'll see if we can expose something better.

Yeah, That's what i've been using right now too.
Here's a scenario, Our project suppose to have a lot of entities schema, so I would like to use Record types.
but because the store is being serialize and deserialize, with each HMR , I'm required to deserialize the entities back to records.
not all my entities are records and that what makes it so much hard to maintain. (need to cherry pick my entities, and give them a special treatment in my deserialize function).

Redux doesn't expose anything like this directly, which makes it tricky for us to do it.
However you can probably do something more clever with replace reducer:
// restoring after a hot reload:
ngRedux.replaceReducer(() => savedState); // Trivial reducer that just returns the saved state.
ngRedux.dispatch({ type: 'REHYDRATE' })     // Bogus action to trigger the reducer above.
ngRedux.replaceReducer(yourAppsRootReducer); // Put the real version of the reducers back.

That last line will also make sure that any code changes to your app's reducers gets applied to redux going forward as well.


most of the time can't intercept

unfortunately for most of the websites that I've tried, it can't intercept. for some website shows the "Interception Success!" but for most of them without any warning or message don't do anything.
these are two websites that I've tried.
https://www.telerik.com/blogs/powerful-react-datepicker-component-example?utm_medium=product&utm_source=fiddlerapp&utm_campaign=kendo-ui-react-blog-dt-blog-pick-powerful-react-datepicker
tradingview.com

I also am unable to configure an interception, without any warning or error message. I never see the "interception success" nor do I get the mocked response when I edit the info in Mocked Response Text and try to click the "intercept" button to attempt to save my mock
see my lack of error message bellow

ME TOO!

Do nothing here.