Strip spaces from personal/middle/family names during import

I just removed leading and trailing spaces from the personal, middle, and family names of about 50 people. My guess is that these came in during import from CSV; we should strip these. We should also check that multiple internal spaces are compressed to one (e.g., "Luc  Andre" becomes "Luc Andre" with only one internal space).

But there is a strip in the code: https://github.com/swcarpentry/amy/blob/develop/workshops/util.py#L85

Hm - there were a bunch of names in the database with leading and
trailing spaces, which I've now removed by hand.

Were these spaces in consecutive records?

Mmm... don't know.  Can you pull up the change log from the AMY database
and look for all the people I touched this afternoon?

Looking at https://amy.software-carpentry.org/workshops/log/, for example last 4 people you changed:

https://amy.software-carpentry.org/workshops/person/10383
https://amy.software-carpentry.org/workshops/person/10382
https://amy.software-carpentry.org/workshops/person/10352
https://amy.software-carpentry.org/workshops/person/10351

It seems that IDs are relatively close to each other, but looking at creation timestamp I wouldn't say they were introduced with Bulk Upload feature.
Maybe @maneesha can comment on that since she entered these people in?
Cheers

Yes, I think some of those were a bit of sloppiness on my part - I didn't bulk upload but I did copy/paste which may have carried over some spaces.
Will this fix automatically strip all leading/trailing spaces from names and emails now or should I be more careful about this myself?

@maneesha I'll strip trailing spaces in names and emails on the production just before merging this PR, so between then and the release of v1.3 (December/January) you should be more careful.


Epic: Device management & UI polish in MAS

Overview
Create a minimal working session management interface and apply slight polish to the MAS UI overall.
The overall concept of device management in MAS is covered in https://github.com/vector-im/element-meta/blob/develop/docs/device_management.md. Out of the list in that document, we only consider the following requirements here:

List all devices logged-in to a user’s account
Display information about the devices (name, app version, device ID, created date, web/mobile device type)
Logout single existing devices
Logout multiple existing devices at once

Minimal changes on the backend will be required for these.
Designs
Figma: https://www.figma.com/file/40ucfibvabgbB1nXvAqxxz/Device-Management-for-EX-%26-MAS?type=design&node-id=97-7629&mode=design&t=HrWqpyBO6v0A0Xez-0
These mock-ups don't reflect the MVP work and will be used as a guideline only.
Compound components will be used where they exist. Due to the time restrictions involved in this project we cannot wait for new components to be created in Compound though. In cases where components have to be built on the MAS side, we've made an agreement to create tracking issues like this one in the Compound repository.
Timeline
We are aiming for the ESS release 23.09.01. The ESS release enters testing on Monday, September 4th, with the public release scheduled for Tuesday, September 12th. We'll need to tag a MAS release with the work we want to include in the ESS release by Friday, September 1st. Critical bug fixing can still happen in the week after.
For dependent projects like EW or Synapse, we need to get things into the RCs for the last release before September 12th.
Tracking
Work on this is tracked on this board. Anything in the To Do column is a requirement for the September 1st deadline. Anything in the Backlog column is nice to have for the deadline.
Scope
The list below is not ordered by priority. Sequencing is reflected in the board only.

[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1496
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1497
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1498
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1499
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1500
[x] https://github.com/matrix-org/matrix-authentication-service/issues/1501
[x] https://github.com/matrix-org/matrix-authentication-service/issues/1502
[x] https://github.com/matrix-org/matrix-authentication-service/issues/1503
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1504
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1491
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1535
[x] https://github.com/matrix-org/matrix-authentication-service/issues/1536
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1542
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1543
[x] https://github.com/vector-im/element-web/issues/25995
[x] https://github.com/vector-im/element-web/issues/25996
[x] https://github.com/matrix-org/matrix-authentication-service/issues/1544
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1545
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1546
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1547
[x] https://github.com/matrix-org/matrix-authentication-service/issues/1548
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1549
[x] https://github.com/vector-im/element-web/issues/26000
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1550
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1551
[ ] https://github.com/matrix-org/matrix-authentication-service/issues/1489

I'd like to add this https://github.com/matrix-org/matrix-authentication-service/issues/1491 (can't edit OP). We need to give users the ability to change their email addresses, avatar and display name as part of the MVP.

I'd like to add the cosmetic parts of this issue to the list: https://github.com/matrix-org/matrix-authentication-service/issues/1569
Basically to make the consent screen a little nicer.

Closing this off as we have stopped the work a while ago. Any further work will be tracked under https://github.com/vector-im/wat-internal/issues/55.


Vault primary group permission doesn't respect weights

