Subgen Container HTTP 404 error

Me again! Thank you for your help last time. You were very helpful before!
So I updated my container and eliminated Tautulli
For some reason When I start playing a file in Plex I get this:
I do have subgen running on HOST Network. That did not solve the issue :(

My docker compose:
#docker-compose.yml
version: '2'
services:
subgen:
container_name: subgen
network_mode: host
image: mccloud/subgen
environment:
- "WHISPER_MODEL=medium"
- "WHISPER_SPEEDUP=False"
- "WHISPER_THREADS=4"
- "WHISPER_PROCESSORS=1"
- "PROCADDEDMEDIA=True"
- "PROCMEDIAONPLAY=True"
- "NAMESUBLANG=AI-GENERATED"
- "UPDATEREPO=True"
- "SKIPIFINTERNALSUBLANG=eng"
- "PLEXTOKEN=y9Axi5-Wyxxxxxxxx"
- "PLEXSERVER=http://<IP_ADDRESS>:32400"
- "WEBHOOKPORT=8090"
volumes:
- "/mnt/user/tv:/tv"
- "/mnt/user/movies:/movies"
- "/mnt/user/appdata/subgen:/whisper.cpp"

Do a quick check and see if your Tautulli is still sending webhooks.  I was getting similar errors because it's the wrong path and not the JSON it's expecting.I'll troubleshoot more in a couple hours. On Feb 2, 2023 7:14 AM, ech0 @.***> wrote:
Me again! Thank you for your help last time. You were very helpful before!
So I updated my container and eliminated Tautulli
For some reason When I start playing a file in Plex I get this:
My docker compose:
`#docker-compose.yml
version: '2'
services:
subgen:
container_name: subgen
network_mode: host
image: mccloud/subgen
environment:

"WHISPER_MODEL=medium"
"WHISPER_SPEEDUP=False"
"WHISPER_THREADS=4"
"WHISPER_PROCESSORS=1"
"PROCADDEDMEDIA=True"
"PROCMEDIAONPLAY=True"
"NAMESUBLANG=AI-GENERATED"
"UPDATEREPO=True"
"SKIPIFINTERNALSUBLANG=eng"
"PLEXTOKEN=y9Axi5-Wyxxxxxxxx"
"PLEXSERVER=http://<IP_ADDRESS>:32400"
"WEBHOOKPORT=8090"
volumes:
"/mnt/user/tv:/tv"
"/mnt/user/movies:/movies"
"/mnt/user/appdata/subgen:/whisper.cpp"
`

—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you are subscribed to this thread.Message ID: @.***>

Do a quick check and see if your Tautulli is still sending webhooks.  I was getting similar errors because it's the wrong path and not the JSON it's expecting.I'll troubleshoot more in a couple hours.
Mine shows something like below when Tautulli is still sending webhooks.  You should be seeing the POST 200's, as thats a successful receipt of any valid webhook.  So you'll see them even if no action is executed.  You'll see movement on the log if it receives a media.play or library.added.

It says it can't see the service on port 8090. Not sure why. I have this Subgen on HOST and Plex on HOST. I had Tatulli on a custom network but now I have moved it to HOST as well.

You'll want to remove any Tautulli stuff, as it will just send invalid webhooks.  Have you tried adding or playing a media file from plex to see if there is any movement in the logs?  You should see "Webhook received!" and some debug stuff print, then it'll run.

Yea that is how I got the 404 errors, by playing a media file.
I removed the tatulli webhook and now I get nothing when I play a media file. Like subgen isn't using the Plex info

Did you add the webhook into Plex?
On Thu, Feb 2, 2023, 8:46 AM ech0 @.***> wrote:

Yea that is how I got the 404 errors, by playing a media file.
I removed the tatulli webhook and now I get nothing when I play a media
file. Like subgen isn't using the Plex info
[image: image]
https://user-images.githubusercontent.com/4251482/216372068-f04ef80d-7d1b-43f6-ac8c-86f9b4a575df.png
—
Reply to this email directly, view it on GitHub
https://github.com/McCloudS/subgen/issues/8#issuecomment-1413953761, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/APJACQI4RVT7T6RKZCVKMJTWVPJE3ANCNFSM6AAAAAAUPCRNDU
.
You are receiving this because you commented.Message ID:
@.***>

Ok. I forgot that part. That is my fault.
I think that maybe you could hilight that section in the doc a bit more as I had missed it even after scanning the instructions twice (I didn't even realize Plex had webhooks!)
At any rate I think it is working as I get 200 codes now but I am getting a Traceback also:

Ok. I fixed it. For some reason my Plex token keeps changing :(
I think it is fixed now but I would like to keep this open for a couple hours till I can confirm.
Thanks again for your help!!

The 401 Unauthorized implies your plex server or port is wrong.  That means
the API call failed to get the media file path.  I was getting similar
errors when my subgen and plex were on different subnets, but yours look
the same here...
On Thu, Feb 2, 2023 at 9:18 AM ech0 @.***> wrote:

Ok. I forgot that part. That is my fault.
I think that maybe you could hilight that section in the doc a bit more as
I had missed it even after scanning the instructions twice (I didn't even
realize Plex had webhooks!)
At any rate I think it is working as I get 200 codes now but I am getting
a Traceback also:
[image: image]
https://user-images.githubusercontent.com/4251482/216380839-39456ab1-a111-47a9-954a-57129be31556.png
—
Reply to this email directly, view it on GitHub
https://github.com/McCloudS/subgen/issues/8#issuecomment-1414005163, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/APJACQIGONOJFNYMSXB35DLWVPM4NANCNFSM6AAAAAAUPCRNDU
.
You are receiving this because you commented.Message ID:
@.***>

The 401 Unauthorized implies your plex server or port is wrong. That means the API call failed to get the media file path. I was getting similar errors when my subgen and plex were on different subnets, but yours look the same here...
…
On Thu, Feb 2, 2023 at 9:18 AM ech0 @.> wrote: Ok. I forgot that part. That is my fault. I think that maybe you could hilight that section in the doc a bit more as I had missed it even after scanning the instructions twice (I didn't even realize Plex had webhooks!) At any rate I think it is working as I get 200 codes now but I am getting a Traceback also: [image: image] https://user-images.githubusercontent.com/4251482/216380839-39456ab1-a111-47a9-954a-57129be31556.png — Reply to this email directly, view it on GitHub <#8 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/APJACQIGONOJFNYMSXB35DLWVPM4NANCNFSM6AAAAAAUPCRNDU . You are receiving this because you commented.Message ID: @.>

See my update above :) We posted at the same time haha

Ok sorry for blowing up your emails. I definately noticed the docker network/subnet issues you had. I tried putting them both on the same custom network named fsociety and I had the same issues where they couldn't "see"each other or communicate. Put them back on HOST and I am getting 200 codes again.
I am not sure if it is actually doing anything tho? I played a file, got 200s and but my CPU usage hasn't gone up at all (sitting at 3%) and I don't see subtitles generating in the log like I did when I was using Tautulli
Any ideas?

I'm not sure... I'll have to think about it.  200s shows it's getting valid webhooks from plex.  But if you aren't getting a "Webhook received!" or eventual printouts anywhere in there, that means it isn't seeing a valid json return with "library.new" or "media.play", so it isn't triggering anything.

Ok. I did try changing the variable SKIPIFINTERNALSUBLANG to something bogus like "ddk" and removing the variable entirely as I do have internal ENG SRT Subs and maybe it wasn't processing because of that, but it didn't make a difference.
I'll  leave you alone for now but I appreciate any input you can provide.
Thanks again!

I just added Tautulli webhooks back in with slightly new instructions (see the Readme).  If you pull the new image, you could try Tautulli instead of plex.  I'm a bit stumped because the Plex part is working flawless for me on two different setups.
I would recommend removing the plex webhook if you use Tautulli.

Thank you @McCloudS . I'll give that a go. I am back to getting the stacktrace I posted earlier despite having everything on host and an updated Plex token.
I'll pull the container and try again with Tautulli

Alright working again with Tautulli! Any downsides with using Tautulli that you know of besides just having another container running (I have 55 containers running at all times so I am not concerned about that!). I use tautulli already anyways for it's main purposes.

No differences using Tautulli.  The implementation is actually simpler since it isn't dependent on making an outgoing API call, like Plex.
I just wish I knew what your plex problem was.  I have it working on two different environments with different file structures.

Yea. Very strange indeed.
Let me know if I can do anything to help troubleshoot.
Would it be possible to speed up the transcode time by add additional "nodes" or multiple machines similar to the way Tdarr and Unmanic do transcoding?
Best thing I can think of is just having 2 of these containers running and pointed to the 2 different tautulli instances? But you would just have 2 transcodes of the same tv episode going on unless you trigger one instance via "Media Add" and the other instance by "Playback started"?
Just spitballing

Orchestrating something like that is way outside of my skillset.  Sure, it could be possible by splitting the WAV file, farming it out, and then joining the subs and time adjusting them.


fix(types): allow generically set return type for contract read hooks

Fixes #189
I propose keeping it rather simple and clean in a first step. The user should know what the return type is (since he'll use it). He can choose to use the return value as any, or he can provide the type if he wants better type-safety.

Love this @sverps
This is exactly what we need.
Thanks!!

Love this approach !!


feat(bts): unit tests solidity bts

Closes #598
Checklist:

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

Remove the doc folder which has empty markdown file.

Why we commented so many test cases in the next files, the one file was fully commented?
solidity/bts/test/integration/1-upgradeability-native-coin-bts.js
solidity/bts/test/integration/2-native-coin-bts.js


Keyboard Navigation

User story: Keyboard navigation
Size (md)
What is the priority that has been assigned?
High
How do you interpret this fitting into the process of building the project?
I see this fitting in at the beginning stages when there is even the smallest amount of content to work with, but then added to as the build becomes more robust.
Why should this be in the Sprint this time? Why not wait until the next Sprint?
Accessibility features should be implemented at the beginning of all projects and then continuously updated since it's more difficult to add these features when the site/app is finished.

Task branch name
keyboard-navigation
Brief statement of work performed
Added todos for future sprints
Any notes, comments, or update instructions about the work.
Hoping to start working on accessibility features in the next sprint


Replace default vite favicon with something more fun

Perhaps once we create the image export option we draw a favicon in the editor?

depends on #45


Scale factor of convbn and relu

Very appreciate for your method of fitting the input of relu to [-1, 1], and I want to calculate the range myself to compare with the table in the bottom of page16, but the result appears to be different.

# Build ResNet block by block
import torch
import torchvision
import torchvision.transforms as transforms
from tqdm import tqdm

ResNet = torch.hub.load("chenyaofo/pytorch-cifar-models", "cifar10_resnet20", pretrained=True)
ResNet.eval()

class ResNetPlain(torch.nn.Module):

    def __init__(self, *args, **kwargs) -> None:
        # The frist value is minimal value and the second value is max value
        super().__init__(*args, **kwargs)
        self.relu_dict = {
            "init_layer_relu": [0, 0],
            "layer1_block0_relu0": [0, 0],
            "layer1_block0_relu1": [0, 0],
            "layer1_block1_relu0": [0, 0],
            "layer1_block1_relu1": [0, 0],
            "layer1_block2_relu0": [0, 0],
            "layer1_block2_relu1": [0, 0],
            "layer2_block0_relu0": [0, 0],
            "layer2_block0_relu1": [0, 0],
            "layer2_block1_relu0": [0, 0],
            "layer2_block1_relu1": [0, 0],
            "layer2_block2_relu0": [0, 0],
            "layer2_block2_relu1": [0, 0],
            "layer3_block0_relu0": [0, 0],
            "layer3_block0_relu1": [0, 0],
            "layer3_block1_relu0": [0, 0],
            "layer3_block1_relu1": [0, 0],
            "layer3_block2_relu0": [0, 0],
            "layer3_block2_relu1": [0, 0],
        }
        self.relu = torch.nn.ReLU(inplace=True)
        self.avgPool = ResNet.avgpool
        self.fc = ResNet.fc
        # Init layer
        self.initLayer_conv = ResNet.conv1
        self.initLayer_bn = ResNet.bn1
        # Layer1 block0
        self.layer1_block0_conv1 = ResNet.layer1[0].conv1
        self.layer1_block0_bn1 = ResNet.layer1[0].bn1
        self.layer1_block0_conv2 = ResNet.layer1[0].conv2
        self.layer1_block0_bn2 = ResNet.layer1[0].bn2
        # Layer1 block1
        self.layer1_block1_conv1 = ResNet.layer1[1].conv1
        self.layer1_block1_bn1 = ResNet.layer1[1].bn1
        self.layer1_block1_conv2 = ResNet.layer1[1].conv2
        self.layer1_block1_bn2 = ResNet.layer1[1].bn2
        # Layer1 block2
        self.layer1_block2_conv1 = ResNet.layer1[2].conv1
        self.layer1_block2_bn1 = ResNet.layer1[2].bn1
        self.layer1_block2_conv2 = ResNet.layer1[2].conv2
        self.layer1_block2_bn2 = ResNet.layer1[2].bn2
        # Layer2 block0
        self.layer2_block0_conv1 = ResNet.layer2[0].conv1
        self.layer2_block0_bn1 = ResNet.layer2[0].bn1
        self.layer2_block0_conv2 = ResNet.layer2[0].conv2
        self.layer2_block0_bn2 = ResNet.layer2[0].bn2
        self.downsample0_conv = ResNet.layer2[0].downsample[0]
        self.downsample0_bn = ResNet.layer2[0].downsample[1]
        # Layer2 block1
        self.layer2_block1_conv1 = ResNet.layer2[1].conv1
        self.layer2_block1_bn1 = ResNet.layer2[1].bn1
        self.layer2_block1_conv2 = ResNet.layer2[1].conv2
        self.layer2_block1_bn2 = ResNet.layer2[1].bn2
        # Layer2 block2
        self.layer2_block2_conv1 = ResNet.layer2[2].conv1
        self.layer2_block2_bn1 = ResNet.layer2[2].bn1
        self.layer2_block2_conv2 = ResNet.layer2[2].conv2
        self.layer2_block2_bn2 = ResNet.layer2[2].bn2
        # Layer3 block0
        self.layer3_block0_conv1 = ResNet.layer3[0].conv1
        self.layer3_block0_bn1 = ResNet.layer3[0].bn1
        self.layer3_block0_conv2 = ResNet.layer3[0].conv2
        self.layer3_block0_bn2 = ResNet.layer3[0].bn2
        self.downsample1_conv = ResNet.layer3[0].downsample[0]
        self.downsample1_bn = ResNet.layer3[0].downsample[1]
        # Layer3 block1
        self.layer3_block1_conv1 = ResNet.layer3[1].conv1
        self.layer3_block1_bn1 = ResNet.layer3[1].bn1
        self.layer3_block1_conv2 = ResNet.layer3[1].conv2
        self.layer3_block1_bn2 = ResNet.layer3[1].bn2
        # Layer3 block2
        self.layer3_block2_conv1 = ResNet.layer3[2].conv1
        self.layer3_block2_bn1 = ResNet.layer3[2].bn1
        self.layer3_block2_conv2 = ResNet.layer3[2].conv2
        self.layer3_block2_bn2 = ResNet.layer3[2].bn2

    def update_min(self, location: str, input: torch.Tensor):
        if input.min().item() < self.relu_dict[location][0]:
            self.relu_dict[location][0] = input.min().item()

    def update_max(self, location: str, input: torch.Tensor):
        if input.max().item() > self.relu_dict[location][1]:
            self.relu_dict[location][1] = input.max().item()

    def update(self, location: str, input: torch.Tensor):
        self.update_min(location, input)
        self.update_max(location, input)

    def forward(self, x):
        # Init layer
        x = self.initLayer_conv(x)
        x = self.initLayer_bn(x)
        self.update("init_layer_relu", x)
        x = self.relu(x)
        # Layer1 block0
        x_copy = x
        x = self.layer1_block0_conv1(x)
        x = self.layer1_block0_bn1(x)
        self.update("layer1_block0_relu0", x)
        x = self.relu(x)
        x = self.layer1_block0_conv2(x)
        x = self.layer1_block0_bn2(x)
        x = x + x_copy
        self.update("layer1_block0_relu1", x)
        x = self.relu(x)
        # Layer1 block1
        x_copy = x
        x = self.layer1_block1_conv1(x)
        x = self.layer1_block1_bn1(x)
        self.update("layer1_block1_relu0", x)
        x = self.relu(x)
        x = self.layer1_block1_conv2(x)
        x = self.layer1_block1_bn2(x)
        x = x + x_copy
        self.update("layer1_block1_relu1", x)
        x = self.relu(x)
        # Layer1 block2
        x_copy = x
        x = self.layer1_block2_conv1(x)
        x = self.layer1_block2_bn1(x)
        self.update("layer1_block2_relu0", x)
        x = self.relu(x)
        x = self.layer1_block2_conv2(x)
        x = self.layer1_block2_bn2(x)
        x = x + x_copy
        self.update("layer1_block2_relu1", x)
        x = self.relu(x)
        # Layer2 block0
        x_copy = x
        x = self.layer2_block0_conv1(x)
        x = self.layer2_block0_bn1(x)
        self.update("layer2_block0_relu0", x)
        x = self.relu(x)
        x = self.layer2_block0_conv2(x)
        x = self.layer2_block0_bn2(x)
        x_copy = self.downsample0_conv(x_copy)
        x_copy = self.downsample0_bn(x_copy)
        x += x_copy
        self.update("layer2_block0_relu1", x)
        x = self.relu(x)
        # Layer2 block1
        x_copy = x
        x = self.layer2_block1_conv1(x)
        x = self.layer2_block1_bn1(x)
        self.update("layer2_block1_relu0", x)
        x = self.relu(x)
        x = self.layer2_block1_conv2(x)
        x = self.layer2_block1_bn2(x)
        x += x_copy
        self.update("layer2_block1_relu1", x)
        x = self.relu(x)
        # Layer2 block2
        x_copy = x
        x = self.layer2_block2_conv1(x)
        x = self.layer2_block2_bn1(x)
        self.update("layer2_block2_relu0", x)
        x = self.relu(x)
        x = self.layer2_block2_conv2(x)
        x = self.layer2_block2_bn2(x)
        x += x_copy
        self.update("layer2_block2_relu1", x)
        x = self.relu(x)
        # Layer3 block0
        x_copy = x
        x = self.layer3_block0_conv1(x)
        x = self.layer3_block0_bn1(x)
        self.update("layer3_block0_relu0", x)
        x = self.relu(x)
        x = self.layer3_block0_conv2(x)
        x = self.layer3_block0_bn2(x)
        x_copy = self.downsample1_conv(x_copy)
        x_copy = self.downsample1_bn(x_copy)
        x += x_copy
        self.update("layer3_block0_relu1", x)
        x = self.relu(x)
        # Layer3 block1
        x_copy = x
        x = self.layer3_block1_conv1(x)
        x = self.layer3_block1_bn1(x)
        self.update("layer3_block1_relu0", x)
        x = self.relu(x)
        x = self.layer3_block1_conv2(x)
        x = self.layer3_block1_bn2(x)
        x += x_copy
        self.update("layer3_block1_relu1", x)
        x = self.relu(x)
        # Layer2 block2
        x_copy = x
        x = self.layer3_block2_conv1(x)
        x = self.layer3_block2_bn1(x)
        self.update("layer3_block2_relu0", x)
        x = self.relu(x)
        x = self.layer3_block2_conv2(x)
        x = self.layer3_block2_bn2(x)
        x += x_copy
        self.update("layer3_block2_relu1", x)
        x = self.relu(x)
        # Final layer
        x = self.avgPool(x)
        x = x.view(x.size(0), -1)
        x = self.fc(x)
        return x

    def print(self):
        for key, value in self.relu_dict.items():
            abs_max = 0
            if abs(value[0]) > abs(value[1]):
                abs_max = abs(value[0])
            else:
                abs_max = abs(value[1])
            print(key, "  min value: ", value[0], ", max value: ", value[1], ", scale factor: ", 1 / abs_max)

ResNetPlainInstance = ResNetPlain()
ResNetPlainInstance.eval()

# Load CIFAR10 dataset
transforms = transforms.Compose([
    transforms.ToTensor(),
    # Special parameters(mean and standard deviation) for CIFAR10
    transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))
])
testSet = torchvision.datasets.CIFAR10(root="./ResNet/data", train=False, download=True, transform=transforms)
testloader = torch.utils.data.DataLoader(testSet, batch_size = 64, shuffle=False)

# Function for top1 and top5 accuracy
def accuracy(output, target, topk=(1, )):
    with torch.no_grad():
        max_k = max(topk)
        batch_size = target.size(0)
        _, pred = output.topk(max_k, 1, True, True)
        pred = pred.t()
        correct = pred.eq(target.view(1, -1).expand_as(pred))
        res = []
        for k in topk:
            correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True)
            acc = (correct_k / batch_size).item()
            res.append(acc)
    return res

top1_acc = top5_acc = 0
# Inference
with torch.no_grad():
    for images, labels in tqdm(testloader, desc='Inference Progress', ncols=100):
        outputs = ResNetPlainInstance.forward(images)
        acc1, acc5 = accuracy(outputs, labels, topk=(1, 5))
        top1_acc += acc1
        top5_acc += acc5

top1_acc = (top1_acc / len(testloader)) * 100
top5_acc = (top5_acc / len(testloader)) * 100

print(f'Top-1 Accuracy: {top1_acc:.2f}%')
print(f'Top-5 Accuracy: {top5_acc:.2f}%')

ResNetPlainInstance.print()

`
Build ResNet block by block
import torch
import torchvision
import torchvision.transforms as transforms
from tqdm import tqdm
ResNet = torch.hub.load("chenyaofo/pytorch-cifar-models", "cifar10_resnet20", pretrained=True)
ResNet.eval()
class ResNetPlain(torch.nn.Module):
def __init__(self, *args, **kwargs) -> None:
    # The frist value is minimal value and the second value is max value
    super().__init__(*args, **kwargs)
    self.relu_dict = {
        "init_layer_relu": [0, 0],
        "layer1_block0_relu0": [0, 0],
        "layer1_block0_relu1": [0, 0],
        "layer1_block1_relu0": [0, 0],
        "layer1_block1_relu1": [0, 0],
        "layer1_block2_relu0": [0, 0],
        "layer1_block2_relu1": [0, 0],
        "layer2_block0_relu0": [0, 0],
        "layer2_block0_relu1": [0, 0],
        "layer2_block1_relu0": [0, 0],
        "layer2_block1_relu1": [0, 0],
        "layer2_block2_relu0": [0, 0],
        "layer2_block2_relu1": [0, 0],
        "layer3_block0_relu0": [0, 0],
        "layer3_block0_relu1": [0, 0],
        "layer3_block1_relu0": [0, 0],
        "layer3_block1_relu1": [0, 0],
        "layer3_block2_relu0": [0, 0],
        "layer3_block2_relu1": [0, 0],
    }
    self.relu = torch.nn.ReLU(inplace=True)
    self.avgPool = ResNet.avgpool
    self.fc = ResNet.fc
    # Init layer
    self.initLayer_conv = ResNet.conv1
    self.initLayer_bn = ResNet.bn1
    # Layer1 block0
    self.layer1_block0_conv1 = ResNet.layer1[0].conv1
    self.layer1_block0_bn1 = ResNet.layer1[0].bn1
    self.layer1_block0_conv2 = ResNet.layer1[0].conv2
    self.layer1_block0_bn2 = ResNet.layer1[0].bn2
    # Layer1 block1
    self.layer1_block1_conv1 = ResNet.layer1[1].conv1
    self.layer1_block1_bn1 = ResNet.layer1[1].bn1
    self.layer1_block1_conv2 = ResNet.layer1[1].conv2
    self.layer1_block1_bn2 = ResNet.layer1[1].bn2
    # Layer1 block2
    self.layer1_block2_conv1 = ResNet.layer1[2].conv1
    self.layer1_block2_bn1 = ResNet.layer1[2].bn1
    self.layer1_block2_conv2 = ResNet.layer1[2].conv2
    self.layer1_block2_bn2 = ResNet.layer1[2].bn2
    # Layer2 block0
    self.layer2_block0_conv1 = ResNet.layer2[0].conv1
    self.layer2_block0_bn1 = ResNet.layer2[0].bn1
    self.layer2_block0_conv2 = ResNet.layer2[0].conv2
    self.layer2_block0_bn2 = ResNet.layer2[0].bn2
    self.downsample0_conv = ResNet.layer2[0].downsample[0]
    self.downsample0_bn = ResNet.layer2[0].downsample[1]
    # Layer2 block1
    self.layer2_block1_conv1 = ResNet.layer2[1].conv1
    self.layer2_block1_bn1 = ResNet.layer2[1].bn1
    self.layer2_block1_conv2 = ResNet.layer2[1].conv2
    self.layer2_block1_bn2 = ResNet.layer2[1].bn2
    # Layer2 block2
    self.layer2_block2_conv1 = ResNet.layer2[2].conv1
    self.layer2_block2_bn1 = ResNet.layer2[2].bn1
    self.layer2_block2_conv2 = ResNet.layer2[2].conv2
    self.layer2_block2_bn2 = ResNet.layer2[2].bn2
    # Layer3 block0
    self.layer3_block0_conv1 = ResNet.layer3[0].conv1
    self.layer3_block0_bn1 = ResNet.layer3[0].bn1
    self.layer3_block0_conv2 = ResNet.layer3[0].conv2
    self.layer3_block0_bn2 = ResNet.layer3[0].bn2
    self.downsample1_conv = ResNet.layer3[0].downsample[0]
    self.downsample1_bn = ResNet.layer3[0].downsample[1]
    # Layer3 block1
    self.layer3_block1_conv1 = ResNet.layer3[1].conv1
    self.layer3_block1_bn1 = ResNet.layer3[1].bn1
    self.layer3_block1_conv2 = ResNet.layer3[1].conv2
    self.layer3_block1_bn2 = ResNet.layer3[1].bn2
    # Layer3 block2
    self.layer3_block2_conv1 = ResNet.layer3[2].conv1
    self.layer3_block2_bn1 = ResNet.layer3[2].bn1
    self.layer3_block2_conv2 = ResNet.layer3[2].conv2
    self.layer3_block2_bn2 = ResNet.layer3[2].bn2

def update_min(self, location: str, input: torch.Tensor):
    if input.min().item() < self.relu_dict[location][0]:
        self.relu_dict[location][0] = input.min().item()

def update_max(self, location: str, input: torch.Tensor):
    if input.max().item() > self.relu_dict[location][1]:
        self.relu_dict[location][1] = input.max().item()

def update(self, location: str, input: torch.Tensor):
    self.update_min(location, input)
    self.update_max(location, input)

def forward(self, x):
    # Init layer
    x = self.initLayer_conv(x)
    x = self.initLayer_bn(x)
    self.update("init_layer_relu", x)
    x = self.relu(x)
    # Layer1 block0
    x_copy = x
    x = self.layer1_block0_conv1(x)
    x = self.layer1_block0_bn1(x)
    self.update("layer1_block0_relu0", x)
    x = self.relu(x)
    x = self.layer1_block0_conv2(x)
    x = self.layer1_block0_bn2(x)
    x = x + x_copy
    self.update("layer1_block0_relu1", x)
    x = self.relu(x)
    # Layer1 block1
    x_copy = x
    x = self.layer1_block1_conv1(x)
    x = self.layer1_block1_bn1(x)
    self.update("layer1_block1_relu0", x)
    x = self.relu(x)
    x = self.layer1_block1_conv2(x)
    x = self.layer1_block1_bn2(x)
    x = x + x_copy
    self.update("layer1_block1_relu1", x)
    x = self.relu(x)
    # Layer1 block2
    x_copy = x
    x = self.layer1_block2_conv1(x)
    x = self.layer1_block2_bn1(x)
    self.update("layer1_block2_relu0", x)
    x = self.relu(x)
    x = self.layer1_block2_conv2(x)
    x = self.layer1_block2_bn2(x)
    x = x + x_copy
    self.update("layer1_block2_relu1", x)
    x = self.relu(x)
    # Layer2 block0
    x_copy = x
    x = self.layer2_block0_conv1(x)
    x = self.layer2_block0_bn1(x)
    self.update("layer2_block0_relu0", x)
    x = self.relu(x)
    x = self.layer2_block0_conv2(x)
    x = self.layer2_block0_bn2(x)
    x_copy = self.downsample0_conv(x_copy)
    x_copy = self.downsample0_bn(x_copy)
    x += x_copy
    self.update("layer2_block0_relu1", x)
    x = self.relu(x)
    # Layer2 block1
    x_copy = x
    x = self.layer2_block1_conv1(x)
    x = self.layer2_block1_bn1(x)
    self.update("layer2_block1_relu0", x)
    x = self.relu(x)
    x = self.layer2_block1_conv2(x)
    x = self.layer2_block1_bn2(x)
    x += x_copy
    self.update("layer2_block1_relu1", x)
    x = self.relu(x)
    # Layer2 block2
    x_copy = x
    x = self.layer2_block2_conv1(x)
    x = self.layer2_block2_bn1(x)
    self.update("layer2_block2_relu0", x)
    x = self.relu(x)
    x = self.layer2_block2_conv2(x)
    x = self.layer2_block2_bn2(x)
    x += x_copy
    self.update("layer2_block2_relu1", x)
    x = self.relu(x)
    # Layer3 block0
    x_copy = x
    x = self.layer3_block0_conv1(x)
    x = self.layer3_block0_bn1(x)
    self.update("layer3_block0_relu0", x)
    x = self.relu(x)
    x = self.layer3_block0_conv2(x)
    x = self.layer3_block0_bn2(x)
    x_copy = self.downsample1_conv(x_copy)
    x_copy = self.downsample1_bn(x_copy)
    x += x_copy
    self.update("layer3_block0_relu1", x)
    x = self.relu(x)
    # Layer3 block1
    x_copy = x
    x = self.layer3_block1_conv1(x)
    x = self.layer3_block1_bn1(x)
    self.update("layer3_block1_relu0", x)
    x = self.relu(x)
    x = self.layer3_block1_conv2(x)
    x = self.layer3_block1_bn2(x)
    x += x_copy
    self.update("layer3_block1_relu1", x)
    x = self.relu(x)
    # Layer2 block2
    x_copy = x
    x = self.layer3_block2_conv1(x)
    x = self.layer3_block2_bn1(x)
    self.update("layer3_block2_relu0", x)
    x = self.relu(x)
    x = self.layer3_block2_conv2(x)
    x = self.layer3_block2_bn2(x)
    x += x_copy
    self.update("layer3_block2_relu1", x)
    x = self.relu(x)
    # Final layer
    x = self.avgPool(x)
    x = x.view(x.size(0), -1)
    x = self.fc(x)
    return x

def print(self):
    for key, value in self.relu_dict.items():
        abs_max = 0
        if abs(value[0]) > abs(value[1]):
            abs_max = abs(value[0])
        else:
            abs_max = abs(value[1])
        print(key, "  min value: ", value[0], ", max value: ", value[1], ", scale factor: ", 1 / abs_max)

ResNetPlainInstance = ResNetPlain()
ResNetPlainInstance.eval()
Load CIFAR10 dataset
transforms = transforms.Compose([
transforms.ToTensor(),
# Special parameters(mean and standard deviation) for CIFAR10
transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))
])
testSet = torchvision.datasets.CIFAR10(root="./ResNet/data", train=False, download=True, transform=transforms)
testloader = torch.utils.data.DataLoader(testSet, batch_size = 64, shuffle=False)
Function for top1 and top5 accuracy
def accuracy(output, target, topk=(1, )):
with torch.no_grad():
max_k = max(topk)
batch_size = target.size(0)
_, pred = output.topk(max_k, 1, True, True)
pred = pred.t()
correct = pred.eq(target.view(1, -1).expand_as(pred))
res = []
for k in topk:
correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True)
acc = (correct_k / batch_size).item()
res.append(acc)
return res
top1_acc = top5_acc = 0
Inference
with torch.no_grad():
for images, labels in tqdm(testloader, desc='Inference Progress', ncols=100):
outputs = ResNetPlainInstance.forward(images)
acc1, acc5 = accuracy(outputs, labels, topk=(1, 5))
top1_acc += acc1
top5_acc += acc5
top1_acc = (top1_acc / len(testloader)) * 100
top5_acc = (top5_acc / len(testloader)) * 100
print(f'Top-1 Accuracy: {top1_acc:.2f}%')
print(f'Top-5 Accuracy: {top5_acc:.2f}%')
ResNetPlainInstance.print()
`

Are you checking the ranges with the test set?

yes, with all the 10000 test images, when making testSet, i set train=False

I did it using the training set, assuming that the test set should not be used to tweak network's parameters (if this can be considered a parameter :))
Did you check this notebook? This is how we found the intervals

Did you check this notebook? This is how we found the intervals

Yes, it seems that we both loop over all the test images, but it's wired that we get different results.
I open this issue because that, if the range of relu approximated by chebyshev is [-1, 1] and the scale factor does not fit, then the decode function will raise an error which says that libc++abi: terminating due to uncaught exception of type lbcrypto::OpenFHEException: /Users/lihao/code/c++/openfhe-development/src/pke/lib/encoding/ckkspackedencoding.cpp:l.537:Decode(): The decryption failed because the approximation error is too high. Check the parameters. Although I can set the range of relu to [-2, 2] to supress this, but this required an extra level.
Another wired thing is, in layer1, if I only perform layer1 block0 convbn1 and relu, the answer is correct, but if layer1 block0 convbn2 and another relu is appended, the answer is wrong even when the range of relu is [-2, 2], is there any suggestions to solve this?

ops, i found that there is a normalization in my transforms applied to images, after removing this normalization we get the same result, thanks!

Hello, have you noticed that, without normalization, the performance of this model will downgrade?
In more details, if normalization is used, the accuracy is
Top-1 Accuracy: 92.61%
Top-5 Accuracy: 99.81%
which is equal to the result in this page: https://github.com/chenyaofo/pytorch-cifar-models/tree/master
If we cancel normalization, the accuracy becomes
Top-1 Accuracy: 32.67%
Top-5 Accuracy: 76.49%
Run the following code to reproduce these two result, with or without normalization in transforms:
# Measure accuracy of ResNet20 on CIFAR10
import torch
import torchvision
import torchvision.transforms as transforms
from tqdm import tqdm

# Load ResNet model
ResNet = torch.hub.load("chenyaofo/pytorch-cifar-models", "cifar10_resnet20", pretrained=True)
ResNet.eval()

# Load CIFAR10 dataset
transforms = transforms.Compose([
    transforms.ToTensor(),
    # Special parameters(mean and standard deviation) for CIFAR10
    # transforms.Normalize((0.4914, 0.4822, 0.4465), (0.2023, 0.1994, 0.2010))
])
testSet = torchvision.datasets.CIFAR10(root="./ResNet/data", train=False, download=True, transform=transforms)
testloader = torch.utils.data.DataLoader(testSet, batch_size = 64, shuffle=False)

# Function for top1 and top5 accuracy
def accuracy(output, target, topk=(1, )):
    with torch.no_grad():
        max_k = max(topk)
        batch_size = target.size(0)
        _, pred = output.topk(max_k, 1, True, True)
        pred = pred.t()
        correct = pred.eq(target.view(1, -1).expand_as(pred))
        res = []
        for k in topk:
            correct_k = correct[:k].reshape(-1).float().sum(0, keepdim=True)
            acc = (correct_k / batch_size).item()
            res.append(acc)
    return res

top1_acc = top5_acc = 0
# Inference
with torch.no_grad():
    for images, labels in tqdm(testloader, desc='Inference Progress', ncols=100):
        outputs = ResNet(images)
        acc1, acc5 = accuracy(outputs, labels, topk=(1, 5))
        top1_acc += acc1
        top5_acc += acc5

top1_acc = (top1_acc / len(testloader)) * 100
top5_acc = (top5_acc / len(testloader)) * 100

print(f'Top-1 Accuracy: {top1_acc:.2f}%')
print(f'Top-5 Accuracy: {top5_acc:.2f}%')

@narger-ef

That's interesting, and expected since the network is trained with normalization :-) Thank you for the experiment!


copr: make copr task more concurrent

Currently tasks in a batch of the same regions will be executed sequentially, we can handle it concurrently.
@siddontang @disksing PTAL

Any benchmark results?

LGTM

According to sysbench, performance is decreased a little bit (2% ~ 3%), but it should be able to make requests waiting in a batch wait less time than the past.

Could you file another issue to track the performance issue?

@BusyJay
I am confused that why the performance is decreased by 2%-3%, within a margin of error?


fix(css): .css?url support

Description

.css?url now returns a URL to transformed CSS

before, it was returning a URL to transformed CSS in dev, and to raw CSS after build

.css?raw&url now returns a URL to raw CSS

note that .css?raw returns a JS module (export default ".foo {}") but .css?raw&url returns a URL to CSS file (.foo {})

.module.css?url now throws an error

this was never useful because there's no way to get the class name map ({ 'foo': 'foo_hash' }) without injecting the actual CSS

fixes #2522
fixes #7842
fixes #13416
Additional context

What is the purpose of this pull request?

[x] Bug fix
[ ] New Feature
[ ] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines, especially the Pull Request Guidelines.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[x] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Update the corresponding documentation if needed.
[x] Ideally, include relevant tests that fail without this PR but pass with it.

.css?raw&url now returns a URL to raw CSS

Is there a reason this is supported? I can't quite think of a case where a user would use this, using plain .css?raw and maybe manualChunks should be good enough. Was it for compat for .css?url in prod before?

.css?raw&url now returns a URL to raw CSS

Is there a reason this is supported? I can't quite think of a case where a user would use this, using plain .css?raw and maybe manualChunks should be good enough. Was it for compat for .css?url in prod before?

I added it for compat for .css?url in prod before. I'm fine removing it.

In the last meeting, we discussed that we should add ?raw&url after we find a use case.

I removed the ?raw&url feature and rebased on main branch.

There appears to be a similar issue with SCSS. Say I have:
import selectStyles from "somePackage/Select.scss?inline";

export const Theme = () => <style>{selectStyles}</style>;

And that Select.scss has
:root,
:host {
  --select-icon: url("./chevron.svg");
}

.selectStyles {
  background-image: var(--select-icon);
}

Vite thinks that ./chevron.svg is relative to the app and not node_modules and so tries to resolve it by looking up /assets/chevron.svg

Hey @josephmarkus! Your comment in this merged PR will be quickly lost in the repo activity. Would you create a new issue with a minimal reproduction against the latest Vite so we can properly track the problem you are reporting?

Was just filling in a bug report and whilst reproducing the error realised that my SCSS file imports another SCSS file, but if I target the end file directly, Vite resolves everything fine, so maybe not an issue 🤷♂


HBASE-28044 Reduce frequency of saving backing map in persistence cache

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 41s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
prototool
0m  0s
prototool was not available.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 17s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
3m 53s
HBASE-27389 passed

+1 :green_heart:
compile
3m 37s
HBASE-27389 passed

+1 :green_heart:
checkstyle
0m 47s
HBASE-27389 passed

-1 :x:
spotless
0m 42s
branch has 67 errors when running spotless:check, run spotless:apply to fix.

+1 :green_heart:
spotbugs
5m  9s
HBASE-27389 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
3m 28s
the patch passed

+1 :green_heart:
compile
3m 35s
the patch passed

+1 :green_heart:
cc
3m 35s
the patch passed

+1 :green_heart:
javac
3m 35s
the patch passed

+1 :green_heart:
checkstyle
0m  7s
The patch passed checkstyle in hbase-protocol-shaded

+1 :green_heart:
checkstyle
0m 51s
hbase-server: The patch generated 0 new + 44 unchanged - 3 fixed = 44 total (was 47)

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
14m 24s
Patch does not cause any errors with Hadoop 3.2.4 3.3.5.

+1 :green_heart:
hbaseprotoc
1m  3s
the patch passed

+1 :green_heart:
spotless
0m 40s
patch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
4m  4s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 15s
The patch does not generate ASF License warnings.

51m  8s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
dupname asflicense cc hbaseprotoc spotless prototool javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux daa772e264aa 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 2469aca027

Default Java
Eclipse Adoptium-11.0.17+8

spotless
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/artifact/yetus-general-check/output/branch-spotless.txt

Max. process+thread count
82 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/console

versions
git=2.34.1 maven=3.8.6 spotbugs=4.7.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 25s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 14s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 50s
HBASE-27389 passed

+1 :green_heart:
compile
1m 15s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 56s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 31s
HBASE-27389 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 29s
the patch passed

+1 :green_heart:
compile
1m 15s
the patch passed

+1 :green_heart:
javac
1m 15s
the patch passed

+1 :green_heart:
shadedjars
4m 55s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 33s
hbase-protocol-shaded in the patch passed.

-1 :x:
unit
217m 35s
hbase-server in the patch failed.

241m 46s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux d50cf49f4ad4 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 2469aca027

Default Java
Eclipse Adoptium-11.0.17+8

unit
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/testReport/

Max. process+thread count
4719 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 27s
Docker mode activated.

-0 :warning:
yetus
0m  2s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 15s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 28s
HBASE-27389 passed

+1 :green_heart:
compile
1m  1s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 55s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 30s
HBASE-27389 passed

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 10s
the patch passed

+1 :green_heart:
compile
1m  3s
the patch passed

+1 :green_heart:
javac
1m  3s
the patch passed

+1 :green_heart:
shadedjars
4m 51s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 27s
hbase-protocol-shaded in the patch passed.

-1 :x:
unit
225m 57s
hbase-server in the patch failed.

249m  5s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux 01cf3b32d71e 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 2469aca027

Default Java
Temurin-1.8.0_352-b08

unit
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/testReport/

Max. process+thread count
4723 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/1/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 27s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 34s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 16s
HBASE-27389 passed

+1 :green_heart:
compile
1m  0s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 50s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
HBASE-27389 passed

-0 :warning:
patch
5m 32s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

-1 :x:
mvninstall
1m  5s
root in the patch failed.

-1 :x:
compile
0m 25s
hbase-server in the patch failed.

-0 :warning:
javac
0m 25s
hbase-server in the patch failed.

-1 :x:
shadedjars
3m 28s
patch has 16 errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 25s
hbase-protocol-shaded in the patch passed.

-1 :x:
unit
0m 25s
hbase-server in the patch failed.

17m 42s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux 24ce62f9a6da 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Temurin-1.8.0_352-b08

mvninstall
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/artifact/yetus-jdk8-hadoop3-check/output/patch-mvninstall-root.txt

compile
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/artifact/yetus-jdk8-hadoop3-check/output/patch-compile-hbase-server.txt

javac
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/artifact/yetus-jdk8-hadoop3-check/output/patch-compile-hbase-server.txt

shadedjars
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/artifact/yetus-jdk8-hadoop3-check/output/patch-shadedjars.txt

unit
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/testReport/

Max. process+thread count
67 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/3/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 26s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
prototool
0m  0s
prototool was not available.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 10s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 39s
HBASE-27389 passed

+1 :green_heart:
compile
3m  4s
HBASE-27389 passed

+1 :green_heart:
checkstyle
0m 38s
HBASE-27389 passed

+1 :green_heart:
spotless
0m 40s
branch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
3m 39s
HBASE-27389 passed

-0 :warning:
patch
1m 36s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 10s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 42s
the patch passed

+1 :green_heart:
compile
3m  1s
the patch passed

+1 :green_heart:
cc
3m  1s
the patch passed

+1 :green_heart:
javac
3m  1s
the patch passed

+1 :green_heart:
checkstyle
0m 40s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
10m 12s
Patch does not cause any errors with Hadoop 3.2.4 3.3.5.

+1 :green_heart:
hbaseprotoc
1m  3s
the patch passed

-1 :x:
spotless
0m 36s
patch has 21 errors when running spotless:check, run spotless:apply to fix.

+1 :green_heart:
spotbugs
3m 58s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 14s
The patch does not generate ASF License warnings.

40m 27s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
dupname asflicense cc hbaseprotoc spotless prototool javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux 4d7c56c384c6 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Eclipse Adoptium-11.0.17+8

spotless
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/artifact/yetus-general-check/output/patch-spotless.txt

Max. process+thread count
82 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/console

versions
git=2.34.1 maven=3.8.6 spotbugs=4.7.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 26s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 10s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 28s
HBASE-27389 passed

+1 :green_heart:
compile
1m 15s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 53s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 30s
HBASE-27389 passed

-0 :warning:
patch
5m 37s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 32s
the patch passed

+1 :green_heart:
compile
1m 15s
the patch passed

+1 :green_heart:
javac
1m 15s
the patch passed

+1 :green_heart:
shadedjars
4m 57s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 33s
hbase-protocol-shaded in the patch passed.

-1 :x:
unit
223m 16s
hbase-server in the patch failed.

247m  7s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux 8bb408b23dd6 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Eclipse Adoptium-11.0.17+8

unit
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/artifact/yetus-jdk11-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/testReport/

Max. process+thread count
5020 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 26s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 11s
HBASE-27389 passed

+1 :green_heart:
compile
0m 59s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 49s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
HBASE-27389 passed

-0 :warning:
patch
5m 31s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 11s
the patch passed

+1 :green_heart:
compile
1m  1s
the patch passed

+1 :green_heart:
javac
1m  1s
the patch passed

+1 :green_heart:
shadedjars
4m 53s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 25s
hbase-protocol-shaded in the patch passed.

-1 :x:
unit
229m 40s
hbase-server in the patch failed.

252m  6s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux 79de26dd4948 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Temurin-1.8.0_352-b08

unit
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/testReport/

Max. process+thread count
4741 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/4/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 25s
Docker mode activated.

_ Prechecks _

+1 :green_heart:
dupname
0m  0s
No case conflicting files found.

+0 :ok:
prototool
0m  0s
prototool was not available.

+1 :green_heart:
hbaseanti
0m  0s
Patch does not have any anti-patterns.

+1 :green_heart:
@author
0m  0s
The patch does not contain any @author tags.

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 19s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 42s
HBASE-27389 passed

+1 :green_heart:
compile
3m  4s
HBASE-27389 passed

+1 :green_heart:
checkstyle
0m 37s
HBASE-27389 passed

+1 :green_heart:
spotless
0m 40s
branch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
3m 40s
HBASE-27389 passed

-0 :warning:
patch
1m 36s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 39s
the patch passed

+1 :green_heart:
compile
3m  2s
the patch passed

+1 :green_heart:
cc
3m  2s
the patch passed

+1 :green_heart:
javac
3m  2s
the patch passed

+1 :green_heart:
checkstyle
0m 41s
the patch passed

+1 :green_heart:
whitespace
0m  0s
The patch has no whitespace issues.

+1 :green_heart:
hadoopcheck
10m  8s
Patch does not cause any errors with Hadoop 3.2.4 3.3.5.

+1 :green_heart:
hbaseprotoc
1m  3s
the patch passed

+1 :green_heart:
spotless
0m 40s
patch has no errors when running spotless:check.

+1 :green_heart:
spotbugs
3m 58s
the patch passed

_ Other Tests _

+1 :green_heart:
asflicense
0m 15s
The patch does not generate ASF License warnings.

40m 52s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/artifact/yetus-general-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
dupname asflicense cc hbaseprotoc spotless prototool javac spotbugs hadoopcheck hbaseanti checkstyle compile

uname
Linux 3e67a65f979d 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Eclipse Adoptium-11.0.17+8

Max. process+thread count
80 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/console

versions
git=2.34.1 maven=3.8.6 spotbugs=4.7.3

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:confetti_ball: +1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 27s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 12s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 43s
HBASE-27389 passed

+1 :green_heart:
compile
1m 14s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 55s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 31s
HBASE-27389 passed

-0 :warning:
patch
5m 40s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 12s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 35s
the patch passed

+1 :green_heart:
compile
1m 16s
the patch passed

+1 :green_heart:
javac
1m 16s
the patch passed

+1 :green_heart:
shadedjars
4m 54s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 29s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 33s
hbase-protocol-shaded in the patch passed.

+1 :green_heart:
unit
216m 54s
hbase-server in the patch passed.

241m 14s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/artifact/yetus-jdk11-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux 314e88ffa382 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Eclipse Adoptium-11.0.17+8

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/testReport/

Max. process+thread count
4833 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.

:broken_heart: -1 overall

Vote
Subsystem
Runtime
Comment

+0 :ok:
reexec
0m 25s
Docker mode activated.

-0 :warning:
yetus
0m  3s
Unprocessed flag(s): --brief-report-file --spotbugs-strict-precheck --whitespace-eol-ignore-list --whitespace-tabs-ignore-list --quick-hadoopcheck

_ Prechecks _

_ HBASE-27389 Compile Tests _

+0 :ok:
mvndep
0m 12s
Maven dependency ordering for branch

+1 :green_heart:
mvninstall
2m 23s
HBASE-27389 passed

+1 :green_heart:
compile
1m  1s
HBASE-27389 passed

+1 :green_heart:
shadedjars
4m 52s
branch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 32s
HBASE-27389 passed

-0 :warning:
patch
5m 36s
Used diff version of patch file. Binary files and potentially other changes not applied. Please rebase and squash commits if necessary.

_ Patch Compile Tests _

+0 :ok:
mvndep
0m 11s
Maven dependency ordering for patch

+1 :green_heart:
mvninstall
2m 39s
the patch passed

+1 :green_heart:
compile
1m 15s
the patch passed

+1 :green_heart:
javac
1m 15s
the patch passed

+1 :green_heart:
shadedjars
5m 41s
patch has no errors when building our shaded downstream artifacts.

+1 :green_heart:
javadoc
0m 34s
the patch passed

_ Other Tests _

+1 :green_heart:
unit
0m 29s
hbase-protocol-shaded in the patch passed.

-1 :x:
unit
255m 33s
hbase-server in the patch failed.

280m 21s

Subsystem
Report/Notes

Docker
ClientAPI=1.43 ServerAPI=1.43 base: https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/artifact/yetus-jdk8-hadoop3-check/output/Dockerfile

GITHUB PR
https://github.com/apache/hbase/pull/5371

Optional Tests
unit javac javadoc shadedjars compile

uname
Linux d5731bc2c6ae 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Build tool
maven

Personality
dev-support/hbase-personality.sh

git revision
HBASE-27389 / 5e2cc6363b

Default Java
Temurin-1.8.0_352-b08

unit
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/artifact/yetus-jdk8-hadoop3-check/output/patch-unit-hbase-server.txt

Test Results
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/testReport/

Max. process+thread count
4641 (vs. ulimit of 30000)

modules
C: hbase-protocol-shaded hbase-server U: .

Console output
https://ci-hbase.apache.org/job/HBase-PreCommit-GitHub-PR/job/PR-5371/5/console

versions
git=2.34.1 maven=3.8.6

Powered by
Apache Yetus 0.12.0 https://yetus.apache.org

This message was automatically generated.


Extending a Pact

We're using pact to allow our mobile app development team to define their expectations of our API; they're creating JSON-based pacts via the Swift consumer library. The problem is that our API uses token-based authentication, which works off of request headers (which are fixed in the JSON files).
Would it be possible to extend a pact programmatically so as to allow for more realistic end-to-end testing (without stubbing out the backend)? I would imagine the API would look something like so:
Pact.provider_states_for "iOS" do
  set_up do |provider_state|
    provider_state.request.headers["Authentication"] = "foo"
  end
end

It's something we've thought about, but have always managed to find a way to work around. I'm a little hesitant to add it, but can see why it would be useful.
How are you verifying the provider at the moment? Using pact-provider-proxy to verify against a running server, or running it against a normal Rack app?

We're running against a normal Rack app.
On Mon, Jul 20, 2015 at 6:45 PM, Beth Skurrie<EMAIL_ADDRESS>wrote:

It's something we've thought about, but have always managed to find a way to work around. I'm a little hesitant to add it, but can see why it would be useful.
How are you verifying the provider at the moment? Using pact-provider-proxy to verify against a running server, or running it against a normal Rack app?
Reply to this email directly or view it on GitHub:
https://github.com/realestate-com-au/pact/issues/84#issuecomment-123078433

In that case, you can do a quick and dirty trick using some Rack middleware.
class ProxyRackApp
  def initialize app
    @app = app
  end

  def call env
    # Modify headers here!
    @app.call(env)
  end
end

Pact.service_provider "My provider" do
  app { ProxyRackApp.new(your_provider_app) }
end

Closing, assuming this helped.


Updated package.json

Couldn’t get graphql up to 0.9.0, seems there was a breaking change

Removed.

Perhaps the breaking changes didn't kick in until the minor version update

included by #206


[Bug] Unused packages in dependencies

The package and version specifications in dependencies need to be reviewed.
For example, scvelo is not supposed to be used within scEGOT.

Warnings
scegot 0.1.3 requires screcode==0.2.2, but you have screcode 0.2.5 which is incompatible.
scegot 0.1.3 requires scvelo<0.3.0,>=0.2.5, but you have scvelo 0.3.1 which is incompatible.


"php.validate.executablePath": "/usr/bin/php",

Issue Type: Bug
Hi There. I am trying to make VS Code to lint PHP, however setting "php.validate.executablePath": "/usr/bin/php" has no effect. PHP is im my path indeed...
[~]$ which php
/usr/bin/php
Cheers
VS Code version: Code 1.31.0 (7c66f58312b48ed8ca4e387ebd9ffe9605332caa, 2019-02-06T08:51:24.856Z)
OS version: Linux x64 4.20.8-200.fc29.x86_64

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-3630QM CPU @ 2.40GHz (8 x 1869)

GPU Status
2d_canvas: enabledchecker_imaging: disabled_offflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: disabled_softwarerasterization: disabled_softwaresurface_synchronization: enabled_onvideo_decode: unavailable_offwebgl: enabledwebgl2: enabled

Load (avg)
1, 1, 1

Memory (System)
15.62GB (0.48GB free)

Process Argv
--extensions-dir=/home/miguel/.var/app/com.visualstudio.code/data/vscode/extensions --reuse-window

Screen Reader
no

VM
0%

Extensions (1)

Extension
Author (truncated)
Version

php-intellisense
fel
2.3.10

You will have to use an extension for that

Hi. I have found my installation of VSCode from Flathub that was not seeing the PHP in environment path. I just installed VSCode from official download page, and everything is okay now. Thanks.


Not able to add video in the editor on windows and linux

Is there an existing issue for this?

[X] I have searched the existing issues

Flutter Quill version
9.2.10
Steps to reproduce

Clicked on video button in the toolbar
Selected a video file.
After selecting it just show blue line keep loading.

Expected results
It should import the video file in the editor.
Actual results
It just show blue line keep loading.
Code sample
Code sample
NA

Screenshots or Video

Screenshots / Video demonstration

Logs
Logs
[Paste your logs here]

I am also facing this issue. Turns out flutter_quill_extensions uses video_player package which only supports Android iOS macOS	and Web. Wondering if there is any way to implement video player from ourselves?

The error I got when I imported a video in Ubuntu:
flutter: UnimplementedError: init() has not been implemented.


feat(bng): converted application to use british national grid

meant to pull to my own fork! oops..

See #17, we are discussing the best method for allowing alternate SRIDs

Awesome!
I spent some time yesterday wrapping the app in electron, as part of that, I was going to create a menu item to change the config file - I could maybe look into doing some stuff around the SRID at the same time as my current solution is quite limiting - despite working mostly in 27700 - it's nice to have an alternative option. 👍
Neat little project by the way. :-)


