opencv 3.2.0 installation Errors on ubuntu 16.04

Hi
I am new user of Ubuntu.  I am installing cuda8.0.,  cudnn5.1,  opencv3.2.0, torch, lua and other dependencies on system for deep learning applications. While installing openCV3.2 i got this error. I don't know why is it so I am asking your help to solve that problem.
Configuring incomplete, errors occurred!
See also "/home/chaudhary/opencv-3.2.0/build/CMakeFiles/CMakeOutput.log".
See also "/home/chaudhary/opencv-3.2.0/build/CMakeFiles/CMakeError.log".
I have attached the CMake error log and Output log as well.
CmakeErrorlog.txt
CMakeOutputlog.txt
Please guide me. Thanks in advance

Looks like OpenCV bugtracker is the most suitable place for this bugreport 😉
https://github.com/opencv/opencv/issues

Sure I check there as well.  But if you have seen the errors can you guide me ?

It's a HUGE offtopic for vcpkg but try to set up -DWITH_V4L=OFF flag for cmake

i have done with it  (-DWITH_V4L=OFF)
but still i am having errors like ..
Performing Test HAVE_CXX_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS
-- Performing Test HAVE_C_WNO_UNNAMED_TYPE_TEMPLATE_ARGS - Failed
Performing Test HAVE_CXX_WSTRICT_PROTOTYPES - Failed
-- Checking for module 'gtk+-3.0'
--   Found gtk+-3.0, version 3.18.9
-- Checking for module 'gthread-2.0'
--   Found gthread-2.0, version 2.48.2
-- Checking for module 'gstreamer-base-1.0'
--   No package 'gstreamer-base-1.0' found
-- Checking for module 'gstreamer-video-1.0'
--   No package 'gstreamer-video-1.0' found
-- Checking for module 'gstreamer-app-1.0'
--   No package 'gstreamer-app-1.0' found
-- Checking for module 'gstreamer-riff-1.0'
--   No package 'gstreamer-riff-1.0' found
-- Checking for module 'gstreamer-pbutils-1.0'
--   No package 'gstreamer-pbutils-1.0' found
-- Checking for module 'gstreamer-base-0.10'
--   Found gstreamer-base-0.10, version 0.10.36
-- Checking for module 'gstreamer-video-0.10'
--   Found gstreamer-video-0.10, version 0.10.36
-- Checking for module 'gstreamer-app-0.10'
--   Found gstreamer-app-0.10, version 0.10.36
-- Checking for module 'gstreamer-riff-0.10'
--   Found gstreamer-riff-0.10, version 0.10.36
-- Checking for module 'gstreamer-pbutils-0.10'
--   Found gstreamer-pbutils-0.10, version 0.10.36
-- Checking for module 'libdc1394-2'

Thanks for prompt answers, I am also looking at said forum but still could not find solution

Closing as off topic, please seek further help in the opencv mailing list and issue tracker!

There is no errors in this log. It's only misssing optional dependencies and compiler features.

