Refactor: AttributeRouteModel.ReplaceTokens shouldn't throw on failure

Right now this method AttributeRouteModel.ReplaceTokens will throw if the user types something invalid in their template - like: [controller/[action.
We handle this exception and turn it into an error message with more context. We should re-architect this to avoid throwing.

Doesn't seem high enough value, so closing.


Statically link for libpcap. It's feasible, as long as we compile the libpcap.a with some specific compilation flags, which can be integrated into release flow. This PR doesn't implement this for now, but we won't be bothered by the linking trouble.
Generating filter ebpf instructions. 1) libpcap API compiles pcap-filter expression into cbpf; 2) cloudflare/cbpfc compiles cbpf into ebpf; 3) we, pwru, translate direct skb fields accessing into bpf_probe_read_kernel. The last step is very subtle and this PR still leaves some issue to make it work perfectly, see the TODO@gray in the PR.
Inject generated ebpf instructions into existing instructions. To achieve this task, I add a bpf_printk in the bpf c code, which is exactly the position I will inject the filter instructions. Adding bpf_printk is good because: 1) it tells us the location of skb->data (L3 header pointer) and skb->data_end (...), which is necessary for cloudflare/cbpfc to do the conversion; 2) it leaves R1, R2, R3, R4 available for cloudflare/cbpfc conversion; 3) it's a clear signal to let us find the injection point: we just need to find the instruction calling bpf_printk; Still there are error-prone parts: we have to adjust offsets for some jump instructions.
For the legacy filter flags such as --filter-dst-ip, we can make it part of the pcap-filter expression. For example, if user run pwru with --filter-dst-ip <IP_ADDRESS> --pcap-filter 'tcp and dst port 80', we can compose a new pcap filter expression: tcp and dst port 80 and dest host <IP_ADDRESS>. So all the existing filtering code in bpf c becomes obsolete. However, this PR hasn't done this so far, but the point is we won't break the CLI interface.

Introducing tailcall or similar mechanism to decouple the generated instructions from the existing part is valuable, but I decided to implement this POC first to see if there is some hidden obstacle.
Current implementation is buggy and dirty, full of debugging logs, but I can improve it later if the ideas look good to @brb
I know my explanation is still vague, feel free to ask anything.
Fixes: #85

Very nice!
Answers to the points above:

Yep, we can embed libpcap.a at a later stage.
My main worry about relying on cloudflare/cbpfc is that it introduces a runtime dependency on Clang (or did I completely misread their README?)
SGTM.
Yep, I'd bother about the conversion for now.
5 (the tail call). Yep, we can do it later. Either a tail call or freplace could do the job.

My main worry about relying on cloudflare/cbpfc is that it introduces a runtime dependency on Clang (or did I completely misread their README?)

@jibi instructed me that it's only for C compilation. So please ignore my concern.

Functionality should be fine now, next I can clean the code up and make it a readable PR.

Functionality should be fine now, next I can clean the code up and make it a readable PR.

:+1: Next release is going to be crazy good.

@brb already for review but don't merge until I fix the release flow😂


Add ability to check existence of multiple keys

exists can now accept an array of keys to check for existence.

What would be the purpose of this? As compared to:
$subset = expect($array, $keys);

Generally when working with multiple keys the ultimate need is to capture a known hash of values and pass that on somewhere else. Can you provide an example of how you would use this?

@shadowhand I was making a REST endpoint and wanted to check that all the required fields existed in $input. In that case expect didn't really make sense because I don't want any default values to be used.

