Halts server upon use

Information

Minecraft Version: [e.g. 20w13a] 1.17
Fabric API Version: [e.g. 0.5.1+build.294-1.15] api-ver 36.0+1.17 fabric-loader-0.11.6-1.17
OS: [e.g. Windows, Mac OS, Ubuntu] Windows
Other installed mods: [Leave empty if nothing else is installed]

Describe the issue
A clear and concise description of what the bug is. After adding gunpowder-base. I would start the server let it do its thing. Then i'd get towards the end a null/void pointer for database. Config is setup to connect to our private MYSQL database. I don't get this issue without the mod on the server.
Crash/Error logs
If the game crashes or console errors are present, please attach the log here using a text paste service (such as gist or hastebin):
https://paste.alloffabric.com/bivemoyecu.properties
To Reproduce
Steps to reproduce the behavior:
add to 1.17 fabric-0.11.3-6 server
start the server
get the error.
redid the config in case.
Still got error after restarting!
Expected behavior
A clear and concise description of what you expected to happen.
Wasn't really expecting it to this in the first place.  Was expecting it to work without any issues
Additional context
Add any other context about the problem here.
gunpowder-base-1.0.5+1.17

Seems like Ledger is using an old version of Exposed.


writeFile, writeJson resolve before finishing writing

When I try to use these methods they will work, but they call resolve before they actually write their files. So what happens is that the next chain expects the file to be there, and work on it, except I get a ENOENT.
The only way I cant get this to work is to go back to default fs.
var Promise = require("bluebird")

var fs = require("fs");
//works
return new Promise(function(resolve, reject){
    fs.writeFile(currentJsonPath, "{}", function(e, data){
        if (e){
            reject(e)
        } else {
            resolve()
        }
    });
});

//writes file eventually, but calls resolve early
var fsExtra = Promise.promisifyAll(require("fs-extra"));
return fsExtra.writeFile(currentJsonPath, "{}");

//writes file eventually, but calls resolve early
var fsExtraPromise= require("fs-extra-promise");
return fsExtraPromise.writeFile(currentJsonPath, "{}");

Oh shit! This is a really bad bug.
But I suspect this is a bug in fs-extra rather than fs-extra-promise.
Just to make sure this has nothing to do with promisification, could you possibly try this:
var fs = require('fs-extra');
fs.writeFile( currentJsonPath, "{}", function(e) {
    if (e) throw e;

    // check file has been written
} );

Yeah, I think I agree it's probably fs-extra.
I'm using https://www.npmjs.com/package/json-file-pluspackage, and the file is still not there when I write it as a callback
var jsonFile = require("json-file-plus")
 var fsExtra = require('fs-extra');
            fsExtra.writeFile( currentJsonPath, "{}", function(e) {
                if (e) throw e;

                jsonFile(currentJsonPath)
            });

Just to remove the possibility of json-file-plus being the location of the fault, could you please try using a vanilla fs method like fs.readFile to check the file's existence?
But yes, if that still fails, it's definitely a bug in fs-extra. And a pretty bad one if you ask me.

@1mike12 How you getting on with this? Would be good to narrow this down so can raise an issue on fs-extra if that's where the fault is.

By the way, what OS and version of Node are you using?

Ping @1mike12!

Ping @1mike12! Did you ever work out what the problem was here? If it's a bug in fs-extra-promise, I'd like to fix it, but it did look like the culprit was more likely to be in fs-extra. Please let me know so I can close this issue if it's solved.

yeah I've been super busy, I was trying to write a quick test this morning with a forked vers of this, but ran into some trouble. I'll try to get it up b4 this weekend ends

@1mike12 Any progress with this? NB Have just released v1.0.0 which has latest versions of fs-extra and bluebird. So they may have solved this problem in the meantime.


Error while including kmod-evdi DisplayLink

Describe the package
I try to add the evdi DisplayLink driver in my Containerfile:

COPY --from=ghcr.io/ublue-os/akmods:${AKMODS_FLAVOR}-${IMAGE_MAJOR_VERSION} /rpms/ /tmp/akmods-rpms
RUN find /tmp/akmods-rpms
RUN rpm-ostree install /tmp/akmods-rpms/kmods/kmod-evdi-*.rpm

However, during image building, I get the following error:
error: Could not depsolve transaction; 1 problem detected:
 Problem: conflicting requests
  - nothing provides evdi-kmod-common >= 1.14.1 needed by kmod-evdi-6.6.8-200.fc39.x86_64-1.14.1-4.20231123gita943d98.fc39.x86_64 from @commandline

Did I made a mistake during the integration of this akmods?
Or is this a bug with the package?
Image
All Images

The solution seems to be to include the negativo repo before adding the module (not in recipe.yml):
ADD https://negativo17.org/repos/fedora-multimedia.repo  /etc/yum.repos.d/negativo17-fedora-multimedia.repo

Then, the command rpm-ostree install /tmp/akmods-rpms/kmods/kmod-evdi-*.rpm will also add displaylink and libevdi from that repository as dependencies of kmod-evdi-*.rpm
Is this the correct integration of that driver? Is there any documentation on how to correctly integrate this module?

You have it correct, there's no documentation however I'm afraid


Deep cloning when passing initial state to createResource

When you pass an initialState to createResource it only shallow-copy those values into the initial state that rsr creates for you.
So, if you pass this object
{
  resourceListMeta: {
    selected: [],
  }
}

you will end up losing the default values that were in rsr's default resourceListMeta for that specific resource (readXhrStatus:'NULL' &  createXhrStatus: 'NULL' for this specific case)
I can put together a PR for fixing this if it's ok to you.

This was resolved in #94


io: rethink Seeker interface, move required consts from os

see issue #6873, and https://golang.org/cl/36810043/.

> We already have these in pkg/os, also with this TERRIBLE_CASE. Let's stop the
bleeding.
> In Go 2 we could move them and fix the case or maybe even change the signature to
not be so C-like.

Could we just duplicate those three "whence" consts into io, with properly cased names? (i.e. io.SeekEnd)
@nightlyone Size() int64 is a method that shows up occasionally, and its semantics are consistent across implementations. Instead of having separate methods for rewind and such, why not just use the existing interface, but have no-random-access implementations return errors on seeks they don't support?

I like @extemporalgenome's suggestion. Maybe for Go 1.7.


New DISCORD Domain Update

Coverage remained the same at 100.0% when pulling 227b8e03f16020a3ad9ee81d3318a2e0ffee1b25 on DeepLinkCode:master into 1a799f8e4183390e6905be7198bc4f45f3981f38 on wohali:master.

Coverage remained the same at 100.0% when pulling 227b8e03f16020a3ad9ee81d3318a2e0ffee1b25 on DeepLinkCode:master into 1a799f8e4183390e6905be7198bc4f45f3981f38 on wohali:master.


No train code

Hi~ Thank you for the wonderful work.
I find your work on the alphamatting.com, and I am very glad that you open source your code so quickly.
However, I do not find the training code in the repository.
Would you like also open source the training code?

Hi unfortunately I cannot release the training code at this time. I've updated the readme with some key tips. I encourage people to try apply these and our network architecture to existing open source training codes. For example,

https://github.com/Yaoyi-Li/GCA-Matting
https://github.com/foamliu/Deep-Image-Matting-PyTorch
https://github.com/huochaitiantang/pytorch-deep-image-matting

What do you mean by clipping the alpha? What do you do?

torch.clamp(alpha,0,1)
On Wed, Aug 19, 2020, 5:51 PM ucb-pb<EMAIL_ADDRESS>wrote:

What do you mean by clipping the alpha? What do you do?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/MarcoForte/FBA_Matting/issues/1#issuecomment-676541074,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAED5MXUNRODH7DYELGV72LSBP7H7ANCNFSM4LPDGYSA
.

Ok, I'm unclear about where that would happen. Like is it applied to the output alpha before the loss is calculated?

Hi yes it's applied to the output of the network for the alpha channel
before the loss is calculated.
Occasionally this can cause issues at the beginning of training. And the
output defaults to either all zeroes or all ones. If this happens, disable
the clamping for the first few hundred iterations and then switch it back
on.
On Wed, Aug 19, 2020, 7:34 PM ucb-pb<EMAIL_ADDRESS>wrote:

Ok, I'm unclear about where that would happen. Like is it applied to the
output alpha before the loss is calculated?
—
You are receiving this because you modified the open/close state.
Reply to this email directly, view it on GitHub
https://github.com/MarcoForte/FBA_Matting/issues/1#issuecomment-676591406,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAED5MXJCMD57MBRAKBSJBLSBQLLDANCNFSM4LPDGYSA
.

thank you. I see the clamping and group normalization are already incorporated into your network code, which is great. is the weight standardization happening too? I can't tell where at first glance if it is.

actually, i see clamping in a few places. which one do you disable?


neovim wrapper fails to build for some plugins

Steps To Reproduce
Steps to reproduce the behavior:

build wrapped neovim with neogit plugin in the plugin list