400 bad request

Hi,
I am using meilisearch and I am getting an error:
httpx.HTTPStatusError: Client error '400 Bad Request' for url 'http://dc6cgw.qc.bell.ca:7700/indexes/gk/search'
The version I have installed on pycharm is 0.19.1 and on the server it is v0.26.1
How can I fix this issue? As my search API is working on the browser but from the code it is giving a 400 bad request.
Thank you.

Hello @sabamohammadali
This is because your Python SDK package is incompatible with v0.26.1. The meilisearch-python SDK v0.19.1 only guarantees compatibility with the latest version of meilisearch (v0.28). The issue could be resolved by using a compatible version.
I hope this helps. Many thanks 🙂

Thank you :) It worked. I installed meilisearch_python_async version 0.23.1 which works with the version on the server v0.26.1, any version above this is not compatible and the API doesn't work


Remove the runtime dependency

Another idea is to remove the runtime dependency, especially for those who don't use custom Comparers. They can be delivered explicitly (with global:: full typepaths to avoid possible collisions).
Originally posted by @HavenDV in https://github.com/diegofrata/Generator.Equals/issues/22#issuecomment-1225447457

I don't see much gain in removing the runtime dependency only for cases without custom comparers, to me this is either all or nothing -- either we move all comparers to be source generated and get rid of the runtime dependency at all or we don't. It's a sizeable piece of work that probably deserves its own issue.