When trying to set Vault's primary group via the vault.primarygroup.<groupname> permission it seems to not respect the weights of any child or parent groups. It seems to take a random one and it is definitely independent from the group's weight. (Changing it does nothing and it's not the one with the lowest or highest weight) It's easily noticeable in Essential's /list command that the groups don't match up.

Yep you're right.
However, that setting is quite likely to be deprecated pretty soon. Not many people use it and it's a pain to configure / explain to people.
It has been replaced in the development builds by this option: https://github.com/lucko/LuckPerms/blob/master/bukkit/src/main/resources/config.yml#L65
It basically allows you to scrap the primary group storage option, and instead just use the players "highest" group. I guess that's what you're trying to to anyways?

Yeah, that feature does exactly what I want to achieve with it and I will switch to using that instead as it's way easier to handle.

Alright, going to close this issue then. The primary group permission will be phased out over the next few versions.


fix: avoid adding copyCellValue items twice

To fix https://github.com/qlik-oss/sn-list-objects/issues/187 by checking if the item Copy cell value is already added or not.

Have you found why it was already added?


Added numeric channel changing functionality. New volume_step_default optional attribute

Added play_media function to allow channel change functionality useful with alexa, google or from the homeassistant app  as well as play,pause. Channels can be
selected either by a channel number or by a channel name which is looked
up in the channels list to retrieve the channel number.
Added attribute volume_step_default that can be used by code in Alexa to
set the default volume step increment when an Alexa volume up command is received.  The current Alexa default is 10 which is too high.  The Alexa smart home code was also modified to add stepSpeaker function to allow volume to be set in variable increments.

Need to redo my dev environment so will close this and re-submit pr.


Add pronunciation to readme

Easier to spread the word on something if people immediately know how to pronounce it. source

I signed the CLA.
Agreed about the strange spelling "igh".  Luckily it can only be pronounced one way in English!

Some alternative ways of explaining it:

Like seye in bullseye
/zaɪ/
Like si in quasi (won't work for everyone, since some people say /kwɑzi/)
Like sly, but without the l (not quite)

Or maybe just link to https://en.wikipedia.org/wiki/Xi_(letter) which includes pronunciation?

This is fine as is, thanks! Linking to Wikipedia is not really going to work because the pronunciation of the Greek letter depends on context. My choice of "zigh" is somewhat arbitrary.


feat update : creating jobs page

Is your feature request related to a problem? Please describe.
currently there is no page for jobs section
Describe the solution you'd like
i want to make a complete jobs page that will increase the usability of the website as students can search job from there
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context

something like this
@sau-mili I am a gssoc'24 contributor please assign this to me

we are looking for repeatedly contribution from contributor , as you can take reference from merged PR
Welcome to team , we are expecting more PR from you !
Thanks


Shadowrun Sixth World v.87 - 1 Bugfix (import unique id bug)

[x] The pull request title clearly contains the name of the sheet I am editing.

[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).

[x] The pull request makes changes to files in only one sub-folder.

[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

[x] I have followed the Character Sheets Standards when building this sheet.

[x] I have authorization from the game's publisher to make this an official sheet on Roll20 with their name attached.

Changes / Description
Bugfix - Found an issue with imports where items would be dropped mysteriously.  This affected anything that was in a repeating list and was tied to unique ids within Roll20.  Added another check to prevent duplicate ids.

Character Sheet Info Roll20 Internal Use only.


Feature Request:  derive_param_computed() wrapper for waist/hip or waist/height ratio

Feature Idea
As suggested by @starosto, waist/hip ratio and waist/height ratio are common calculations done at ADaM level. These could be easily added as ADVS params using admiral::derive_param_computed(). But should we make a wrapper function for it, similar to derive_param_bmi() or derive_param_bsa()
If we decide to implement, should we have one or two functions?
Relevant Input
See derive_param_bsa examples.
Relevant Output
See derive_param_bsa examples.
Reproducible Example/Pseudo Code
NA

@pharmaverse/admiralmetabolic thoughts?

We keep it simple, just 100*WSTCIR /HIPCIR

Interesting. For me the term 'ratio' implied it is rather a unitless parameter (fraction of 1).
@ Novo team: How is it done on your end?
In this publication (https://www.nature.com/articles/s41591-024-02996-7) it sounds like Novo does it as a fraction of 1:
"Waist-to-height ratio
At baseline, mean WHtR was 0.66 for the study population. The lowest tertile of the SELECT population at baseline had a mean WHtR <0.62, which is higher than the cutoff point of 0.5 used to indicate increased cardiometabolic risk, [...]"

I just looked it up in our (Novo) metadata system, and it does indeed use percentages. But I would argue that this is a mistake in our system, and we should change it. From my understanding, even though ratios can be represented at percentages, it does not make it a percentage.
Imagine for instance a WHR above 1 (which is possible), providing percentages can appear really strange. So, I would vote for us to use the ratio and not provide any functionality for percentages.

Sorry for the confusion. It should be simple ratio WSTCIR /HIPCIR as Kathrin suggested.

No need to apologize. :)
It was good to have this discussion!

I would suggest 3 functions:

derive_param_ratio() - a wrapper for admiral::derive_param_computed() that derives any ratio parameter;
derive_param_waisthip() - a wrapper for derive_param_ratio() to derive Waist-to-Hip Ratio;
derive_param_waisthgt() - a wrapper for derive_param_ratio() to derive Waist-to-Height Ratio.

Actually, I already have a draft implementation and would be more than happy to share. Looking forward to joining @pharmaverse/admiralmetabolic!

I would suggest 3 functions:

derive_param_ratio() - a generic wrapper for admiral::derive_param_computed() that derives any ratio parameter in any ADaM BDS (could be useful also for other potential ratio parameters, e.g. Albumin/Creatinine Ratio that is specifically mentioned in TAUG for Diabetes, 3.1.3 Kidney Function, or things like Glucose/Insulin Ratio, etc.);
derive_param_waisthip() - a wrapper for derive_param_ratio() to derive Waist-to-Hip Ratio;
derive_param_waisthgt() - a wrapper for derive_param_ratio() to derive Waist-to-Height Ratio.

supplemental compute_ratio() (similar to admiral::compute_bmi(), admiral::compute_bsa(), etc.) that properly handles devision by zero (just in case).

Actually, I already have a draft implementation and would be more than happy to share. Looking forward to contributing to @pharmaverse/admiralmetabolic!

This is a nice idea for setup - I am wondering though if the ratio function would be better in {admiral}? @bms63  @bundfussr what do you think?

If it can be used by other TAs or general ADaMS then yes we should move it to admiral

Good point. It's indeed more suitable for {admiral}.
What would be the workflow in this kind of case? We propose it to {admiral} by creating an issue/PR there and wait till it becomes available? Or as an alternative we could make it internal here for the moment (@export flag to be removed) and create another issue for the future to replace it with the one from admiral when/if available.

Yes - create issue and do a PR.  Be best if you work on it or someone from your team.
We would merge it to main - and it can easily become available with Remotes or staged.dependencies.
There is an admiral released planned for January 2025 that could include this...but we can do a mini-release of admiral if things don't line up perfectly.

I would suggest 3 functions:

derive_param_ratio() - a generic wrapper for admiral::derive_param_computed() that derives any ratio parameter in any ADaM BDS (could be useful also for other potential ratio parameters, e.g. Albumin/Creatinine Ratio that is specifically mentioned in TAUG for Diabetes, 3.1.3 Kidney Function, or things like Glucose/Insulin Ratio, etc.);
derive_param_waisthip() - a wrapper for derive_param_ratio() to derive Waist-to-Hip Ratio;
derive_param_waisthgt() - a wrapper for derive_param_ratio() to derive Waist-to-Height Ratio.

supplemental compute_ratio() (similar to admiral::compute_bmi(), admiral::compute_bsa(), etc.) that properly handles devision by zero (just in case).

Actually, I already have a draft implementation and would be more than happy to share. Looking forward to contributing to @pharmaverse/admiralmetabolic!

This is a nice idea for setup - I am wondering though if the ratio function would be better in {admiral}? @bms63 @bundfussr what do you think?

If the ratio function are implemented, it should be in {admiral} because ratios are not metabolic specific.
However, I wouldn't implement this setup. We have something similar in admiral but I would consider it as historic. I see no benefit in implementing these functions. With these function we could for example derive the waist-hip ratio by
derive_param_waisthip(
  advs,
  by_vars = exprs(STUDYID, USUBJID, ADT),
  wstcir_code = "WSTCIR",
  hipcir_code = "HIPCIR",
  set_values_to = exprs(
   PARAMCD = "WAISTHIP"
  )
)

instead of
derive_param_computed(
  advs,
  by_vars = exprs(STUDYID, USUBJID, ADT),
  parameters = c("WSTCIR", "HIPCIR"),
  set_values_to = exprs(
   AVAL = AVAL.WSTCIR / AVAL.HIPCIR,
   PARAMCD = "WAISTHIP"
  )
)

The first call doesn't look simpler, shorter, or clearer to me. I think the second call is even clearer than the first one because it is obvious how the ratio derived. Although the new functions are mainly wrapper functions they need to be implemented, documented, and tested, which is some work. And the users and reviewers would need to learn more functions.
I would suggest not implementing new derive_param_*() functions for parameters which are defined by a formula. For complex formulas like "Framingham Heart Study Cardiovascular Disease 10-Year Risk Score" a compute function should be implemented. I don't think we need a compute function for ratios.

Thanks @bundfussr for your feedback.
I don't think the point of creating wrapper functions is only to simplify the call. It's more about to specialize them for certain purpose. It’s easy for you, with your vast experience with {admiral}, to understand which function is best for specific purposes, but not for a user who installed the package five minutes ago. If they need parameters for a ratio, the first thing they’ll do is enter specific keywords in the search bar, and quickly find what they need.
In fact, the derive_param_waisthip function does simplify the call a bit. Firstly, it provides default values right away, so you can omit them, which the generic function doesn’t do, and also, as you may have noticed, it lacks the constant_parameters and constant_by_vars arguments, as they don’t make sense specifically for Waist and Hip measurements.
Besides, specialized wrapper functions may have additional checks for the input arguments or data in order to make it more fool-proof or provides the user with some useful info regarding the correctness of their input data.
It reminded me of my yesterday’s struggle with the admiral::derive_var_joined_exist_flag function, which is so freaking flexible that it took me a couple of hours to make it do something very simple, which would have taken 2-3 lines in a SAS DATA step. I have a strong feeling to vote even for wrappers of the wrappers.

Thanks for the feedback @yurovska on admiral

It reminded me of my yesterday’s struggle with the admiral::derive_var_joined_exist_flag function, which is so freaking flexible that it took me a couple of hours to make it do something very simple, which would have taken 2-3 lines in a SAS DATA step. I have a strong feeling to vote even for wrappers of the wrappers if it puts the right values to the right arguments for me.

Is it possible for you to reconstruct this simple example so we can include it in our documentation.

Thanks @yurovska - I made it an issue in admiral.

I think we should discuss this issue during our meeting today. To summarize, I think we need to consider the following:

Will derive_param_ratio() be added to admiral?
If derive_param_ratio() is not added, should we have dedicated functions for calculating waist hip ratio and waist height ratio?
If derive_param_ratio() is added, does it make sense to create dedicated functions for waist/hip and waist/height or should we just call derive_vars_ratio()?

Summary of discussion and decision at standup:

The ratio function will not be implemented at the {admiral} level due to the comments by @bms63 and @bundfussr
Within {admiralmetabolic}, we will go ahead and implement one or two wrappers for derive_param_computed() to derive waist to hip ratio and waist to height ratio, notwithstanding the fact that these functions will be relatively simple. This is because:

a) We don't have functions in the package yet and it would do the team good to see how they are implemented in terms of documentation, reference pages, unit tests, etc.
b) The function(s) can also do some unit conversions on the fly to calculate the unitless ratios as the team has indicated that at times the two tests are measured in different units (inches vs cm or similar).
c) We can always remove/supersede later on.

To that end, at your earliest convenience @yurovska please update #33 taking note of the above. We leave to your discretion (and the eventual reviewers'):

Whether you want to implement two separate functions for waist/hip and waist/height, or one
Whether you still want to use an intermediate ratio function (especially if you implement two functions), as long as it's marked as not exported

derive_param_ratio is now an internal function (not exported).
Both derive_param_waisthip and derive_param_waisthgt are kept.
Units conversion on the fly has been implemented. See https://github.com/pharmaverse/admiralmetabolic/pull/33/commits/16857612ea8175001e607d021ce462bca5ec5daa


ex_dtls NIF crash when starting server

root@908001db526468:/app/bin# ./passion_fruit start
=ERROR REPORT==== 12-Apr-2024::09:51:36.565861 ===
Error in process <0.6069.0> with exit value:
{undef,
    [{'Elixir.Mix',target,[],[]},
     {'Elixir.Bundlex.Platform','get_target!',0,
         [{file,"lib/bundlex/platform.ex"},{line,45}]},
     {'Elixir.Bundlex',family,0,[{file,"lib/bundlex.ex"},{line,51}]},
     {'Elixir.Bundlex.Helper.PathHelper',fix_slashes,1,
         [{file,"lib/bundlex/helper/path_helper.ex"},{line,25}]},
     {'Elixir.ExDTLS.Native.Nif',load_nif,0,
         [{file,"lib/ex_dtls/native.ex"},{line,1}]},
     {init,'-run_on_load_handler/2-fun-0-',1,[]}]}

=CRASH REPORT==== 12-Apr-2024::09:51:36.568905 ===
  crasher:
    initial call: kernel:init/1
    exception exit: {on_load_function_failed,'Elixir.ExDTLS.Native.Nif',
                        {undef,
                            [{'Elixir.Mix',target,[],[]},
                             {'Elixir.Bundlex.Platform','get_target!',0,
                                 [{file,"lib/bundlex/platform.ex"},{line,45}]},
                             {'Elixir.Bundlex',family,0,
                                 [{file,"lib/bundlex.ex"},{line,51}]},
                             {'Elixir.Bundlex.Helper.PathHelper',fix_slashes,
                                 1,
                                 [{file,"lib/bundlex/helper/path_helper.ex"},
                                  {line,25}]},
                             {'Elixir.ExDTLS.Native.Nif',load_nif,0,
                                 [{file,"lib/ex_dtls/native.ex"},{line,1}]},
                             {init,'-run_on_load_handler/2-fun-0-',1,[]}]}}
      in function  init:run_on_load_handlers/0
      in call from kernel:init/1 (kernel.erl, line 227)
    ancestors: [kernel_sup,<0.6056.0>]
    message_queue_len: 0
    links: [<0.6058.0>]
    trap_exit: false
    status: running
    heap_size: 610
    stack_size: 28
    reductions: 164
  neighbours:

Attempt at deploying in debian/bookworm
have erl_crash.dump but basically says the same. Happy to share it here, if needed. Any help appreciated!
root@XXX:/app/bin# whereis pkgconfig
pkgconfig: /usr/lib/x86_64-linux-gnu/pkgconfig /usr/share/pkgconfig

root@XXX:/app/bin# ls /usr/lib/x86_64-linux-gnu/pkgconfig
libcrypto.pc  libssl.pc  openssl.pc

root@XXX:/app/bin# env | grep PKG
PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig

Originally copied code from video_room example in web_rtc_engine project and adapted into a phoenix project. It works properly when running locally on OSX, but when we attempt deployment into a debian/bookworm fly machine it fails to start the application.

Removing the start_link code for ExDTLS still makes the VM crash on startup, which is super weird.

Turns out version 1.4.1 of Bundlex had Mix in a runtime function.


Download typings on es5 -> Es6 switch

Bug
Typings not downloaded on es5 -> Es6 intellisense switch in NTVS 1.2
Fix
Hook into the intellisense change event to download them.
Closes #1021

small comment and :+1: after that


Use @typep for option to exclude doc generation

@teamon this makes sense to me, but I have very little context about the whole project. 🤜

@teamon I'm closing this. Doesn't feel right, unless you are totally ok and it makes sense for the options to be private.

Hmmmmm making the type private would be a breaking change :(

Tests still pass. ;)

The root issue here is that @typedoc false isn't honored.
This may be an actual elixir-lang issue, which I'll need to investigate and probably fix there...

