AttributeError: 'Conv2D' object has no attribute 'shape' and ValueError: You are trying to load a weight file containing 1 layers into a model with 19 layers.

TENSORFLOW VERSION: 2.1.0
Hey there i am trying to load a model like the following -
Below is my model architecture -
def down_block(x, filters, kernel_size=(3, 3), padding="same", strides=1, input = False):
    if input == False:
        c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    else:
        c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu", input_shape=(HEIGHT, WIDTH, 3))
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    p = MaxPool2D((2, 2), (2, 2))(c)
    return c, p

def up_block(x, skip, filters, kernel_size=(3, 3), padding="same", strides=1):
    us = UpSampling2D((2, 2))(x)
    concat = Concatenate()([us, skip])
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(concat)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    return c

def bottleneck(x, filters, kernel_size=(3, 3), padding="same", strides=1):
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    return c

def UNet():
    f = [16, 32, 64, 128, 256]

    c1, p1 = down_block(None, f[0], input = True) #128 -> 64
    c2, p2 = down_block(p1, f[1]) #64 -> 32
    c3, p3 = down_block(p2, f[2]) #32 -> 16
    c4, p4 = down_block(p3, f[3]) #16->8

    bn = bottleneck(p4, f[4])

    u1 = up_block(bn, c4, f[3]) #8 -> 16
    u2 = up_block(u1, c3, f[2]) #16 -> 32
    u3 = up_block(u2, c2, f[1]) #32 -> 64
    u4 = up_block(u3, c1, f[0]) #64 -> 128

    outputs = Conv2D(13, (1, 1), padding="same", activation="sigmoid")(u4)
    model = Model(inputs, outputs)
    return model

Then i make a variable named unet and pass in the model architecture -
unet = UNet()
unet.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])
unet.summary()

I get the following error -
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-26-33ba33cd9519> in <module>
----> 1 unet = UNet()
      2 unet.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])
      3 unet.summary()

<ipython-input-25-6aea0c9181eb> in UNet()
     25
     26
---> 27     c1, p1 = down_block(None, f[0], input = True) #128 -> 64
     28     c2, p2 = down_block(p1, f[1]) #64 -> 32
     29     c3, p3 = down_block(p2, f[2]) #32 -> 16

AttributeError: 'Conv2D' object has no attribute 'shape'

Full traceback below -
https://pastebin.com/mkTSg4bS
by the way originally i started out with the following code the thing is the actual code was -
def down_block(x, filters, kernel_size=(3, 3), padding="same", strides=1):
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    p = MaxPool2D((2, 2), (2, 2))(c)
    return c, p

def up_block(x, skip, filters, kernel_size=(3, 3), padding="same", strides=1):
    us = UpSampling2D((2, 2))(x)
    concat = Concatenate()([us, skip])
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(concat)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    return c

def bottleneck(x, filters, kernel_size=(3, 3), padding="same", strides=1):
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    return c

def UNet():
    f = [16, 32, 64, 128, 256]
    inputs = Input((HEIGHT,WIDTH,3))

    p0 = inputs
    c1, p1 = down_block(p0, f[0]) #128 -> 64
    c2, p2 = down_block(p1, f[1]) #64 -> 32
    c3, p3 = down_block(p2, f[2]) #32 -> 16
    c4, p4 = down_block(p3, f[3]) #16->8

    bn = bottleneck(p4, f[4])

    u1 = up_block(bn, c4, f[3]) #8 -> 16
    u2 = up_block(u1, c3, f[2]) #16 -> 32
    u3 = up_block(u2, c2, f[1]) #32 -> 64
    u4 = up_block(u3, c1, f[0]) #64 -> 128

    outputs = Conv2D(13, (1, 1), padding="same", activation="sigmoid")(u4)
    model = Model(inputs, outputs)
    return model

When i would try to load my model using this code-
unet = UNet()
unet.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])
unet.summary()

# unet.load_weights('unet1m.h5')
unet.load_weights('unet.h5')

i would get the following  errro -
ValueError: You are trying to load a weight file containing 1 layers into a model with 19 layers.

Then i found this issue on github. It suggested not to use an input layer instead use input_shape in conv2d
so i edited the code as you see in the original post
i did not want to modify my whole code so came up with a messy solution
i added an argument named input
then in the function i wrote that if input = False just do the bussiness it was doing in the original code
if  it was input = true we add that extra input_shape argument in Conv2D
Now for not to remove the x parameter i just simply passed x as none in the input block
Then i found this issue on github. It suggested not to use an input layer instead use input_shape in conv2d
so i edited the code as you see at the top
**FOR EXPERIMENTING WITH THE CODE **
The model -
MODEL
The script -
SCRIPT
The training script -
TRAINING SCRIPT
The repositry from where i have taken the model and code -
REPOSITRY

   if input == False:
        c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    else:
        c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu", input_shape=(HEIGHT, WIDTH, 3))

I think that you forgot the (x) in
c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu", input_shape=(HEIGHT, WIDTH, 3))

Hi @Space-Fighter!
We see that the issue template has not been filled, could you please do so as it helps us analyse the issue [tf version, steps followed before you ran into this error or stand alone code/colab gist to reproduce the issue faced].Thanks

Hi @Space-Fighter! We see that the issue template has not been filled, could you please do so as it helps us analyse the issue [tf version, steps followed before you ran into this error or stand alone code/colab gist to reproduce the issue faced].Thanks!

Hey there i have added the tensorflow version rest everything is already there like steps followed before you ran into this error or stand alone code/colab gist to reproduce the issue faced].

@vulkomilev as i have mentioned in my post -
originally i started out with the following code -
def down_block(x, filters, kernel_size=(3, 3), padding="same", strides=1):
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    p = MaxPool2D((2, 2), (2, 2))(c)
    return c, p

def up_block(x, skip, filters, kernel_size=(3, 3), padding="same", strides=1):
    us = UpSampling2D((2, 2))(x)
    concat = Concatenate()([us, skip])
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(concat)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    return c

def bottleneck(x, filters, kernel_size=(3, 3), padding="same", strides=1):
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
    c = Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
    return c

def UNet():
    f = [16, 32, 64, 128, 256]
    inputs = Input((HEIGHT,WIDTH,3))

    p0 = inputs
    c1, p1 = down_block(p0, f[0]) #128 -> 64
    c2, p2 = down_block(p1, f[1]) #64 -> 32
    c3, p3 = down_block(p2, f[2]) #32 -> 16
    c4, p4 = down_block(p3, f[3]) #16->8

    bn = bottleneck(p4, f[4])

    u1 = up_block(bn, c4, f[3]) #8 -> 16
    u2 = up_block(u1, c3, f[2]) #16 -> 32
    u3 = up_block(u2, c2, f[1]) #32 -> 64
    u4 = up_block(u3, c1, f[0]) #64 -> 128

    outputs = Conv2D(13, (1, 1), padding="same", activation="sigmoid")(u4)
    model = Model(inputs, outputs)
    return model

When i would try to load my model using this code-
unet = UNet()
unet.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])
unet.summary()

# unet.load_weights('unet1m.h5')
unet.load_weights('unet.h5')

i would get the following  errro -
ValueError: You are trying to load a weight file containing 1 layers into a model with 19 layers.

Then i found this issue on github. It suggested not to use an input layer instead use input_shape in conv2d
so i edited the code as you see in the original post
i did not want to modify my whole code so came up with a messy solution
i added an argument named input
then in the function i wrote that if input = False just do the bussiness it was doing in the original code
if  it was input = true we add that extra input_shape argument in Conv2D
Now for not to remove the x parameter i just simply passed x as none in the input block
Then i found this issue on github. It suggested not to use an input layer instead use input_shape in conv2d
so i edited the code as you see at the top

Hi @sanatmpa1! ,Could you please look at this issue , was getting different Error in TF 2.5 ,2.6 and nightly.

@Space-Fighter
As per the script that you provided, You have provided input x as None in this line c1, p1 = down_block(None, f[0], input = True) #128 -> 64 and so while trying to reproduce your code, I am getting the error TypeError: Inputs to a layer should be tensors. Got: None gist here. Can you provide a github gist to reproduce the issue reported?

@Space-Fighter
As per the script that you provided, You have provided input x as None in this line c1, p1 = down_block(None, f[0], input = True) #128 -> 64 and so while trying to reproduce your code, I am getting the error TypeError: Inputs to a layer should be tensors. Got: None gist here. Can you provide a github gist to reproduce the issue reported?

@sanatmpa1 oh minor correction in the post i mentioned the following line -

but i mistakenly sent my old script -

Here is the script -
SCRIPT
I have updated this in the post too

@sanatmpa1 Trying out the first suggestion i get the following error -
AttributeError                            Traceback (most recent call last)
<ipython-input-7-33ba33cd9519> in <module>
----> 1 unet = UNet()
      2 unet.compile(optimizer="adam", loss="categorical_crossentropy", metrics=["acc"])
      3 unet.summary()

<ipython-input-6-6627c0447d90> in UNet()
     28
     29
---> 30     c1, p1 = down_block(None, f[0], input = True) #128 -> 64
     31     c2, p2 = down_block(p1, f[1]) #64 -> 32
     32     c3, p3 = down_block(p2, f[2]) #32 -> 16

<ipython-input-6-6627c0447d90> in down_block(x, filters, kernel_size, padding, strides, input)
      5         c = tf.keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(x)
      6     else:
----> 7         c = tf.keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu", input_shape=(512,512, 3))(x)
      8         c = tf.keras.layers.Conv2D(filters, kernel_size, padding=padding, strides=strides, activation="relu")(c)
      9         p = tf.keras.layers.MaxPool2D((2, 2), (2, 2))(c)
AttributeError: 'NoneType' object has no attribute 'shape'

FULL TRACEBACK
Trying out the second suggestion my code becomes -
CODE
Error i get -
ERROR

@Space-Fighter,
I passed a random image and I am getting a different error when running this code, ValueError: Input tensors to a Functional must come from 'tf.keras.Input' . Please find the gist here.
Instead of sharing the code in a seperate link, Can you share a colab gist which can expedite the trouble shooting process?