The main problem is that the Runtime package has a dependency:
<PackageReference Include="Microsoft.Bcl.HashCode" Version="1.1.0" />

This has been removed from 3.0 as it caused issues in packages with InternalsVisibleTo. Needs to rethink the approach.

Could this be fixed by users needing it referencing .Runtime explicitly? So anyone using only default comparers doesn't need it, anyone using them just needs to reference both packages directly.


Rimworld 1.5 Support

Rimworld 1.5 beta works, but there has been some regression which needs to be fixed first.


remove solana-sdk from solana-streamer

Problem
solana-streamer doesn't need to directly depend on solana-sdk
Summary of Changes
Replace solana-sdk in solana-streamer with its constituent crates
This branches off #3119 so that needs to be merged first (update: done)

@KirillLykov are you able to review this one?

Yeah I made the dev deps messier than necessary. Fixed them up in the latest commit


Add supported models, data types and capability matrix to README.md responsibleai

Description
This is based on one of the customer feedback that responsibleai lacked the supported models and data type information.
Areas changed

npm packages changed:

[ ] responsibleai/causality
[ ] responsibleai/core-ui
[ ] responsibleai/counterfactuals
[ ] responsibleai/dataset-explorer
[ ] responsibleai/fairness
[ ] responsibleai/interpret
[ ] responsibleai/localization
[ ] responsibleai/mlchartlib
[ ] responsibleai/model-assessment