Build log
error: builder for '/nix/store/db9r5s33ir4zjbk8a9x84qkl0l15k285-neovim-master.drv' failed with exit code 1;
last 8 log lines:
> Generating remote plugin manifest
> gitsigns: git not in path. Aborting setup
> Error detected while processing BufEnter Autocommands for "*":
> E495: no autocommand file name to substitute for ""
> E495: no autocommand file name to substitute for ""
> E495: no autocommand file name to substitute for ""
> remote/host: generated rplugin manifest: /nix/store/3wswxv8p7pyzxkrhifvm94lgz6xp095d-neovim-master/rplugin.vim
> Generating rplugin.vim failed!
For full logs, run 'nix log /nix/store/db9r5s33ir4zjbk8a9x84qkl0l15k285-neovim-master.drv'.
rplugin.vim generation failed for an auto command in the plugin neogit.
not sure where to begin to fix this (it might need fixing in neovim but the changes looks good to me)
happy to look into fixing , but might need some pointers on where to look
Additional context
neovim commit that breaks this plugin generation: neovim/neovim@64d147b
my neovim repo used to build: https://github.com/polarmutex/neovim-flake
Notify maintainers
@teto
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
- system: `"x86_64-linux"`
 - host os: `Linux 5.18.19, NixOS, 22.11 (Raccoon), 22.11.20220901.2da64a8`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.11.0`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

The error seems to stem from gitsigns: git not in path. Aborting setup ?
If you add git as a buildInput of gitsigns-nvim in pkgs/applications/editors/vim/plugins/overrides.nix does that fix it ?
It's kinda strange as I use gitsigns-nvim and dont see it (well I've disabled it last week for another reason).
Also be careful that the "src" you see here
  gitsigns-nvim = buildNeovimPlugin {
    pname = "gitsigns.nvim";
    version = "2022-09-01";
    src = fetchFromGitHub {
      owner = "lewis6991";
      repo = "gitsigns.nvim";
      rev = "d7e0bcbe45bd9d5d106a7b2e11dc15917d272c7a";
      sha256 = "1h4gxyamynwygxpqfib2a7sd1xbi6sh8ixg85j6qiaqqpahr0a4k";
    };
    meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
  };

is not the "src" used by the derivation (a confusing bug I am working on, see https://github.com/NixOS/nixpkgs/pull/178180#issuecomment-1197726116)

The git dependency for gitsigns is a small issue I still need to fix but does not cause the rplugin generation to fail. If I disabled Neogit plug-in from my config it builds.
As part of my attempt to track down the issue I was only changing neovim commits and the neovim commit reference is the first commit where my config breaks.
There is a auto command in the neogit plugin folder referencing afile that causes the error when generating the rplugin file. The neovim commit that breaks is refactoring out duplicated code dealing with auto commands. But the neovim change looks correct but is causing issues with the nix neovim wrapper

Here's my slightly different nix log:
Generating remote plugin manifest
[coc.nvim] "node" is not executable, checkout https://nodejs.org/en/download/
Cannot find git. Please set g:gitgutter_git_executable.
Error detected while processing StdinReadPost Autocommands for "*":
E495: no autocommand file name to substitute for "<afile>"
Error detected while processing BufEnter Autocommands for "*"..function <SNR>6_detect_indent:
line   10:
E495: no autocommand file name to substitute for "<afile>"
Error detected while processing BufWinEnter Autocommands for "*":
E495: no autocommand file name to substitute for "<afile>"
Error detected while processing BufEnter Autocommands for "*"..function <SNR>6_detect_indent:
line   10:
E495: no autocommand file name to substitute for "<afile>"
remote/host: python3 host registered plugins []
remote/host: generated rplugin manifest: /nix/store/s32mksqrhld9qvrwrl03n9ay3hidwdxb-neovim-master/rplugin.vim
Generating rplugin.vim failed!

I come from the linked issue above. I also used neovim nightly, though I used github:neovim/neovim rather than the overlay, since that's deprecated. Removing that and just using Nixpkgs' neovim results in an error that I believe is a home-manager thing, as it looks like I need to use neovim-unwrapped for it. But after removing that overlay, it seems to work perfectly, I suppose this is more of an issue with how the neovim flake works, maybe?

A neovim commit broke this , but the commit looks correct and valid so I still need to track down what needs changed in nixpkgs to fix this, any help would be appreciated as I do not fully know the neovim package scripts

I get a similar error, using the neovim from the nixos-22.05 branch:
Generating remote plugin manifest
[nerdtree-git-status] git command not found
Error detected while processing StdinReadPost Autocommands for "*":
E495: no autocommand file name to substitute for "<afile>"
Error detected while processing BufEnter Autocommands for "*"..function <SNR>6_detect_indent:
line   10:
E495: no autocommand file name to substitute for "<afile>"
Error detected while processing BufWinEnter Autocommands for "*":
E495: no autocommand file name to substitute for "<afile>"
Error detected while processing BufEnter Autocommands for "*"..function <SNR>6_detect_indent:
line   10:
E495: no autocommand file name to substitute for "<afile>"
remote/host: python3 host registered plugins []
remote/host: generated rplugin manifest: /nix/store/vsazps5a952gw5x6g42bbbkvv64dd3qx-neovim-master/rplugin.vim
Generating rplugin.vim failed!

For me, removing vim-polyglot from the plugins fixes the issue and allows me to build neovim again.

For example, where is makeWrapper defined?

I think this is in pkgs/applications/editor/neovim/wrapper.nix (i. e. https://github.com/NixOS/nixpkgs/blob/f21492b413295ab60f538d5e1812ab908e3e3292/pkgs/applications/editors/neovim/wrapper.nix#L81 for the 22.05 branch).
The log output of neovim can be adjusted by modifying the -V1rplugins.log part of the command generating the manifest, the higher the number the more detailed the output. Adding a cat rplugins.log before the exit 1 allows to view the error output with nix log after the build failure. See https://gist.github.com/liketechnik/2c5d537913ab581aca1083674d941d38 for a diff accomplishing just that.

Unfortunately I haven't been able to find out where the issue is caused (i. e. changes to the nixos module, changes in neovim or a vim-polyglot update), so I don't have a full solution here.

Unfortunately I haven't been able to find out where the issue is caused (i. e. changes to the nixos module, changes in neovim or a vim-polyglot update), so I don't have a full solution here.

Apparently the error occurs due to the manifest being generate in ex mode (-E). Not using it allows to build the plugin manifest successfully (at least for my set of plugins). The following patch accomplishes the necessary change:
diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index 2a0d60ce5a7..002b81e26fb 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -100,7 +100,7 @@ let
         if ! $out/bin/nvim-wrapper \
           -u ${writeText "manifest.vim" manifestRc} \
           -i NONE -n \
-          -E -V1rplugins.log -s \
+          -V1rplugins.log \
           +UpdateRemotePlugins +quit! > outfile 2>&1; then
           cat outfile
           echo -e "\nGenerating rplugin.vim failed!"

This that acceptable fix that can merged into nixpkgs?

Well, at the very least you can very much PR it and ask for review.

Well, at the very least you can very much PR it and ask for review.

Done, see #191852

I guess this can be closed now that #191852 has been merged?

I'm hitting something with the same error message on current master (b7fa69bbea93d990454dbf42f310de1af8940459, aarch64-darwin), but I haven't done much debugging yet. Weirdly after applying the debugging patch in https://github.com/NixOS/nixpkgs/issues/189804#issuecomment-1250332129, the build succeeds, and it seems to be related to the verbosity level. -V7rplugin.log and below fail, while -V8rplugin.log succeeds (the default is -V10, according to the docs).
Reproduction:
❯ nix-build -E '
  let pkgs = import ./. {}; in
  pkgs.neovim.override {
    withNodeJs = true;
    configure.packages.test = with pkgs.vimPlugins; { start = [ coc-nvim vim-better-whitespace vim-polyglot ]; };
  }
'

Still a problem on current master (83018dd5d795a7f0729c94c2d234986f2858c300, aarch64-darwin, x86_64-linux). Should I reopen this issue or open a new one with a nearly identical description?

[ignoring the question regarding opening a new issue]
I have to be honest here: My "fix" that closed this issue was more of a "x changed somehow" + "x doesn't seem to be needed here" -> "let's remove x" (x being neovim's ex mode). Unfortunately I did (and do not) understand which change in ex mode caused the original error to surface (and the (neo)vim changelogs have not been particularly helpful for me to grasp the changes made). So my fix may very well just have hid the underlying problem :( And I have no idea what that problem is.

Thanks for the explanation. It sounds to me like the issue is I'm seeing is related or the same, and some part of it is still present, so I'm going to reopen this issue for visibility.

Changing the verbosity level was enough to pass my simple reproduction so I opened a PR, but not enough to build my vim configuration (oops). Here's a build log with the debugging changes from https://github.com/NixOS/nixpkgs/issues/189804#issuecomment-1250332129 in case it's helpful.

I spent a while looking at this, but it looks like I'm going to need to learn a whole bunch more about neovim.
My particular failure seems to be a warning issued by vim-gitgutter, which understandably can't find git. It passes if I set disable flag (let g:gitgutter_enabled = 0) while building the manifest, but I don't see a way to set that without changes to nixpkgs. However, any package that calls echo seems to be problematic.
I still don't know what affects the exit status, or how installing these three packages combine to make echo change the exit status.
Here's a reproduction:
Note that this assumes the following verbosity change patch has been applied.
{ pkgs ? import ~/src/nixpkgs {} }:

let
  # A simple "extension" that echos during load, which mimics the behavior of
  # more complex plugin issuing a warning.
  echo-on-load = pkgs.vimUtils.buildVimPluginFrom2Nix {
    pname = "echo-on-load";
    version = "0";
    src = pkgs.runCommand "echo-on-load-source" {} ''
      mkdir -p $out/plugin
      echo 'echo "a test message"' > $out/plugin/echo-on-load.vim
    '';
  };

in

pkgs.neovim.override {
  withNodeJs = true;
  configure.packages.test = with pkgs.vimPlugins; {
    start = [
      # Removing any one of the following makes the build pass.
      coc-nvim
      vim-better-whitespace
      vim-polyglot
      echo-on-load
    ];
  };
}

diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix
index 01a9cf98954..dfde843cdaf 100644
--- a/pkgs/applications/editors/neovim/wrapper.nix
+++ b/pkgs/applications/editors/neovim/wrapper.nix
@@ -98,7 +98,7 @@ let
         if ! $out/bin/nvim-wrapper \
           -u ${writeText "manifest.vim" manifestRc} \
           -i NONE -n \
-          -V1rplugins.log \
+          -Vrplugins.log \
           +UpdateRemotePlugins +quit! > outfile 2>&1; then
           cat outfile
           echo -e "\nGenerating rplugin.vim failed!"


Feat: CLI polywrap codegen Command

I think the CLI interface should be:
polywrap codegen
polywrap build
polywrap deploy
polywrap infra
polywrap create
polywrap run

Where each command decides internally what projects it works with.
This PR consolidates the polywrap plugin codegen and polywrap app codegen commands into a single polywrap codegen command. Additionally it refines best-practices about what options should be defined in polywrap manifest files and which are provided on the CLI.
NOTE: see the todo file for WIP impl notes
TODO:

[ ] option to override any property
[ ] option to specify a override fragment yaml file

closes: #1153

polywrap codegen is now the only codegen command in the CLI right now. 😄
@dorgjelli it seems that codegen outputs into ./src/wrap for all project types currently, so I have kept it at that.
Work that should be split into issues and done separately:

[ ] codegen for plugins appears to also output the plugins ABI into a ./build folder. We should refactor this out into the polywrap build command, and extend the build command to support plugins as well.

This would also move the --publish-dir option that the plugin codegen uses into build's --output-dir option
codegen would then support wasm, plugin and app project types, while build would support wasm, plugin and interface types

[ ] move --codegen-dir, --publish-dir, and --client-config into manifest files. Separate tasks for each of those might seem fair.

[ ] --codegen-dir issue created
[ ] --publish-dir issue created
[ ] --client-config issue created

[ ]  move --codegen-dir, --publish-dir, and --client-config into manifest files. Separate tasks for each of those might seem fair.

[ ]  --codegen-dir issue created
[ ]  --publish-dir issue created
[ ]  --client-config issue created

Note: we should probably rethink our manifest migration strategy before messing with manifests. While we can have all of these options set as optional manifest properties, I'd say that we'll likely want to create a proper migration strategy sooner than later, as it will reduce future work.
Current migration strategy:
Auto-generated code requires us to implement certain, fixed migrators.
available manifests:
0.1.0
0.2.0
0.3.0
0.4.0

migrators/migration paths:
0.1.0 -> 0.4.0
0.2.0 -> 0.4.0
0.3.0 -> 0.4.0

Proposed migration strategy:
Allow developers to declare their own migrators, from whichever version to whichever other version.
A simple search algorithm would then find the appropriate migration path, and could even allow for downgrades if the correct migrator exists.
available manifests:
0.1.0
0.2.0
0.3.0

migrators:
0.1.0 -> 0.2.0
0.2.0 -> 0.3.0
0.3.0 -> 0.4.0
0.1.0 -> 0.3.0

migration paths to 0.4.0:
0.1.0 -> 0.2.0 -> 0.3.0 -> 0.4.0
0.1.0 -> 0.3.0 -> 0.4.0

Added feature for the splitting of plugin codegen behavior:
https://github.com/polywrap/toolchain/issues/1210

The dependencies in the other interfaces were also changed to 0.4.1


File synth_chains.py missing

Hi there, super interesting paper! Thanks for publishing the code, I'm excited to play around with it :)
I tried running some of the notebooks but it seems like the file synth_chains.py is missing from the repository.  I tried renaming synth_presets.py and the synth_presets_dict to synth_chains.py and synth_chains_dict, respectively, but that led to some other errors; also some of the notebooks seem to work with "presets" rather than "chains".
Could you add the synth_chains.py and the updated notebooks to the repository? Thanks a lot!

Thanks alot!
Oh I get what you say. Thats true that the terminology was changed prior tu submitting the paper from "preset" to "chain". I guess I left some behind. I will check it out. It might take some time since I moved forward with other projects and not regularly maintains this but its important for me to have it working!

Hi there, super interesting paper! Thanks for publishing the code, I'm excited to play around with it :)
I tried running some of the notebooks but it seems like the file synth_chains.py is missing from the repository. I tried renaming synth_presets.py and the synth_presets_dict to synth_chains.py and synth_chains_dict, respectively, but that led to some other errors; also some of the notebooks seem to work with "presets" rather than "chains".
Could you add the synth_chains.py and the updated notebooks to the repository? Thanks a lot!

Hi dsuedholt
So I updated the project and now synth_chains.py is there. If anything else please tell me!
I am sorry it took so much time, I knew that i will not be available but hopefully it is still an interest for you and you can check it out.


ci(SPV-1114): setup builds to publish images also on AWS ECR public repo.

Pull Request Checklist

[ ] 📖 I created my PR using provided  : CODE_STANDARDS
[ ] 📖 I have read the short Code of Conduct: CODE_OF_CONDUCT
[ ] 🏠 I tested my changes locally.
[ ] ✅ I have provided tests for my changes.
[ ] 📝 I have used conventional commits.
[ ] 📗 I have updated any related documentation.
[ ] 💾 PR was issued based on the Github or Jira issue.

: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 46.13%. Comparing base (3312ad9) to head (707bc92).

Additional details and impacted files

@@            Coverage Diff             @@
##             main     #747      +/-   ##
==========================================
- Coverage   46.60%   46.13%   -0.47%
==========================================
  Files         328      328
  Lines       13378    16700    +3322
==========================================
+ Hits         6235     7705    +1470
- Misses       6569     8421    +1852
  Partials      574      574

Flag
Coverage Δ

unittests
46.13% <ø> (-0.47%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 296 files with indirect coverage changes

Continue to review full report in Codecov by Sentry.

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


Make Pod executor a separate package

What this PR does / why we need it:
Fixes network policies and stdout and stdin are now separate
Which issue(s) this PR fixes:
Prerequisite for #1137
Special notes for your reviewer:
n/a
Release note:

NONE

I'm closing this in favor of #1137


The .env file is acting weird in the repo

it overwrote my local .env file!

@anildash is there some trick to including a .env file in a repo so glitch gets properly seeded, but .. not have it be a big PITA to exclude from commits?

I'd consider putting the .env filename in your .gitignore list, and trick npm install or the first time the app runs into creating the .env file (if it doesn't exist) with your default values in it.

Could also ship an example.env file in the repo isntead of .env -- and when the app runs, if .env doesn't exist, then it copies example.env to .env and tells the user to go edit .env. (just brainstorming)

@patrickmcurry this should be fixed. you may have to fix it one last time after merging latest.


Update template.md

Harness Developer Pull Request
Thanks for helping us make the Developer Hub better. The PR will be looked at
by the maintainers.
What Type of PR is This?

[ ] Issue
[ ] Feature
[x ] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

doc out of date

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[ ] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Sprite3D not casting a shadow

Godot version:

3.0 stable and 2.1.4 stable
OS/device including version:

Phone: Oukitel K6000 Pro
Android 6.0
GPU: ARM Mali-T720 (MP3)
Driver: Open GL ES 3.1 and Open CL 1.2
Issue description:
When using a Sprite3D with "alpha_cut" set to "Opaque Prepass" the drop shadow is missing on my Oukitel K6000 Pro.  This happens in all versions of Godot I tested and seems to be device specific. I tested with two other phones (Samsung Galaxy S3 and Galaxy J5 Duos) and the issue only occurs on the K6000 Pro.
I am using Godot 2 for my project, so it would be glad it could be fixed there, too. But I tested and uploaded a test project for godot 3 to help fixing the issue on the current version.
Steps to reproduce:

Set up a basic project
Add a directional Light, a Sprite3D and some object to cast a shadow on.
Set the "alpha_cut" of the sprite to "Opaque Prepass"

Minimal reproduction project:

Godot2: Sprite3DShadowTest_Godot2.zip
Godot3: Sprite3DShadowTest_Godot3.zip
Screenshots Godot2 Project
Oukitel:

Other devices:

Screenshots Godot3 Project
Oukitel:

Other devices:

Try removing Mali from here

Thank you for the tip Noshyaar, unfortunately it didn't work. I also tried removing the other two vendors, just in case, but no difference.

Neither in Godot 3.2.3 stable nor 3.2.4 beta1 (Win64 with dedicated Nvidea graphics) Sprite3D shadows appear unless the alpha_cut flag is set to "Opaque Pre-Pass". In which case there transparency is not taken into account.


⚠ Bofrost.es has degraded performance

In 3e6b19a, Bofrost.es (https://www.bofrost.es) experienced degraded performance:

HTTP code: 200
Response time: 1606 ms

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


Use std:function instead of function pointers for callbacks

It gives callee more freedom on what callback data the can use. They could pass in plain old function pointer if desired, or create a function object via a lambda.

I need to make some tests about possible overhead that can std::function make, but in general you are right.

I need to make some tests about possible overhead that can std::function make, but in general you are right.

It depends on how they're created, but good point. In theory they will heap allocated when capturing data, but I know at least GCC has small function optimization and doesn't allocate when capturing less than three sizeof(void *) worth of data.


Remove server-subscription-access-read

This requirement will prohibit use cases categorically requiring notifications about resources that do not require clients to have read access on the resource.
Systems may want to enable clients to be notified when a specific resource is created or access controls on the resource are changed. That is orthogonal to systems disallowing subscriptions to a specific resource (which may or may not have a representation), for any reason (at any time), including those in which the client does not have read access to the resource.
Systems may want to advertise and apply subscription policies.

Merged as ACTION of https://github.com/solid/notifications-panel/blob/main/meetings/2022-08-25.md#remove-server-subscription-access-read


Add Bulk approve and deny buttons to unapproved list

This is a quick mockup of what that might look like, I see that some loops might appreciate this.
These 👍 👎 icons could also be added to the buttons in the list to make it more clear.
Thoughts?

@paloeka What are your thoughts on this?

Thank you for this option. I think it is a great idea.
I can see host who would like this and use it.
I have a few thoughts:

only Approve All makes sense. The thumbs down button doesn't, as that is the current state
If the thumbs down button is to deny all: I don't like that, as it does not give a reason per participant. The extra amount of effort to deny per participant is okay. The thumbs down button is also able to create more anxiety for a host. This anxiety is in that that they will have the possibility to deny all users. And thus remove all new participants. This added anxiety could lead to a lesser use of the approve all users. (people are afraid to click the wrong button). Extra steps, like 'are you sure' or give reason, could maybe help. But host don't know about these extra steps beforehand.
Let the text in the button say "Approve All" (add space and double capital)

@paloeka As most people use a mobile phone I think it's best to use a checkbox with a bulk approve/deny, do you agree?

@lil5 for a bulk approve a checkbox is not necessary. It is really that all participants get approved for the Loop at the same time. So only a button on top, that would also work well for phones I imagine, that let all awaiting participants get approved simultaneously


Inconsistency with paper

In the paper it is mentioned that during the modular training, we obtain the hybrid network by replacing a module in the meta model with the corresponding module of the target model, and then fixing the other modules. (see below)

On the other hand, in the main.py script, during modular training, you only freeze the weights of the meta modules that are before the target module.

I'm curious, the results reported in the paper were obtained with which of the two formulations (in modular training: freezing only meta modules before the target module, or all the meta modules)? Also, have you tested both alternatives in your experiments?

Ah, never mind. You only pass the target module parameters to the optimizer, so it's fine.


In routers we're still using name solutions but its changed to applications

Screencast from 01-08-2024 01:50:45 PM.webm

also should be changes in second navbar inside virtual machines and orchestration.

env used : devnet
version : 21ef1d6
verified

the routers is using the right name now

Verified:

Devnet
b43ea4c


Allow passing dataclass kwargs to the underlying dataclass

Feature Request Type

[ ] Core functionality
[x] Alteration (enhancement/optimization) of existing feature(s)
[ ] New behavior

Description
Currently _wrap_dataclass doesn't allow setting kwargs to the dataclass it creates. This leads to the creation (among other things) of a __repr__ method, which may not be desired.
Case in point, I have classes that are SQLAlchemy models and wrapped with type and who inherits a generic __repr__.
However, the underlying dataclass creates a new __repr__ method which makes me load all my attributes. (Which is obviously undesired).

Are you using sqlalchemy dataclasses integration and wrapping it in a strawberry.type? I'd still have two separate models here 🤔

We're still on SQLAlchemy 1.4 for now.
Having two models means having to maintain both and needing a way to go from one to the other.
It's also easy to modify a SQLAlchemy model and forget to update the schema model in turn.
We worked with two models for a while and for now we believe having a single unified model will be easier. We'll see down the line.

Your database model and graphql schema are different entities and shouldn't directly depend on each other 🤔
It's easy for an opposite situation to occur: You can add a private field to your class and it would be automatically exposed in your schema.
You also lose a lot of flexibility in how you can map your db models to strawberry types.
I usually do something like this:
class DbModel(Base):
    ...

@strawerry.type
class StrawberryType:
    id: strawberry.ID
    name: str
    price: int

    @classmethod
    def from_orm(cls, model: DbModel) -> Self:
        return cls(
            id=strawberry.ID(str(model.id)),
            name=model.name,
            price=model.price,
        )

This way you can map your models however you want, and your graphql models are explicitly defined.
To summarize: I think having one entity handle multiple concerns like database schema and your api's schema is a bad idea.

Here's an example, but it's a bit outdated: https://gitlab.com/manga-microservices/manga/-/blob/main/src/gql/modules/manga/types.py

I appreciate your concern, and I do understand those issues, but from our point of view your way is just too much boilerplate to maintain.
Regardless of our specific usecase, I believe being able to pass kwargs is a good thing :)


[HIP] add cooperative kernel launch APIs on NVCC

I was chatting with Aryan about this: testing on one of my NV boxes shows that (I think) this is missing a #define hipLaunchParams cudaLaunchParams somewhere. Compilation with NVCC would fail with this patch applied to my HIP version because hipLaunchParams was undefined. But I'll admit my NV box has a hacked up ROCm 3.1, so I may be missing another patch somewhere.


[Datepicker]: Option "showButtonBar" is missing

Bug description:
I just upgraded from 1.1 -> 1.3 and "showButtonBar" has been removed from the code and API doc so I cannot hide the bottom bar anymore.
Is this a bug or a feature?

It does still seem to be an option on datepicker-popup.
Here is a working plunker. Check out the first datepicker.
If I'm not mistaking the datepicker does not have the buttons built into it, and that is why that option is not needed. I will let @icfantv or @wesleycho speak to that better.

@deeg You are correct, the button bar is not part of the datepicker directive, just the datepicker-popup directive.


Fix CI Run

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@baec439). Click here to learn what that means.
Patch has no changes to coverable lines.

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff            @@
##             master     #172   +/-   ##
=========================================
  Coverage          ?   11.73%
  Complexity        ?      146
=========================================
  Files             ?      159
  Lines             ?     3450
  Branches          ?      405
=========================================
  Hits              ?      405
  Misses            ?     2993
  Partials          ?       52

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


"The domain url provided could not be reached" when creating a publisher - https://buttonwood.com.au

I have confirmed that a HEAD request returns 200 using both Postman and curl:
Curl
$ curl -X HEAD -I --max-redirs 0 https://buttonwood.com.au   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current                                  Dload  Upload   Total   Spent    Left  Speed   0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0HTTP/2 200 server: nginx date: Wed, 24 May 2023 00:03:02 GMT content-type: text/html; charset=UTF-8 x-sucuri-id: 18040 x-xss-protection: 1; mode=block x-frame-options: SAMEORIGIN x-content-type-options: nosniff content-security-policy: upgrade-insecure-requests; surrogate-key: front post-2 post-user-1 single link: <https://buttonwood.com.au/wp-json/>; rel="https://api.w.org/", <https://buttonwood.com.au/>; rel=shortlink x-sucuri-cache: HIT
Postman

But I am still unable to save a new publisher. Could there be anything else that is causing this error?

One day, this issue will be solved. (I am suffering the same issue)

@davidbairdala Hi David, our apologies for taking so long to get back to you.
It looks like the servers backing 'https://buttonwood.com.au' return an HTTP 403 Forbidden error for HEAD requests in some cases. When I tried to repro the issue using 'curl' and 'Postman', I saw that the servers return a 200 OK response either when there is no 'User-Agent' specified in the headers, or when the 'Accept' or 'Accept-Encoding' headers are included with it.
Our system sends this HEAD request with a 'User-Agent' header included ("User-Agent: VSMarketplace/1.0"), but no 'Accept' or 'Accept-Encoding' headers. When I tried to mimic this using curl and Postman, it returns a 403. You can see this too with:
curl -X HEAD -I --max-redirs 0 https://buttonwood.com.au -H "Accept:" -H "Accept-Encoding:" -H "User-Agent: VSMarketplace/1.0". It looks like there might be an access/permissions issue with this domain. Can you please let me know if this might be the issue?

@Chizaruu Can you please let me know the domain you are facing this issue with? It might be a similar problem for your domain as well. I can try to look into it for you.

@Chizaruu Can you please let me know the domain you are facing this issue with? It might be a similar problem for your domain as well. I can try to look into it for you.

https://www.koalahollow.com/
https://koalahollow.com/

@Chizaruu I tried sending HEAD requests to these domains, but I get a 500 Internal Server Error when I try that. You can see this with:
curl -X HEAD -I https://www.koalahollow.com
or
curl -X HEAD -I https://www.koalahollow.com -H "Accept:" -H "Accept-Encoding:" -H "User-Agent: VSMarketplace/1.0"
This usually means there's a problem with the domain servers, permissions-related or otherwise. Without a more specific 5xx error code, it's difficult to diagnose where this error is coming from. Do you get 500 errors when you try sending a HEAD request to these domains too?

Thanks @advay26 I can reproduce the 403 error from our domain when attempting a HEAD request with no "Accept" header. This server is hosted by a third party, but I will see what can be done about allowing these requests through.

Just as an aside @advay26, is there any particular reason why the Accept header is omitted from the domain verification request? I understand that the Accept header is not mandatory, but it seems to be that at least some admins configure a 403 rule in their web servers for missing Accept headers in an attempt to block non-compliant crawlers and bots. (See https://serverfault.com/questions/795249/nginx-config-should-i-deny-requests-that-are-missing-the-accept-header).
So on the one hand, yes, it's a HEAD request, and no response body is expected, but on the other hand, the HEAD request is supposed to simulate the GET request in all other respects, other than not returning a body, so it could be argued that it should have an Accept header. My two cents worth...

@davidbairdala Thanks for bringing that to our attention. I'm not sure if there was a conscious decision behind us not including an 'Accept' header, but I'll bring this to my team's attention, and we'll consider your suggestion. Thank you for your feedback!
I don't think we'll be able to address this anytime soon, so we'll need to find another workaround for your domain here for now. Please let us know if you're able to find a solution with your server host.

Just for some additional context, the response to the HEAD request that returns the 403 error contains headers that indicate that our hosting provider is using Sucuri "Website firewall", which I guess is something similar to mod-security. The requests are being blocked by a "DDOS22" rule, the description of which can be found here: https://labs.sucuri.net/signatures/waf/ddos22-ddos-attempt-blocked/. I mention this only for posterity, and to add further weight to the idea that these HEAD requests should really include an Accept header.
As it turns out, we were not successful in convincing our hosting provider to relax these rules for the purposes of domain verification, so we worked around it by spinning up a temporary vanilla NGNIX instance that redirected everything other than HEAD requests to our production website and then pointed the DNS record for our domain to this server. The domain check has now passed and we have moved on to the next step in the process (awaiting manual approval, I think).

Thanks for the update and the additional context @davidbairdala. I took your recommendation to the team, and we agreed that we should be including an 'Accept' header in these HEAD requests and have now added that task to our backlog. I'm not sure exactly when we'll get to it, but this is something we intend to address soon. Thank you for providing valuable feedback!

I will go ahead and close this GitHub issue unless you have further questions. We have a tracking item for including an 'Accept' header with our HEAD requests, and I will try to provide an update here when we make progress on that item. Please feel free to reach out with any questions.


Code and results for QuantumNAT missing

On the https://qmlsys.mit.edu page, the link to the source code for QuantumNAT directs to https://github.com/mit-han-lab/torchquantum.
I tried searching for the files in the repo manually, but I'm unable to find the .py.

Yes, I found QuantumNAS. However, I was referring to QuantumNAT (the one with the noisy gates added), not QuantumNAS. Is there your source code for this? @Hanrui-Wang

Hi Colin,
The .py files for QuantumNAS is available, for example, we can run python examples/train.py examples/configs/mnist/four0123/train/super/u3cu3_s0/plain/blk8s1.1.1.yml for the experiments.
For QuantumNAT, we are still working on a cleaner version of the code and will put that in the example folder. I will notify you as soon as it is ready (probably within 1~2 weeks).
In the meanwhile, if you have any questions, we are also happy to answer. Thanks!


[regression]last deletion of mapping is ignored before exporting

create a data mapping with 4 mappings
delete 3 of them
click on export
then click on import
--> the last deleted one is back

tested with 1.42.10

Note that 1.42.10 doesn't contain any fixes we did recently. We can close as "wontfix" if it doesn't reproduce on master.

are you sure you're importing the file you just exported?

yes sure, I was giving a specific name and I got a "are you sure to replace?" dialog when saving.

your 4 mappings are 4 independent mappings not a single compound mapping with 4 fields, correct?

right, the 4 mappings are independent

Note that 1.42.10 doesn't contain any fixes we did recently. We can close as "wontfix" if it doesn't reproduce on master.

when will be the next release based on master?
We are currently based on 1.42.5. So regression is between 1.42.5 and 1.42.9. As this is a part of the  basic path when doing development in VS Code, we cannot upgrade to a version with this problem.
I will try to reproduce with master and the different versions.


replace FlexBox with Box.Flex

Linked issue
Resolves: #1271
What kind of change does this PR introduce?

[x] Refactor

Thank you! Please sign off your commits as described here: https://github.com/Aiven-Open/klaw/blob/main/CONTRIBUTING.md#how-to-sign-off-commits

@dotarjun the CI checks are failing because of incorrect Prettier formatting. You can fix it by running
pnpm lint

🎉🎊


EXC_BAD_ACCESS when calling customViewName.didScroll() in scrollViewDidScroll

collectionView here is the outlet of scaling carousel in my controller

This error code usually means we are trying to access something which has already been deallocated.
As a starting point, try the debugging tips outlined here - https://code.tutsplus.com/tutorials/what-is-exc_bad_access-and-how-to-debug-it--cms-24544

Cannot reproduce


Update Content system with async methods

While I wrote this I noticed that the Serializer class is only used once in the project (not anymore), I didn't want to remove it as it is probably used in some games?
I am not sure if this code is really used, is that something we can remove?
Settings.LoadingEmbeddedFont = true;
Global.SerializerPathHint = "";

(the LoadFontAsync method is probably a bad idea...)

Closing this for now @erictuvesson time to start working on v9 redesign 😄


Questions about setting

Thank you very much for your work. However, I still couldn't determine from the documentation how exactly to configure and execute the client. I have a few questions:

Do I need to use Xsens's router to put the Windows server and Linux client in the same LAN?
What else needs to be configured on the Linux client? How can the visualization in RViz be achieved as shown in the paper?

Hi @jonyzhang2023,
thank you for opening this issue and I'm sorry for the lack of detailed documentation. I updated it (commit d87825c) trying to add information to reply your questions.

Exactly, in our configuration, we are using the Windows machine acting as a server connected to the XSens router and using MVN studio. This last one allows us to stream the data to a Linux client. These two machines have to be in the same LAN.
If the network and the MVN studio configuration are correct, you should be able to launch the client as reported in Usage section of the guide and visualize the topics. RViz should be launched by default.

Thanks again,
Mattia

Thank you for your prompt and accurate response!
I am now able to use the server and client to communicate normally. Additionally, my data and equipment include xsens hand sensors, which adds 40 more links. Have you considered supporting hand data? Alternatively, I could write this part of the code and then submit a PR.

I am glad the updated documentation helped you to fix the communication.
Regarding the hand data support, it would be amazing if you want to participate and create a PR.
In this case, if you agree, I will close this issue, and open a new one for the hand data.

Cool. Thanks for your kindness help!


Try to fix update time null on creating new problems

Users cannot create problems with new IDs now, though it worked a few weeks ago.
Traceback:
ERROR 2020-04-16 18:44:23,169 (log) Internal Server Error: /polygon/problem/create/
Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 71, in execute
    return self.cursor.execute(query, args)
  File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 209, in execute
    res = self._query(query)
  File "/usr/local/lib/python3.7/site-packages/MySQLdb/cursors.py", line 315, in _query
    db.query(q)
  File "/usr/local/lib/python3.7/site-packages/MySQLdb/connections.py", line 239, in query
    _mysql.connection.query(self, query)
MySQLdb._exceptions.OperationalError: (1048, "Column 'update_time' cannot be null")

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.7/site-packages/django/core/handlers/base.py", line 106, in _get_response
    response = middleware_method(request, callback, callback_args, callback_kwargs)
  File "/eoj3/utils/middleware/close_site_middleware.py", line 25, in process_view
    return view_func(request, *view_args, **view_kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py", line 71, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/contrib/auth/mixins.py", line 109, in dispatch
    return super().dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/views/generic/base.py", line 97, in dispatch
    return handler(request, *args, **kwargs)
  File "/eoj3/polygon/problem2/views/base.py", line 101, in post
    problem = Problem.objects.create()
  File "/usr/local/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 422, in create
    obj.save(force_insert=True, using=self.db)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 741, in save
    force_update=force_update, update_fields=update_fields)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 779, in save_base
    force_update, using, update_fields,
  File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 870, in _save_table
    result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/base.py", line 908, in _do_insert
    using=using, raw=raw)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/manager.py", line 82, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/query.py", line 1186, in _insert
    return query.get_compiler(using=using).execute_sql(return_id)
  File "/usr/local/lib/python3.7/site-packages/django/db/models/sql/compiler.py", line 1368, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 67, in execute
    return self._execute_with_wrappers(sql, params, many=False, executor=self._execute)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 76, in _execute_with_wrappers
    return executor(sql, params, many, context)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/utils.py", line 84, in _execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python3.7/site-packages/django/db/backends/mysql/base.py", line 76, in execute
    raise utils.IntegrityError(*tuple(e.args))
django.db.utils.IntegrityError: (1048, "Column 'update_time' cannot be null")

It seems a MySQL issue rather than a Django issue. update_time has auto_now set already, and many tables are using that, but no problems on other tables are reported.
I also tested Problem.objects.create() in Django shell, and it works just fine: a problem succesfully created. The problem is only reproducible from end-user webpage.
Google doesn't seem really helpful on this.
So the temporary solution is to manually and explicity set update_time in our code. We'll see if that works.

Closing this pull request as it looks like a maintainence issue. Reboot to solve.


Selector is not working with attributes

Testcafe has problems when attributes are set into the selector either with a proper one.
example:
select ('[class="tab-pane active "] input[id*=investment-amount]');
Getting:

Selector working properly from chrome console:

Am I setting the attributes in a wrong way?
Is there any way to set the attributes and make it work? I even tried with:

Environment details:

testcafe version:                   1.10.0
node.js version:                    10.22.1
browser name and version: Chrome 87
platform and version:          Windows 10

Hello,
I could not reproduce the error with selectors similar to yours. I guess the problem is not in how you define the selectors. Could you please send us a page address and an example of a test that fails with such an error?

Hi Felis,
I cannot share the page address since is a bank's project, but I can send these images, one of the DOM and the other one of my step definition code:

Thanks in advance.

I'm happy to hear that you figured out how to resolve the issue.


So what's the use case/valid scenario for emergency calling in Teams?

Is there any? The doc just states non-use cases/scenarios when you shouldn't use emergency calling in Teams.

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

ID: f27be4a4-b19d-d7b7-f277-7e0c6f7a05d3
Version Independent ID: 5101bb44-e48b-a125-353e-5783f8b69cb4
Content: Emergency calling terms and conditions - Microsoft Teams
Content Source: Teams/emergency-calling-terms-and-conditions.md
Service: msteams
GitHub Login: @CarolynRowe
Microsoft Alias: crowe

Hi @GiantCrocodile, thank you for your feedback.
For more information about Emergency service, please go to:
https://docs.microsoft.com/microsoftteams/what-are-emergency-locations-addresses-and-call-routing


Pull request from RickyLin - supported "Contains" method of string in Where clause

@anpete

:shipit:

merged


Add Vending Inventory Model

id: int
machine: int
item: int
transaction: id

I will try it

ill try it

will try


[Lesson] 'Exercitii' chapter should be automatically added to the menu if 'withExercises' prop is true

Done!


executeStringAndFetchResultString: can answer extra characters

Reported by @chisandrei.
GciThreadSafeInterface>>executeStringAndFetchResultString: sometimes answers a string with a variable number of extra characters after the correct response.
This method uses GsExternalByteString>>asByteString to construct the result string. This method uses all bytes in the receiver up to the first null, rather than the byte count returned by GciTsExecuteFetchBytes.
I'm working on a fix, which looks relatively simple.

Candidate fix in commit 333e047d.

Seems to test OK, so pushed to development and main.


Should support install any group of plugins

Currently we only provide some options of install all plugins or single plugin. We should support install any group of plugins, e.g. flannel+ calico, weave + calico + romana...
cc @sushanthakumar @satyaranjanp

@m1093782566 , If you are referring to plugins_install.sh, we have added this of late mainly for testing purpose so that test suite(cni-genie_k8s_test.go) can install the plugins to be tested automatically and run E2E cases. If any other perspective, we can discuss on it


Allow customization of thread name prefix

No way to change the thread names from for example:
vert.x-eventloop-thread-0
vert.x-worker-thread-17
It's a minor thing but something equivalent to Thread.setName().

what is the use case ?

several vertx instances ?

Use case is obfuscation. Sometimes one wants to use a technology that one knows is the right one for the job and will yield better results all round. However one frequently runs up against architectural gatekeepers, often with their own agenda, often just ignorant, that insist on doing things another way for no good reason.
Your use-case sounds better though, I didn't think of that one but it might be useful to distinguish in that scenario indeed.


feat: Refactor get public key in didexchange state

closes #416
Signed-off-by: talwinder.kaur<EMAIL_ADDRESS>

@talwinder50 please rebase and update PR & commit title.

I don't think the coverage report is accurate when it says that coverage changed in the legacy authcrypter - reading through the code I don't see any connection with the crypter.


Model not initialized

Hello Robin!
I've been having for a while an issue when importing models. I've found the solution after a few weeks, and I'd like to share my solution. I'm sorry if this is not the place to post it.
My project structure is the following:
models/
  |--index.ts                     // This file contains the sequelize instance
    |--models/
       |--author/                 // Every model has it's own folder
         |--controller.ts
         |--facade.ts
         |--routes.ts
         |--schemas/              // Folder for models definitions
            |--author.model.ts    // Model definition

As you can see, every model has it's own folder, and the model definition is inside a 'schemas' folder inside that folder.
In order to make it work, each class must to be exported as default.
The sequelize instance is declared in the index.ts file:
export const sequelize = new Sequelize(
  {
    name: secrets.dbName,
    dialect: config.common.database.dialect,
    host: secrets.dbHost,
    username: secrets.dbUsername,
    password: secrets.dbPassword,
    logging: false,
    modelMatch: (filename, member) =>
    {
      return filename.substring(0, filename.indexOf('.model')) === member.toLowerCase();
    }
  });

The modelMatch setting was added because of the project structure, but none of the settings are mandatory.
Now, let's see how the models were added. This piece of code is placed next to the sequelize definition:
const models = [];

// This piece of code imports EVERY model declared with the chosen project structure
fs.readdirSync(__dirname + '/models')
  .filter(file =>
  {
    return fs.lstatSync(`${ __dirname }/models/${ file }`).isDirectory();
  })
  .forEach(file =>
  {
    fs.readdirSync(path.join(__dirname, 'models', file, 'schemas'))
      .forEach(schema =>
      {
        if (schema.endsWith('.model.js')) //This is needed to aviod model.js.map files
        {
          const schemaPath = path.join(__dirname, 'models', file, 'schemas', schema);
          let model = require(schemaPath)
          models.push(model.default)
        }
      });
  });

sequelize.addModels(models);

Hope it will be useful for someone in a similar situation!
Thank you Robin for your hard work!

Hey @LeandroDoldan, thanks for sharing your solution. Since modelMatch only works together with modelPaths, have you tried using modelPaths?  I assume for your setup the following config should work as well:
new Sequelize({
    modelPaths: [__dirname + '/relative/path/**/*.model.ts'], // or `.js` depending on whether you're using ts-node or not
    modelMatch: (filename, member) => filename.substring(0, filename.indexOf('.model')) === member.toLowerCase()
  });

(Don't forget adjusting /relative/path)
Hope this helps as well :)

Hello Robin!
I've been having for a while an issue when importing models. I've found the solution after a few weeks, and I'd like to share my solution. I'm sorry if this is not the place to post it.
My project structure is the following:
models/
  |--index.ts                     // This file contains the sequelize instance
    |--models/
       |--author/                 // Every model has it's own folder
         |--controller.ts
         |--facade.ts
         |--routes.ts
         |--schemas/              // Folder for models definitions
            |--author.model.ts    // Model definition

As you can see, every model has it's own folder, and the model definition is inside a 'schemas' folder inside that folder.
In order to make it work, each class must to be exported as default.
The sequelize instance is declared in the index.ts file:
export const sequelize = new Sequelize(
  {
    name: secrets.dbName,
    dialect: config.common.database.dialect,
    host: secrets.dbHost,
    username: secrets.dbUsername,
    password: secrets.dbPassword,
    logging: false,
    modelMatch: (filename, member) =>
    {
      return filename.substring(0, filename.indexOf('.model')) === member.toLowerCase();
    }
  });

The modelMatch setting was added because of the project structure, but none of the settings are mandatory.
Now, let's see how the models were added. This piece of code is placed next to the sequelize definition:
const models = [];

// This piece of code imports EVERY model declared with the chosen project structure
fs.readdirSync(__dirname + '/models')
  .filter(file =>
  {
    return fs.lstatSync(`${ __dirname }/models/${ file }`).isDirectory();
  })
  .forEach(file =>
  {
    fs.readdirSync(path.join(__dirname, 'models', file, 'schemas'))
      .forEach(schema =>
      {
        if (schema.endsWith('.model.js')) //This is needed to aviod model.js.map files
        {
          const schemaPath = path.join(__dirname, 'models', file, 'schemas', schema);
          let model = require(schemaPath)
          models.push(model.default)
        }
      });
  });

sequelize.addModels(models);

Hope it will be useful for someone in a similar situation!
Thank you Robin for your hard work!

thank you
Leandro Doldan


Convert run-checks script into a Rust binary

Pull Request Template
Checklist

[x] Confirm that run-checks.sh has been executed.

Related Issues/PRs
Provide links to relevant issues and dependent PRs.
Changes
This PR converts run-checks script into a Rust binary and replace it in CI. Part of #552
Testing
Run the script locally, please @antimora and @nathanielsimard double-check if it works correctly for you too

Thanks for your review @antimora!

I think we should a simple wrapper script in the root that would compile and execute for all target. This script should work for linux and window (universal script). So I came up quickly with the following. Please add ./run-checks.sh and chmod +x it.

#!/bin/bash
# This section will execute under Unix-like systems
if [ "$(uname)" != "Windows_NT" ]; then
  if [ ! -f ./scripts/run-checks ]; then
    rustc scripts/run-checks.rs --crate-type bin --out-dir scripts
  fi
  ./scripts/run-checks all
  exit
fi

# The following code is for Windows
: <<'WINDOWS_CODE'
@echo off
if not exist scripts\run-checks.exe (
  rustc scripts\run-checks.rs --crate-type bin --out-dir scripts
)
scripts\run-checks.exe all
exit
WINDOWS_CODE

This in theory should work on windows as well.

I think this script should not be necessary because cargo and rustup can be installed on any of the platforms we want to support, so we can directly run run-checks binary. External dependencies, such as lavapipe, will be directly installed on GitHub Actions's virtual machines, while locally, a developer should already have that installed in order to build burn.

2. The print outputs are buffered. I think it's a better user experience if you let the output is displayed right away.

I've used println! to print the Command output on shell. So it's up to the println! macro dealing with all the information in a correct way. Although, it seems it's not possible to have an unbuffered output. We can only print the complete command output in one fell swoop. Is some of you aware of a possible way to do that without adding any dependency?

3. The output does not retain text colors. It was better to see text colors. It's quicker to find out what failed and passed.

Added! It seems it's not possible to do that for rustup since it does not implement a --color=always option.

About the first point I mentioned: on making the process of running checks more user-friendly. Since it's essential for every developer to run these checks with each PR, the current 3-step process (which includes reading the documentation on how to build and run the checks, building them, and then running them) can be a bit cumbersome. So, I'm proposing a one-step solution with ./run-checks.sh. This script will be a straightforward wrapper, designed to work on Linux, Mac, and Windows. It will simplify the workflow. What do you think?

I do not understand quite well your one-step solution, so I'm going to explain my yet-to-implement idea, perhaps it requires your cross-platform script and I can simply missing the point (or more points eh eh).
First of all, let's split the checks in two different environments.
Locally
You are using a specific OS, which could be Linux, MacOS, or Windows (for simplicity, just considering these three for now). You install all external dependencies which allow burn to be run in addition to rust toolchain. Now you can build run-checks.rs. When all of that is ready, you can run run-checks binary without any problem.
Continuous integration
You run all checks on virtual machines with a specific operating system, so you treat each virtual machine as if you were working locally. In this way you just need the run-checks binary to perform checks.
Let me know if there are some problems or flaws in this approach

The use case to which I am referring only relates to users manually executing the checks locally. All remaining cases, including CI, can remain unchanged.
To illustrate this use case, let me provide a before-and-after solution:
Currently:

User wants to submit a PR.
User clones the repo and makes changes.
Runs run-checks.sh to ensure the changes would be acceptable by CI.
Submits a PR, indicating that run-checks.sh passed.

With the new version:

User wants to submit a PR.
User clones the repo and makes changes.
User looks up README.md on how to run the checks.
Executes rustc scripts/run-checks.rs --crate-type bin --out-dir scripts.
Runs ./scripts/run-checks.
Submits a PR.

Admittedly, once the user compiles and knows what to do next time, it becomes easier. But I am worried about added friction. Also, with the new version, we need to account for an edge case that occurred to me: scripts/run-checks.rs is updated, but ./scripts/run-checks is outdated.
This compilation step is now required, and it's fine (because the script logic is cross-platform thanks to Rust). However, to make things easy for end users, we should have some sort of bootstrap script. This bootstrap script will remain minimal and not contain any logic.
In my above bootstrap script example, it was meant to be used for multiple OSes. But I think for Windows, one will still need a Linux subsystem. So to make sure the script can be executed for sure on Windows, Mac, and Linux, we will probably need two minimal bootstrap scripts:
run-checks.bat file:
rustc scripts\run-checks.rs --crate-type bin --out-dir scripts
scripts\run-checks.exe

run-checks.sh file:
rustc scripts\run-checks.rs --crate-type bin --out-dir scripts
scripts\run-checks

Thanks a lot @antimora for your detailed explanation and this piece of documentation! Now I can clearly see the problem and I agree with you.
I would only replace the bat script with a Powershell script which is now the default shell for Windows

I've used println! to print the Command output on shell. So it's up to the println! macro dealing with all the information in a correct way. Although, it seems it's not possible to have an unbuffered output. We can only print the complete command output in one fell swoop. Is some of you aware of a possible way to do that without adding any dependency?

Yes, there seems to be a way to print the outputs right away. So I checked out your PR locally and tested with the following changes. So instead of capturing the output from the command and printing again, you'll have to instruct to redirect the output the std out and std err out. Here is updated function (you'll have to change other parts accordingly, including rustup):
// Define and run a cargo command
fn run_cargo(command: &str, first_params: &[&str], second_params: &[&str], error: &str) {
    // Print cargo command
    println!(
        "\ncargo {} {} {}\n",
        command,
        first_params.join(" "),
        second_params.join(" ")
    );

    // Run cargo
    let mut child = Command::new("cargo")
        .arg(command)
        .args(first_params)
        .args(second_params)
        .stdout(Stdio::inherit()) // Send stdout directly to terminal
        .stderr(Stdio::inherit()) // Send stderr directly to terminal
        .spawn()
        .expect(error);

    // Wait for the command to finish
    let status = child.wait().expect("Failed to wait for child process");

    // Handle the exit status as you wish
    if !status.success() {
        std::process::exit(status.code().unwrap_or(1));
    }
}

I would recommend removing stdout_and_stderr_write function.

I've used println! to print the Command output on shell. So it's up to the println! macro dealing with all the information in a correct way. Although, it seems it's not possible to have an unbuffered output. We can only print the complete command output in one fell swoop. Is some of you aware of a possible way to do that without adding any dependency?

Yes, there seems to be a way to print the outputs right away. So I checked out your PR locally and tested with the following changes. So instead of capturing the output from the command and printing again, you'll have to instruct to redirect the output the std out and std err out. Here is updated function (you'll have to change other parts accordingly, including rustup):
// Define and run a cargo command
fn run_cargo(command: &str, first_params: &[&str], second_params: &[&str], error: &str) {
    // Print cargo command
    println!(
        "\ncargo {} {} {}\n",
        command,
        first_params.join(" "),
        second_params.join(" ")
    );

    // Run cargo
    let mut child = Command::new("cargo")
        .arg(command)
        .args(first_params)
        .args(second_params)
        .stdout(Stdio::inherit()) // Send stdout directly to terminal
        .stderr(Stdio::inherit()) // Send stderr directly to terminal
        .spawn()
        .expect(error);

    // Wait for the command to finish
    let status = child.wait().expect("Failed to wait for child process");

    // Handle the exit status as you wish
    if !status.success() {
        std::process::exit(status.code().unwrap_or(1));
    }
}

I would recommend removing stdout_and_stderr_write function.

Thank you! I had seen and tried that method before, but for some reasons it didn't work, but let me try again. Does that method print a colored output or it's just a pipe towards stdout and stderr?

@Luni-4 Once @antimora approves this PR, we can probably merge it! Thanks @antimora for reviewing and giving constructive feedback 🙏

Thanks to both of you for the detailed review and help! :smiley:


Updated SiteIds for Search-UnifiedAuditLog as per PM request

Docs Build status updates of commit 16060c1:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/Search-UnifiedAuditLog.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


use webpack to build has an error

I use the vue-cli to create my project.
And then use this vue-filter extend
when I in dev  every thing is OK, but when I run build there was an ERROR

ERROR in static\app.e55444684b9e665f7a8f.js from UglifyJs
Unexpected token: operator (>) [./~/.npminstall/vue-filter/0.1.1/vue-filter/vue-filter.js:243,0]

@deboyblog last time after I update this project, I forget publish it on to npm .sorry about that .  If you install it use npm install there will be some error happen. You can install it again now, I have publish the latest version on npm.


componentWillMount has been deemed unsafe with React 16.3, could you please update the readme example to reflect that?

Thanks!

Thank you for noticing! This is fixed


Simple button to switch back to classic notebook

Problem
Retrolab is a great alternative to classic notebook, but bugs will still be found. To ease worries about exposing students to these bugs, having a simple way to switch to classic notebook (without having to fiddle with the URL) would be great.
Proposed Solution
A built in toolbar button that lets you switch to classic. This could also switch to lab if needed.

Thanks @yuvipanda.
Would having the same "Launch Classic Notebook" menu entry as in JupyterLab work?

@jtpio yes! Just on the menubar?

@jtpio hmm, so it doesn't seem to open to the currently open notebook - just generically opens classic notebook. Since we have current context, I think we can do better.

So we can probably add a new plugin to RetroLab for this then.
There is already a plugin to do something similar (installed as a lab extension), but to go from JupyterLab to RetroLab:

https://github.com/jupyterlab/retrolab/blob/0f7c026472e64b9f9073cce47a00c072d6a84af5/packages/lab-extension/src/index.ts#L104-L115


Stop FXGL.loopBGM();

Hello @AlmasB
How can I stop a FXGL.loopBGM(); on any given time?
Or in alternative use getAudioPlayer():
Music music = new Music("game.wav"); // Constructor undefined
FXGL.getAudioPlayer().loopMusic(music);
....
FXGL.getAudioPlayer().stopMusic(music);
Using version 11.5
Thanks
Keep up the good work

Just figure it out:
String gameSong = new String("game.wav");
Music gameMusic = FXGL.getAssetLoader().loadMusic(gameSong);
FXGL.getAudioPlayer().loopMusic(Constants.menuMusic);
...
FXGL.getAudioPlayer().stopMusic(Constants.gameMusic);

Hi, yes, your 2nd post should do it.


feature(integration): Add dbt cloud quickstart

Summary
New quickstart for dbt Cloud.
Dbt is a data transformation tool that comes in both cloud and open source versions. It is used by many companies in analytics and data engineering. This quickstart walks through the process of installing, configuring, and running an Airflow DAG that collects metadata from dbt Cloud and sends it to NR1. The quickstart includes a dashboard and alerts.
The github repo is publicly available, but the documentation PR has not been merged yet. We have a commitment to have it published by Thursday June, 27. Can this quickstart be published at the same time?

Pre merge checklist

[x] Did you check you NRQL syntax? - Does it work?
[x] Did you include a Data source and Documentation reference?
[ ] Are all documentation links publicly accessible?
[x] Did you check your descriptive content for voice and tone?
[x] Did you check your descriptive content for spelling and grammar errors?
[x] Did you review your content with a subject matter expert? (e.g. a Browser agent quickstart is reviewed with a member of the Browser Agent team)

Dashboards

[x] Does the PR contain a screenshot for each of your dashboards?
[x] Do your screenshots show data?
[x] Has the sanitization script been run on each dashboard?

Alerts

[x] Did you check that your alerts actually work?

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@sjyothi54 @mdumpati I updated for all the comments and also updated the documentation links.

Raised new PR for dbt cloud integration:https://github.com/newrelic/newrelic-quickstarts/pull/2456, hence closing this PR


Grad scaler not in train state

Grad scaler factor needs to be saved in train state for proper reloading.

close as we don't plan to support fp16.


add mocker_data of application

Add mocker_data of application and then the machine learning part could use it and project data to construct data to insert into Candidate table.


So - "shortly" took longer than expected but the fix for this has just been released on PyPI in version 0.1.3.


[migration from cim2] migrate exercises

Migrate exercises from summer 2021 from https://github.com/compstat-lmu/lecture_cim2

transfer in structure of lecture_i2ml repo, including the exercises collections per chapter
make a new header for sl in w2122

 Migrate exercises from David ss2021


rename DateFormat to DateTimeFormat

This issue was originally filed by @seaneagan

... since Date was renamed to DateTime.  DateFormat would be confusing once we get a Date class.

This issue has been moved to dart-lang/intl#18.


Mail encoding broken when using PGP

Expected behavior
The mail text send using PGP should contain special (non-ascii)  characters like Ä ü ß
Actual behavior
Special char are removed or broken - payload (the conent of the mail) get corrupted
Steps to reproduce

receive a PGP - encoded mail
answer and have non-ASCII chars inside

Environment
K-9 Mail version:
5.202
Android version:
6.01
Account type (IMAP, POP3, WebDAV/Exchange):
IMAP

Is this for signed, or encrypted mails?

Encrypted mails

Just tested, works for me. Was it sent from K-9, or a different client? I'm grateful that you take the time to report an issue, but please try to be more detailed in your report. Playing twenty-one questions is really not a good use of my time when I could be fixing bugs instead.

Of course it was sent from K9 and not from any other client. See attached Screenshot where the recipient confirms that my mails come broken. Feel free to send me a PM to exchange keys and test

Sure, we can do that -><EMAIL_ADDRESS>

Thanks for testing this. As it works with K9 and KMail, it finally looks like an issue in the other mail client. Therefore closing.


Some test cleanup for flutter_tools.

Re-enable the devtools test on Windows.
Removing lots of timeouts that are redundant now that we have a
global timeout of fifteen minutes.
Add some annotations to intentionally skipped tests and test files
that intentionally require tests to run in a particular order.

Closes https://github.com/flutter/flutter/issues/87924.
May close https://github.com/flutter/flutter/issues/81486.

cc @christopherfujino


Listing for Encoding Confusing

Testing #34769
The file encosing list helps me understand the options we include but the values in the list do not match the encoding strings...

A list like the file list would be better I think where the values in brackets are the actual setting values

Now doing this:


Update moses.lua

if-statement is not required inside for-loop

cheers

Thanks, @CAAP . It has been merged.


[MINOR][ZEPPELIN-2308] Fix vis icon button group

What is this PR for?
Since "Save" button which shows up when there is change in the package bundle ordering is included in same button group with other Helium viz icon buttons, the rightmost viz icon is not regarded as last child. For this reason, its border radius is a bit wired.

So I separated "Save" button from the icon btn group.
What type of PR is it?
Improvement
What is the Jira issue?
ZEPPELIN-2308
Screenshots (if appropriate)

Before

After

Questions:

Does the licenses files need update? no
Is there breaking changes for older versions? no
Does this needs documentation? no

LGTM

@Leemoonsoo Thanks!
Merge into master and branch-0.7 if there are no more comments.


[$500] Android-Fab-App crashes tapping on Send message and Inviting WS members

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: 1.3.84-0
Reproducible in staging?: Y
Reproducible in production?: N
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause-Internal Team
Slack conversation: @
Action Performed:

Launch app
Tap fab
Tap Send message (first crash)
Again launch app
Tap profile icon
Tap Workspaces
Tap on a Workspace
Tap Members
Tap Invite
Select any members
Tap next (second crash)

Expected Result:
App must not crash tapping on Send message.
After app crashes, if user relaunches the app and invite Workspace members, app again must not crash when user select Workspace members and tap next.
Actual Result:
App crashes tapping on Send message.
After app crashes, if user relaunches the app and invite Workspace members, app again crashes when user select Workspace members and tap next.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos

Android: Native
https://github.com/Expensify/App/assets/115492554/f0792b17-c738-47ce-a469-07316a22a6c9
https://github.com/Expensify/App/assets/115492554/dff2cb77-799d-418f-a37d-69020a2b916a
utest-dl.s3.amazonaws.com_12102_26469_432782_6236817_bugAttachment_Bug6236817_1697277116565%21second_WS_crash.txt_X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20231014T143724Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Creden.txt
utest-dl.s3.amazonaws.com_12102_26469_432782_6236817_bugAttachment_Bug6236817_1697275426784%21send_crash.txt_X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20231014T143704Z&X-Amz-SignedHeaders=host&X-Amz-Expires=86400&X-Amz-Credential=.txt

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01bff5eb80d1076d82
Upwork Job ID:<PHONE_NUMBER>936035328
Last Price Increase: 2023-10-14

:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open StagingDeployCash deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:

Identify the pull request that introduced this issue and revert it.
Find someone who can quickly fix the issue.
Fix the issue yourself.

Yep this flow is also fixed with that PR


internal/add MP to the PR template

Miska is not in the PR template she cannot report time on the PR

Done.
Tested in https://github.com/dataquest-dev/DSpace/pull/137 and https://github.com/dataquest-dev/dspace-angular/pull/88
Please delete those PRs and branches after approving.

Done


[9.x] Respect the visibility of the local driver

When uploading files, the permissions of the directory to be created have changed after updating to laravel 9.x.
I'm setting visibility to public.
I assume this is a bug.

I was not so sure how to make tests, so I didn't.

Feel free to mark as ready when done.

I've added a new directory_visibility as well that can be used to fine-grain permissions for directories if people want that. This PR will still make it so it's BC with Laravel 8.


Make builders optional

Reduces build time by ~22% in my environment.
I don't know if we should actually merge this as-is, since builders are such an important correctness helper. However, it's strong evidence that reducing the amount of builder code, e.g. as discussed in https://github.com/MaikKlein/ash/issues/441, could have a large benefit.

I'd like to see an option that has the builder methods fused onto the native structs. The methods are helpful but the builder structs themselves are not. I did an experiment in #286 to try out two scenarios: (1) remove the builders entirely and (2) remove only the lifetime from the builders. The lifetimes in the builders are what causes them to compile so slowly, and add little value since build() discards the lifetime anyway. The builder methods only add about 0.5 seconds to the build. This resulted in a great debate around the safety of build() and I ultimately dropped the issue and moved on.
However, if we're now entertaining the idea of making an option to remove the builders, we should move the builder methods to the native structs. The compile time is only increased slightly.

The builder methods only add about 0.5 seconds to the build

What is that in relative terms, for a clean build? Hard to generalize an absolute change between environments.

[lifetimes] little value since build() discards the lifetime anyway.

To the contrary, the lifetimes are the most valuable part. The trick is that you should almost never have to call build, due to the Deref impls, and the rare exceptions can be kept lexically inside a Vulkan call.
The plan we discussed in #441 was to move the lifetimes, along with the setter methods, into the Vulkan structs/calls themselves. If that still leaves a lot of buildtime on the table, that's unfortunate... dropping lifetimes entirely will certainly lead to more people shooting themselves in the foot, but perhaps there's a finite amount of buildtime that's worth trading off against.

To the contrary, the lifetimes are the most valuable part. The trick is that you should almost never have to call build

"Almost never" is not the same as "never". The biggest quality-of-life improvement of the builders is when you need pass in a slice of something and this is the use case that requires build(). I really don't want to re-hash that whole discussion again, but the reality is that build() appears to be safe but it is not. It enables you to capture pointers to the stack and reference freed memory. You must heed caution when using it and it should be marked unsafe accordingly. It's not safe if the compiler can't enforce it. There's no precedent for this in the standard library and there have been multiple complaints and discussions both here and on reddit over the years. If I recall correctly, your argument was that calling build() itself cannot directly cause a segfault or UB. However it can absolutely cause that behavior indirectly, as we are essentially performing a transmute.
#441 doesn't work for slices, which makes it a non-starter, IMO.
The following addresses both the compilation slowness and footgun issues, while still keeping the quality-of-life improvements:

Remove the builder structs.
Move the builder methods to the native structs.
Mark any method that erases a lifetime unsafe.

I apologize if my tone comes across as anything but neutral, but I'm frustrated by the fact that this continues to pop up every so often and there has been no willingness to accept the fact that erasing a lifetime is unsafe even if the UB isn't fully expressed until the pointer in question has been dereferenced.

I really don't want to re-hash that whole discussion again

Then I will disregard the following paragraph in which you do so :P

#441 doesn't work for slices, which makes it a non-starter, IMO.

The conclusion of the discussion in #441 included:

moving all setters to the actual Vulkan structs rather than builders

If we then lifetime-qualify the Vulkan structs themselves then there's no need to erase lifetimes at all. If we don't, then that's a big step backwards in static safety checking compared to the currently recommended pattern, which is a shame. I think we should prototype this and get hard numbers for the impact. We've been waiting for @MaikKlein's generator rewrite before diving into that, though that seems to be in limbo at the moment.

moving all setters to the actual Vulkan structs rather than builders

That's what I'm suggesting. But, I don't think it's a good idea to treat the arrays and non-array pointers differently though, and you can't embed a slice into the native struct for the reasons you stated.
However, maybe we could add PhantomData to the end of the struct to hold the lifetime, and keep the pointers as-is for maximal flexibility, transparency, and consistency:
#[repr(C)]
pub struct DeviceCreateInfo<'a> {
    pub s_type: StructureType,
    pub p_next: *const c_void,
    pub flags: DeviceCreateFlags,
    pub queue_create_info_count: u32,
    pub p_queue_create_infos: *const DeviceQueueCreateInfo,
    pub enabled_layer_count: u32,
    pub pp_enabled_layer_names: *const *const c_char,
    pub enabled_extension_count: u32,
    pub pp_enabled_extension_names: *const *const c_char,
    pub p_enabled_features: *const PhysicalDeviceFeatures,
    pub _phantom: PhantomData<&'a ()>,
}

impl<'a> DeviceCreateInfo<'a> {
    pub fn queue_create_infos(mut self, queue_create_infos: &'a [DeviceQueueCreateInfo]) -> Self {
        self.inner.queue_create_info_count = queue_create_infos.len() as _;
        self.inner.p_queue_create_infos = queue_create_infos.as_ptr();
        self
    }
    pub fn enabled_features(mut self, enabled_features: &'a PhysicalDeviceFeatures) -> Self {
        self.inner.p_enabled_features = enabled_features;
        self
    }
}

I like the consistency of that! Probably saves some effort rewriting the types, too.

The other thing to consider is whether or not these should be "pure" builders (e.g. take self) or if we want to make them more like setters (that take &mut self). I think I prefer the "setter" pattern with the descriptors. I'm not sure how much I care about the set_ prefix, but it's something else to consider as well.
let mut create_info = DeviceCreateInfo::default();
create_info.some_hypothetical_field = 42;
create_info.set_queue_create_infos(infos);

My habit is to omit the set_ prefix iff it would be present on ~all methods, since it's not adding information at that point.
I think taking and returning &mut self is a sweet spot:

Repeated calls are concise and convenient
Conditional updates aren't awkward
Vulkan structs are usually passed by reference, so inline use like foo(vk::Bar::default().baz(quux)) should Just Work
Construction for inline use by-value only requires prefixing a single *.

By comparison, taking self by value actually requires slightly more syntax for inline use, and only slightly less for out-of-line definitions.

I tried the same thing as #286 to not generate the builders at all (and replace the few uses in extensions with a p_next: &mut foo as *mut _ as _) on the current master at 675f91e9 with Rust 1.56.1, and it only brings compile time for b -p ash down from 10s to exactly 7.5s (roughly the same ~25% improvement as this PR with the cfg). That's less than the gain I was hoping for, especially with the twitter post from https://github.com/MaikKlein/ash/issues/441#issuecomment-956073795 seemingly punting our compile-time deficit on the builders.
I guess we'll pick up most of that time again when moving the lifetimes and useful builder functions directly into the native structs (in whatever way discussed above), making me curious if we're leaving build-time performance on the table elsewhere.
Fwiw removing all manual modules (mod device, entry, instance, extensions) only brings us down to ~7s, but removing all the generated function bodies that call into the function pointers from the table brings it down again to 6.2-6.4s. Bit inconsistent but that's rather significant if we can change every manual call from device.foo(x, y, z) to (device.foo)(x, y, z)? The only remaining code at this point is the derives on most types, maybe our macros around handles, or the function loaders that are rather significant in size?

Perhaps llvm-lines can help us target what's next. Here's the top output from it:
  Lines          Copies        Function name
  -----          ------        -------------
  264103 (100%)  14260 (100%)  (TOTAL)
   12749 (4.8%)    170 (1.2%)  <*const T as core::fmt::Pointer>::fmt
    5681 (2.2%)    563 (3.9%)  <&T as core::fmt::Debug>::fmt
    4225 (1.6%)      1 (0.0%)  ash::vk::features::DeviceFnV1_0::load
    3745 (1.4%)      1 (0.0%)  ash::vk::const_debugs::<impl core::fmt::Debug for ash::vk::enums::StructureType>::fmt
    3675 (1.4%)     25 (0.2%)  alloc::raw_vec::RawVec<T,A>::allocate_in
    2078 (0.8%)     63 (0.4%)  ash::prelude::<impl ash::vk::enums::Result>::result_with_success
    2045 (0.8%)     17 (0.1%)  ash::prelude::read_into_uninitialized_vector
    1750 (0.7%)     25 (0.2%)  core::alloc::layout::Layout::array
    1705 (0.6%)      1 (0.0%)  ash::vk::const_debugs::<impl core::fmt::Debug for ash::vk::enums::Format>::fmt
    1650 (0.6%)     25 (0.2%)  alloc::raw_vec::RawVec<T,A>::current_memory
    1341 (0.5%)    149 (1.0%)  <*const T as core::fmt::Debug>::fmt
    1256 (0.5%)      8 (0.1%)  alloc::raw_vec::RawVec<T,A>::grow_amortized
    1237 (0.5%)     15 (0.1%)  core::fmt::builders::DebugList::entries
    1224 (0.5%)    153 (1.1%)  core::slice::<impl [T]>::as_ptr
    1035 (0.4%)     74 (0.5%)  core::intrinsics::write_bytes

Dropping all the debug implementations nets us another ~20-25% - together with the full builder removal it's down from 10s to just about 5s on my machine.
Perhaps a good idea to move that all behind a #[cfg_attr(debug, derive(Debug))] etc for the cases where it is useful?

i.e. https://github.com/MaikKlein/ash/pull/482?

https://github.com/MaikKlein/ash/pull/602 drafts folding things together. Currently setters are all by-value just because that was the easiest place to start.

@Ralith Do you want to keep this open or shall we aim for landing #602 followed by prototyping the removal of trivial setters as proposed in #441?

Closing in favor of https://github.com/MaikKlein/ash/pull/602.


Loading: Missing overlay block

Detailed description

Describe in detail the issue you're having.

The Loading component should be wrapped in an .bx--loading-overlay block which fades out the content behind the spinner.
https://w3.ibm.com/design/product/components/loading/code

Is this a feature request (new component, new icon), a bug, or a general issue?

Bug

Sorry @cal-smith, I somehow missed the overlay input property


Can't launch wsl

Version
Microsoft Windows [版本 10.0.19044.1415]
WSL Version

[X] WSL 2
[ ] WSL 1

Kernel Version
<IP_ADDRESS>
Distro Version
Ubuntu (Default)
Other Software
No response
Repro Steps
Launch WSL
Expected Behavior
Launch WSL normally, and enter unbuntu successfully
Actual Behavior
It notice no VT-X support

But I enable everything

PS: It happends suddenly after reboot windows, I'm sure it worked before 2022 year.
Diagnostic Logs
No response

Identical, absolutely everything

Facing exactly identical situation, I've tried reinstalling the windows and it temporarily solved the problem last night, but this afternoon it happened again.

same issue here: wsl.exe --status (and all other options, docker-desktop(!)) hangs.
cmd.exe /c ver
gives:
Microsoft Windows [Version 10.0.19044.1415]

I find the reason by #4930 , and the solution
Although I can relaunch wsl now, sadly I must reinstall distribution and lost all my data.
Best wishes to all you guys.


Duplicate "Chained Components" in the sidebar of vespa doc

See the screenshot below

Thanks @huihuang01! Addressed in https://github.com/vespa-engine/documentation/pull/162
Keep em coming 👍