Proof-of-concept: Component attribute bag merge strategies.

Hello, me again (And happy new year!)
I ran into an issue with the ComponentAttributeBag while working with a Tailwind project. The default strategy for merging the class attribute appends the prop value onto the default value.
I had a button component with the bg-red-500 class. When I wanted to make the button blue and added bg-blue-500 my button remained red; having two of the same utility and variant combinations with Tailwind can cause unexpected outcomes.
e.g:
<!-- components/button.blade.php -->
<button {{ $attributes->merge(["class" => "bg-red-500"]) }}>
    {{$slot}}
</button>

<!-- home.blade.php -->
<x-button class="bg-blue-500">
</x-button>

This is a proof-of-concept pull request that adds merge strategies to the ComponentAttributeBag. It contains three strategies:

OverrideStrategy (default)
AppendStrategy
TailwindStrategy

By default the AppendStrategy is used for class attributes; OverrideStrategy is used for everything else. Users can change the strategy mapping using the view.strategies configuration option, or by passing an overriding mapping to the merge function.
Still needs some work (mainly tests and some decommissioning) but what do you guys think?

Interesting addition. It also may be useful to pass a strategy to the class() method.

Interesting addition. It also may be useful to pass a strategy class to the class() method.

I love that idea. Sometimes there are classes I want to append while replacing others in the same class attribute. I end up with either a @php block or !important styles. A custom merge strategy class would be perfect in that case.

Please rebase with 9.x as we fixed the build on that branch.

Please rebase with 9.x as we fixed the build on that branch.

Done

Tests still seem to fail

The failing tests are caused by my changes.
If this is something that the Laravel team would be interested in merging, I'll invest the time in fixing/writing the tests.

Interesting addition. It also may be useful to pass a strategy class to the class() method.

Are you talking about the @class blade directive?

No, I was talking about something like this:
<div {{ $attributes->class('bg-red-500', TailwindMergeStrategy::class) }}></div>

which overrides the strategy for the class attribute.

I'm pretty happy with the current approach.

For reference; @mpociot tried to fix this earlier and made a video about it: https://twitter.com/marcelpociot/status/1310935864848117760


Saved Tasks are Deleted when the application is reopened

Hi Team,
When I save a task, it works fine till the app is opened in the foreground.
But as soon as we re-start the app all the new tasks are wiped out and only the following two tasks are present.

Build tower in Pisa
Finish bridge in Tacoma

If the tasks are not saved ten why we have implemented Room Database.
Please suggest.

@shrishkukde It is implemented to work like this only, please check the TasksRemoteDataSource file, and TasksViewModel.

@siddhantkumar20 : Could you please explain this in detail. It will be really helpful to understand

That's for simplicity. It's a design decision from the very beginning which in hindsight was wrong. The Remote data source starts clean, so it cleans the local data source.


texlive: use python3 by default

There is one python helper script still written for: Utility for writing
Bengali in Rapid Roman Format. But this one does not seem super relevant

Motivation for this change
Things done

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

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

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

PygmenTeX does not work with Python 3.
https://github.com/NixOS/nixpkgs/pull/75730#issuecomment-566046388

PygmenTeX does not work with Python 3.

Argh, texlive is one of the last remaining piece of python2 on my computer.
The software hasn't been updated since 2014 (when added to CTAN), so it doesn't look like it's getting a python3 port :(

PygmenTeX does not work with Python 3.
#75730 (comment)

Perhaps a matter of getting version 0.9 to CTAN
https://bitbucket.org/romildo/pygmentex/commits/de3f9f62a3306bc858a819cd16386a94acfcda9a
сс @romildo regarding the status of that

Can we somehow override texlive here and provide the new version of pygmentex?

Can we somehow override texlive here and provide the new version of pygmentex?

Since it's only python script that has changes, we can just update the texlive.bin.pygmentex part. Please leave a TODO comment to try to revert for texlive 2021.

A list of other scripts, not sure how up to date this is now: https://tug.org/pipermail/tex-live/2019-November/044366.html

According to this fedora tracker, pygmentex is the only remaining script https://fedora.portingdb.xyz/pkg/texlive-base/

PygmenTeX does not work with Python 3.
#75730 (comment)

Perhaps a matter of getting version 0.9 to CTAN
https://bitbucket.org/romildo/pygmentex/commits/de3f9f62a3306bc858a819cd16386a94acfcda9a
сс @romildo regarding the status of that

I have just submitted version 0.10 to CTAN.

PygmenTeX does not work with Python 3.
#75730 (comment)

Perhaps a matter of getting version 0.9 to CTAN
bitbucket.org/romildo/pygmentex/commits/de3f9f62a3306bc858a819cd16386a94acfcda9a
сс @romildo regarding the status of that

I have just submitted version 0.10 to CTAN.

Is it possible to pull this ahead of time or do we have to wait for a texlive release?

PygmenTeX does not work with Python 3.
#75730 (comment)

Perhaps a matter of getting version 0.9 to CTAN
bitbucket.org/romildo/pygmentex/commits/de3f9f62a3306bc858a819cd16386a94acfcda9a
сс @romildo regarding the status of that

I have just submitted version 0.10 to CTAN.

Is it possible to pull this ahead of time or do we have to wait for a texlive release?

I suppose we could just hack it in here:
https://github.com/NixOS/nixpkgs/blob/d47eae33b0c01add740007f5cf83f3faeb0dc12d/pkgs/tools/typesetting/tex/texlive/bin.nix#L326-L328

I suppose we could just hack it in here:
https://github.com/NixOS/nixpkgs/blob/d47eae33b0c01add740007f5cf83f3faeb0dc12d/pkgs/tools/typesetting/tex/texlive/bin.nix#L326-L328

Actually, we might as well update the whole snapshot. I see pygmentex 0.10 provided by today's texlive https://texlive.info/tlnet-archive/2021/01/03/tlnet/archive/pygmentex.r57190.tar.xz

Actually, we might as well update the whole snapshot. I see pygmentex 0.10 provided by today's texlive https://texlive.info/tlnet-archive/2021/01/03/tlnet/archive/pygmentex.r57190.tar.xz

Is there anything missing to merge this PR?

Is there anything missing to merge this PR?

Is there anything missing to merge this PR?

Updating texlive snapshot unless this has been done in the meantime?

Is there anything missing to merge this PR?

Updating texlive snapshot unless this has been done in the meantime?

Is there anything missing to merge this PR?

Updating texlive snapshot unless this has been done in the meantime?

I think it has. Currently in unstable it has pygmentex-0.10, which needs python3.

Is there anything missing to merge this PR?

Updating texlive snapshot unless this has been done in the meantime?

I think it has. Currently in unstable it has pygmentex-0.10, which needs python3.

I guess than it is good to go?

I guess than it is good to go?

I guess than it is good to go?

pygmentex works for me with this PR merged into unstable.

$ cat ../../shell.nix
{ nixpkgs ? import  {} } :
let
  pkgs = import /alt/nixpkgs-channels {
    config.allowUnfree = true;
  };
in
pkgs.stdenv.mkDerivation {
  name = "my-texlive-env-0";
  buildInputs = with pkgs; [
    (texlive.combine {
      inherit (texlive)
        scheme-basic
        collection-langportuguese
        babel-portuges
        caption
        efbox
        fancyvrb
        framed
        latexmk
        lualatex-math
        luatexbase
        mdframed
        needspace
        newfloat
        pgf
        pygmentex
        selnolig
        unicode-math
        xcolor
        zref
      ;
    } )
  ];
}
$ nix-shell ../../shell.nix
$ ls -l _build/formatação.{snippets,pygmented}
ls: cannot access '_build/formatação.pygmented': No such file or directory
-rw-r--r-- 1 romildo romildo 1221 Jan 27 08:30 _build/formatação.snippets
$ readlink -f $(which pygmentex)
/nix/store/lgg0f0hy62f551illb7s8ziy07c32w99-texlive-combined-2020/bin/pygmentex
$ pygmentex -V
PygmenTeX version 0.10, (c) 2020 by José Romildo.
$ pygmentex _build/formatação.snippets
$ ls -l _build/formatação.{snippets,pygmented}
-rw-r--r-- 1 romildo romildo 14425 Jan 27 08:32 _build/formatação.pygmented
-rw-r--r-- 1 romildo romildo  1221 Jan 27 08:30 _build/formatação.snippets

I was able to compile my document.

I guess than it is good to go?

pygmentex works for me with this PR merged into unstable.

$ cat ../../shell.nix
{ nixpkgs ? import  {} } :
let
  pkgs = import /alt/nixpkgs-channels {
    config.allowUnfree = true;
  };