I think that better solution would be to wrap current @type in if unquote(docs) do, but without else clause

This would still be possible breaking change for people using Tesla.Env.option type in their own code (with docs: false)

hmm, but it's not Tesla.Env.option. It's Foo.option in module Foo with use Tesla, docs: false and it looks like bug to add Tesla related stuff to docs when docs: false is used.
Also, Elixir itself allows breaking changes when it's necessary to fix bug.
https://github.com/elixir-lang/elixir/blob/master/lib/elixir/pages/Compatibility and Deprecations.md#compatibility-between-elixir-non-major-versions

@amatalai @teamon seems like it may be an issue with exdoc...I'll submit a PR (#211) that should provide the correct foundation.


[MINOR][CORE][TEST] Update obsolete takeSample test case.

What changes were proposed in this pull request?
This PR fixes some obsolete comments and assertion in takeSample testcase of RDDSuite.scala.
How was this patch tested?
This fixes the testcase only.

Test build #59125 has started for PR 13260 at commit cbabe45.

Test build #59125 has finished for PR 13260 at commit cbabe45.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/59125/
Test PASSed.

Test build #59192 has started for PR 13260 at commit eccb673.

@andrewor14 .
Now, it's just about fixing takeSample testcase.

Test build #59192 has finished for PR 13260 at commit eccb673.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/59192/
Test PASSed.

Hi, @andrewor14 .
Could you review this PR again?

OK, now it's pretty minor. LGTM merging into master 2.0

Thank you, @andrewor14 !


setupDeclarativeReflexes export with UJS support

Enhancement
Scan DOM for data-reflex attributes after UJS operations.
Also export setupDeclarativeReflexes so that it can be called from a controller that utilizes a template engine.
Fixes #161
Why should this be added
Cover a new use case and make the library more flexible.
Checklist

[x] My code follows the style guidelines of this project
[x] Checks (StandardRB & Prettier-Standard) are passing

Hi!
I don't see anymore the code of this commit in master (setupDeclarativeReflexes on ajax:complete), is there any reason for that ?
It is handle by another piece of code ? or the developer has to trigger it manually ? Will trigger manually the event "cable-ready:after-morph" after an ajax call do the job ?
Thanks in advance for your answer

Hi @nflorentin! The SR client has been extensively refactored without breaking its public API over the past minor versions.
You shouldn't need to manually trigger setupDeclarativeReflexes ever. If you look at the function on the master branch you'll see that we run our own MutationObserver which should pick up all DOM changes and scan for declared Reflexes.
Are you having a specific issue that we can help with? Jump on Discord and we can talk about it.


New security options, new overloads for AddJWTBearerAuth and sensible defaults

Fixes #526
This:

Adds new overloads for the configuration of JWTBearerAuth, including the option to configure the whole JWTBearerOptions
Sets sensible defaults for the JWTBearerAuth, specifically:

No longer maps inbound claims

Overrides the Role claim to role (Conf.SecOpts.RoleClaimType)

Overrides the Name claim to name (Conf.SecOpts.NameClaimType)

Adds new security options (Conf.SecOpts) for the Role and Name claim so that it can be customised back to the crazy SOAP ones by doing Conf.SecOpts.RoleClaimType = ClaimTypes.Role for example
JWTBearer.CreateToken is using the Conf.SecOpts.RoleClaimType

All of the above allows for smaller tokens to be generated and consumed, without unexpected behaviour, whilst still being fully customisable.
Note that, due to the change in the claim role type this is a "breaking change", though the impact should be minimal and will only affect older tokens.