Python packages changed:

[ ] raiwidgets
[x] responsibleai
[ ] erroranalysis
[ ] rai_core_flask

Tests

[x] No new tests required.
[ ] New tests for the added feature are part of this PR.
[ ] I validated the changes manually.

Screenshots (if appropriate):
Documentation:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.

Codecov Report

Merging #1259 (4ffc17d) into main (2dd3799) will decrease coverage by 14.27%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main    #1259       +/-   ##
===========================================
- Coverage   89.85%   75.58%   -14.28%
===========================================
  Files          26       10       -16
  Lines        1331      258     -1073
===========================================
- Hits         1196      195     -1001
+ Misses        135       63       -72

Flag
Coverage Δ

unittests
75.58% <ø> (-14.28%)
:arrow_down:

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

Impacted Files
Coverage Δ

...erroranalysis/_internal/error_analyzer/__init__.py

...nalysis/erroranalysis/_internal/version_checker.py

erroranalysis/erroranalysis/report/error_report.py

erroranalysis/erroranalysis/_internal/metrics.py

erroranalysis/erroranalysis/__init__.py

...is/erroranalysis/_internal/surrogate_error_tree.py

erroranalysis/erroranalysis/_internal/utils.py

...ranalysis/erroranalysis/_internal/matrix_filter.py