@Space-Fighter
As per the script that you provided, You have provided input x as None in this line c1, p1 = down_block(None, f[0], input = True) #128 -> 64 and so while trying to reproduce your code, I am getting the error TypeError: Inputs to a layer should be tensors. Got: None gist here. Can you provide a github gist to reproduce the issue reported?

@sanatmpa1 Minor correction in the post i mentioned the following line -  but i mistakenly sent my old script -
Here is the script - SCRIPT
I have updated this in the post too
Regarding the following error - TypeError: Inputs to a layer should be tensors. Got: None
After doing the correction as mentioned above in the google colab you sent me I get a new error -

But in my local machine i get the same error as i have specified in my post -

@sanatmpa1 As i see in the post quoted above i seem to get a different error in my local machine and a diffrent one in colab.
As i see the version of tensorflow in colab is -

and in my machine it is -

@Space-Fighter,
Can you try updating TF to latest stable version i.e 2.6.0 in your local machine as well? as 2.1.0 is an older version and there are many different problems fixed and features added in 2.6.0


Handle early Responses

Responses can be returned by middleware before reaching AuthenticationMiddleware - in these cases there is no request.user attribute.
This happens with Django's default MIDDLEWARE ordering if the current host is disallowed (not in ALLOWED_HOSTS) for instance.

Looks good, can you think of a way to add a unit test? I skimmed over the tests and did not see anything similar. This may require a new TestCase that tests the middleware class directly.

For reference, these views are used by some of the tests:
https://github.com/smartfile/django-session-jwt/blob/master/django_session_jwt/views.py
And the tests themselves are here, at the top of the file are some low-level tests (mocks and method calls). Tests for the middleware would fit roughly into this category. The second section uses the views above.
https://github.com/smartfile/django-session-jwt/blob/master/django_session_jwt/tests.py

Added a test that fails before this patch

Moved the test to the existing ViewTestCase as that's the level it's operating at right now


Pass trace context as an object

This is the fix for issue #69
Rather than passing the function that generates the context to req.stop() we should be passing the object returned from the object. This is a simple matter of just adding ()!

@tunniclm could you review?

LGTM, merging.


AutoTab size in 8 digits when 'ENTER' pressed to next line

Issue Type: Bug
When i pressed 'ENTER' from line: 20 to line: 21
editor will change AutoTab size to 8 digits and my line comes to 8 digits tab
How can i fix this issue and the pointer comes under the same line?
Ty so much.
VS Code version: Code 1.31.1 (1b8e8302e405050205e69b59abb3559592bb9e60, 2019-02-12T02:19:29.629Z)
OS version: Linux x64 4.18.0-15-generic
Extensions (2)

Extension
Author (truncated)
Version

vscode-great-icons
emm
2.1.46

python
ms-
2019.1.0

(4 theme extensions excluded)

@C-PyLx can you attach a screen recording? Thanks!

/needsMoreInfo

/needsMoreInfo

I solved my problem from the "TabSize" part of settings.
Thanks

I have just a problem with opening "github.com" in my chrome browser!
I tried all the ways to solve it, bu did not: my error is in (Establishing secure connection...).
Can you help me about this issue?

 I.e. unrelated to VS Code. Sorry, nothing I can do about it with the information you provide.


Version upgrades and demo script

Summary by Sourcery
This pull request introduces a new demo script for extracting quotes from podcast transcripts and updates the README with additional sections to aid development and provide references.

New Features:

Added a new demo script changelog.py that processes podcast transcripts to extract and compile quotes related to the TV show 'Silicon Valley'.

Enhancements:

Updated README.md with additional sections including 'See also', 'Development', 'Setup', 'Code Formatting', and 'Authors'.

@CodiumAI-Agent /review


Pane split on windows doesn't work in the left and right directions when using single key combo binding

my keymap.cson
'body':
  'alt-down': 'pane:split-down'
  'alt-up': 'pane:split-up'
  'alt-right': 'pane:split-right'
  'alt-left': 'pane:split-left'

splitting up and down work fine, but left and right just don't do anything..
it does work if I do a two stage hotkey, like:
'ctrl alt-left'

but that's not ideal for me

Thanks for the report! This looks like it might be the same issue as https://github.com/atom/atom/issues/6037 - would you mind taking a look to see if it is?

ah yes, that does look very similar.
I noticed that the menu on the top of atom (file, edit, etc), as well as other windows apps, is active when alt is held. so, alt is probably a default windows binding for navigating menus. (I'm used to linux.. so this just adds to the frustration of windows.)
So, I'm not sure if it's possible to override that default behavior or not.

this is now also happening in linux... boo

Thanks for the update! Since this does look like the same issue as https://github.com/atom/atom/issues/6037, I'm going to close this out in favor of that issue.


Create KnightTour.java

Objective: A knight’s tour is a sequence of moves of a knight on a chessboard such that the knight visits every square only once. If the knight ends on a square that is one knight’s move from the beginning square (so that it could tour the board again immediately, following the same path), the tour is closed, otherwise, it is open.

@princi2002 Please convert the JAVA code into C++


4.4. Edit the 'quizzesList.html' Thymeleaf template to include functionality for deleting quizzes, such as adding a delete button next to each quiz entry.

Task 4.4 is completed


libdwarf: 20180809 -> 20181024

Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/libdwarf/versions.
meta.description for libdwarf is: '""'.

Checks done (click to expand)

built on NixOS

0 of 0 passed binary check by having a zero exit code.

0 of 0 passed binary check by having the new version present in output.

directory tree listing: https://gist.github.com/2bb8fb6cf58ea073522c97c9bfee2bc0

du listing: https://gist.github.com/5c471c70349cda1825a762d0b142994e

Outpath report (click to expand)

Outpath difference report
15 total rebuild paths
6 package rebuilds
6 x86_64-linux rebuilds
5 i686-linux rebuilds
0 x86_64-darwin rebuilds
4 aarch64-linux rebuilds
First ten rebuilds by attrpath
apitrace
dwarfdump
flatpak-builder
hhvm
libdwarf
vogl

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024 \
  --option binary-caches 'https://cache.nixos.org/ https://r-ryantm.cachix.org/' \
  --option trusted-public-keys '
  r-ryantm.cachix.org-1:gkUbLkouDAyvBdpBX0JOdIiD2/DP1ldF3Z3Y6Gqcc4c=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(r-ryantm's Cachix cache is only trusted for this store-path realization.)
Or, build yourself:
nix-build -A libdwarf https://github.com/r-ryantm/nixpkgs/archive/74e7bce5c1d22eb8b34ae5256b9af5c883479f09.tar.gz

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024
ls -la /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024/bin

No attempt on x86_64-darwin (full log)
The following builds were skipped because they don't evaluate on x86_64-darwin: libdwarf
Partial log (click to expand)

a) For `nixos-rebuild` you can set
  { nixpkgs.config.allowUnsupportedSystem = true; }
in configuration.nix to override this.

b) For `nix-env`, `nix-build`, `nix-shell` or any other Nix command you can add
  { allowUnsupportedSystem = true; }
to ~/.config/nixpkgs/config.nix.

Success on aarch64-linux (full log)
Attempted: libdwarf
Partial log (click to expand)
Not building archive library libdwarf.a
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/svmnlcki0gi4zadayhyh9wadaskcy7f7-libdwarf-20181024
shrinking /nix/store/svmnlcki0gi4zadayhyh9wadaskcy7f7-libdwarf-20181024/lib/libdwarf.so.1
strip is /nix/store/p9akxn2sfy4wkhqdqa3li97pc6jaz3r1-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/svmnlcki0gi4zadayhyh9wadaskcy7f7-libdwarf-20181024/lib
patching script interpreter paths in /nix/store/svmnlcki0gi4zadayhyh9wadaskcy7f7-libdwarf-20181024
checking for references to /build in /nix/store/svmnlcki0gi4zadayhyh9wadaskcy7f7-libdwarf-20181024...
/nix/store/svmnlcki0gi4zadayhyh9wadaskcy7f7-libdwarf-20181024

Success on x86_64-linux (full log)
Attempted: libdwarf
Partial log (click to expand)
Not building archive library libdwarf.a
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024
shrinking /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024/lib/libdwarf.so.1
strip is /nix/store/vcc4svb8gy29g4pam2zja6llkbcwsyiq-binutils-2.30/bin/strip
stripping (with command strip and flags -S) in /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024/lib
patching script interpreter paths in /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024
checking for references to /build in /nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024...
/nix/store/awa8qw786irlngmq4yri99w52mp07k7z-libdwarf-20181024


🐛 [Bug] Differing behavior for fully-supported models with collection outputs, when toggling require_full_compilation

Bug Description
For model types which are fully-supported in Torch-TRT, but which use complex collections of outputs, for example Tuple[Tensor, Tensor], or Tuple[Tensor, Tuple[Tensor, Tensor]], the compilation behavior of Torch-TRT is different when the flag require_full_compilation is enabled versus not.
When require_full_compilation=False, the model compiles successfully, and the only operations executed in Torch are collections-processing operations. When require_full_compilation=True, however, the model fails with:
RuntimeError: [Error thrown at core/conversion/conversion.cpp:230] Tuple type. Only a single tensor or a TensorList type is supported.

To Reproduce
Steps to reproduce the behavior:

Define a fully convertible Torch model with forward function having the following form:

def forward(self, input : Tensor) -> Tuple[torch.Tensor, Tuple[torch.Tensor, torch.Tensor]]:

Define the Torch-TRT Inputs and compilation settings using require_full_compilation=True, then compile the scripted model:

compile_settings = {
    "inputs": [torch_tensorrt.Input((5, 5), dtype=torch.float)],
    "enabled_precisions": {torch.float},
    "truncate_long_and_double": True,
    "require_full_compilation": True,
}
trt_ts_module = torch_tensorrt.ts.compile(scripted_model, **compile_settings)

Expected behavior
Model should compile with require_full_compilation=True, when containing nested Tuple collection.
Environment

Torch-TensorRT Version: 1.4.0.dev0+f43be5b6
PyTorch Version: 1.14.0.dev20221114+cu116
CPU Architecture: Intel Xeon CPU
OS: Ubuntu 20.04
How you installed PyTorch: pip
Build command you used: python setup.py develop
Are you using local sources or building from archives: local
Python version: 3.8.13
CUDA version: 11.6