While we're at it, super fun bonus - I've updated JWTBearer.CreateToken() to use the new JsonWebTokenHandler on .NET 8+ (since that's a compile target now too), so less allocations + more performance. These are preliminary benchmarks basically because my computer's deciding to be a bit rubbish and make .NET 8 slower overall. I'll re-run them in a bit.

Method
Runtime
Mean
Error
StdDev
Ratio
RatioSD
Gen0
Gen1
Allocated
Alloc Ratio

FastEndpoints
.NET 6.0
22.61 us
8.841 us
5.261 us
1.00
0.00
5.1000
-
10.38 KB
1.00

'Token (Old Handler)'
.NET 6.0
44.14 us
1.223 us
0.640 us
1.98
0.39
15.2000
-
30.47 KB
2.93

FastEndpoints
.NET 7.0
20.40 us
11.973 us
7.920 us
1.00
0.00
1.6000
-
10.22 KB
1.00

'Token (Old Handler)'
.NET 7.0
32.68 us
2.353 us
1.231 us
1.63
0.52
4.9000
0.2000
29.89 KB
2.93

FastEndpoints
.NET 8.0
29.91 us
21.522 us
14.235 us
1.00
0.00
1.6000
-
10.08 KB
1.00

'Token (Old Handler)'
.NET 8.0
29.20 us
13.522 us
7.072 us
0.96
0.46
4.5000
0.2000
27.35 KB
2.71

'Token (New Handler)'
.NET 8.0
36.08 us
26.100 us
17.264 us
1.33
0.36
2.8000
0.1000
17.53 KB
1.74

Merged and pushed build out to Nuget v<IP_ADDRESS>-beta
Did a bit of cleaning up and there were a couple of ambiguous method warnings in AuthExtensions.cs.
Let me know if you see anything wrong.
Thanks for the contribution!


Added instance globaltable

Similar to global and player tables, but per instance. Useful for libraries that are multiple files.

Huh. So this doesn't work?
--File 1
MyGlobal = "hello"

--File 2
hook.add("think","hello",function()
    print(MyGlobal)
end)

Yes. Yes it does.
Turns out when I decided to make this my code was
require( "thefile" )
globalvar = "value"

Oops.


fixes google group link

Resolves #42
Updates the docs to use the correct google group and IRC urls.

great find!

The same broken IRC link is in the primary TFB readme. Mind updating that one, too?

@LadyMozzarella done!


Feat retry charge

Codecov Report

Merging #43 into master will decrease coverage by 1.13%.
The diff coverage is 89.79%.

@@            Coverage Diff             @@
##           master      #43      +/-   ##
==========================================
- Coverage    95.9%   94.76%   -1.14%
==========================================
  Files          14       14
  Lines         293      325      +32
==========================================
+ Hits          281      308      +27
- Misses          7       10       +3
- Partials        5        7       +2

Impacted Files
Coverage Δ

subscription.go
93.18% <86.36%> (-6.82%)
:arrow_down:

error.go
94.11% <92.59%> (-5.89%)
:arrow_down:

Continue to review full report at Codecov.

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


Remove the setting jupyter.enableKeyboardShortcuts

As we have a keymap extension this is no longer relevant

I put in a deprecationMessage for this setting. I think a deprecation message is better than deleting the settings immediately because it is an opportunity to educate users on what to migrate to instead. I would suggest that we only delete the setting 1-2 releases from now.


websocket listener for replication

to make everything update realtime

It's already in the roadmap https://github.com/orgs/evoluhq/projects/3


Simple query generates many unnecessary LEFT JOINS

In our project we observe that a simple query of an entity causes many unnecessary LEFT JOINs.
The following setup causes the problem:

An entity which has ...

a property of an OwnedEntity and
a property of a list of another entity

Querying the database ...

with SingleAsync() (querying with ToListAsync() is no problem)
with including the list property Include(x => x.SimpleEntities)

    public class Person
    {
        public int Id { get; set; }

        public SimpleOwnedEntity SimpleOwnedEntity { get; set; }

        public IEnumerable<SimpleEntity> SimpleEntities { get; set; }
    }

    public class SimpleEntity
    {
        public int Id { get; set; }

        public string MyText { get; set; }
    }

    public class SimpleOwnedEntity
    {
        public DateTime? DateTime { get; set; }
    }

When I execute var person = appContext.Persons.Include(x => x.SimpleEntities).SingleAsync(x => x.Id == 1); then the following query is generated:
SELECT "x.SimpleEntities"."Id", "x.SimpleEntities"."MyText", "x.SimpleEntities"."PersonId"
FROM "SimpleEntity" AS "x.SimpleEntities"
INNER JOIN (
    SELECT DISTINCT "t".*
    FROM (
        SELECT "x0"."Id"
        FROM "Persons" AS "x0"
        LEFT JOIN "Persons" AS "x.SimpleOwnedEntity0" ON "x0"."Id" = "x.SimpleOwnedEntity0"."Id"
        WHERE "x0"."Id" = 1
        ORDER BY "x0"."Id"
        LIMIT 1
    ) AS "t"
) AS "t0" ON "x.SimpleEntities"."PersonId" = "t0"."Id"
ORDER BY "t0"."Id"

The problematic part of the query is the LEFT JOIN which is completely unnecessary. Person Id is compared with "x.SimpleOwnedEntity0"."Id" which is also the Person Id.
The bad thing is that we use in our data model many Owned Entities and the query generate for each Owned Entity one LEFT JOIN. Because of that our query in our real project contains many (more then 60) unnecessary LEFT JOINS.
We use in our project Sqlite which has an limitation: Maximal 64 tables in a join query. This limit is not configureable and because EF Core produces many unnecessary LEFT JOINs in a query we reach the limit of 64 tables in a join query.
We also tried to use the InMemoryDatabase from Ef Core but here we faced very poor performance caused by the many LEFT JOINs. So this is not a practical solution for us.
Our temporary workaround: We don't query the database with SingleAsync() because this contains the problem. Instead we query the database with .Where(x => x.Id == 1).ToListAsync() and then make a .Single().
Steps to reproduce
Here is a complete solution with a very small setup which produce the LEFT JOINs.
EfCoreSample.zip
Further technical details
EF Core version: v2.1.1
Database Provider: Microsoft.EntityFrameworkCore.SqlServer and Microsoft.EntityFrameworkCore.Sqlite
Operating system: Windows 10
IDE: Visual Studio 2017 15.7.5

Duplicate of #12022

@smitpatel It is similar but I think it is not the same issue. In my issue Owned Entities are LEFT JOINed with the parent entity which is my opinion not necessary because in the Owned Entity properties are at the same table.
You see it in the query. LEFT JOIN "Persons" AS "x.SimpleOwnedEntity0" ON "x0"."Id" = "x.SimpleOwnedEntity0"."Id"

The alias "x0" is the parent table "Persons".
The alias  "x.SimpleOwnedEntity0" is also the parent table "Persons".
"x0"."Id" and "x.SimpleOwnedEntity0"."Id" is the same id, so the LEFT JOIN compare the same id

If you have any questions please message me. For us it is important that the bug is fixed and if it is expected behavior to understand why this LEFT JOIN is needed and to have a long-term solution.

@altmann - Removing Joins with owned entity (due to them being same table) is task of Join Elimination. It is not really accurate at this point. (e.g. https://github.com/aspnet/EntityFrameworkCore/issues/11817). We have a task to refactor whole thing slightly differently so that joins are not created in first place.
As for the duplication, when generating collection include query (which has 2 queries), we copy over first query to do inner join in second query. The joins from first query is also copied over. But if you look at the projection inside the inner join subquery then doing left join is not going to change the result. Further we generate Inner join only when it is safe to do (no change of results of outer). Hence those joins are unnecessary and removing them makes shorter & faster SQL.
While there are 2 different ways to solve this one, the latter approach is better.

Looks like Deja Vu for me.
In linq2db we also process association optimization later. Even better optimizator can remove duplicated or unnecessary joins if members are not in projection. Which sometimes cause complex query to produce simple select from without any joins or subselects - dream for ad-hoc reporting.
It is very good optimization for systems that have complex row level security and extensively use query decomposition. Usually in this design they do joins to filtered IQueryable recordsets which contain joins to the same tables with the same join keys, because they just check permissions and filter out not needed records. This approach is good for performance and security but it is an enemy for repository pattern.
Offtop
Impatiently waiting for c# 8 with proper pattern matching to simplify optimizator improvement.

@smitpatel Ok thanks for your answer. Luckily we found a workaround (see above) but I hope this is only temporary in our project. What do think, when or with which version we get a more optimized query?

I'm seeing this issue of useless LEFT JOINs when using Where on an owned entity with EF Core 3.0. Could this be re-opened? Or should I create another issue?

@matteocontrini - Your issue is certainly not same as this one. Please file a new issue with detailed repro.

Thanks. For reference: #18299


mat.f90 Error: Unterminated character constant

I use GNU Fortran (GCC) 11.0.0 20200927 from equation.com on Windows. Running the command "fpm build", I get the error
 + gfortran -c app\mat.f90 -Wall -Wextra -Wimplicit-interface -fPIC -fmax-errors=1 -g -fbounds-check -fcheck-array-temporaries -fbacktrace -fcoarray=single  -J build\gfortran_debug\M_matrix -I build\gfortran_debug\M_matrix -o build\gfortran_debug\M_matrix\app_mat.f90.o
app\mat.f90:118:2:

  118 | '   short,  cond(X)
      |  1
Error: Unterminated character constant beginning at (1)
compilation terminated due to -fmax-errors=1.
 Command failed
ERROR STOP

If I define help_text and version_text in mat.f90 without using the internal subroutine, I can create executables with fpm build. Here is my version of mat.f90:
program bigmat
use M_matrix, only  : mat88
use M_CLI2, only : set_args, lget, sget, iget          ! add command-line parser module
implicit none
character(len=:),allocatable :: help_text(:)
character(len=:),allocatable :: version_text(:)
help_text=[ CHARACTER(LEN=128) :: &
'NAME                                                                            ',&
'   mat(1f) - interpret matrix expressions using a shell-like interface          ',&
'                                                                                ',&
'SYNOPSIS                                                                        ',&
'    mat [ --help| --version]                                                    ',&
'                                                                                ',&
'DESCRIPTION                                                                     ',&
'   mat(1) is an interactive computer program that serves as a convenient        ',&
'   "laboratory" for computations involving matrices. It provides easy access    ',&
'   to matrix software developed by the LINPACK and EISPACK projects. The        ',&
'   capabilities range from standard tasks such as solving simultaneous linear   ',&
'   equations and inverting matrices, through symmetric and nonsymmetric         ',&
'   eigenvalue problems, to fairly sophisticated matrix tools such as the        ',&
'   singular value decomposition.                                                ',&
'                                                                                ',&
'OPTIONS                                                                         ',&
'    --help     display this help and exit                                       ',&
'    --version  output version information and exit                              ']
version_text=[ CHARACTER(LEN=128) :: &
'PRODUCT:        GPF (General Purpose Fortran) utilities and examples            ',&
'PROGRAM:        mat(1)                                                          ',&
'DESCRIPTION:    interpret matrix operations using a shell-like interface        ',&
'VERSION:        1.0, 19910403                                                   ',&
'AUTHOR:         John S. Urban; heavily based on the original by Cleve Moler     ',&
'HOME PAGE:      http://www.urbanjost.altervista.org/index.html                  ',&
'']
   call set_args('mat',help_text,version_text )        ! define command arguments,default values and crack command line
   call mat88(0,' ')                                   ! CALL MATLAB
   stop
contains
end program bigmat

There inadvertently was a ctrl-Z in the file that is probably seen as an end-of-file on MSWindows. Removed the ctrl-Z.

Thanks, it works now.


IGattCharacteristic.Read() does not timeout/error on iOS

On iOS the Read method never times out or errors out like on Android.
Steps to reproduce

Have a valid BLE device and a readable characteristic.

With the device on, do a read.  It will be successful.

Turn off the device immediately before the Read() method is called.  On Android in ~20 seconds an Exception will be thrown (good).  On iOS it jus sits there indefinitely.

Expected behavior
Like Android, please timeout and throw an exception.
Actual behavior
On IOS it just sits there.
Crashlog
N/A
Configuration
Version of the Plugin: 3.1.1
Platform: e.g. iOS 11.0.3
Device: e.g. i Phone 6

should be fixed in 2.0.0-pre1


Find and Replace UX

I've been trying out VS Code and the Jupyter notebook editor. I usually use the classic Jupyter notebook UI. The find and replace in classic is a much better user experience in my opinion and can complete the tasks in a few keystrokes without using the mouse at all. I'm hoping the UX can be improved to make the find and replace task more efficient.
As an example, I have a cell containing:
fruits = ['apples','pears','bananas']
I want to copy the cell and replace 'apples' with 'oranges' and then 'pears' with 'grapes' in the new cell only
In classic notebook, the following keystrokes complete the job: esc, c, v, f, apples, tab, oranges, enter, f, pears, tab, grapes, enter
The find and replace form disappears
In vscode: esc, c, v, f, apples, tab, tab, tab, tab, tab, enter, enter, tab, tab, oranges, tab, enter
The find and replace form remains in focus, have to use mouse to click the x on the form to close
Repeat find and replace for pears to grapes
Or it's just quicker to use the mouse to click the buttons on the find and replace form.
I tried to complete both find and replace tasks with only the keyboard but the find and replace form seemed to have stopped working and couldn't find pears in the notebook.
If you have a large notebook with hundreds of occurrences of 'apples' how do you skip to just the cell that you want to use find and replace?
This is a simple example. Usually it's something like I have created a new column in a dataframe and need to replace references to the old column name with the new column in only some cells. My notebooks can be hundreds of cells long and contain many occurrences of the word I want to replace, where I only want to find and replace for a specific cell or maybe a few cells that I've highlighted. Classic can do this task in seconds without leaving the keyboard.

Thanks for the bug. The find and replace dialog for notebooks is actually a part of VS code itself (not part of the Jupyter extension)


plugin: renew 6.0 summoner job detail

Still no idea what is 0x04-0x05 is.
But seems like that we need is already here?

Summoner are basically renewed fully, how can I get them still work on CN/KR but also keep TypeScript happy with new parameters in job details? @quisquous

Summoner are basically renewed fully, how can I get them still work on CN/KR but also keep TypeScript happy with new parameters in job details? @quisquous

Maybe a discriminated union, where you have both sets of fields { oldFields } | { newFields } but only one set of them is true?

Added a blank SMNComponent for now, maybe Echoring or me would do this later.


package only fetched if using -i option

For testing a package I use something like this:
 poudriere testport -v -j 11amd64 -p custom www/go-www

But for some reason, I get errors like:
!!! build failure encountered !!!
[00:00:06] ====>> Error: Build failed in phase: fetch

Therefore I notice that by enter in interactive mode and doing a make the package was fetched:
poudriere testport -v -j 11amd64 -p custom www/go-www

and then:
cd /usr/ports/www/go-www; make

That fetched the packages and I just copy them to /usr/ports/distfiles/
Then again:
poudriere testport -v -j 11amd64 -p custom www/go-www

More details here: https://stackoverflow.com/q/46455135/1135424
I am using version 3.1.19 on FreeBSD amd64 11.1
Some of the logs are here: http://build.affe.network/jail.html?mastername=11amd64-custom for example http://build.affe.network/data/11amd64-custom/2017-09-27_19h29m02s/logs/errors/go-www-1.1.1.log

Looks solved in the stackoverflow link.
=======================<phase: fetch          >============================
===>  License BSD3CLAUSE accepted by the user
===>   go-www-1.1.1 depends on file: /usr/local/sbin/pkg - found
=> nbari-www-1.1.1_GH0.tar.gz doesn't seem to exist in /portdistfiles/.
=> Attempting to fetch https://codeload.github.com/nbari/www/tar.gz/1.1.1?dummy=/nbari-www-1.1.1_GH0.tar.gz
fetch: 4211: No such file or directory
nbari-www-1.1.1_GH0.tar.gz                               0  B    0  Bps
=> Attempting to fetch http://distcache.FreeBSD.org/ports-distfiles/nbari-www-1.1.1_GH0.tar.gz
fetch: 4211: No such file or directory
fetch: http://distcache.FreeBSD.org/ports-distfiles/nbari-www-1.1.1_GH0.tar.gz: Not Found
=> Couldn't fetch it - please try to retrieve this
=> port manually into /portdistfiles/ and try again.
*** Error code 1

As noted in the stackoverflow link, the problem here was duplicate entries in distinfo.
The Mk/Scripts/functions.sh distinfo_data function expects that a file will only be listed twice.
Some sort of QA/validation check may make sense in Ports, but not for Poudriere.


⚠ Bofrost.es has degraded performance

In 5b37140, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1592 ms

Resolved: Bofrost.es performance has improved in 26bd989 after 6 minutes.


⚠ PrivateHD has degraded performance

In dfc36b2, PrivateHD ($PHD) experienced degraded performance:

HTTP code: 200
Response time: 2304 ms

Resolved: PrivateHD performance has improved in a7d7d79.


⚠ Bofrost.es has degraded performance

In 424e94b, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1773 ms

Resolved: Bofrost.es performance has improved in a50dfe5 after 6 minutes.


Type errors mocking Secrets Manager SDK

Checklist

[x] I have read Caveats documentation and didn't find a solution for this problem there.

Bug description
When attempting to mock AWS Secrets Manager with the code below, getting Type errors on the SecretsManagerClient and GetSecretValueCommand.
These errors persist when installing @aws-sdk/types and when pinning all aws-sdk packages to the same version.
import {
    SecretsManagerClient,
    GetSecretValueCommand
  } from '@aws-sdk/client-secrets-manager';
  import { generateDotEnvContents } from '../utils';
  import { getSecretsFromSecretManager } from '../aws';

  describe('with aws mocked', () => {
     const smMock = mockClient(SecretsManagerClient);
     smMock.on(GetSecretValueCommand).resolves({
       SecretString: JSON.stringify({ my_secret_key: 'my_secret_value' })
     });

    beforeEach(() => {
      smMock.reset();
    });

    it('does stuff', async () => {
      const result = await generateDotEnvContents(dotEnvPath)

      expect(result).toEqual({
        DOMAIN: 'my-domain.com',
        MY_SECRET: 'my-secret',
        MY_SECRET_2: 'my-secret-2'
      })

      expect(smMock).toHaveReceivedCommandTimes(GetSecretValueCommand, 1);
    })
  })

Reproduction

Environment

Node version: v16.16.0
Testing lib and version: jest 28.1.3
Typescript version: 4.7.4
AWS SDK v3 Client mock version: 1.0.0, 2.0.0
AWS JS SDK libs and versions:

"@aws-sdk/client-secrets-manager": "^3.171.0", or 3.142.0

Hi @joshuacoveauth0
Try using non-ES6 import for your AWS libraries like so:
 const {     SecretsManagerClient,     GetSecretValueCommand } = require('@aws-sdk/client-secrets-manager');
const { mockClient } = require("aws-sdk-client-mock");
and then proceed to create a new instance of the mock client as you have:
const smMock = mockClient(SecretsManagerClient);
I noticed that there's an inconsistency between @aws-sdk/types library used by aws-sdk-client-mock and the @aws-sdk/client-secrets-manager libraries.
There's a MiddlewareStack interface that declares a method identify(): string[] within the typings used by @aws-sdk/client-secrets-manager which is not present in the version of typings used by aws-sdk-client-mock.
I would like to contribute to fixing this on this library, but have no idea how - best bet would be to lookup versions of aws-sdk-client-mock and @aws-sdk/client-secrets-manager that use the same version of the @aws-sdk/types library.
Using non-ES6 import style is not the best solution but it helped me resolve this issue.

With TypeScript v4.7.4 and @aws-sdk/client-secrets-manager v3.142.0 this works perfectly fine for me:
import {GetSecretValueCommand, SecretsManagerClient} from '@aws-sdk/client-secrets-manager';
import {mockClient} from 'aws-sdk-client-mock';
import 'aws-sdk-client-mock-jest';

describe('with aws mocked', () => {
    const smMock = mockClient(SecretsManagerClient);

    beforeEach(() => {
        smMock.reset();
    });

    it('does stuff', async () => {
        smMock.on(GetSecretValueCommand).resolves({
            SecretString: JSON.stringify({my_secret_key: 'my_secret_value'}),
        });

        const sm = new SecretsManagerClient({});
        const result = await sm.send(new GetSecretValueCommand({
            SecretId: '',
        }));

        expect(result).toEqual({
            SecretString: '{"my_secret_key":"my_secret_value"}',
        });

        expect(smMock).toHaveReceivedCommandTimes(GetSecretValueCommand, 1);
    });
});

Please try to run it in isolation from other parts of your code. If the problem persists, please include what errors you are getting.

@CelestialMusa
Yes, this works fine with @aws-sdk/client-secrets-manager v3.142.0, though not with the version I was using at first, @aws-sdk/client-secrets-manager v3.171.0.
We can use the older version, so the test is working as intended now.
Thanks for your help!


feat: add content notificator

feat: add content notification to hold futures of downloads
fix: move to std::fs/tokio::fs instead of godot FileAccess

Minor

fix: now it waits until promises are resolved before take snapshot
fix: tooltip when action=any
chore: move PackedByteArray conversion from Vec to a bytes module
fix: race condition when getUserData is called after onStart but it's not resolved by the async engine
chore: remove nop()
mock ~system/CommunicationsController::sendBinary
fix: remove error message when texture loading failed at first time (before ensuring is fetched)
use tokio::fs to wrtie files

Codecov Report
Attention: 108 lines in your changes are missing coverage. Please review.

Comparison is base (8700db5) 46.74% compared to head (507f3d8) 46.97%.

Files
Patch %
Lines

rust/decentraland-godot-lib/src/content/gltf.rs
50.72%
34 Missing :warning:

rust/decentraland-godot-lib/src/content/audio.rs
0.00%
27 Missing :warning:

rust/decentraland-godot-lib/src/content/texture.rs
47.05%
18 Missing :warning:

rust/decentraland-godot-lib/src/content/video.rs
0.00%
9 Missing :warning:

rust/decentraland-godot-lib/src/dcl/js/mod.rs
71.42%
6 Missing :warning:

...ust/decentraland-godot-lib/src/content/download.rs
87.50%
5 Missing :warning:

...d-godot-lib/src/godot_classes/dcl_ui_background.rs
33.33%
4 Missing :warning:

...ntraland-godot-lib/src/content/content_provider.rs
88.23%
2 Missing :warning:

...ntraland-godot-lib/src/auth/dcl_player_identity.rs
0.00%
1 Missing :warning:

...ust/decentraland-godot-lib/src/av/video_context.rs
0.00%
1 Missing :warning:

... and 1 more

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #168      +/-   ##
==========================================
+ Coverage   46.74%   46.97%   +0.23%
==========================================
  Files         137      139       +2
  Lines       16885    16940      +55
==========================================
+ Hits         7893     7958      +65
+ Misses       8992     8982      -10

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


dartValue/jsValue => convertToDart/convertToJs

lgtm

Actually just pushed this as 0.2.0-rc1 since its a breaking change


New package: LGUG2Z.whkd version 0.1.1

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

2023-02-12 07:34:13.237 [FAIL] Installer failed security check. Url: https://github.com/LGUG2Z/whkd/releases/download/v0.1.0/whkd-0.1.0-x86_64.msi Result: 0x80004005

@Trenly Thanks for sharing the additional context- I've tried Googling this error but did not find anything that seemed like it is appropriate in this context.
I turned on Windows AV locally and saw this issue when trying to install again:

This seems to be quite a clear case of a false positive, most likely due to the use of UDS sockets: https://github.com/ninja-build/ninja/issues/2222#issuecomment-1400663164
Many more examples here: https://github.com/search?q=+trojan%3Awin32%2Fwacatac.h!ml&type=issues
Please let me know how we can proceed!

The program installed normally in a VM, but errored when launched:

Is a dependency missing?

Ah I see! It is looking for a configuration file (whkdrc) that does not exist in the VM.
Typically this is a valid failure case (the hotkey daemon cannot run without a user-provided configuration file file), but I'm open to updating this to return a non-error exit code if that is what is required to pass the pipeline validation checks here.

Nice find. How does a user normally obtain this configuration file? Is it generated by this program, by a dependency, or by a separate program like a configuration file writer?

It is written by hand by the user; there isn't really any "default" configuration in this use case because we don't want to surprise the user by enabling systemwide hotkeys in a sample configuration that they don't fully understand or that may not make sense on their system

I have released a new version which exits without an error code and leaves a message informing the user of the need to create a configuration file in the ~/.config directory. I believe that this should enable the program to run cleanly in the VM on the validation pipelines. 🤞

I have released a new version which exits without an error code and leaves a message informing the user of the need to create a configuration file in the ~/.config directory. I believe that this should enable the program to run cleanly in the VM on the validation pipelines. 🤞

@LGUG2Z You can close this PR and make a new PR of the new version.

Last pipeline failure looks like this issue again... https://github.com/microsoft/winget-pkgs/pull/96411#issuecomment-1427235555

@wingetbot run

Again I can't get much information from what is publicly shown in the Azure pipelines, but both the local validation and installation of this manifest are working for me without issue

https://www.virustotal.com/gui/file/1dc9798953d1b3eff35db4fba73e1bb074e7ffb8e0e9b224206c340d78945b51/detection
Above is a report from VirusTotal showing that Windows is the only security vendor falsely labeling this file as containing a virus.
I have also submitted a false positive report to Microsoft:

The false positive should be fixed now, can we try the installation validations again?

Try closing and reopening the PR to retrigger it.

@wingetbot run


Navigation from a subroute to the parent Vstack from within a Drawer Issue

Hi @lulupointu,
I have the following routes:
routes: [
  VStacked(
    key: ValueKey(kSplashPath),
    path: kSplashPath,
    widget: SplashScreen(),
  ),
  VStacked(
    key: ValueKey(kLoginPath),
    path: kLoginPath,
    widget: LoginScreen(),
    subroutes: [
      VStacked(
        key: ValueKey(kRootPath),
        path: kRootPath,
        widget: HomeScreen(),
      ),
      VStacked(
        key: ValueKey(kUnknownPath),
        path: kUnknownPath,
        widget: UnknownScreen(),
      ),
    ],
  ),
  // This redirects any wrongly typed path to unknown
  VRouteRedirector(path: r':_(.*)', redirectTo: kUnknownPath),
],

And when I'm in the kRootPath (HomeScreen) - I have a Drawer, and there a button which onTap executes:
VRouterData.of(context).push(kLoginPath);
I expected it close the Drawer redirect me back to the kLoginPath (LoginScreen).
However, instead, it only closes the Drawer, and remains on the same screen.
Note:
If I put a similar button outside the Drawer - everything works fine.
It's only when inside the Drawer when this issue occurs.
Any ideas?
P.S.
I thought it might be somehow a similar case like this one:
https://github.com/lulupointu/vrouter/issues/5
However, after further investigation I think it's not.

Wow, that's weird, can you share the class where you have the drawer ? (Home I suppose)

Here goes - this is the HomeScreen widget (kRootPath) which has the Drawer:
import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:taa/models/user_data.dart';
import 'package:taa/utilities/constants.dart';
import 'package:flutter_gen/gen_l10n/app_localizations.dart';

import 'package:vrouter/vrouter.dart';

class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(AppLocalizations.of(context).appTitle),
      ),
      drawer: Drawer(
        child: ListView(
          // Important: Remove any padding from the ListView.
          padding: EdgeInsets.zero,
          children: <Widget>[
            DrawerHeader(
              child: Text(
                AppLocalizations.of(context).appTitle,
                style: TextStyle(
                  color: Colors.white,
                  fontSize: 18.0,
                ),
              ),
              decoration: BoxDecoration(
                color: Colors.black,
              ),
            ),
            ListTile(
              title: Text(AppLocalizations.of(context).logout),
              onTap: () {
                VRouterData.of(context).push(kLoginPath);
              },
            ),
          ],
        ),
      ),
      body: Consumer<UserData>(
          builder: (context, userData, child) => Container()),
    );
  }
}