(I ended up using array_diff_key anyway so I could show the user what fields they were missing...but that's beside the point. 😛 )


IE8 doesn't support trim

Was doing some cross-browser testing and IE8 apparently doesn't have trim support which is used a few times.
If you choose to include the trim prototype, you could use this:
if(typeof String.prototype.trim !== 'function') {
  String.prototype.trim = function() {
    return this.replace(/^\s+|\s+$/g, '');
  }
}

if you choose to test IE8, you can download a virtual machine image here:
https://www.modern.ie/virtualization-tools

Hi @fc,
thanks for the provided fix. I just included it in the most recent sol.js. I wasn't aware that sol even slightly works in IE8 :D
Cheers
Patrick


More tweaking for better controller support

Description
This is a follow up issue to #2108. Not super high priority but fun to play with :-)
Definition of 'Done'

[ ] add more input mappings (XBOX controller mapping is present)
[ ] harden against crashes / improve logging
[ ] recognize disconnect and reconnect
[ ] add documentation to our wiki on how to configure controllers
[ ] [Optional] include a list of tested controllers

Requirements

you will work with the game's input system for which you will need basic/intermediate Java skills
you will need a controller of sorts to test things

Where to start?

#2108 added controller support and gives an overview of involved classes

Controller support is currently not working properly and also not a priority.
Once we are in a better place to take controller support up again as an actionable feature to be prioritized, we can revive this or create a new issue based on the state of our code-base at that point in time.


Suggestion: Comparison of weighted roll in README

Calling .roll on a Bag or Mix will do a weighted random selection. See Baggy.roll.
A simplified choice function might look something like this
sub choice(:$size where * ≥ 1 = 1, :@p where abs(1 - .sum) < 1e-3) {
    @p.pairs.Mix.roll($size)
}

say choice(:size(5), :p([0.1, 0.1, 0.1, 0.7]));

I'm not a stats guy, so I don't know if the distributions would be comparable to your module.
Perhaps your README could be updated to state any advantages or disadvantages over the above approach, particularly given that the above approve is faster than your module.

@0racle Thanks for your advice!

I don't know if the distributions would be comparable to your module.

It seems comparable to me since Mix.roll does the same task.
However Mix.roll (Mix.roll calls QuantHash.MIX-ROLL and QuantHash.MIX-ROLL is a main function) conducts this task by the inefficient O(N) algorithm whereas Random::Choice does it by the O(1) algorithm:
https://github.com/rakudo/rakudo/blob/2018.12/src/core/Rakudo/QuantHash.pm6#L1053-L1071
So, Mix.roll becomes very slowly when it tries to roll a huge dice (i.e., large size @p).
Here is the benchmark result:
myrandom.p6:
use Bench;

my $bench = Bench.new;

my $repeat-times = 100;
my @p;
for ^1000 {
    @p.push: rand;
}
my $sum = @p.sum;
@p = @p.map(* / $sum);
my $size = 1000;

my $rc-code = sub {
    use Random::Choice;
    choice(:$size, :@p);
};

sub choice(:$size where * ≥ 1 = 1, :@p where abs(1 - .sum) < 1e-3) {
    @p.pairs.Mix.roll($size)
}

my $mix-code = sub {
    choice(:$size, :@p);
}

$bench.timethis($repeat-times, $rc-code, title => 'Random::Choice');
$bench.timethis($repeat-times, $mix-code, title => 'Mix');

$ perl6 myrandom.p6
      time: 1.595 wallclock secs (1.636 usr 0.008 sys 1.644 cpu) @ 62.713/s (n=100)
               (warning: too few iterations for a reliable count)
      time: 70.175 wallclock secs (70.165 usr 0.012 sys 70.177 cpu) @ 1.425/s (n=100)
               (warning: too few iterations for a reliable count)

Perhaps your README could be updated to state any advantages or disadvantages over the above approach, particularly given that the above approve is faster than your module.

Good idea! I'll write it sometime soon. (But maybe rakudo itself should employ a faster algorithm...)

Fixed in version 0.0.4


Memory detail page crashes when viewing in-progress memory

Mohsin man, is it fixed?

Mohsin man, is it fixed?

Yes, it shouldn't be crashing now


Revert "Display banner to enable 2FA when setting up VBBA"

Details
This reverts Expensify/App#12424 as we're unable to QA it on mWeb (iOS & Android).
See https://expensify.slack.com/archives/C07J32337/p1670443625470939 and https://github.com/Expensify/App/pull/12424#issuecomment-1341354521 for discussion.
cc @MonilBhavsar
Fixed Issues
N/A
Tests

From an account without 2FA enabled, open a Workspace that doesn't have a bank account connected
Click "Connect bank account"
Add details for a Verifying bank account
On the last step of the setup flow, make sure you do NOT see a message "Prevent Fraud, enable two-factor authentication" / "Secure your account"

[x] Verify that no errors appear in the JS console

Offline tests
N/A, BankAccountStep requires an active connection
QA Steps

From an account without 2FA enabled, open a Workspace that doesn't have a bank account connected
Click "Connect bank account". You can reuse the same account to test all platforms - click "Continue with setup" when prompted. No need to re-enter the same details over and over again.
Add details for a Verifying bank account
On the last step of the setup flow, make sure you do NOT see a message "Prevent Fraud, enable two-factor authentication" / "Secure your account"

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] iOS / native
[x] Android / native
[x] iOS / Safari
[x] Android / Chrome
[x] MacOS / Chrome
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product was added in all src/languages/* files
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web
https://user-images.githubusercontent.com/2229301/206294994-42ae67ca-cde7-4396-b3a7-128a8a4c0b56.mov

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] iOS / native
[ ] Android / native
[ ] iOS / Safari
[ ] Android / Chrome
[ ] MacOS / Chrome
[ ] MacOS / Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product was added in all src/languages/* files
[ ] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG)

[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

🚀 Cherry-picked to staging by @chiragsalian in version: 1.2.36-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by @francoisl in version: 1.2.36-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Cherry-picked to staging by https://github.com/AndrewGable in version: 1.3.28-2 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fix for #192 - use full mono path

See https://bugzilla.xamarin.com/show_bug.cgi?id=34564 for details.
//cc @paulcbetts, @onovotny

Hmm, looks like Xamarin decided to address this on their end after all. Please don't merge yet, let's see how the bug referenced above progresses.

Closing this. Please re-open if still an issue.


Wrong mapping for reported phenotype in Genetic Association sources

Describe the bug
Reported diseases or phenotypes from genetic evidence sources are not aligned with the name of disease association page.
Observed behaviour
Diseases or phenotypes displayed from sources like ClinVar, UniProt curated variants, and UniProt literature do not match the diseases listed on the disease association page. For example, for the gene NOD2, ClinVar lists ulcerative colitis, but the disease association page shows "INFLAMMATORY BOWEL DISEASE (CROHN DISEASE) 1, Inflammatory bowel disease 1, Inflammatory bowel disease 1, Crohn disease" which are different phenotypes.
Expected behaviour
The diseases or phenotypes from genetic evidence sources should match the diseases listed on the disease association page, ensuring consistency across the platform.
To Reproduce
Steps to reproduce the behaviour:

Go to the ulcerative colitis association page for the gene NOD2.
Click on the ClinVar evidence
Find origin of disease (ulcerative colitis) clicking on "?"
Compare this with the name  of disease on the disease association page
Notice the discrepancy in disease/phenotype naming.

Additional context
This discrepancy has also been observed for other genetic evidence sources like UniProt curated variants and UniProt literature for the same gene (NOD2). Further investigation is needed to check if other genes are affected similarly.

Hi @ireneisdoomed, sorry I missed the notification for this one - this indeed seems to be an outdated mapping that should be fixed in the newest submission. The current mapping for Inflammatory bowel disease 1 is now MONDO_0009960 which is a child of EFO_0003767. Let me know if you prefer something different or if anything is still amiss in the 2024.09 submission.

@apriltuesday Can confirm this is the case, thank you!!
+----------------------------+-------------------------+
|diseaseFromSource           |diseaseFromSourceMappedId|
+----------------------------+-------------------------+
|Inflammatory bowel disease 1|MONDO_0009960            |
+----------------------------+-------------------------+


New Site: Add recent talks and articles

This content exists on the current site. Needs to be slotted into new IA.

Perhaps this is part of the blog?
Or we have a blog and news?
I think I'd rather have a single blog/news feed.
@aturley thoughts?

I'm thinking this should be incorporated into "Planet Pony"

As said on IRC, this talk isn't linked from ponylang.org.

@Praetonus added to "Planet Pony"

These have all been added to "Planet Pony"


[FEATURE] More input samples for LSTM architecture and Use of ESR+DC as loss fuction

Hello nice people!
Context
Lately I've been running some tests on the NAM models with the goal of improving the training procedure, optimizing the CPU consumption of the generated models, and ultimately make NAM more accessible on embedded devices.
However I believe the findings that I'm sharing here will be useful beyond just NAM on embedded devices ^^
Data
So, I trained different models (LSTMs and WaveNet) using two platforms (NAM and AIDA DSP). I then run the models on test set where none of them was trained.
For training datasets I used 10 different captures that we did at MOD audio of multiple amps (fender blues deluxe, marshall jvm, orange rockerverb..) and devided the captures into 3 categories: clean, crunchy, and high_gain.
When doing the evaluation, I made sure to account for:

Time alignment with the target, that gives the best results for each model.
Gain correction that gives the best results.
DC correction that gives the best results.

The different models are: (CPU consumption values on an ARM board with a 1.3GHz CPU)

AIDA LSTM Stdrd (1x16), uses 34% CPU
NAM LSTM Lite (2x8), uses 38% CPU
NAM WaveNet Nano, uses 67% CPU
new LSTM (not implemented yet, but I estimate it to run between 40-50% CPU) more on this later

Interpretation

First thing I notice is that AIDA LSTM Stdrd is outperforming NAM LSTM Lite (even though the NAM LSTM Lite  uses slightly more CPU than AIDA LSTM Stdrd), particularly in the high gain datasets (like the JVM OD, and Blues Deluxe Gainy datasets). Same for NAM WaveNet Nano and "new LSTM".

IMO, the reason for that is mainly the loss function used in the training. As far as I know NAM uses MSE loss in the training, wheras AIDA uses ESR and DC Losses which account for the "energy" in the target signal
ESR(ouput, target) = MSE(output, target)/(target^2)
This also makes sense as high gain datasets have more "energy" in the signal than clean dataset.

Second thing is that the "new LSTM" architecture has very comparable results to the NAM WaveNet. It even outperforms it in the high gain datasets.

The "new LSTM" architecture is based on the idea of giving more than 1 sample as input to the LSTM Layer. It's this:
LSTM(input_size=8, hidden_size=8, num_layers=2) -> Linear layer (no bias)
Which is basically just like the NAM LSTM Lite (2x8), with the exception of using an input_size of 8 instead of 1.
You can see from the model evaluations that this little tweak makes a big difference in the end results!
Conclusions and suggetions
I'm posting this to give a motive here to test both:

ESR+DC Loss (like suggested in this paper https://arxiv.org/pdf/1911.08922.pdf), which I believe can improve the quality of the models especially in high gain territory.
Using more input samples with the LSTM architectures, particularly testing this architecture LSTM(input_size=8, hidden_size=8, num_layers=2) -> Linear layer (no bias) and ideally make it available in the NAM easy training.
As it provides very similar sound quality to the WaveNet Nano for a far lower CPU consumption, which is very valuable on embedded devices like the MOD Dwarf. (from 67% to <50% CPU allows for the use of more effects + higher quality IR cabinets in the pedal chain for example)

I hope this is insightful and can help drive the project in a good direction ^^
PS:

Here's a link to a colab notebook where I run the code for testing and comparing all the outputs of the models. https://colab.research.google.com/drive/1YuVzm6E_KoRwK8AQqWWkm3KxHFj0OeNE?usp=sharing
The way we generated the output of the models was using the MOD platform, where both AIDA-X and NAM run. We can create a dockerfile to automate the generation process if someone has the need for it

@sdatkinson Any tips on how to best go about allowing a larger receptive field for LSTM models (right now it is hardcoded to 1)? There is an "input_size" property, but that seems to be for adding additional parameters?

Thanks for your very thorough Issue, @KaisKermani 🙂
I see two different topics in here:

Using ESR and DC terms in the loss function, and
making an architecture that pulls more samples into the input of the LSTM.

As far as the first, it's already implemented--see dc_weight in the LossConfig class. I recall checking ESR as a training loss way back, but ultimately decided against using it because (1) it's not an IID loss since the normalizing factor depends on the contents of the rest of the set of samples being regressed against, and (2) the benefit of using it wasn't clear empirically. i.e.

IMO, the reason for that is mainly the loss function used in the training.

it'd be good to demonstrate this by ablating that factor specifically--either train the AIDA model w/ MSE, or train the NAM model with ESR. For NAM, you could do this in a pinch by using ._esr_loss() instead of ._mse_loss() here. Or, you could make changes to LossConfig to make it more "official" 🙂 . Not sure about AIDA.
As far as the second topic, I'm tracking that over in #289. I believe I've got some code sitting around somewhere that does this that I whipped up way back out of curiosity--just needs some additions over here as well as in NeuralAmpModelerCore.

As far as action items, how about this: check the ablation I asked for, and if it looks good, then I'll take a PR to include ESR as an option for the training loss 👍🏻

@mikeoliphant

Any tips on how to best go about allowing a larger receptive field for LSTM models (right now it is hardcoded to 1)? There is an "input_size" property, but that seems to be for adding additional parameters?

That's mostly right--1 is the default, but other values work as well. CatLSTM uses this for e.g. a parametric model.

@sdatkinson I'll do comparisons specifically on the loss function (mostly using the AIDA training, I'm just more used to the code base), and share the results here.
Regarding the issue #289 it looks like it's a different thing. Here I'm not suggesting to add a convolution layer before the LSTM layer. As far as I tried, this architecture (conv -> lstm) doesn't make a significant improvement.
What I'm suggestig here, is to directly input the samples to the LSTM layer, which should be simpler in terms of AI architecture. (so not using a convolution layer at all).
i.e. each iteration, the lstm layer takes as input the most recent 8 samples, instead of the most recent 1 sample.
I believe this can even be scaled up for larger LSTM models as well, so that model Input could be 32 samples for example. This may potentially give better results than the WaveNet architecture.
This is actually what @GuitarML finds out as well when he was experimenting with the same subject. (in this article)

@sdatkinson here's the comparison of the loss functions.
The two sets of models have been trained with the same exact parameters (model architecture, datasets, epochs...) except from the loss function.
Note that ESR+DC models have been trained using ESR+DC losses with these coefficients (which experimentally turned out to be the most efficient):
{'ESR': 0.75, 'DC': 0.25}

Here it's clear how the ESR+DC loss function helps the training converge more easily to the optimal solution.
Note also that the gap between the MSE and ESR+DC subsets of models is more clear in the high_gain territory of sounds.
I believe that these changes (both 1.increasing the receptive field of the LSTM, and 2.changing the loss function to ESR+DC) will directly improve the quality of NAM models (sound quality and CPU consumption).

Thanks for sharing your tests.
Is this fast results or deep trained models? What settings of lr, lr decay and epochs number was used fr this tests?

Hey @yovelop  ^^

What settings of lr, lr decay and epochs number was used fr this tests?

Models were trained on the same datasets, for 150 epochs I believe (or 100) with Adam optimization algorithm at lr .01 with no lr decay.

On fast trainig (500-1000epochs) there may be some difference...

Well the results I shared they show that there is indeed a difference in the results by changing the loss function (which makes sense to me). You're welcome to try the same yourself ofc!
I also experimented with multiple other loss functions that are time domain based (like SNR) and frequency domain based (like MultiResolutionSTFTLoss), but the combination of ESR+DC loss seems to bring the best results within 200 epochs of training. Note that when I say ESR+DC, ESR is weighted 0.75 and DC is weighted 0.25.
Unless you're running your custom training script, training NAM models usually train from around 200 epochs. Same goes for AIDA DSP models (another platform for neural modeling). And this makes sense especially if we're exposing training scripts for all users so that they're no stuck training a snapshot for an AMP for hours.
Having a faster converging training isn't a bad idea afterall.

ESR itself as a loss function depends on batchsize

I don't see how ESR depends on batchsize (contrarily to MSE ?). Just for reference this is the formula for ESR we're both talking about right?
ESR(ouput, target) = mean[(target - output)^2]/mean(target^2) = MSE(output, target)/mean(target^2)

for 150 epochs I believe (or 100) with Adam optimization algorithm at lr .01 with no lr decay.

Thanks. So your scores, test and conclusions are only for extra-fast training situations.
on very small num of epochs you can try to use RAdam - on my tests it learnings faster in small epochs (~300-500ep) but then slowing down (comparing with Adam and NAdam).

I don't see how ESR depends on batchsize (contrarily to MSE ?). Just for reference this is the formula for ESR we're both talking about right?
ESR(ouput, target) = mean[(target - output)^2]/mean(target^2) = MSE(output, target)/mean(target^2)

Yes, i mean that this part: "/mean(target^2)"  on small batches make sense, cause some batches can contain only loud parts ater other batches contain only extra quite signal parts. On big batches it varies less.
I will try to find and share my prev tests of loss functions, and test of different settings of WaveNet for light CPU use (less than NANO models).
but there often some architectures learn quickly and win strongly after 100-200 epochs, but the final errors after 5000 epochs can be much better for models who were outsiders in 100-200 epochs
p.s. it's better to compare not with same epochs but with same trainig time? I mean if some models trains faster so it can long for 250ep other trains slowly and must have 120 ep. For example, like "relative" horisontal axis in tensorboard:

Maybe you know of this already but I made a discovery myself tonight. Maybe it can be of help.
lstm_tests_2_num_layers_list.pdf

Is there any way to try this out by tweaking or is it not supported right now?

@38github

For NAM, you could do this in a pinch by using ._esr_loss() instead of ._mse_loss()

I tried this with LSTM just to see what would happen and no epochs went below ESR 1.000.

Interesting. I didn't expect it to be that much worse. But this is why I need to see the argument in terms of NAM's code base, not others'. There are plenty of tiny decisions made along the way, and it's not enough to say that some change works with someone else's codebase.
I realize that I made a mistake when I said that

it'd be good to demonstrate this by ablating that factor specifically--either train the AIDA model w/ MSE, or train the NAM model with ESR.

The mistake is that it's really not good enough to demonstrate this with AIDA, because this is an Issue about what to do with this codebase. I really need to see compelling evidence that it's better here, because that's where it would be used.
Coming back again to the second part of the Issue (and for the record I'd really like to see these two things handled separately; this is already a very busy thread), I've included the ability to "register" new model architectures with PR #310.
So for example, you could do something like this at the top of bin/train/main.py:
from nam.models._base import BaseNet

class MyNewModel(BaseNet):
    # Implement...
    def __init__(self, num_input_samples: int):
        # Etc
        ...

# Register it!
from nam.models.base import Model
Model.register_net_initializer("MyNewModel", MyNewModel)

And this allows you to use your model by adapting the model JSON of the CLI trainer like this, e.g. (note the "net" section):
{
    "net": {
        "name": "MyNewModel",
        "config": {
            "num_input_samples": 16
        }
    },
    "loss": {
        "val_loss": "mse",
        "mask_first": 4096,
        "pre_emph_weight": 1.0,
        "pre_emph_coef": 0.85
    },
    "optimizer": {
        "lr": 0.01
    },
    "lr_scheduler": {
        "class": "ExponentialLR",
        "kwargs": {
            "gamma": 0.995
        }
    }
}

This allows you to quickly implement new models without having to change the nam package itself. If you want to take a swing at implementing the model, you could easily share it as a code snippet and that'd make it a lot easier to vet the idea.
Alternatively, notice that this "plugin-style" feature basically gives you a ton of power to customize the NAM trainer without even needing to fork. So, you're more than welcome to personalize this package yourself in that way. (But you are going to need to implement the changes in the plugin code as well...and for that matter, I shouldn't accept a new model over here without an accompanying plan to make it available in NeuralAmpModelerCore. Otherwise, it wouldn't really make sense for this project! 🙂)

So hopefully this helps illuminate things. This (the model part) is admittedly a rather involved ask because of how many things it touches, and there's a fair bit of responsibility with making sure that it all works given how widely-used this repo is.
So @KaisKermani here's my suggestion for next steps here:

Pick what specific thing you want this Issue to be about and let's narrow the scope to it and leave the others for something separate.
2a. If it's the loss, try to figure out how to make it actually competitive in NAM. I suspect we'll learn a lot by seeing it work here instead of in AIDA.
2b. If it's the architecture, code it up and use the registry functionality to give it a spin. If it works, report back and we'll take it from there.

Sound good?

I would like to show you my experiments with LSTM. http://coginthemachine.ddns.net/mnt/_namhtml/
The only thing I can hear is less ideal is recreation of complex EQ like speakers and narrow eq changes.


Add inline signatures for parameterized dictionaries

Currently, it's difficult to anticipate how inlining annotations should work when you instance dictionary takes arguments:
instance myFooBind :: Monoid m => Bind (MyFoo r)
  bind ...

There's no way to attach an inlining annotation to the bind method of this instance. With the compiler's CSE pass, and trivial inlining of the bind dispatch, this will get hoisted to a top-level:
const bind1 = (() => MyFoo.myFooBind(Data$dUnit.unit).bind)();

Prompting some to want to annotate bind1, which is a compiler generated binding. This is not ideal.
Right now, we currently only support annotations referenced by top-level name, or top-level name and accessor. We could also support top-level name, application spine, and accessor, which would let us reference this pattern, and thus bind1 could receive the expected inline annotation without having to reference the compiler generated name for that binding.

Hypothetical directive syntax would probably be something like:
MyFoo.myFooBind(..).bind arity=2

Basically, we need some way to indicate that there should be some application spine between the reference and the method.


Improve the process to import Webflow pages

Motivation
Right now we need to make several manual changes to the files generated by webflow to make them work alongside the Gatsby website.
Approach
We can write a small script that applies the transforms to the webflow pages for us. There's probably other alternatives that may be nice too.

I discussed with Jorge today about the current status of webflow. I think we are going to move these pages into the gatsby site in an incremental way, but in the process, we probably want to get some mindshare around which form our css should take. It seems to make sense to use the same system across all of our sites if reasonable.
@jorgelainfiesta and @cherewaty have any opinions about this?

Importing new or re-importing existing pages is still painful, but viewing them has been improved in #140.

We no longer use webflow


Man page fixes

Example in docker search has an extranious -t
docker rmi has a typo
Docker-DCO-1.1-Signed-off-by: Dan Walsh<EMAIL_ADDRESS>(github: rhatdan)

LGTM


Feature Request: Inject access and refresh tokens retrieved via different channel

Currently the only way to authenticate is by means of CscClient.authLogin() via /csc/v1/auth/login. But the CSC API also allows for different ways to retrieve access and refresh tokens.
Thus, I'd propose adding an alternative method to inject tokens retrieved via a different channel, e.g. a CscClient.useTokens(String accessToken, String refreshToken) that simply sets the access_token and refresh_token members to the given values.
If some sanity check is desired, either token may be null (for connections without refresh-feature or connections that first of all have to call refreshLogin()) but not both concurrently.

This sounds like a good idea. Will look into it at some point. PR is of course welcome!


data table custom FooterCommponent feature  not working

i don't know if any one has  successfully added  the custom FooterComponent to the table. i have  been trying it since last and i have read through the docs still not can't make a headway

here is my code
I prepared the component prepared as an example.
I prepared a datatable again as in the example

I included the component.

i practically copied the code in the docs, but still didn't work. i don't know if the css framework has anything to do with this, cus i am using vuetify, and from your example i can see that your are using bootstrap.

Please if you can share just your  footerComponent  code (the exported code )that will be greatly helpful.

Hi @Asinging ! Thanks for the question
So, what part from the docs you didn't get it?
Remember:

The footerComponent must be a
 HTML element and it must have the
properties data, dataDisplayed, dataFiltered

The property data correspond to all data passed to VueDataTable. The
dataDisplayed corresponds to all data that is currently visible on the table.
The dataFiltered corresponds to all data that was filtered by a search query.
These properties can be used to perform common operations such as calculating
the sum of the values of the total rows of a certain column.

Suppose we have a table that of fruits. The data is an array of objects
whose properties are name, price, and amount. We can provide a custom
footer to show the total amount of fruits bought and the total price.

The footer component would be something like:

<template>

 0">
    Total

    {{ totalAmount }}
    {{ totalPrice }}

</template>

And we pass this component as follow:

<template>
	<data-table v-bind="tableProps"/>
</template>

I'll add a demo app on codesandbox using VueDataTable with custom footer

@AndreSouzaAbreu , if you can add a demo app regarding the custom footer, it wil be great. i think the docs is simple and straight forward, i still don't get why is not working. i had to copy everything on docs as for the custom footer into my app, still not working.
`here is my folder structure
!(https://user-images.githubusercontent.com/39298294/150882592-8e73663a-e451-463b-9aef-86a8e2b07dcd.PNG)
custom footer file
	<template>
 							Total	 								 							total 1	 							total 2	 							total 3	 							total 4
 					</template>
`

i was able to fix these issues by just updating from version 2.4.3 to 3.2.2 after like weeks of battles, thanks to @resuldeger who came through. the Docs should be updated explicitly stating the versions of the plugin that supports the custom footer. thanks to @resuldeger

Hi, sorry for the late reply.
I updated the docs and add a demo app that can be found here:
https://codesandbox.io/s/vue-data-table-demo03-fg8ok


[Bug]: very slow to open new pages in obsidian

Contact Details
No response
What happened?
A bug happened!
When I updated the plugin, suddenly the pages that I opened began to load too slowly. Moreover, some of them did not even show the content. This happens when you have obsidian open for some time
What platform were you using?
Desktop
Version of the plugin
3.3.1
Relevant log output
No response
Are you using the latest version of the plugin in your Obsidian vault?

[X] I have verified that I am on the latest version

Are you check if there is a similar issue?

[X] I have verified that there are not similar issues

We were testing on windows and Mac the version without find any performance problem. I will try to test it, sounds strange

Yeah. You are right the problem returned. I don't know what happened to my obsidian. Being this misunderstood, he thought it depended on the plugin. Thanks for the great job. Greetings!


test: Adding tests for query with where

#151  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @tazarov and the rest of your teammates on  Graphite


How to make a 'passive' sortable list?

The 'passsive' I mean is the items position change is not caused by the user drag and drop.
My code sort the items, and let this library to do the transition animation.
I looked at your Removable example, its animation working. But when I write my code, it's not working. I have add code like:
layoutMeasuring={{ strategy: LayoutMeasuringStrategy.Always }}
animateLayoutChanges: () => true

But when I sort the items, or remove an item, there's no animation

Refer to https://github.com/clauderic/dnd-kit/discussions/108#discussioncomment-524987
If you run into issues, open a new discussion under Q&A with a link to a CodeSandbox that replicates the issue you are having.


gh-51: spec'd out search calls

Resolves gh-51
Still needs Typescript side of the world.

@MadhuvanthG take a look when you have a chance. I'm looking for some feedback here.


[Wrong Link In Open Source Roadmap]

Description
The Git Documentation link in the open source roadmap is not linked to the git documentation. Instead, it is linked to a video that has already been mentioned in the roadmap above.
Please refer to the screenshot given below
Solution:
Change the link of "Git Documentation"  from
https://www.youtube.com/watch?v=yzeVMecydCE
to
https://git-scm.com/doc
OR
https://git-scm.com/book/en/v2
Screenshots

Additional information
No response

Thank you so much for reporting @SaarthakMaini

Thank you so much for the report. This issue has been fixed


Broken geoposition.coords in Firefox

window.navigator.geolocation.getCurrentPosition(enableHighAccuracy: true).then((Geoposition geoposition) => print('lat ${geoposition.coords.latitude}'));
window.navigator.geolocation.watchPosition(enableHighAccuracy: true).listen((Geoposition geoposition) => print('lat ${geoposition.coords.latitude}'));
Google Chrome 64.0.3282.167 - without errors
Firefox 58.0.2 Firefox 57.0 Firefox 58.0b11 - error when trying to get properties of geoposition.coords
Dart VM version: 1.24.3 (Wed Dec 13 18:05:29 2017) on "windows_x64"

What's the exact error message?

Unfortunately we are no longer updating Dart SDK 1.24.3.
Quite a bit of work has been put in the 2.0.0-dev channel, so this might already be fixed.


test: [DEVHAS-74] Add ComponentDetectionQuery to HAS e2e tests

Signed-off-by: John Collier<EMAIL_ADDRESS>Description
This PR updates the existing HAS e2e tests to create a ComponentDetectionQuery (CDQ) resource in the tests, and to create the test repo's Component resource from the results of that CDQ.
Issue ticket number and link
https://issues.redhat.com/browse/DEVHAS-74
Type of change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration
Checklist:

[ ] I have performed a self-review of my code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation

/lgtm

/retest

/test ?

/test redhat-appstudio-e2e


Author name parser is failing in some cases, possibly unicode-related (ccaron)

Describe the bug
Parsing certain files results in an ingest data model whose author(s) may have a given name, but no surname.  The three cases I checked all had the entity "ccaron" (č) in the author surname.
To Reproduce
Parse the file Crossref2/doi/10.1002/./as/na/,1/92/52/25/06/02//metadata.xml or Crossref2/doi/10.1002/./as/na/,2/00/31/01/51//metadata.xml or
Crossref2/doi/10.1002/./as/na/,1/93/92/68/11/05//metadata.xml
Additional context
Add any other context about the problem here.

The issue is happening because processing works differently depending on whether the input data are read in as binary data or text data.  If the files are loaded with something like with open(infile, 'rb') as finput: data=finput.read() the unicode data causes some exception and fails silently on just those fields.  Reading it as text data -- open(infile, 'r') -- results in correctly-interpreted data.
The immediate fix is to read input files strictly as text, and no change is required to IngestParser itself.


Fixed teaser layout.

@robgietema why the fix is needed? Won't this could break some CSS out there?

@robgietema why the fix is needed? Won't this could break some CSS out there?


Add optional param - private DNS zone to server API

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[x] update existing version for new feature

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
04/07/2021
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
04/02/2021
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[x] I have reviewed the documentation for the workflow.
[x] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[x] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[x] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[x] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[x] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

/azp run

Hi @taogems to resolve this issue, could you please make the following modifications in this readme.go.md file?
Changing the value of output-folder to
output-folder: $(go-sdk-folder)/services/preview/$(namespace)/mgmt/2020-10-05-preview/$(namespace)


MongoDB installation: document the list of commands

After typing wfmtr run app_name and then accessing the domain, I get the following error:
It looks like you are trying to access MongoDB over HTTP on the native driver port.

I have install mongodb on windows 7.and then accessing the domain, I get the following error.
"It looks like you are trying to access MongoDB over HTTP on the native driver port."

Can't get MongoDB to work because Webfaction doesn't allow me to update mongo to a version Meteor supports (only latest stable version, which doesn't work with meteor)

You should be able to install any previous version of MongoDB.
Also, Meteor 1.1 supports MongoDB 3.x.

+1


kover(html/xml)Report(Variant) tasks cache

Describe the bug
When I add a new class, move current one to different package or basically in case of any changes kover produces same report over and over. I tried to chain 'kover(Html/Xml)Report(Variant)' task with leading 'clean' like following (./gradlew clean koverHtmlReport)) but it doesn't usually help.
The only thing that helped me to solve this issue is:
tasks.whenTaskAdded { task ->
    if (task.name == 'koverHtmlReport') {
        task.outputs.upToDateWhen { false }
    }
}

Errors
No errors produced
Expected behavior
A clear and concise description of what you expected to happen.
Reproducer
ATM there is issue with github

But seems like this is default behavior, so can be reproduced in every simple setup
Reports
If applicable, report files or screenshots.
Environment

Kover Gradle Plugin version: 0.7.0-Alpha
Gradle version: 8.0.2
Kotlin project type: Kotlin/Android (modular with mix of both kotlin and android modules)
Coverage Engine version (if customized in build script): default Kover
Other context important for this bug: macOS Ventura 13.0.1

Yes they are executed and there are no FROM-CACHE, SKIPPED, UP-TO-DATE` are present in logs next to tasks.

In this case, a reproducer is needed.
However, it is not entirely clear how the
tasks.whenTaskAdded { task ->
    if (task.name == 'koverHtmlReport') {
        task.outputs.upToDateWhen { false }
    }
}

code helped.
In 0.7.0-Alpha version, task koverHtmlReport is not used for Android applications - it is used only for JVM and Kotlin MPP/JVM projects

I'll provide one later today on tomorrow
My project contains couple of kotlin library modules, that's how I invalidate koverHtmlReport cache for these modules, for android ones I use  koverHtmlReportDebug comparison (I've configured reports for android modules only for 'debug'

Well, apparently the issue is with our project structure and config, not able to reproduce this issue with "demo" project and not able to share project that faced this issue as it is in private company repo. Gonna close this issue, sorry bothering you.

I'm facing a similar (if not the same) issue. My setup:

Android Studio Android Studio Flamingo | 2022.2.1 Patch 1 (current version)
Java 17 (bundled with Android Studio)
Kover 0.7.0
https://github.com/armatys/KoverTest (simple android project created with Android Studio)

Steps:

Run ./gradlew koverHtmlReport
HTML report is generated at app/build/reports/kover/html/index.html
Change either the SampleTest (e.g. comment out whole test2 function), or the change the Sample class (e.g. remove the if (y == 0) block)
Run ./gradlew koverHtmlReport again
Result - kover report is not updated:

...
> Task :app:processDebugUnitTestJavaRes NO-SOURCE
> Task :app:testDebugUnitTest
> Task :app:koverGenerateArtifactDebug
> Task :app:koverGenerateArtifact UP-TO-DATE

> Task :app:koverHtmlReport UP-TO-DATE
Kover: HTML report for ':app' file:///Users/mako/Developer/KoverTest/app/build/reports/kover/html/index.html

BUILD SUCCESSFUL in 1s
23 actionable tasks: 2 executed, 21 up-to-date

The timestamp in unit test report is updated, but the timestamp in HTML kover report is not.

Another case (but this time with --rerun-tasks flag):

Run ./gradlew clean
Run ./gradlew koverHtmlReport
HTML report is generated at app/build/reports/kover/html/index.html
Comment out the test2 function
Run ./gradlew koverHtmlReport --rerun-tasks again
Result: the tests are run, report is generated, but it shows that the last line in the Sample class is covered (return x + y), but it is not covered, since we've commented out the corresponding test. Output:

...
> Task :app:testDebugUnitTest
> Task :app:koverGenerateArtifactDebug
> Task :app:koverGenerateArtifact

> Task :app:koverHtmlReport
Kover: HTML report for ':app' file:///Users/mako/Developer/KoverTest/app/build/reports/kover/html/index.html

BUILD SUCCESSFUL in 5s
23 actionable tasks: 23 executed

To get updated kover results I'd have to run ./gradlew clean first.

I'm facing a similar (if not the same) issue. My setup:
* Android Studio Android Studio Flamingo | 2022.2.1 Patch 1 (current version)

* Java 17 (bundled with Android Studio)

* Kover [0.7.0](https://github.com/Kotlin/kotlinx-kover/releases/tag/v0.7.0)

* https://github.com/armatys/KoverTest (simple android project created with Android Studio)

Steps:
* Run `./gradlew koverHtmlReport`

* HTML report is generated at `app/build/reports/kover/html/index.html`

* Change either the `SampleTest` (e.g. comment out whole `test2` function), or the change the `Sample` class (e.g. remove the `if (y == 0)` block)

* Run `./gradlew koverHtmlReport` again

* Result - kover report is not updated:

...
> Task :app:processDebugUnitTestJavaRes NO-SOURCE
> Task :app:testDebugUnitTest
> Task :app:koverGenerateArtifactDebug
> Task :app:koverGenerateArtifact UP-TO-DATE

> Task :app:koverHtmlReport UP-TO-DATE
Kover: HTML report for ':app' file:///Users/mako/Developer/KoverTest/app/build/reports/kover/html/index.html

BUILD SUCCESSFUL in 1s
23 actionable tasks: 2 executed, 21 up-to-date

The timestamp in unit test report is updated, but the timestamp in HTML kover report is not.
Another case (but this time with --rerun-tasks flag):
* Run `./gradlew clean`

* Run `./gradlew koverHtmlReport`

* HTML report is generated at `app/build/reports/kover/html/index.html`

* Comment out the `test2` function

* Run `./gradlew koverHtmlReport --rerun-tasks` again

* Result: the tests are run, report is generated, but it shows that the last line in the `Sample` class is covered (`return x + y`), but it is not covered, since we've commented out the corresponding test. Output:

...
> Task :app:testDebugUnitTest
> Task :app:koverGenerateArtifactDebug
> Task :app:koverGenerateArtifact

> Task :app:koverHtmlReport
Kover: HTML report for ':app' file:///Users/mako/Developer/KoverTest/app/build/reports/kover/html/index.html

BUILD SUCCESSFUL in 5s
23 actionable tasks: 23 executed

To get updated kover results I'd have to run ./gradlew clean first.

./gradlew --no-build-cache clean koverXmlReport is a remedy for me at the moment

So from what i understand, there's no real fix yet and we have to do with a clean before.


docs: Add Warning to Requires Policy Language

FromRequires and ToRequires are not limited
by other ingress/egress rules. In theory
we should not have allowed its combination with
other rules, but we cannot introduce a sanitization rule that we forgot to add, as it could
easily break extant bodies of policy in the community.
This commit updates the requires labels policy
language documentation to warn explicitly on the
impotence of combining other rules with it.

/test

/test


Emoji in code block, fix issue #329

@jollypolly123 thank you! This should be fixed the next time @techtrailhead deploys the site.


fix: 20412 new user is not navigating to concierge chat after tab on link

Details

Fixed Issues

$ https://github.com/Expensify/App/issues/20412
PROPOSAL: https://github.com/Expensify/App/issues/20412#issuecomment-1584507732
Tests

Log out of NewDot
Navigate to https://staging.new.expensify.com/concierge
Sign-up with a new account
Verify that new user is navigating to Concierge chat after tap on link

[x] Verify that no errors appear in the JS console

Offline tests

Same as above
QA Steps

Log out of NewDot
Navigate to https://staging.new.expensify.com/concierge
Sign-up with a new account
Verify that new user is navigating to Concierge chat after tap on link

[ ] Verify that no errors appear in the JS console

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(themeColors.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Screencast from 14-06-2023 14:51:56.webm

Mobile Web - Chrome

https://github.com/Expensify/App/assets/113963320/d4d913d5-962d-4b6c-b7bd-90d0e51332f1

Mobile Web - Safari

https://github.com/Expensify/App/assets/113963320/ea4df28b-24f0-4f02-b6ee-bc6b4d0763bc

Desktop

https://github.com/Expensify/App/assets/113963320/1a91a5b2-c09f-4eb6-8ce0-14836c161448

iOS

https://github.com/Expensify/App/assets/113963320/11ed2454-55f3-4b2d-8fbd-fa48f32dd040

Android

Screencast from 14-06-2023 15:27:44.webm

@tienifr @thesahindia Can you please prioritize this fix as it seems to influnce multiple deeplinks

@tienifr, the app is crashing. We forgot about this instance
https://github.com/Expensify/App/blob/f467085ded796521f90ba0e844b0fc178b923635/src/pages/home/ReportScreen.js#L152

I tested by removing that missing instance, and the deeplink looks good for both concierge and public rooms:
https://github.com/Expensify/App/assets/6829422/7318c5b2-25c6-4a90-b1cd-42512738e879
https://github.com/Expensify/App/assets/6829422/a2b9f82c-ae85-4617-ad29-d2bc47fa2936
I could push that change to this branch, but I don't have permission to write to tienifr:fix/20412 branch. We can either wait for @tienifr to do that change or I can create another PR with their changes.

Tested the public room deeplink and it worked in iOS

🚀 Cherry-picked to staging by https://github.com/mountiny in version: 1.3.28-3 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@Expensify/applauseleads please QA this PR and check it off on the deploy checklist if it passes.

🚀 Deployed to production by https://github.com/AndrewGable in version: 1.3.28-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to staging by https://github.com/mountiny in version: 1.3.32-1 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

🚀 Deployed to production by https://github.com/thienlnam in version: 1.3.32-5 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fix MD errors in guides for popular servers

Markdown links were broken

Actually, addressing this in #3639


Upgrade to 11.0 SP9

This needs to be tested against 11.0 SP9 and upgraded if necessary.

I tested this project with Aras 11 SP9 and Visual Studio 2015. The project does not build as-is.
I resolved the build errors and the application will run, but the identity/resource mapping function does not work. I will submit a pull request that includes my updates in case anyone wants to work on the mapping feature.

Retarget to current open release: 11.0 SP12.


Fix placement finalizer

Signed-off-by: Dominique Vernier<EMAIL_ADDRESS>https://github.com/stolostron/backlog/issues/22683

/test e2e-cluster


montage mip now listens to z-radius, and fix quant indexing bug

I noticed that ROIs centered on the last z plane of an XYZT recording weren't being quantified. Although position of neuron center wasn't occluded by any adjacent neurons and z-quantification-radius was set to 0, timeseries for neurons centered on the last z-plane were zero.
I went to background_subtraction_quant_function and looked through the code. When setting the mask that would eventually be used for quantification, indexing of the z in the mask was implemented with z_starts[i]:z_stops[i].
z_stops is defined as the minimum of [z_maxes, pos_z + quant_z_radius + 1]
z_maxes is defined as np.array([max_z] * len(pos_z))
and max_z is max_z = len(frames) - 1
So here we're using z-plane index for our slicing, however our second slice bound is exclusive. Like if there are 12 total z planes, indexing a neuron in the final zplane would evaluate to [11:11] returning an empty array.
Solution was to remove the -1 on max_z. I applied the same fix to x and y which should be experiencing the same issue, tested on a few recordings which came out right as far as I can tell.
Merging for convenience

gonna merge for convenience cause of small changes!


Unable to modify slider input field when "listen" is called

Consider the following section of code
const gui = new dat.GUI();
const params = {
	x: 0
}
gui.add(params, 'x', -1, 1, 0.1).listen();

As expected, I am able to change the value of x by manipulating the slider. However, when I try to enter some text into the box next to the slider, I am unable to type anything.
However, if listen is removed, I am able to use both the slider and the custom input field. Obviously, I lose the ability to bind changes to params.x to the slider since .listen() is not being called.
Is this expected behavior, or is it a bug? If it is expected behavior, how do I achieve a two-way binding between my params data model and the corresponding GUI control while maintaining the ability to enter a value in the text field?
JSFiddle for convenience.
Thank you for reading.

Hope this issue is resolved in the next revision.

Not sure if 'this' is supposed to work or not?
If '_this2' was working and is placed in a functional update then great.

^ THIS!!!


pytest-html does not pick up the test results when we run with pytest-parallel

We usually generate reports after every run for our tests using pytest-html.
But when we use pytest-parallel, we get 0 tests run in the report, but console correctly gives all details.
Can you please take a quick look and see if it is a problem with pytest-parallel?
I tried with xdist and that is able to collect the test correctly!
The sample command I use is
py.test --workers 2 -m "ewlc" -sv com/tests/mock/e2e/eWLC_Client_Issues/blacklist_dhcp_eWLC_Issues_test.py -k test --config device_mock_Cluster.yaml --html=local-regression.html

Looks like pytest_runtest_logreport isn't being called. I'll have to dig in

Sorry, this one took a while. This should be resolved in 0.0.9 on PyPI.
As an aside, I'm trying to learn what most people are using pytest for and specifically pytest-parallel. Are you running integration tests, unit tests, something else?

Thanks @GowriShankariSurendran for feedback, I'm glad the plugin was helpful!
I originally designed pytest-parallel to speed up integration tests, but to really take advantage of the speed, your tests' state must be pretty isolated. If you're having trouble with slow tests and unsure about the level of isolation your tests have, you might try using --tests-per-worker rather than the --workers option to see if your results improve. --tests-per-worker is more efficient than --workers, can be much faster, and may be more reliable in some cases.


python311Packages.aionotion: 2023.05.1 -> 2023.05.4

Diff: https://github.com/bachya/aionotion/compare/2023.05.1...2023.05.4
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] 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

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 231923 run on x86_64-linux 1

5 packages built:

home-assistant-component-tests.notion
python310Packages.aionotion
python310Packages.aionotion.dist
python311Packages.aionotion
python311Packages.aionotion.dist


Site generator: make history scale

Background
We have a status site generator here: https://featurevisor.com/docs/site/
It generates history data from Git in out/history-full.json file.
Challenge
As Git repo grows over time, this file will grow too. And it's worth coming up with a strategy for scaling it, while staying a statically generated site.
Ideas

Split the history-full.json file into paginated files like:

history-1.json
history-2.json

Generate history on a per entity basis as well, like:

history-feature-foo.json
history-segment-netherlands.json

If we have scaling concerns for history of individual entities, we can paginate them too:

history-feature-foo-1.json
history-feature-foo-2.json

@fahad19 It will be a good option if we use https://www.npmjs.com/package/better-sqlite3 with filesystem as db.
I have implemented a sample example here https://github.com/jagadeeshgade008/fs-db

@jagadeeshgade008: looks really cool!
but we have to understand that we have limitations to how we serve this site statically. there's no Node.js involved. so we cannot rely on DB-like solution that cannot run in the browser.

@fahad19 How about implementing similar to this

too many clicks I would say.
most often, people would be only interested to see the latest changes. so current list view does well there.
if user wants to load even older results, those can be fetched on demand.


[Feedback]: "Bring" as first word in PR title incorrectly flagged as not using the imperative mood

What rules does this feedback apply to?
useImperativeMood
What feedback do you have?
For example:
api: Bring `target` into scope before narrowing

Version
0.5.0

Looks like we do account for this, but probably just need to normalize the case first: https://github.com/maxdeviant/danger-plugin-pr-hygiene/blob/2b3e55598308dba91f43cdd50d4cac0742146c8a/src/grammar/verb-forms.ts#L68


update writers for consistency

I am splitting this out of the quandl data loader work.

closing in favor of #1108


Create a vhost_whimsy module based on vhost_asf

See README for list of features.

Link to readme: https://github.com/rubys/infrastructure-puppet/blob/vhost_whimsy/modules/vhosts_whimsy/README.md

readme refers to vhosts_whimsy as vhosts_asf in some places - perhaps that should be fixed first?

@Humbedooh thanks!  I only found (and fixed) one reference.  Please let me know if I missed anything.


Mount w/large snapshot fails

Output of restic version
restic 0.15.1 compiled with go1.19.5 on darwin/arm64
How did you run restic exactly?
restic mount ~/mnt <specific snapshot-ID> (other IDs work, just not this one)

What backend/server/service did you use to store the repository?
Rclone:OneDrive
Expected behavior
The snapshot to mount properly
Actual behavior
Acts as if mounted, won't list the directory contents in the terminal or in Finder.  Eventually gets killed by Zsh.
Steps to reproduce the behavior
Mount a snapshot with a LOT of tiny files in each directory, wait for it to say it's ready, try to use it.  Terminal / Finder freezes.  Zsh eventually kills it.
Do you have any idea what may have caused this?
Either high RAM usage or some bug with lots (and I do mean LOTS) of tiny files in one folder.  Listing the directories straight off the source drive can take 2-3 minutes as it is.
Do you have an idea how to solve the issue?
Throw more RAM at it (I can't test this, I have one of those fancy new iMacs that would be a pain to open up).  Other than that, not sure.
Did restic help you today? Did it make you happy in any way?
Best backup app out there!

How much is lots, hundreds of millions? Restic constructs the directory structure in memory and keeps it there for at least as long as one process (Finder, ls) is keeping it open. I don't know how exactly much that costs, but a quick glance at the code suggests something on the order of a kilobyte per file, maybe a few.

Looks like this snapshot in particular is 38,206,383 files, 6.612TiB (restore-size).  I just know it has a lot of tiny files in one folder and it takes minutes to enumerate on the disk itself.  I don't have the disk now (the user has it), and since I can't mount it, there's no easy way to check specific folder counts.

You can check how many files are in the dir with restic cat. It's a bit involved, but essentially you start with
restic cat snapshot <snapshotID>

then
restic cat blob <treeID>

from the tree ID shown in the snapshot's output, and go down the filesystem hierarchy using the subtree fields. The number of files in a directory is
restic cat blob <treeID> | jq '.nodes | length'

Looks like this is related to #2446, although with the extra problem that the fuse code in restic currently implements ReadDirAll() which returns all files in a directory at once. From a quick look at the fuse library we're using, providing an incremental ReadDir() implementation is currently not supported there.


docker builds fail on ubuntu 20.04 agents, but succeed on 18.04 agents.

Description
We build a 20.04 ubunto docker image on our current system, and it works file when we use Ubuntu 18.04 hosted agents.
I am trying to move our build system to use the new 20.04 hosted agent images, in preparation for 18.04 images going away in April.
I have yet to root cause the reason for the failure, but I am starting to think it is something to do with the agent image, as I have gutted our docker file so it is not doing anything other than making a copy of the base 20.04 ubuntu image and creating some empty folders in it (I've commented out installing our SDK and commandline tools), and it still fails using the new agents.
looking at the list of installed tools, I see that the 20.04 agent has an older version of the Docker Client and Server, and the 18.04 agent has a newer version.  Is there a reason for this, and could that be the reason for the failures only when using the 20.04 agent images?
20.04 agents:

Docker-Moby Client 20.10.21+azure-2
Docker-Moby Server 20.10.21+azure-2

18.04 agents:

Docker-Moby Client 20.10.22+azure-1
Docker-Moby Server 20.10.22+azure-1

Platforms affected

[X] Azure DevOps
[ ] GitHub Actions - Standard Runners
[ ] GitHub Actions - Larger Runners

Runner images affected

[ ] Ubuntu 18.04
[X] Ubuntu 20.04
[ ] Ubuntu 22.04
[ ] macOS 11
[ ] macOS 12
[ ] Windows Server 2019
[ ] Windows Server 2022

Image version and build link
all ubuntu 20.04 agents.
Is it regression?
ubuntu 18.04 works, 20.04 does not
Expected behavior
any docker file I can build on 18.04 build agents should also build on 20.04 builds agents.
Actual behavior
18.04 build agents work, but 20.04 builds agents fail to compile very basic 20.04 docker file.
Repro steps
compile this docker file on both 18.04 and 20.04 build agents.

# --- BUILD image
FROM mcr.microsoft.com/mirror/docker/library/ubuntu:20.04 as build
ARG SPX_Version=latest

RUN apt-get update && \
    apt-get install --yes \
        apt-transport-https \
        unzip \
        wget

# code removed that that created some working folders and installs Speech SDK and CLI.
# and docker file still fails on 20.04 build agents...

# --- OUTPUT image
FROM mcr.microsoft.com/mirror/docker/library/ubuntu:20.04 as output
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update -y && \
    apt-get upgrade -y && \
    apt-get install -y --no-install-recommends libglib2.0 &&\
    apt-get install -y --no-install-recommends libglib2.0-cil &&\
    apt-get install -y --no-install-recommends libglib2.0-cil-dev &&\
    apt-get install -y --no-install-recommends \
        python3 python3-pip python3-dev \
        libgirepository1.0 libasound2 \
        libgstreamer1.0-0 gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly python3-gst-1.0 \
        apt-transport-https \
        unzip \
        wget

RUN wget -q https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb && \
    dpkg -i packages-microsoft-prod.deb && \
    apt-get update && \
    apt-get install --yes dotnet-runtime-6.0 azure-cli

Before you ask, this is the error returned while building the docker image.
It is failing on a normal APT install, and I don't really understand how/why checking the ado build agent host from 18.04 to 20.04 would cause an APT install inside the 20.04 docker image to fail like this???

Setting up libglib2.0-cil (2.12.40-3) ...

Unhandled Exception:
System.TypeInitializationException: The type initializer for 'Sys' threw an exception. ---> System.DllNotFoundException: System.Native assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) Interop+Sys.LChflagsCanSetHiddenFlag()
  at Interop+Sys..cctor () [0x00000] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
   --- End of inner exception stack trace ---
  at System.IO.FileSystem.FileExists (System.ReadOnlySpan`1[T] fullPath, System.Int32 fileType, Interop+ErrorInfo& errorInfo) [0x0000f] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
  at System.IO.FileSystem.FileExists (System.ReadOnlySpan`1[T] fullPath) [0x00006] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
  at System.IO.File.Exists (System.String path) [0x00058] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
  at Mono.Tools.Driver.LoadConfig (System.Boolean quiet) [0x00031] in <c1f3f44c980c4c748aff61945c8f618f>:0
  at Mono.Tools.Driver.Main (System.String[] args) [0x00347] in <c1f3f44c980c4c748aff61945c8f618f>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'Sys' threw an exception. ---> System.DllNotFoundException: System.Native assembly:<unknown assembly> type:<unknown type> member:(null)
  at (wrapper managed-to-native) Interop+Sys.LChflagsCanSetHiddenFlag()
  at Interop+Sys..cctor () [0x00000] in <12b418a7818c4ca0893feeaaf67f1e7f>:0
   --- End of inner exception stack trace ---

Hello @BrianMouncer, we will investigate. thank you!

@BrianMouncer we will release new Ubuntu 20.04 image this week with updated Docker-Moby packages(same version as on Ubuntu 18.04)

@BrianMouncer looks like it was some temporary failure, please check again.

@BrianMouncer I will close the issue. If you have any other questions or concerns please feel free to reopen.


sc-4310 Initial bff overview endpoint

Scope of changes
This changes the bff overview endpoint to call the members API instead of returning the mock data. In order to do this, I created a Summary members endpoint which returns some summary information. In a future PR we need to parse the VASP IDs out of the user claims and do specific VASP lookups, as well as implement the overview test in the bff when authentication is fully integrated.
Type of change

[ ] bug fix
[x] new feature
[ ] documentation
[ ] other (describe)

Acceptance criteria
I haven't manually tested the endpoint yet but it should now return real data from the configured testnet and mainnet.
Author checklist

[x] I have manually tested the change and/or added automation in the form of unit tests or integration tests
[x]  I have updated the dependencies list
[x]  I have recompiled and included new protocol buffers to reflect changes I made
[x]  I have added new test fixtures as needed to support added tests
[x]   Check this box if a reviewer can merge this pull request after approval (leave it unchecked if you want to do it yourself)
[x]  I have moved the associated Shortcut story to "Ready for Review"

Reviewer(s) checklist

[ ] Any new user-facing content that has been added for this PR has been QA'ed to ensure correct grammar, spelling, and understandability.

Codecov Report

Merging #578 (a279ccc) into main (a3b6e1d) will increase coverage by 0.31%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main     #578      +/-   ##
==========================================
+ Coverage   37.84%   38.16%   +0.31%
==========================================
  Files         413      153     -260
  Lines        4711     2416    -2295
  Branches     1163      614     -549
==========================================
- Hits         1783      922     -861
+ Misses       2749     1320    -1429
+ Partials      179      174       -5

Impacted Files
Coverage Δ

web/gds-user-ui/src/utils/menu.ts

...ui/SelectFormControl/SelectFormControl.stories.tsx

web/gds-user-ui/src/layouts/DashboardLayout.tsx

...s-user-ui/src/components/Menu/Landing/MenuItem.tsx

.../CertificateSection/CertificateSection.stories.tsx

...user-ui/src/application/store/selectors/stepper.ts

web/gds-user-ui/src/components/GaWrapper/index.tsx

...es/dashboard/certificate/lib/fieldNamesPerSteps.ts

...xoQuestionnaireForm/TrixoQuestionnaire.stories.tsx

...mponents/NeedsAttention/NeedsAttention.stories.tsx

... and 250 more

Continue to review full report at Codecov.

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


Focus view

Including some workspace stickiness using the workspaceState memento!

@bwateratmsft We think it's ok to store the resource id as a workspace setting, was there another reason you wanted to use a workspaceState momento for this?

Storing it as a workspace setting means it gets checked in. The subscription ID, resource group name, and resource name are thus checked in, which is not desirable. Most people would consider them private information, and would not want them to be checked in.

We have had this behavior for App Service and Functions for deployments for the last 5 years without any user feedback to indicate otherwise.  I don't know the entire details, but there was a bit of an issue with event listening with memento.
As for the Azure id being in the .vscode settings, we did kind of consider this to be a feature because this would allow resources to be sticky per workspace.  If you clone your repo down from another machine, you'd have the focused project view still (assuming those resources exist).
FWIW:
https://docs.microsoft.com/en-us/answers/questions/340725/is-subscription-id-personal-or-should-be-kept-priv.html#:~:text=In your case it is,are the users %2F owners etc.
https://stackoverflow.com/questions/45661109/are-azure-subscription-id-aad-tenant-id-and-aad-app-client-id-considered-secre

Discussed offline yesterday. One approach is to start out with using the workspaceState memento, and if people ask for change, switch to workspace settings. If started from the other direction, we would not be able to remove the data from their already-committed files.

Closed by #186


Unable to Start Service

New user here. Trying to run the example located at
https://github.com/kardianos/service/tree/master/example/logging
but I'm getting the following error.
Failed to start Go Service Example for Logging: The dependency service does not exist or has been marked for deletion.

I'm assuming this is because of
...
Dependencies: []string{
	"Requires=network.target",
	"After=network-online.target syslog.target"},

specifically the syslog.target.
Could someone point me in the right direction to get this example running? I'm assuming I need a syslog service running... do I name it syslog? I'm unfamilar with syslog.target

@mahummon I met the same problem in Windows platform.
By removing the two strings from dependencies and rebuilding the source, i could make the service running.
I guess these dependencies are only required in Linux platforms.


[Feature Request] fvm install 2: infer the latest minor/patch version when supplying the major version

Problem description
I just installed fvm, intending to use it to switch quickly between the latest flutter 2 release and the latest flutter 3 release.
After installation, I intuitively ran fvm install 2 to download the latest Flutter 2 SDK with fvm and get started with my configuration.
fvm printed:
Flutter "2" is not installed.

Installing version: 2...
Cloning into '/Users/thor/fvm/versions/2'...
fatal: Remote branch 2 not found in upstream origin

Could not install 2

Please run command with  --verbose if you want more information

I did not expect this error. I would expect fvm install 2 to install the latest stable Flutter 2 release at the time of running the command. It would expect it to be equivalent to the working command fvm install 2.10.5@stable.
Describe the solution you'd like
I had an expectation mismatch because I expected installation behavior similar to the node version manager. Since many folks in the flutter space come from web development, there might be more people who are used to nvm.
To compare, if you run nvm install 14, it installs v14.19.3, which is the latest stable 14.x.x release. The command inferred the latest available patch version of the latest minor version in semantic versioning.
You can also specify the only the major and minor version, and leave the patch version open, for example, nvm install 14.10 would install v14.10.1, where the .1 is the last available patch version in that minor version range.
I would like fvm to also implement this behavior.
Describe alternatives you've considered
The alternative is what I did to fix my problem:

Googled for the Flutter SDK GitHub project (because fvm seems to directly use git to download versions)
Looked at the tags there: https://github.com/flutter/flutter/tags
Figured out 2.10.5 is the latest stable 2.x.x flutter release at the time of writing.
Ran fvm install 2.10.5. All good!

Additional context
I read the principles.
I think this change would make the fvm API simpler to use. It reduces my mental load by not requiring me to know or look up what the last Flutter 2 release is.
At the same time, I recognize that this extra version inference layer would make fvm use git less directly, which might distance it a bit from flutter's usual installation methods. I think it's worth it.

@th0rgall I don't know how I feel about this... I definitely see some benefit of doing that.. but in the example of Flutter 2, if I want version 2, would be 2.0.0, not the latest
Maybe a better implementation that could also solve the problem of keep it up to date ongoing is constraints.
For example on the fvm config you could do ^2.0.0, and it would always use the latest 2.0.0 version, and you could use things like >=2.10.0 <3.0.0.

but in the example of Flutter 2, if I want version 2, would be 2.0.0, not the latest

I agree that this is subjective & ambiguous.
It could work like this, if the version implied is not clear:
thor@mbp ~ % fvm install 2
Which version do you want to install?
1) 2.0.0
2) 2.10.5 (latest stable 2.x.x release)

Where it would allow you to select the version interactively. Provides a good UX imo, but probably adds some implementation complexity.
Alternatively, I think this current message is also good, and could be expanded upon:
thor@ThorsWokstation ~ % fvm install

Please provide a channel or a version, or run this command in a Flutter project that has FVM configured.

That error message is better than the git error message that I got, I think.
You could suggest example commands depending on the input, which would've equally helped me with my problem:
thor@ThorsWokstation ~ % fvm install 2

Please provide a channel or an exact version, or run this command in a Flutter project that has FVM configured.

Did you mean to install the latest Fluter 2.x.x release? Then run:
fvm install 2.10.5

thor@ThorsWokstation ~ % fvm install

Please provide a channel or an exact version, or run this command in a Flutter project that has FVM configured.

Example usage: fvm install stable

Maybe a better implementation that could also solve the problem of keep it up to date ongoing is constraints.
For example on the fvm config you could do ^2.0.0, and it would always use the latest 2.0.0 version, and you could use things like >=2.10.0 <3.0.0.

Do you mean that if you run fvm install in that project, it would resolve to the latest version allowed by the constraints, and install that one?  I actually see benefits in not supporting ranges, and locking down an exact version for dev env parity across team members.
I don't think .nvmrc allows version ranges, or it does not seem to be intended at least.
The problem I posted is related to transitioning to fvm for the first time in a project. Then the flow is something like this now:
brew install fvm
fvm install 2.10.5 # <= this is where I could have used some guidance, see above
fvm use 2.10.5

I would have also found it useful that after running fvm install 2.10.5, it would tell me:
Run "fvm use 2.10.5" to use this version in your current working directory.

Just for the record, nvm acts in the same way. nvm install 16 will install the latest minor version of the major version 16. Please consider to implement this feature, it would be very handy for me as well.

Any news on this subject ? It would be great to have the possibility of automatically take the latest minor version somehow

@MobiliteDev no news on this yet, I might take a look before 1.0 which will be soon