Additional context
This bug is related to, but not the same as #1595, as this bug relates to nested collection outputs and not inputs. The resolution to both of these bugs should resolve the overall issue of having fully-compiled models with complex collections of inputs and outputs.
This particular bug also appears when compiling the HuggingFace BERT uncased model with require_full_compilation=True.

Fixed with #1599


added correct line for routing

The onInit method contains the wrong reference for routing. It is using UIComponent instead of this.getRouter. This results currently in a TS error, as UIComponent is not known. Looking at the example source code ex6/com.myorg.myapp/src/controller/IncidenceDetail.controller.ts the correct code is used: this.getRouter().getRoute...
I added the line so the example and the source code match.

Thanks!


Weird behavior of 3x3 vs 3x3 minimal autotiling

Godot version: v3.1.stable.official (installed via steam)
OS/device including version: Ubuntu 18.04, GTX 1080ti
Issue description:
The same tiling works well with "3x3 (minimal)" but breaks with "3x3", even though all the needed tiles are seemingly present.
This is what it looks like with "3x3 (minimal)"

and the exact same setup only switching the tilemap from "3x3 (minimal)" to "3x3"

Steps to reproduce:

Create a tilemap with the following tileset

Create an autotile region and set the bitmasks as shown in the screenshots above
Set the Autotile bitmask to either "3x3" or "3x3 (minimal)"
Draw the pattern as shown with the tilemap

Minimal reproduction project:
If this is a bug and not just my misunderstanding I can provide it.

3x3 needs ALL combinations. 3x3 minimal disregards corners, but 3x3 does not. It checks the EXACT configuration around your tile so your bitmask would need to be

to get the desired behavior. 3x3 is supposed to give you more freedom, but you also need more tiles.
If you're trying to add only a few "new" cases to 3x3 minimal, the autotile system would need a revamp, see the discussion #18960. Maybe this issue could be turned into a feature request?

@isaacremnant ah that makes sense, thanks for the explanation! I guess this could at least be turned into a documentation request :) I'd offer to help but I really don't understand it enough to write it.

I was about to document the 3x3 (minimal) vs 3x3 differences, but #27565 introduced wildcard patterns, so I'm not sure how they fit in the new picture.

Apparently you need to use the complete bitmask tileset for either 3x3 minimal or 3x3 to work properly:
https://github.com/godotengine/godot/issues/37360

This is the correct setting you should use for your 3x3 bitmask example:

3x3 bitmask must match exactly if what you want, 3x3 minimal may disregard bit cornrers.
see here https://github.com/godotengine/godot/issues/37360#issuecomment-630419223


Is it possible to pass in a list of files to mutate?

I see there's a --file argument. Does that only take a single file or a glob? I'm wondering if it's possible to provide a list of files to mutate. I'm trying to run this tool on a pull request and limit the mutations to only the files that were changed. Thanks.

It takes a glob. If there's a slash it's relative to the root; if there's no slash it matches a file in any directory. You can repeat the option, too.
A PR might conceivably introduce a bug in file A that only shows up when you mutate a function in file B, not A, but it's probably less likely.
It would be nice to add docs on this when you get it working!

Ah, perfect. Repeating the option worked for me. I didn't see anything that mentioned you could do that.

I'll leave this reopen to improve the docs

@srazzell take a look at https://github.com/sourcefrog/cargo-mutants/commit/fbfde3d7cab35f49a3ed0f4d53a68a5695a32363 and please let me know or suggest a change for anything that is unclear


convert_flash_mrism: crush when flash30 and no flash5_reg.mgz file

Fixes #11842.
convert_flash_mris function in bem.py file
crush when flash30==True and no flash5_reg.mgz file generated
add dd missing_ok=True as it is done in line 2074

@agramfort Done

Thanks @BabaSanfour!


Only check if master if mongod installed

Stop the fact failing on machines that have the mongo client
installed, but arn't running the server.

Please use the following code to check client & server binaries:
['mongo', 'mongod'].all? {|m| Facter::Util::Resolution.which m}

Updated

++ thanx

+1


Security implications of publishing build report

The https://github.com/lambci/lambci#security section is very helpful.
I wonder if it would be even more helpful if the implications of publishing private repo build logs was added?

I don't know what you mean – can you be more specific? I already talk about this:

HTML build logs are generated with random filenames, but are accessible to anyone who has the link. Set s3PublicSecretNames to false to make build logs completely private (you'll need to use the AWS console to access them), or you can remove s3Bucket entirely – you can still see the build logs in the Lambda function output in CloudWatch Logs.

Shouldn't open issues when tired.


fix: add validator information to email/slack alerts

SUMMARY

This PR updates alert messages by adding the reason why a SQL-based alert was triggered. Information is taken from the alert's validator string.
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
Email:

Slack:

TEST PLAN

[x] local
[x] unit test

ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Requires DB Migration.
[ ] Confirm DB Migration upgrade and downgrade tested.
[ ] Introduces new feature or API
[ ] Removes existing feature or API

Codecov Report

Merging #10762 into master will decrease coverage by 0.99%.
The diff coverage is 80.00%.

@@            Coverage Diff             @@
##           master   #10762      +/-   ##
==========================================
- Coverage   61.11%   60.12%   -1.00%
==========================================
  Files         801      372     -429
  Lines       37754    23791   -13963
  Branches     3555        0    -3555
==========================================
- Hits        23075    14304    -8771
+ Misses      14493     9487    -5006
+ Partials      186        0     -186

Flag
Coverage Δ

#javascript
?

#python
60.12% <80.00%> (-0.72%)
:arrow_down:

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

Impacted Files
Coverage Δ

superset/models/alerts.py
96.80% <75.00%> (-2.03%)
:arrow_down:

superset/tasks/schedules.py
75.74% <100.00%> (ø)

superset/db_engines/hive.py
0.00% <0.00%> (-85.72%)
:arrow_down:

superset/db_engine_specs/hive.py
53.90% <0.00%> (-30.08%)
:arrow_down:

superset/db_engine_specs/mysql.py
79.16% <0.00%> (-12.50%)
:arrow_down:

superset/db_engine_specs/presto.py
70.85% <0.00%> (-10.77%)
:arrow_down:

superset/examples/world_bank.py
97.10% <0.00%> (-2.90%)
:arrow_down:

superset/examples/birth_names.py
97.36% <0.00%> (-2.64%)
:arrow_down:

superset/views/database/mixins.py
80.70% <0.00%> (-1.76%)
:arrow_down:

superset/models/core.py
86.66% <0.00%> (-1.67%)
:arrow_down:

... and 431 more

Continue to review full report at Codecov.

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


test: verify SSR and refine the rest

:tada: This PR is included in version 1.0.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Exception rising while using QueryTimeout

Description
import org.apache.lucene.facet.DrillDownQuery;
import org.apache.lucene.facet.DrillSideways;
import org.apache.lucene.facet.FacetsConfig;
import org.apache.lucene.facet.taxonomy.TaxonomyReader;
import org.apache.lucene.facet.taxonomy.directory.DirectoryTaxonomyReader;
import org.apache.lucene.index.DirectoryReader;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.QueryTimeoutImpl;
import org.apache.lucene.search.CollectorManager;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Sort;
import org.apache.lucene.search.TopFieldCollector;
import org.apache.lucene.search.TopFieldDocs;
import org.apache.lucene.store.NIOFSDirectory;
import org.apache.lucene.store.SimpleFSLockFactory;
import org.junit.Test;

import java.io.IOException;
import java.nio.file.Path;

public class BugTest {

   @Test
   public void test() throws IOException {
      TaxonomyReader taxonomyReader = new DirectoryTaxonomyReader(new NIOFSDirectory(Path.of(
            "src/test/resources/fs-base/root/search/test/221031_130517/categories"), SimpleFSLockFactory.INSTANCE));
      FacetsConfig facetsConfig = new FacetsConfig();

      final DrillDownQuery facetedQuery = new DrillDownQuery(facetsConfig);
      facetedQuery.add("dataclass", "STD"); // if we add dim

      IndexReader indexReader = DirectoryReader.open(new NIOFSDirectory(Path.of(
            "src/test/resources/fs-base/root/search/test/221031_130517/main")));
      IndexSearcher indexSearcher = new IndexSearcher(indexReader);
      indexSearcher.setTimeout(new QueryTimeoutImpl(1000000)); // and timeout

      DrillSideways drillSideways = new DrillSideways(indexSearcher, facetsConfig, taxonomyReader);

      final CollectorManager<TopFieldCollector, TopFieldDocs> collectorManager =
            TopFieldCollector.createSharedManager(Sort.RELEVANCE, 100, null, Integer.MAX_VALUE);

      final DrillSideways.ConcurrentDrillSidewaysResult<TopFieldDocs> r = drillSideways.search(facetedQuery, collectorManager);
      // exception is thrown
   }
}

java.lang.IllegalArgumentException: maxDoc must be Integer.MAX_VALUE

	at org.apache.lucene.facet.DrillSidewaysScorer.score(DrillSidewaysScorer.java:84)
	at org.apache.lucene.search.TimeLimitingBulkScorer.score(TimeLimitingBulkScorer.java:68)
	at org.apache.lucene.search.BulkScorer.score(BulkScorer.java:38)
	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:744)
	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:662)
	at org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:656)
	at org.apache.lucene.facet.DrillSideways.searchSequentially(DrillSideways.java:510)
	at org.apache.lucene.facet.DrillSideways.search(DrillSideways.java:446)

I don't know why there is that restriction. Maybe it is possible just delete
Version and environment details
Lucene 9.4.2

I was looking into this, and the fundamental problem seems to be that the underlying drillsideways scoring implementations (doQueryFirstScoring, doDrillDownAdvanceScoring, and doUnionScoring) each assume that they're going to score through the whole segment (such that they don't play nicely with query timeout).
doDrillDownAdvanceScoring and doUnionScoring both explicitly set:
final int maxDoc = context.reader().maxDoc();