Thanks, I can indeed reproduce the error. I'm having a look right now.

It seems that closing the drawer before navigating solves this issue.
I will have a deeper look into it because this is definitely not intended but as of now you can use this method.
Here is the working code:
class HomeScreen extends StatefulWidget {
  @override
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Title'),
      ),
      drawer: Builder(
        builder: (BuildContext context) {
          return Drawer(
            child: ListView(
              // Important: Remove any padding from the ListView.
              padding: EdgeInsets.zero,
              children: <Widget>[
                DrawerHeader(
                  child: Text(
                    'Drawer Title',
                    style: TextStyle(
                      color: Colors.white,
                      fontSize: 18.0,
                    ),
                  ),
                  decoration: BoxDecoration(
                    color: Colors.black,
                  ),
                ),
                ListTile(
                  title: Text('Logout'),
                  onTap: () {
                    Scaffold.of(context).openEndDrawer();
                    VRouterData.of(context).push('/login');
                  },
                ),
              ],
            ),
          );
        },
      ),
      body: Container(),
    );
  }
}

I am currently working on some new features so I might not be able to push a fix immediately but I will keep you updated.

Thanks!
The solution above works (I was missing the need of drawer: Builder()).


Tune double-tap recognition

Plus some other minor changes.

Hello! it's looking like a great project. but i cant get either one of my "Seeed Studio nRF52840 Sense" boards to take your UF2 files. am i missing something. it mounts i drag file, it crashes reboots and nothing changes. just a solid green light. Please help