erroranalysis/erroranalysis/version.py

erroranalysis/erroranalysis/analyzer/__init__.py

... and 6 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 2dd3799...4ffc17d. Read the comment docs.


ci: Fix codegen failure when the branch exists

Fixes #N/A
Description
This PR updates CodeGen so that it won't fail when the branch is left around after a merge.
This change also allows you to manually trigger the CodeGen by running a workflow_dispatch operation against the action.
How was this change tested?
Does this change impact docs?

[ ] Yes, PR includes docs updates
[ ] Yes, issue opened: #
[x] No

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.02%) to 82.472%

Files with Coverage Reduction
New Missed Lines
%

pkg/providers/amifamily/ami.go
1
90.32%

Totals

Change from base Build<PHONE_NUMBER>:
-0.02%

Covered Lines:
4917

Relevant Lines:
5962

💛  - Coveralls


make websockets backend use sync .send like base

Oversight when designing the WesocketManager that its .send method was async while all other Sending backends are sync. These things can be sync because they're not actually putting anything on the wire, just dropping it into the outbound message queue.
Note it can be confusing that the underlying websockets library has an async .send method, so there will be some code that looks like mgr.send right next to await mgr.ws.send 🤷♂ . I figure better to be consistent with other backends though, and want to get this in before the WebsocketManager is widely used.