While doQueryFirstScoring and the special-case doQueryFirstScoringSingleDim both have while loops that finish once there are no more docs:
while (docID != DocIdSetIterator.NO_MORE_DOCS) {

So, the exception there is probably not such a bad idea because DrillSidewaysScorer doesn't seem to play nicely with TimeLimitingBulkScorer -- at least it doesn't honor the maxDoc override that TimeLimitingBulkScorer imposes.
On the other hand, maybe we could just pass maxDoc through to the underlying implementations. @gsmiller, do you know if there's any danger from terminating DrillSidewaysScorer before hitting the end of a segment?

I started to work on making DrillSidewaysScorer work on windows of doc IDs, when I noticed the following comment added in TestDrillSideways as part of https://github.com/apache/lucene/pull/996/files:
    // DrillSideways requires the entire range of docs to be scored at once, so it doesn't support
    // timeouts whose implementation scores one window of doc IDs at a time.

Another challenge that I noticed is that the recent change to call finish on collectors only after they've finished would require some more changes, as drillDownLeafCollector and any drillSidewaysLeafCollectors would have their finish method called after a single window.


Ghidra: addresses are not exported for all instructions that begin a basic block

see https://github.com/google/binexport/issues/128#issuecomment-2078054664

@cblichmann I've opened an internal draft to fix this. Please feel free to assign this issue to me.

I think this is referenced in #118 (along with some other issues).


filter several countries

thank you for your application!
I would like to keep track of several countries, but it looks like now it's possible to filter out only one. could I make such a feature request, please?

Did you check the country comparison PR which would allow you to compare
some countries.

@ahmadawais yes,
https://github.com/ahmadawais/corona-cli/pull/14
could work for me


Implement single-node database server using Protobuf

Is your feature request related to a problem? Please describe.
Apart from being as an embedded storage, SolomonDB can support Gremlin query on a single-node database server. We will build client libraries for high level languages to communicate with the server via gRPC. The server should be containerized for a simple setup and installation.
Describe the solution you'd like
Need to parse Gremlin command from string format to bytecode format and send to SolomonDB server for Step execution.

Hey, @chungquantin, are planing to use any specific gRPC server library?

@elliot14A I am planning to use this library from TiKV: https://github.com/tikv/grpc-rs. Any other suggestions?

@chungquantin https://github.com/hyperium/tonic is another great option!

@elliot14A Yea I know that one, maybe I will use that, it is more well-structured

@chungquantin did you start to work on this yet?

@elliot14A I did research and read some open source code for the implementation but has not started yet. You can reference it from IndraDB: https://github.com/indradb/indradb/tree/master/proto

@chungquantin went through https://github.com/indradb/indradb/tree/master/proto seems pretty straight forward.

@chungquantin any update so far?


Add CODE_OF_CONDUCT.md and OWNER_ALIASES

replace toc members in OWNERS file with their alias technical-oversight-committee
/assign @grantr

/lgtm


Fix typo in comment.

framework/components/script/component.js is described in API Reference, so I PR.

Thanks! 👍


[Windows] WinPTY support for Windows < 1809

Windows support is possible by utilizing the Windows conpty API on Windows 1809+ and the winpty library in older version.

As mentioned in microsoft/node-pty, Windows conpty API is only available after Windows 1809 (including), so for previous versions, we have to use WinPTY.
I'll add this support later, maybe in a month. It was traumatising when developing something on Windows.

It has almost been a year since I wrote down this issue, and now I think it's not necessary to implement this feature as Windows 1809 has already passed its eol date.
However, it's likely that there are still some people who are using these versions of Windows. Therefore, I decided to do this if there're people requesting this feature under this issue.


Nuget restore failed when

Issue / Steps to reproduce the problem
Executing ./build.sh to build.
After I investigated, I found in test project using
https://www.nuget.org/packages/Microsoft.NET.Test.Sdk/
And one of dependencies package "Microsoft.CodeCoverage" download always timeout failed.
dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.0.100
 Commit:    04339c3a26

Runtime Environment:
 OS Name:     Mac OS X
 OS Version:  10.15
 OS Platform: Darwin
 RID:         osx.10.15-x64
 Base Path:   /usr/local/share/dotnet/sdk/3.0.100/

Host (useful for support):
  Version: 3.0.0
  Commit:  7d57652f33

.NET Core SDKs installed:
  2.2.402 [/usr/local/share/dotnet/sdk]
  3.0.100 [/usr/local/share/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.AspNetCore.All 2.2.7 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.All]
  Microsoft.AspNetCore.App 2.2.7 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.AspNetCore.App 3.0.0 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 2.2.7 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
  Microsoft.NETCore.App 3.0.0 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]

Relevant parts of the log file
IdentityServer4: dotnet build ./IdentityServer4.sln -c Release
Microsoft (R) Build Engine version 16.3.0+0f4c62fea for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restore completed in 4.31 sec for /Users/timoyan/Documents/github/IdentityServer4/src/IdentityServer4/src/IdentityServer4.csproj.
  Restore completed in 4.33 sec for /Users/timoyan/Documents/github/IdentityServer4/src/IdentityServer4/host/Host.csproj.
  Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json'.
  The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
  Retrying 'FindPackagesByIdAsync' for source 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json'.
  The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json' timed out because no data was received for 60000ms.
    Exception of type 'System.TimeoutException' was thrown.
/usr/local/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): error : Failed to retrieve information about 'Microsoft.CodeCoverage' from remote source 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json'. [/Users/timoyan/Documents/github/IdentityServer4/src/IdentityServer4/IdentityServer4.sln]
/usr/local/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): error :   The download of 'https://api.nuget.org/v3-flatcontainer/microsoft.codecoverage/index.json' timed out because no data was received for 60000ms. [/Users/timoyan/Documents/github/IdentityServer4/src/IdentityServer4/IdentityServer4.sln]
/usr/local/share/dotnet/sdk/3.0.100/NuGet.targets(123,5): error :   Exception of type 'System.TimeoutException' was thrown. [/Users/timoyan/Documents/github/IdentityServer4/src/IdentityServer4/IdentityServer4.sln]

sorry - can't repro.


Update pagerduty Authorization to Token token

Hey, I just made a Pull Request!
Closes https://github.com/backstage/backstage/issues/6142
Updated the Authorization of Pagerduty from "${PAGERDUTY_TOKEN}" to "Token token=${PAGERDUTY_TOKEN}"
Docs: https://developer.pagerduty.com/docs/rest-api-v2/authentication/#api-token-authentication
:heavy_check_mark: Checklist

[ ] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[ ] All your commits have a Signed-off-by line in the message. (more info)

Ah, great catch! Now it matches the plugin documentation 🙂
Contributions to Backstage must be signed-off (DCO), there's instructions on how to fix that in the failed DCO check.
If you're committing on the command-line with git, you can add a -s flag to commits to sign automatically. This requirement unfortunately doesn't play nicely with the GitHub web UI, if you used that. Eager to pop this in once the check is fixed!

@timbonicus I fixed the issue in #6149 Please review