print a message when creating setup.py

I'd like to be informed when the setup.py is created.

I couldn't yet test this locally, because something hangs, will debug soon.

@esc is it all right to merge? I don't have issues when running from your branch.

Should be fine, yeah.

merging now.


execution stuck when init_default large message

Hi,
Currently have a problem on a microcontroller when trying to initialize a rather large message.
#define Request_size 469
#define Oneof_message_size 258
Request req = Request_init_default;

The Request message is just holds 8 oneof messages. One of these messages I try to add just one more optional field. Then I run into some issue with the initialization of the message. The above sizes works just fine, but adding one more optional field I get the following sizes:
#define Request_size 469
#define Oneof_message_size 265
Request req = Request_init_default; <-- FAILS

Any ideas on this?

Maybe you are running out of stack space? Check the value of stack pointer, and the start of the allocated stack area.

Yea, tried to expand the stack with 1024 but still the same issue. stuck at some RAM_ptr assignment :/

Thanks for the input! You where right, the stack size was to small. Thanks again!


Inconsistent styling resulting from most recent changes

It looks like the most recent updates resulted in improper styling being applied. For example, the currently live giscus-component.vercel.app page renders the comments section as follows (correct):

But if I try to use the component library for, say, React (giscus-component.vercel.app/react), then I am seeing the following (incorrect):

What can be done to revert the styling back to what it was previously for the different component libraries?

It looks like another user referenced this in a comment about this seemingly being a browser-related issue. The behavior highlighted above appears on Chrome, Edge, Opera, Brave, etc., but the "correct" behavior is exhibited on Firefox.

Please try updating to v2.2.3 and check if the issue is fixed.