Current dependencies on/for this PR:

main

PR #26

PR #27   👈

PR #28

This comment was auto-generated by Graphite.

Codecov Report

Merging #27 (35bcb3d) into main (043ebec) will not change coverage.
The diff coverage is 100.00%.

:exclamation: Current head 35bcb3d differs from pull request most recent head 89aed4e. Consider uploading reports for the commit 89aed4e to get more accurate results

@@           Coverage Diff           @@
##             main      #27   +/-   ##
=======================================
  Coverage   95.46%   95.46%
=======================================
  Files           8        8
  Lines         463      463
=======================================
  Hits          442      442
  Misses         21       21

Impacted Files
Coverage Δ

sending/backends/websocket.py
90.00% <100.00%> (ø)

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 043ebec...89aed4e. Read the comment docs.


Pixhawk 2 reverted to 1.8.2

I had a pixhawk 2 with 1.9.2 flashed. I was doing some tests (sd card scripts, mavlink link, ...) and at some point QGC reported me something like "You have an old firmware 1.8.2, please move to recent stable release 1.9.2", and in the Firmware section it was written 1.8.2.
To be on the safe side I flashed again 1.9.2 then I had problems arming because it required accel calibration (but the sensor tab on QGC was green and the parameters for accel calibrations were there). After a new accel calibration it was fine.
The only "weird" things that I did were:

Power on the Pixhawk once without SD card.
When powering on with a battery I had a loose connection so it powered on and off quickly multiple times in short amount of time.

but I don't think that should impact the firmware.

@tuloski have you found out more here?
It's physically not possible that it would just "revert" from 1.9.2 to 1.8.2 without someone reflashing it.


fix: don't print stacktrace on error

:tada: This PR is included in version 1.1.0-beta.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Environment stuck when installing

Hello,
I tried setting up the environment with conda env create -f environment.yml but conda displays "Solving environment" indefinitely. I tested on two different machines (Ubuntu 18.04.4 LTS, and 20.04.4 LTS) and the same problem occurred. One attempt lasted 23 hours before I gave up.
Have you tried installing the environment? Does the installation process work for you?
Best,
Nicolas

Hello,
I tried setting up the environment with conda env create -f environment.yml but conda displays "Solving environment" indefinitely. I tested on two different machines (Ubuntu 18.04.4 LTS, and 20.04.4 LTS) and the same problem occurred. One attempt lasted 23 hours before I gave up.
Have you tried installing the environment? Does the installation process work for you?
Best, Nicolas

Hello I faced same problem. You should used mamba instead of conda and it works well. You should check #33 for reference.
Best,
Tanveer

Thanks for your help, I used the solution from this issue at the end: https://github.com/mamba-org/mamba/issues/633 and it worked.

Thanks for your help, I used the solution from this issue at the end: mamba-org/mamba#633 and it worked.

Happy that your problem get solved. Do your have any idea about isssue #48. I have asked this question but getting no response?


DOI tab in work edit form

This is the start of the UI work (and making it all real).
In this PR:

Switch from symbols to strings for DOI states
Add a fallback value for publisher in data sent to DataCite
DOI form mixin modules, helper module, and view
Tests for form modules, helper module, and view

TODO:

Generator improvements to inject the modules in the appropriate places
DOI field should be singular instead of multiple in the view

The diff coverage is low because the helper coverage isn't being counted for some reason.  The helper really is being tested though so the diff coverage should be 100%.


Trigger one more prerelease by another way

:tada: This PR is included in version 1.2.0-test.1 :tada:
The release is available on:

npm package (@test dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Se cleanup01

Hi EngineerGuy314!
Thanks for your pico_WSPRer!
I would like to understand the code well, so I decided to contribute a bit by trying to document it (using doxygen) and clean it up a bit.
The problem is that the build/ directory is included in the repository, which will make any merging of the code terribly messy.
This is my first attempt at contributing to a github project, so I don't know exactly how to go about it.
Aside from setting up the dox/ directory for the doxygen documentation, I just cleaned up the code a bit at the beginning of main.c (The initialization of PICO_DEFAULT_LED_PIN (25) was there twice in a row, and PICO_VSYS_PIN (29) didn't use the name, just the number 29.

Hi Jakub,
Sounds good, i'll ignore the first pull request for now, and wait for you to submit new changes.
I did some research on Doxygen, and I immediately recognized the structure that I saw in a lot of Roman's original project.
but this is funny, while reading i saw the link to doxygen sourcecode on github. I took a look at it, because I figured that the author of doxygen would show a good example in his own work of how to adhere to his documentation standard.  but the vast majority of the doxygen sourceode does NOT follow the<EMAIL_ADDRESS>///param style!


[release v1.25] Cherry pick: Add mount-cgroup init container to node ds

Description
Cherry-pick PR https://github.com/tigera/operator/pull/1957 to release v.1.25

For PR author

[ ] Tests for change.
[ ] If changing pkg/apis/, run make gen-files
[ ] If changing versions, run make gen-versions

For PR reviewers
A note for code reviewers - all pull requests must have the following:

[ ] Milestone set according to targeted release.
[ ] Appropriate labels:

kind/bug if this is a bugfix.
kind/enhancement if this is a a new feature.
enterprise if this PR applies to Calico Enterprise only.

We should perhaps hold off merging this until after v1.25.10 is cut, since we are now going through testing of a release candidate.


go: fix client stream mock test

Fixes #2347

Codecov Report

Merging #2348 into master will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #2348   +/-   ##
=========================================
  Coverage     86.71%   86.71%
  Complexity     5194     5194
=========================================
  Files           454      454
  Lines         20641    20641
  Branches       2229     2229
=========================================
  Hits          17899    17899
  Misses         1960     1960
  Partials        782      782

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 753ff9d...f72613f. Read the comment docs.

Can you add the showcase mock unit tests to the circleci config so we can check if this works?
      - run:
          name: Test Showcase
          command: go test cloud.google.com/go/showcase/apiv1alpha2
          when: always

@landrito PTAL


I want to try the EKF2_replay function without gps data. What should I do?

Take a look at regular system wide replay. https://dev.px4.io/en/debug/system_wide_replay.html


Support deploy to a model with RefreshPolicy enabled (Incremental Refresh)

I have a dataset with 2 tables: Product and Sales (with Incremental Refresh enabled)
I want to add a new column into the Product table and deploy that new column into an existent dataset.
If I run the TabularEditor cmdline to deploy with the -P parameter:
TabularEditor.exe "Model.bim" -D "" "DataSet" -L "username" "password" -O -V -E -W -P
Tabular Editor on"Product" table overwrites the M code and after the refresh the column is available. But for "Sales" table it deletes all the partitions...
A nice feature could be a parameter to deploy partitions but skip the partition deploy on tables with RefreshPolicy enabled because the M code is embedded in the refresh policy and not into the partition itself

Fixed in 2.13.0

Tabular Editor 2.13.0 now features an -Y switch which is used right after -P to indicate that you want to overwrite partitions, EXCEPT those that have Incremental Policies defined.


Carpet for Skyblock.6 crashes when opening Single Player screen

Info:
MC 1.14.0
Fabric: 1.14+build.7-0.4.5+build.141
API: fabric-<IP_ADDRESS>
quickcarpet114-1.8.0
Game loads fine, mod causes a mouseclickevent crash when clicking the "Single Player" menu option on the loading screen. Disabling carpet mod prevents the crash. Can click "Multiplayer" without crashing with mod enabled.
Crash Report: https://pastebin.com/RdtyWp4j

Looks like you have the Fabric API for snapshot-19w14b. You gotta update to 1.14 API

Also experiencing this issue using the 1.14 API, same error. The game crashes upon attempting to load the singleplayer menu with worlds, and upon attempting to generate a new world. It does not crash when loading the multiplayer menu or when loading the singleplayer menu without worlds. Joining a server provides the same error message but does not crash:
"org.spongepowered.asm.mixin.transformer.throwables.MixinTransformerError: An unexpected critical error was encountered"

I can confirm that the abovementioned problem persists in 1.14 API

@Riverstarship  and @Kinomora you can use second to last version for the time being... https://github.com/DeadlyMC/QuickCarpet114/releases/tag/1.8.0%2Bskyblock.6 it works fine for me.

@Kinomora The crash log says you have 1.8.0 (which has a crash bug), not 1.8.0+skyblock.6 (which should work fine).
Either use 1.8.1 or 1.8.0+skyblock.6

Yes, I can confirm I am dumb and somehow managed to download the wrong mod :'D
SB.6 works on the latest API build.
Thanks for the help :)


bh_player_boxes seems broken

hud_reloadscheme fixes this though.

Hmm interesting, hud_reloadscheme fixing it would suggest it has something to do with an animation but I don't believe I do any movement of it with animations. I wonder if it has something to do with using the cs values or something

I've added a separate pin element and then pinned it to that, it seems to have resolved it from what I can tell..strange though


[ROS2] Image Publisher Problems

[x] I am at the right place and my issue is directly related to ROS#. General technical questions I would post e.g. at ROS Answers or Stack Overflow. For library-specific questions I would look for help in the corresponding library forums.
[x] I have thoroughly read the Contributing Guideline and writing this issue is the right thing to do in my case.

I have a question!

[x] I searched the Wiki, open and closed issues for an answer. I tried my best to find the answer by myself without success. I believe that the discussion we will have in this issue, and the solutions we might find, will help me, and likely other community members who have a similar problem.

Here is my question:
I am trying to get a video stream working from unity to ros foxy.
Therefore I tried to use the ImagePublisher but the camera render callback ( Camera.onPostRender += UpdateImage; ) was never triggered.
So I adapted it to use the RenderPipelineManager and also made a version for Compressed and Raw Images.
Quick and dirty to get things running:

CompressedImagePublisher
/*
© CentraleSupelec, 2017
Author: Dr. Jeremy Fix<EMAIL_ADDRESS>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
<http://www.apache.org/licenses/LICENSE-2.0>.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// Adjustments to new Publication Timing and Execution Framework
// © Siemens AG, 2018, Dr. Martin Bischoff<EMAIL_ADDRESS>
using System;
using UnityEngine;
using UnityEngine.Rendering;

namespace RosSharp.RosBridgeClient
{
    public class CompressedImagePublisher : UnityPublisher<MessageTypes.Sensor.CompressedImage>
    {
        public Camera ImageCamera;
        public string FrameId = "Camera";
        public int resolutionWidth = 640;
        public int resolutionHeight = 480;
        [Range(0, 100)]
        public int qualityLevel = 50;
        public float scanPeriod = 0.4f;

        private MessageTypes.Sensor.CompressedImage message;
        private Texture2D texture2D;
        private Rect rect;
        private float previousScanTime = 0;

        protected override void Start()
        {
            base.Start();
            InitializeGameObject();
            InitializeMessage();
        }

        void OnEnable()
        {
            RenderPipelineManager.endCameraRendering += RenderPipelineManager_endCameraRendering;
        }

        void OnDisable()
        {
            RenderPipelineManager.endCameraRendering -= RenderPipelineManager_endCameraRendering;
        }
        private void RenderPipelineManager_endCameraRendering(ScriptableRenderContext context, Camera camera)
        {
            if (Time.realtimeSinceStartup >= previousScanTime + scanPeriod)
            {
                UpdateImage(camera);
                previousScanTime = Time.realtimeSinceStartup;
            }
        }

        private void UpdateImage(Camera camera)
        {
            if (texture2D != null && camera == this.ImageCamera)
                UpdateMessage();
        }

        private void InitializeGameObject()
        {
            texture2D = new Texture2D(resolutionWidth, resolutionHeight, TextureFormat.RGB24, false);
            rect = new Rect(0, 0, resolutionWidth, resolutionHeight);
            ImageCamera.targetTexture = new RenderTexture(resolutionWidth, resolutionHeight, 24);
        }

        private void InitializeMessage()
        {
            message = new MessageTypes.Sensor.CompressedImage();
            message.header.frame_id = FrameId;
            message.format = "jpeg";
        }

        private void UpdateMessage()
        {
            message.header.Update();
            texture2D.ReadPixels(rect, 0, 0);
            try
            {
                message.data = texture2D.EncodeToJPG(qualityLevel);
                Publish(message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
                Debug.Log(e);
            }
        }

    }
}

In rviz I see no error message and no image. Also image_tools showimage starts but doesn't give any feedback.
But I receive data in the form of:
header:
  stamp:
    sec:<PHONE_NUMBER>
    nanosec: 667959928
  frame_id: base_link
format: jpeg
data:
- 0
- 0
- 65
- 0
...

RawImagePublisher
/*
© CentraleSupelec, 2017
Author: Dr. Jeremy Fix<EMAIL_ADDRESS>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
<http://www.apache.org/licenses/LICENSE-2.0>.
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// Adjustments to new Publication Timing and Execution Framework
// © Siemens AG, 2018, Dr. Martin Bischoff<EMAIL_ADDRESS>
using System.Text;
using UnityEngine;
using UnityEngine.Rendering;

namespace RosSharp.RosBridgeClient
{
    public class ImagePublisher : UnityPublisher<MessageTypes.Sensor.Image>
    {
        public Camera ImageCamera;
        public string FrameId = "Camera";
        public int resolutionWidth = 640;
        public int resolutionHeight = 480;
        [Range(0, 100)]
        public int qualityLevel = 50;
        public float scanPeriod = 0.4f;
        public string encoding = "rgba16";

        private MessageTypes.Sensor.Image message;
        private Texture2D texture2D;
        private Rect rect;
        private float previousScanTime = 0;

        protected override void Start()
        {
            base.Start();
            InitializeGameObject();
            InitializeMessage();
        }

        void OnEnable()
        {
            RenderPipelineManager.endCameraRendering += RenderPipelineManager_endCameraRendering;
        }

        void OnDisable()
        {
            RenderPipelineManager.endCameraRendering -= RenderPipelineManager_endCameraRendering;
        }
        private void RenderPipelineManager_endCameraRendering(ScriptableRenderContext context, Camera camera)
        {
            if (Time.realtimeSinceStartup >= previousScanTime + scanPeriod)
            {
                UpdateImage(camera);
                previousScanTime = Time.realtimeSinceStartup;
            }
        }

        private void UpdateImage(Camera camera)
        {
            if (texture2D != null && camera == this.ImageCamera)
                UpdateMessage();
        }

        private void InitializeGameObject()
        {
            texture2D = new Texture2D(resolutionWidth, resolutionHeight, TextureFormat.RGB24, false);
            rect = new Rect(0, 0, resolutionWidth, resolutionHeight);
            ImageCamera.targetTexture = new RenderTexture(resolutionWidth, resolutionHeight, 24);
        }

        private void InitializeMessage()
        {
            message = new MessageTypes.Sensor.Image();
            message.header.frame_id = FrameId;
            message.width = 640;
            message.height = 480;
        }

        private void UpdateMessage()
        {
            message.header.Update();
            texture2D.ReadPixels(rect, 0, 0);
            message.data = texture2D.EncodeToJPG(qualityLevel);
            message.encoding = encoding;
            Publish(message);
        }

    }
}

But with the raw publisher I get these errors in rviz:
ERROR<PHONE_NUMBER>.766240256] [rviz2]: Error loading image: InvalidParametersException: Stream size does not match calculated image size in Image::loadRawData at /tmp/binarydeb/ros-foxy-rviz-ogre-vendor-8.2.0/obj-x86_64-linux-gnu/ogre-v1.12.1-prefix/src/ogre-v1.12.1/OgreMain/src/OgreImage.cpp (line 225)
And this picture with image_tools show_image:

header:
  stamp:
    sec:<PHONE_NUMBER>
    nanosec: 536071062
  frame_id: base_link
height: 480
width: 640
encoding: rgba8
is_bigendian: 0
step: 0
data:
- 0
- 65
...

So my question is if there are other guys here who are testing this with ros2?
I am a bit clueless atm.
The compressed image publisher has the same configuration but shows nothing.
And the raw publisher seems to have a wrong encoding but finding the correct one between unity and ros is a bit confusing.
So again, maybe here are some guys with more experience than me ;)

My OS is: Ubuntu 20.04
My Unity Version is: 2020.1.7f1
My ROS Distribution is: foxy
My Build Target Platform is: x86

@maxlein Have you solved this problem?

No

Hi @jim18324 and @maxlein ,
I had the same problem when writing the ImageSubscriber and Publisher for ROS. Info about the image encoding on both sides ROS and Unity can hardly be found.
In ROS there was an additional (redundant) header in the beginning of the image byte array that caused me a lot of trouble. See my old post on stackoverflow.

Maybe the header bytes have been removed in ROS2?
You can test image communication between ROS and ROS2 to see if the codec was changed. In any case opencv should be able to load the image.
Loading the image contents in an hex editor helped me finding the answer.

I hope these hints help; sorry I can't support more.

@MartinBischoff thank you for your hints.
Forgive me I am new to Unity and ROS. I have a stupid question, how does the ROS# deal with this additional header problem when sending an image to ROS?

@jim18324 after reading my old posts more carefully I remember that the header 12byte header exisited in the CompressedDepthImage only, not in the CompressedImage. I needed that for the  3d point cloud visualization only.
In ROS# we just have CompressedImage subscribers and publishers which don't have to deal with the 12 bytes in beginning.
Sorry for the confusion; maybe the hints still help you to track down the problem.

@MartinBischoff thank you for your fast reply. I was wondering is there somewhere in the Ros# that might edit or modify the image data? Because, I've check the length of the image data passing into ros2-web-bridge and its length increase! (I also ask this question at #389 )

answered in #389 .

@maxlein @jim18324 were you able to solve this issue? I'm having it as well and I'm unable to get proper images in ROS 2. Any hint you may have will be helpful, thanks!

@FlorGrosso Sorry for late reply, but i haven't solve it, i think the problem is serialize and deserialize the data.


Gif for cli

Motivation for this change
Wanted to use it for my dotfiles
Things done

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

[x] NixOS
[ ] macOS
[ ] other Linux distributions

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

@dotlambda hey I reopened this as a new PR because the rebasing was causing problems I hope you do not mind, I fixed everything now  besides the NixOs tests

@GrahamcOfBorg build python2.pkgs.x256 python3.pkgs.x256

@GrahamcOfBorg build gif-for-cli

Ran 0 tests in 0.000s

Please provide an appropriate checkPhase or set doCheck = false and add a comment with the reason.

You need to squash the two new commits into the appropriate ones.

All feedback seems to have been addressed


[SMALLFIX] Fix ASYNC THROUGH write type description

@calvinjia PTAL, thanks

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/Alluxio-Pull-Request-Builder/4110/
Test PASSed.

alluxio-bot, merge this please

alluxio-bot, cherry-pick this to branch-2.0 please