https://github.com/opencv/opencv/issues/8372
I have pasted here full error report. How can i make it workable :(


[WebChat Carousel] doesn't display right scroll button

System Information (Required)

SDK Language: .NET/C#
SDK Version: 3.8.2
Development Environment: LOCALHOST

Issue Description
I used the standard Bot Framework WebChat channel to get an IFRAME of mybot and embeded in my website.
This is my Carousel. It doesn't show the right button.

So, I go to see iframe's code and I figure out the problem.
I change width to 500px then everything works fine.
But I can't modify iframe's code.
<!-- react-empty: 338 -->
<div class="wc-carousel" style="width: 500px;">

After I change the width it looks like this:

Hope anyone can help me to fix this problem.

Can you please share the JSON of your message which contains the carousel?

{
  "type": "message",
  "timestamp": "2017-07-11T07:21:05.414Z",
  "localTimestamp": "2017-07-11T15:21:05+08:00",
  "serviceUrl": "http://<IP_ADDRESS>:10832",
  "channelId": "emulator",
  "from": {
    "id": "ng4h8h409lcl9dm3",
    "name": "Bot"
  },
  "conversation": {
    "id": "c9ih7kf9mjef3cl0dc"
  },
  "recipient": {
    "id": "default-user"
  },
  "attachmentLayout": "carousel",
  "membersAdded": [],
  "membersRemoved": [],
  "locale": "zh-TW",
  "text": "",
  "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "601會議室(A館 6人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[1A]07月19日13:00",
            "value": "1A"
          },
          {
            "type": "imBack",
            "title": "[1B]07月20日09:00",
            "value": "1B"
          },
          {
            "type": "imBack",
            "title": "[1C]07月21日09:00",
            "value": "1C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "507會議室(E館 5人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[2A]07月18日13:00",
            "value": "2A"
          },
          {
            "type": "imBack",
            "title": "[2B]07月19日09:00",
            "value": "2B"
          },
          {
            "type": "imBack",
            "title": "[2C]07月24日13:00",
            "value": "2C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "506會議室(E館 5人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[3A]07月14日15:00",
            "value": "3A"
          },
          {
            "type": "imBack",
            "title": "[3B]07月17日09:00",
            "value": "3B"
          },
          {
            "type": "imBack",
            "title": "[3C]07月20日09:00",
            "value": "3C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "501會議室(A館 5人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[4A]07月13日09:00",
            "value": "4A"
          },
          {
            "type": "imBack",
            "title": "[4B]07月19日09:00",
            "value": "4B"
          },
          {
            "type": "imBack",
            "title": "[4C]07月24日13:00",
            "value": "4C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "602會議室(走廊 6人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[5A]07月12日13:00",
            "value": "5A"
          },
          {
            "type": "imBack",
            "title": "[5B]07月13日09:00",
            "value": "5B"
          },
          {
            "type": "imBack",
            "title": "[5C]07月17日13:00",
            "value": "5C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "502會議室(A館 5人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[6A]07月13日15:30",
            "value": "6A"
          },
          {
            "type": "imBack",
            "title": "[6B]07月14日13:00",
            "value": "6B"
          },
          {
            "type": "imBack",
            "title": "[6C]07月20日15:30",
            "value": "6C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "協志會議室-舞蝶館",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[7A]07月14日09:00",
            "value": "7A"
          },
          {
            "type": "imBack",
            "title": "[7B]07月17日15:00",
            "value": "7B"
          },
          {
            "type": "imBack",
            "title": "[7C]07月18日13:00",
            "value": "7C"
          }
        ]
      }
    },
    {
      "contentType": "application/vnd.microsoft.card.hero",
      "content": {
        "title": "505會議室(E館 5人)",
        "subtitle"<EMAIL_ADDRESS>        "text": "",
        "images": [],
        "buttons": [
          {
            "type": "imBack",
            "title": "[8A]07月14日14:30",
            "value": "8A"
          },
          {
            "type": "imBack",
            "title": "[8B]07月17日09:00",
            "value": "8B"
          },
          {
            "type": "imBack",
            "title": "[8C]07月18日13:00",
            "value": "8C"
          }
        ]
      }
    }
  ],
  "entities": [],
  "replyToId": "52494hh87m3d8kie1c",
  "id": "45i11ca1f14a394kac"
}

Thanks @GaiaAnn . I could not reproduce the error. Is this the first message in the chat? Perhaps there is a previous message that is not word-wrapping and forcing a wide layout?

No this is not the first message.We have two message without attachments before Carousel.

Ok, can you tell me:

Is this on Localhost? If so, is this in the emulator?
Is this in the Iframe from BotFramework?

If so, what is your bot Id?
can you tell me how can I get to the carousel?
which browser is this?
what type of page is hosting the iframe?

Is this on Localhost? If so, is this in the emulator?

I had test on Localhost too. In emulator it works fine.
I also test on Server.

Is this in the Iframe from BotFramework? If so, what is your bot Id?

Yes, id is FB_Conn
You can use my web chat here(key any word) :https://tdd-2012-2/webchat/
I use Safari & Chrome. Both not working.
html

My code in RootDialog.cs
Just create the same Hero card.
public async Task StartAsync(IDialogContext context)
        {
            context.Wait(ResumeAfter);
        }

        public async Task ResumeAfter(IDialogContext context, IAwaitable<object> result)
        {
            var resultMessage = context.MakeMessage();
            resultMessage.Attachments = new List<Attachment>();
            resultMessage.AttachmentLayout = AttachmentLayoutTypes.Carousel;
            resultMessage.Attachments.Add(BuildHeroCard().ToAttachment());
            resultMessage.Attachments.Add(BuildHeroCard().ToAttachment());
            resultMessage.Attachments.Add(BuildHeroCard().ToAttachment());
            resultMessage.Attachments.Add(BuildHeroCard().ToAttachment());
            await context.PostAsync(resultMessage);

            context.Done<object>(null);
        }

        public HeroCard BuildHeroCard()
        {
            HeroCard card = new HeroCard()
            {
                Title = "Hero Card",
                Subtitle = "Hero",
                Text = "This is hero card",
                Images =  new List<CardImage>() { new CardImage(RESOURCE_IMAGE) },
                Buttons = new List<CardAction>()
                {
                    new CardAction(ActionTypes.ImBack, "讚123123123123123123", value:"Like"),
                    new CardAction(ActionTypes.ImBack, "爛1231231231231231231", value:"Unlike"),
                }
            };
            return card;
        }

Thank you for your prompt  reply !

@GaiaAnn another couple of questions:

Which browser are you using?
Are you changing the width (CSS) from the iFrame or any other outside div?

Hi @reyesrico

Safari & Chrome
Yes. But the right button still not working if I remove all css.
This is not happen only in my web chat . It also happened in bot framework's test web chat.
It's very weird. I try it in bot framework's test web chat today.It shows right button at the first time. After I refresh my page, button disappear again !

Hi @GaiaAnn - Safari & Chrome - on a Mac or PC? I'm guessing Mac since Safari on PC is no longer supported :)

Yes I'm using Mac. But my friend use PC also have the same problem.
So, you test my web chat also can see the right button?
https://tdd-2012-2/webchat/

The URL https://tdd-2012-2/webchat/ is not accessible to me. I can repro your error on a Mac. It works correctly on my PCs.

Sorry my bad.
This URL you can try again https://tdd-2012-2.gss.com.tw/webchat/

Hello.
I am having the same issue as above. The right arrow out of bounds and not visible. Scrolling with the mouse wheel/touchpad_swipe works, just the button is not visible. On windows, all browsers.
Have you found any solution for the problem yet?

@compulim - can you take a look at this?

+1 facing this same issue, any quick fix on recommended width to make it work on Chrome/IE?

I have the same issue as above. Right arrow does not show in both the azure test chat and web channel as well. Is there a fix for this out yet?

Please provide any updates on this issue if possible.

The issue still manifests itself. Nothing seems to have changed from the node module's side. I have not found any workaround so far.

i'm getting the same problem!

My workaround was, on Carousel.tsx i fixed the width to a size smaller then container. Root offset is larger than the webchat container (400px) fixed on iframe.
 width 784
 root offsetwitdh 440

private updateContentWidth() {
    //after the attachments have been rendered, we can now measure their actual width
    const width = this.props.size.width - this.props.format.carouselMargin;

    console.log("width", width);
    //important: remove any hard styling so that we can measure the natural width
    this.root.style.width = '';

    console.log("root offsetwitdh", this.root.offsetWidth);
    //now measure the natural offsetWidth
     if (this.root.offsetWidth > width) {
        // the content width is bigger than the space allotted, so we'll clip it to force scrolling
        this.root.style.width = width.toString() + "px";
        // since we're scrolling, we need to show scroll buttons
        this.hscroll.updateScrollButtons();
     }else{
         this.root.style.width = 339+ "px";
         // since we're scrolling, we need to show scroll buttons
         this.hscroll.updateScrollButtons();
     }

}

+1

Further debugging a bit, i found out that this.root.offsetWidth sometimes gives incorrect values for carousel, likely when we have only 2 elements
because of that the scroll function does not trigger

Could the above be happening if the images are not loaded before we do this calculations ?
once image is loaded, the window resizes but it dont call the update function again

so after going through hours tying to understand how to call the element's updateComponentWidth() when image loads, i did a hot fix instead
The hack was
for hero cards, i added a css to have a minimum width of 175px, in botchat.css file
works for my bots because iframe width never crosses 400px for our chatbots and my carousel has a upper limit for 320
you can custom set the width depending on your application, until the dev fixes the bug and calls the above function when image inside cards are finished loading

Closing since this is a v3 bug, which is in sunset.


@xstate/test with guards difficult to model

Given the following contrived example (tests are passing), it's difficult to see what's happening.

The "cases" at the event level make it hard to see what triggers what guard
The guards also duplicate the app logic to an extent

Am I missing something or is this modelled correctly?
const { Machine } = require("xstate");
const { createModel } = require("@xstate/test");
const questionApp = {
    state: "a",
    getState: () => questionApp.state,
    answer: input => {
        if (questionApp.state === "a") {
            if (input === "b") {
                questionApp.state = "b";
            } else {
                questionApp.state = "c";
            }

            return questionApp.state;
        }

        if (questionApp.state === "c") {
            if (input === "d") {
                questionApp.state = "d";
            } else {
                questionApp.state = "e";
            }

            return questionApp.state;
        }
    }
};
const questionMachine = Machine(
    {
        id: "questions",
        initial: "a",
        states: {
            a: {
                on: {
                    ANSWER: [
                        {
                            target: "b",
                            cond: "bGuard"
                        },
                        {
                            target: "c"
                        }
                    ]
                },
                meta: {
                    test: app => {
                        if (app.getState() !== "a") {
                            throw Error("Must be a");
                        }

                        return true;
                    }
                }
            },
            b: {
                type: "final",
                meta: {
                    test: app => {
                        if (app.getState() !== "b") {
                            throw Error("Must be b");
                        }
                    }
                }
            },
            c: {
                on: {
                    ANSWER: [
                        {
                            target: "d",
                            cond: "dGuard"
                        },
                        {
                            target: "e"
                        }
                    ]
                },
                meta: {
                    test: app => {
                        if (app.getState() !== "c") {
                            throw Error("Must be c");
                        }
                    }
                }
            },
            d: {
                type: "final",
                meta: {
                    test: app => {
                        if (app.getState() !== "d") {
                            throw Error("Must be d");
                        }
                    }
                }
            },
            e: {
                type: "final",
                meta: {
                    test: app => {
                        if (app.getState() !== "e") {
                            throw Error("Must be e");
                        }
                    }
                }
            }
        }
    },
    {
        guards: {
            bGuard: (context, event, condMeta) => {
                return event.input === "b";
            },
            dGuard: (context, event, condMeta) => {
                return event.input === "d";
            }
        }
    }
);
const toggleModel = createModel(questionMachine, {
    events: {
        ANSWER: {
            exec: (app, event) => {
                app.answer(event.input);
            },
            cases: [
                {
                    input: "b"
                },
                {
                    input: "c"
                },
                {
                    input: "d"
                }
            ]
        }
    }
});

describe("questionApp", () => {
    afterEach(() => {
        questionApp.state = "a";
    });

    const testPlans = toggleModel.getShortestPathPlans();

    testPlans.forEach(plan => {
        describe(plan.description, () => {
            plan.paths.forEach(path => {
                it(path.description, () => {
                    // do any setup, then...
                    return path.test(questionApp);
                });
            });
        });
    });

    it("should have full coverage", () => {
        return toggleModel.testCoverage();
    });
});

Test results:
questionApp
    √ should have full coverage
    reaches state: "a"
      √ via  (1ms)
    reaches state: "b"
      √ via ANSWER ({"input":"b"})
    reaches state: "c"
      √ via ANSWER ({"input":"c"})
    reaches state: "e"
      √ via ANSWER ({"input":"c"}) → ANSWER ({"input":"b"}) (1ms)
    reaches state: "d"
      √ via ANSWER ({"input":"c"}) → ANSWER ({"input":"d"})

This can be better modeled by moving some of the state to context (such as the answers for the questions) and having a generic checkAnswer guard, instead of hardcoding the questions/answers as states.
One enhancement we can do is to have cases optionally be a function that takes in (state: State) => Event[], so you can do something like this (once you remodel):
ANSWER: {
  exec: (/* ... */) => {/* ... */},
  cases: state => {
    const wrongAnswer = getWrongAnswer(state.context.question);
    const rightAnswer = getRightAnswer(state.context.question);

    return [
      { input: wrongAnswer },
      { input: rightAnswer }
    ];
  }
}

@xstate/test@alpha now enables specifying cases as a function:
const model = createTestModel(machine, {
  eventCases: {
    ANSWER: state => {/* ... */ return [{ input: wrongAnswer }, { input: rightAnswer }]}
  }
});


.circleci/config.yml: enable Go 1.13

Need to wait for https://github.com/golangci/golangci-lint/issues/652 and https://github.com/golangci/golangci-lint/issues/659 to be resolved...


Introspection now ignores _Migration table at database level.

Takes care of https://github.com/prisma/prisma2/issues/78.

(Force push to take care of build-cli module version which was diverged from alpha)


New version: isaaclevin.presencelight version 5.6.114

[ ] Have you signed the Contributor License Agreement?
[ ] Have you checked that there aren't other open pull requests for the same manifest update/change?
[ ] This PR only modifies one (1) manifest
[ ] Have you validated your manifest locally with winget validate --manifest <path>?
[ ] Have you tested your manifest locally with winget install --manifest <path>?
[ ] Does your manifest conform to the 1.5 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: Open in CodeFlow

Hi @isaacrlevin,

This PR's version number 5.6.114 has 3 parameters (sets of numbers between dots - major, minor, etc), which is less than the current manifest's version <IP_ADDRESS>, which has 4 parameters.

Is this intentional?
(Automated response - build 494)

You can close. It was a mistake

You can close. It was a mistake


feat: support all benchmarks in benchmark site

Changing "Vortex benchmarks" to "Vortex TPC-H" can be done but we need to rename the gh-pages-bench data.js and fix the GitHub Action which continues to append under that name.


Validation issue with example_webhook_test.go

In the go example there is a very high probability that it will fail validation.  In the following line the signature is created using time.Now().  However, the header is set in line 42 using ts.Unix() and ts was created at the top of the function (also using time.Now()).  The difference may be in the milliseconds range, but it could be enough to cause a validation failure.  The correct way to do it would be to use the ts value when creating the signature.
https://github.com/standard-webhooks/standard-webhooks/blob/6b5ecd10fde25fd317dea72e187e212091d4c72d/libraries/go/example_webhook_test.go#L32

That's a very valid point. A millisecond drift could make this validation fail.


RSL1g3

Bit like my comments on the other, is the client library responsible for the rejection?

Bit like my comments on the other, is the client library responsible for the rejection?

Done ca84933.

@tcard PTAL

LGTM


Spike: Removing questions from application form

This ticket is to research the feasibility and effort required to complete #400
AC

[ ] Refined and estimated ticket #400

@MarsRomer this spike actually went really well.
I have a working test branch where you can create a new application with the new schema (no estimated employment page) and with a few tweaks I made the application works seamlessly including the stepper and review pages which won't display that field.
Likewise if you view an application that was created before the new schema the estimated project employment will show up on the application, review pages and stepper.
The only blocker is the acceptance criteria for already created draft applications to use the new schema will require us to update the draft applications in prod. I suggest creating a separate ticket for that.


yarl error

Failed to build yarl
ERROR: Could not build wheels for yarl, which is required to install pyproject.toml-based projects

yarl/_quoting_c.c:198:12: fatal error: 'longintrepr.h' file not found
#include "longintrepr.h"
^~~~~~~~~~~~~~~
1 error generated.
error: command '/data/data/com.termux/files/usr/bin/aarch64-linux-android-clang' failed with exit code 1
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for yarl
Successfully built PyRoxy
Failed to build yarl
ERROR: Could not build wheels for yarl, which is required to install pyproject.toml-based projects

The error message suggests that the file 'longintrepr.h' is missing, which is needed to build the 'yarl' package. This file is part of the Python development headers and needs to be installed on your system before you can successfully build the package.
To fix this error, you can try installing the Python development headers:
sudo apt-get install python-dev

After installing the Python development headers, try installing your Python app again. If the error persists, you can try upgrading pip and setuptools by running the following command:
pip install --upgrade pip setuptools

If the issue still persists, you can try installing the 'yarl' package separately using pip:
pip install yarl


Seperation of PPU interfaces

With commit 4372a45f171d5f8026c4a78d1d61826f19b9e1eb I started to rework the interface between emulator and ppu. At the moment the ppu is defined by a big structure containing all the internals states, references to the emulator and references to the actual video output.
When playing around with different ideas for ppu optimizations things started to get complicated so here is a proposal to solve this issue:

The only interface the emulator is getting to the ppu is via function pointers for read and write ppu registers and reset the ppu.
An additional void * reference is here to point to the internal ppu data structure. The emulator don't need to have any knowledge about it.
The ppu will be initialized outside of the emulator and is a module of it's own. No matter what the output looks like or which internal optimizations are used (fpga implementation, opengl buffering, ...) it's all up to the implementation.
This separation helps to clean up nes.c which is holding a lot of ppu centric functionality.
Different ppu implementations can share same functionality

The separation is work in progress. Missing is clean up of nes.c and adapting ppu_pixel_based.c (renamed to ppu_caching.c). The same separation makes sense for APU and controller input as well.
What do you think? @GorgonMeducer

Working on the interfaces I came to the following conclusion: nes_t should be the struct holding the callbacks for PPU, APU, controllers and cartridge (may be even the cpu). The initialisation would look like this:
nes_t nes;
ppu_framebuffer_init(&nes, frame_buffer_array);
apu_stream_init(&nes, &audio_stream);
controller_callback_init(&nes, ui_controller_callback);
cartridge_init(&nes, rom_data);

The idea is to have various implementations (if needed). So beside ppu_framebuffer_init is a ppu_caching_init or maybe a ppu_opengl_init.
The mappers would be relatively easy to implement, because the nes_t would access the cartridge via four functions: read_prg, write_prg, read_chr, write_chr. Each mapper would have its set of access functions doing the expected work.

A agree with you about those structural changes. Please moving forward, I will start a branch and try to optimize the new structure.
By the way, I don’t like the name: callbacks. It gives no useful information and it’s purely the legacy of procedure-oriented programming.
Since we are practicing interface-oriented programming and OOPC, please can we call those “callbacks” the “event handler”.
Although it looks the same, but the concept is different, they are not hooks, they are part of event-driven system.

Agree, I take your point

Reworking the cartridge interface I struggle with the special 16Bit access. I would like to avoid conditional compiling where possible. So when optimization makes sense and is working in all cases use that optimization. As the code and the interface is more complex with this 16 bit access path I'm not sure it's a good idea. What's your idea on that? We could benchmark the optimization and decide on that - which performance gain would justify a increase in complexity?

Another possibility would be that we just have a 16bit read access. When the processor is reading from an address he gets a 16bit value from that and the next address. If it's meant to be a 8 bit access, it just drops the higher 8 bits.

I like your second idea as it works like an prefetch mechanism or cache.

Ok, will go for a 16bit interface

I pushed some commits, but it's work in progress. I learned some stuff about DMA: DMA is not part of the PPU, it's part of the CPU. Also the source for DMA transfers is limited to the 2kB RAM -> this makes it a lot easier. I removed the conditional compilation flag JEG_USE_DMA_MEMORY_COPY_ACCELERATION and made it the default.

I am glad that the micro architecture is simplified.


sptify UI updated

Description
Have made my First Merge Request
Fixes #132
Spotify UI in Flutter #45 #132
Made the Spotify UI
splash screen
category screen
music screen
thank you for the repo
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Manual testing

Checklist:

[ ] My code follows the style guidelines of this project
[ ] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[ ] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

attach screenshots


How does lazy loading impact web page performance in development?

Lazy loading is a technique in web development where certain assets, such as images or scripts, are loaded only when needed, typically as the user scrolls down the page. This improves initial page load times, as only essential content is loaded upfront, enhancing overall website performance and user experience.

Lazy loading can have a **significant positive impact on web page performance in development, particularly in the following ways:
Improved initial page load: By delaying the loading of non-critical resources like images or iframes until they are needed, lazy loading reduces the amount of data that needs to be downloaded initially, leading to faster page load times. This is especially beneficial for users with slower internet connections, as they can begin interacting with the page content sooner.
Reduced resource usage: Lazy loading minimizes the overall amount of data downloaded as only resources within the user's view are loaded. This saves bandwidth for both the user and the server, which can be crucial for websites with high traffic or expensive hosting plans.
Enhances perceived performance: While the time it takes for an entire page to fully load might not decrease substantially, lazy loading makes the page feel faster to users. This is because the content they interact with initially loads quickly, creating a smoother and more responsive experience.
Benefits development workflow: During development, lazy loading can simplify the testing and debugging process. Isolating resources allows you to focus on specific sections of the page without waiting for everything to load, potentially saving you time and frustration.
However, it's important to consider some potential drawbacks of lazy loading in development:
Increased complexity: Implementing lazy loading correctly involves additional code and configuration, which can make the development process slightly more complex, especially for beginners.
Debugging challenges: Troubleshooting performance issues with lazy loading can be more intricate compared to traditional loading methods. You might need to use dedicated browser developer tools to pinpoint the source of any delays.
Potential SEO implications: While lazy loading generally benefits SEO by improving page speed, it's crucial to ensure that search engines can properly crawl and index all your content, even if it's lazy-loaded. Using proper techniques and metadata can help mitigate this concern.
Overuse vs. underuse: Finding the right balance when implementing lazy loading is key. Loading too few resources at the outset can be jarring for users, while loading everything eventually defeats the purpose of the technique. Careful testing and analysis are necessary to optimize the lazy loading strategy for your specific website.
Overall, lazy loading is a powerful tool for enhancing web page performance, both during development and after deployment. By carefully considering its advantages and challenges, you can harness its potential to create faster, more efficient, and engaging websites for your users.

Check this and Troubleshooting performance issues with lazy loading can be more intricate compared to traditional loading methods.  https://compsguru.blogspot.com/
https://compsguru.blogspot.com/


[WPF] "Point is empty" exception on MapControl.Info event

Windows 10 Pro
Visual Studio Community 2019 16.11.5
.NET Core 3.1
Mapsui.Wpf  3.0.1
Test project: MapsuiTest.zip
Steps to reproduce:

Set breakpoint in MapControlOnInfo method
Run in debug mode
Left mouse click on map
Continue running (F5)
Press LeftCtrl key while moving the mouse
Exception:

System.Exception
  HResult=0x80131500
  Message = Point is empty
  Source = Mapsui.Geometries
  StackTrace:
   at Mapsui.Geometries.Point.get_X()
   at Mapsui.UI.Wpf.MapControl.DrawBbox(Point newPos)
   at Mapsui.UI.Wpf.MapControl.MapControlMouseMove(Object sender, MouseEventArgs e)
   at System.Windows.RoutedEventArgs.InvokeHandler(Delegate handler, Object target)
   at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
   at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
   at System.Windows.UIElement.RaiseTrustedEvent(RoutedEventArgs args)
   at System.Windows.Input.InputManager.ProcessStagingArea()
   at System.Windows.Input.InputProviderSite.ReportInput(InputReport inputReport)
   at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr hwnd, InputMode mode, Int32 timestamp, RawMouseActions actions, Int32 x, Int32 y, Int32 wheel)
   at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr hwnd, WindowMessage msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
   at System.Windows.Threading.Dispatcher.Run()
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at System.Windows.Application.Run()
   at MapsuiTest.App.Main()

Thanks for your very clear bug report. This is a peculiar situation, not easy to find, thanks for figuring this out. What happens is that because of the breakpoint the MouseUp event is not triggered and some of the fields are not reset. Without debug mode this will not occur, so it is not a very serious bug fortunately.

I will fix by checking if the begin and endpoint are empty.

I pushed a fix to develop/3.0. Since this only affects developers I will hold out a patch release until other bug come up.

@pauldendulk Thanks for developing Mapsui! I'm happy to be helpful


fix(pacmak): illegal static overrides in java & c#

Stop emitting "overrides" in the respecting language idiomatic way for
static methods and properties (while ES6 supports those, this is not
true of Java and C#).
In Java, this is mostly getting rid of @Overrides on static
declarations. C# allows (but does not require) explicitly hiding the
parent declaration using the new keyword. This was introduced as it
provides additional safeguards against our generating incorrect code.
Fixes #2358

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

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-5lHf64IXfvmr
Commit ID: 57743b8925fc3fbb369234708b7f73f6e303080a
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-5lHf64IXfvmr
Commit ID: 920a4d09af6275a25ad0ca7c1cb99aa73b9a8507
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-5lHf64IXfvmr
Commit ID: db6376d0dd8bc5e3a63d8447b75c925c7d98ef68
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-5lHf64IXfvmr
Commit ID: d74f5f6da9a9217ecb2881d2120fc191d9737a33
Result: FAILED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-5lHf64IXfvmr
Commit ID: 641db865c3e13e0618139956ea78fe93d4b3c3bd
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository

AWS CodeBuild CI Report

CodeBuild project: AutoBuildProject6AEA49D1-5lHf64IXfvmr
Commit ID: 4aaac98b72b5280a66c9e76d5c73d1032201f480
Result: SUCCEEDED
Build Logs (available for 30 days)

Powered by github-codebuild-logs, available on the AWS Serverless Application Repository


[GLUTEN-1386][CH] Improve max(NULL)/min(NULL) execution efficiency

What changes were proposed in this pull request?
Improve max(NULL)/min(NULL) execution efficiency: The max(NULL)/min(NULL) aggreate function's return type is NullType, which make the transform support validation to be false, and lead this query can not be exeuecte on the native engine.
So we make the change, let the transform support validation be supported on NullType
(Fixes: #1386)
How was this patch tested?
manual tests
This is tested on clickhouse-backend.  The tested query  select id, max(NULL), min(NULL) from test_tbl3 where id > 0  group by id limit 3 , the tested table has about 63000000 rows, and stored as parquet, which archived 60% improvement.

Should we use the same naming convention e.g. [CH] on the lhs of the PR title? I see there are some [Clickhouse-backend]s and some [CH]s currently.

Should we use the same naming convention e.g. [CH] on the lhs of the PR title? I see there are some [Clickhouse-backend]s and some [CH]s currently.

done

please add the test cases.

The test case add done，and merge pr : https://github.com/oap-project/gluten/pull/1383 into this,  as it will cause core when query max(NULL) / min(NULL) . Please have a review at this pr. @zzcclp


Recording immediately ends after starting

Hey guys, I'm using the Cognitive Services SDK for Unity (2022.3.11f1). I used to be able to use speech-to-text, but this last week whenever I try to toggle it, the recording immediately ends. I haven't made any changes to the speech code, so I'm honestly not sure what's causing the issue. I've attached my relevant code below:
private void Awake()
{

#if PLATFORM_ANDROID
// Request to use the microphone, cf.
// https://docs.unity3d.com/Manual/android-RequestingPermissions.html
//_message = "Waiting for mic permission";
if (!Permission.HasUserAuthorizedPermission(Permission.Microphone))
{
Permission.RequestUserPermission(Permission.Microphone);
}
#elif PLATFORM_IOS
if (!Application.HasUserAuthorization(UserAuthorization.Microphone))
{
Application.RequestUserAuthorization(UserAuthorization.Microphone);
}
#endif
    _mainThreadContext = SynchronizationContext.Current;

    SpeechConfig _config = SpeechConfig.FromSubscription(_subscriptionKey, _serviceRegion);
    _config.EnableDictation();
    _config.SetProperty(PropertyId.Speech_SegmentationSilenceTimeoutMs, _silencePauses.ToString());
    _config.SetProperty(PropertyId.SpeechServiceConnection_InitialSilenceTimeoutMs, silenceInitial.ToString());
    _config.SetProperty(PropertyId.SpeechServiceConnection_EndSilenceTimeoutMs, _silenceFinal.ToString());

    _recognizer = new SpeechRecognizer(_config);
}

private void OnEnable()
{
    _dictationSO.OnStartRecording += StartRecording;
    _dictationSO.OnRecordingEnded += StopRecording;
}

private void OnDisable()
{
    _dictationSO.OnStartRecording -= StartRecording;
    _dictationSO.OnRecordingEnded -= StopRecording;
    StopRecording();
}

private void OnDestroy()
{
    _recognizer.Dispose();
}

private void StartRecording()
{
    _recognizer.Recognizing += RecognizingHandler;
    _recognizer.Recognized += RecognizingHandler;

  //  _recognizer.Canceled += CancelRecognizeHandler;
    _recognizer.SessionStopped += SessionStoppedRecognizingHandler;
    _recognizer.SpeechEndDetected += SpeechEndedRecognizeHandler;

    _recognizer.StartContinuousRecognitionAsync().ConfigureAwait(false);
}

private void StopRecording()
{
    _recognizer.Recognizing -= RecognizingHandler;
    _recognizer.Recognized -= RecognizingHandler;

   // _recognizer.Canceled -= CancelRecognizeHandler;
    _recognizer.SessionStopped -= SessionStoppedRecognizingHandler;
    _recognizer.SpeechEndDetected -= SpeechEndedRecognizeHandler;

    _recognizer.StopContinuousRecognitionAsync().ConfigureAwait(false);
}

private void CancelRecognizeHandler(object s, SpeechRecognitionCanceledEventArgs e)
{
    _mainThreadContext.Post(state =>
    {
        _dictationSO.RecordingEnded();
    }, null);
}

private void RecognizingHandler(object sender, SpeechRecognitionEventArgs e)
{
    _mainThreadContext.Post(state =>
    {
        _dictationSO.Recording(e.Result);
    }, null);
}

private void SessionStoppedRecognizingHandler(object sender, SessionEventArgs e)
{
    _dictationSO.RecordingEnded();
}

private void SpeechEndedRecognizeHandler(object sender, RecognitionEventArgs e)
{
    _dictationSO.RecordingEnded();
}

using Microsoft.CognitiveServices.Speech;

using System;
using UnityEngine;
[CreateAssetMenu(menuName = "ScriptableObject/DictationSO")]
public class DictationSO : ScriptableObject
{
public Action OnStartRecording { get; set; }
public Action<SpeechRecognitionResult> OnRecording { get; set; }

public Action OnRecordingEnded { get; set; }

public void StartRecording()
{
    OnStartRecording?.Invoke();
}

public void Recording(SpeechRecognitionResult speechRecognitionResult)
{
    OnRecording?.Invoke(speechRecognitionResult);
}

public void RecordingEnded()
{
    Debug.Log("Recording ended");
    OnRecordingEnded?.Invoke();
}

}
Any assistance would be greatly appreciate! I've been tearing my hair out trying to troubleshoot.

Hey, thanks for using the Speech SDK, sorry there's a problem...
The Cancelled event is going to have the best source of information if the call to StartContinuousRecogniton doesn't throw an exception. In particular the SpeechRecognitionCanceledEventArgs  class. There's a sample here that gets error information.

Hey, thanks for the response! I just wanted to update you guys, the issue seems to be fixed now. I haven't changed anything in terms of the code so I imagine it was a problem with the API itself? Regardless, it all seems good now so I will close the issue.


Add Grunt support

Since we are looking to use Travis CI in the future. I think it would be a good idea to add Grunt to our project since it's supported by Travis CI.
I've already began the process of recreating the Gulp tasks using Grunt. While working on this I'm also in the process of creating a way to automatically update the version numbers of files when it's time to do a release. I'm thinking that I may implement it so that a release can be created via the CLI like so:
grunt release             // Default patch release
grunt release:minor       // Minor release
What does everyone else think? Are you ok with using this syntax in order to perform a release? My end goal is for it to update the version numbers of the following files:

package.json
bower.json
bootstrap-wysiwyg.js

I've implemented the release feature. I still need to test my watch task and work out a bug with the htmllint task (found a bug in the npm module).

I've just tested the watch task and it works perfectly. Now that that's remaining is working out the bug with the htmllint task.

I went ahead and removed the htmllint task for now. If we want to lint our HTML files we'll need to use gulp until the bug gets fixed. I have an issue open on the module's repo. I'll update the grunt file when it has been fixed.


Added Alternate Version of Pong Wars

Java version of Pong Wars added.

Java, that's a long time ago for me! Thanks for adding.


Api Version

Hi!, it is possible to disable a old api version?
then set a redirect to a set up or active version,
sample,
the http://me.com/v1/test is disabled, then it will redirect to http://me.com/v2/test

Hey,
no, this is currently not possible...
I would do this "manually": For example, add a redirect() in the respective Controller method. It is most likely the case, that you want to "disable" endpoints "one by one" and migrate them to a v2 method..

what about we can set this, ignore other version except  the active version
Apiato\Core\Loaders\RoutesLoaderTrait;
    /**
     * @param      $endpointFileOrPrefixString
     * @param null $controllerNamespace
     *
     * @return  array
     */
    public function getRouteGroup($endpointFileOrPrefixString, $controllerNamespace = null)
    {

        // here we can ignore old version
        $verion = $this->getApiVersionPrefix($endpointFileOrPrefixString);
        // get the active version on config?
        // logic here
        // -----------------

        return [
            'namespace'  => $controllerNamespace,
            'middleware' => $this->getMiddlewares(),
            'domain'     => $this->getApiUrl(),
            // if $endpointFileOrPrefixString is a file then get the version name from the file name, else if string use that string as prefix
            'prefix'     =>  is_string($endpointFileOrPrefixString) ? $endpointFileOrPrefixString :  $this->getApiVersionPrefix($endpointFileOrPrefixString),

that would mean, that you will need to completely disable an existing version.. what about, if you want to have 2 versions in parallel and so on?
honestly, i think, i would leave this up to the developer..
The most easy approach would be to simply delete the v1 routes - this would make specific controller methods not accessible anymore..

oh i see :) thanks @johannesschobel

if i have time (haha) i can think about a more generic approach to disable existing versions.. however, i think, this would result in a configuration-hell.. Currently, "generating" new versions is quite easy as you only need to execute the RouteGenerator and you are fine.. Apiato does not "know" about this version in particular (i.e., it is not "configured" in some way).. That would be required, however, in order to "disable" specific versions..
If one would need to implement this, however, the RoutesLoaderTrait you already mentioned would be the appropriate place ;)

I can imagine, that "release management" in APIs is quite difficult (i.e., do you have many versions in parallel, do you try to migrate one endpoint by another one, do you try to re-implement everything and deploy at once, ...)
I don't think there is a solid "one approach fits all" technique.. but that is just my humble opinon..
If i need to release a v2 of my api, i would probably try to do it "step by step".


refactor error handling in /core/Security

refactor error handling
remove error message prefix
no changes for user guide

This is a condition triggered by user input, and we don't have a mechanism to treat similar exceptions in a pre-defined way, so this one in particular should stay as is.
That also means #4200 can't be merged ... I was afraid something like this would come up, which is why I put it on hold for now.


union query support implementation 2

Fixes #
This pull introduces/changes:

adds specs which for union query implementation
add support for doing union in subquery (alternate solution)

Codecov Report
Patch coverage: 92.45% and project coverage change: +0.38 :tada:

Comparison is base (6b8ef21) 93.46% compared to head (16952d5) 93.85%.

:exclamation: Current head 16952d5 differs from pull request most recent head db3e63d. Consider uploading reports for the commit db3e63d to get more accurate results

:mega: This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #1693      +/-   ##
==========================================
+ Coverage   93.46%   93.85%   +0.38%
==========================================
  Files         128      128
  Lines        5830     5708     -122
==========================================
- Hits         5449     5357      -92
+ Misses        381      351      -30

Impacted Files
Coverage Δ

lib/active_graph/core/query_clauses.rb
95.24% <90.24%> (-0.63%)
:arrow_down:

lib/active_graph/core/query.rb
98.93% <100.00%> (-0.04%)
:arrow_down:

lib/active_graph/node/query/query_proxy.rb
95.67% <100.00%> (+0.55%)
:arrow_up:

lib/active_graph/node/query/query_proxy_link.rb
100.00% <100.00%> (+1.28%)
:arrow_up:

... and 47 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

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


Clarify the mandatory and optional Azure connection parameter

Based on https://github.com/langchain4j/langchain4j/pull/635 we can see that the serviceVersion is not mandatory. If not set, then the latest version of the API is used. So only apikey and endpoint are really mandatory. Then, is serviceVersion and deploymentName are not set, we set default values.

Hi @agoncal, does it make sense to link to the file where the default value for the deployment name is set? I would want to display the default value but as its likely to be updated and I don’t want outdated docs, linking could be helpful. Wdyt?

@agoncal thank you!


Collect card token

In version 2.xx of the SDK it used to be possible to just collect the card token and finish the payment in your own server.
Is this still possible with the current SDK?
Thanks.

@daniloslv No. Sorry. This is a private user data.


diagnostics fails to upload to bucket

Saw this on a device - not sure if indicative of a wider issue:
 diagnostics  DEBUG:urllib3.connectionpool:https://www.googleapis.com:443 "POST /upload/storage/v1/b/helium-miner-data/o?uploadType=media&name=a46a9c7ad4374211c7a6b98201905d042ee9f8e3aae470bf6fa7eb545992c4be HTTP/1.1" 503 281
 diagnostics  ERROR:root:Error submitting diagnostics to GCS bucket: 503 - {
 diagnostics    "error": {
 diagnostics      "code": 503,
 diagnostics      "message": "We encountered an internal error. Please try again.",
 diagnostics      "errors": [
 diagnostics        {
 diagnostics          "message": "We encountered an internal error.  Not a big deal as we just retry later.


Obsoletion: phosphoserine/phosphothreonine binding

phosphoserine/phosphothreonine binding ; GO:0045310
Represents two functions. Replace with two terms:
phosphoserine binding ; GO:0050NEW
phosphothreonine binding ; GO:0050NEW
Reported by: girlwithglasses
Original Ticket: "geneontology/ontology-requests/1446":https://sourceforge.net/p/geneontology/ontology-requests/1446

thanks www.movied.org


A Apte DS4

Great work on the demo, A, and thanks for attaching screenshots as well! Fantastic work on the charting in A3, too.

Sprint Challenge Code Review
Week 4 - Statistical Tests and Experiments

Part 1 — Load and Validate the Data
Fantastic work on the data clean-up and prep - you have found the NaNs, "?", as well as identified that some of the data are incorrectly recognized as objects.

Part 2— Exploring Data, Testing Hypotheses
Great work on creating the table with the statistics and P values. All requirements met and exceeded!

Part 3 — Analysis and Interpretation
Good justification, and good treatment of null values as well.
Well done!


Automatic embedding images - relative paths

Hi
I have a query with this line of code: https://github.com/andris9/mailcomposer/blob/master/lib/mailcomposer.js#L1381
Why is embedded images restricted to absolute URLs or paths? I'm pretty sure it can handle relative paths fine. (I've just tried it, no problems!)
So really I'm just curious why this restriction is in place? It would be very useful to allow for relative paths!
Thanks!

Why not set it to relative to final destination? I think it's would be expected behaviour in most cases.

Maybe this piece of code will help you to build the right path to the images:
http://pastebin.com/JkTCqzkV


g:rooter_patterns setting not seen/ignored on initial launch

This is the workflow:

Open file from Finder or Terminal
vim-rooter sets the directory using the defaults
let g:rooter_patterns #=> [ '.git', '.git/', '_darcs/', '.hg/', '.bzr/', '.svn/' ]
Reloading vimrc will actually set the variable now
let g:rooter_patterns #=> [ 'package.json', '.git', '.git/', '_darcs/', '.hg/', '.bzr/', '.svn/' ]
Manually engage :Rooter (nothing happens, don't know why)

This is how I'm setting the patterns, it sets as expected.
  " Add custom roots to the front so they take priority over the defaults
  let g:rooter_patterns = ['package.json'] + g:rooter_patterns

Here's a link to my vim-rooter setup incase you think I'm setting it up wrong.
Expected outcome:
Vim's initial open should read the set variable of g:rooter_patterns and Rooter should find the project root using its priority based list.

It's odd that your rooter patterns aren't set until step 3.  As soon as you open vim, with or without a file, vim should read your vimrc and set g:rooter_patterns to ['package.json', ...].
You could verify/debug that by echoing g:rooter_patterns in your vimrc just after you set the variable, and also in vim-roooter just before it looks for the variable.
As for :Rooter doing nothing, the best way to debug that is more echo statements.  You could add one at the top of `s:ChangeDirectory(directory):
echom a:dir . ' :: ' . getcwd()

While in the middle of setting up the debug echos I noticed this error while opening vim.

Maybe rooter isn't even being initialized properly? 😕
After adding in all the echos you mentioned, I got this error when trying to open a file.

After pressing Enter, nothing was echo'd.
Removing echom a:dir . ' :: ' . getcwd() for the error also results in no echos.
Something really strange is going on.

This is what I vim-rooter had after changes, just so you can verify it.
echo g:rooter_patterns
if !exists('g:rooter_patterns')
  let g:rooter_patterns = ['.git', '.git/', '_darcs/', '.hg/', '.bzr/', '.svn/']
endif

function! s:ChangeDirectory(directory)
  echom a:dir . ' :: ' . getcwd()
  if a:directory !=# getcwd()
    let cmd = g:rooter_use_lcd == 1 ? 'lcd' : 'cd'
    execute ':'.cmd fnameescape(a:directory)
    if !g:rooter_silent_chdir
      echo 'cwd: '.a:directory
    endif
    execute 'silent doautocmd' s:nomodeline 'User RooterChDir'
  endif
endfunction

And from my vimrc
      " Add custom roots to the front so they take priority over the defaults
      let g:rooter_patterns = ['package.json'] + g:rooter_patterns
      echo g:rooter_patterns

I think the problem is that in your vimrc you define g:rooter_patterns with reference to itself but the vimrc is evaluated before plugins are loaded so g:rooter_patterns doesn't exist yet.
You'll either have to change your let g:rooter_patterns = ... line to explicitly list the patterns you want, rather than by reference to g:rooter_patterns, or you'll have to move that line to a file in your vim config's after/ directory where it'll be evaluated after plugins are loaded.
The problem with echom a:dir ... is that it should have been echom a:directory ....  Sorry about that.

Ahhh I understand.
g:rooter_patterns is only defined if doesn't already exist.
I'm trying to concatenate to that variable but because it technically doesn't exist yet, I can't reference it.
That explains why it only works after I've reloaded my vimrc and not initially.
Is the empty check even necessary?
I'm assuming plugins are loaded prior/during the vimrc, whatever people set in their vimrc with overwrite the initial variable. Probably a dangerous assumption to make.
Not sure what the general convention for that is.

Plugins are loaded after the vimrc (see steps 3 and 4 of :help startup).
Your best bet is to make your rooter patterns explicit.  For example:
let g:rooter_patterns = ['package.json', '.git', '.git/', '_darcs/', '.hg/', '.bzr/', '.svn/']

Your best bet is to make your rooter patterns explicit. For example:
let g:rooter_patterns = ['package.json', '.git', '.git/', '_darcs/', '.hg/', '.bzr/', '.svn/']

That's what I ended up doing. I guess that's what I get for trying to be fancy haha
Thanks!


🚀 Feature:  Is there any papers or docs to describe how DocsGPT work in detail

🔖 Feature description
I am really intersting in some technical detail, but have trouble just reading the code to understand it
🎤 Why is this feature needed ?
It can help many other people to contribute to this repo
✌ How do you aim to achieve this?
search for some wikis
🔄 Additional Information
No response
👀 Have you spent some time to check if this feature request has been raised before?

[X] I checked and didn't find similar issue

Are you willing to submit PR?
None

I'd love to work on this with you if approved, also if you aren't willing to submit a PR, how will your changes or docs be accessed? @ydove0324

Looks like @ydove0324 didnt indicate that they want to work on this PR.
@CherutoSharleen You can pick up this issue and write a short explanation in the docs/pages if you want
I think it could be quite useful!
Please tell me if you want to work on it so i can assign you

Looks like @ydove0324 didnt indicate that they want to work on this PR.
@CherutoSharleen You can pick up this issue and write a short explanation in the docs/pages if you want
I think it could be quite useful!
Please tell me if you want to work on it so i can assign you

Hi @dartpain. It’s been a while since Cheruto has expressed interest, so can I be assigned to this issue? I’ll respond quickly as possible.

Assigned to @CBID2 , thank you!

Assigned to @CBID2 , thank you!

Hi @dartpain. I unassigned myself to this issue. I'm not too familiar with the app, so I would be able to write the guide effectively.


ZerO for convolution layers

Dear authors,
Nice work! Congratulations.
So far, the repository only contains ZerO for linear layers. Could you please update the ZerO for convolutional layers as well (algorithm 2)? I know they have much similarity, but we just want to make sure we don't misunderstand anything about the pseudocode.
Thanks

Below is my personal implementation in pytorch!
Any feedbacks will be helpful for me, if possible 🤗 @jiaweizzhao
def init_ZerO_linear(matrix_tensor):

    with torch.no_grad():
        m = matrix_tensor.size(0)
        n = matrix_tensor.size(1)

        if m <= n:
            init_matrix = torch.nn.init.eye_(torch.empty(m, n))
        elif m > n:
            clog_m = math.ceil(math.log2(m))
            p = 2**(clog_m)
            init_matrix = torch.nn.init.eye_(torch.empty(m, p)) @ (torch.tensor(hadamard(p)).float()/(2**(clog_m/2))) @ torch.nn.init.eye_(torch.empty(p, n))

        return nn.Parameter(init_matrix)

def init_ZerO_convolution(convolution_tensor):
    with torch.no_grad():
        m = convolution_tensor.size(0)
        n = convolution_tensor.size(1)
        k = convolution_tensor.size(2)
        l = convolution_tensor.size(3)

        index = int(math.floor(k/2))
        if m <= n:
            convolution_tensor[:, :, index, index] = torch.nn.init.eye_(torch.empty(m, n))

        elif m > n:
            clog_m = math.ceil(math.log2(m))
            p = 2**(clog_m)
            convolution_tensor[:, :, index, index] = torch.nn.init.eye_(torch.empty(m, p)) @ (torch.tensor(hadamard(p)).float()/(2**(clog_m/2))) @ torch.nn.init.eye_(torch.empty(p, n))

        return nn.Parameter(convolution_tensor)

def init_ZerO(module):
    # linear and conv1d weight initialization
    if isinstance(module, nn.Linear) or isinstance(module, nn.Conv1d):
        module.weight = init_ZerO_linear(module.weight)
        if module.bias is not None:
            nn.init.constant_(module.bias, 0)

    # conv initialization
    elif isinstance(module, nn.Conv2d):
        module.weight = init_ZerO_convolution(module.weight)
        if module.bias is not None:
            nn.init.constant_(module.bias, 0)

    # batchnorm initialization: "For ResNet with batch normalization, we follow the standard practice to initialize the scale and bias in batch normalization as one and zero"
    elif isinstance(module, nn.BatchNorm1d) or isinstance(module, nn.BatchNorm2d) or isinstance(module, nn.BatchNorm3d):
        nn.init.constant_(module.weight, 1)
        nn.init.constant_(module.bias, 0)


Android App crash when use SvgCssUri to show one svg file

Description
I use SvgCssUri to show one svg file(as attached file 'OriginalOK.svg') from my server. I am sure the svg file in my server is ok. But when I use SvgCssUri  to show it in my Android App, the Android App crash sometimes. The phone's screenshot is as attached file 'Screenshot.jpg'.  After debug, I found that the fetch data is not same as the server's file, I saved the fetch data (as attached file 'ErrorfileAfterFetchData.svg'). And then show it by SvgCss, the Android app also crash.

Steps to reproduce
1, definite const xmlTest, let it's value equal to the file 'ErrorfileAfterFetchData.svg'
2, use  to show it.

const xmlTest =   <svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 91.737 39.36"><defs><style>.cls-1{fill:#999;opacity:0.65;}.cls-1,.cls-10,.cls-2{fill-rule:evenodd;}.cls-2,.cls-4{fill:#fff;}.cls-11,.cls-3,.cls-5,.cls-6,.cls-7,.cls-8{fill:none;stroke:#fff;}.cls-11,.cls-3{stroke-linejoin:bevel;}.cls-3{stroke-width:0.392px;}.cls-5{stroke-miterlimit:22.926;stroke-width:0.245px;}.cls-6,.cls-8{stroke-miterlimit:2.613;}.cls-6{stroke-width:0.286px;}.cls-7{stroke-linecap:round;stroke-linejoin:round;stroke-width:0.311px;}.cls-8{stroke-width:0.225px;}.cls-10,.cls-9{fill:#f9f9f9;}.cls-11{stroke-width:0.392px;}</style></defs><path class="cls-1" d="M4.171,2.521H28.412v-1l.375-.25h2.589v-.1l.088-.088h.248l0-.279.11-.109h5.029L36.967.8l0,.279h.249l.088.088v.1h.322v-.1l.088-.088h.248l0-.279.11-.109H43.11L43.221.8l0,.279h.249l.087.088v.1h.323v-.1l.088-.088h.249L44.226.8l.11-.108h5.028l.<IP_ADDRESS>h.249l.088.088v.1h.322v-.1l.088-.088h.248L50.479.8,50.59.694h5.028L55.729.8l.005.279h.248l.088.088v.1h.322v-.1l.088-.088h.248l0-.279.111-.109h5.028L61.983.8l0,.279h.249l.088.088v.1h2.589v.25h.375v1H89.529A3.2,3.2,0,0,1,92.718,5.71V35.031a3.2,3.2,0,0,1-3.189,3.19H88.153a2.658,2.658,0,0,1-5.054,0H10.6a2.658,2.658,0,0,1-5.053,0H4.171a3.2,3.2,0,0,1-3.19-3.19V5.71a3.2,3.2,0,0,1,3.19-3.189" transform="translate(-0.981 -0.694)"/><path class="cls-2" d="M4.674,5.219H89.026a.666.666,0,0,1,.664.664V34.858a.666.666,0,0,1-.664.664H4.674a.666.666,0,0,1-.664-.664V5.883a.666.666,0,0,1,.664-.664m0-1.659H89.026a2.33,2.33,0,0,1,2.323,2.323V34.858a2.329,2.329,0,0,1-2.323,2.323h-2.06V37.2a1.8,1.8,0,1,1-3.595,0v-.014H10.329V37.2a1.8,1.8,0,1,1-3.6,0v-.014H4.674a2.329,2.329,0,0,1-2.323-2.323V5.883A2.33,2.33,0,0,1,4.674,3.56Z" transform="translate(-0.981 -0.694)"/><path class="cls-3" d="M64.775,5.939h23.98M64.577,34.567V6.137m24.375,0v28.43m-24.375,0a.2.2,0,0,0,.<IP_ADDRESS>,0,0,0,.141.058m23.98,0a.2.2,0,0,0,.139-.058.2.2,0,0,0,.058-.14m0-28.43A.2.2,0,0,0,88.894,6a.2.2,0,0,0-.139-.058m-23.98,0A.2.2,0,0,0,64.634,6a.2.2,0,0,0-.057.14M88.755,34.765H64.775" transform="translate(-0.981 -0.694)"/><rect class="cls-4" x="28.477" y="3.608" width="0.742" height="32.905"/><rect class="cls-4" x="62.519" y="3.608" width="0.741" height="32.905"/><rect class="cls-5" x="37.869" y="7.83" width="16.02" height="12.015"/><path class="cls-2" d="M49.423,17.9a.2.2,0,0,0,.<IP_ADDRESS>,0,0,0,.2,0,.213.213,0,0,0,.041-.142.2.2,0,0,0-.041-.136.136.136,0,0,0-.2,0,.2.2,0,0,0-.041.139m-.084,0a.248.248,0,0,1,.075-.2.224.224,0,0,1,.152-.054.218.218,0,0,1,.<IP_ADDRESS>,0,0,1,.064.181.318.318,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.164-.065A.258.258,0,0,1,49.339,17.9Zm-.19.242v-.485h.083v.485Zm0-.576v-.093h.083v.093Zm-.479.334a.211.211,0,0,0,.<IP_ADDRESS>,0,0,0,.185,0,.2.2,0,0,0,.038-.134.227.227,0,0,0-.039-.146.12.12,0,0,0-.095-.046.113.113,0,0,0-.091.045A.213.213,0,0,0,48.67,17.9Zm.26.242V18.08a.149.149,0,0,1-.<IP_ADDRESS>,0,0,1-.106-.032.208.208,0,0,1-.076-.089.316.316,0,0,1-.026-.131.343.343,0,0,1,.024-.131.189.189,0,0,1,.072-.091.194.194,0,0,1,.108-.031.15.15,0,0,1,.<IP_ADDRESS>,0,0,1,.056.048v-.241h.082v.669Zm-.536-.243a.637.637,0,0,1-.134.031.329.329,0,0,0-.<IP_ADDRESS>,0,0,0-.<IP_ADDRESS>,0,0,0-.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.084-.021.117.117,0,0,0,.054-.056.2.2,0,0,0,.014-.082Zm.007.182a.273.273,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.123-.039.125.125,0,0,1-.043-.1.131.131,0,0,1,.016-.065.139.139,0,0,1,.043-.047.188.188,0,0,1,.059-.027.643.643,0,0,1,.073-.012.782.782,0,0,0,.147-.028v-.022a.09.09,0,0,0-.023-.07.137.137,0,0,0-.094-.028.152.152,0,0,0-.<IP_ADDRESS>,0,0,0-.041.072l-.08-.011a.192.192,0,0,1,.036-.083.15.15,0,0,1,.073-.049.314.314,0,0,1,.11-.017.31.31,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.025.056.417.417,0,0,1,.005.076v.109a1.1,1.1,0,0,0,0,.145.182.182,0,0,0,.02.058h-.087A.176.176,0,0,1,48.4,18.081Zm-.9-.313h.19a.3.3,0,0,0,.095-.012.1.1,0,0,0,.051-.041.1.1,0,0,0,.018-.059.1.1,0,0,0-.034-.079.162.162,0,0,0-.108-.03H47.5Zm-.089.374v-.669h.3a.394.394,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.142.062.257.257,0,0,1,.053.034.446.446,0,0,1,.073.089l.116.182h-.111L47.8,18c-.026-.041-.047-.071-.064-.093a.2.2,0,0,0-.045-.044.141.141,0,0,0-.04-.018.277.277,0,0,0-.049,0h-.1v.3Zm-.314-.074.012.073a.3.3,0,0,1-.<IP_ADDRESS>,0,0,1-.069-.015.074.074,0,0,1-.035-.037.286.286,0,0,1-.01-.1v-.279h-.061v-.064h.061v-.12l.082-.049v.169h.082v.064h-.082v.284a.135.135,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.028.006A.17.17,0,0,0,47.094,18.068Zm-.649-.215h.27a.158.158,0,0,0-.031-.091.125.125,0,0,0-.1-.048.129.129,0,0,0-.094.038A.149.149,0,0,0,46.445,17.853Zm.269.132L46.8,18a.2.2,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.169-.065.258.258,0,0,1-.062-.183.267.267,0,0,1,.063-.19.212.212,0,0,1,.163-.067.2.2,0,0,1,.158.066.263.263,0,0,1,.062.186v.022h-.361a.182.182,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.077-.024A.156.156,0,0,0,46.714,17.985Zm-.863.157v-.485h.074v.069a.173.173,0,0,1,.153-.079.192.192,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.025.06.384.384,0,0,1,.005.08v.3h-.082v-.295a.238.238,0,0,0-.009-.075.082.082,0,0,0-.035-.039.105.105,0,0,0-.057-.015.132.132,0,0,0-.<IP_ADDRESS>,0,0,0-.038.127v.264Zm-.325,0v-.485H45.6v.074a.194.194,0,0,1,.052-.068.092.092,0,0,1,.053-.016.164.164,0,0,1,.084.026l-.029.076a.124.124,0,0,0-.06-.017.075.075,0,0,0-.<IP_ADDRESS>,0,0,0-.03.045.322.322,0,0,0-.014.1v.253Zm-.47-.289h.27a.166.166,0,0,0-.031-.091.125.125,0,0,0-.1-.048.133.133,0,0,0-.095.038A.153.153,0,0,0,45.056,17.853Zm.269.132L45.41,18a.2.2,0,0,1-.<IP_ADDRESS>,0,0,1-.307-.024.258.258,0,0,1-.062-.183.267.267,0,0,1,.063-.19.212.212,0,0,1,.163-.067.207.207,0,0,1,.158.066.263.263,0,0,1,.062.186v.022h-.361a.187.187,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.077-.024A.157.157,0,0,0,45.325,17.985Zm-.4<IP_ADDRESS>a.293.293,0,0,1-.<IP_ADDRESS>,0,0,1-.069-.015.072.072,0,0,1-.034-.037.278.278,0,0,1-.011-.1v-.279h-.06v-.064h.06v-.12l.083-.049v.169H44.9v.064h-.082v.284a.145.145,0,0,0,0,.045.036.036,0,0,0,.<IP_ADDRESS>,0,0,0,.028.006A.186.186,0,0,0,44.9,18.068Zm-.711.074v-.485h.074v.069a.173.173,0,0,1,.154-.079.191.191,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,0,.08v.3H44.5v-.295a.238.238,0,0,0-.009-.075.085.085,0,0,0-.034-.039.11.11,0,0,0-.057-.015.136.136,0,0,0-.<IP_ADDRESS>,0,0,0-.038.127v.264Zm-.248,0v-.669h.089v.669Z" transform="translate(-0.981 -0.694)"/><rect class="cls-4" x="38.703" y="9.863" width="14.33" height="0.111"/><rect class="cls-4" x="38.703" y="18.465" width="14.33" height="0.111"/><rect class="cls-6" x="43.231" y="10.975" width="5.25" height="5.414" rx="0.635"/><rect class="cls-7" x="43.993" y="12.585" width="3.873" height="2.67" rx="0.561"/><line class="cls-7" x1="44.464" y1="12.578" x2="47.531" y2="11.937"/><path class="cls-7" d="M48.216,14.615a.568.568,0,1,1-.568-.568A.569.569,0,0,1,48.216,14.615Z" transform="translate(-0.981 -0.694)"/><line class="cls-7" x1="44.668" y1="13.666" x2="45.396" y2="13.666"/><line class="cls-7" x1="44.668" y1="14.175" x2="45.396" y2="14.175"/><rect class="cls-8" x="49.598" y="11.943" width="3.387" height="3.493" rx="0.41"/><path class="cls-4" d="M52.412,13.5h0v-.073a.144.144,0,0,0-.144-.144h-.006a.144.144,0,0,0-.144.144V13.5h.291Z" transform="translate(-0.981 -0.694)"/><polygon class="cls-4" points="51.434 12.856 51.431 12.856 51.143 12.856 51.14 12.856 51.14 12.923 51.434 12.923 51.434 12.856"/><rect class="cls-4" x="50.923" y="13.576" width="0.727" height="0.063"/><rect class="cls-4" x="51.14" y="12.979" width="0.294" height="0.367"/><path class="cls-4" d="M52.631,14.184a.143.143,0,0,0-.144-.144h-.072v.174h.216Z" transform="translate(-0.981 -0.694)"/><path class="cls-4" d="M52.049,14.04a.144.144,0,0,0-.145.144v.03h.217V14.04Z" transform="translate(-0.981 -0.694)"/><rect class="cls-4" x="51.14" y="13.345" width="0.294" height="0.175"/><path class="cls-4" d="M52.631,14.4H51.9V15a.311.311,0,0,0,.224.282v.208h.28v-.208A.31.31,0,0,0,52.631,15v-.6Z" transform="translate(-0.981 -0.694)"/><rect class="cls-8" x="38.761" y="11.943" width="3.387" height="3.493" rx="0.41"/><path class="cls-9" d="M42.308,14.177v.189h.073a.34.34,0,0,0,.106-.011.078.078,0,0,0,.041-.032.091.091,0,0,0,.015-.052.092.092,0,0,0-.02-.06.1.1,0,0,0-.054-.03.668.668,0,0,0-.1,0Zm-.134.551v-.663h.215a.753.753,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.069.031.785.785,0,0,1-.139.01h-.087v.25Zm-.682,0v-.663h.131l.272.444v-.444h.124v.663h-.134l-.268-.436v.436Zm-.5-.551v.189h.073a.34.34,0,0,0,.106-.011.087.087,0,0,0,.041-.032.091.091,0,0,0,.015-.052.088.088,0,0,0-.021-.06.091.091,0,0,0-.054-.03.642.642,0,0,0-.095,0Zm-.134.551v-.663h.214a.74.74,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.069.031.785.785,0,0,1-.139.01H41v.25Zm-.682-.663h.135v.359a.86.86,0,0,0,0,.111.11.11,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.084-.023.092.092,0,0,0,.035-.057.745.745,0,0,0,.006-.113v-.367h.134v.349a.827.827,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.077.054.348.348,0,0,1-.127.02.362.362,0,0,1-.144-.022.21.21,0,0,1-.077-.057.194.194,0,0,1-.038-.074.861.861,0,0,1-.013-.168Z" transform="translate(-0.981 -0.694)"/><path class="cls-10" d="M42.09,13.553a1.445,1.445,0,0,0-.991.472,1.592,1.592,0,0,1,1.013-.375c.406.024.351.167.335.334.058-.127.222-.438-.357-.431" transform="translate(-0.981 -0.694)"/><path class="cls-10" d="M40.827,15.212a1.456,1.456,0,0,0,.991-.472,1.6,1.6,0,0,1-1.013.375c-.406-.025-.352-.167-.335-.335-.058.127-.222.438.357.432" transform="translate(-0.981 -0.694)"/><path class="cls-9" d="M42.308,14.177v.189h.073a.34.34,0,0,0,.106-.011.078.078,0,0,0,.041-.032.091.091,0,0,0,.015-.052.092.092,0,0,0-.02-.06.1.1,0,0,0-.054-.03.668.668,0,0,0-.1,0Zm-.134.551v-.663h.215a.753.753,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.069.031.785.785,0,0,1-.139.01h-.087v.25Zm-.682,0v-.663h.131l.272.444v-.444h.124v.663h-.134l-.268-.436v.436Zm-.5-.551v.189h.073a.34.34,0,0,0,.106-.011.087.087,0,0,0,.041-.032.091.091,0,0,0,.015-.052.088.088,0,0,0-.021-.06.091.091,0,0,0-.054-.03.642.642,0,0,0-.095,0Zm-.134.551v-.663h.214a.74.74,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.069.031.785.785,0,0,1-.139.01H41v.25Zm-.682-.663h.135v.359a.86.86,0,0,0,0,.111.11.11,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.084-.023.092.092,0,0,0,.035-.057.745.745,0,0,0,.006-.113v-.367h.134v.349a.827.827,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.077.054.348.348,0,0,1-.127.02.362.362,0,0,1-.144-.022.21.21,0,0,1-.077-.057.194.194,0,0,1-.038-.074.861.861,0,0,1-.013-.168Z" transform="translate(-0.981 -0.694)"/><path class="cls-10" d="M42.09,13.553a1.445,1.445,0,0,0-.991.472,1.592,1.592,0,0,1,1.013-.375c.406.024.351.167.335.334.058-.127.222-.438-.357-.431" transform="translate(-0.981 -0.694)"/><path class="cls-10" d="M40.827,15.212a1.456,1.456,0,0,0,.991-.472,1.6,1.6,0,0,1-1.013.375c-.406-.025-.352-.167-.335-.335-.058.127-.222.438.357.432" transform="translate(-0.981 -0.694)"/><path class="cls-4" d="M42.308,14.177v.189h.073a.34.34,0,0,0,.106-.011.078.078,0,0,0,.041-.032.091.091,0,0,0,.015-.052.092.092,0,0,0-.02-.06.1.1,0,0,0-.054-.03.668.668,0,0,0-.1,0Zm-.134.551v-.663h.215a.753.753,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.069.031.785.785,0,0,1-.139.01h-.087v.25Zm-.682,0v-.663h.131l.272.444v-.444h.124v.663h-.134l-.268-.436v.436Zm-.5-.551v.189h.073a.34.34,0,0,0,.106-.011.087.087,0,0,0,.041-.032.091.091,0,0,0,.015-.052.088.088,0,0,0-.021-.06.091.091,0,0,0-.054-.03.642.642,0,0,0-.095,0Zm-.134.551v-.663h.214a.74.74,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1,.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.069.031.785.785,0,0,1-.139.01H41v.25Zm-.682-.663h.135v.359a.86.86,0,0,0,0,.111.11.11,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.084-.023.092.092,0,0,0,.035-.057.745.745,0,0,0,.006-.113v-.367h.134v.349a.827.827,0,0,1-.<IP_ADDRESS>,0,0,1-.<IP_ADDRESS>,0,0,1-.077.054.348.348,0,0,1-.127.02.362.362,0,0,1-.144-.022.21.21,0,0,1-.077-.057.194.194,0,0,1-.038-.074.861.861,0,0,1-.013-.168Z" transform="translate(-0.981 -0.694)"/><path class="cls-2" d="M42.09,13.553a1.445,1.445,0,0,0-.991.472,1.592,1.592,0,0,1,1.013-.375c.406.024.351.167.335.334.058-.127.222-.438-.357-.431" transform="translate(-0.981 -0.694)"/><path class="cls-2" d="M40.827,15.212a1.456,1.456,0,0,0,.991-.472,1.6,1.6,0,0,1-1.013.375c-.406-.025-.352-.167-.335-.335-.058.127-.222.438.357.432" transform="translate(-0.981 -0.694)"/><path class="cls-4" d="M42.308,14.177v.189h.073a.34.34,0,0,0,.106-.011.078.078,0,0,0,.041-.032.091.091,0,0,0,.015-.052.092.092,0,0,0-.02-.06.1.1,0,0,0-.054-.03.668.668,0,0,0-.1,0Zm--3" d="M29.126,6.137v28.43m-.2.2H4.948m0-28.826h23.98M4.75,34.567a.2.2,0,0,0,.2.2m23.98,0a.2.2,0,0,0,.2-.2m0-28.43a.2.2,0,0,0-.2-.2m-23.98,0a.2.2,0,0,0-.2.2m0,28.43V6.137" transform="translate(-0.981 -0.694)"/><path class="cls-3" d="M32.179,25.1H61.524m-29.345,0a.445.445,0,0,0,0,.89m29.345,0a.445.445,0,0,0,0-.89m0,.89H32.179" transform="translate(-0.981 -0.694)"/><path class="cls-3" d="M51.376,32.225a2.13,2.13,0,0,0,.609,1.27m0,0a1.109,1.109,0,1,0,.838-1.89m-1.418.538a.1.1,0,0,0-.029.082m1.447-.62a1.9,1.9,0,0,0-1.418.538" transform="translate(-0.981 -0.694)"/><path class="cls-11" d="M50.119,31.058a3.3,3.3,0,1,0-3.3,3.3A3.3,3.3,0,0,0,50.119,31.058Z" transform="translate(-0.981 -0.694)"/><circle class="cls-11" cx="60.543" cy="27.15" r="0.556"/><polygon class="cls-2" points="28.477 3.582 28.848 3.582 62.889 3.582 63.26 3.582 63.26 1.851 62.889 1.851 62.889 1.604 28.848 1.604 28.848 1.851 28.477 1.851 28.477 3.582"/><path class="cls-3" d="M38.656,2.12h4.03m2.151,0h4.029m2.151,0h4.029m2.152,0h4.029m-6.54-.383H51.376m-2.869,0H45.2m-2.87,0h-3.31m-2.747.121a.123.123,0,0,0-.123-.121m-3.311,0a.123.123,0,0,0-.123.121m.123-.121h3.311m21.411,0h3.31m-21.851,0a.123.123,0,0,0-.124.121m3.558,0a.125.125,0,0,0-.124-.121m2.87,0a.123.123,0,0,0-.123.121m-.236.262a.089.089,0,0,0-.<IP_ADDRESS>,0,0,0-.025.438.357.432" transform="translate(-0.981 -0.694)"/><path class="cls-2" d="M41.45,10.232V9.669h.417v.095h-.3v.125h.282v.1h-.282v.153h.314v.095Zm-.634,0V9.669h.171l.1.384.1-.384h.171v.563h-.106V9.789l-.111.443h-.11l-.11-.443v.443Zm-.493-.282a.208.208,0,0,0,.<IP_ADDRESS>,0,0,0,.<IP_ADDRESS>,0,0,0,.113-.049.223.223,0,0,0,.043-.148.207.207,0,0,0-.043-.144.142.142,0,0,0-.113-.048.144.144,0,0,0-.113.048A.214.214,0,0,0,40.323,9.95Zm-.117,0a.343.343,0,0,1,.026-.144.238.238,0,0,1,.052-.077.21.21,0,0,1,.073-.051.3.3,0,0,1,.121-.022.261.261,0,0,1,.2.077.346.346,0,0,1,0,.429.3.3,0,0,1-.4,0A.288.288,0,0,1,40.206,9.953Zm-.522.279V9.669H39.8v.222h.221V9.669h.114v.563H40.02V9.986H39.8v.246Z" transform="translate(-0.981 -0.694)"/><path class="cls-3" d="M29.126,6.137v28.43m-.2.2H4.948m0-28.826h23.98M4.75,34.567a.2.2,0,0,0,.2.2m23.98,0a.2.2,0,0,0,.2-.2m0-28.43a.2.2,0,0,0-.2-.2m-23.98,0a.2.2,0,0,0-.2.2m0,28.43V6.137" transform="translate(-0.981 -0.694)"/><path class="cls-3" d="M32.179,25.1H61.524m-29.345,0a.445.445,0,0,0,0,.89m29.345,0a.445.445,0,0,0,0-.89m0,.89H32.179" transform="translate(-0.981 -0.694)"/><path class="cls-3" d="M51.376,32.225a2.13,2.13,0,0,0,.609,1.27m0,0a1.109,1.109,0,1,0,.838-1.89m-1.418.538a.1.1,0,0,0-.029.082m1.447-.62a1.9,1.9,0,0,0-1.418.538" transform="translate(-0.981 -0.694)"/><path class="cls-11" d="M50.119,31.058a3.3,3.3,0,1,0-3.3,3.3A3.3,3.3,0,0,0,50.119,31.058Z" transform="translate(-0.981 -0.694)"/><circle class="cls-11" cx="60.543" cy="27.15" r="0.556"/><polygon class="cls-2" points="28.477 3.582 28.848 3.582 62.889 3.582 63.26 3.582 63.26 1.851 62.889 1.851 62.889 1.604 28.848 1.604 28.848 1.851 28.477 1.851 28.477 3.582"/><path class="cls-3" d="M38.656,2.12h4.03m2.151,0h4.029m2.151,0h4.029m2.152,0h4.029m-6.54-.383H51.376m-2.869,0H45.2m-2.87,0h-3.31m-2.747.121a.123.123,0,0,0-.123-.121m-3.311,0a.123.123,0,0,0-.123.121m.123-.121h3.311m21.411,0h3.31m-21.851,0a.123.123,0,0,0-.124.121m3.558,0a.125.125,0,0,0-.124-.121m2.87,0a.123.123,0,0,0-.123.121m-.236.262a.089.089,0,0,0-.<IP_ADDRESS>,0,0,0-.025.061m-1.978,0a.085.085,0,0,0-.086-.086m-4.03,0a.086.086,0,0,0-.<IP_ADDRESS>,0,0,0-.026.061m-1.977,0a.087.087,0,0,0-.026-.061.086.086,0,0,0-.061-.025m-4.029,0a.086.086,0,0,0-.<IP_ADDRESS>,0,0,0-.026.061M48.63,1.858a.123.123,0,0,0-.123-.121m2.869,0a.123.123,0,0,0-.123.121m3.558,0a.125.125,0,0,0-.124-.121m2.87,0a.124.124,0,0,0-.124.121m3.558,0a.124.124,0,0,0-.124-.121m.447.469a.083.083,0,0,0-.026-.061.086.086,0,0,0-.061-.025m-4.03,0a.085.085,0,0,0-.086.086m-1.978,0a.086.086,0,0,0-.025-.061.089.089,0,0,0-.062-.025m-4.029,0a.085.085,0,0,0-.086.086m-1.978,0a.083.083,0,0,0-.026-.061.086.086,0,0,0-.061-.025m12.448.185v-.1M61,2.12l0-.262m-3.558,0,0,.262m-.318.185v-.1m-1.978.1v-.1m-.318-.086,0-.262m-3.558,0-.005.262m-.317.185v-.1m-1.978.1v-.1m-.318-.086,0-.262m-3.557,0-.005.262m-.318.185v-.1m-1.978.1v-.1m-.322-.348,0,.262m-3.567,0,.005-.262m-.323.447v-.1m-1.977.1v-.1m-.318-.086-.005-.262m-3.557,0-.005.262m-.318.185v-.1m.087-.086h4.029" transform="translate(-0.981 -0.694)"/></svg>;
Snack or a link to a repository
None
SVG version
15.10.1
React Native version
0.74.3
Platforms
Android
JavaScript runtime
None
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
No response
Acknowledgements
Yes

I already fixed it, so close it. Thanks.


Copy tags from publishing-api

This PR makes panopticon listen to changes from publishing-api, to keep the tags in sync while we migrate to the new tagging infrastructure (Trello: https://trello.com/c/z8b6VmCU).

This can now be merged. Since https://github.com/alphagov/panopticon/pull/314, there's a Settings.migrated_apps, which is currently empty in production. We use that config to determine the apps for which this functionality is enabled, so merging this is a no-op until we start migrating apps for realsies (follow along here: https://trello.com/c/A4P3V9gK/414-epic-migrating-apps-to-new-tagging-infrastructure).

:+1:

@rboulton can you review this to check if it's the correct behaviour?

I believe this works as intended.  I've made some code style suggestions, but am happy with the logic expressed here.


dark mode

wasn't able to test using your css files since it gave MIME errors on my side so I used css in the html files and just switched text and background colors.

@Nightwing000 can you send me a screenshot after you login where have you added the dark/light toggler
and the appointment page is not linked yet i think i dont see the change in app.py

I haven't changed anything in the python files. I took it as a css issue and implemented a button(same everything in both html files)

@Nightwing000 you need to run that ask a flask file and the change was supposed to be in that and linking the appointments page was also a part of the question what you have done does not address most of these things

For what you have done I cannot give you the full bounty at all even other maintainers have said the same.

!bounty 10

yeah that's fair thanks a lot


create ability to read customer, add fake data, improve coverage

Not sure this is my first time doing this, but try my best

For instance, after you have passed all the test cases and you think that this issue is completed. You just need to rebase to one commit named "create the ability to read customer"


Default export errors

Since the project is exported as CJS we need to use the default export. In Vite SSR mode, this leads to the following error.
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

+1 same problem on react nextjs


Advanced routing options to work around Swagger nuances

There have been a few scenarios that have come up lately regarding working around some nuances related to Swagger.  There are two scenarios where we want to do some advanced routing:

Suppose you have the following route: /pets/{id}.  What should happen if there is a request for /pets or /pets/?  Technically, it is a separate path and would require a separate path definition but most, if not all, routing libraries have the concept of optional path parameters and allow you to define one route to serve both paths.  Since Swagger doesn't support this, it would be nice to mark a path with a path parameter specially so that requests to the path without the path parameter get treated as if they had requested the path with the path parameter in the swagger-metadata/swagger-router middlewares.  This of course would lead to a failed request validation since the required path parameter was omitted.
Suppose you have N paths that all have a single base and you only want to document that base path.  An example would be a pass through proxy where you just want to pass the request to some behind the scenes backend.  Having to document all possible permutations would be very time consuming if possible at all.  It would be nice to flag a path specially so that requests to that path or anything below it get treated as a request for that path in the swagger-metadata/swagger-router middlewares.

:+1: for more smarts about aligning ivory tower swagger operations to the messy, dirty, ugly reality of actual routers :)

Here's to reality! :)

As of right now, my plan is to make this an opt-in situation where you attach a vendor extension to your path definition to enable it.  I'm sure @MrLeebo would rather it just work but I want to make swagger-tools work like Swagger by default and allow you to opt-in to the advanced routing.  Here is my suggested annotations for their respective features above, feedback welcome:

x-swagger-router-handle-child-paths
x-swagger-router-handle-parent-path

:+1:

I would go with something like x-swagger-router-allow-optional-path-parameters because calling it 'handle-child-paths' doesn't read well to me except maybe if the param is on the trailing end of the path. Consider /households/{householdid}/pets/{petid} if the (admittedly silly) request comes in /households//pets/1 you're not really matching childwise you're matching sideways if I'm at all making sense?

I like that.  @theganyo, what do you think?

No, this doesn't make sense to me. The handle child paths has nothing to do with parameters.

He's talking about the first use case, not your use case.

Ah, ok, instead off x-swagger-router-handle-parent-path. Yes, that makes sense since we can't mark the parameters themselves as optional...

I'm breaking this up into multiple issues.  I'll attach @theganyo and @MrLeebo to the appropriate issues.


Reusing client yields inconsistent quotes (wrong data)

When querying the same stock twice in a row using the same client the resulting time series returns different data:
require 'alphavantagerb'
client = Alphavantage::Client.new key: "YOURAPIKEY"
stock1 = client.stock symbol: "LYPG.FRK"
puts stock1.timeseries.close.first
stock2 = client.stock symbol: "LYPG.FRK"
puts stock2.timeseries.close.first

Returns
2019-02-08
231.2000
2019-02-08
231.1000

Obviously both values should be the same. Using the Timeseries.new method to retrieve both seems to be fine.

Hi @nneubauer,
unlucky I cannot do anything about this.
This is not a bug of my library (that is mainly only a wrapper for the HTTP API), but a problem connected directly with AlphaVantage API.
I tried a couple of time your query  with POSTMAN and I obtained a similar output.
Here the query that you can use to check by yourself:
https://www.alphavantage.co/query?function=TIME_SERIES_DAILY&symbol=LYPG.FRK&outputsize=compact&apikey=YOURAPIKEY
I invite you to contact them.
I will cose this issue.


browserpass: 3.0.10 -> 3.1.0

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/browserpass/browserpass-native/releases.
meta.description for browserpass is: Browserpass native client app
meta.homepage for browserpass is: https://github.com/browserpass/browserpass-native
Updates performed

Golang update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact

Checks done (click to expand)

built on NixOS
The tests defined in passthru.tests, if any, passed
found 3.1.0 with grep in /nix/store/6ac2jxrmp1bsf2g7bl23flhxj0x4n15j-browserpass-3.1.0
found 3.1.0 in filename of file in /nix/store/6ac2jxrmp1bsf2g7bl23flhxj0x4n15j-browserpass-3.1.0

Rebuild report (if merged into master) (click to expand)

1 total rebuild path(s)

1 package rebuild(s)

First fifty rebuilds by attrpath
browserpass

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/6ac2jxrmp1bsf2g7bl23flhxj0x4n15j-browserpass-3.1.0 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A browserpass https://github.com/r-ryantm/nixpkgs/archive/3e79b30f642ccaf6b3f25c851ada5b34d94f42ed.tar.gz

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

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review run on x86_64-linux 1

1 package built:

browserpass

Maintainer pings
cc @rvolosatovs @infinisil for testing.

Result of nixpkgs-review pr 219941 run on aarch64-linux 1

1 package built:

browserpass


Unexpected token <

I've just made npm install and npm start and got Unexpected token <. I can't understand, why it's not working from scratch?

Same here.

You are probably missing the dot files.

Yes, you probably missed .babelrc and friends when copying the folder because they are hidden on the desktop. Please try running git clone and then running npm install in that directory.

@gaearon, so update npm module, it doesn't contain these files.

I'm not sure why I published it to npm at all, I should probably unpublish.
npm is only useful for dependencies. There is no point installing something from npm and then changing it (npm doesn't support that), but boilerplate is meant for changing locally.

@gaearon, so, you should either unpublish or update it, because it's non-working)

It can't possibly work. I will unpublish it.
I'm not sure what you tried to do because people are not supposed to change code inside node_modules which is what you would do if you tried to use this boilerplate. I didn't completely understand how npm works when I published this.

@gaearon, I still don't understand how they work. I download it from npm out of habit. Npm packages can't contain dot files?

They can, but the NPM copy is terribly outdated so I don't even remember what's there.
For boilerplates you intend to run and modify, just use git clone.


{RDBMS} az postgres flexible-server create: Sort the version number when displaying the error message

Related command

az postgres flexible-server create
Description

Sort the version number when displaying the error message
Testing Guide

History Notes

{RDBMS} az postgres flexible-server create: Sort the version number when displaying the error message

This checklist is used to make sure that common guidelines for a pull request are followed.

[x] The PR title and description has followed the guideline in Submitting Pull Requests.

[x] I adhere to the Command Guidelines.

[x] I adhere to the Error Handling Guidelines.

Thank you for your contribution! We will review the pull request and get back to you soon.


Compile issue on Fedora 26 with 4.12 kernel

DisplayLink was working fine on my Fedora 26 system on the 4.11.11 kernel, This morning I updated to 4.12.5 however DisplayLink now wont start.
I remove previous install and tried a recompile and received the following errors:
/var/lib/dkms/evdi/1.4.1/build/evdi_modeset.c:294:15: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
  .page_flip = evdi_crtc_page_flip,
               ^~~~~~~~~~~~~~~~~~~
/var/lib/dkms/evdi/1.4.1/build/evdi_modeset.c:294:15: note: (near initialization for ‘evdi_crtc_funcs.page_flip’)
/var/lib/dkms/evdi/1.4.1/build/evdi_drv.c: In function ‘evdi_platform_probe’:
/var/lib/dkms/evdi/1.4.1/build/evdi_drv.c:120:9: error: implicit declaration of function ‘drm_platform_init’; did you mean ‘early_platform_init’? [-Werror=implicit-function-declaration]
  return drm_platform_init(&driver, pdev);
         ^~~~~~~~~~~~~~~~~

I guess there was a breaking change in this kernel, let me know if you need any more info

Looks like there may be a fix fir this in the development branch:
https://github.com/DisplayLink/evdi/commit/6c689d69457820512f25204d83f0880824a932f3

I can confirm that the above patch fixes the build of the driver for fedora 26 with latest 4.12 kernel and the module is loaded successfully.
However, displaylink currently does not work with fedora 26. Starting with the previous 4.11 kernel produces similar errors. I guess some other package updates have broken the current displaylink .rpm for fedora 26.

@chlongv thanks for confirming, just in case you are interested displaylink works for me on Fedora 26 kernel 4.11, however I am not using wayland.
some system info:
[~]$ uname -r
4.11.11-300.fc26.x86_64
[~]$ echo $XDG_SESSION_TYPE
x11
[~]$ rpm -qa | grep displaylink
displaylink-1.4.1-4.x86_64
[~]$ systemctl status displaylink.service
● displaylink.service - DisplayLink Manager Service
   Loaded: loaded (/usr/lib/systemd/system/displaylink.service; static; vendor preset: disabled)
   Active: active (running) since Wed 2017-08-16 08:09:50 BST; 1h 36min ago
  Process: 1454 ExecStartPre=/sbin/modprobe evdi (code=exited, status=0/SUCCESS)
 Main PID: 1460 (DisplayLinkMana)
    Tasks: 26 (limit: 4915)
   CGroup: /system.slice/displaylink.service
           └─1460 /usr/libexec/displaylink/DisplayLinkManager

Aug 16 08:09:50 localhost.localdomain systemd[1]: Starting DisplayLink Manager Service...
Aug 16 08:09:50 localhost.localdomain systemd[1]: Started DisplayLink Manager Service.

@devoptimist Thanks for your reply, it helped a lot. I had forgotten to manually enable/start the displaylink service. I can now confirm that with the above patch for the kernel module (and the service enabled), displaylink works (with X11 and not wayland of course) with F26.

works for me on 4.12.5 as well, thanks for this

@devoptimist do you know how to get it to work on openSUSE Tumbleweed 42.3?


Schema inconsistencies 2

Sorry, I've stolen the title from the last closed bug, but the issue is on the same page of that one. I've found about this when I've completed a script that converts your yaml schemas to my nim needs.
The schema results-for-bot.yaml has id bot-results-for-bot.yaml <-- id is different from the file name
The schema game-ended-event-for-bot.yaml references for the results to results-for-bot.yaml
I think that the id of the  results-for-bot.yaml should be changed in  results-for-bot.yaml

Another one surfing the repo, bullet-hit-bot-event.yaml has a wrong id

Third one, bot-hit-bot-event.yaml has different id

@SirStone
Thank you for reporting this. 🙂👍
I have fixed the issue with this commit:
https://github.com/robocode-dev/tank-royale/commit/6acef2909f86daa306d223bb664799cf112fe752

Thanks, I will wait for the next release to check on this.

@SirStone
Just released 0.24.1 where the schemas are updated.

Thanks for the update
I've tested the new schemas and now I think are ok but for a missing event: hit-by-bullet-event that is generated by the API and not from the Server.
I was trying to "pull request"  but I ended up making a direct push to the main branch...I didn´t know I had this permission...
I've just uploaded a single new file, hope is not an issue. 7db15b4

@SirStone: The changes look good to me. You are right that I just generate the event on the server side. And I guess I do that for a few of the events. But this does not mean that we should leave out the schemas.  Thanks. 👍🙂
If I disable the write permission, you will not be able to update the Wiki.
But I will remove it now - at least temporarily to avoid accidental writes to main. 😉
Then I will just grant you write permission again late, if needed.
I recommend that you create a fork of Robocode, or create (feature) branches instead of working on main. This also makes it possible to compare changes against the main branch etc. 🙂

@SirStone: I put you in the role: Triage. Let's see how this goes. 😊

Closing this issue now.