[#757] Update Link component

Fixes #757
Changes
📸 Looks like

How to QA
👀 Visual changes

git checkout main
git pull
git checkout feature/757-update-link-component
yarn
yarn storybook
navigate to base/anchor and atoms/link

Check:

[ ] The appearance matches the design in Zeplin
[ ] The Zeplin component is correctly linked in storybook
[ ] The documentation for this component is correct, understandable, and up-to-date.

👾 Code changes
Check:

[ ] The documentation for this component is correct, understandable, and up-to-date.
[ ] The component makes good use of CSS custom properties to simplify creating variants (or doesn’t have variants).
[ ] Everything that should be a variable, is.

Preflight checks

[x] Storybook documentation has been updated
[x] Fixtures in test/scss/ have been updated
[x] Your changes have been added to the unreleased section of CHANGELOG.md

Converted to draft as there are design updates in zeplin that will be implemented here


I want to use my Live Server Reviewer but my F1 function will not respond.

Is your feature request related to a problem? Please describe.

Describe the solution you'd like:

Describe alternatives you've considered:

Additional context:

I have no idea what that means, but here is a video how to use the extension with live server:
https://www.youtube.com/watch?v=HRpG_LLx0fI&feature=youtu.be


[QST] fit transform on different features or datasets

I am looking for a way to apply workflow.fit() (with only one categorify step) and then transform on seperate features or a seperate dataset (like scikitlearn.preprocessing.LabelEncoder), is that possible?

@pyagoubi  thanks for your question.  Yes you can use Categorify for the similar functionality happening in  scikitlearn.preprocessing.LabelEncoder. Here is some code snippet for you:
import nvtabular as nvt
from merlin.core import dispatch
from merlin.core.dispatch import make_df
from nvtabular import *

df = dispatch.make_df(
    {
        "user": ["User_A", "User_A", "User_E", "User_B", "User_C"]*2,
        "item_id": [1, 2, 1, 3, 8]*2,
        "user_categ": [101, 101, 102, 104, 105]*2,
    }
)

df_new = dispatch.make_df(
    {
        "user": ["User_A", "User_F", "User_E", "User_E", "User_C"]*2,
        "item_id": [8, 2, 4, 5, 1]*2,
        "user_categ": [101, 107, 102, 102, 105]*2,
    }
)

cat_names = ["user", "item_id", "user_categ"]

dataset = nvt.Dataset(df)
cats = cat_names >> nvt.ops.Categorify()
workflow = nvt.Workflow(cats)
# fit based on stats from df
workflow.fit(dataset)
# transform the dataset
new_gdf = workflow.transform(dataset).to_ddf().compute()
print(new_gdf)

# transform the new dataset
new_dataset = nvt.Dataset(df_new)
new_gdf2 = workflow.transform(new_dataset).to_ddf().compute()
print(new_gdf2)

In the example code above, we only fit the workflow once with a train set (as in SKLearn), and then we can transform the new dataset columns. Please note that, if you want to transform columns in a new (separate) dataset, the column names in the new dataset should match with the train set (the one we use to fit the workflow).
let us know if that helps, or you have further questions.


Update tests to reflect new Technical Competence section

The ordering of sections and questions for buyers writing a set of requirements has changed.
The changes here reflect the new flow, and also capitalisation of all links on the requirements overview page.
I have run these against current preview and all tests pass EXCEPT the checking that all sections are ticked, which fails because of a genuine application bug that is currently being fixed.

Looks good. 👍


🚸 TinaCMS - Improve the reference field selector

CC @wicksipedia @tkapa
Hey Team,
Description:
There are a few issues with the reference type field.

It uses the native os and browser dropdown list components so the experience varies
Only the filename is sent so there isn't much that can be done to filter and work with the reference.

Tasks

[x] Create a dropdown list component that is consistent
[x] Allow user to search/filter dropdown options
[ ] Update docs

Screenshots

Figure: MacOS

Figure: Windows

As per my investigation, this will be the closest component that we looking for combobox
All reference component stay in reference folder in tinacms

Following task:

[ ] Try implement the shadcn combobox into current references field component
[ ] Fix popover CSS (some ui rendering issue making the popover content not showing)
[ ] Migrate code and state from previous select component to new combobox component
[ ] Test if combobox working as original select with search functionality
[ ] Implement style option for reference field type

Task left for this PBI

[ ] Update Tina io docs for reference field component update

Notes :

For current approach title / name field need to be exist in the reference field for the display list to show both title and file name

Before:

After:

Hey @HenrySkup
Yes sorry about that, we have a fix in the newest version. Please update both tinacms and @tinacms/cli to the latest version


summary.csv is missing

summary.csv is missing

summary.csv has been deleted since it is no longer updated.

I was originally parsing your json file, but you said that might change and so I should parse the csv files because you said those wouldn't change.


Feature/add structured logging interface

Description
In succession of #201 this is my first try to implement the log interface like
heph::log(heph::Level::WARN, "message", {"num", 123}, {"test", "lala"});

I tried doing the variadic interface but struggled to get the template deduction guides working that are needed to combine the variadic interface with source_location  with direct intitialization via {}.
Any ideas?
another way would be to have a class
struct MessageWithLocation {
  std::string value;
  std::source_location loc;

  MessageWithLocation(std::string s,
                     std::source_location l = std::source_location::current())
      : value(s), loc(l) {}

};

that would be used instead of std::string for message input type. However I am not sure if then implicit conversion from string would be possible (heph::log(heph::Level::WARN, "message") vs heph::log(heph::Level::WARN, {"message"})
Type of change

New feature (non-breaking change which adds functionality)

@johannes-graeter thanks for the effort! what seemed like a normal task is becoming a fight for humanity.
I am starting to think that there is no escape from macros.
ht::log(ht::Level::INFO, "testing absl log sink with field", FIELD(num));
I tried briefly to make it work with MessageWithLocation but I didn't have success. I can try more in the next days.
@lievenvanderheide do you happen to have any idea how we could make this work?

There is a few more things I would like to try.
A. In the oroginal article I got this from https://stackoverflow.com/questions/57547273/how-to-use-source-location-in-a-variadic-template-function#57548488 the message with location is not a string but a const char* and if the example is valid it is directly initializable... perhaps this is a straw
B. Interface without {} so
log(Level::WARN, "message", "field1", field1, "field2", field2)

Don't really like it since I am missing visual separation of the fields but better than using macros...

There is a few more things I would like to try. A. In the oroginal article I got this from https://stackoverflow.com/questions/57547273/how-to-use-source-location-in-a-variadic-template-function#57548488 the message with location is not a string but a const char* and if the example is valid it is directly initializable... perhaps this is a straw B. Interface without {} so
log(Level::WARN, "message", "field1", field1, "field2", field2)

Don't really like it since I am missing visual separation of the fields but better than using macros...

You are right this (log(Level::WARN, "message", "field1", field1, "field2", field2)) would look better than a macro, although it could cause issues if user forget to pass the variable.

Amazing work @johannes-graeter, I think I like PropA the best, it is slim and clear. There is still the risk of missing a value and mixing keys with values, but that I think is an acceptable risk.


GROOVY-7640 fixes

Here is a test that demonstrates the bug and the fixes for Default-, Initializer-, and ExternalStrategy.
I'm still working on the fix for the SimpleStrategy and I might enhance the tests for all strategies.

Please rebase rather than merge upstream commits, it keeps the commit log cleaner.

The proposed code changes look good. However, for consistency with several other AST transforms, I think we should have an includeSuperProperties flag to turn on this behavior. Also, we need to update the Builder section of the core-metaprogramming.adoc file with doco/examples.

@paulk-asert Since this pull request seems to be abandoned, I took a look at making the changes you suggested.
It seems like it is not possible to add this feature to the SimpleStrategy. When you replace getInstancePropertyFields(buildee) with getSuperPropertyFields(buildee) the test for the simple strategy still fails with  The return type of Person setAge(int) in Person is incompatible with void in Mamal.
As SimpleStrategy does not support most of the other configuration options, I guess this is o.k.? What do you think?

I merged the pull request and did the updates Paul requested. Thanks! :+1:


ASK - How To Use This Module Into  in Native HTML Without Using React?

Hi There, I Want To Ask How To Use This Module Into  in Native HTML Without Using React?
Thanks For Advance

Currently only supports React version


[TextView] [CSS] text-transform support?

Hey,
Given recent updates to text-decoration implementation, I was wondering if this would've been in scope of React Native? I know we can pretty easily do this:
<Text>{'something'.toUpperCase()}</Text>

but having universal apps in mind, basic support for upperCase and lowerCase would be nice.
<Text style={{textTransform: 'uppercase'}}>something</Text>

Depending on how Text is rendered, either basic NSString bindings below might be used or plain JS methods:

capitalize  - NSString -capitalizedString
uppercase - NSString -uppercaseString
lowercase - NSString -lowercaseString

If the answer to my question is Yes - I am happy to add in this in a PR.

Not sure I understand the request - what do you want exactly that you can't do with plain JavaScript?

On Jul 22, 2015, at 11:22 AM, Mike Grabowski<EMAIL_ADDRESS>wrote:
Hey,
Given recent updates to text-decoration implementation, I was wondering if this would've been in scope of React Native? I know we can pretty easily do this:
{'something'.toUpperCase()}
but having universal apps in mind, basic support for upperCase and lowerCase would be nice. If the answer to my question is Yes - I am happy to add in this in a PR.
—
Reply to this email directly or view it on GitHub.

Well, just wondering what are the pros/cons of implementing textTransform so we don't have to use plain JS (it's mainly for the sake of CSS-like approach as I am happy with plain JS anyway). Not a real issue, feel free to close if no point in implementing.

Our general philosophy on RN is not to provide APIs unless they both
provide clear value and can't be reasonably done otherwise. Since you can
easily use JS to do this, I don't think we'll provide specific support for
it.
On Wed, Jul 22, 2015 at 1:10 PM Mike Grabowski<EMAIL_ADDRESS>wrote:

Well, just wondering what are the pros/cons of implementing textTransform
so we don't have to use plain JS (it's mainly for the sake of CSS-like
approach as I am happy with plain JS anyway). Not a real issue, feel free
to close if no point in implementing.
—
Reply to this email directly or view it on GitHub
https://github.com/facebook/react-native/issues/2088#issuecomment-123668794
.

Adding on to @sahrens' comment above, if anyone comes across some use cases where there is a significant benefit to doing this in a style rather than with JS, please post them here so we can consider!

+1 strongly in favor of keeping code in user space.

Just stumbled upon this thread from Google; I'd say that adding textTransform support is necessary to separate your concerns. As others have pointed out, you can do this in JS, however what's the point in having a class full of styles and then having to use JS to force caps.
Say a couple of months down the line you don't wish to use caps any more then you've got to trawl through your app removing all the references to it. Having this as a style would alleviate that problem.

@brentvatne Just dropping in to echo @mikefrancis's comments, which are right on the money in my experience.
Here's a quick example from a project I'm working on. This is the same screen with two different design options — labels rendered in title case, or labels rendered in small caps.

There's two things that make a textTransform property attractive to me in this case. The first is that I think there's a semantic difference between setting the actual content of <Text> to CITY rather than City. If preserving that semantic state is important, then I think this becomes a matter of style.
The second is to @mikefrancis's points around separation of concerns and maintainability. If it's a matter of style, then it makes sense to manage it with stylesheets. I see it as sort of analogous to inline styles in HTML — they'll work, but if the rest of the app uses stylesheets, it's a lot less flexible to have presentational styles mixed into markup.
Here's a sample of the JSX for both of those views:
Title Case:
<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label') }>Address Line 1</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label') }>Address Line 2</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label') }>City</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label') }>State</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label') }>Zipcode</Text>
</View>

And the same code modified for small caps:
<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label.upper') }>{'Address Line 1'.toUpperCase()}</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label.upper') }>{'Address Line 2'.toUpperCase()}</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label.upper') }>{'City'.toUpperCase()}</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label.upper') }>{'State'.toUpperCase()}</Text>
</View>

<View { ...style('field') }>
  <TextInput
    { ...style('input') }
  />
  <Text { ...style('label.upper') }>{'Zipcode'.toUpperCase()}</Text>
</View>

In the second version, a simple design change requires a lot of updates to the template content itself. Even going the "Find and Replace" route would be pretty tricky.
I also find that in many scenarios, small caps tend to look better with a little bit of letterSpacing applied. In that case, I'd also end up modifying my styles too.
IMO, it's a lot of overhead for a common use case, and something that could go from all this to a single line in a stylesheet with textTransform support.

Another option is to wrap the Text component with one that adds the capabilities that you want, so then if you have the uppercase prop set on it, it will toUpperCase() everything. Can you create an issue on ProductPains that includes the great description of the problem that you just stated @jonlong?

@brentvatne sure thing — done: https://productpains.com/post/react-native/texttransform-should-be-available-in-stylesheet/

+1 I really need this on a specific app that uses it a lot. Thanks!

I'm in a situation where I can't access the Text tags directly that I want to put uppercase because I'm dynamically generating them - thus, applying conditional JS is much harder than just passing in styles.

+1 for me as well. I am a designer which likes to develop UI's when I get the chance. Unfortunately, my Javascript skills are not great, yet. Having a more CSS centric approach to building UI's would really help me. Granted I should probably just learn Javascript and be done with it. However, I am sure there are others like me which like to code UI's but have not reached the level where they can use Javascript as an alternative. My 2 cents.

+1 it's clearly a style concern. it was a concern on the web and now on mobile.
I wouldn't want to worry about conditionally upper-casing text of a button component every time I use it but rather specify its style exactly like color or font-size, especially when I have to support two different style for the same component, each one with different text-transform style (Android vs iOs)

+1

+1

+1

+1

+1

the advantage of css "class" is to not duplicate codes.
I strongly think we need "whole supports" css system for RN.