Thank you. I ran into a webpack issue after making the update (I'm using a Docusaurus-powered site and trying to use giscus to enable comments for doc posts and blog entries):
Module not found: Error: Can't resolve 'react/jsx-runtime' in '/.../node_modules/@giscus/react/dist'

For anyone else facing the same issue, I wrote a post detailing how I overcame the problem (I realize my specific problem is obviously off-topic for this issue). Thanks for responding and for all of your work.


Cryptodome Cipher (even after uninstalling/reinstalling requirements.txt)

Checklist

[ ] I have read the FAQ
[ ] I have checked if this issue already exists (both open and closed issues)
[ ] I am using the most recent version of pogom from the master branch
[ ] If this is an installation issue, I am posting my OS, OS version, python version, pip version
[ ] I'm posting the complete log
[ ] I'm using a descriptive title for this issue

My Issue
...Traceback (most recent call last):
File "runserver.py", line 13, in
from pogom.app import Pogom
File "C:\pogom8916\pogom-master\pogom\app.py", line 18, in
from .scan import ScanMetrics, Scanner
File "C:\pogom8916\pogom-master\pogom\scan.py", line 16, in
from pgoapi import PGoApi
File "C:\pogom8916\pogom-master\pogom\pgoapi_init_.py", line 51, in
from .pgoapi import PGoApi
File "C:\pogom8916\pogom-master\pogom\pgoapi\pgoapi.py", line 40, in
from .auth_google import AuthGoogle
File "C:\pogom8916\pogom-master\pogom\pgoapi\auth_google.py", line 33, in
from gpsoauth import perform_master_login, perform_oauth
File "C:\Python27\lib\site-packages\gpsoauth_init_.py", line 4, in
from . import google
File "C:\Python27\lib\site-packages\gpsoauth\google.py", line 4, in
from Cryptodome.PublicKey import RSA
File "C:\Python27\lib\site-packages\Cryptodome\PublicKey\RSA.py", line 79, in
from Cryptodome.IO import PKCS8, PEM
File "C:\Python27\lib\site-packages\Cryptodome\IO\PKCS8.py", line 73, in
from Cryptodome.IO.PBES import PBES1, PBES2, PbesError
File "C:\Python27\lib\site-packages\Cryptodome\IO_PBES.py", line 44, in
from Cryptodome.Cipher import DES, ARC2, DES3, AES
File "C:\Python27\lib\site-packages\Cryptodome\Cipher_init.py", line 78, i                                                                                n
from Cryptodome.Cipher._mode_ecb import _create_ecb_cipher
File "C:\Python27\lib\site-packages\Cryptodome\Cipher_mode_ecb.py", line 46,                                                                                in
"""
File "C:\Python27\lib\site-packages\Cryptodome\Util_raw_api.py", line 168, in                                                                                load_pycryptodome_raw_lib
raise OSError("Cannot load native module '%s'" % name)
OSError: Cannot load native module 'Cryptodome.Cipher._raw_ecb'
Please note that I tried uninstalling and reinstalling the requirements, as it said to do. I am still getting the same error.

Dupe of #130


Dropdown menu position when used with tableOverflow

When the tableOverflow is set to true, the dropdown menu position remains fixed when scrolling.

Codesandbox here

I have tested and not sure why jsuites is loading a older version. Please make sure you have the most recent version v2.3.0+

I am using version 2.3.0, this is still an issue.

This is still an issue with 2.3.1, as can be seen here.

There is something very strange. It seems codesandbox is loading an old version. This has been fixed on v2.3.0+ I have double checked...

I am experiencing the same issue locally, on version 2.3.0

@paulhodel fwiw I'm having the same issue as @leahein locally as well, on version 2.3.1.
JSuites version:

The issue:

I am on this. I will keep you posted...

I am trying to see any problem with the NPM publication, but you can see that working on the website.
https://bossanova.uk/jexcel/v3/examples/table-overflow

It is working:
https://codesandbox.io/s/jexcel-and-react-y4thi
I have removed the following code from the index.html, I am going to check the code to support that.
""

Ok, I found the problem. It has been fixed.
v2.3.2+

Confirmed this works :tada:
Thank you for addressing!


Enable Docker content trust

Feature Description
Please enable content trust for all Docker images in docker.elastic.co.
Content trust allows clients to verify that Docker images are actually built by the distributor.

I have opened https://github.com/elastic/elasticsearch/issues/43609. Maintenance of the docker files for elasticsearch has moved to the elasticsearch repo. As we will be archiving this repository, I am going to close this issue.


Build is slow for large (100k+ lines) OpenAPI definitions

Look for bottlenecks in spec processing to see if there are areas for improvement

After taking a closer look, the plugin takes about ~500ms to load 815 markdown pages. The bottleneck is the Webpack loaders which takes ~4 minutes on first build and ~1 minute cached (which isn't too bad given the amount of pages rendered).


TV Wouldn't turn off

I had an odd one today.  I sent 2 toast messages to my TV today.  Later, the TV wouldn't turn off - the screen went blank (but backlight still on) then it came back on the same screen as before.  It refused to turn off until I shut down my Pi running nodeRed, and which point I could turn it off again.  Seems like something is keeping the TV open and preventing it from shutting down.
Only installed nodeRed yesterday - and not had anything like this before.

Sorry for not responding... Never had this issue, so can't say what went wrong. Are you still using node-red-contrib-lgtv? Did that occur again?

I had same issue with my tv. While using node-red-contrib-lgtv tv won't take any commands from remote or even actual buttons on the tv. Stays awake all the time. Any command send to tv looks like it's trying to switch off but the comes back. But none of commands actually works.
thanks

This topic is quite old, but unfortunately, I have the same issue.
I was really happy about this nod, it was so easy to signal incoming calls from the Fritz!Box to the LGTV.  So in pricinple it works really fine...
But since I use the toast node, I can't turn the TV off. And when I try to turn it on, the screen turns black same seconds later.
So it's really weird behaviour.  Is there a solution
Annother question:
I would like to send messages to the TV only, when it is turned on... is there a ways to implement this? Or at least request the current TV status (=> on / off) so that I could use come flow-control to stop "toast"ing messages to TV when it is off...

Issue still persists


Add D.resolve / D.reject aliases

D now have all the same native Promise methods names/alias ;)

thanks for PR


Mob will degrade path reguardless of config setting

So mobs can somehow "continue" the path degradation even though it doesn't show as being stepped on.
If you place a mob in a small fence, they won't ever convert the ground to a path when the config is set to false, but if you go in there and step on the ground and convert it, then its existence will continue the degradation. Here's a pic of my testing. https://i.imgur.com/ug7ON4Q.png
I ran into this while playing, because I would go in to kill cows or trim my sheep and then I'd come back later and there would be patches in the ground. I tested this on a fresh 1.17.1 with fabric with a clean download of this from the curseforge page.
It also doesn't happen if you step on a block that a mob isn't on, and then push a mob onto the block you stepped on after you've left. So it seems to be a problem because the mob is already standing on the block and the player steps on and leaves, it considers the block to still be stepped on by the mob but shows stepped:false.

Thanks for reporting this ! I don't have a lot of time right now but I'll fix this ASAP


Undocumented classes

Hello!
There are three classes which purposes are not very clear.
Why are the classes L, M and S are publically exposed and what do they do?

Please see version [7.1.1-dev0]. Does it fix the problem for you?
These are important internal classes. Dart visibility is very problematic, and I had two alternatives. First was putting all classes into the same file. This would result in a file with many thousands of lines.
The other alternative was using some tricks that would make parts of the code harder to understand. This is actually what I ended up doing. You can check the latest commit if you are curious.

Please see version [7.1.1].


Issue running cargo in Fedora29

Expected behavior
Getting a rust compile error when trying to build in fedora. A versioning issues seems to be related but I'm bot familiar enough with rust. Is Fedora's cargo version too old (or too new)?
Actual behavior
Running cargo in a Fedora 29 install I get
$ cargo install lsd
    Updating crates.io index
  Installing lsd v0.14.0
   Compiling libc v0.2.50
   Compiling num-traits v0.2.6
   Compiling num-integer v0.1.39
   Compiling unicode-width v0.1.5
   Compiling ansi_term v0.11.0
   Compiling vec_map v0.8.1
   Compiling strsim v0.7.0
   Compiling bitflags v1.0.4
   Compiling version_check v0.1.5
   Compiling term_grid v0.1.7
   Compiling lscolors v0.5.0
error: Edition 2018 is unstable and only available for nightly builds of rustc.

error: Could not compile `lscolors`.
warning: build failed, waiting for other jobs to finish...
error: failed to compile `lsd v0.14.0`, intermediate artifacts can be found at `/tmp/cargo-installSmWvX3`

Caused by:
  build failed

Cargo version is
$ cargo -V
cargo 1.30.0 (a1a4ad372 2018-11-02)

and thanks for this project! I love it

Could you try after updating cargo version. It looks like an old version.
I feel like something might be messing as version 30 does not have Edition 2018 in stable.

@meain hey you were right, i simply did rustup update in my system and then the compilation worked.
Thank you for your help, loving this project :)

Awesome. Glad you love the project.


Added secant taylor expansion tool

Added a te_secant function which mirrors te_exp_minus1

Going to need some help here... Apparently I failed the pylint tests, but I don't know what those are...

Make sure you have pylint installed, then run ./pylint.sh in the gpkit folder. That will reproduce all pylint warnings. You should only fix the ones related to your changes though.
I don't see any unit tests accompanying this new function....

Cool, thanks.   Ok, guess I need to figure out how to write unit tests...

I have not looked, but I would hope there are some tests for te_exp_minus1 that you can mimic.

Yep, tests/t_tools.py.
Are you familiar with the concept and intent of unit testing? Do you know how to use code coverage to make sure you are testing what you think you are testing?

Cool, thanks for looking that up for me.  I'm familiar with the concept of unit testing, but have never written one successfully.  Familiar with the code coverage concept as well, but not how to actually implement in python.

So a good place to look up how to write unit tests in pyton is here. For coverage information you should use coverage.py. Let me know if you have trouble using either one.
You can also check the coverage information in jenkins as well by clicking on the covearge.py report linke here.
I'm sure @whoburg and @bqpd have lots of good tips for you as well, and they will make sure your code is well tested before merging this pull request.

Cool, thanks a lot for the help!

one idea for a unit test here would be to minimize y subject to y >= te_secant(Variable("x", np.pi/6.), nterm=4) for a given value of x, and make sure the resulting cost is close to 2./sqrt(3).

is this just waiting for a unit test, pylint, and unit conversion?

I rebased (fixing conflicts), force pushed, and fixed the pylint errors. Main remaining todo is adding unit tests for the two new methods. This sounds like a great task for @aechevarria1. The tests can go in gpkit/tests/t_tools.py.

I'll work on unit tests

Looking into the test failure issues

@aechevarria1, is this ready for review?

@whoburg, could you review this?

@bqpd, I'm ready for this to be merged. Note two added commits. Thanks @cjk12 for the PR.


Clarify the direction of the active flow

Below is the sentences about active flow count but I don't know whether the active flow count is the total of inbound and outbound. Each gateway instance can handle 500k active flows in each direction. That's why I would like you to clarify whether the active flow count is the total or one direction like in/out.
https://learn.microsoft.com/en-us/azure/expressroute/expressroute-monitoring-metrics-alerts#active-flows
This metric displays a count of the total number of active flows on the ExpressRoute Gateway. Through split at instance level, you can see active flow count per gateway instance. For more information, see understand network flow limits.
https://learn.microsoft.com/en-us/azure/virtual-network/virtual-machine-network-throughput#network-flow-limits

VMs that belong to a virtual network can handle 500k active connections for all VM sizes with 500k active flows in each direction.

VMs with network virtual appliances (NVAs) such as gateway, proxy, firewall can handle 250k active connections with 500k active flows in each direction due to the forwarding and more new flow creation on new connection setup to the next hop as shown in the above diagram.

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

ID: 056122a2-2a53-a9c8-0f7a-26816b33ea7d
Version Independent ID: e98472e4-1549-28f6-8c34-a4179ae552a7
Content: Azure ExpressRoute: Monitoring, Metrics, and Alerts
Content Source: articles/expressroute/expressroute-monitoring-metrics-alerts.md
Service: expressroute
GitHub Login: @duongau
Microsoft Alias: duau

@ms-ishiyam , thank you for your feedback. We have assigned this to the content owner/author for review.
@duongau , for your review.

Hello @ms-ishiyam, I have add more information to that metric for clarity.
PR: https://github.com/MicrosoftDocs/azure-docs-pr/pull/238209
#please-close


nixos/mariadb: Fix test on i686

RocksDB is not built on that platform and the .so is missing
Description of changes

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.05 Release Notes (or backporting 22.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

maybe we should also do this in the package


Animate navbar-toggler-icon using pseudo-elements

The proposed change replaces the current static SVG background in navbar toggler buttons with pseudo-elements, which animate to an x-shape when the menu is expanded.
This change adds visual feedback when opening menus, like the accordion component, and like most menu icons.
I know that animating the menu icon has been discussed and rejected in #25788 but since I add this to every website I build, I thought the discussion could be reopened as others might find it useful too.
Code linted and tested, works with light, dark and colored backgrounds thanks to currentColor, and is easy to override by using a different class on the <span>.

Couldn't agree more since that's what happens in Boosted—still using inlined SVGs though.

I don't mind this but it seems the new toggler has weird padding.
As for the animation, can't/should we use another class or data attribute for toggling it?

@XhmikosR alignment is slightly messed indeed, I suggested another way.
Also regarding [aria-expanded], I personnaly prefer this—but if there's a disagreement on this, using :not(.collapsed) instead should do the trick :+1:

Thanks people for the useful feedback!
I've started taking your comments into account but it's trickier than I thought to make the line width and spacing customizable (I'm getting rounding issues for instance), and make it sharp-looking when toggled.
I'll give it another shot after the Christmas rush, maybe this time without screen will help me find an even cleaner solution 😊

My one concern with this proposed approach is that in high-contrast mode (which admittedly Bootstrap currently isn't super hot with in general), the button appears completely empty.

Compared to the current SVG background, which is retained.

I'd agree with showing a different SVG background when the menu is expanded, but perhaps non-animated and as an alternative SVG background instead?

@goulvench are you still willing to work on the comments above?

@goulvench are you still willing to work on the comments above?

@XhmikosR Yes, I'm still alive. Been busy with paid work but I can return to this a bit. I've started working on tackling the various problems mentioned, and I'll give it another go, including mr Lauke's comment about high-contrast mode.

@XhmikosR Yes, I'm still alive. Been busy with paid work but I can return to this a bit. I've started working on tackling the various problems mentioned, and I'll give it another go, including mr Lauke's comment about high-contrast mode.

Happy to leave this open or close out until you’re ready @goulvench. Let me know what you’re thinking :).

Thanks for the heads-up, I've been overwhelmed these last few months and things got piled upon.
I tried making the bar width customisable but it caused rounding errors (because button height is in rem). And I'm not familiar with high-contrast mode, as per Mr Lauke's remark, so I'll need to read up on that before I can move this forward.
You can close this issue unless somebody else wants to take a stab at it, I won't have time for that before a while.

Closing as stale for now :).


type: give out types for boolean attributes

This PR make it so the component properly give out correct typing, and also extends HTMLAttribute

Roger, a little busy at the moment, will get back to you ASAP.

It's great, thanks! Sorry for the delay.
I did some small changes:

I'd like to remain the naming for boolAttrs because in Vue the abbreviated version attrs is the conventional naming.
The default value should remain undefined because the boolean attributes could be true by default.

No problem for the delay! and i see! thank you for the information!


Remove unnecessary OrderedDict usage for CpdefEnums

Since python 3.7, builtin dict is guaranteed to keep insertion order, so use dict on python 3.7 or later instead.
Stdlib enum.Enum supports an iterable of (name, value) even since python 3.4, so a list of (name, value) pairs is good enough.

I'm just rerunning the failed tests - they looked unrelated to me

These failed CI tests look like related to numpy. Numpy released a new version a few hours ago, is it the possible reason?

The error is AttributeError: module 'numpy' has no attribute 'int' , which indeed is a change with the new version [1] of numpy. This line x = numpy.zeros(10, dtype=numpy.int) from tests/run/numpy_parallel.pyx should be using numpy.int_ or just int.
[1] https://numpy.org/devdocs/release/1.24.0-notes.html#expired-deprecations

The deprecation for the aliases np.object, np.bool, np.float, np.complex, np.str, and np.int is expired (introduced in NumPy 1.20).

Thanks @mattip  - I've done that in https://github.com/cython/cython/pull/5181.
@GalaxySnail I'm happy with this once I've seen the tests passing. We should be able to do a bigger enum cleanup in Cython 3.1 (when we drop the very early version) but this seems like an improvement for now.

@GalaxySnail could you rebase/merge master to the PR one? Unittests are failing due issue which is already fixed in master.

I'm closed and reopened to rerun the tests.
(There's no need to rebase - the tests are run on master+the branch so if it's fixed in master it'll work)

Thanks @GalaxySnail


Initial configuration for pre-commit with black

We change the usage of yapf plus a very customized group of external plugins to only rely on black (for auto-linting) + flake8 (warning checks) + isort (auto-sort import) + docformatter (auto-lint docstring)
This configuration is way more easy to mantain since there is not too many options to configure the auto linting.
The only configuration files are the ones for the warning checks that can be adapted/tunned over time if needed.
Related #22

If you want to check how this configuration affects the code, you can checkout this PR in your .org code and run pre-commit run --files with the files you want.
One of the good news here is that running multiple times this command should produce always the same output and the different plugins shouldn't fight against them to modify one file and get modified again for the next plugin. So, no further confusions should be prompted with this flow.

I'm a big +1. Arguing over syntax is one of my least favorite things, so I really like the idea of not having a configurable linter, and just using the style it outputs :)

The problem isn't arguing over configurable linting. The work that @humitos did to configure yapf solved that. The problem is that our configuration is now sufficiently complex that each pre-commit step produces competing changes, resulting in consistent changes, but results in linting errors/changes to files every pass.
Black might solve this, or cutting down on our pre-commit plugins might solve this. I lean towards reducing plugins and keeping a configurable linter which is already tuned.
If black gives comparable output and avoids some of the more annoying parts of pep8 formatting, black is probably fine too though.


Duplicate keys in values.yaml are silently ignored

Output of helm version:
Client: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}
Server: &version.Version{SemVer:"v2.9.0", GitCommit:"f6025bb9ee7daf9fee0026541c90a6f557a3e0bc", GitTreeState:"clean"}

Duplicate keys in values.yaml are silently ignored: only the last value is used, no warning or error is raised.
Scenario:
$ helm create duplicatekey

$ cd duplicatekey

# edit values.yaml: duplicate and edit `image` subtree
$ cat values.yaml
# Default values for duplicatekey.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

image:
  repository: nginx
  tag: stable
  pullPolicy: IfNotPresent
image:
  repository: nginx
  tag: stable
  pullPolicy: Always
...

$ helm install . -f my-values.yaml --debug --dry-run
[debug] Created tunnel using local port: '46691'

[debug] SERVER: "<IP_ADDRESS>:46691"

[debug] Original chart version: ""
[debug] CHART PATH: /home/thomas/work/2018-03-19-helm-deepo-chart/duplicate_key_yaml/duplicatekey

NAME:   honest-racoon
REVISION: 1
RELEASED: Tue May 22 17:26:36 2018
CHART: duplicatekey-0.1.0
USER-SUPPLIED VALUES:
bla: 2

COMPUTED VALUES:
affinity: {}
bla: 2
image:
  pullPolicy: Always
  repository: nginx
  tag: stable
...

Expected behavior: raise an error on duplicate key, or at least a warning.
Actual behavior: silent override image with latest value.
Silently overwriting the first key value can hide errors (for example a subtree copy/past with typo: forgot to edit the key on the pasted subtree).
I understand that silent values overriding is a main feature of helm when the duplication is across multiple values sources, but I don't see any use-case for same-source values.

Labelling as an enhancement to helm lint.

@bacongobbler it is not just a helm lint feature: I believe it would ideally be useful to raise an error on helm install too.
It would be a breaking change, so maybe just for helm 3? But at least a warning on helm install would help too.

closing as inactive.

Dramatization:

A lot of sample values.yaml are populated with {} objects to comment optional values.
Usual error.


Generic refactor of DeclEngine

Description
Refactor the DeclEngine to use generic DeclIds that carry the type of the declaration they point to with them. This allows us to avoid a lot of unnecessary error handling and passing around of spans.
DeclId types mostly to not mix except in the case of Functions and TraitFns, in this case we use a FunctionalDeclId enum to mix them in a way they can still be discriminated by the user.
Checklist

[ ] I have linked to any relevant issues.
[ ] I have commented my code, particularly in hard-to-understand areas.
[ ] I have updated the documentation where relevant (API docs, the reference, and the Sway book).
[ ] I have added tests that prove my fix is effective or that my feature works.
[ ] I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
[ ] I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
[ ] I have requested a review from the relevant team or maintainers.

Yessss 🥳

Having multiple slabs instead of just one is problematic because there's now no way to look up a decl ID without knowing it's type. This is absolutely necessary for LSP autocomplete functionality, since we won't know the declaration type of incomplete text.

DeclId types mostly to not mix except in the case of Functions and TraitFns, in this case we use a FunctionalDeclId enum to mix them in a way they can still be discriminated by the user.

Could you share an example of this? I’m not sure this will work for my use case. I don’t see any usages in your PR.

This allows us to avoid a lot of unnecessary error handling and passing around of spans.

Invalid Decl ID errors still need to be handled, right? How do you suggest handling those?


Does ambuda keep originals of uploaded PDFs?

We should probably do so, if we don't already.

We do, but we don't currently expose the download links. But I think we should, perhaps after also adding license information and moving these files to a CDN.

Closing since the root issue is resolved, but feel free to create others if you think we should offer direct PDF downloads.


Add Ipv4Addr and Ipv6Addr for use in rust-url

Needed for servo/rust-url#135.

@bors-servo r+

:pushpin: Commit 4bdd4e2 has been approved by Manishearth

:hourglass: Testing commit 4bdd4e2 with merge fdc3960...

@bors-servo r-

Could you bump the crate's version number too? Thanks.

:sunny: Test successful - travis

done

:pushpin: Commit c7015d6 has been approved by Manishearth

@bors-servo r+

:hourglass: Testing commit c7015d6 with merge f0a146c...

:sunny: Test successful - travis


Minor bug in responding to block header requests

What is wrong?
https://github.com/ethereum/py-evm/blob/master/trinity/protocol/common/servers.py#L115-L117
In the ETH subprotocol, headers can either be requested by number of by hash. If Trinity receives a request by hash, it first looks up the corresponding header. Then it creates a list of block numbers (starting with the number of the header, up to max_headers). Finally, it gets the headers for those numbers.
It the requested header is not part of the canonical chain but is stored in the database anyway, this will not return the requested header (but rather its "cousin" in the canonical chain). Also, if the canonical chain changes during the request, the "branch" that is returned will not be connected.
How can it be fixed
Don't request the starting block twice, just once with the given hash. Preventing broken branches might not be possible if skip is non-zero, but in the important special case that it is not, we can check manually that child.parent_hash == parent.hash for all parent/child pairs.

we can check manually that child.parent_hash == parent.hash for all parent/child pairs.

... and as soon as they don't match, we could return the headers already collected, since the protocol allows us to send a partial response. Or were you suggesting we do something different?

... and as soon as they don't match, we could return the headers already collected, since the protocol allows us to send a partial response. Or were you suggesting we do something different?

No, that's exactly what I had in mind.

Added "Good First Issue" with clarification that it's a good first issue for someone who's not brand new to the codebase.

@jannikluhn FYI, when linking to code, if you press "y" while on the page, github converts the URL to a permalink at the current github commit.


Planar Module: more lamps

give me some lämp brother
reference (shamelessly steal from)
https://www.curseforge.com/minecraft/mc-mods/fancy-lamps

also have growth/fertility versions of them


[Add]: LeetCode Problems 2800 - 2899

resolves issue #277

hi @Ajay-Dhangar i just noticed that you labeled some of the leetcode problem pull requests as level1 and some of level2. but theyre all of the same difficulty so why are they labelled differently?

hi @Ajay-Dhangar i just noticed that you labeled some of the leetcode problem pull requests as level1 and some of level2. but theyre all of the same difficulty so why are they labelled differently?

I just received some notifications and information from GSSOC'24. We can't put it on a large scale, but you can watch the full video for more details.

hi @Ajay-Dhangar i just noticed that you labeled some of the leetcode problem pull requests as level1 and some of level2. but theyre all of the same difficulty so why are they labelled differently?

I just received some notifications and information from GSSOC'24. We can't put it on a large scale, but you can watch the full video for more details.

I also assign a level based on your response and the time you take to complete tasks.  If you take more time for simple tasks, I will assign a different level based on your performance.

oh ok got it! thank you so much for clarifying @Ajay-Dhangar


xdg-utils: fix mailto-vulnerability

Motivation for this change
https://www.nds.ruhr-uni-bochum.de/media/nds/veroeffentlichungen/2020/08/15/mailto-paper.pdf
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Took the liberty to update your motivation.

It would be nice if you could get upstream to make a new release out of it (last one was 2 years ago) - I'm locally using an overlay to use https://gitlab.freedesktop.org/xdg/xdg-utils/-/commit/9816ebb3e6fd9f23e993b8b7fcbd56f92d9c9197 which has been on master for a couple of months now. If a new release takes too long/doesn't happen, would it be possible to point nixpkgs at a version that is not an official release?

I replaced it with a pull request now.

https://gitlab.freedesktop.org/xdg/xdg-utils/-/merge_requests/28

CVE-2020-27748 got assigned to this and even Debian is now considering this patch.

I leave this to @mweinelt to fix this ;)

Awesome, then please add a remark to the upstream merge request concerning the breakage.

The problem is that it break the --attach flag:
$ xdg-email [--utf8] [--cc address] [--bcc address] [--subject text] [--body text
] [--attach file] [ mailto-uri | address(es) ]


affected/package: Compiling type switch on sealed interfaces without final return statement.

What version of Go are you using (go version)?

$ go version
1.21

Does this issue reproduce with the latest release?
Yes.
What did you do?
It's debatable whether this is a bug or an improvement. See https://go.dev/play/p/ccGEo7BOewU.
What did you expect to see?
When a type switch on a sealed interface is exhaustive and each case includes a return statement the compile should not failed because of a missing return at the end.
What did you see instead?
The compiler fails with missing return.

This is working as intended according to spec, see point 6 of https://go.dev/ref/spec#Terminating_statements

@seankhliao but can't the spec be changed? I mean this would be an improvement IMHO.

There's a strong bias to keep the terminating statement rule simple. There's lots of cases we could handle if we wanted to, like
func f(b bool) int {
    switch b {
    case true: return 0
    case false: return 1
    }

But each case adds complexity to the spec, and we decided there just wasn't a lot of benefit to justify that complexity.

Thanks for the feedback. That makes sense to me.