The code in the tutorial is not complete and it is not working

The code in this tutorial is not working!
I did what it says in this tutorial and I got the following error in the "Program.cs" at line 15:
var app = new App();
The error is:
Error Code: CS0246
Error Message: The type or namespace name 'App' could not be found (are you missing a using directive or an assembly reference?)
On this page, there is no reference to "Game of Life" source code as I looked up in the web and find nothing.
Please advise.

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

ID: 66853f3d-854e-08ad-84d2-b2a98f88c48b
Version Independent ID: 77ea362d-ef46-f426-3d4a-5f99e39ce160
Content: GTK# Platform Setup - Xamarin
Content Source: docs/xamarin-forms/platform/other/gtk.md
Product: xamarin
Technology: xamarin-forms
GitHub Login: @davidbritch
Microsoft Alias: dabritch

Microsoft support for Xamarin will end on May 1, 2024 for all Xamarin SDKs including Xamarin.Forms. In preparation for this, all issues and PRs in this repository are being closed.
.NET MAUI is the replacement for Xamarin.Forms, and it's documentation can be found here.


Project Status

Is this project abandoned?

apparently so

:(

If anyone cares, either in this thread or in the future I just made a working fork of this project, and I plan to maintain it for quite a while.


Properly handle user supplied nil value in Config.read

The default value of false doesn't override an expicitly passed in nil value, such as when running bundle exec rake eslint:print_config without any arguments. As a result you get an unexpected ArgumentError.
l think this is actually the intended behavior since prior to #32 a nil value wouldn't raise an error in #initialize and simply be treated as a "false" value whereas now there is an explicit nil check.
Cheers and thanks for the gem,
Matt

Hi @jonkessler any thoughts on this? And again thanks for the gem it has been a nice addition to my CI pipeline.


Shayan/feq 2389/implement auto login to p2p

changes

stringifying accounts object before storing them in localstorage

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 77.767%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
4805

Relevant Lines:
5624

💛  - Coveralls


Since hapi-fhir-validation r5 structure jar seems to be required when profile snapshot generation is done for a r4 context

When updating from hapi-fhir 5.0.2 to 5.1.0 hapi-fhir-validation profile snapshot generation is no longer possible, when the r5 resources are not on the classpath. But when only r4 is needed, the assumption is, that r5 resource jar is not required.
Our code try to generate a Snapshot for a r4 resource (r4 resource jar is on the classpath): new SnapshotGeneratingValidationSupport(fhirContext).generateSnapshot(
Then the following exception occure when update to 5.1.0:
Caused by: java.lang.IllegalStateException: Could not find the HAPI-FHIR structure JAR on the classpath for version R5. Note that as of HAPI-FHIR v0.8, a separate FHIR strcture JAR must be added to your classpath (or project pom.xml if you are using Maven) 	at ca.uhn.fhir.context.FhirContext.<init>(FhirContext.java:172) ~[hapi-fhir-base-5.1.0.jar:?] 	at ca.uhn.fhir.context.FhirContext.<init>(FhirContext.java:164) ~[hapi-fhir-base-5.1.0.jar:?] 	at ca.uhn.fhir.context.FhirContext.forR5(FhirContext.java:1037) ~[hapi-fhir-base-5.1.0.jar:?] 	at org.hl7.fhir.common.hapi.validation.validator.VersionSpecificWorkerContextWrapper.<clinit>(VersionSpecificWorkerContextWrapper.java:57) ~[hapi-fhir-validation-5.1.0.jar:?] 	at org.hl7.fhir.common.hapi.validation.support.SnapshotGeneratingValidationSupport.generateSnapshot(SnapshotGeneratingValidationSupport.java:102) ~[hapi-fhir-validatjar:?]
The change #1862, implemented with 5.1.0 seems to introduce the issue.
Expected behavior
generateSnapshot can be triggered for a r4 context, without having r5 resource jar on the classpath. If the r5 resource jar is really mandatory, the pom shall declare it as required (currently optional=true).
sidenote:
The exception contain a short type "...FHIR strcture JAR  ...." - character "u" is missing.
Environment (please complete the following information):

HAPI FHIR Version 5.1.0

This is by design. In order to provide the most up-to-date snapshot generator across all FHIR versions, we use a single R5 codebase and convert structures between R5 whatever version is being snapshotted.. This is great for maintainability buit does mean that you are required to have R5 structures on your classpath. Unfortunately I don't see any way around this, so this is a WONTFIX

@jamesagnew : Thank you for clearify this. If the r5 structure jar is required now, does it make sense to remove the "true" in the pom for this dependency?

@Thopap That's a good idea. Doing so now.


Move the community page into the About section.

Since we already have all the community links in the footer, we don't also need to have a Community link in the header. So the community page is now accessible from the About section instead.

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: geeknoid
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS [geeknoid]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment


fix AggregatorFactory.finalizeComputation implementations to be ok with null inputs

AggregatorFactory.finalizeComputation is nullable with nullable input, but some aggregators do not check for this and can explode if the input is null. I think I got them all in this PR.
I did not add unit tests to ensure all of these methods are ok, but tested by hand and the scenario should easily be able to be replicated by using any of the aggs fixed in this PR in a timeseries query with grandTotal enabled and using an out of range interval (so no actual segment data for input) which produces a java.lang.NullPointerException.

LGTM in general. But I had a thought of adding following method to AggregatorFactory
@Nullable
public final Object finalizeComputationWithNull(@Nullable Object object)
{
    return object == null ? null : finalizeComputation(object);
}

and use above in all of druid code instead of finalizeComputation(..) . This would fix the problem for extensions not in druid codebase and also one less thing to worry by future aggregator factory writers.

This would fix the problem for extensions not in druid codebase and also one less thing to worry by future aggregator factory writers.

I considered that as well, but didn't initially make the change because it would be taking a stronger position to mean that aggregators are not allowed to transform a null into a different value when finalizing a computation. My initial commit failed tests because I didn't realize that the cardinality/hyperunique aggregator were doing this in the HyperUniquesAggregatorFactory.estimateCardinality method, because it wasn't marked as nullable so I assumed it was non-null.

I think cardinality/hyperunique behavior also raises another thing to consider, is that maybe we should try to make this behavior consistent for the same types of aggregators, like for example HllSketchAggregatorFactory.finalizeComputation should maybe return 0 instead of null when faced with null to behave the same way. Reasoning this through is maybe a bit more involved than fixing the null pointer exceptions, so it might be better suited to a follow-up PR to try to make similar aggregators behave consistently?

@clintropolis yeah , I forgot that default behavior might be dependent on the aggregation being considered. this PR is fine on its own.


An error occurred: Authorization failed. Please supply a valid authentication key.

Title.
And the Key is 1-1 copied from my account, I only start to ponder about the possibillity that their Servers have some issues, it looks iffy to me when I try to see some pricing stuff on my account, it doesnt load properly and stuff like that?
Does any1 know what this can be??
Thx and
Best regards
Shpendicus

Hi Shpendicus,
I am really sorry for only answering now. Did you find anything out so far? The only two things that I can think of from the top of my head are:

As you said, there was an error provisioning your account, in that case, please contact the customer service of DeepL
Are you using a free or a pro account. If you are using a free account, then you have to specify that in the constructor of the DeepLClient

Please let me know if you figured out what the problem was. If not, then it would be nice if you could send some more information (code, stack trace, etc.).
Best regards
David

Hi Shpendicus,
were you able to fix your problem?

When you use an older .net version you need to add this to your code:
ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls12;

Or it can be added to the library

It seems like this is bad practice to hard-code the security protocol version. Unless there are some really good reasons to do this, I would like to avoid hard-coding it.
Since there has been little activity in this issue in the past few weeks, I will close it for now. If the issue persists, please reopen with more relevant information.


minifb: unsupported on wasm/wasm32

Xmake Version
2.9.5+20241026
Operating System Version and Architecture
Mac Catalina on x86_64
Describe Bug
minifb supports a lot of platforms, including wasm:

Windows
MacOS X
X11 (FreeBSD, Linux, *nix)
Wayland (Linux) [there are some issues]
iOS (beta)
Android (beta)
Web (WASM) (beta)

I noticed miniaudio does not specify supported platforms, which may be a better approach here?
Expected Behavior
I expect it to build for wasm platform.
Project Configuration
add_rules("mode.debug", "mode.release")
add_requires("minifb")
target("null0")
    set_kind("binary")
    add_files("host/src/*.c")
    add_packages("minifb")

Additional Information and Error Logs
➜ xmake f -p wasm

checking for architecture ... wasm32
checking for SDK version of Xcode for macosx (x86_64) ... 14.0
checking for Minimal target version of Xcode for macosx (x86_64) ... 13.7
note: the following packages are unsupported on wasm/wasm32:
  -> minifb 2022.11.12

https://github.com/xmake-io/xmake-repo/pull/5590

I am still getting the same error:
➜ xrepo install --force minifb
note: install or modify (m) these packages (pass -y to skip confirm)?
in xmake-repo:
  -> cmake 3.30.2 [from:minifb]
  -> minifb 2022.11.12
please input: y (y/n/m)
y
  => download https://github.com/Kitware/CMake/releases/download/v3.30.2/cmake-3.30.2-macos-universal.tar.gz .. ok
  => install cmake 3.30.2 .. ok
  => install minifb 2022.11.12 .. ok

➜ xmake f -p wasm
checking for architecture ... wasm32
checking for SDK version of Xcode for macosx (x86_64) ... 14.0
checking for Minimal target version of Xcode for macosx (x86_64) ... 13.7
note: the following packages are unsupported on wasm/wasm32:
  -> minifb 2022.11.12

Try xrepo update-repo

That seemed to update things, but did not install:
xmake f -p wasm
checking for architecture ... wasm32
checking for SDK version of Xcode for macosx (x86_64) ... 14.0
checking for Minimal target version of Xcode for macosx (x86_64) ... 13.7
note: install or modify (m) these packages (pass -y to skip confirm)?
in xmake-repo:
  -> minifb 2023.09.21
  -> miniaudio 0.11.21
please input: y (y/n/m)
y
  => install minifb 2023.09.21 .. failed

emscripten not found!
if you want to get more verbose errors, please see:
  -> /Users/konsumer/.xmake/cache/packages/2410/m/minifb/2023.09.21/installdir.failed/logs/install.txt
  => install miniaudio 0.11.21 .. ok
error: install failed!

➜ emcc -v
emcc (Emscripten gcc/clang-like replacement + linker emulating GNU ld) 3.1.64-git
clang version 19.0.0git
Target: wasm32-unknown-emscripten
Thread model: posix
InstalledDir: /usr/local/Cellar/emscripten/3.1.64/libexec/llvm/bin

The default find emsdk detection based on source . /emsdk_env.sh after setting the EMSDK environment variable, currently the brew emsdk is not supported.
It is recommended to try the official emsdk installation first.
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh

The default find emsdk detection based on source . /emsdk_env.sh after setting the EMSDK environment variable, currently the brew emsdk is not supported.

Hmm, I wonder if it might be better to detect using emcc in path? Also, a fresh project works fine like this. If I add minifb, it fails.
➜ xmake create waasm-tester

create waasm-tester ...
  [+]: xmake.lua
  [+]: src/main.cpp
  [+]: .gitignore
create ok!

➜ cd waasm-tester
➜ xmake f -p wasm

checking for architecture ... wasm32

➜ xmake

[ 50%]: cache compiling.release src/main.cpp
clang: warning: argument unused during compilation: '-c' [-Wunused-command-line-argument]
[ 75%]: linking.release waasm-tester.html
[100%]: build ok, spent 6.782s

@waruqi

it works for me, please add -vD to get verbose logs
ruki-2:xmake-repo ruki$ xmake l scripts/test.lua -vD --shallow -p wasm minifb
{
  "minifb"
}

create test ...
  [+]: xmake.lua
  [+]: src/main.cpp
  [+]: .gitignore
create ok!
/private/var/folders/32/w9cz0y_14hs19lkbs6v6_fm80000gn/T/.xmake501/241031/xmake-repo/test
add local repository(local-repo): /Users/ruki/projects/personal/xmake-repo ok!
local repositories:
    local-repo /Users/ruki/projects/personal/xmake-repo

global repositories:
    build-artifacts https://gitee.com/xmake-mirror/build-artifacts.git main
    xmake-repo https://gitee.com/tboox/xmake-repo.git master
    builtin-repo /Users/ruki/.local/share/xmake/repository

4 repositories were found!
checking for architecture ... wasm32
checking for emsdk directory ... /Users/ruki/Downloads/emsdk
checking for emcc ... /Users/ruki/Downloads/emsdk/upstream/emscripten/emcc
configure
{
    clean = true
    emsdk = /Users/ruki/Downloads/emsdk
    plat = wasm
    proxy_pac = pac.lua
    arch = wasm32
    ndk_stdcxx = true
    kind = static
    mode = release
    buildir = build
    host = macosx
    ccache = true
    network = public
    theme = default
}
checking for git ... /usr/bin/git
/usr/bin/git rev-parse HEAD
checking for gzip ... /usr/bin/gzip
checking for tar ... /usr/bin/tar
/usr/bin/git rev-parse HEAD
checking for SDK version of Xcode for macosx (x86_64) ... 14.0
checking for Minimal target version of Xcode for macosx (x86_64) ... 14.0
checkinfo: cannot runv(zig version), No such file or directory
checking for zig ... no
checkinfo: cannot runv(zig version), No such file or directory
checking for zig ... no
checking for nim ... /usr/local/bin/nim
checking for cmake ... no
checking for cmake ... /usr/local/bin/cmake
checking for ping ... /sbin/ping
pinging the host(github.com) ... 73 ms
/usr/bin/git clone https://github.com/emoon/minifb.git --filter=tree:0 --no-checkout -c core.fsm
onitor=false source.tmp/minifb
Cloning into 'source.tmp/minifb'...
remote: Enumerating objects: 215, done.
remote: Counting objects: 100% (110/110), done.
remote: Compressing objects: 100% (109/109), done.
remote: Total 215 (delta 1), reused 91 (delta 1), pack-reused 105 (from 1)
Receiving objects: 100% (215/215), 60.46 KiB | 848.00 KiB/s, done.
Resolving deltas: 100% (7/7), done.
/usr/bin/git -c core.fsmonitor=false checkout 2ce2449b1bc8d7c6d20c31b86244f1e540f2e788
remote: Enumerating objects: 28, done.
remote: Counting objects: 100% (28/28), done.
remote: Compressing objects: 100% (19/19), done.
remote: Total 28 (delta 0), reused 22 (delta 0), pack-reused 0 (from 0)
Receiving objects: 100% (28/28), 3.71 KiB | 1.24 MiB/s, done.
remote: Enumerating objects: 77, done.
remote: Counting objects: 100% (71/71), done.
remote: Compressing objects: 100% (65/65), done.
remote: Total 77 (delta 10), reused 27 (delta 5), pack-reused 6 (from 1)
Receiving objects: 100% (77/77), 153.96 KiB | 1.26 MiB/s, done.
Resolving deltas: 100% (10/10), done.
Updating files: 100% (77/77), done.
Note: switching to '2ce2449b1bc8d7c6d20c31b86244f1e540f2e788'.

You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.

If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -c with the switch command. Example:

  git switch -c <new-branch-name>

Or undo this operation with:

  git switch -

Turn off this advice by setting config variable advice.detachedHead to false

HEAD is now at 2ce2449 Fix issue #111
  => clone https://github.com/emoon/minifb.git 2023.09.21 .. ok
checking for emcc ... /Users/ruki/Downloads/emsdk/upstream/emscripten/emcc
checking for the c compiler (cc) ... emcc
checking for emcc ...
-- Install configuration: "Release"
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
lib/libminifb.a
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
include/MiniFB.h
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
include/MiniFB_cpp.h
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
include/MiniFB_enums.h
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
include/MiniFB_ios.h
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
lib/cmake/minifb/minifb-config.cmake
-- Installing: /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/
lib/cmake/minifb/minifb-config-release.cmake
finding minifb from xmake ..
checking for xmake::minifb ... minifb 2023.09.21
{
  license = "MIT",
  version = "2023.09.21",
  sysincludedirs = {
    "/Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/include"
  },
  linkdirs = {
    "/Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/lib"
  },
  libfiles = {
    "/Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/lib/libmin
ifb.a"
  },
  static = true,
  links = {
    "minifb"
  }
}

patching /Users/ruki/.xmake/packages/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/lib/pk
gconfig/minifb.pc ..
checking for /Users/ruki/Downloads/emsdk/upstream/emscripten/emcc ... ok
checking for flags (-fPIC) ... ok
> emcc "-fPIC"
> /Users/ruki/Downloads/emsdk/upstream/emscripten/emcc -c -isystem /Users/ruki/.xmake/packages/m
/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/include -o /var/folders/32/w9cz0y_14hs19lkbs
6v6_fm80000gn/T/.xmake501/241031/_08C73D50D908453086DF4F9951104460.o /var/folders/32/w9cz0y_14hs
19lkbs6v6_fm80000gn/T/.xmake501/241031/_E2F545E80F43404C9F31A3736323FCE9.c
checking for flags (-fdiagnostics-color=always) ... ok
> emcc "-fdiagnostics-color=always"
clang: warning: argument unused during compilation: '-c' [-Wunused-command-line-argument]
checking for em++ ... /Users/ruki/Downloads/emsdk/upstream/emscripten/em++
checking for the linker (ld) ... em++
checking for /Users/ruki/Downloads/emsdk/upstream/emscripten/em++ ... ok
checking for flags (-fPIC) ... ok
> em++ "-fPIC"
> /Users/ruki/Downloads/emsdk/upstream/emscripten/em++ -o /var/folders/32/w9cz0y_14hs19lkbs6v6_f
m80000gn/T/.xmake501/241031/_08C73D50D908453086DF4F9951104460.b /var/folders/32/w9cz0y_14hs19lkb
s6v6_fm80000gn/T/.xmake501/241031/_08C73D50D908453086DF4F9951104460.o -L/Users/ruki/.xmake/packa
ges/m/minifb/2023.09.21/3c0a9f808bcd46248fd8f9f9389f09b5/lib -lminifb
> checking for c includes(MiniFB.h)
> checking for c funcs(mfb_update_ex)
> checking for c links(minifb)
> checking for c snippet(has_cfuncs)
  => install minifb 2023.09.21 .. ok

Yep, I am fine with that fix:

I uninstalled brew emscripten, and installed from git, and it seems to work ok


Support "IS TRUE/FALSE" syntax

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
A similar issue regarding "IS NOT TRUE/FALSE" syntax has already been opened (#2265), but it doesn't look like there is support for the "IS TRUE/FALSE" syntax either.
Describe the solution you'd like
Enum datafusion::logical_plan::Expr should include functionality for IsTrue and IsFalse.
Describe alternatives you've considered
None.
Additional context
None.

Looks like there is sqlparser support: https://docs.rs/sqlparser/latest/sqlparser/ast/enum.Expr.html#variant.IsTrue
Added in 0.18.0:  https://github.com/sqlparser-rs/sqlparser-rs/blob/main/CHANGELOG.md#0180-2022-06-06
So this should be a fairly straightforward exercise -- note that IS and = are very subtlety differnt
Since we already have similar semantics for IS with the IS NOT DISTINCT FROM longer form syntax, I think this could potentially simply have the the SQL planner plan
IS <expr>

as
is not distinct from <expr> as 'IS <expr.

Here is what postgres does
psql (14.4)
Type "help" for help.

alamb=# select null = null;
 ?column?
----------

(1 row)

alamb=# select null IS null;
 ?column?
----------
 t
(1 row)

alamb=# select null IS DISTINCT FROM null;
 ?column?
----------
 f
(1 row)

alamb=# select null IS NOT DISTINCT FROM null;
 ?column?
----------
 t
(1 row)

Thanks for the response! I'll start working on this.

@sarahyurick  here is an example of doing something similar for array:
https://github.com/apache/arrow-datafusion/pull/3122/files#diff-c01a34949db6258aa1593f011ecf90f62cbde406acd5cdbf8b9b60b970ace1cfR2372-R2374
        let fun = BuiltinScalarFunction::MakeArray;
        // follow postgres convention and name result "array"
        Ok(Expr::ScalarFunction { fun, args }.alias("array"))

So in other words you can probably do something like (untested):
Ok(binary_expr(left, Operator::IsNotDistinctFrom, right).alias("..."))

https://github.com/apache/arrow-datafusion/blob/ee55d89cbf20f4a6d17fe399c72d60dca6d67912/datafusion/expr/src/operator.rs#L59


Tailwindcss plugins

Hello,
Awesome work Mathias.
Is it possible to implement 3rd party plugins like tailwind-rtl to it?
Cheers

I'm not sure but technically it should work with tailwind plugins.
I've used it with https://github.com/tailwindlabs/tailwindcss-forms
Let me know if you have issue with a plugin


feat: added mock-ibc-connection

…eat/mock-ibc-connection-balanced-test
need to update xcall module## Description
Commit Message
feat: added mock-ibc-connection

see the guidelines for commit messages.
Changelog Entry
version: <log entry>

Checklist

[x] I have performed a self-review of my own code
[ ] I have documented my code in accordance with the documentation guidelines
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have run the unit tests
[ ] I only have one commit (if not, squash them into one commit).
[ ] I have a descriptive commit message that adheres to the commit message guidelines
[ ] I have added version bump label on PR.

Please review the CONTRIBUTING.md file for detailed contributing guidelines.

Codecov Report

Merging #708 (3eedebf) into main (8ae56d3) will decrease coverage by 0.41%.
Report is 50 commits behind head on main.
The diff coverage is n/a.

:exclamation: Current head 3eedebf differs from pull request most recent head 54a9ec3. Consider uploading reports for the commit 54a9ec3 to get more accurate results

Additional details and impacted files

@@             Coverage Diff              @@
##               main     #708      +/-   ##
============================================
- Coverage     69.02%   68.61%   -0.41%
  Complexity      408      408
============================================
  Files           151      153       +2
  Lines         14016    13862     -154
  Branches        294      294
============================================
- Hits           9675     9512     -163
- Misses         4185     4194       +9
  Partials        156      156

Flag
Coverage Δ

rust
66.67% <ø> (-0.51%)
:arrow_down:

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


icon-image loader

The style-spec icon-image is currently exposed as
  public void setIconImage(String value) {
    jsonObject.addProperty("icon-image", value);
  }

We need an easier way to support Android resources, for example by allow setting a drawable, bitmap or resource id. This setup should also take in account to support re-adding the images if a style changes occurs #737.

What would you suggest in the interim? Since IconFactory is deprecated, we haven't been successful in finding another way to set custom icon images.

You add images to your style and create an id for them with:

Style.Builder#withImage or Style#addImage

You can use that id with:

Symbol#setIconImage

@tobrun thanks for the quick reply!!!

Updating here that it might make more sense for people reading this issue to start using the new image missing api from https://github.com/mapbox/mapbox-gl-native/pull/14320. This will land as part of the upcoming v7.4.0 release.

The style-spec icon-image is currently exposed as

  public void setIconImage(String value) {
    jsonObject.addProperty("icon-image", value);
  }

We need an easier way to support Android resources, for example by allow setting a drawable, bitmap or resource id. This setup should also take in account to support re-adding the images if a style changes occurs #737.

@tobrun is there a better way that we could have exposed the icon-image property on Android?

Updating here that it might make more sense for people reading this issue to start using the new image missing api from mapbox/mapbox-gl-native#14320. This will land as part of the upcoming v7.4.0 release.

Interesting, so this means on Android with https://github.com/mapbox/mapbox-plugins-android/pull/1000, it will be easier to add an arbitrary image at runtime than to add a custom sprite uploaded to Studio at runtime?

@chloekraw in https://github.com/mapbox/mapbox-plugins-android/pull/1000 I'm proposing an alternative way of loading the icons. Just call setIconImage(String value) with the name of the resource and it will be automatically loaded for you (this includes reloading it during style changes).

@tobrun ahh, I see! the proposed setIconImage(String value), where "String value" is the name or ID of the icon-image, works for both adding custom sprites to the map and arbitrary images, right?

@tobrun ahh, I see! the proposed setIconImage(String value), where "String value" is the name or ID of the icon-image, works for both adding custom sprites to the map and arbitrary images, right?

correct, first core tries to match this value to an image in the spritesheet. If not found, the plugin will try loading a app resource with the name (fwiw, if no resource is found with that name, we log out message and do not crash the app).

Awesome, thanks @tobrun. That sounds like the ideal developer workflow for using images as icons.


Registering mobile app causes error in person integration

@dshokouhi i get this in the log...
Error handling request
9:58 AM components/person/__init__.py (ERROR)

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_protocol.py", line 418, in start
    resp = await task
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_app.py", line 458, in _handle
    resp = await handler(request)
  File "/usr/local/lib/python3.7/site-packages/aiohttp/web_middlewares.py", line 119, in impl
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/real_ip.py", line 39, in real_ip_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/ban.py", line 72, in ban_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/auth.py", line 135, in auth_middleware
    return await handler(request)
  File "/usr/src/homeassistant/homeassistant/components/http/view.py", line 123, in handle
    result = await result
  File "/usr/src/homeassistant/homeassistant/components/http/data_validator.py", line 50, in wrapper
    result = await method(view, request, *args, **kwargs)
  File "/usr/src/homeassistant/homeassistant/components/mobile_app/http_api.py", line 80, in post
    DOMAIN, data=data, context={"source": "registration"}
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 109, in async_init
    result = await self._async_handle_step(flow, flow.init_step, data)
  File "/usr/src/homeassistant/homeassistant/data_entry_flow.py", line 172, in _async_handle_step
    result: Dict = await getattr(flow, method)(user_input)
  File "/usr/src/homeassistant/homeassistant/components/mobile_app/config_flow.py", line 47, in async_step_registration
    self.hass, user_input[CONF_USER_ID], devt_entry.entity_id
  File "/usr/src/homeassistant/homeassistant/components/person/__init__.py", line 108, in async_add_user_device_tracker
    if device_tracker_entity_id in device_trackers:
TypeError: argument of type 'NoneType' is not iterable

Originally posted by @tbar05 in https://github.com/home-assistant/home-assistant/issues/30565#issuecomment-586015303

@tbar05 and @pangkoksiong, what persons do you have configured and when did you configure them (Home Assistant version). Would you be able to share your <config>/.storage/person file. Especially interested in the "device_trackers" field.

my example as stated below. "device_trackers" is null.
{     "data": {         "persons": [             {                 "device_trackers": null,                 "id": "2be2a63f90e44633befc4aecf271cc3a",                 "name": "admin",                 "user_id": "837df8f9b42246dd993a19e724dabfd4"             }         ]     },     "key": "person",     "version": 1 }

The error went away after updating the "Track Device" in "Configuration->Persons"

here is my .storage/person....
{     "data": {         "items": [             {                 "device_trackers": [                     "device_tracker.galaxy_s10",                     "device_tracker.sm_g973f_2"                 ],                 "id": "79639c3182bxxxxxxx2c95667afb2cc",                 "name": "tbar05",                 "user_id": "b9c2f65092xxxxxxxdaa63f833bb75b"             }         ]     },     "key": "person",     "version": 2 }
i also tried what @pangkoksiong said and re-selected device_tracker.galaxy_s10 in track device -> Configuration -> persons and now the app is working

When did you create your person, was this a long time ago ?

@balloob yes it would have been a long time ago... i actually dont remember ever creating this person, is there a default person set up for the user login? ive been using HA for 18 months + so could have been that long ago

Found the issue, should work now for other people without having to edit persons in the UI first 👍


Binary Ninja should resolve functions imported by ordinal

Looks like currently it is not supported.

It's absolutely supported in general. We might be missing a type library for that import however or that type library might have some issue. Will double check later and rename this issue if so.

This was fixed a few weeks ago and is fixed on dev 3.6.4740


Performance Issues under Desktop

I noticed that there seems to be a huge performance drop by using Skeletonizer on MacOS.
(Also outlined by this reddit comment)
It most likely might be a Flutter problem, thus I am just creating this issue to keep track of the state of things.
P.S. if you do not like tracking issues like this in your repository, feel free to close/ delete it.

Hey @jlnrrg, have you compared the performance to other shimmer library? or is it animating over  a big canvas kinda thing?

So I still don't know what caused the issue, but in my recent setup I saw no such performance issues:
These were the packages I assume could have had something to do with the issue.
In this version combination I saw no problem:
dependencies:
  widgetbook: ^3.8.1
  widgetbook_annotation: ^3.1.0
  skeletonizer: ^1.4.2

dependency_overrides:
  accessibility_tools: ^2.2.1
  web: ^1.0.0

dev_dependencies:
  widgetbook_generator: ^3.8.0

Also I work under the most recent flutter version:
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.0, on macOS 12.7.5 21H1222 darwin-x64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0-rc2)
[!] Xcode - develop for iOS and macOS (Xcode 14.1)
    ! Flutter recommends a minimum Xcode version of 15.
      Download the latest version or update via the Mac App Store.
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.92.1)
[✓] Connected device (2 available)
[✓] Network resources


Cropland: Refugee LCLUC North Uganda 2021

[x] Labeling projects created and links added below
[x] Set 1 Labeling - Zhanpei, Abena, Catherine, Chenwei, Kunal
[x] Set 2 Labeling - Blake, Bhanu, Vivek, Mirali, Kartik, Manu, Aditya, Isha, Alana, Diana
[x] Data added to repository
[x] Model trained
[ ] Map made
[ ] Expert check

Trained model metrics
"Uganda_North_2021_V1": {
"params": "https://wandb.ai/nasa-harvest/crop-mask/runs/jecuc6f8",
"test_metrics": {
"accuracy": 0.8308,
"f1_score": 0.5545,
"precision_score": 0.6364,
"recall_score": 0.4912,
"roc_auc_score": 0.8323
},
"val_metrics": {
"accuracy": 0.8355,
"f1_score": 0.4865,
"precision_score": 0.5625,
"recall_score": 0.4286,
"roc_auc_score": 0.8153
}


[✨] docs notes for loader$ and onGet changes on 0.1.0-beta8+

Wanted to start with some docs change proposals to bring loader$ and action$ in and remove the usage of useEndpoint where listed. While playing around with them and checking the existing code snippets, i've recognized that  some things are no longer working as expected and/or we no longer have straight access to them. below a list which is aimed to act as storybook for the new docs.
loader$
basic usage
To fetch data and make them available on your component you can define several loader$ functions like this:
const getColor = loader$(() => {
  return ['blue', 'red', 'yellow'];
});

const getNumber = loader$(() => {
  return [1,2,3,4,5]
});

const getPerson = loader$(() => {
  return {
    firstName: 'John',
    lastName: 'Doe',
    age: 38
  };
});

export const component$(() => {
  const color = getColor.use();
  const number = getNumber.use();
  const person = getPerson.use();

 return (
   {color.value} | {number.value} | {person.value.firstName}
 );
});

There is no longer any need to use useEndpoint() to get access to the fetched values.
Use on head functions
To use the data on the document head as well, you can make use of the getData helper function on the head function like this:
example code
export const head: DocumentHead = ({getData}) => {
  const color = getData(getColor);
  const number = getData(getNumber);
  const person = getData(getPerson);

  return {
    title: `${color} ${number} - ${person.firstName}`
  }
}

params
Available params on onGet and loader$ functions.
param response
both onGet and loader$ do no longer have access to the final response object. instead there are cacheControl, headers and redirect.
param headers
Till now we could set headers which then were applied to the final HTML response sent to the client using the response object. New there is a header map instead.
0.0.128
export const onGet: RequestHandler = ({response}) => {
  response.headers.set('x-custom-header','custom value');
}

0.1.0-beta8
export const onGet: RequestHandler = ({headers}) => {
  headers.set('x-custom-header','custom value');
}

🚨 does not work on dev server but is testable when running pnpm preview 👍
param cacheControl
0.0.128
export const onGet: RequestHandler = ({ response }) => {
  response.headers.set(
    'Cache-Control',
    'public, max-age=3600, s-maxage=3600, stale-while-revalidate=86400'
  );
};

0.1.0-beta8
export const onGet: RequestHandler = ({ cacheControl }) => {
  cacheControl({
    public: true,
    maxAge: 3600,
    sMaxAge: 3600,
    staleWhileRevalidate: 86400,
  });
};

🚨 does not work on dev server but is testable when running pnpm preview 👍
param redirect
changed order of params for redirect.
0.0.128
export const onGet: RequestHandler = ({response}) => {
  throw response.redirect("/", 302);
}

0.1.0-beta8
export const onGet: RequestHandler = ({redirect}) => {
  throw redirect(302, "/");
}

param exit
renamed abort to exit which prevents other middlewares of being called.
0.0.128
export const onGet: RequestHandler = ({abort}) => {
  abort();
}

0.1.0-beta8
export const onGet: RequestHandler = ({exit}) => {
  exit();
}

param json
Convenience method to JSON stringify the data and send it in the response. The response will be automatically set the Content-Type header to application/json; charset=utf-8.
param html
Convenience method to send an HTML body response. The response will be automatically set the Content-Type header totext/html; charset=utf-8.
parm text
Convenience method to send an text body response. The response will be automatically set the Content-Type header totext/plain; charset=utf-8.
param error
When called, the response will immediately end with the given status code. This could be useful to end a response with 404, and use the 404 handler in the routes directory.
param send
Method to send a body response. The Content-Type response header is not automatically set when using send() and must be set manually.
const onGet: RequestHandler = ({send}) => {
   send(418, 'I am a teapot');
}

To get data in the head
export const head: DocumentHead = ({ getData }) => {
  const data = getData(productLoader);

  return {
    title: data.title,
  }
}

thanks a lot @tuurbo 🙏

param response
both onGet and loader$ do no longer have access to the final response object. instead there are cacheControl, headers and redirect.

This is an interesting change. What’s the rationale behind it?

param response

both onGet and loader$ do no longer have access to the final response object. instead there are cacheControl, headers and redirect.

This is an interesting change. What’s the rationale behind it?

good question. just had a look at https://github.com/BuilderIO/qwik/blob/cbbe79a534c660ce2ec153832a928f3d7d275a39/packages/qwik-city/middleware/request-handler/request-event.ts where the params are defined and for me it looks like a needed step to create this abstraction because of the new ability to have multiple loader$ fns instead of just a single onGet.

for me it looks like a needed step to create this abstraction because of the new ability to have multiple loader$ fns instead of just a single onGet.

That totally makes sense. Thanks!

will all be covered in #2722 🙏

When would it be published? Do we have this in 0.16.2? Or should we wait for 0.16.3?

not sure @Nefcanto. as far as i can see the core team is finalizing everything now for the release. guess it depends on new bugs that gets mentioned 😂

Qwik is awesome.
We can't wait to move our entire company to Qwik and get speedy websites. Thank you @zanettin.

totally feel with you 🥳🎉

@zanettin how to 404 in [products]/index.tsx when doing this?
export function onGet({ params, error }: RequestEvent): null | void {
  const product = products.find(........)

  if (!product) {
    error(404, 'Not found')
  }
}

This example kinda works but not the way is supposed. head() and component$() for that route is still called. A redirection to /404 is a very bad practice. How to do 404 in a collection page?
Docs are outdated and reflect the old API, which is not used anymore and still had the same problems

Hi @felixsanz 👋
just had a look at the latest doc chances for the qwik-city 0.1.0 release and it seams to be the way to go: https://github.com/BuilderIO/qwik/pull/2722/files#diff-301e4735e348b976f16b3be332ec584ba84339ea38a3d30b10e59a5f434c02f9R17
imo it makes sense this way so you can decide on component level what you want to render in the 404 case.
hope i understod your question correctly.

Hi @felixsanz wave just had a look at the latest doc chances for the qwik-city 0.1.0 release and it seams to be the way to go: https://github.com/BuilderIO/qwik/pull/2722/files#diff-301e4735e348b976f16b3be332ec584ba84339ea38a3d30b10e59a5f434c02f9R17
imo it makes sense this way so you can decide on component level what you want to render in the 404 case.
hope i understod your question correctly.

Hey! i've seen that already because it's the same as the outdated docs that are online. That documentation uses response parameter inside onGet. This PR got rid of that. That whole documentation fragment is useless now

you're right. manu is still on them to finalize. and i've picked the lagecy one. sry for that! on the advance routing section is an example as well which looks updated for me. feel free to comment things on manu's PR so he can male the changes right away 🙏

that's how i've implemented it on a demo app:
loader$
// validate data
    if (!result.data?.environment?.routeByPath?.object?.id) {
      error(404, "page not found");
      return { data: null };
    }

component
return (
    <Resource
      value={data}
      onPending={() =>
Loading...
}
      onRejected={() =>
Error
}
      onResolved={(item: any) =>
        (item?.data &&
          renderContentTypeByTypename(
            item?.data?.environment?.routeByPath?.object
          )) ||
not found

      }
    />
  );

@zanettin Thanks for the help! You inspired me to come with a solution based on yours.
I finally got it like this:

Settting 404 status code inside onGet handler:

export const onGet: RequestHandler = async ({ params, error }) => {
  const post = posts.find(({ metadata }) => (metadata.slug === params.post))

  if (!post) {
    error(404, 'Not found')
  }
}

Having a loader$ that gives me post or undefined (if post is missing).

export const getPost = loader$(({ params }) => {
  return posts.find(({ metadata }) => (metadata.slug === params.post))
}

I consume that loader inside head() and component$, like this:

  const post = getPost.use().value

  return ((post)
    ? <PostLayout metadata={post.metadata} headings={post.headings}>.....</PostLayout>
    : <ErrorLayout status={404} />
  )

1 and 2 can be mixed into one (ie: have error() inside loader$), but I prefer it like this.

@felixsanz great to hear! and happy coding 🎉


Add enqueueDelayed method

Adds a method to delay a job by a number of seconds. When using run_at we were facing that our MySQL server was running a different timezone than our PHP server. This PR introduces a method that makes sure the PHP doesn't have to know about the timezone of MySQL.
Alternative to #47.
Pros:

One less SQL query.

Cons:

More duplicated code.

Why not just run your server on the same timezone as mysql?

That would be a different solution. In our case we didn't want to do this because we didn't know what other things this would affect. And also we wanted to solve it on the application side.
But this is probably not a general problem with DJJob, so closing the PRs.


Identity management RFC

This branch is an experiment. Usually when we have large features, they get discussed a lot and changed by different comments in the thread. It's often difficult to see exactly what is being proposed currently.
Discussion of the feature should happen in this pull request, and changes to the proposal should just be commits to this branch. Once the pull request is merged, there's a final version of how the feature should be implemented, hopefully unambiguously.
The issue for identity management is #3.
Rendered markdown of the RFC

This was completed


Add Nong Song:

Song Name
Malas decisiones acheron
Artist Name
kkkk
Source
Youtube
Youtube Link
https://www.youtube.com/watch?v=6xeguuGPHR0
Direct File Link
No response
Song ID
770520
Start Offset [ms]
No response
Extra
No response

kkkk is not an artist
reject


Editor crash on exit due to not unregistered callbacks

Godot version:
v4.0.dev.custom_build.af443dff4
OS/device including version:
Windows 10 1903
Issue description:
Editor crashes without backtrace on exit, because a deleted window recieves an event. (WM_UNFOCUS).
Steps to reproduce:

Open the editor
Close the editor

I cant reproduce this, could anyone else verify?

The root of the issue is the binding of INVALID_WINDOW_ID to some callbacks.

I cannot access my workstation currently so I cannot test whether or not it still happens. Last time this happend on other events too. Like focus/unfocus. But again that was I think all because of what I wrote above

Was fixed along the way


Use Custom (already existing) Cloudwatch Log group for Lambda Function

Is your request related to a new offering from AWS?
No, Lambda Function and Cloudwatch Log group isn't something new
Is your request related to a problem? Please describe.
When "use_existing_cloudwatch_log_group" is set to false, we want to be able to set our own Cloudwatch log group as Lambda function dependency (to be able to output logs to a custom cloudwatch log group, we're only using one as a combined/shared one in our case because of monitoring tool limitations)
From what i see, we don't any way in this module to edit the "depends_on" list, i wanted to put, instead of :

aws_cloudwatch_log_group.example,
this line
module.landing.cloudwatch_TEAM_log_group,
Because we use a standard / shared log group for all of our AWS resources, our monitoring tool can only grab one cloudwatch_log_group (yeah, it sucks), our logs are inside the same Cloudwatch log group (already existing), and the json payload of each logs line contains attributes to be differentiated in the monitoring tool, so it's fine this way.

Describe the solution you'd like.
To use already existing cloudwatch_log_group for the lambda function log feature, to send the lambda function module logs to it
The simple feature to add (i can even do a quick PR for it) is to be able to add a custom line to the depends_on, since adding a cloudwatch log group dependency in this list from within a terraform "aws_lambda_function" call, grants the possibility for the Lambda Function to write
Describe alternatives you've considered.
None, it's mandatory from my side (Monitoring integration looking for only one cloudwatch log group)
Additional context
N/A

We also would like to have multiple functions that log to the same existing log group. An additional var like cloudwatch_log_group_name could be used to set the name of the log group if use_existing_cloudwatch_log_group is false, or could be used for the data source if use_existing_cloudwatch_log_group is true. Thoughts?

You can't customize the name of the CW log group used for Lambda function. Each Lambda function writes logs to its own CW log group.
See also: https://github.com/terraform-aws-modules/terraform-aws-lambda/issues/342#issuecomment-1216317042

What a shamel, let's open an AWS case to request this feature then :)


Enable method signature completion for object literals

Fixes #46590.
This PR enables signature completions for methods in object literals. In the following code:
interface IFoo {
    bar(x: number): void;
}

const obj: IFoo = {
    |
}

we now offer as completion: bar(x: number): void { }:
interface IFoo {
    bar(x: number): void;
}

const obj: IFoo = {
    bar(x: number): void {
        |
    },
}

Design decisions

This signature completion is only offered for object literal expressions, and for methods (properties that are functions).
For an object literal method, we now offer two completion entries:

A regular one, whose insertText is simply the name of the method (e.g. bar in the example above), which is the old behavior
A signature one, whose insertText is the method declaration (e.g. bar(x: number): void {} in the example above)
The regular completion entry should appear before its corresponding signature one

No support for methods that have overloads, as there's no (non-hacky, generalizable) way to have overloads declared inside object literals.
No support for accessors. This could be added later, if we think it's important, but for now it wasn't completely clear to me when/how we should offer accessor signatures, so I left it out.
No support for JS, because that would require us being able to handle JSDoc annotations when creating the completion signature. If we decide to add this later, we could probably share a good chunk of the implementation and make it so that both this and class member completions can work in JS.
For now, we always generate method declarations (e.g. bar(x: number): void {}). If there's a need for it, we can make this configurable later, and generate other forms of declaration (e.g. bar: (x: number): void => {})
We don't add async (and similarly don't support the asterisk modifier for generators), see discussions in https://github.com/microsoft/TypeScript/issues/48093.

Things that I have to fix in this PR: for some reason, the entries are shown in the wrong order in vscode

Looking good at a first glance—I’ll try to give it a try soon.

@typescript-bot pack this

I realized I put the feature behind a new flag, so it is not set by default. Going to remove that part of the code in a bit so that people can use this more easily.

@typescript-bot pack this

@typescript-bot pack this

@typescript-bot pack this

We may not have this level of control, but I think I'd expect Map, Map, Map2, Map2:

@amcasey currently a probable VS Code bug is preventing us from doing that—Gabriela is planning on using an earlier commit from this PR to generate a repro next week.

@andrewbranch I should have read the earlier comments. :facepalm:

Personally, I think fixing this is just nice-to-have:
interface In {
    Map(x: string): void;
}

const c: In = {
    M/*trigger completion here*/ap(x: string): void {

    },
};

interface I {
    Map(x: string): void;
}

const c: I = {
    Map(x: string): void {

    },ap(x: string): void {

    },
};

I know this will be opt-in but FYI, here's the VS experience:

Personally, I think fixing this is just nice-to-have

@amcasey that should be controlled by this:

If that setting is on insert (the default), the behavior you show is expected AFAIK.

Corner case:
a.ts
interface Foo {
    x: number;
}

export interface Bar {
    M(f: Foo);
}

b.ts
import { Bar } from "./a";

const b: Bar = {
    M(f: Foo): any {

    },
}

I would have ignored it, but the completion is not offered if Foo is exported, but not imported, so it appears that there's code trying to handle this.
Presumably, this behavior was inherited from the code fix and is out of scope?

I can't tell whether these snippets were meant to have been filtered out by the overload logic:
interface I1{
    M(x: number): void;
}

interface I2{
    M(x: number): void;
}

const u: I1 | I2 = {
    M() {

    },
}

const i: I1 & I2 = {
    M() {

    },
}

Personally, I think fixing this is just nice-to-have

@amcasey that should be controlled by this:
If that setting is on insert (the default), the behavior you show is expected AFAIK.

Yep, I noticed and edited my comment.  Having said that, what would you expect it to do in Replace mode?

If you trigger in the middle of a method name, I think I would expect a completion that inserts a whole method body to replace the whole method body attached to the trigger location. In other words, there should generally be an analogous structure between the insertText and the text inside the optionalReplacementRange. I’m guessing that’s not currently what happens—IIRC the optionalReplacementRange right now is always just the identifier token where the request was triggered, since historically the only completions we have offered are identifiers.

I know this will be opt-in but FYI, here's the VS experience:

Is there something you think looks odd in the picture? I couldn't tell and I'm not familiar with VS.

@gabritto I posted it more for reference than as damning evidence, but it does seem worth noting that the disambiguation text isn't present in VS (what you're seeing next to the menu is a tooltip and would look the same for the other entry).  I don't know whether that's because VS doesn't support it or because TS simply hasn't hooked it up.

I can't tell whether these snippets were meant to have been filtered out by the overload logic:
interface I1{
    M(x: number): void;
}

interface I2{
    M(x: number): void;
}

const u: I1 | I2 = {
    M() {

    },
}

const i: I1 & I2 = {
    M() {

    },
}

I've updated the code so that those cases are properly excluded. What happens is that M will have a union type on those cases, and I'm only supporting cases where M has a function type. Although it is a bit strange since M's type is going to be a union of identical function types, so maybe there is a simple way to "merge" those and support this scenario. I'm not sure how common it is though.

What happens is that M will have a union type on those cases, and I'm only supporting cases where M has a function type.

You may be able to do something with checker.getSignaturesOfType rather than checking what kind of syntax printing the type produces, but I wouldn’t block on lack of support for union signatures. However, I wonder if any of these unions are supported:
interface I {
  m1?(): void;
  m2?: () => void;
  m3: string | (() => string);
}

The types of I['m1'] and I['m2'] are unions with undefined, and it seems that if you start typing one of those members, you’re very likely to want to supply a function implementation. If you start typing m3, providing a function implementation is still a likely scenario, and you have the plain m3 property name completion for the other possible scenarios. So I think if you do have a union type, maybe one of these strategies is reasonable:

Provide one signature completion per function-type constituent in the union
Provide signature completions only if there is exactly one function-type constituent in the union

(1) seems better than (2) but only if the completion label allows the user to adequately distinguish between the different completions.

maybe there is a simple way to "merge" those and support this scenario

If you’re seeing structurally identical types returned in a union type, I would try forcing subtype reduction: checker.getUnionType(unreducedUnionType.types, UnionReduction.Subtype).

Provide one signature completion per function-type constituent in the union
Provide signature completions only if there is exactly one function-type constituent in the union
(1) seems better than (2) but only if the completion label allows the user to adequately distinguish between the different completions.

I don't think we can guarantee that the label will be enough for distinguishing the signatures, since the space for displaying them is limited. I also worry that the experience could be bad if you had a big union with many function type components, although we could only offer this for < n types? But still, given that we're already offering this + the normal completion for each method, I still worry it's too much.
This actually made me rethink if we really want the signature completions to be side-by-side with the normal ones, as in bar, bar(): void, foo, foo(): void, or if it would be better to deprioritize the signature ones so they show up after everything else. Do people usually have many methods in their object completions?

If you’re seeing structurally identical types returned in a union type, I would try forcing subtype reduction: checker.getUnionType(unreducedUnionType.types, UnionReduction.Subtype).
Yeah, I was trying to remember how to do that reduction. Is that something acceptable performance-wise?

I think I would lean toward trusting the user to type strategically to filter the list. If we can reliably put the plain-name completion at the top, I don’t think it’s bad to have 100 method signatures also offered below if there are 100 method signatures the user could possibly type. When someone triggers completions with no prefix text at the global scope, we don’t artificially limit the number of results returned just because there are a lot of them.

Yeah, I was trying to remember how to do that reduction. Is that something acceptable performance-wise?

I think it should be ok. As with everything, you can construct an arbitrarily large and complex test case designed to break this assumption. Maybe there should be an upper limit to the number of constituents, since it’s not too hard to imagine some horrific React component type mapped out of keyof JSX.IntrinsicElements.

Corner case:
a.ts
interface Foo {
    x: number;
}

export interface Bar {
    M(f: Foo);
}

b.ts
import { Bar } from "./a";

const b: Bar = {
    M(f: Foo): any {

    },
}

I would have ignored it, but the completion is not offered if Foo is exported, but not imported, so it appears that there's code trying to handle this.
Presumably, this behavior was inherited from the code fix and is out of scope?

That case works on tests, with a signature completion showing up for M that has an associated action for importing Foo, but it doesn't work on vscode (the editor doesn't show it). I'm going to try and find out why.
That also made me realize that, if Foo is not exported, the signature we offer for M is going to reference type Foo anyways, and that's an error. I think that's ok though, since the user could either change Foo to be exported, or realize they can't write a signature for M, but I might be wrong.

If you’re seeing structurally identical types returned in a union type, I would try forcing subtype reduction: checker.getUnionType(unreducedUnionType.types, UnionReduction.Subtype).

What should I do, if anything, on the intersection case? The type is going to be an intersection of structurally equal methods, but we don't do subtype reduction or structural comparison for intersections...
I guess the answer is probably "don't do any reduction" for intersection types, but I'm still curious about this difference in treatment of unions and intersections.

It’s possible that getSignaturesOfType does deduping of equivalent overloads (intersections of function types ~= overloads), but I’m not sure.

Provide one signature completion per function-type constituent in the union
Provide signature completions only if there is exactly one function-type constituent in the union

I still don't feel super confident about putting a bunch of entries for the same symbol e.g. M, with no way to confidently distinguish between those, but I might be very wrong about it.

@typescript-bot pack this

If you close the detail pane of the completions widget, the displayParts of the name entry gets inlined into the right side of the label and you can’t really tell these apart anymore:

I think we discussed in an editor sync putting the signature, or something like the first line of insertText, in the left side of the label. Quick hack:

No strong opinion on whether it should end in { or { … } or no braces, but I think having something very similar to what’s about to get inserted left-aligned in the label makes it more clear. (I think this change should apply to  class method snippet completions too.)
Another side note is that VS Code and the LSP spec support another newer label scheme with three parts: one for the main part of the name (bar in this case), one rendered right next to it but perhaps with different font treatment (the rest of the method signature in this case) and one right-aligned bit. If we already supported that format, it would be the clear way to go as it was originally designed specifically with names, signatures, and module names/specifiers in mind for the three label parts respectively. We don’t need to adopt it right now, but its design does reinforce that the name and the rest of the signature should be rendered together on the left side of the label. That will make for a less intrusive change when we someday align more with the LSP spec.

Another side note is that VS Code and the LSP spec support another newer label scheme with three parts: one for the main part of the name (bar in this case), one rendered right next to it but perhaps with different font treatment (the rest of the method signature in this case) and one right-aligned bit.

I think I want to try and add support for it after this PR. It's doable to do it, right? We need a new field in CompletionEntry, and to convert between our completion entry field and the vscode entry label.details field in the vscode extension.

Yes, I think it should be possible.


ndjson inferred schema differs from the schema inferred by JsonFormat when integrate with arrow-datafusion

What I'm trying to do
AFAIK many open source projects are using datafusion as query engine but they also want to leverage the peformance of arrow2. But the arrow2 branch of arrow-datafusion falls far behind latest arrow2 version. So I'm trying to bump arrow2 dependency of arrow-datafusion.
What happened
During that process I found that some tests are failing because of json schema inference.
For example, in this test
 async fn nd_json_exec_file_projection() -> Result<()> {
        let session_ctx = SessionContext::new();
        let task_ctx = session_ctx.task_ctx();
        let (object_store_url, file_groups, file_schema) =
            prepare_store(&session_ctx).await;

        let exec = NdJsonExec::new(FileScanConfig {
            object_store_url,
            file_groups,
            file_schema,
            statistics: Statistics::default(),
            projection: Some(vec![0, 2]),
            limit: None,
            table_partition_cols: vec![],
        });
        let inferred_schema = exec.schema();
        assert_eq!(inferred_schema.fields().len(), 2);

        inferred_schema.field_with_name("a").unwrap();
        inferred_schema.field_with_name("b").unwrap_err();
        inferred_schema.field_with_name("c").unwrap();
        inferred_schema.field_with_name("d").unwrap_err();

        let mut it = exec.execute(0, task_ctx)?;
        let batch = it.next().await.unwrap()?;

        assert_eq!(batch.num_rows(), 4);
        let values = batch
            .column(0)
            .as_any()
            .downcast_ref::<arrow::array::Int64Array>()
            .unwrap();
        assert_eq!(values.value(0), 1);
        assert_eq!(values.value(1), -10);
        assert_eq!(values.value(2), 2);
        Ok(())
    }

If there's an ndjson file:
{"a":1, "b":0.1, "c": true, "d": "1"}
{"a":2, "b":0.2, "c": false, "d": "2"}

JSON file schema inferred by datafusion::datasource::file_format::json::JsonFormat::infer_schema is a list of fields:["a": Int64,"b": floa,"c":boolean,"d":string]
But schema(data type) inferred by arrow2::io::ndjson::read::file::infer is a DataType::Struct{  fields=["a": Int64,"b": floa,"c":boolean,"d":string]}.

To make it simple, datafusion's JSON format infers the schema of each line inside a ndjson file, with fields flatten, but arrow2's ndjson crate take each line inside a ndjson file as a struct. This difference makes it hard to do projection on an ndjson file.
Solutions on arrow-datafusion
I did some research on how arrow-datafusion (main branch) handles ndjson file, turned out that arrow crate uses a Decoder for each line inside an ndjson file to deconstruct the struct to a list of fields so that following projection on these fields is possible.
My question
What should I do if I want to fix the failing tests regarding ndjson schema in arrow-datafusion's arrow2 branch? If the schema inference difference is by design, maybe I should delete the projection tests. Otherwise maybe we should implement the similar line deconstruction mechanism just like what arrow does.

That is awesome!!
We infer it as a Struct to allow files of the form
[1]
[2]
[3]

since afaik they are valid ndjson files.
It seems that datafusion does not accept this. In this case, I would do
let fields = if let DataType::Struct(fields) = inferred_field {
    fields
} else {
    return Err("Datafusion only supports ndjson with objects on them")
}

would this work?

That is awesome!!
We infer it as a Struct to allow files of the form
[1]
[2]
[3]

since afaik they are valid ndjson files.
It seems that datafusion does not accept this. Thus, I would do
let fields = if let DataType::Struct(fields) = inferred_field {
    fields
} else {
    return Err("Datafusion only supports ndjson with objects on them")
}

would this work?

Yes, arrow-rs does not accept ndjson file that each row is an array like:
[1]
[2]
[3]

and will complain:
Error: ArrowError(JsonError("Expected JSON record to be an object, found Array [Number(1)]"))

But if arrow2 decides to accept this format, projection seems meaningless, since inferred schema only has one field (a struct that wraps all fields inside).

Note that arrow2 already supports this format, since it is valid ndjson.
Yes, for projections it is meaningless, but is still a meaningful representation of data that query engines ought to support, imo


Clean up 'explore campaigns' view a bit.

Changes

Cleans up styles on the 'explore campaigns' Drupal view a bit. Fixes #3728.

For review: @DoSomething/front-end

:+1:


DON'T merge [][m]: Render canvas files

For https://github.com/datopian/flowershow/issues/578
This is the output so far

Issues:

Inline canvas files not working
Fix links

@mohamedsalem401 I've commented on the problem in issue #578. Please take a look.

Closing this for now as not ready and we'll probably go with another approach.


HOFF-308: Update redis to v4.3.1

Update package.json
Update yarn.lock
Update rate-limiter.js
Update sessions.js
Update hof-defaults.js
Update server.spec.js
Update rate-limiter.spec.js
To ensure that redis has been migrated from v3 to v4 and to ensure that the unit and integration tests have been updated to ensures tests are accurate

@Rhyad-Zergane-HO was this tested on some services?


Send Apple Push notification or Google (firebase) cloud message for authentication

This issue is imported from pivotal
If a user/browser is known, we send an tiqr-push notification directly to the user when logging in. https://github.com/jchambers/pushy

https://firebase.google.com/docs/reference/admin/java/reference/com/google/firebase/messaging/package-summary

GCM works fine, APN needs to be tested. (Peter Havekes - Jul 11, 2022)


[release-4.6] Bug 2020612: Update Jenkins and plugins per 2021-11 advisory

Update Jenkins core to 2.303.3 to address critical CVE adivsories
Update Subversion plugin to 2.15.1 to address CVE-2021-21698

/assign @akram
/cc @coreydaley @prietyc123

/lgtm

marking as valid bug based on https://bugzilla.redhat.com/show_bug.cgi?id=2020616 passing verification.

/cherry-pick-approved

/label cherry-pick-approved

@coreydaley We need risk assessed label on this pr.


fix(dead-link): update dead autosar link

Signed-off-by: M. Fatih Cırıt<EMAIL_ADDRESS>Description
Fixes failing pre-commit-optional ci: https://github.com/autowarefoundation/autoware-documentation/actions/runs/3767529962/jobs/6405151006
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.

[x] I've confirmed the contribution guidelines.
[x] The PR follows the pull request guidelines.

In-review checklist for the PR reviewers
The Reviewers must check the checkboxes below before approval.

[ ] The PR follows the pull request guidelines.

Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.

[ ] There are no open discussions or they are tracked via tickets.

After all checkboxes are checked, anyone who has write access can merge the PR.

I've fixed the dead link. But it is still calling the working link dead. @kenji-miyake

Maybe we should switch to https://github.com/gaurav-nelson/github-action-markdown-link-check instead of the pre-commit plugin?
Current config:

https://github.com/autowarefoundation/autoware-documentation/blob/main/.pre-commit-config-optional.yaml
https://github.com/autowarefoundation/autoware-documentation/blob/main/.markdown-link-check.json

More info,
mfc@mfc-SG13:~$ curl https://www.autosar.org/fileadmin/standards/adaptive/18-03/AUTOSAR_RS_CPP14Guidelines.pdf
curl: (60) SSL certificate problem: unable to get local issuer certificate
More details here: https://curl.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.
mfc@mfc-SG13:~$ wget https://www.autosar.org/fileadmin/standards/adaptive/18-03/AUTOSAR_RS_CPP14Guidelines.pdf
--2022-12-29 15:44:59--  https://www.autosar.org/fileadmin/standards/adaptive/18-03/AUTOSAR_RS_CPP14Guidelines.pdf
Resolving www.autosar.org (www.autosar.org)... <IP_ADDRESS>
Connecting to www.autosar.org (www.autosar.org)|<IP_ADDRESS>|:443... connected.
ERROR: cannot verify www.autosar.org's certificate, issued by ‘CN=Starfield Secure Certificate Authority - G2,OU=http://certs.starfieldtech.com/repository/,O=Starfield Technologies\\, Inc.,L=Scottsdale,ST=Arizona,C=US’:
  Unable to locally verify the issuer's authority.
To connect to www.autosar.org insecurely, use `--no-check-certificate'.

#!/usr/bin/env node

'use strict';

const linkCheck = require('link-check');

linkCheck('https://www.autosar.org/fileadmin/standards/adaptive/18-03/AUTOSAR_RS_CPP14Guidelines.pdf', function (err, result) {
    if (err) {
        console.error(err);
        return;
    }
    console.log(`${result.link} is ${result.status}`);
});

This returns https://www.autosar.org/fileadmin/standards/adaptive/18-03/AUTOSAR_RS_CPP14Guidelines.pdf is dead too.

After a deep investigation,

https://github.com/autowarefoundation/autoware-documentation/blob/main/.pre-commit-config-optional.yaml
https://github.com/autowarefoundation/autoware-documentation/blob/main/.markdown-link-check.json

Through these,

markdown-link-check uses link-check: https://github.com/tcort/markdown-link-check/blob/master/index.js#L118
In this issue

I agree. I can't see a reason why we would ever want to report a link as being good if the TLS checks fail. It's something that needs attention.
I've removed the hard coded rejectUnauthorized:false. I'll roll it out in the next version in a few days.

It's removed here

With message: "No reason to ever ignore a bad certificate."

So I will find a better link :P

@xmfcx Thank you for fixing and investigating this problem! :pray:
According to https://www.autosar.org/, the website is undergoing maintenance. So I think waiting for a while might solve the problem.

Or we can temporarily ignore Autosar's URL patterns here.
https://github.com/autowarefoundation/autoware-documentation/blob/a75d24d41699cf739764ad3a60eb83af5c53e6d0/.markdown-link-check.json#L3

@kenji-miyake Thanks, I've updated the link with your suggestion and added the autosar.org links to the ignore list. I think it is ready to merge now.


feat(metarepos): rename the executable from vmr to varlogmr

Current dependencies on/for this PR:

main

PR #608

PR #609

PR #610   👈

This comment was auto-generated by Graphite.

Merge Activity

Oct 10, 9:30 AM: @ijsong started a stack merge that includes this pull request via Graphite.

Codecov Report
All modified lines are covered by tests :white_check_mark:

Comparison is base (b1e8432) 61.24% compared to head (0ef2d85) 61.13%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@                   Coverage Diff                    @@
##           fix_e2e_num_mr_nodes     #610      +/-   ##
========================================================
- Coverage                 61.24%   61.13%   -0.11%
========================================================
  Files                       144      144
  Lines                     19199    19199
========================================================
- Hits                      11758    11738      -20
- Misses                     6858     6870      +12
- Partials                    583      591       +8

see 3 files with indirect coverage changes

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


Feature: Support providing content summaries for each post

Which scope/s are relevant/related to the feature request?
content
Information
Hugo supports providing content summaries for each content file
https://gohugo.io/content-management/summaries/

It pulls the first 70 characters by default, which is configurable.
Also supports splitting on a <!--more--> marker.

We currently only support using the frontmatter for the summary, but this could be a configurable option in the @analogjs/platform plugin that's passed to the internal contentPlugin that provides the list of parsed frontmatter.
Example:
import { defineConfig } from 'vite';
import analog from '@analogjs/platform';

// https://vitejs.dev/config/
export default defineConfig(({ mode }) => ({
  plugins: [
    analog({
      content: {
        summaryLength: number, // default 70
        summaryDelimiter: string // default <!--more-->
      }
    }),
  ],
}));

The summary property would also be added to the ContentFile interface.
It would be opt-in initially.
Describe any alternatives/workarounds you're currently using
No response
I would be willing to submit a PR to fix this issue

[ ] Yes
[ ] No

Hi Brandon, I can work on this.
You mentioned ContentFile
Frontmatter is used in the parseRawContentFile which is used for lazy loaded content files.
Create 2 separate interfaces, one for the list
We can make CONTENT_FILES_TOKEN to produce a content wrapped in a promise along with attributes by simply attaching them in the factory function.

Hi @brandonroberts, I can work on this.
Currently ContentFile interface is used for both injectors - injectContentFiles and injectContent.

injectContentFiles returns a list of file attributes created by the content plugin..
injectContent returns the same set of attributes but with content. However, the attributes are pulled from the frontmatter in the parseRawContentFile function.

If we want to create additional attributes (like the summary) in the content plugin, we would need to change the flow since parseRawContentFile uses its own mechanism and has no access to the plugin data at this point.
We can modify CONTENT_FILES_TOKEN to produce content wrapped in a promise, along with attributes, by simply attaching them in the factory function.
The other way is to inject the CONTENT_FILES_LIST_TOKEN into the injectContent and apply attributes from there.
Also, I'm wondering about creating two separate interfaces, one for the files list and the other for the file. I want to point out that injectContentFiles returns a ContentFile with an optional content field, but we are 100% sure that it's not there.
export interface ContentFileMeta<
  Attributes extends Record<string, any> = Record<string, any>
> {
  filename: string;
  slug: string;
  attributes: Attributes;
  summary?: string;
}

export interface ContentFile<
  Attributes extends Record<string, any> = Record<string, any>
> extends ContentFileMeta<Attributes> {
  content?: string;
}

This allows us to use them accordingly:
export function injectContentFiles<Attributes extends Record<string, any>>(...): ContentFileMeta<Attributes>[]

export function injectContent<
  Attributes extends Record<string, any> = Record<string, any>
>(...: Observable<ContentFile<Attributes | Record<string, never>>> {

Thanks @Dyqmin, good poins.
@mhartington had the initial idea and already said they would take a go at it, so I'll leave it to them first before you start any work there.


arm hardware acceleration / NEON (libx264)

The current ffmpeg build (from this repository) runs with 30fps on a relatively low-powered ARM Linux system, but with ultrafast preset. Any preset below ultrafast results in much lower fps. How can I find out whether the ffmpeg build indeed uses the arm processor hardware acceleration and NEON for H.264 re-encoding?
Edit: Under /proc/cpuinfo asimd is listed, which should be the same as neon, just the older name for it.
ffmpeg -buildconf does not list --enable-neon flag.

You'd have to check with x264 folks what kind of acceleration it has for your arch.
30 fps sounds pretty good for software encoding on a potato-class device.
There is no point in explicitly passing enable for that, stuff like that is enabled by default.

@BtbN: Well, before you posted the comment, I manually built ffmpeg on that system, with NEON support explicitly enabled, and indeed, the performance was the same.
My expectations were a bit higher, in fact, I really hoped that even a 2-core ARM CPU with NEON extensions allows the realtime re-encoding of a H.264 stream (with flaky data). I think I avoided this workaround now by updating the firmware of the stream source and some changes to the protocol and video-copy settings used.

Not sure what specific device you got there, but even the latest Raspberry Pis will struggle with any kind of advanced software encoding.
Those CPUs are incredibly low power and thus pretty dang slow.

In this case it is an Amazon EC2 t4g.nano instance (Graviton ARM CPU):
https://aws.amazon.com/blogs/opensource/optimized-video-encoding-with-ffmpeg-on-aws-graviton-processors/
The graphs and such look great, but now I think that nano is a little too small of an SKU for this - or I missed something crucial.


Notebook showing how to use spatial analogs

Description

Create a tutorial showing how to compute spatial analogs with indices computed by xclim.

[ ] Compute indices from model simulation over historical period
[ ] Compute indices from model simulation over future period
[ ] Compute analogs using a couple of metrics
[ ] Map "distance" according to each metric

We could do this with Climex, to get larger samples for both periods.

@huard , from the issue I understand you were suggesting creating a new test dataset with climex for this notebook?
I'm asking because I wasn't able to find a satisfactory dataset in what we currently have...

Does the notebook abosuiltely have to be part of the xclim docs?  i.e. Could maybe be part of the PAVICS landing page instead allwoing us to era5-land data over NA that's on thredds

What if for xclim we the notebook uses pre-computed indices ?
We could work on a full example starting with daily data in pavics-sdi.


Add Previous & Next buttons on video page

I'm currently catching up on videos, and it would be a better experience to go to the next video once I'm done with one, rather than having to return to the homepage to find the next video.

Yeah this is definitely something we are planning on. We now have enough vids on the site where this can actually be useful.


Reload while sprinting/Parkour Aced and Lock and Load animation bugs

The first bug can occur whenever I cancel the reloading while sprinting and is quite common. The sprinting animation stops if I sprint or shoot again, as you can see in the video. This doesn't happen if I don't have Parkour skill Aced.
The second bug triggers the Lock and Load animation/Hip fire sprinting animation, even though I don't have the skill. And it is quite rare and was difficult to reproduce. Both bugs happen with every weapon available in the game.
I tried removing some mods that might be the perpetrator of those bugs, but the problem still persists.
It would be great if you can look further into this. Thank you.

Thanks for the detailed report with video, it's very much appreciated! I'll get on fixing this.

Thank you for your response and for addressing the issue. o7

This issue is potentially fixed on the experimental branch, check it out! Extract the "IRE AND FIST REBORN" folder to your PAYDAY 2/mods folder. It might be best to remove the existing folder first.

Interesting, looks like this can only happen as soon as either half or all of the reload timer has elapsed (and the animation hasn't finished playing yet). Happens as soon as bullets into your mag get refilled. This might be a tricky one.

This should now be fixed.

I still get the issue sometimes but not in a way I can easily reproduce. If you can find a specific way it would be appreciated.

Two possibilities here:

On the first video and at 33 seconds mark, instead of playing the reload animation while sprinting, it played the normal sprinting animation instead. And the animation gets stuck until I either shoot or sprint again. This occurs rarely, and it was difficult for me to reproduce as well.
It's difficult for me to explain, but I've recorded several clips with (at least) coherent explanations inside. I will upload them soon.

The video is currently on upload and the bugs may be tricky, but I've managed to reproduce them. I already explained the bug in those clips, but I'll say here anyway:
In vanilla Payday 2, if you have Parkour Aced skill, there are three animation "switches" or phases:

Reload animation
Static animation
Sprint animation
The bug occurs if you release the sprint key on the second animation, or a few seconds after the reload animation. I've included a freeze frame and a slow motion in the video for this one.
However, if you keep holding the sprint button a little longer after either animation, this bug does not occur.

Here's the video:
https://www.youtube.com/watch?v=ETP5MFkx9K4
I apologize for the poor editing and/or quality, but I hope it's adequate to narrow it down.

This is proving to be a bit harder to fix than I thought. I'm still working on it, but I may have to drop the priority just a tad since it's harder to trigger now and isn't gamebreaking.

Yeah, it's perfectly fine and fair--not to mention the sprinting bug only occurs if you have Parkour skill Aced.

I've found a way to reproduce the Lock and Load animation bug, but you have to be (somehow) precise; The bug occurs if you press and hold the sprint key as soon as the reload finishes.
Here's a video of the example:
https://youtu.be/qAVUzi6iKXg

I've done quite a bit of testing in the code so far, but no luck actually fixing it. InF doesn't/shouldn't touch anything related to the stances anymore, other than allowing running while holding melee.

It seems that running while holding melee can trigger the Lock and Load animation bug.


Add a test case to check sub strings' AsciiString hash code

Motivation:
AsciiString.hashCode(o) , if "o" is a subString, the hash code is not always same, when netty’s version is 4.1.1.Final and jdk’s version is 1.6.
Modifications:
Use a test to assert hash codes are equal between a new string and any sub string (a part of  a char array),If their values are equal.
Result:
Create a test method to AsciiStringCharacterTest.

@luyiisme can you please sign our ICLA and let me know once done:
http://netty.io/s/icla

ok,@normanmaurer  I signed it.

Cherry-picked as be3e6972a18e9a673ef54a63cd2fb16b20ee936e into 4.1
@luyiisme thanks!

thanks @luyiisme !


MGDOBR-1297: Refactoring error catalog in v1 and v2

https://issues.redhat.com/browse/MGDOBR-1297
This PR adds support for versions to use their own "Error Catalogue". (Almost) nothing is now shared.
Only ExternalUserException and InternalPlatformException are shared. Everything else is version dependent.
This led to the need to split some classes into a base (abstract) implementation with v1 and v2 sub-classes to correctly throw the correct Exception. There could be an argument to move some more exceptions back to being "shared" to avoid this new split of a few classes. I tried to keep sharing to an absolute minimum to ensure maximum flexibility.
PR owner checklist
Please make sure that your PR meets the following requirements:

[x] Your code is properly formatted according to this configuration.
Run mvn clean verify -DskipTests so that imports are correctly set.
[x] Your commit messages are clear and reference the JIRA issue e.g: "[MGDOBR-XXX] - $clear_explanation_of_what_you_did"
[x] The layers in the kustomize folder have been updated accordingly.
[x] All new functionality is tested
[x] Pull Request title is properly formatted: MGDOBR-XYZ Subject
[x] Pull Request contains link to the JIRA issue
[x] Pull Request contains link to any dependent or related Pull Request
[x] Pull Request contains description of the issue
[x] Pull Request does not include fixes for issues other than the main ticket

PR reviewer(s) checklist

[ ] Check if code and Github action workflows have been modified and if the modification is safe
[ ] If the modification is safe, add the safe to test label

How to trigger pipelines and use the bots:

Run the end to end pipeline
Annotate the pull request with the label: safe to test. If you want to run the pipeline again, remove and add it again.

Rebase the pull request
Comment with: /rebase.

Deploy BOT
Comment with `/deploy <dev,stable> when the PR has been merged to deploy to a target environment.

will take a look at this tomorrow :+1:


Add diagnostic for integer division by zero

The diagnostic message is a bit arbitrary, but I think it has the information that's relevant.
Doesn't handle <float> / 0 because it's not clear to me what the proper pattern is to match that type. I presume I would check for equality after looking up the builtin? Nor does this handle <int> / 0.0 because we don't track float literals.

Doesn't handle <float> / 0 because it's not clear to me what the proper pattern is to match that type. I presume I would check for equality after looking up the builtin?

I think it should be something like a match pattern for Type::Instance(cls) if cls.is_stdlib_symbol(db, "builtins", "float") to match the float type; similar for int.

I made some relatively significant changes.


Changed normalization between master and develop branch

I am wondering if the normalization is different in this newer submit.
Originally posted by @madil7173 in https://github.com/kircherlab/cfDNA/issues/6#issuecomment-746577117

Yes, the normalization is different between the master and develop branch.
On the master branch, the values (WPS,COV) are normalized by dividing them by the trimmed mean of the target region values.
On the develop branch, normalization is done by selecting 1000 random non target (genomic background) regions. For each of these regions, we calculate the mean and take the trimmed mean over all background regions. At the end the target values are normalized by dividing it by the trimmed mean of the background sequences.


runtimeerror : indices should be either on cpu or on the same device as the indexed tensor (cpu)

Hello. I tried to run this program but I get an error like the one in the picture and cannot proceed. Is there any solution?

I solved it on my own.


[UNDERTOW-1931] Avoid Nullpointer

Fixes https://issues.redhat.com/browse/UNDERTOW-1931

Hello @baranowb I have seen you've taken the Jira. If you're the correct recipient in terms of the process: Could you review and approve this, please?
If everything is fixed based on your and the components lead requirements I can provide the same fix for the other versions, if you want.


jobs

where to post for react native jobs to hire developers ?

I would check out the discord channel reactiflux.


T2S - uppercase shortcuts are not spelled out

I tested English pronunciation and observed that the uppercase shortcuts are not spelled out, e.g., GPT, GPU.

Related to #125
This is more or less the same limitation of SpeechT5, and TTS in general. TTS doesn't always do well with acroynms because it is trying to parse out the phonemes of the text as if it were words. Of course, GPU/GPT are not words, but TTS on its own isn't smart enough to know that, so pre-processing is needed to split these out, such as 'G P U' or 'G P T'. As mentioned in #125 this is something we will look into more as willow advances. :)


Only extend cluster database when reaching three member

Closes #6230
Signed-off-by: Rizwan Lubis<EMAIL_ADDRESS>Signed-off-by: Jack Stenglein<EMAIL_ADDRESS>

This pull request didn't trigger Jenkins as its author isn't in the whitelist.
An organization member must perform one of the following:

To have this branch tested by Jenkins, use the "ok to test" command.
To have a one time test done, use the "test this please" command.

Those commands are simple Github comments of the format: "jenkins: COMMAND"

Nice job!
I think you got basically everything right except for a couple of things, one of which has turned out to be an existing bug that your work has uncovered :)
I can get your branch working (i.e. the second node is promoted only after the third node joins) by applying this diff on top of yours:
2 files changed, 7 insertions(+), 8 deletions(-)
lxd/api_cluster.go        | 6 ++++++
lxd/cluster/membership.go | 9 +--------

modified   lxd/api_cluster.go
@@ -375,6 +375,7 @@ func clusterPutJoin(d *Daemon, req api.ClusterPut) response.Response {
 		if err != nil {
 			return err
 		}
+		defer client.Close()

 		// If the ServerAddress field is set it means that we're using
 		// the new join API introduced with the 'clustering_join'
@@ -609,6 +610,11 @@ func clusterPutJoin(d *Daemon, req api.ClusterPut) response.Response {
 		version.UserAgentFeatures([]string{"cluster"})

 		logger.Infof("Making cluster rebalance call.")
+		client, err = cluster.Connect(req.ClusterAddress, d.endpoints.NetworkCert(), false)
+		if err != nil {
+			logger.Errorf("Failed to connect to cluster: %v", err)
+		}
+		defer client.Close()
 		err = clusterRebalance(client)
 		if err != nil {
 			logger.Errorf("Failed cluster rebalance call: %v", err)
modified   lxd/cluster/membership.go
@@ -656,16 +656,9 @@ func Promote(state *state.State, gateway *Gateway, nodes []db.RaftNode) error {

 	// Unlock regular access to our cluster database and add the database role.
 	err = state.Cluster.ExitExclusive(func(tx *db.ClusterTx) error {
-		logger.Info("Getting node list.")
-		nodeInfo, err := tx.Nodes()
-		if err != nil {
-			logger.Errorf("Failed to get node list: %v", err)
-			return errors.Wrapf(err, "Failed to get node list")
-		}
-		logger.Info("Test %d. Got node list: %+v", 0, nodeInfo)

 		logger.Info("Adding database role to this node")
-		err = tx.NodeAddRole(id, db.ClusterRoleDatabase)
+		err = tx.NodeAddRole(state.Cluster.GetNodeID(), db.ClusterRoleDatabase)
 		if err != nil {
 			logger.Errorf("Failed to add database role: %v", err)
 			return errors.Wrapf(err, "Failed to add database role for the node")

The client object that you were using was using the original joining node's TLS client certificate, so it was getting an "Unauthorized" error when trying to issue the rebalance request. If fixed it by creating a new client object that uses the cluster certificate as client certificate, which makes the rebalance request succeed since it now has the correct privileges.
I remove the extra logging since it was crashing (probably because you were using logger.Info instead of logger.Infof, note the final f).
Lastly, I fixed an existing bug, unrelated to your work: we were using the Raft ID when calling tx.NodeAddRole instead of the node database ID (the two IDs might differ). So you were getting the UNIQUE constraint error.
I've created a separate PR (#6486) to fix the existing issue. You'll want to rebase your branch on that one.
At this point, I think the only thing missing is fixing integration tests (the ones in clustering.sh) since the new behavior of skipping the database role for the second node is most likely going to break them. You'll have to change the tests so they work with the new behavior.

@freeekanayaka @stgraber Hello, we think these commits should be sufficient. We cannot get the tests to run locally, but it looks like the Jenkins build passed and clustering.sh does not appear to check that the second node is a database node until the third has joined. Therefore, no tests in that file should be broken. Is this sufficient or should we try to get the tests running locally? Thank

Can you rebase this on master now that @freeekanayaka's branch has been merged?
Then we can do an actual jenkins run (only basic branch info was tested so far).

@stgraber Rebased to master.

Pretty sure that this will fail in clustering tests due to us expecting the database to replicate to the second node and us checking cluster list in a number of places. But lets see what happens on Jenkins.

jenkins: test this please

membership_test.go needs updating

jenkins: test this please

jenkins: test this please

As mentioned before, you'll also need to fix the integration tests in test/suites/clustering.sh, since lots of them assume that the 2nd node becomes a database member right away, not only after the 3rd is added.
For example you can see the clustering_address test fail here:
https://jenkins.linuxcontainers.org/job/lxd-github-pull-test/7666/arch=amd64,backend=zfs,compiler=golang-1.13,restrict=lxd-priv/console#console-section-3
You should be able to reproduce that failure locally with something like:
cd test
sudo -E ./main.sh clustering_address

I changed the integration tests test_clustering_recover() and test_clustering_address() in test/suites/clustering.sh and squashed the merge into one commit for tests. All of the integration tests are passing locally, could we run it in Jenkins?

jenkins: test this please

Thanks!


Issue #SB-6203 fix: Review comment box bottom alignment

@bvinayakumar  - Pls merge this pr. Alignment issue is fixed in this pr which can be seen in screenshots attached.