in
pkgs.stdenv.mkDerivation {
  name = "my-texlive-env-0";
  buildInputs = with pkgs; [
    (texlive.combine {
      inherit (texlive)
        scheme-basic
        collection-langportuguese
        babel-portuges
        caption
        efbox
        fancyvrb
        framed
        latexmk
        lualatex-math
        luatexbase
        mdframed
        needspace
        newfloat
        pgf
        pygmentex
        selnolig
        unicode-math
        xcolor
        zref
      ;
    } )
  ];
}
$ nix-shell ../../shell.nix
$ ls -l _build/formatação.{snippets,pygmented}
ls: cannot access '_build/formatação.pygmented': No such file or directory
-rw-r--r-- 1 romildo romildo 1221 Jan 27 08:30 _build/formatação.snippets
$ readlink -f $(which pygmentex)
/nix/store/lgg0f0hy62f551illb7s8ziy07c32w99-texlive-combined-2020/bin/pygmentex
$ pygmentex -V
PygmenTeX version 0.10, (c) 2020 by José Romildo.
$ pygmentex _build/formatação.snippets
$ ls -l _build/formatação.{snippets,pygmented}
-rw-r--r-- 1 romildo romildo 14425 Jan 27 08:32 _build/formatação.pygmented
-rw-r--r-- 1 romildo romildo  1221 Jan 27 08:30 _build/formatação.snippets

I was able to compile my document.


Larger home button on game over screen

On the game over screen, I keep hitting escape and closing the program before noticing the home button in the corner. I think making that larger and more noticeable would help prevent this accidental closing of the game.

Fixed in prior commit after release


Deprecate MDC Toolbar

Important - Deprecation Notice
The existing mdc-toolbar component and styles will be removed in a future release. Some of its functionality will be available in the MDC App Bar package instead. Bugs and feature requests will no longer be accepted for the mdc-toolbar package. It is recommended that you migrate to the mdc-app-bar package to continue to receive new features and updates.
reference: https://github.com/material-components/material-components-web/pull/2486

Deprecation notice posted on demo page.


Why is volk.c so big?

I was expecting to find just two lines:
#define VOLK_IMPLEMENTATION
#include <volk.h>

What is all of this other stuff in volk.c?

It's the actual implementation? volk is not a header only library.

You can use volk in header-only fashion. Include volk.h wherever you want to use Vulkan functions. In exactly one source file, define VOLK_IMPLEMENTATION before including volk.h. Do not build volk.c at all in this case. This method of integrating volk makes it possible to set the platform defines mentioned above with arbitrary (preprocessor) logic in your code.

Yes, and the way that works is by volk.h including volk.c, not the other way around. This is because volk is not a header-only library, and the recommended way to use volk is to compile volk.c - the header-only mode is "special" and only activated via the use of VOLK_IMPLEMENTATION macro.

Ohhh, so even if volk.h is being used header-only and volk.c is not being compiled on its own, it must still be in the same directory. This was not clear from the README.
It should be modified to read something like

You can use volk in header-only fashion. Include volk.h wherever you want to use Vulkan functions. In exactly one source file, define VOLK_IMPLEMENTATION before including volk.h. Do not build volk.c at all in this case. volk.c must still be in the same directory as volk.h. This method of integrating volk makes it possible to set the platform defines mentioned above with arbitrary (preprocessor) logic in your code.

Yup - that's a good suggestion, thanks!


any integer validator using struct tag

support any integer validator in struct tag? such as
type Query struct {
    Limit int `valid:"range(0|20)"`
    Offset int `valid:"range(0|)"`
}

means there should be 0 <= limit <= 20 and offset >= 0

type Query struct {
    Limit int `valid:"validate:"required,min=0,max=20"`
    Offset int `validate:"required,min=0`
}

@Ramnmo Thank you for your reply. I found the same solution just several days after the question was proposed.


PoC Event-based malware check

Once #7196 has settled, we'll need an initial (non-stub) malware check for proofing the event-based check system.
The current proposal: our PoC check will be based on YARA, and will include patterns for detecting unusual/malicious patterns in setup.py files. Examples of unusual and malicious patterns:

Attempting to spawn or invoke processes: os.system, os.exec*, os.posix_spawn*, etc.
Attempting to perform network requests
Attempting to call deserialization routines frequently used for ACE and/or obfuscation

See #7096.