+1

+1

+1

For all the folks posting "+1" feedback in this thread, consider that it triggers a notification (often an email) not just for the React Native team, but for anyone subscribed to the thread (which can easily be several hundred people at once).
On behalf of those who'd like to keep tabs on this thread's progress without receiving daily "+1" emails, please consider using GitHub's reaction feature — it's a nice new way of registering +1-style feedback without blanket notifications to an entire subscriber list:

+1

So is this happening, or is it just closed and left to die? 😕

Why closing this? It seems so imature decision to not support obvious CSS properties and to duplicate the code for cross-universal apps!
This is a very easy to be implemented native but very hard to duplicate and take care of it in every single app.

+2

It seems like there is enough desire here that if someone wants to submit a PR for this, we'd probably take it.

+1 We're building components that work in both web and react-native and using JS to transform text in web feels so wrong.

Can this be reopened if a PR will be accepted?
It is a bit weird to have someone write up a request on ProductPains, state that a PR will likely be accepted, all while keeping the issue closed; it sends mixed messages, and since people use the issues to help decide what they want to work on it is pretty disingenuous.

I agree with @mikefrancis and @jonlong opinions.
Another issue that I face is when you are dealing with optional text nodes, for example.
Doing something like

render() {
  let { thisMightBeNullOrText } = this.props;
  if (!!thisMightBeNullOrText) {
    return (
      <Text>{thisMightBeNullOrText}</Text>
    );
  } else {
    return null;
  }
}

seems worse than

render() {
  let { thisMightBeNullOrText } = this.props;
  return (
    <Text style={styles.toUpper}>{thisMightBeNullOrText}</Text>
  );
}

const styles = StyleSheet.create({
  toUpper: {
    textTransform: 'uppercase',
  },
})

Our general philosophy on RN is not to provide APIs unless they both
provide clear value and can't be reasonably done otherwise. Since you can
easily use JS to do this, I don't think we'll provide specific support for
it.

@sahrens Providing clear value means you'd come to the conclusion that textTransform is far superior than inlining a toUppercase() all over  elements which quickly leads to unmaintainable code. With a pseudo CSS property it can be applied to multiple elements and imported anywhere you need it.
I think there is still a lot of interest and desire in adding this into the API. Why not accept a PR to do it?

+1

+1

+1

+1

+1

+1

@sahrens @brentvatne given the amount of interest this thread gets, do we want to accept such PR? If yes, happy to work on it.
Otherwise, I guess we can lock the thread.

+1

+1

+1

Yeah I'll take a PR.

Our general philosophy on RN is not to provide APIs unless they both provide clear value and can't be reasonably done otherwise. Since you can easily use JS to do this, I don't think we'll provide specific support for it.

This issue has been closed for a while I see, but I just discovered it via Google and I'm surprised to see what I would consider the most obvious use-case for this feature not mentioned. CSS text-transform allows you to copy the original text to the clipboard independent of its appearance. I can't see any way this can be easily done with JS. Perhaps with some event capturing intercepting the clipboard copy and altering the content, but this hardly seems straightforward.

Another use case for textTransform is if you are using react intl's . You must wrap the message in a  to style anything in  - you can't use toUpperCase() with  and if you want to uppercase your text, there's nothing to do this.

Our general philosophy on RN is not to provide APIs unless they both provide clear value and can't be reasonably done otherwise.

Separation of concerns is important. It is counter intuitive to do this in JS.

+1

+1

+1

+1

+1

+1

+1

+1

+1

To get capitalized text you need to make your own JavaScript function as there are no one natively.
So in that case textTransform would have clear value.

2 years later, another brick in the wall 😂

I guess I will be using toUppercase.

So it's late 2017 and this still hasn't been agreed to? 🙄

So... @sahrens - any PRs that have been posted to implement this much-needed feature?
Like others mentioned, separaton of concerns, maintainability and DRY are extremely important points to solve here.
Also, keep in mind that this helps when porting React web to RN as well, which is a very important aspect, too.
I don't see a reason why nobody in RN team could quickly throw a PR for this and get it merged. It's like, what, 3-4 hours of work max for someone familiar with the framework's and Android's / iOS inside-outs?

+1

It should be default behavior that React-Native at least has 1:1 coverage to the basic CSS functionality that people use. Yes this can be done with JS, but depending on the situation it can be a lot simpler to do this with CSS.

This is a daily thread, always exist, never close

+1.
Can't believe why this is still not there after years of being asked. First time I've checked this I was working on a white label platform that would spawn several apps with different themes.... It has all of the theming separated in style objects properly and yet having texts changing case depending on the theme still needs to be dealt with on the React component itself, where it does NOT belong

It is just a text-transform, but it takes more than 2 years ... 😂

@NySiya - strange that nobody has bothered to submit a high quality pull request to solve this problem in 2 years! this is open source, after all 🤔

Here's an elegant way to deal with this in ES6:
Extend the String object:
Object.assign(String.prototype, {   toTitleCase() {     return this.toLowerCase().split(' ').map((word) => {       return word.replace(word[0], word[0].toUpperCase());     }).join(' ');   }, });
Then access this new method with:
// transforms 'some string' to 'Some String' String('some string').toTitleCase();

Here's an elegant way to deal with this in ES6

I think you might be overlooking the problem here. Where would you propose to run this method? On render or on copy?
There are two steps in this process:

Displaying the text to the user in the desired format - this is very easy to do - I don't think anyone in this thread has a problem with this step.
Retaining the original text and providing the user/clipboard with access to this text - this is the hard problem which is non-trivial to do in RN.

As far as I can see, your method only addresses step 1 (which was already solved/simple)?

Another use case for text-transform that I just ran into is if you have nested Text elements to combine styles only the inner most text element has access to the string, so the outer ones can't do something like toUppercase().

+1

TL;DR I've implemented this in prism
From a userspace point of view it is more complicated than you might think. We need to mutate children and then only text nodes (implementation is here).
To be able to deal with textTransform in style rules we cannot pass it directly to StyleSheet.create() (it will error) so it is dealt with as an invariant.
I've looked a little at the RN code and it appears to me it would be non-trivial (although welcome if implemented!) as setStyleAttributePreprocessor quite rightly has very little knowledge of other parts of the code (how does textTransform translate to mutating children? - I'm not sure). My guess is that it is not so simple to implement at the moment.
There is an important caveat regarding none in the textTransform docs.
Maybe the last +1? We have something in userspace, let's use it.

I created this PR which implements a textTransform Text style for iOS.   https://github.com/facebook/react-native/pull/18387

+1

I'me somewhat surprised that serious developers on this project have suggested using JS to modify text strings when text-transform is a pretty standard and commonly used style.  How is this still missing 2 years later?

+3

+1

+1

@nmerchant Especially since there's a PR for it by @TomSwift . Maybe @sahrens can reevaluate?

@nmerchant @philtrep I believe we're really close to having my PR merged.  It's a slower process than I'd realized.

@TomSwift that's only half the solution though...still need Android support :( but nevertheless, bless you for taking this up.

+1

+1

+1

+1

+1

+1

+1

I'm not sure this weird +1 posting will achieve anything, except alerting everyone who is still subscribed to this. There are emoji reactions on github now and since this has been closed it would probably make much more sense to open a new issue about android support for this. What's really needed is someone with the needed Android experience to create a pull request though.

+1

+1

@mrruby @julialuk if you want this to happen, help to bring forward a pull request, or sit in silence and subscribe to this issue. +1 spam is not helping this to come forward at all, it will only lead to people unsubscribing from this issue.

+1


The annotation for nullable reference types should only be used in code within a '#nullable' context.

After converting my project to c#8 and fixing all the problems. Every warning was removed, and suddently I got 97 Warnings of these
Warning	CS8632	The annotation for nullable reference types should only be used in code within a '#nullable' context.
Do I need to add the #nullabel context if I used <NullableReferenceTypes>true</NullableReferenceTypes> in the proj file?

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

ID: a690704d-da32-dca7-ea3e-66b84fb1d00d
Version Independent ID: 11f314de-dd3a-362e-b2bb-d0a2133cfc7b
Content: Nullable reference types
Content Source: docs/csharp/nullable-references.md
Product: dotnet-csharp
GitHub Login: @BillWagner
Microsoft Alias: wiwagn

@arivoir Adding the <NullableReferenceTypes>true</NullableReferenceTypes> in your csproj, in a PropertyGroup should work fine.  A couple things to check:

Do you also have the C# 8 compiler turned on? Check the LangVersion element to make sure its set to 8.0
Did those warnings go away as the IDE re-ran the analysis on the code? I've found initial  incorrect warning indicators go away after the IDE has run a full analysis on the project.

@BillWagner Yes, I have the LangVersion tag correctly. Actually I could migrate the project correctly and fix all the bugs that appeared because of the change to c#8. Now I'm seeing the warnings are comming from the Intellisense, because when I change the "Build+IntelliSense" combo box of the "Error List" to just "Build" they go away. Neither Analyze nor Clean nor Rebuild nor deleting bin and obj folders make any difference.
I'm using the following project to test Open.Flickr
Please let me know if you need more info.

@jcouv I tried restarting Visual Studio and even the PC, but the problem is still there. Once you open the project it takes some seconds, apparently running the Intelli-sense, and the "Error List" is re-populated with these warnings.

@arivoir One more question: if you build the project (F6) and look at the Output pane, do these warnings also appear there?

@jcouv No, they do not appear in the "Output" pane. Only in "Error List"

@arivoir I talked to a coworker and I think we've figured this out.
There are two types of project files: legacy-style (big and gnarly) and new-style (short and sweet). The NullableRerenceTypes property is only fully understood in the new-style project files in dev16.0 preview1.
I suspect you have a legacy-style project file. So what happens is that Build does the right thing, but when the IDE tries to approximate the build process (Intellisense) it did not properly account for the NullableReferenceTypes property.
This will be fixed by the time C# 8.0 ships, and it is tracked by https://github.com/dotnet/project-system/issues/4058
In the meantime, you can use the "Build" filter (instead of "Build+Intellisense"), or if the project is small you could add #nullable enable to every file. Sorry for the confusion and inconvenience.

@jcouv I'm afraid it is not the case. It's actually using the new style Open.Flickr.csproj You can get the project and try in your environment. Please let me know whether you're having the same issue as me.