(Just to save someone a google search: YARA probably refers to https://github.com/VirusTotal/yara )

(Just to save someone a google search: YARA probably refers to https://github.com/VirusTotal/yara )

Yep, that's the one.


Error with predict.py

Dear authors,
Great thanks for sharing the code. I wanted to use your model to predict on my own data. I used you proposed code: python predict.py -d Coronary -i .
However, there is an error - TypeError: init() got unexpected keyword argument "channel_multiplier"
Please, could you help me with this issue? Great thanks in advance

Hey!
Which version of timm are you using? Downgrading to timm==0.4.12 should work. However, it may require you to downgrade PyTorch as well.
Another option is to keep the current timm version and change the segmentation_models_pytorch/encoders/timm_efficientnet.py file instead. For that you need only modify the model_kwargs variable in the function get_efficientnet_kwargs to
    model_kwargs = dict(
        block_args=decode_arch_def(arch_def, depth_multiplier),
        num_features=round_channels(1280, channel_multiplier, 8, None),
        stem_size=32,
        round_chs_fn=partial(round_channels, multiplier=channel_multiplier),
        act_layer=Swish,
        drop_rate=drop_rate,
        drop_path_rate=0.2,
    )

and in the function gen_efficientnet_lite_kwargs to
    model_kwargs = dict(
        block_args=decode_arch_def(arch_def, depth_multiplier, fix_first_last=True),
        num_features=1280,
        stem_size=32,
        fix_stem=True,
        round_chs_fn=partial(round_channels, multiplier=channel_multiplier),
        act_layer=nn.ReLU6,
        drop_rate=drop_rate,
        drop_path_rate=0.2,
    )

Hope this works. If it doesn't, let me know!

Dear João Lourenço Silva,
Great thanks for your help. I followed to all recommendations. I downgraded both timm (0.4.12) and pytorch packages.  However, it provided the same error - TypeError: init() got unexpected keyword argument "channel_multiplier".
Then, I changed the file you mentioned (segmentation_models_pytorch/encoders/timm_efficientnet.py). But, it showed me a new error:
NameError: name "partial" is not defined.
Could you please provide your advice on what I should do in order to use the predict.py for segmentation task?
Great thanks in advance.
Looking forward for your reply.
Kind regards,

Dear João Lourenço Silva,
I have added the lines: from functools import partial. And, the previous error has been disappeared. However, there is a  new error:
FileNotFoundError: [Errno 2] No such file or directory: 'MODEL.pth'
What argument should I place for -m variable? I would be very grateful if you could help with this issue.
Thanks in advance.
Looking forward to your reply.
Kind regards,

Hey Akhmetzhan,
The argument should be the path to the .pth file containing the model weights. At this time, I am not allowed to share my model weights nor training data. To obtain a model you'll have to get training data and train a model yourself.
Best regards,
João

Dear  João Lourenço Silva,
Great thanks for your response. I am a novel user of Python, that is why I am asking you such a basic questions. Could you please provide your advise if there any ready-to-use software (maybe open-source) which a user could use for segmentation of their own images?
Thanks in advance

Akhmetzhan,
It depends on the application and the required level of performance. However, it's probably better if we close this issue and you contact me by email<EMAIL_ADDRESS>


xgb: add support for multiple metrics data sets

I've added support for logging metrics for multiple data sets/splits (e.g. train and test/eval) with XGBoost. This is consistent with other supported frameworks, e.g. Keras. It's also a common use case to compare the metrics on multiple data sets/splits, e.g. to check overfitting.
This addition is backwards compatible.
I'll create a PR to the docs project once this addition has been approved.

[x] ❗ I have followed the Contributing to DVCLive
guide.

[ ] 📖 If this PR requires documentation updates, I have created a separate PR (or issue, at least) in dvc.org and linked it here.

Codecov Report
Patch coverage: 96.55% and project coverage change: +0.01 :tada:

Comparison is base (b31008e) 96.20% compared to head (ce54031) 96.22%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #587      +/-   ##
==========================================
+ Coverage   96.20%   96.22%   +0.01%
==========================================
  Files          43       43
  Lines        2873     2888      +15
  Branches      239      244       +5
==========================================
+ Hits         2764     2779      +15
  Misses         65       65
  Partials       44       44

Impacted Files
Coverage Δ

src/dvclive/xgb.py
95.65% <88.88%> (+0.65%)
:arrow_up:

src/dvclive/live.py
92.85% <100.00%> (+0.02%)
:arrow_up:

tests/test_frameworks/test_xgboost.py
100.00% <100.00%> (ø)

tests/test_main.py
100.00% <100.00%> (ø)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Or should we remove the metrics_data argument and create a subdirectory for each evaluation set? It seems the other framework integrations work like that. It would be a breaking change though.
Alternatively, metrics_data could also accept None default to None in which case metrics for all evaluation sets would be logged. That would be backwards compatible if we kept omitting the subdirectory for the evaluation set when only one set is used. It seems other framework integrations always create this subdirectory though, so the XGBoost integration is the exception.

We could allow None (i.e. Optional[str] and write metrics logs to those inferred subdirectories), default to None, and show a deprecation warning to notify users and give them time to migrate.

Yes, sorry for the lack of clarity, I meant the option in your last paragraph

Great! I'll update the PR tomorrow.

@daavoo I've updated the PR as we discussed and resolved merge conflicts with main. I've also submitted a PR to the dvc.org project to first document the metric_data parameter and also add a notice regarding its deprecation: https://github.com/iterative/dvc.org/pull/4578


feat: add support for secure-port (tls) in addition to http

AWS recently released a new load balancer controller with nlb-ip load balancing support in EKS, which is useful for E2E TLS termination scenarios, especially in fargate.
Adding support for secure-port to this container is useful for test / demo scenarios using nlb-ip load balancing.
Thinking of the following design:

[ ] add secure-port argument - 0 as a default value (secure port disabled)
[ ] add cert-path argument (for loading tls certificate key pair as expected from a volume mount for a tls secret) - /data/cert as a default value
[ ] add function to start a tls listener using the same handler mux

I'm happy to implement this if the community is in agreement.

This looks like a great addition to podinfo, I imagine it can be used outside EKS with cert-manager self-signed certs.

can you assign this to me? I'll open a PR shortly :)


Use a real dependency graph for priority sort

At the moment, if 2 dependencies have the same number of dependents, but one needs to run before the other, it may fail based on how packages were loaded from the file system. For example
foo
bar - depends on foo
baz - depends on bar

Ideally our chain would be foo -> bar -> baz, but since foo and bar both have 1 dependent, foo may come after bar, as such bar -> foo -> baz, which breaks for projects that require explicit order (like TS).

Implemented my own: https://github.com/beemojs/beemo/pull/41


Profile cards changes

Description
This PR fixes #3306
Notes for Reviewers
https://user-images.githubusercontent.com/59086855/125190235-bf09f680-e259-11eb-9329-c149f1ebbea5.mov
Signed commits

[X] Yes, I signed my commits.

Codecov Report

Merging #3454 (a908cbe) into master (ed4a9e8) will decrease coverage by 1.67%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #3454      +/-   ##
==========================================
- Coverage   12.30%   10.62%   -1.68%
==========================================
  Files          37       37
  Lines        3162     3162
==========================================
- Hits          389      336      -53
- Misses       2690     2759      +69
+ Partials       83       67      -16

Flag
Coverage Δ

gointegrationtests
?

unittests
10.62% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/system/check.go
1.58% <0.00%> (-21.04%)
:arrow_down:

Continue to review full report at Codecov.

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

Thank you, @Ayush-Khandelwal-007. It'll be interesting to see what a perf profile with request headers look like (a table?).


Better algorithm for auto WaveformView scaling

At the moment, the waveforms are just positioned based on their probe location; it is possible to pan and zoom in both axes to refine this, as well as increase/decrease amplitude but this should be automatic. Default view for IMEC-128ch is not ideal.
i.e. minimize whitespace in the view: probably something along the lines of

set waveform width so that the total width takes up 80% of the view (maybe set a maximum default width for each waveform, too wide looks odd)
scale so the whitespace is evenly distributed
set waveform amplitude so that they don't overlap (maybe take ~5 spikes from each cluster when calculating this)

Related to #54

I think we should not be too smart with this. It should be enough to:

Document properly the keyboard shortcuts to update the view, change the amplitude of the waveforms, etc.
Automatically save all parameters upon closing on a per-dataset basis (see #139).

Reopening and setting milestone to 0.3. Part of GUI improvements.


Default cert should be loaded first, so that haproxy uses the right cert as default.

Specify the default cert first in the haproxy cfg file before all other certs. This makes haproxy present the right cert as default. Otherwise haproxy will present the first cert listed alphabetically from the cert directory (specified in haproxy's config file) as the default certificate.
Here is the haproxy documentation: https://cbonte.github.io/haproxy-dconv/1.6/configuration.html#5.1-crt
https://github.com/rancher/rancher/issues/8365

@alena1108 @cjellick please review

I didn't look to closely at the tests, but it appears there is a framework for testing the configs. If thats what these tests are: https://github.com/rancher/lb-controller/blob/master/provider/haproxy/haproxy_test.go
can you please add a test for this change?

@cjellick test has been added to https://github.com/rancher/lb-controller/blob/master/provider/haproxy/haproxy_test.go

LGTM


News CI test 3

News should fail since no additional news has been provided.

Once I add news .rst then, news CI should pass.

:warning: Please install the  to ensure uploads and comments are reliably processed by Codecov.
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 97.32%. Comparing base (e5c5086) to head (8ba99dd).
Report is 1 commits behind head on main.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #35   +/-   ##
=======================================
  Coverage   97.32%   97.32%
=======================================
  Files          35       35
  Lines        1418     1418
=======================================
  Hits         1380     1380
  Misses         38       38

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


Add retries for git fetch

Sometimes I got weird errors like:
INFO[0669] Fetching latest commits from 'origin' for 'github.com/aws/aws-sdk-go/aws/signer/v4'
ERRO[0688] `git fetch -f -t origin` failed:
fatal: unable to access 'https://github.com/aws/aws-sdk-go/': Failed to connect to github.com port 443: Operation timed out

It's pain. I added parameter to retry operation.

Very stale. Closing. Thanks! Please open a new PR if there is still a relevant change.


SchoolController integration test

…ed functionality to get all students when there are no students

Coverage remained the same at 96.491% when pulling 2864ebb4c9fdeb1906bbd2041dd5b5814bbc4cf4 on schoolController into 737762e9ec54f87d241fe97c34e7ac40ab6508ae on develop.

Coverage remained the same at 96.491% when pulling 2d14e7a5f90cead41a06511702fc6fe7d70e95a0 on schoolController into 737762e9ec54f87d241fe97c34e7ac40ab6508ae on develop.


UWP Acrylic background does not work correctly when App started in Full Screen

UWP Acrylic background does not work correctly when App started in Full Screen:
https://aka.ms/O68719
See repro Project code:
https://github.com/TonyHenrique/UWPFullScreenAcrylicApp/

@TonyHenrique, thank you for your feedback. Acrylic is actually working as designed. Full screen mode is intended to immerse the user in the currently-running app. Therefore, allowing elements from outside the full screen app to be visible through background acrylic may break the immersion and potentially provide unwanted distractions. To best serve user focus, we’ve set background acrylic to automatically fall back to a solid color with no transparency.


updated search plugin sidecar

Fixes for issues: https://github.com/open-cluster-management/backlog/issues/13061, https://github.com/open-cluster-management/backlog/issues/11993.

:tada: This PR is included in version 2.0.14 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Local entrypoints + reworked CLI

Notably:

Adds stub.local_entrypoint that can be called via modal app run so people don't have to do if __name__ == __main__ everywhere. Conveniently works with async functions as well
Change modal app run to take the function name as an argument rather than an option (less typing)
Add support for parsing CLI arguments and passing them to functions using typer. Function arguments without type annotations are parsed as strings.

It was kind of tricky to get typer to dynamically insert function arguments of something determined by previous arguments in the cli invocation.
In the end I opted for a pretty simple, albeit kind of hacky, solution:
Replace the default run-command at "runtime", using a new typer instance with subcommands matching the stub and function names and re-execute the root typer instance using the same arguments, effectively triggering the newly inserted typer hierarchy.
The advantage of doing this is that the automated typer help when something goes wrong wtih argument parsing etc. will look correct.
TODO:

[ ] Tests
[ ] Move to modal run
[ ] Improved help?
[ ] Support case of not specifying any function name (if there is a single function, or single local entrypoint)
[ ] Clean up code?

random thought but i wonder if we should use modal run and modal deploy instead of modal app run and modal app deploy? marginally shorter

Yeah I think that makes sense. We can keep the modal app command for interacting with running apps, e.g. modal app list


cephfs: SubVolumeInfo structure doesn't have "state" attribute for the subvolume

SubVolumeInfo structure doesn't have "state" attribute for the subvolume**
If you run "ceph fs subvolume info" command it displays attributes for a subvolume, for example:
sh-4.2# ceph fs subvolume info myfs m1
{
"atime": "2021-01-29 12:29:28",
"bytes_pcent": "undefined",
"bytes_quota": "infinite",
"bytes_used": 0,
"created_at": "2021-01-29 12:29:28",
"ctime": "2021-01-29 12:29:28",
"data_pool": "myfs-data0",
"features": [
"snapshot-clone",
"snapshot-autoprotect",
"snapshot-retention"
],
"gid": 0,
"mode": 16877,
"mon_addrs": [
"<IP_ADDRESS>:6789"
],
"mtime": "2021-01-29 12:29:28",
"path": "/volumes/_nogroup/m1/972f9188-23be-46fc-a2c1-1355f2e566f0",
"pool_namespace": "",
"state": "complete",
"type": "subvolume",
"uid": 0
}
This includes "state" attribute also but SubVolumeInfo structure in go-ceph lacks that attribute.
Looks like this attribute was newly added via backport, it is not a must but good to have.

@phlogistonjohn I am adding state field in the SubVolumeInfo structure. We should handle the case where the state field is not present in the json. But I think if the field is not present in the json it won't affect us as of today because we no where check whether all the fields are returned or not.
For example if a subvolume is in snapshot-retained state we will only get 4 attributes:
{
"features": [
"snapshot-clone",
"snapshot-autoprotect",
"snapshot-retention"
],
"mon_addrs": [
"<IP_ADDRESS>:6789"
],
"state": "snapshot-retained",
"type": "subvolume"
}
And for such cases, we don't care for other fields in go-ceph. As of today, user of go-ceph (lets say ceph csi) has to take care of this. Same should happen in case of "state" field.
That is why I have raised #454, if we are going to fix that then we might have to take care of this.

That's fine. We should just ensure that we have a sensible zero value for the field and that both the present and missing cases get tested.


[Sticky] - Bug with sticky menu (seen in beta docs)

It happens on pages shorter than the menu, like the Reset page or the API page

Go to one of those pages.

Try to scroll up again: the menu keeps being bound bottom, you can't get back to the top.

Found another one:

Go to any page in the docs with a sticky menu.
Don't scroll: stay at the top of the page.
Reduce the browser's width until you get the mobile layout, the menu should disappear: it won't
Scroll down: the menu disappear as it should.
Scroll to the top of the page again.
Resize the browser width by just a few pixels if needed: the menu comes back!

Scroll down again and the menu disappears again, so it seems to happen only when you're at the top of the page.

I haven't done any mobile/tablet styling yet. It's literally just broken currently. haha

Are you sure this is a styling problem?
To me it looks more like a sticky module behavior problem, javascript related (the first bug I mentioned doesn't involve mobile/tablet layout at all, the second one happens only when you're at the top of the page, not when you've already scrolled down)

https://github.com/Semantic-Org/Semantic-UI-Docs/commit/3661bf759547646108d93c46eacc875db2ec4a70
Generally this was just an issue with docs not specifying a context for the sticky content.

Great! Sorry for misunderstanding the problem ^^'
The responsive layout plays very nice with the menu now, everywhere except on the Reset page and on the API page where the menu is currently broken (we can only see the bottom and it's not scrollable)

Yes I haven't added responsive styles for special pages yet (short ones, 3 column, no sidebar)
https://github.com/Semantic-Org/Semantic-UI-Docs/commit/db8188471dacdcf519b9123336ac8572b22e3833

Great! Keep it up ! :+1:


Common module imported by more than one module was shown only once in stats.json

Bug report

What is the current behavior?
I'm trying to find all the modules that import common.js through stats.json, but only a.js shown in common.js field in stats.json such as:
[
    ...
    {
        ...
        "id": null,
        "identifier": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/common.js",
        "name": "./src/common.js",
        "issuer": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/a.js",
        ...
    },
    ...
]

If the current behavior is a bug, please provide the steps to reproduce.
see the repository

What is the expected behavior?
whant i'm expected is:
[
    ...
    {
        ...
        "id": null,
        "identifier": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/common.js",
        "name": "./src/common.js",
        "issuer": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/a.js",
        ...
    },
    {
        ...
        "id": null,
        "identifier": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/common.js",
        "name": "./src/common.js",
        "issuer": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/b.js",
        ...
    },
    ...
]

Other relevant information:
webpack version:  4.29.6
webpack-cli version: 3.3.0
Node.js version: 10.15.3
Operating System: mac os
I'm not sure if it is a correct way to reach my goal, or is there a better way to do so?

Due splitChunks.cacheGroups configuration, you use module same module in difference chunk and you need to move their in own chunk (default/commons/etc). Can you provide minimum reproducible test repo, thanks!

Here default configuration https://github.com/webpack/webpack/blob/master/lib/WebpackOptionsDefaulter.js#L239 and docs about this https://webpack.js.org/plugins/split-chunks-plugin/
You can use second example https://webpack.js.org/plugins/split-chunks-plugin/#splitchunkschunks to exclude this

I see...
My goal here is to build a tool that get a module's call-relationship and inject it into the runtime code. In this case is to find out who uses 'common.js' and the call-relationship like (see field issuerPath):
[
    ...
    {
        ...
        "id": null,
        "identifier": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/common.js",
        "name": "./src/common.js",
        "issuer": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/a.js",
        "issuerPath": ['index.js', 'a.js']
        ...
    },
    {
        ...
        "id": null,
        "identifier": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/common.js",
        "name": "./src/common.js",
        "issuer": "/Users/guoxianglin/Desktop/demo/webpack-demo/src/b.js",
        "issuerPath": ['index.js', 'b.js']
        ...
    },
    ...
]

and inject the scheme above into the runtime code.
But as you mentioned, webpack seems to combine them into one. Is there a better way to get the call-relationship?

Why? What is problem you try to solve? Looks very weird. Also i recommend you gitter or stackoverflow for questions because it is bug tracker, thanks

Yup, Thanks


Add option to add a legend header or footer

Description
This adds a very simple option to add a header or footer to the legend. I use this to add the printed date.
Form changes

(note that the image above also includes the "compact" option suggested in https://github.com/code4recovery/pdf/pull/45)
Output changes

Closing this. We are now going to fork this repo to meet our immediate needs and work over a period of time to get those changes upstream.


Name resolving seems overcomplicated

The SmartNameResolver uses the Java ServiceLoader to lookup implementations of URIResolver. I would like to understand why this design decision was made, as it seems a little overengineered. The implementations are right there in the same package. Is there a use case for implementing your own resolver?
I tripped over this one when I tried started implementing a JCA-Resource-Adapter based on this library. Classloading in Application Servers can be quiet messy and the service loader caught me off guard.
If you had a use-case for this in mind then I'm fine with the service loader - but could we default to the build-in ones in case the service-loader fails to resolve them?

The initial idea was to move additional resolvers like dns-srv out of the core package that's why we have the service loader now but this is not the final version as we have also to deal with OSGi so cassloading is definitively an issue.
I'll try to make it simple and flexible in the coming days.

It should be fixed by #250


Remove cancel

We call cancel gratuitously.  If we already get a response status, it means the client call is complete.  There is no need to call cancel again.  It's unclear if this is causing any problems, although there's a possibility that there's a performance hit for doing another round trip.

Travis is slow today.  Merging.


[WFLY-18861] Upgrade WildFly Core to 23.0.0.Beta4

Jira issue:
https://issues.redhat.com/browse/WFLY-18861

Tag: https://github.com/wildfly/wildfly-core/releases/tag/23.0.0.Beta4
Diff: https://github.com/wildfly/wildfly-core/compare/23.0.0.Beta3...23.0.0.Beta4

        Feature Request

[WFCORE-4758] -         Community - Simple config export for a domain server

        Task

[WFCORE-6642] -         Remove obsolete eap-repo profile in test

        Component Upgrade

[WFCORE-6643] -         Upgrade JGit from <IP_ADDRESS>309050840-r to <IP_ADDRESS>311291450-r

[WFCORE-6644] -         Upgrade log4j2 from 2.19.0 to 2.22.0

        Enhancement

[WFCORE-6579] -         Use Process Controller log file to capture Host Controller and Managed Servers standard error

Thanks @yersan


Protocol Engine (PAPIv3): Pause when front door is opened

Implement the existing pause-on-door-open feature for protocols that are run through Protocol Engine and the HTTP API. This work is limited to PAPIv3 protocols run via HTTP endpoints.

Ticket under investigation as potential 6.1.0 release requirement

This ticket is required for the 6.1.0 release. Updated tracking information accordingly

After #10882 is merged, this is my implementation proposal to bring this home:

Rename HardwareEventForwarder to DoorWatcher
Simplify HardwareEventAction to DoorChangeAction

We don't use any other hardware events
When we do in the future, I don't want to continue to use this callback interface; it's too dangerous with the ThreadManager and protocol child thread in place

On door change notification from the hardware control API:

Check if queue status is running
If it is, pause the hardware API
Dispatch a DoorChangeAction with the door state

Remove remaining action handling from the LegacyContextPlugin, and perhaps remove the abstract handle_action method from the generic plugin interface, too


Expose additional methods from NotificationManagerCompat

Please, provide the details below:
Did you verify this is a real problem by searching [Stack Overflow]
Yes
Tell us about the problem
I am trying to use the additional methods from NotificationManagerCompat and have noticed that missing from android definitions are:
from(context): https://developer.android.com/reference/android/support/v4/app/NotificationManagerCompat.html#from(android.content.Context)
areNotificationsEnabled()
https://developer.android.com/reference/android/support/v4/app/NotificationManagerCompat.html#areNotificationsEnabled()
Is there any reason these are not exposed? Have tried overriding and hitting manually and doesn't seem to work.
My use case is I am trying to identify if user has notifications enabled.
Please provide the following version numbers that your issue occurs with:
3.0

Hey @bnussey could you specify which android definitions you are referring to?
There are hard-coded ones in tns-platform-declarations, which are built against API 17, with some additions of the android support libraries.
And then there are the dynamically generated ones using androidTypings flag during a build. It will output a .d.ts containing definitions for the current compileSdk level as well as the currently used android support libraries. tns build android --androidTypings - generates a android.d.ts which you should reference in the typescript references file.

Hi @bnussey have you managed to move on with the Notification Manager?

Hey @Pip3r4o I think the issue here is areNotificationsEnabled is from API 24 and it doesn't seem like we can access things on NativeScript that were introduced then.. Is that true?

@bnussey incorrect, JavaScript metadata that allows access to the underlying platform's API for Android is generated dynamically based on the compileSdk used during the build process. By default a NativeScript will be built against the latest installed (highest version available) API level.

Here is the code to do this for reference:
let _notificationManagerCompat = <any>android.support.v4.app.NotificationManagerCompat.from(app.android.currentContext);
console.log("_notificationManagerCompat.areNotificationsEnabled()", _notificationManagerCompat.areNotificationsEnabled());


Fix disk offering override in VM deployment wizard

Description
This PR fixes four issues related to the disk offering override in the VM deployment wizard:

When a user selects a compute offering associated to a disk offering, enables root disk offering override and selects an offer other than the default one, the UI freezes. This only happens when the UI is not running locally;
When a user enables root disk offering override and selects an offer by clicking inside its radio button, the radio button becomes checked, but the selected root disk offering is not updated and the VM gets deployed with the default offering;
When a user enables root disk offering override, selects an offer, disables the override and deploys a VM, the root disk offering still gets overridden and the VM is deployed with the selected offer;
When a user deploys a VM using an ISO, if the selected compute offering does not have a compute only disk offering, the selected disk offering always gets overridden by the disk offering associated to the compute offering.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[X] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[X] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?
First, I created two disk offerings:

Name and description: D1. QoS type: Hypervisor. Disk read rate (IOPS) and disk write rate (IOPS): 500;
Name and description: D2. QoS type: Hypervisor. Disk read rate (IOPS) and disk write rate (IOPS): 1000.

And one compute offering:

Name and description: C1. CPU cores: 1. CPU (in MHz): 2000. Memory (in MB): 1024. Compute only disk offering disabled. Disk offerings: D1.

Tests related to the UI freezing when selecting a root disk offering:

I selected the compute offering Small Instance and deployed a VM. I verified that the root disk did not use any disk offering and had the default size;
I selected the compute offering Small Instance, enabled the override, disabled the override and deployed a VM. I verified that the root disk did not use any disk offering and had the default size;
I selected the compute offering Small Instance, enabled the override, selected the disk offering D2, changed the disk size to 9 GB and deployed a VM. I verified that the root disk was using D2 and had 9 GB;
I selected the compute offering C1 and deployed a VM. I verified that the root disk was using D1 and had the default size;
I selected the compute offering C1, enabled the override, disabled the override and deployed a VM. I verified that the root disk was using D1 and had the default size;
I selected the compute offering C1, enabled the override, selected the disk offering D2, changed the disk size to 9 GB and deployed a VM. I verified that the root disk was using D2 and had 9 GB;
I selected the compute offering C1, enabled the override, selected the disk offering Medium and deployed a VM. I verified that the root disk was using Medium and had 20 GB;

Tests related to the selected root disk offering not updating when clicking inside a radio button:

I selected the compute offering C1, enabled the override, selected the disk offering D2 by clicking inside its radio button, changed the disk size to 9 GB and deployed a VM. I verified that the root disk was using D2 and had 9 GB.

Tests related to the root disk offering being overridden even though the override was disabled:

I selected the compute offering Small Instance, enabled the override, selected the disk offering D2, changed the disk size to 12 GB, disabled the override and deployed a VM. I verified that the root disk was not using any disk offering and had the default size.
I selected the compute offering C1, enabled the override, selected the disk offering D2, disabled the override and deployed a VM. I verified that the root disk was using D1 and had the default size;
I selected the compute offering C1, enabled the override, selected the disk offering Medium, disabled the override and deployed a VM. I verified that the root disk was using D1 and had the default size.

Tests related to the disk offering always being overridden when deploying using an ISO:

I selected an ISO, the compute offering C1 and the disk size D1, changed the disk size to 12 GB and deployed a VM. I verified that the volume was using D1 and had 12 GB;
I selected an ISO, the compute offering C1, the disk size Medium and deployed a VM. I verified that the volume was using Medium and had 20 GB.

@blueorangutan package

@harikrishna-patnala a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_check_mark: debian :heavy_check_mark: suse15. SL-JID 7317

@blueorangutan ui

@DaanHoogland a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/8070 (QA-JID-200)

@blueorangutan ui

Could someone review this PR?

@winterhazel , I think you should check who recently changed the files you changed and ask them for a review directly. Your call for review in here would not make anybody feel addressed. Use git blame to see who to ask. I see github sugests me, but I have no time for it at the moment.
@blueorangutan ui

@DaanHoogland a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

@harikrishna-patnala @shwstppr can you guys review this? Thanks in advance.

@blueorangutan ui

@shwstppr a Jenkins job has been kicked to build UI QA env. I'll keep you posted as I make progress.

UI build: :heavy_check_mark:
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/8070 (QA-JID-240)

@winterhazel also can you please change the base branch to 4.18 as I can see this issue in 4.18 as well.

@harikrishna-patnala thanks for testing. Regarding issue 3, when running the UI locally, overridediskofferingid will be set to the selected disk offering's id in step 2; even if you disable the override, it will still have the id of the selected disk offering, but it will get set back to the id of the the selected compute offering's disk offering if you interact with the deployment form.
You should be able to reproduce issue 3 the following ways:
(i) by using a compute offering that does not have an associated disk offering.

Select the compute offering Small Instance;
Enable root disk offering override;
Select the disk offering testDO2;
Disable the override. Here you can interact with the rest of the page and the root disk offering will still get overridden;
Deploy a VM by clicking the launch instance button.

(ii) by not interacting with anything other than the launch instance button after disabling the override.

Select the compute offering testCO1;
Enable root disk offering override;
Select the disk offering testDO2;
Disable the override. Do not interact with the deployment form after disabling it;
Deploy a VM by clicking the launch instance button.

Before the fix, the deployed VM's volume will be created using testDO2.

@winterhazel also can you please change the base branch to 4.18 as I can see this issue in 4.18 as well.

Sure, I'll change.

@DaanHoogland @harikrishna-patnala @shwstppr @weizhouapache, could someone review and validate that issues 3 and 4 have been fixed?

@blueorangutan ui

UI build: :heavy_check_mark:
Live QA URL: https://qa.cloudstack.cloud/simulator/pr/8070 (QA-JID-293)

@DaanHoogland @BryanMLima @harikrishna-patnala I was able to reproduce issues 3 and 4 in a local lab and validated that both were fixed by this PR.

Merging based on approvals and manual tests.


register

@JuliaRegistrator register

Registration pull request created: JuliaRegistries/General/114636
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v1.0.0 -m "<description of version>" c42496520366e98b970c27c8902deef2427a6e6d
git push origin v1.0.0


NullReferenceException in Mono after connection

My code runs properly on my PC, both through Visual Studio and Xamarin Studio. When I run it with Mono on my Ubuntu server, however, I get the below stack trace.
My code:
client = new TwitchClient(new ConnectionCredentials(username, oauth), "channelname", logging: true);
TwitchApi.SetClientId(clientId);

client.AddChatCommandIdentifier('!');

client.OnConnected += LogEvents;
client.OnDisconnected += LogEvents;
client.OnConnectionError += LogEvents;
client.OnIncorrectLogin += LogEvents;

client.OnChatCommandReceived += CommandHandler;

client.ChatThrottler = new MessageThrottler(2, new TimeSpan(0, 0, 5));

client.Connect();

Output:
[TwitchLib] TwitchLib-TwitchClient initialized, assembly version: <IP_ADDRESS>199
[TwitchLib] Connecting to: irc-ws.chat.twitch.tv:80
[TwitchLib] Joining channel: channelname
[TwitchLib] Should be connected!
[TwitchLib] Received: :tmi.twitch.tv 001 botname :Welcome, GLHF!

Unhandled Exception:
System.NullReferenceException: Object reference not set to an instance of an object
  at TwitchLib.Internal.Requests.handleWebException (System.Net.WebException e) [0x00000] in <filename unknown>:0
  at TwitchLib.Internal.Requests+<MakeGetRequest>d__0.MoveNext () [0x00000] in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0
  at System.Runtime.CompilerServices.TaskAwaiter`1[System.String].GetResult () [0x00000] in <filename unknown>:0
  at TwitchLib.Internal.TwitchApi+<ValidClientId>d__82.MoveNext () [0x00000] in <filename unknown>:0
--- End of stack trace from previous location where exception was thrown ---
  at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw () [0x00000] in <filename unknown>:0
  at System.Runtime.CompilerServices.TaskAwaiter`1[System.Boolean].GetResult () [0x00000] in <filename unknown>:0
  at TwitchLib.Internal.TwitchApi+<ValidClientId>d__83.MoveNext () [0x00000] in <filename unknown>:0

It looks like the library is trying to validate a client id that you're using and is failing to do so. Are you setting a client id and using a valid client id? The issue doesnt seem to be linked to the client itself but rather TwitchApi.

Yes, I printed out the client ID variable and it's valid, it's the same one I use when testing locally.

https://github.com/swiftyspiffy/TwitchLib/blob/f460f8cb9e28bf9f994c0069a7b36239d911ddb7/TwitchLib/Internal/TwitchAPI.cs#L858
Pretty sure it's this request that is failing and not being caught correctly. Perhaps you can set a breakpoint here and see if you see anything interesting. I tried reproducing and it seems to be working.

I don't know of a way to debug Mono on an Ubuntu server. I ran an Ubuntu desktop VM and tried running it on that, had no problems. I'm out of ideas.

I ended up cloning the library and sticking Console.WriteLine() everywhere. Looks like the error is here--this cast is failing, so errorResp is null.

So as far as I can tell, the only sort-of solution for this is to throw the default webexception instead of attempting to work off the httpstatuscode and getting a nullreference which makes debugging quite difficult.

I think the commit above should lead to the true cause. I'm going to go ahead and close this.


dev: State update component / events

[x] issue #4
[x] follows contribution guide
[x] code change includes tests
[ ] breaking change

I created the new state component, implemented its update method and added the related events.
Looking forward to some feedback :)

I made the changes and rebased


Add 'EnhanceHomeKey" and 'EnhanceEndKey' to editor options

EnhanceHomeKey: Toggles behaviour of  key on line with leading spaces. If turned on, key will jump to first non-spacing char, if it's nearer to caret position.
EnhanceEndKey: Toggles behaviour of  key on line with trailing spaces. If turned on, key will jump to last non-spacing char, if it's nearer to caret position.

I made this a feature. Those kind of "enhance", "smart", etc. named options must be avoided.


INPUT VALIDATION: what to do with unsupported and harmful flags of aligners modules?

Description of feature
There are some flags that the user is able to specify from the samplesheet.csv that might be annoying for the pipeline (unsupported).
Some other flags do even brack the pipeline in itself, for example we would want the aligners not to compress the output as of today. So if the user passes the flag to do so it is likely going to breack the pipeline.
The question is the following. How to deal with this harmfull flags?.
This should be where the ideas are brainstormed.

This should be done in the validation of the toolsheet at the beginning of the pipeline.

Add minimal flags as default if not given (example: 3Dcoffee should not be allowed to run without a structural method, same as regressive without the -reg flag)
Reference in documentation where one can find the optional extra flags.

SO: we need to make sure the minimal ones are always present, no need to check for optional flags, those are responsibility of the user but describe well in documentation.

I made  a custom validation in the WorkflowMultiplesequencealign.groovy file.
there is an open issue in nf-validation, when they enable it, we can update it.
For the moment, this is it with the input validation i'd say.
==> Closed by #93


Enabling "Extend from Into Client area" for certain process, extends to other process opened from said previous process, even though it havent been enable for them

im using this option with qbitorrent, and when i open an explorer windows from it to choose files or something, said effect extends even to the explorer window, even though i havent enabled it for explorer, the images below show that

The dialog box is hosted under qBittorrent's process, hence why the effects extend there too.
Nothing unexpected I would say.

The dialog box is hosted under qBittorrent's process, hence why the effects extend there too.
Nothing unexpected I would say.

i see, thank you... althought it'd be nice if it were possible to avoid this

Add a Class rule for #32770 and leave those settings default, the dialog window should be ignored by MicaForEveryone.

Add a Class rule for #32770 and leave those settings default, the dialog window should be ignored by MicaForEveryone.

can you elaborate more please? should i just put #32770 as the class name or something when choosing?

While MicaForEveryone app is open

Click "Add Rule"
Add Class Rule
paste #32770
Click Add
Done, the Open/Save dialog won't be also affected.

While MicaForEveryone app is open

Click "Add Rule"
Add Class Rule
paste #32770 into input box
Click Add
Done, the Open/Save dialog won't be also affected.

Thanks for replying, actually i tried just this before asking and it didnt work so i thought i made a mistake along the way or something...

and as you can see below it still shows

It seems the process rule is overriding the class rule (related to #108 )
Move qbittorrent below #32770 by deleting it & re-adding it.

It seems the process rule is overriding the class rule (related to #108 )
Move qbittorrent below #32770 by deleting it & re-adding it.

problem solved, you a genius, Thanks a lot


CUDA error: invalid configuration argument when not using DataParallel

Good Evening,
We have a DGX2 system running the latest Nvidia pytorch docker container - 19.06.  When attempting to use the gpt2 or gpt2-medium models to extract out embeddings we are getting the following error, but only when not using dataparallel: (note we are using apex here but an optimization level of 0, this issue occurs without apex)
[...]
  File "[removed]", line 167, in forward
    x1_emb, past = self.embedding(x1)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 494, in __call__
    result = self.forward(*input, **kwargs)
  File "/opt/conda/lib/python3.6/site-packages/pytorch_transformers/modeling_gpt2.py", line 515, in forward
    outputs = block(hidden_states, layer_past, head_mask[i])
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 494, in __call__
    result = self.forward(*input, **kwargs)
  File "/opt/conda/lib/python3.6/site-packages/pytorch_transformers/modeling_gpt2.py", line 332, in forward
    output_attn = self.attn(self.ln_1(x), layer_past=layer_past, head_mask=head_mask)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 494, in __call__
    result = self.forward(*input, **kwargs)
  File "/opt/conda/lib/python3.6/site-packages/pytorch_transformers/modeling_gpt2.py", line 285, in forward
    x = self.c_attn(x)
  File "/opt/conda/lib/python3.6/site-packages/torch/nn/modules/module.py", line 494, in __call__
    result = self.forward(*input, **kwargs)
  File "/opt/conda/lib/python3.6/site-packages/pytorch_transformers/modeling_utils.py", line 490, in forward
    x = torch.addmm(self.bias, x.view(-1, x.size(-1)), self.weight)
RuntimeError: CUDA error: invalid configuration argument

I found reference to this issue from Pytorch:
https://github.com/pytorch/pytorch/issues/2080
but it is reported as fixed so I'm not sure if this issue belongs to this repo or pytorch.

Further testing showed this was caused by the batch size being too high and the card running out of memory, and providing a misleading error.


Fix formatting of orca.exe parameters

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


Githubs actions CI failing

Since a couple of days ago, CI started failing when creating the environment. It is finding conflict in the packages as in https://github.com/choderalab/perses/actions/runs/3907079871/jobs/6675912903 (this is when I see it started happening).
We need to fix this as soon as possible for PRs to be able to get tested correctly.

Relevant upstream issue https://github.com/conda-incubator/setup-miniconda/issues/274
A solution that has been mentioned by @mikemhenry is to switch to micromamba.


Print "Downloading: ..." messages to stderr

This makes it possible to run ./show_diff.py > repodata.diff without polluting the output with Downloading: ... messages.
This is useful for large diffs.

Hi! This is the friendly automated conda-forge-linting service.
I just wanted to let you know that I linted all conda-recipes in your PR (recipe) and found it was in an excellent condition.

@conda-forge/core, requesting review for a simple and helpful change (three lines of code)


fotos UI freezes when trying to connect

It happens when Fotos is trying to upload a photo to the Box and it responds in a way that Fotos is not handling.
If I stop  the Box application then the Fotos UI becomes responsive again.
To help reproduce it maybe you can just add a sleep in Box?
Mahdi mentioned that a background task did not solve the issue meaning it is probably entering an infinite loop and eating up cycles or something.

I did some investigation on how we can run a piece of code that blocks the Js thread on react-native and tried some packages like react-native-multithreading and react-native-bg-thread but none of them worked
What I understood we need to implement multi-threading on react-native-fula while streaming the data.

@gitaaron @ghorbani-m

What I understood we need to implement multi-threading on react-native-fula while streaming the data.

Then we have 2 problems. :D
react native design single threaded and go-fula run on main UI thread (not JS thread). so the thing goes south it break the main thread.
And by reading code of Libp2p dial and connect. ref you will see that libp2p already is multi thread code. So don't think adding thread fix's anything.
I think the main reason on freezes is current go-fula-0.4.2 has some bug in error handling (the code will panic) that i will fix after.
[ ] - https://github.com/functionland/go-fula/issues/18

@farhoud
I don't think the freeze issue is because of some bugs or error handling on go-fula.
I did some tests and called other blocker codes on Fotos and got the same result as calling go-fula methods.
My solution is to implement multi-threading on react-native-fula on the Java side while we are bridging the codes.

@ghorbani-m
The underlining code in go side is multi-threaded and if you still blocked means :

the react-native does not respect the module threading.
I don't think if the threading does not work on go side it would work on JAVA.

I think the new architecture and JSI will solve the problem but they are at there early stage and not ready for production

@ghorbani-m The underlining code in go side is multi-threaded and if you still blocked means :

the react-native does not respect the module threading.
I don't think if the threading does not work on go side it would work on JAVA.

My experience is accept react-native framework limitation. ref

I added multi-thread feature to the react-native-fula android module and got a test so it works like what we expected.
@farhoud can you please have a look at this PR and if it is ok then merge it and release a new build?


TypeError: Failed exporting HTML for URL About (src/pages/About.js): Cannot read property 'href' of undefined

I just updated to<EMAIL_ADDRESS>and now yarn build will throw the following error for any file that my pages folder will contain:
TypeError: Failed exporting HTML for URL About (src/pages/About.js): Cannot read property 'href' of undefined

Environment

react-static -v: 6.0.0-beta.16
node -v: 8.10.0
yarn --version: 1.6.0
Operating system: macOS High Sierra

Steps to Reproduce the problem
Base your steps off of any freshly installed react-static template!

yarn add<EMAIL_ADDRESS>yarn build

I think I've found the piece of code causing the issue.
react-static/src/client/components/Router.js
 if (typeof window !== 'undefined') {
  routeInfo = window.__routeInfo
  const href = decodeURIComponent(window.location.href)
  path = cleanPath(href)
}

Still not fixed and shouldn't be closed.

I'm seeing the same issue

Hey @ronanlevesque, did you ever find a solution?

@bradysheridan No, we never found a workaround - We switched to Gatsby instead.

The original issue https://github.com/nozzle/react-static/issues/693#issuecomment-408405975 was fixed, but I guess we missed a statement about that.
If you're still having issues, its likely a migration issue (which we are more than willing to help with). Please paste a link to your repo or project where we can take a look and reproduce the problem.
All fresh React Static installations are functioning properly.

Thanks @tannerlinsley  for the clarification. It my global installation version that was lagging behind by a few versions that caused the problem.

@tannerlinsley I'm having the same issue, would you mind looking at my project:
https://github.com/E-Wagner/fellow
I've been working many hours on this but it broke unexpectedly..

This happened to me after installing<EMAIL_ADDRESS>- removing it let me build again.

TypeError: Failed exporting HTML for URL manage-account (react_static_root/src/pages/manage-account.js): Cannot read property 'c'   of undefined

this is the error i'm getting, tried to debug still cant figure out what is the issue here

It might also be an old <Router> component (if you migrated from an older version of react-static) like here.
Or if you have React.Suspense & React.lazy() inside of any page, it will also cause the same error (v.7.6.2).
It seems that this error can mean many different things. Any chance that errors messages could be more specific?


Add Windows Web Account Manager (WAM) Brokered Authentication Support

This is a tracking work item for creating/finishing the new Azure.Identity.BrokeredAuthentication client library (separate package from the existing Azure Identity client library).
Related:

https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/identity/Azure.Identity.BrokeredAuthentication/README.md

Dependencies:

MSAL WAM is supported (Beta) in .NET and Python today
MSAL WAM support (Beta) for Java and Javascript is not yet available but is expected to be available in time for this scheduled development milestone.

Link to dependency - https://github.com/AzureAD/microsoft-authentication-library-for-go/issues/284

Blocked on https://github.com/AzureAD/microsoft-authentication-library-for-go/issues/243


Google Colab fails to install PyBaMM

Discussed in https://github.com/pybamm-team/PyBaMM/discussions/2521
Google Colab has updated to Python 3.8 but now fails to install PyBaMM due to pybtex.

Originally posted by reenubosepybamm December  5, 2022
%pip install pybamm -q    # install PyBaMM if it is not installed
import pybamm
import numpy as np
import matplotlib.pyplot as plt
GIVING AN ERROR
PluginNotFound                            Traceback (most recent call last)
 in
2 get_ipython().run_line_magic('pip', 'install pybamm --no-cache -q')
3 get_ipython().run_line_magic('pip', 'install pybamm -q    # install PyBaMM if it is not installed')
----> 4 import pybamm
5 import numpy as np
6 import matplotlib.pyplot as plt
6 frames
/usr/local/lib/python3.8/dist-packages/pybtex/plugin/init.py in _load_entry_point(group, name, use_aliases)
79         for entry_point in pkg_resources.iter_entry_points(search_group, name):
80             return entry_point.load()
---> 81     raise PluginNotFound(group, name)
82
83
PluginNotFound: plugin pybtex.database.input.bibtex not found

This is a known pybtex issue, but till now, it was only affecting the pybamm.print_citations statements (seeing the error on import is new for me).
Reported last year here - https://github.com/pybamm-team/BattBot/issues/47
Reported in pybtex here - https://bitbucket.org/pybtex-devs/pybtex/issues/148/error-pluginnotfound-plugin (I did not follow up. I will post a follow-up comment there.)
The error comes from -
https://github.com/pybamm-team/PyBaMM/blob/c17756f1b7605403e8e3f025c9d3568517941529/pybamm/citations.py#L149
because the __init__ method has -
https://github.com/pybamm-team/PyBaMM/blob/c17756f1b7605403e8e3f025c9d3568517941529/pybamm/citations.py#L38-L39
Maybe we can execute these lines only when a user is not on Colab and throw a warning about citations when a user is on Colab (till this issue is fixed).

Thanks @Saransh-cpp , sounds like a good workaround

currently i am working in pybamm i,should i wait for the the bug to be cleared.or should i go to comsol

@reenubosepybamm you should be able to install PyBaMM's latest version in your local environment (not Google Colab) without any issues.
This issue has also been fixed and you can install the develop version of PyBaMM on Google Colab (till the time a new release is made) -
pip install git+https://github.com/pybamm-team/PyBaMM@develop

instead of -
pip install pybamm

I have been using PyBaMM for most of 2022 with no issues, but since Google Colab was updated to Python 3.8, I have not been able to run any simulations.
I have tried the following fixes to no avail:

Installed PyBaMM on Colab with pip install git+https://github.com/pybamm-team/PyBaMM@develop as suggested by @Saransh-cpp

Allows installing/importing  pybamm, but throws an error when defining the model or the parameter_values
model = pybamm.lithium_ion.DFN(options={"thermal":"lumped"}) or parameter_values = pybamm.ParameterValues('Chen2020')
Error1: KeyError: 'Not a bibtex citation or known citation: Ai2019'
Error2: KeyError: 'Not a bibtex citation or known citation: Chen2020'

Attempted installation on my local environment (desktop) with pip install pybamm

Throws an ERROR during installation
ERROR: PluginNotFound: plugin pybtex.database.input.bibtex not found

Installed PyBaMM on my local environment (desktop) with pip install git+https://github.com/pybamm-team/PyBaMM@develop

Allows installation but throws an ERROR during import pybamm
ERROR: PluginNotFound: plugin pybtex.database.input.bibtex not found

Any other suggestions?


Enrol HMPPS Performance Hub into central GuardDuty

Enrols the HMPPS Performance Hub account into central GuardDuty.

thanks @jemnery 👍🏼


Avoid using an unfilter repo

This will cause needless junk coppied to the store / rebuilds

I would be fine swapping it so lib.nix is default.nix and vice versa.
I do think the separation is good, however. The definitions of thunkSource etc. are intentionally very stable, and more widely used than nix-thunk itself. In fact, as long as nix-thunk is being uploaded to Hackage, the nix code for building nix-thunk need not be used by anyone at all. The definition is also much less stable as the best way of building Haskell projects changes over time.

Thanks to #62, this no longer modifies stables files.
Did Nix build manually because CI is blocked on another.


Clusters are stuck in unavailable state after upgrading from 2.5.9 to 2.6-head

Rancher Server Setup

Rancher version: v2.6-3573c0a4eb03718cb9bcf5ee797ace58a60e1791-head
Installation option (Docker install/Helm Chart): Helm Chart

If Helm Chart, Kubernetes Cluster and version (RKE1, RKE2, k3s, EKS, etc): RKE1 v1.20.10

Proxy/Cert Details: self-signed

Information about the Cluster

Kubernetes version: v1.20.10
Cluster Type (Local/Downstream): Downstream

If downstream, what type of cluster? (Custom/Imported or specify provider for Hosted/Infrastructure Provider): Infrastructure Provider

Describe the bug
Brought up rancher ha v2.5.9 and created 2 infrastructure provider downstream clusters; after helm upgrade, all downstream clusters except local cluster stuck in unavailable state
To Reproduce

Brought up rancher ha v.2.5.9
Created 2 downstream infrastructure provider clusters with 1 worker, 1 etcd, 1 control plane.
created some workloads and namespaces on the clusters
I upgraded to v2.6-head with: helm upgrade rancher rancher-latest/rancher --version 2.6-head --namespace cattle-system --set hostname=<> --set rancherImageTag=v2.6-head

Result
My 2 downstream infrastructure provider clusters are stuck in unavailable
Expected Result
version upgraded for downstream clusters and clusters are active/available
Screenshots

Additional context
2021/09/15 20:51:17 [ERROR] error syncing 'machines.cluster.x-k8s.io': handler need-a-cert: services "webhook-service" not found, requeuing
2021/09/15 20:51:17 [ERROR] error syncing 'clusters.cluster.x-k8s.io': handler need-a-cert: services "webhook-service" not found, requeuing
2021/09/15 20:51:17 [ERROR] error syncing 'machinedeployments.cluster.x-k8s.io': handler need-a-cert: services "webhook-service" not found, requeuing

I will provide my setup details if needed

As of this morning, all my clusters are active

Similar to: https://github.com/rancher/rancher/issues/33988
@ronhorton was Rancher re-installed at some point, or was it fresh install straight to upgrade. Also are those logs coming from rancher or downstream clusters.

this was a fresh install of rancher straight to upgrade; logs are from rancher pods

I cannot reproduce the bug in my test of upgrading rancher HA from chart version 2.5.8 to 2.6.1-rc1 (using 2.6-head image)
The service webhook-service is a part of the rancher-webhook app since chart version 1.0.0+up0.2.0 which is used in rancher v2.6.0.
Right after Rancher is upgraded, it starts the process of upgrading all internal apps. The rancher-webhook app is redeployed and then upgraded to the latest version. The helm history can indicate it.
helm history -n cattle-system rancher-webhook
REVISION	UPDATED                 	STATUS    	CHART                            	APP VERSION	DESCRIPTION
1       	Thu Sep 16 18:49:20 2021	superseded	rancher-webhook-0.1.100+up0.1.1  	0.1.1      	Install complete
2       	Thu Sep 16 21:12:24 2021	deployed  	rancher-webhook-1.0.1+up0.2.1-rc2	0.2.1-rc2  	Upgrade complete

As to the bug, it looks like Rancher met problems when it upgraded the rancher-webhook app at first but eventually got it done.

On an upgrade from 2.5.9 to 2.6-head commit id: 1f5852d

I dont see this issue.
Had one downstream cluster - Custom cluster - 1etcd + cp and 4 worker nodes.
On an upgrade, cluster went into Unavailable state and was back up Active.


Feat/sof 535/next break timing

Codecov Report

Merging #52 (8ebaad1) into feat/rundown-view-customization (0716a92) will decrease coverage by 0.90%.
The diff coverage is 50.00%.

:exclamation: Current head 8ebaad1 differs from pull request most recent head 3d43a83. Consider uploading reports for the commit 3d43a83 to get more accurate results

@@                         Coverage Diff                         @@
##           feat/rundown-view-customization      #52      +/-   ##
===================================================================
- Coverage                            67.29%   66.39%   -0.91%
===================================================================
  Files                                  259      247      -12
  Lines                                17835    16830    -1005
  Branches                              4026     3621     -405
===================================================================
- Hits                                 12002    11174     -828
+ Misses                                5794     5618     -176
+ Partials                                39       38       -1

Impacted Files
Coverage Δ

meteor/lib/rundown/rundownTiming.ts
55.55% <33.33%> (ø)

meteor/lib/api/rundownLayouts.ts
57.65% <50.00%> (-0.15%)
:arrow_down:

meteor/lib/collections/RundownLayouts.ts
100.00% <100.00%> (ø)

...kages/server-core-integration/src/lib/ddpClient.ts

packages/server-core-integration/src/lib/random.ts

...server-core-integration/src/lib/corePeripherals.ts

...ckages/server-core-integration/src/lib/watchDog.ts

packages/blueprints-integration/src/util.ts

packages/server-core-integration/src/index.ts

packages/blueprints-integration/src/context.ts

... and 5 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 0716a92...3d43a83. Read the comment docs.


highlight submit system button

This PR is related to issue #516
If the user hasn't logged in, they will see System page like this. The tooltip is default visible. User can click either 'Log in' button or 'Submit New System' button to log in.

If the user has logged in, they will see System page like this.

Thanks, @qjiang002 !
I like how you made the "New" button more visible by making it bigger. I think we should maybe reserve danger (red) buttons for operations that are risky and less frequently used (e.g. delete) though. This is also what antd suggests (doc). WDYT?

Thanks @lyuyangh . I change the color to 'call-to-action' (green) as suggested in the doc.


Delete date.md to get the YOLO achievement

Not necessary for action

Yes, I get the YOLO achievement.


Allow customisation of audit schema in base project

Use the consumers project get_audit_schema macro if one is defined.
This allows the customisation of event logging destination, for example to log to the same table across all dbt runs, or just renaming the table.
This could potentially also be a variable rather than a macro but that's more limited.
This is based on a suggestion by @clrcrl and I think it requires a version requirement bump to 0.16.0 because of this.
I've tested this in our own project with a none-existent schema and an existing schema and it works as expected (assuming permissions are setup on existing schemas).
Closes https://github.com/fishtown-analytics/dbt-event-logging/issues/21
Caveats
There are some complexities around handling permissions if this is used to log to a single audit schema - grants must be setup in the consuming project to allow usage on the schema and SELECT/INSERT appropriately. This is a bit different to normal DBT grant workflows as the owner needs to do the granting and it's not guaranteed that your current target user has created the table. We're using this macro to check this:

{% macro owns_audit_schema() %}

  {%- set owns_audit_schema -%}
      SELECT
        pg_namespace.nspname AS table_schema,
        pg_user.usename as user_name
      FROM
        pg_catalog.pg_namespace
        INNER JOIN pg_catalog.pg_user ON pg_user.usesysid = pg_namespace.nspowner AND pg_user.usename = '{{ target.user }}'
      WHERE table_schema = '{{ logging.get_audit_schema() }}'
        AND pg_user.usename = '{{ target.user }}'
    {%- endset -%}

    {%- set result = run_query(owns_audit_schema) -%}

    {%- if execute -%}

      {{ return(result.columns[0].values()|length == 1) }}

    {%- endif -%}

{% endmacro %}

Closing in favor of #25


Feature request: extra configuration options for Find My Mouse

Description of the new feature / enhancement
I would like to see extra configuration options for Find My Mouse, such as:

Configurable key press count. Two (default) to four would be a reasonable range.
Ability to swap the activation key between Left Ctrl, Right Ctrl, or both.
Advanced option: timing filter. Configure the min/max time between presses in order for them to be detectable.

Scenario when this would be used?
The configurable key press count would be useful in a number of scenarios:

Helps reduce unwanted triggers for accidental double-taps of Ctrl while hitting shortcuts.
If another application uses double-tap Ctrl as a shortcut, configuring the tap count is an easy way to avoid that conflict.
Greater accessibility for users with reduced motor control (e.g. shaking hands)

The ability to swap the activation key is just a nice feature to have. The locator built into Windows supports both keys for activation. Being able to choose would be nice.
Configurable timing would help reduce accidental double-taps. When I'm using Find My Mouse there's a particular cadence with which I tap the Ctrl key. Accidental triggers almost exclusively come from fast double-taps when my little finger doesn't quite bottom-out the key. Being able to tweak the minimum time between taps is more important than being able to tweak the maximum, in my opinion, but having both settings would be nice.
Supporting information
While it is not a fix for #14098, it does offer a simple workaround: users can configure three taps instead of two for the trigger.
Related, a comment in the code suggests dividing the mouse double click timing and dividing it by 5 to get the default minimum activation timing:
https://github.com/microsoft/PowerToys/blob/b93095a9c0f7b1d693908ebe4f39eb080dd775f0/src/modules/MouseUtils/FindMyMouse/FindMyMouse.cpp#L55-L57
I support the idea of deriving the default minimum timing from the system settings, but I think the keyboard repeat delay would be a better metric than the mouse settings. It'd inherently make more sense (i.e. using keyboard settings for keyboard key presses) and would likely offer a better default experience for users that have altered the keyboard repeat timings for accessibility reasons.

Configurable key press count. Two (default) to four would be a reasonable range.
Ability to swap the activation key between Left Ctrl, Right Ctrl, or both.

Both are tracked in #14651

/dup #14651


alsa: allow 'sound.mediaKeys.enable' to work even when 'hardware.pulseaudio.enable' is used

Motivation for this change
This resolves #66854 by adding new functionality to actkbd, allowing it to selectively deploy a systemd user service when a special 'userMode' toggle is set in the bindings attribute set. This does not work globally, but per binding so you can still have system-wide bindings for those that work fine that way, and user session bindings for any program which requires user permissions. I have split the config files for each instance so that the same binding will not be called by both services.
Additionally, I have modified 'sound.mediaKeys.enable' to take advantage of this new feature so that bindings for volume control will still work even when 'hardware.pulseaudio.enable' is set.
I imagine many users of NixOS are advanced users that use a lightweight window manager and not a full DE, so this should benefit anybody in that situation to have volume keys that 'just work' even when using a Wayland session or no graphical session at all.
Things done

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

[x] NixOS

[x] Tested compilation of all pkgs that depend on this change using nix-shell -p nix-review --run "nix-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Determined the impact on package closure size (by running nix path-info -S before and after)
[x] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Notify maintainers
cc @

I decided to change the volumeStep option to simplify the implentation. If you look at the 3rd commit you can see the original volumeStep model working using pactl, however to use pactl and target the default sink or source I have to do some needless command line work while pamixer targets the default sink or source automatically but it doesn't allow decibel calculations.
In commit 4, I opted for the simpler implementation of pamixer and changed volumeStep to an int since moving volume by percentage points seems to be a decent compromise. Users can still change their volumeStep they just can't calculate by decibel or direct hw values anymore. As an added bonus, users can decided whether or not they'd like to allow pulse to go beyond 100% volume with the new allowBoost toggle.
Technically we can use either one of these implementations; they both work fine. I'd just rather call a single process rather than a shell calling a process that calls a process.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-already-reviewed/2617/55

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review-may-2019/3032/47

Just did a force push to use pactl instead of pamixer. I didn't realize that you could use @DEFAULT_SINK@ for pactl until today (its not in the manpage).
This simplifies the PR a bit as I no longer needed to modify the volumeStep type so this should be much less intrusive. Should work with all existing configurations. I everything again just to be sure it still works and its good to go.
Any takers?

Any reason this was closed besides inactivity? This seems like a good option to have available for pulseaudio users.