I originally found this problem in preview1, and then upgraded to preview1.1 where the problem continued.
Please let me know if there is any log or something I can make to help.

I tried this on a preview 1 (VisualStudio.16.Preview/16.0.0-pre.1.0+28329.73), but still couldn't repro.
I would be tempted trying to "repair" your preview 1 (or 1.1) installation.
Tagging @heejaechang in case he has some ideas. To summarize, the issue is that the "Error List" with  "Build+IntelliSense" filter shows some nullable warnings that appear nowhere else (neither in "Output" pane, nor in "Build" filter).
Do you know how to troubleshoot this?

Closing this based on above discussion and issue.

for .net framework project it doesn't work
I mean I created 2 projects .net core and .net framework
put the same settings:
<LangVersion>8.0</LangVersion>
<NullableContextOptions>enable</NullableContextOptions>

and you know what
the new feature become active only for .net core app
and .net framework app still has the same behavior getting me the following warning:
Warning	CS8632	The annotation for nullable reference types should only be used in code within a '#nullable' context.
What i did wrong ?
So now I'm only able to enable this feature for my .net framework app via  #nullable enable

ping @jcouv for insight here.
Are the compiler switches different for .NET Framework apps?
@isxaker Is your .NET Framework project using the or the old style CSPROJ file? I don't know if that makes a difference, but it's worth knowing.

@isxaker Is your .NET Framework project using the or the old style CSPROJ file? I don't know if that makes a difference, but it's worth knowing.

@BillWagner
Didn't get it clear enough.
I just go to VS2019 click new project -> console app(.net framework)
And that's all. I can't turn this feature on via .csproj file.
The only one way how I'm able to turn this feature on for .net framework app is using #nullable enable

@isxaker 	works fine for me with .NET Framework

@isxaker works fine for me with .NET Framework. Maybe it's fixed now?

can you post here your .csproj file please

@isxaker
Okay, I've tested it and it doesn't seem with to work with .NET Framework unless you add #nullable enable in your code.
<NullableContextOptions>enable</NullableContextOptions> is ignored in old style projects.
but after converting to new csproj format it works with .NET Framework:
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <ProjectGuid>{C192613D-2431-40F2-BA13-33B5B55241A5}</ProjectGuid>
    <OutputType>Exe</OutputType>
    <TargetFramework>net45</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <NullableContextOptions>enable</NullableContextOptions>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
    <AssemblyTitle>NullableReferenceTypesNetFramework</AssemblyTitle>
    <Product>NullableReferenceTypesNetFramework</Product>
    <Copyright>Copyright ©  2019</Copyright>
    <OutputPath>bin\$(Configuration)\</OutputPath>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
    <DebugType>full</DebugType>
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
    <DebugType>pdbonly</DebugType>
  </PropertyGroup>
  <PropertyGroup>
    <StartupObject />
  </PropertyGroup>
  <ItemGroup>
    <Reference Include="System.Data.DataSetExtensions" />
    <Reference Include="Microsoft.CSharp" />
    <Reference Include="System.Net.Http" />
  </ItemGroup>
</Project>

Also it doesn't work with ReSharper (but compiles fine).
additional notes:
Nullable<string> doesn't compile, and string? is missing System.Nullable properties like HasValue and Value

The option has been renamed to <Nullable>, so that <Nullable>enable</Nullable> in the csproj file now enables the nullability feature for all code files in the project (see https://github.com/dotnet/roslyn/issues/35432).

The option has been renamed to <Nullable>, so that <Nullable>enable</Nullable> in the csproj file now enables the nullability feature for all code files in the project (see dotnet/roslyn#35432).

Great. That is a good simplification. I must have missed that in the release notes. Thanks for the hint.

Just to clarify, SDK 2.2.204, 2.2.300 and 3.0.100-preview5-011568 still appear to use NullableContextOptions in Microsoft.CSharp.Core.targets
The same with Visual Studio 2019 16.1 (C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\Roslyn\Microsoft.CSharp.Core.targets)
2019 16.2 Preview does have have it though (C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\MSBuild\Current\Bin\Roslyn\Microsoft.CSharp.Core.targets)

I just enabled nullable like this
<PropertyGroup>
    <TargetFramework>netstandard2.1</TargetFramework>
    <LangVersion>8.0</LangVersion>
    <Nullable>enable</Nullable>
  </PropertyGroup>

and my project is failing to compile 'Invalid 'nullable' value: 'Enable' for C# 7.3. Please use language version 'preview' or greater'. I'm using .NET Core 3 preview 6 and Visual Studio 16.2 Preview 2

I'm getting this issue. Here's my project settings:
<PropertyGroup>     <TargetFramework>netcoreapp3.0</TargetFramework>     <nullable>enable</nullable>     <AssemblyName>[assemblyname]</AssemblyName>   </PropertyGroup>
Adding LangVersion doesn't have any impact. This appears to align with updating to VS2019 16.4, however I cannot say that for certain. Nullable reference types were being used prior to the update without this message being decorated everywhere.

I was facing this kind of issue at my nullable reference type property declarations, so I kind of accidentally found the solution for this warning by setting nullable as you do a region block and the parameter values dug up by @xuhongxu96 and @jcouv.
So in the end my code ended up looking like this
\#nullable enabled     public Type? TypeProp { get; set; } \#nullable disabled
So my guess is that depending on the type of situation you are facing, you should use one of the values mentioned in @jcouv 's answer, then disabling the setting by ending the block with #nullable disabled, if you prefer.

Except that's not a solution to the issue, since setting <nullable>enabled</nullable> in the project file is supposed to negate the need for that directive. In fact, when nullable is enabled, really the only practical usage of the directives at that point is to use them to phase in the nullable functionality file by file (by using #nullable disable).
For some reason, in my situation the evaluation is ignoring the existence of the nullable setting in the project file.

My latest solution was to implement it as suggested by other answers and it worked just fine. NET Core versions older than 3.0 may still face the issue probably because their framework versions don't use C# 8.0 yet, which is used by default by VS 2019 as its IntelliSense compiler, as far as I know. Those cases will require either different fixes, maybe tinkering with the IDE settings, or for them to be worked on exclusively via VS 2017 instead.
Based on Microsoft's [own documentation] (https://docs.microsoft.com/en-us/dotnet/csharp/nullable-references#nullable-contexts), I reached the following solution:
    <Project Sdk="Microsoft.NET.Sdk.Web">
        <PropertyGroup>
            <TargetFramework>netcoreapp3.1</TargetFramework>
            <LangVersion>8.0</LangVersion>
            <Nullable>annotations</Nullable>
        </PropertyGroup>
    </Project>

That enables the nullable context, eliminating the CS8632 warning message - disregarding the need for a #nullable block declaration - and disabled the nullable warning context, ensuring that nullable checks will be enforced against nullable reference types.
Also, you won't see it happen until you restart VS completely, since IntelliSense uses the last loaded setting for real time compilation.

All of my project settings are correct as it pertains to what behavior I am expecting to see in the project regarding any nullable reference type warnings. However, after further investigation on another developer's development environment, it was determined that the latest version of ReSharper is the cause of the issues I'm seeing. So I will redirect my issue reporting to their issue tracker. Thank you.

Thanks @Tiramonium It worked for me.

I have the following in my.csproj file. When running in vscode on my local machine, it doesn't throw any warnings/errors. But when I build it in the Azure pipelines task, I get a bunch of these CS8632 warnings..  Any idea what might be happening?
 <TargetFramework>net5.0</TargetFramework>
 .
 .
 <LangVersion>9.0</LangVersion>
<Nullable>enable</Nullable>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<AnalysisMode>AllEnabledByDefault</AnalysisMode>
<EnableNETAnalyzers>true</EnableNETAnalyzers>

@ata18 Just to confirm, when you're doing a local build (say from command-line, not VSCode), are you getting the expected nullability warnings?
There's also a small possibility that the specific compiler versions used in pipeline task and locally differ. The nullability feature has had revisions. You could troubleshoot this by confirming the compiler versions (add #error version to your source to create a diagnostic outputting the details).

@ata18 first of all, if you noticed, this warning got introduced in C# 8.0 and I'm assuming it carried onto 9.0 as well, which is used by NET 5.0. If you had read this thread you would have noticed that <Nullable>true</Nullable> enables this check instead of disabling it.
Another thing I noticed in your settings that might be causing unexpected results is that you set it to treat warnings as errors with <TreatWarningsAsErrors>true</TreatWarningsAsErrors>, so your Azure Pipeline(s) might be failing precisely because of that.

@jcouv Thanks for your response, I will check the compiler versions.
@Tiramonium You are correct. I know that true enables the check. And I have fixed all the errors related to nullable references and running it locally has no more warnings. However, I still get these CS8632 warnings in Azure pipelines.

@ata18 I just noticed a very basic error in your code. String is a C# reference type which inherently implements its nullable version, same with generic reference types like Object and Dynamic, therefore there's no such thing as a string? property.

@Tiramonium I don't think that is true with c# 8+.
https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/builtin-types/nullable-reference-types

Enabling <Nullable>enable</Nullable> on my current project just got it from 1 warning to 265 warnings 😱


Language not available

Describe the bug
It might not be a bug, but when I login to CR I can see a series available in en-US dubbed but when I try and download it I get the error that en-US is not available.
To Reproduce
I tried to download Demon Slayer S1 in en-US
$ crunchy ...

**Expected behavior**
Download the english version

**Client (please complete the following information):**
 - OS: Ubuntu
 - Version crunchy-cli 3.0.0-dev.13

Looking into this further I think it's because I am in Germany so it's only picking up the german website not the American website which has English available.
Perhaps I will have to VPN into it unless there's a way to change which website it connects to?

Nope, it's back. Cannot login from one terminal but I can on a terminal on another machine.

Ok, so it's not a bug, I think it's Cloudflare protection.


Add bdist_wheel to pypi release

Coverage remained the same at 100.0% when pulling d6f01fb3c7306616e5c6a523831b6bffe336c0de on pypi/add-bdist-wheel into 1286a2964ba6df6da19eeaadb6edc5cf301a169a on master.

Coverage remained the same at 100.0% when pulling d6f01fb3c7306616e5c6a523831b6bffe336c0de on pypi/add-bdist-wheel into 1286a2964ba6df6da19eeaadb6edc5cf301a169a on master.


compose_actions: Change .css() calls to obj notation.

This improves syntax consistency and maintainability.
Fixes part of #18723

This PR Aims for:

Clarity and consistency: Standardizing on object notation ($(...).css({"background": "blue"})) improves code readability and reduces confusion caused by mixed styles.

Maintainability: Object notation allows for adding or removing multiple style properties easily in the future, making code more adaptable.

Efficiency: Replacing $(...).css("display", "none") with .hide() leverages jQuery's built-in functionality for a common operation, potentially improving performance.

Separation of concerns: Using external markup for elements with constant styling promotes cleaner separation between structure and style, improving code organization and flexibility.

Self-review checklist

[x] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[ ] Highlights technical choices and bugs encountered.
[ ] Calls out remaining decisions and concerns.
[ ] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[ ] Responsiveness and internationalization.
[ ] Strings and tooltips.
[ ] End-to-end functionality of buttons, interactions and flows.
[ ] Corner cases, error conditions, and easily imagined bugs.

We have 97 two-argument .css calls, and reviewing 48½ pull requests that convert 2 of them at once won’t be a worthwhile use of time. Tasks like this are best handled by automated rewriting tools and short scripts, not manually in tiny chunks.
I’m also not convinced that this format is more readable.

We have 97 two-argument .css calls, and reviewing 48½ pull requests that convert 2 of them at once won’t be a worthwhile use of time. Tasks like this are best handled by automated rewriting tools and short scripts, not manually in tiny chunks.
I’m also not convinced that this format is more readable.

Okay, thank you for the review.

Yeah, I'm going to close this PR as not a constructive path forward. @Rinwaoluwa as I suggested previously, I don't think this project is a good fit for your level of experience.


fix clang build version on Ubuntu Artful

Ported from https://github.com/Linuxbrew/brew/pull/621
Before:
$ brew config | grep Clang:
Clang: 4.0 build

After:
$ brew config | grep Clang:
Clang: 4.0 build 401

@bukzor You can reproduce those errors locally with brew style.

I'm not 100% happy with the result, but brew style is happy now.

Thanks again @bukzor!

Thank you too @MikeMcQuaid. It's a pleasure to work with you all. You and the rest of the homebrew team are a role model for open-source upstreams, and collaborative software in general.

@bukzor Thanks for the kind words and taking the time to say them. We end up dealing with a lot of bile so comments like this are touching ❤


Use copyFileSync instead of pipe

When I put hook scripts in .githooks with the executable bit enabled, and then ran npm install, the copies in .git/hooks were not executable (and therefore were not used by git). This change fixed that.

Thanks for the fix @bhank 👍
This has been published in 1.0.5

Thanks for the fix @bhank 👍
This has been published in 1.0.5


Add getAllServicesOfType method to ServicesManager

PR adds method to ServicesManager to a return all services of a given Class with performance improvements over using a filter with a predicate.  Specifically in cases where ChainingServicesManager is uses separate managers for services of different type.
An approach we have found useful is have separate ServicesManagers for CAS, SAML and OAuth registered services.  This allows SAML and OAuth look ups to ignore the thousands of registered CAS services and apply matching to smaller, targeted sets to increase performance and avoid unintentional matches of services of different protocols.
This would help performance of CAS Management as well, when listing and editing SAML and OAuth services.

Cherry picked to master. Thank you Travis.


Add badge to README to display TravisCI build status

Noticed we have TravisCI integration now, so I figured we should show it

Looks good, thanks for the contribution @matthew-dailey!


Komal: welcome to JS : 3 weeks

my fork of module repository
Learning Objectives
1. What is Programming
What is a program? What is a programming language? How do programs and people
fit together?

[x] Data in, Data Out: You understand that computer programs are used to
transform data, and can explain a JS program from this module in terms of
the data that goes in and the data that comes out.
[x] Three Audiences: You can explain how a single file of code is used to
communicate with 3 different audiences:
[x] Developers: You can explain how code formatting, comments, logs and
variable names make it easier (or harder!) for a developer to understand a
program.
[x] Computers: You can explain how a computer follows your instructions to
store, read and modify data in program memory.
[x] Users: You can explain how the computer creates a dynamic user
experience by following different executions paths depending on user
input.
[x] Tracing Variables: You can complete a trace table for a program that
uses only variables, and can check your work using the "trace" button.

2. Just Enough JavaScript
Go in depth on JavaScript you need to know for writing interactive text-based
programs in the browser. Along the way you will learn how each language feature
works in small programs.

[ ] JavaScript Syntax: Given a program, you can identify these parts of
JavaScript syntax:
[x] Primitives
[x] Operators
[x] Identifiers
[x] Keywords
[ ] Checks
[x] Blocks
[ ] Function Calls
Listening and Reading: You can read code out loud, and understand your
classmates when they read code to you. You don't need to understand how a
program works to master these learning objectives!
[x] Listening You can exactly re-write a program that a classmate has read
[x] Reading You can read a program out loud and guide your classmates to
re-write exactly the same code without them seeing the program. Every
indentation, semi-colon, comment and spelling in their program must be
identical to yours.
[x] Static vs. Dynamic Analysis: You can explain and use these two ways of
studying a program, each can help you understand different aspects of your
code. To help understand this concept, the options panel in Study Lenses
is organized into static and dynamic study options:
[x] Static: Studying the text in a code file without running it. Some
static study methods are creating a flowchart, analyzing variables,
filling out a trace table, and drawing on code.
[x] Dynamic: Running code and studying the computer's behavior. Some
dynamic study methods are running code and reading console logs, using the
trace button, and stepping through in the debugger or JS Tutor.
[x] Tracing Execution: You can complete a "steps" trace table for all JS
language features in Just Enough JavaScript, and can correct your table
using console output from the "trace" button.
[x] Analyzing Variables: You can list all the variables in a program, and
answer these 5 questions for each variable:

Where is the variable declared?
What is the variable's scope?
Is the variable initialized with a value?
How many times is its value used (read) in the program?
How many times is the variable assigned a new value?
What types are assigned to this variable during the program's execution?

[x] Completing Programs: You can successfully fill in blanks for a program
when the missing words are provided, including distractors.
[ ] Translating Pseudo Code: Given a program written in Pseudo Code, you
can translate it to working JavaScript.
[x] Comparing Programs: You can compare two programs with similar code and
explain if they have the same behavior or not. If they do not, you can
explain how they behave differently and why.
[x] Constructing Programs: You can reconstruct a program's lines and
indentation, successfully ignoring distractor lines.

3. Understanding Programs
Learn how to understand a larger programs by finding connections between the
details and the big picture. By the end of this chapter you will know how to
read a new program and do a simple code review.

[x] Stepping Through: You can pause a script in a your browser's debugger,
arrange the debugger, collapse extra panels, and step through a script
written with Just Enough JS. At each point in execution you can make a
prediction of the next line before executing, and can check your
prediction using the scopes panel.
[x] Imperative Programming: You can explain what the Imperative
Programming paradigm is, and can explain how you know the programs in
Welcome to JS are Imperative.
[x] Program Goals: You understand that a full JavaScript program can be
explained as a series of smaller goals, and can write names for the goals
in a simple working program.
[x] Logging: You can tracing specific aspects of a program's execution and
log them to the console.
[x] Tracing Backwards You can trace backwards from a program's output to
it's input.
[x] Naming Variables: You can analyze how a variable is used in a program
and give it two names:

Generic: You can give a generic name to a variable based on how it is
used in the program.
Specific: You can give a specific name to a variable based on how it's
used and the program's domain (the program's specific data and use-case).

[x] Describing Programs: You can read a program and describe it with
comments using to the methodology from /describing-programs:

Zoom Out
Zoom In
Find Connections
Describe Goals

[x] Code Review: Given a working program you can review the code for
clarity, correctness and style.
[x] Same Behavior, Different Code: You can study simple programs with the
same behavior (data in, data out) but different source code and explain
how the differences matter for each audience.

4. Developing Programs
Learn to modify and write larger programs in JavaScript. You'll cover many of
the hidden skills necessary to develop quality software and to work
collaboratively on a code base.

[x] Linting: You can find and fix simple linting errors in JavaScript
programs.
[ ] Program Life Cycle: You can explain the two phases of a program's life
cycle.

Creation Phase
Execution Phase

[ ] Fixing Errors: You can use the structured comment to describe an error
in your program, and can make several educated guesses at how to fix the
error.
[ ] Fixing Bugs: You can use the structured comment to describe and fix a
bug in small programs.
[ ] Modifying Programs: You can make small changes in a program to change
its behavior without breaking it.
[ ] Refactoring: Given a working program, you can make changes to the code
without changing the program's behavior.
[ ] Writing Programs: Given a description of a program's behavior (user
story + test cases), you can plan goals for the program and write code to
pass the tests.
Reverse Engineering: Given a working program with unreadable code, you
can:
[ ] Give the program a name.
[ ] Describe the program's behavior with a user story, acceptance criteria and
test cases.
[ ] Plan goals for the program.
[ ] Develop your own working program with the exact same behavior.
Imagining Programs: Given an empty page, you can imagine and develop your
own programs using Just Enough JavaScript. This includes:
[ ] A title.
[ ] A description with a user story, acceptance criteria and test cases.
[ ] Commented goals.
[ ] Fully working Code.

Week 1
I Need Help With:
What went well?
practice variables
What went less well?
today lesson.
Lessons Learned
how to use variables

@komal-89  What do you mean by today's lesson? can you be more specific?


Ab testing

I have addressed all your comments @ElPicador, besides the one regarding the defaults for the ObjectMapper where I'll wait for your input. Let me know if I missed something.

@ElPicador I've addressed the very last comment: I've removed the dependency on the ObjectMapper new Java8 Time serializers and made a custom one instead. Ready to merge on my side.


Add Basic Admin Functionality for Estimators, EvaluationResult and Dataset

as indicated by the title

Coverage increased (+0.2%) to 91.964% when pulling 16956e0d482e871ba2ff6800a107bd57ea0fdd9b on feature/add_admin into bdd1797fca240b774d87c4a1765a4d47cbf4eecf on master.