Share page returns 500 without any log

Description
I'm having a strange issue with our on-premises installation since we changed our S3 secret/key.
The initial page (http://example.com/) loads and shows all workspaces. The same applies for the diagram page (http://example.com/share/7/diagrams), but the configuration/home page for the diagram (http://example.com/share/7) returns an status code 500 with the text:
Error
Sorry, something went wrong.

I tried to debug changing the log4j2 levels to ALL, but nothing is logged:
[INFO ] 2023-09-21 20:16:51.704 [main] ContextLoaderListener - ***********************************************************************************
[INFO ] 2023-09-21 20:16:51.711 [main] ContextLoaderListener -   _____ _                   _              _
[INFO ] 2023-09-21 20:16:51.711 [main] ContextLoaderListener -  / ____| |                 | |            (_)
[INFO ] 2023-09-21 20:16:51.711 [main] ContextLoaderListener - | (___ | |_ _ __ _   _  ___| |_ _   _ _ __ _ _____ __
[INFO ] 2023-09-21 20:16:51.711 [main] ContextLoaderListener -  \___ \| __| '__| | | |/ __| __| | | | '__| |_  / '__|
[INFO ] 2023-09-21 20:16:51.711 [main] ContextLoaderListener -  ____) | |_| |  | |_| | (__| |_| |_| | |  | |/ /| |
[INFO ] 2023-09-21 20:16:51.712 [main] ContextLoaderListener - |_____/ \__|_|   \__,_|\___|\__|\__,_|_|  |_/___|_|
[INFO ] 2023-09-21 20:16:51.712 [main] ContextLoaderListener -
[INFO ] 2023-09-21 20:16:51.712 [main] ContextLoaderListener - Structurizr on-premises installation
[INFO ] 2023-09-21 20:16:51.715 [main] ContextLoaderListener -  - build: 3080 (2023-06-21T09:31:25Z
[INFO ] 2023-09-21 20:16:51.719 [main] ContextLoaderListener -  - structurizr-java: v1.24.1
[INFO ] 2023-09-21 20:16:51.748 [main] ContextLoaderListener -  - structurizr-dsl: v1.30.2
[INFO ] 2023-09-21 20:16:51.749 [main] ContextLoaderListener -  - structurizr-import: v1.4.1
[INFO ] 2023-09-21 20:16:51.787 [main] ContextLoaderListener - Data directory: /usr/local/structurizr (r: true; w: true; x: true)
[INFO ] 2023-09-21 20:16:51.788 [main] ContextLoaderListener - URL: (removed for privacy)
[INFO ] 2023-09-21 20:16:51.800 [main] ContextLoaderListener - Memory: used=604MB; free=419MB; total=1024MB; max=1024MB
[INFO ] 2023-09-21 20:16:51.800 [main] ContextLoaderListener -
[INFO ] 2023-09-21 20:16:51.801 [main] ContextLoaderListener - Authentication: file
[INFO ] 2023-09-21 20:16:51.801 [main] ContextLoaderListener - Session: local
[INFO ] 2023-09-21 20:16:51.802 [main] ContextLoaderListener - Data storage: aws-s3
[INFO ] 2023-09-21 20:16:51.802 [main] ContextLoaderListener - Search: lucene
[INFO ] 2023-09-21 20:16:51.802 [main] ContextLoaderListener - dot: true
[INFO ] 2023-09-21 20:16:51.802 [main] ContextLoaderListener - DSL editor: false
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener - Safe mode: true
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener - ***********************************************************************************
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener - MIT License
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener -
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener - Copyright (c) 2023 Structurizr Limited
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener -
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener - Permission is hereby granted, free of charge, to any person obtaining a copy
[INFO ] 2023-09-21 20:16:51.803 [main] ContextLoaderListener - of this software and associated documentation files (the "Software"), to deal
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener - in the Software without restriction, including without limitation the rights
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener - copies of the Software, and to permit persons to whom the Software is
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener - furnished to do so, subject to the following conditions:
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener -
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener - The above copyright notice and this permission notice shall be included in all
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener - copies or substantial portions of the Software.
[INFO ] 2023-09-21 20:16:51.804 [main] ContextLoaderListener -
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
[INFO ] 2023-09-21 20:16:51.805 [main] ContextLoaderListener - SOFTWARE.
[INFO ] 2023-09-21 20:16:51.806 [main] ContextLoaderListener - ***********************************************************************************
21-Sep-2023 20:16:55.794 INFO [main] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [/usr/local/tomcat/webapps/ROOT.war] has finished in [11,286] ms
21-Sep-2023 20:16:55.797 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
21-Sep-2023 20:16:55.812 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [11470] milliseconds

My log42j file looks like this:
appender.console.type = Console
appender.console.name = LogToConsole
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

appender.file.type = File
appender.file.name = LogToFile
appender.file.fileName=${sys:structurizr.dataDirectory}/logs/structurizr.log
appender.file.layout.type=PatternLayout
appender.file.layout.pattern=[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n

logger.app.name = com.structurizr
logger.app.level = ALL
logger.app.additivity = false
logger.app.appenderRef.console.ref = LogToConsole
logger.app.appenderRef.file.ref = LogToFile

logger.springSecurity.name = org.springframework.security
logger.springSecurity.level = ALL
logger.springSecurity.additivity = false
logger.springSecurity.appenderRef.console.ref = LogToConsole
logger.springSecurity.appenderRef.file.ref = LogToFile

rootLogger.level = ALL
rootLogger.appenderRef.stdout.ref = LogToConsole
rootLogger.appenderRef.file.ref = LogToFile

I had this behavior in the past and could debug as something related to trying to access the s3 object history, but could not reproduce this time.
Steps to reproduce
1 - run the Structurizr on premises pointing to S3 bucket;
2 - access the home of the workspace;
3 - get the 500 error page.
Screenshot
No response
Code sample
No response
Configuration
build: 3080 (2023-06-21T09:31:25Z
Severity
Major
Priority
Low
Resolution
I'm willing to fix this myself and raise a PR
More information
No response

since we changed our S3 secret/key

Perhaps related to the permissions you've granted this new credential pair?

I'm willing to fix this myself and raise a PR

Thanks!

@simonbrowndotje I believe you are correct - do you have a list of the needed Actions that should be granted in this credential?

Update from 3080 to 3142 and now the log4j2 configuration file appers to works - now I can see the error more clearly:
[DEBUG] 2023-09-22 11:00:02.853 [http-nio-8080-exec-8] wire - http-outgoing-31 >> "GET /?versions&prefix=workspaces%2F3%2Fworkspace.json&max-keys=30&encoding-type=url HTTP/1.1[\r][\n]"
[DEBUG] 2023-09-22 11:00:02.853 [http-nio-8080-exec-8] wire - http-outgoing-31 >> "Host: (removed for privacy)[\r][\n]"
....
[DEBUG] 2023-09-22 11:00:02.863 [http-nio-8080-exec-8] wire - http-outgoing-31 << "HTTP/1.1 403 Forbidden[\r][\n]"
...
[DEBUG] 2023-09-22 11:00:02.863 [http-nio-8080-exec-8] wire - http-outgoing-31 << "<?xml version="1.0" encoding="UTF-8"?>[\n]"
[DEBUG] 2023-09-22 11:00:02.864 [http-nio-8080-exec-8] wire - http-outgoing-31 << "<Error>AccessDenied<Message>Access Denied</Message><RequestId>(removed for privacy)</RequestId><HostId>(removed for privacy)</HostId></Error>[\r][\n]"

There's two actions that I would like to do:

improve the error handling and logging (maybe a more detailed 5xx error page?) on this function: https://github.com/structurizr/onpremises/blob/main/structurizr-onpremises/src/main/java/com/structurizr/onpremises/component/workspace/AmazonWebServicesS3WorkspaceDao.java#L228;
find out the specific permissions/actions that Structurizr uses - some organizations doesn't allow using the AmazonS3FullAccess.

Sounds in the right direction?

Hi @iowaz
FYI: Here is my working S3 Policy config.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:ListAllMyBuckets",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::"
},
{
"Sid": "AllowStatement2B",
"Action": [
"s3:ListBucket",
"s3:ListBucketVersions"
],
"Effect": "Allow",
"Resource": [
"arn:aws:s3:::structurizr"
]
},
{
"Sid": "AllowStatement4B",
"Effect": "Allow",
"Action": [
"s3:"
],
"Resource": [
"arn:aws:s3:::structurizr/*"
]
}
]
}

Update from 3080 to 3142 and now the log4j2 configuration file appers to works - now I can see the error more clearly:
[DEBUG] 2023-09-22 11:00:02.853 [http-nio-8080-exec-8] wire - http-outgoing-31 >> "GET /?versions&prefix=workspaces%2F3%2Fworkspace.json&max-keys=30&encoding-type=url HTTP/1.1[\r][\n]"
[DEBUG] 2023-09-22 11:00:02.853 [http-nio-8080-exec-8] wire - http-outgoing-31 >> "Host: (removed for privacy)[\r][\n]"
....
[DEBUG] 2023-09-22 11:00:02.863 [http-nio-8080-exec-8] wire - http-outgoing-31 << "HTTP/1.1 403 Forbidden[\r][\n]"
...
[DEBUG] 2023-09-22 11:00:02.863 [http-nio-8080-exec-8] wire - http-outgoing-31 << "<?xml version="1.0" encoding="UTF-8"?>[\n]"
[DEBUG] 2023-09-22 11:00:02.864 [http-nio-8080-exec-8] wire - http-outgoing-31 << "<Error>AccessDenied<Message>Access Denied</Message><RequestId>(removed for privacy)</RequestId><HostId>(removed for privacy)</HostId></Error>[\r][\n]"

There's two actions that I would like to do:

improve the error handling and logging (maybe a more detailed 5xx error page?) on this function: https://github.com/structurizr/onpremises/blob/main/structurizr-onpremises/src/main/java/com/structurizr/onpremises/component/workspace/AmazonWebServicesS3WorkspaceDao.java#L228;
find out the specific permissions/actions that Structurizr uses - some organizations doesn't allow using the AmazonS3FullAccess.

Sounds in the right direction?


Run time error, ModuleNotFoundError: No module named 'utils.timefeatures'

I was running the script and run into the above  error, although I add the absolute path (the parent directory of the utils folder) to my python path using sys.path.insert(0, ). I also tried creating a init.py file in the project directory, still it does not work.
Usually it should work so I run out of ideas.  Any ideas?

just google  "ModuleNotFoundError: No module named" and you can find a lot
of solutions for such problem.
On Sun, Jul 10, 2022 at 10:20 PM DeepLearning @.***>
wrote:

I was running the script and run into the above error, although I add the
absolute path (the parent directory of the utils folder) to my python path
using sys.path.insert(0, ). I also tried creating a init.py file in the
project directory, still it does not work.
Usually it should work so I run out of ideas. Any ideas?
—
Reply to this email directly, view it on GitHub
https://github.com/MAZiqing/FEDformer/issues/11, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AB3JGO4TXF6XLKK3HHAVWG3VTLL4TANCNFSM53FC5FXQ
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


Use switch/case to make code easier to follow

The CheckSettings method is using a if/else if/ structure that makes hard to follow the code and cumbersome to add new providers.
Using switch case can alleviate a bit of the cognitive load.

Good job! Thanks for your contribution.


📃: Guess Country by Flag

:red_circle: Title : Country-Guesser
:red_circle: Aim : It is a game where user guesses the country name by the flag displayed.
:red_circle: Tech Stack Used : HTML, CSS, Javascript
Screenshots 📷

N/A

:white_check_mark: To be Mentioned while taking the issue :

Full name : Ragini Mishra
What is your participant role? (Mention the Open Source Program name. Eg. GSSOC, SSOC, JWOC, etc.) : GSSOC'24

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

Kindly assign me this issue!

no games allowed.

oh! Okay
On Sun, 9 Jun 2024 at 23:01, Avdhesh @.***> wrote:

no games allowed.
—
Reply to this email directly, view it on GitHub
https://github.com/Avdhesh-Varshney/WebMasterLog/issues/278#issuecomment-2156709596,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATZJQKYRXSLONDJRMQQ2HP3ZGSGN7AVCNFSM6AAAAABJA244GGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNJWG4YDSNJZGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


The proper way of handling file uploads

In my application I have several cases where I need to upload images for fortune recordTypes. For example, I have user type which has picture field:
const user = {
    name: 'user',

    collection: 'users',

    definition: {
        name: {
            type: String
        },
        email: {
            type: Email
        },
        picture: {
            type: String
        },
        role: {
            type: Enum('writer|admin')
        }
    },
//...
}

souce: https://github.com/dhhb/api-next/blob/master/src/v1/types/user.js#L7
I'm thinking about several options:

ideally I would like to send image as form-data and upload it to S3, and then save link to image in bucket in user picture field. However this doesn't look simple to achieve via fortune. I have POST /users endpoint and it accepts json as payload.

with this in mind I was thinking about just sending image in picture field as base64 in json payload and then save it to S3.

What do you think will be the best way?

There is a multipart/formdata serializer that is included by default, if you need to use forms for binary uploading. See an example here.
In the input transform, you could then upload to S3, and actually store null for the image buffer and also store the link to the image.

@0x8890 I included form-data serializer like:
import jsonApiSerializer from 'fortune-json-api';
import store from './store';

const formDataSerializer = fortune.net.http.FormDataSerializer;

const listener = fortune.net.http(store, {
    serializers: [
        [ jsonApiSerializer ],
        [ formDataSerializer ]
    ]
});

//...

But when I'm doing form-data request POST /users I'm getting such error in console:
POST /v1/user/ 400 36.793 ms - 1158
BadRequestError: Invalid JSON: Unexpected number
    at JsonApiSerializer.parseBuffer (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune-json-api/lib/helpers.js:398:11)
    at JsonApiSerializer.parseCreate (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune-json-api/lib/index.js:312:42)
    at JsonApiSerializer.parsePayload (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune-json-api/lib/index.js:304:48)
    at /Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/lib/net/http_server.js:229:40
    at tryCatcher (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/promise.js:503:31)
    at Promise._settlePromise (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/promise.js:560:18)
    at Promise._settlePromiseCtx (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/promise.js:597:10)
    at Async._drainQueue (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/async.js:131:12)
    at Async._drainQueues (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/async.js:136:10)
    at Immediate.Async.drainQueues [as _onImmediate] (/Users/dmitri/github/dhhb/api-fortune/node_modules/fortune/node_modules/bluebird/js/release/async.js:16:14)
    at processImmediate [as _immediateCallback] (timers.js:383:17)

Did you make the request from a web browser using a file input? If not, it's not so simple to generate a formdata request. For starters, at least the Content-Type header of the request must be multipart/form-data.

@0x8890 yes, it was my fault with Content-Type which was set by me, btw I'm using Postman desktop client. Thanks!
Now I see the Buffer data inside input function and will figure out how to properly store it.
The main thing that I saw in your example is that you differentiate imageLink and imageData and both fields should be present on type, right?

Yes, like I said above, the same field can't be either a buffer or a string.

@0x8890 thanks!


error when ceph-disk fails to prepare a device/partition (again)

I am starting to think we should just really fail when the return code is non-zero.
https://bugzilla.redhat.com/show_bug.cgi?id=1342117

@leseb I can't remember why we were always ignoring return codes when calling ceph-disk prepare
We either need to always fail, or add another check in stderr/stdout to fail. This time it would be when ceph-disk has a Traceback

@alfredodeza I think we were ignoring return codes just because we thought it was fine to have "most" of the OSDs configured. However we recently chose a different path.
So yes we should be failing if something does not get configured the way we asked.
If the desired state is not reached then we must fail :).

awesomeness. I will get a fix out shortly.

Thanks!


Ready for alpha use?

This looks positively fantastic, but is it ready for use outside the juxt consultancy?  I notice  the readme states that this isn't production ready until marked 1.0, is that likely to happen in 2015?
If the answer is in the affirmative, would it be possible to write some documentation as to how cylon can be put to use?  I'd like to use it for a REST service, written with liberator, if you're wondering about which section to write first :)

It is used outside of Juxt, although before the docs are in place, I would not claim it is 1.0 quality. Feel free to give it a try.

It is definitely my intention to provide more documentation now that the library has stabilized. @tangrammer is doing quite a bit of work on providing examples and documentation, and I'm planning to help by generating templates the demonstrate various cylon use-cases.

Great!
Consider adding some documentation for modular too.  You're likely to get more users--and more contributors--if people don't have to read the code to figure out what's on offer.  I think you know this, but lack for time, as the Bidi docs are quite good.


property: Optional[ComplexObject] = field(None,  nullable=True) doesn't create a nullable field in openapi spec

First check

[X] I added a very descriptive title to this issue.
[X] I used the GitHub search to find a similar issue and didn't find it.
[X] I searched the FastAPI documentation, with the integrated search.
[X] I already searched in Google "How to X in FastAPI" and didn't find any information.
[X] I already read and followed all the tutorial in the docs and didn't find an answer.
[X] I already checked if it is not related to FastAPI but to Pydantic.
[X] I already checked if it is not related to FastAPI but to Swagger UI.
[X] I already checked if it is not related to FastAPI but to ReDoc.
[X] After submitting this, I commit to one of:

Read open issues with questions until I find 2 issues where I can help someone and add a comment to help there.
I already hit the "watch" button in this repository to receive notifications and I commit to help at least 2 people that ask questions in the future.
Implement a Pull Request for a confirmed bug.

Example
Here's a self-contained, minimal, reproducible, example with my use case:

import enum

from typing import Optional

import pytest

from fastapi import FastAPI
from pydantic import BaseModel, Field

app = FastAPI()

class RHELVersions(enum.Enum):
    """Available RHEL versions within the database."""

    el7: str = "RHEL 7"
    el8: str = "RHEL 8"
    el9: str = "RHEL 9"

class DeviceEntry(BaseModel):
    """A model which represents the single hardware device."""

    simple_property: Optional[bool] = Field(None, nullable=True)
    complex_property: Optional[RHELVersions] = Field(None, nullable=True)

@app.get("/", response_model=DeviceEntry)
def read_root() -> DeviceEntry:
    return DeviceEntry(simple_property=None, complex_property=None)

def test_case():
    spec = app.openapi()
    assert spec["components"]["schemas"]["DeviceEntry"]["properties"][
        "simple_property"
    ]["nullable"]
    with pytest.raises(KeyError):
        assert spec["components"]["schemas"]["DeviceEntry"]["properties"][
            "complex_property"
        ]["nullable"]

"""
  +  'components': {'schemas': {'DeviceEntry': {'description': 'A model which '
  +                                                            'represents the '
  +                                                            'single hardware '
  +                                                            'device.',
  +                                             'properties': {'complex_property': {'$ref': '#/components/schemas/RHELVersions'},
  +                                                            'simple_property': {'nullable': True,
  +                                                                                'title': 'Simple '
  +                                                                                'Property',
  +                                                                                'type': 'boolean'}},
  +                                             'title': 'DeviceEntry',
  +                                             'type': 'object'},
"""

Description

Run pytest {path_tothe_module}.
Simple property has nullable in the apispec, but complex property doesn't.
Environment

OS: [e.g. Linux / Windows / macOS]: Linux
FastAPI Version [e.g. 0.3.0]: 0.62

To know the FastAPI version use:
python -c "import fastapi; print(fastapi.__version__)"

Python version: 3.9

To know the Python version use:
python --version

Additional context

@Mause thx for following this up. I am not sure I understand you. I adjusted the description.
Refs: https://github.com/OAI/OpenAPI-Specification/issues/1368

See the following example:

import enum

from typing import Optional

from pydantic import BaseModel

class RHELVersions(enum.Enum):
    """Available RHEL versions within the database."""

    el7: str = "RHEL 7"
    el8: str = "RHEL 8"
    el9: str = "RHEL 9"

class DeviceEntry(BaseModel):
    """A model which represents the single hardware device."""

    simple_property1: Optional[bool]
    complex_property1: Optional[RHELVersions]
    simple_property2: bool
    complex_property2: RHELVersions

assert DeviceEntry.schema() == {
    'definitions': {
        'RHELVersions': {
            'description': 'Available RHEL versions ' 'within the database.',
            'enum': ['RHEL 7', 'RHEL 8', 'RHEL 9'],
            'title': 'RHELVersions',
        }
    },
    'description': 'A model which represents the single hardware device.',
    'properties': {
        'complex_property1': {'$ref': '#/definitions/RHELVersions'},
        'complex_property2': {'$ref': '#/definitions/RHELVersions'},
        'simple_property1': {'title': 'Simple Property1', 'type': 'boolean'},
        'simple_property2': {'title': 'Simple Property2', 'type': 'boolean'},
    },
    'required': ['simple_property2', 'complex_property2'],
    'title': 'DeviceEntry',
    'type': 'object',
}

Note the required field - this how you mark whether a field is optional or not

@Mause thanks for your explanation. Do you know why is there a nullable attribute of the property?

There isn't - if you look at the pydantic documentation: https://pydantic-docs.helpmanual.io/usage/schema/#field-customisation
If you look at the end of the function documentation, you just added some fields via the **extra which was included verbatim

@Mause ok, than kyou for your help

Thanks for the help here @Mause ! :clap: :bow:
Thanks for reporting back and closing the issue @ZhukovGreen  :+1:


Back navigation glitch

[x] I have read the Getting Started section
[x] I have already searched for the same problem

Environment

Technology
Version

Flutter version
>=3.3.0 <4.0.0

Plugin version
6.0.0

Android version
13(S)

iOS version

macOS version

Xcode version

Google Chrome version

Device information: Google Pixel 6a 31 (S) Emulator
Description
Expected behavior:
navigator.pop should navigate back to previous screen smoothly
Current behavior:
https://github.com/pichillilorenzo/flutter_inappwebview/assets/15209914/d5c2fe85-bc09-4f08-8479-e29321df21af
Steps to reproduce
Just added webview package into demo project.
Images
Stacktrace/Logcat

is there any update on this issue?

Also happen to my project, when update to v6.0.0， it caused by useHybridComposition default set to true.
but when set useHybridComposition to false, it may cause crash on some samsung device

#2043 This is related to this issue. It also happens to my project


make CLI arguments more concise

I'm using inline-snapshots on all projects I'm working on (I just added it to pydantic-core, https://github.com/pydantic/pydantic-core/pull/1512).
As I use it more and more, there are 3 related things that I find a bit annoying:

The CLI arguments like --inline-snapshot=fix and --inline-snapshot=create are quite verbose to write out when I want to enable them, could we add --snap-fix etc?
--inline-snapshot=create isn't on by default and --inline-snapshot=fix doesn't imply --inline-snapshot=create - could you add a config setting or env var to have --inline-snapshot=create on by default? and/or could --inline-snapshot=fix imply --inline-snapshot=create?
When I enable --inline-snapshot=fix or --inline-snapshot=create I get loads of diffs from tests that are passing but where snapshot values are formatted differently to inline-snapshots default formatting. I've seen this confuse some of our team a lot, as they thought these tests were failing, I think the diff should be hidden for tests that are passing by default.

Sorry if these should be three separate issues, I thought there were related enough to put together. Happy to split if you'd prefer.

Thank you for this feedback. I always like to know how other people use inline-snapshot with different workflows like mine.

--inline-snapshot=fix and --inline-snapshot=create are quite verbose

I agree. I use usually --inline-snapshot=review which allows me to see the the changes before I apply them to my code base (but this would currently not be ideal in the logfire codebase ...).
In the future I want to move towards a workflow where inline-snapshot shows you the changes and allows you to apply them after you approved them. The categories fix,trim,create,update are useful information for the developer why something changed.

--inline-snapshot=create isn't on by default

There are two reasons.

every inline-snapshot option (except disable/short-report) disables the assert rewriting of pytest. I think this would not be a good idea by default. However I have a plan to change this in the future.

I also don't wanted to enable any source code rewriting by default. This might also affect every normal pytest run and could have unexpected consequences. But you can make it to your default in the config or with a env variable

I get loads of diffs from tests that are passing but where snapshot values are formatted differently to inline-snapshots default formatting. I've seen this confuse some of our team a lot, as they thought these tests were failing, I think the diff should be hidden for tests that are passing by default.

Logfire is really useful for me here because it shows me how people are using inline-snapshot. The problem is that the developer replaces sometimes parts of the snapshots with other expressions (usually for good reasons), but inline-snapshot wants to control everything inside snapshot(...) (except DirtyEquals).
I currently work on a solution where the developer can use Is(...) inside a snapshot to take back control. This leads to a kind of holes within the snapshot.
example from logfire where the redis port is changed by the developer:
    assert exporter.exported_spans_as_dict() == snapshot(
        [
            {
                'name': 'SET',
                'context': {'trace_id': 1, 'span_id': 1, 'is_remote': False},
                'parent': None,
                'start_time':<PHONE_NUMBER>,
                'end_time':<PHONE_NUMBER>,
                'attributes': {
                    'logfire.span_type': 'span',
                    'logfire.msg': 'SET ? ?',
                    'db.statement': 'SET ? ?',
                    'db.system': 'redis',
                    'db.redis.database_index': 0,
                    'net.peer.name': 'localhost',
                    'net.peer.port': Is(redis_port),
                    'net.transport': 'ip_tcp',
                    'db.redis.args_length': 3,
                },
            }
        ]
    )

here are some more changes if you are interrested (all still wip).

Parts 1 and 2 sound a lot to me like https://github.com/15r10nk/inline-snapshot/issues/57, https://github.com/15r10nk/inline-snapshot/issues/62, and https://github.com/15r10nk/inline-snapshot/issues/109. I want to just run tests my usual way through pycharm and have it always fix snapshots locally without extra interaction, but i want it to tell me (by making the tests fail after the fact) which tests needed fixing. It sounds like others feel similarly. I don't want something where I have to approve changes in an interface managed by inline-snapshot.
For 3, we shouldn't have to use Is() on every non-literal expression. Why is that report shown by default? I've never wanted to use update or be told what would have happened if I'd used it.

What I did in insert_assert in devtools was fail any test where we did a rewrite.
See here
pytest.fail(f'devtools-insert-assert: {count} assert{plural(count)} will be inserted', pytrace=False)

But do the rewrite by default. I think it would be great to have a way to do this on inline-snapshot=create and have it enabled by default, or via an env var.

Using
export INLINE_SNAPSHOT_DEFAULT_FLAGS=create

is a good start, although I still think it's unfortunate that it causes all the review diffs to be printed.
(BTW, I'm mostly using inline-snapshots on a library I haven't open sourced yet, I will do fairly soon, which might provide more context)

but i want it to tell me (by making the tests fail after the fact) which tests needed fixing

Will also be implemented.
You can already fix and create all snapshots by default with
export INLINE_SNAPSHOT_DEFAULT_FLAGS=create,fix

I don't want something where I have to approve changes in an interface managed by inline-snapshot.

You don't have to use it. I want to support different workflows, but i will never change code by default without user interaction. There will be ways (like the above) which will allow you to configure inline-snapshot in the way you like.

For 3, we shouldn't have to use Is() on every non-literal expression. Why is that report shown by default? I've never wanted to use update or be told what would have happened if I'd used it.

The update category is for code changes which cause no test failure. It was used in the past to change multi line string representation like
"line1\nline2\n"
into
"""\
line1
line2
"""

and there might be other changes in the future where I change the way inline-snapshot represents the values.
It is also used when  __repr__() of an type is changed and returns an different result.
I separate this from fix to let the developer know that the values have not been changed, which simplifies the approval.
inline-snapshot was never designed to support snapshot changes by the developer. The logfire code surprised me here in a nice way because you explored some new ways to use snapshots.
But the inline-snapshot will not only try to update these snapshots to the current repr() of the value but also fix it if the value changes and discard any code which was written by the developer.
Is(...) should make clear that the developer is responsible for this code. inline-snapshot will not update it or fix it if the value is not equal.
It is also useful if you read/review the code because you know which part was written by inline-snapshot and which by the developer.

Is() will block fix? not sure if i like that

Is() will block fix? not sure if i like that

Can you give an example where you want that inline-snapshot replace code which you have written?

It could simply be that the values have actually changed and the test
needs updating. I don't have examples and it may not be likely, but it
sounds like if that happens then I have to manually do what inline-snapshot
is supposed to automate for me.
I'm not sure what the semantics are when the value doesn't match now.
Does the assertion just fail? Either way it sounds harder to think about.
I would usually rather see the diff in git (as a result of the snapshot
changing) than in the pytest failure, so I'd often prefer to apply the
snapshot change even if it's temporary.
I generally find it obvious to see whether a value was written by
inline-snapshot or not.
I do not want to have to insert Is() wherever appropriate. I just
don't want to see the report about hypothetically using update. I still
don't think it should show by default, but if for some reason you want to
keep it, then I'd like it to be easier to turn it off. It looks like I can
use --inline-snapshot=fix,short-report. I think
INLINE_SNAPSHOT_DEFAULT_FLAGS=short-report pytest --inline-snapshot=fix
should work, by combining the flags, but it seems it doesn't, so I can't
just put INLINE_SNAPSHOT_DEFAULT_FLAGS=short-report in my .zshrc or
something.

On Tue, Nov 5, 2024 at 11:34 AM Frank Hoffmann @.***>
wrote:

Is() will block fix? not sure if i like that
Can you give an example where you want that inline-snapshot replace code
which you have written?
—
Reply to this email directly, view it on GitHub
https://github.com/15r10nk/inline-snapshot/issues/123#issuecomment-2456676074,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AA3VTWOOEVW5GRDP26REKVDZ7CGJ5AVCNFSM6AAAAABRDYXOYWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINJWGY3TMMBXGQ
.
You are receiving this because you commented.Message ID:
@.***>

I think this conversation is too wide ranging, that's entirely my fault for creating an issue with multiple points.
I think we should close this, and I'll create individual issues for the things I would love to change.

Closing in favour of #127 and #128. @alexmojaki if you have other points, best to create new issues.


Added redirect to state after login

A better way to redirect the user after they log in, they will be redirected to the state they attempt to visit, or to the landing page (you decide wich state in the code).
A better and best way to do #282

Hi @flick36
Thanks for your efforts! But unfortunately this is too opinionated to be available out of the box.. Some people wouldn't need it, they can just add this.$state.go call after the toast..

hi, good in most case it would be useful!

@odyright Thanks for your feedback!
Isn't it easier to just write the below?
this.$state.go('name');

I found it useful for example when the token expired, and if your user was navigating, to let's say a route
localhost:3000/#/routeone/1/subroute/1/details
you are gonna redirect him to the initials tate, instead of just sending him back to where he was .-.
also if your user has a bookmark to where the page he needs the most in your page, he would access it trouhg it asked for the login and redirects him to wherever he wants to be redirect to

I second the opinion that this would be very useful, @jadjoubran. Thanks, @flick36!
Perhaps this could be a recipe?

Thanks again @flick36, indeed it looks useful in some scenarios so as @shiruken1 let's keep it as a recipe.. I'll update #149


[thci] fix issue with isPowerDown flag and reset method

Some certification tests are failing because otbr-agent service is not started back after calling powerDown (isPowerDown flag is kept False and reset function fails on checking thread state - since the service is stopped, we can't return status)
Also minor fixes for printing logs, disabling paramiko DEBUG level

Also minor fixes for printing logs, disabling paramiko DEBUG level

Thanks. This is much better.


3D Laser Scans for Mapping Session

Hello,
I noticed that the 3D laser scans used to obtain the ground-truth mapping poses weren't included in the evaluation data.
Is there a plan to release these database scans (similar to InLoc), or are we expected to reconstruct a 3D map by running a mapping algorithm using the provided mapping images and poses (e.g. COLMAP MVS)?
Thanks for the clarification.

Hi Lahav,
Our setup and data for evaluating localization and mapping indeed assumes that 3D maps are built solely using sensors embedded by AR devices (images, IMU, radios). We evaluated lidar maps in the paper but this is not part of the benchmark for now.
We do plan to release all raw data, including reference lidar scans and on-device depth maps, but we are still working on it (it's a massive scale). Feel free to let us know if you have specific preferences or use cases in mind.

Sounds good, looking forward to the full raw data release.
Closing this issue now.


[Bug]: The scroll doesn't work for the date format dropdown inside the date picker widget

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
The scroll doesnt work inside the date format inside the date picker. widget

Steps To Reproduce

Go to canvas
drag and drop the date widget
Inside the property pane
click on the date format dropdown
try to scroll to check the date format at the bottom of the dropdown

Environment
Release
Version
Cloud

Not reproducible after moving the prop pane to right.


Broken Patreon link in readme

The readme links to https://www.patron.com/gedamore/ however the correct domain is patreon.com.

Resolved.  Thanks.


[Impeller] ImageFiltered flickers when widget is rendered on top

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Steps to reproduce

Add an ImageFiltered
Add a widget on top of it (eg: in a stack) and move it around

Expected results

The ImageFiltered should render as normal and not be affected by the widget on top
This happens correctly on Android but not on iOS using Impeller
This issue has been detected in stable  3.16.1 and latest master  3.17.0-18.0.pre.60

Actual results

Weird glitches when the widget on top moves. This happens only on iOS using Impeller

Code sample
Code sample
import 'dart:ui';

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});
  @override
  Widget build(BuildContext context) {
    return const MaterialApp(home: MyHomePage());
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  double y = 400;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          Center(
            child: ImageFiltered(
              imageFilter: ImageFilter.dilate(radiusX: 100, radiusY: 100),
              child: Container(
                height: 200,
                color: Colors.green,
                margin: const EdgeInsets.all(24),
              ),
            ),
          ),
          Positioned(
            left: 0,
            right: 0,
            top: y,
            height: 24,
            child: GestureDetector(
              onHorizontalDragUpdate: (details) {
                setState(() {
                  y = details.globalPosition.dy;
                });
              },
              child: Container(
                color: Colors.black,
              ),
            ),
          ),
        ],
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
https://github.com/flutter/flutter/assets/19904063/fbd612ae-be4f-475e-9c49-dea81de77e58

Logs
Logs

Flutter Doctor output
Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.16.1, on macOS 14.1.1 23B81 darwin-arm64, locale en-GB)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.1)
[✓] VS Code (version 1.84.2)
[✓] Connected device (3 available)
[✓] Network resources

Exactly the same issue here, also with BackdropFilter using ImageFilter.blur as filter.
For me it also reproducible with 3.16.0. Had to revert to 3.13.9, it works fine.

This issue does not occur if partial repaint is disabled in Impeller on iOS.
You can work around this by setting FLTDisablePartialRepaint to true in the app's Info.plist.
@jonahwilliams

FYI @bdero @gaaclarke , I suspect this is probably another entity pass coverage issue, but it sounds like this one is a newer regression from 3.16

This class of issue is historically tricky to work out. My guess is this is caused by one of the changes to make GetSubpassCoverage more aggressive after we fixed the known bugs, but it could just as easily be another partial repaint rectangle tracking bug.

Like without having looked at anything yet, dilate is a kernel filter that expands the bounds of whatever it's filtering. Is the dirty region tracker and/or the display list bounds computation accounting for this correctly? That's what the bug was last time we had something like this occur.

Looking at the video repro, it does look like what would happen if we're culling incorrectly in impeller... Trying to repro.

Confirmed this is getting culled because GetSubpassCoverage is erroneously returning null coverage.

GetSubpassCoverage is returning null coverage because the element is missing from the subpass...

Confirmed the element is missing because the DisplayList isn't giving us one.

FYI @knopp / @flar , though if its missing from display list that is either because the dirty region check was wrong, or perhaps it was too eagerly culled out?

I guess this begs the question, why did it regress from 3.13 to 3.16. Partial repaint for impeller landed ~8 months ago which I believe was 3.10

I'll look into this, but if we're culling the layer too early due to partial repaint, that would also be a problem in skia, wouldn't it?

Taking a look at this.  @bdero  The ImageFilter not being in the entity pass is not an indicator that this isn't an Impeller bug really. Because the diff itself only contains the black bar, this is more or less expected right?
But because of the logic of partial repaint, if there is a rendering bug on a single frame that frame may be continually reused. I am trying to capture the very first frame

It's not that it's not in EntityPass, it's that we're not getting the right commands dispatched to us.

Because the diff itself only contains the black bar, this is more or less expected right?

When we're rolling off the blurred SaveLayer, the diff needs to contain the blurred SaveLayer when we're over the blur's halo, but it seems to be getting culled out.
I should have time to continue looking into this later today.

Yeah that makes sense, we're drawing the bar over the greenbackground, so that should be included. My current guess is that the diff region for this is wrong.

Looking the image_filter_layer.cc in flow, i see that the damage regions are correctly computed:
[ERROR:flutter/flow/layers/image_filter_layer.cc(46)] FilterBoundsAdjustment: -228, 666, 1626,1200
[ERROR:flutter/flow/layers/image_filter_layer.cc(54)] Image Filter Diff Region: -228, 666, 1626,1200

So perhaps this is an integration problem in diff_context?

Looking the image_filter_layer.cc in flow, i see that the damage regions are correctly computed:
[ERROR:flutter/flow/layers/image_filter_layer.cc(46)] FilterBoundsAdjustment: -228, 666, 1626,1200
[ERROR:flutter/flow/layers/image_filter_layer.cc(54)] Image Filter Diff Region: -228, 666, 1626,1200

So perhaps this is an integration problem in diff_context?

IIRC, preroll is computing bounds in the local space, but diff context is computing them in device space?

hmm, but thinking about it more the diff region doesn't do culling right? And the diff region itself appears correct. Maybe the display list or entity_pass is culling this (though I think @bdero confirmed entity pass doesn't get notified at all)

hmm, but thinking about it more the diff region doesn't do culling right? And the diff region itself appears correct. Maybe the display list or entity_pass is culling this (though I think @bdero confirmed entity pass doesn't get notified at all)

The only differences between Skia and Impeller is that on skia we render the layer tree directly to an SkCanvas (unless there is a platform view) and on Impeller we render to a DlBuilder and then give that DL to Impeller. The layer tree has branch culling using the needs_painting() method which delegates to the DlCanvas - an SkCanvas on Skia and a DLBuilder on Impeller.

hmm, but thinking about it more the diff region doesn't do culling right? And the diff region itself appears correct. Maybe the display list or entity_pass is culling this (though I think @bdero confirmed entity pass doesn't get notified at all)

Layers get also culled in preroll according to diff context calculated clip.

hmm, but thinking about it more the diff region doesn't do culling right? And the diff region itself appears correct. Maybe the display list or entity_pass is culling this (though I think @bdero confirmed entity pass doesn't get notified at all)

Layers get also culled in preroll according to diff context calculated clip.

Where is that? Last I was working on it, Preroll couldn't cull because when we used to try that, platform views would corrupt platform interaction data structures and so we made it so that Preroll always visits every layer.

Not in flow preroll, but when we flatten the layer tree to a display list, will there be any culling there (or during dispatching)?

Not in flow preroll, but when we flatten the layer tree to a display list, will there be any culling there (or during dispatching)?

When we flatten into a DL we have the layer tree culling branches using Layer::needs_painting and we also have DlBuilder culling operations as it computes their bounds.
When we dispatch that DL to Impeller, it shouldn't cull any further because we recently changed the root Builder to not compute an RTree.

I think the next step would be to instrument DLBuilder to see if it is culling out the image filter, and if so why - incorrect bounds, or diff problems, et cetera.

hmm, but thinking about it more the diff region doesn't do culling right? And the diff region itself appears correct. Maybe the display list or entity_pass is culling this (though I think @bdero confirmed entity pass doesn't get notified at all)

Layers get also culled in preroll according to diff context calculated clip.

Where is that? Last I was working on it, Preroll couldn't cull because when we used to try that, platform views would corrupt platform interaction data structures and so we made it so that Preroll always visits every layer.

I misremembered of course. Culling was moved to paint couple of years ago.

As far as I can tell the imagefilter is not culled anywhere in flow, even if repainting only the part outside of filter source (as it should).
It also seems to me that impeller does not pain the imagefilter when only the area outside of filter source needs to be repainted. In other words it seems to be culling it based on imagefilter source area, instead of destination area.

The whole partial repaint thing is a red herring. You can reproduce this easily with
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Stack(
        children: [
          Positioned(
            top: -200,
            left: 0,
            right: 0,
            child: ImageFiltered(
              imageFilter: ImageFilter.dilate(radiusX: 100, radiusY: 100),
              child: Container(
                height: 200,
                color: Colors.green,
              ),
            ),
          ),
        ],
      ),
    );

Impeller (disabled partial repaint)
Skia

So what I'm seeing is that the SaveLayer itself isn't what's getting culled -- Impeller is still receiving a SaveLayer call with the intact filter as part of the DL dispatch. What's happening is that the DlDispatcher::drawRect call which triggers us to encode the green rectangle within the encoded SaveLayer disappears on frames where only the expanded filter area has changed.
If it's possible for children of filtered layers to get culled anywhere, then the culling code needs to take into account the radius of any kernel-based filters that will be applied by the parent layers.

Confirmed the DisplayList that renders contents within the layer is culling itself during DisplayList::Dispatch, and commenting out the culler init/update makes the problem go away.

We're hitting this path when it culls: https://github.com/flutter/engine/blob/46ff5c08a9053beb6a61743b093999b1091b9652/display_list/display_list.cc#L111
No rects in the "culler". RTree bug?

Okay, so just before this Dispatch call happens, the Dispatcher pulls out a local bounds rect tracked by Aiks here:  https://github.com/flutter/engine/blob/a47da28c9a62b1f2f9cacf3ca00ef49be6cb8ead/impeller/display_list/dl_dispatcher.cc#L1021-L1026
This was added specifically to help with the DL culling.
The comment just above this states that the bounds must be destination bounds. So I think this is happening because this local bounds stack doesn't incorporate filters on SaveLayers. A quick fix would be to just disable the culling rect on filtered SaveLayers for now.

Pushed a PR with the quick fix. I don't know what the best longterm solution is here, since the bounds rect we return is technically correct. I'm not sure if it's feasible for sub-DisplayLists to properly incorporate parent filter bounds.

So, Aiks needs something similar to this code which resets the culling bounds (not the clip, just the culling rect) when a filtered saveLayer happens:
https://github.com/flutter/engine/blob/91f65eea0c117a6b9ca9b4544bceb20d37633d01/display_list/dl_builder.cc#L548
And possibly also this code, which expands the content bounds by the filter when we hit the corresponding restore:
https://github.com/flutter/engine/blob/91f65eea0c117a6b9ca9b4544bceb20d37633d01/display_list/dl_builder.cc#L420
Alternately, we could apply all outstanding filters as each bounds is added, but getting all of the transforms correct for that would be a trick (each saveLayer can happen at a different point in the transform stack and so the transform for each filter, which can affect the bounds expansion, is relative to that transform).

Copying my comment from the PR here to continue discussing forming a follow-up issue for this:

I don't think that's quite enough. In order to produce a correct cull rect, wouldn't we need to pass each new clip's bounds through the chain of all parent filters? Also, it would need to be forward bounds, not reverse, since the cull rect needs to expand for kernel filters.
Am I missing something?

Copying my comment from the PR here to continue discussing forming a follow-up issue for this:

I don't think that's quite enough. In order to produce a correct cull rect, wouldn't we need to pass each new clip's bounds through the chain of all parent filters? Also, it would need to be forward bounds, not reverse, since the cull rect needs to expand for kernel filters.
Am I missing something?

kernel filters expand for both forward and reverse bounds symmetrically. For example: https://github.com/flutter/engine/blob/832238a3b493bed828e9e6696c5b56b65a9abcda/display_list/effects/dl_image_filter.h#L272
and https://github.com/flutter/engine/blob/832238a3b493bed828e9e6696c5b56b65a9abcda/impeller/entity/contents/filters/gaussian_blur_filter_contents.cc#L232

Right, that makes sense. The source bounds are larger than the blur output when the tile mode isn't Decal.
comment

It is done for each filter on each restore:
https://github.com/flutter/engine/blob/832238a3b493bed828e9e6696c5b56b65a9abcda/display_list/dl_builder.cc#L418C1-L435C1

I don't think we can do something similar here since we need to hand the DisplayList the cull rect whenever we start drawing a new sub-DisplayList, which can happen at any time during the dispatch. So we need to keep track of the filter-less cull rect and be able to pass it through the chain of all parent SaveLayer filters at a moment's notice.
That's not so bad, we could just track a copy of the filters on the xformation stack and do the dirty work on the rare occasion where we need to compute the cull rect.


Compression / Archiving

Is your feature request related to a problem? Please describe.
Quality of Life user interface improvement.
Describe the solution you'd like
It would be neat to see on compressed games, how much space you have saved (toggleable perhaps by percent / how much saved / original game size)?
Add to the task manager button "check for backup updates" a configurable option these options:

update game in library / zip (needs rebuild of archive zip for the latter) (default)
put changed stuff in new folder "appid-YYYYMMDD" (or zip) alongside with an batchfile for removing removed files.

Additional context
Possible some UI setting for setting the ZIP compression level (6 is default, 9 is max or so).
edit: would be cool, if you would also put the workshop items in the ZIP or in a APPID-workshop.zip ;-) Thanks!

would be really neat, if you could such delta updates :D

would be really neat, if you could such delta updates :D

Delta updates? Like; "appid-.zip" for each update, rather than regenerating the file? What is on your mind? :)

edit: would be cool, if you would also put the workshop items in the ZIP or in a APPID-workshop.zip ;-) Thanks!

Separate game files by common, downloading and workshop? Would that get agreed by everyone? I mean... extra archive files for each game 😄
Also it would be great to have some ideas about improving the layout of SLM like app view, library view, task manager etc. At the moment, we are pretty low on free space to put extra stuff like compression level / format stuff to task manager.
Thank you again for your ideas, I will be reviewing active "issues" and informing you.

Delta updates? Like; "appid-.zip" for each update, rather than regenerating the file?
What is on your mind? :)

Yes and no, but at least it would be nice to have the appid-YYYYMMDD.zip for the indiviual versions of the game, in order to have older versions.
Another step would be having optional delta updates just zip all changed files (and a autogenerated batch to remove removed directories and files).
I wrote a simple directory comparer in Python3 and compared the current Grim Dawn game with the version of the backup, here is the output:
F-  common\Grim Dawn\GDMapStitch_x64_v2.zip
MD5 appmanifest_219990.acf
MD5 common\Grim Dawn\AifEditor.exe
MD5 common\Grim Dawn\AnimationCompiler.exe
MD5 common\Grim Dawn\ArchiveTool.exe
MD5 common\Grim Dawn\AssetManager.exe
MD5 common\Grim Dawn\BitmapCreator.exe
MD5 common\Grim Dawn\Direct3D.dll
MD5 common\Grim Dawn\Direct3D11.dll
MD5 common\Grim Dawn\DirectInput.dll
MD5 common\Grim Dawn\DS8Sound.dll
MD5 common\Grim Dawn\Editor.exe
MD5 common\Grim Dawn\Engine.dll
MD5 common\Grim Dawn\Game.dll
MD5 common\Grim Dawn\Grim Dawn.exe
MD5 common\Grim Dawn\MapCompiler.exe
MD5 common\Grim Dawn\MaxPlugins2009.dlo
MD5 common\Grim Dawn\MaxPlugins2011.dlo
MD5 common\Grim Dawn\MaxPlugins2012.dlo
MD5 common\Grim Dawn\ModelCompiler.exe
MD5 common\Grim Dawn\PSEditor.exe
MD5 common\Grim Dawn\ShaderCompiler.exe
MD5 common\Grim Dawn\SourceControl.dll
MD5 common\Grim Dawn\SourceServer.exe
MD5 common\Grim Dawn\TextureCompiler.exe
MD5 common\Grim Dawn\Viewer.exe
MD5 common\Grim Dawn\Widget.dll
MD5 common\Grim Dawn\database\database.arz
MD5 common\Grim Dawn\database\templates.arc
MD5 common\Grim Dawn\resources\Conversations.arc
MD5 common\Grim Dawn\resources\Creatures.arc
MD5 common\Grim Dawn\resources\Fonts.arc
MD5 common\Grim Dawn\resources\FX.arc
MD5 common\Grim Dawn\resources\Items.arc
MD5 common\Grim Dawn\resources\Level Art.arc
MD5 common\Grim Dawn\resources\Levels.arc
MD5 common\Grim Dawn\resources\Shaders.arc
MD5 common\Grim Dawn\resources\System.arc
MD5 common\Grim Dawn\resources\Text_EN.arc
MD5 common\Grim Dawn\resources\UI.arc
MD5 common\Grim Dawn\x64\Direct3D.dll
MD5 common\Grim Dawn\x64\Direct3D11.dll
MD5 common\Grim Dawn\x64\DirectInput.dll
MD5 common\Grim Dawn\x64\DS8Sound.dll
MD5 common\Grim Dawn\x64\Engine.dll
MD5 common\Grim Dawn\x64\Game.dll
MD5 common\Grim Dawn\x64\Grim Dawn.exe

Old size: 4020308.1 KB, New size: 4046556.7, Changed Files: 2226264.9 KB

Both game versions have about 4 GB uncompressed data and the changed files only have about 2 GB (mostly due to the container files and not single files).
If you would do xdelta3 on the changed files, the 2 GB would shrink tremendously, but creating a proper patching routine would be tricky, I guess.

Addendum, I added automatically zipping the changed files (without cleanup script), this yielded an archive size of about 1,8GB (iinstead of the 2 GB loose files).

One suggestion to include for the UI, since it was brought up earlier, is to shrink either the log space or the interface space a little, to include a section for changing the settings for all games being moved/copied/compressed. Should speed up the process if you're planning on having all the games go through the same procedure, and then you could deselect the few that aren't going to have identical options, like getting compressed while backing up into the SLM folder.


Configure score without text field to customize its range

Is your feature request related to an existing functionality? Please describe.
Configure score without text field to make its range customizable.
Describe the solution you'd like
Add a minimum and maximum field for score without text and configure the rate choices so that they are customizable easily.
Priority

Low priority

Affected roles

Staff
Reviewers

What is the point of the min/max when RATE_CHOICES is a setting. How is it used in real life?


Access token and Refresh token handling

Hello Chris sanity,
Will be very helpful if you can update a feature of handling Access and refresh token
Access token is short lived and when it expires user is no more authenticated and there is situation of re-login required.
By providing refresh token to get access token again would resolve the re-login problem.
There are many examples out to do the web api to renew access token by providing refresh token
https://github.com/nandhakumargdr/RefreshTokensWebApiExample
But not for Blazor client with best practice and minimal work.
I can make a pull request for webapi side.
Blazer not much idea.

I’d love an example with a refresh token also!


props.search is cleared when click on the scroll slider

Hello Team,
First thank you for your work ! Here is a description of what we think is a bug.

Goal. We want to highlight a fragment of text from the option label based on the props.search (the query string entered by the user.) .

In order to do that, we implemented the behavior by using  :custom-label and slot as description in vueJs documentation http://monterail.github.io/vue-multiselect/#sub-custom-option-template

Unfortunately....when we click on the slider from the scroller, the query string what we received is blank, because when we click on the slider, the input field is cleared...!?

On your site, the same behavior can be seen at: http://monterail.github.io/vue-multiselect/#sub-custom-option-template, If you enter 'e' into the input field, you get a list and a scroll bar is displayed...and when we click on it,,,, the input field is cleared...without any reason....!?

It is a big issue for us..because when you click on the scroller, all previously highlighted text becomes un-highlighted....

Please...do you have a quick work-around ? we are using the beta 2.0.0-beta.15
Here is the call of the component:
         <multiselect v-model="value"
            :name="name"
            :id="id"
            :placeholder="placeholder | i18n"
            :options="options"
            label="Name"
            track-by="Code"
            group-label="Type"
            group-values="locations"
            :show-labels="false"
            :internal-search="false"
            :allow-empty="false"
            :datarule="datarule"
            @open="dropdownOpened"
            @close="dropdownClosed"
            @select="selectionMade"
            @search-change="findLocations"
            :custom-label="buildLocationLabel">
                <template slot="option" scope="props">

{{ props.option.Path }}

                </template>
                {{'No results' | i18n}}
        </multiselect>

Here is the controller (partial)
        /**
         * Returns the text to display as label at the UI level (Entry field).
         * This callback function is binded to <multiselect :custom-label...>
         *
         * @param location A Location object.
         *
         * @see OJ API for more information about the 'Location' structure.
         *
         */
        buildLocationLabel: function(location) {
            return location.Path;
        },

        /**
         * Returns an HTML highlighted text. The function uses an RegEx expression
         * to seek a specific string 'search' inside the 'text'. Any occurrence of
         * the 'search' inside 'text' will be highlighted. Function is not case sensitive.
         *
         * @param text A text to be highlighted, usually an option text.
         * @param search The text to highlight inside the 'text' parameter.
         *
         * @returns A highlighted text to display, usually as options text.
         *
         */
        highlightKey: function(text, search) {
            if (search.length >= 3) {
                 var regEx = new RegExp('(' + search + ')', 'gi');
                 text = text.replace(regEx, '$1');
            }

            return text;
        },

Location is an object like :
Location[0]: {"Code":"CitAuNoYular726","Name":"Yulara","Path":"Yulara, Northern Territory, Australia","Type":"city"}

Group by to obtain a tree  in order to use   group-label="Type" and  group-values="locations"
        /**
         * Returns a array grouped by 'Type'. Each 'Type' is an entry point that have a set of 'locations'
         *
         * @param A 'array' usually returns by OJ API.
         * @param A 'property' name that will be used to group the 'array' parameter.
         *
         * @return A grouped array based on 'property'.
         */
        groupBy: function(array, property) {

            return array.reduce( function (result, item) {

                // do not use flat-arrow in this case 'cause item won't be found
                let bucket = result.find( function (item) { return item[property] === this}, item[property]);

                if (bucket === undefined) {
                    bucket = {Type: item[property], locations: []};
                    result.push(bucket);
                }

                bucket.locations.push(item);

                return result;
            }, []);
        },

Adding @mousedown.prevent onto the
 of the dropdown will solve this. I created a pull request for the same: https://github.com/monterail/vue-multiselect/pull/346

This won't work for IE11!
IE11 is either ignoring preventDefault() action or doesn't "count" scrollbars as the resource inside multiselect component.
@shentao could it be re-tested || re-opened, please?


Fixed README heading styling

Current dependencies on/for this PR:

main

PR #1106

PR #1107

PR #1108

PR #1113

PR #1114

PR #1115

PR #1134

PR #1135   👈

This comment was auto-generated by Graphite.


[Important] HTTP Request Smuggling

Dear Whisper-ASR-Webservice Team,
I hope this message finds you well.
I regret to inform you that a critical security vulnerability has been identified in one of service dependencies, specifically gunicorn version 21.2.0. It is imperative that we upgrade to version 22.0.0 immediately to address this issue.
The vulnerability in question pertains to HTTP Request Smuggling, resulting from improper validation of Transfer-Encoding headers within affected versions. This flaw could potentially enable attackers to circumvent security measures and gain unauthorized access to restricted endpoints by crafting requests with conflicting Transfer-Encoding headers.
Given the severity of this issue, I urge everyone to prioritize the update process without delay.
Thank you for your swift attent!

Thank you for your report. This was fixed by #231.


Fix tokensLockedUntil in staking contract

Description
If we unallocate from an escrow A and then from another escrow B, the lock period for both unallocated amount of tokens will be the locking period of escrow B.
Motivation
We should be able to unlock the tokens from each escrow with a different date
Implementation details
An option might be to move the variable tokensLockedUntil to the allocation struct

@portuu3 , AFAIK token lock is only applied to unstaking tokens, not for closing allocations from escrows.


[Feature] select into outfile support parquet format

What type of PR is this：

[ ] BugFix
[x] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Which issues of this PR fixes ：

Fixes #
Iceberg table sink will be committed based on this pr. At that point, the parquet_builder of this pr will be dismantled and refactored.
Problem Summary(Required) ：

Checklist:

[ ] I have added test cases for my bug fix or my new feature
[ ] This pr will affect users' behaviors
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

Bugfix cherry-pick branch check:

[ ] I have checked the version labels which the pr will be auto backported to target branch

[ ] 2.5
[ ] 2.4
[ ] 2.3
[ ] 2.2

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 15 / 69 (21.74%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/load/ParquetUtils.java
0
35
00.00%
[31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 64, 66, 70, 71, 73, 78, 80, 84, 88, 90, 92, 99, 102]

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
12
31
38.71%
[136, 167, 168, 170, 171, 172, 174, 179, 180, 182, 186, 187, 189, 262, 263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
2
2
100.00%
[]

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 15 / 69 (21.74%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/load/ParquetUtils.java
0
35
00.00%
[31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 64, 66, 70, 71, 73, 78, 80, 84, 88, 90, 92, 99, 102]

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
12
31
38.71%
[136, 167, 168, 170, 171, 172, 174, 179, 180, 182, 186, 187, 189, 262, 263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
2
2
100.00%
[]

run starrocks_admit_test

run starrocks_fe_unittest

[FE PR Coverage Check]
:disappointed: fail : 15 / 69 (21.74%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/load/ParquetUtils.java
0
35
00.00%
[31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 64, 66, 70, 71, 73, 78, 80, 84, 88, 90, 92, 99, 102]

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
12
31
38.71%
[136, 167, 168, 170, 171, 172, 174, 179, 180, 182, 186, 187, 189, 262, 263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
2
2
100.00%
[]

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 15 / 69 (21.74%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/load/ParquetUtils.java
0
35
00.00%
[31, 32, 33, 40, 41, 42, 43, 44, 45, 46, 47, 48, 51, 52, 53, 56, 57, 58, 59, 60, 61, 62, 64, 66, 70, 71, 73, 78, 80, 84, 88, 90, 92, 99, 102]

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
12
31
38.71%
[136, 167, 168, 170, 171, 172, 174, 179, 180, 182, 186, 187, 189, 262, 263, 264, 265, 266, 267]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
1
1
100.00%
[]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
2
2
100.00%
[]

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test

run starrocks_fe_unittest

run starrocks_admit_test

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 25 / 48 (52.08%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
21
42
50.00%
[142, 173, 174, 176, 177, 178, 180, 185, 186, 188, 192, 193, 195, 241, 265, 266, 267, 268, 269, 270, 271]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
3
5
60.00%
[167, 168]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
1
1
100.00%
[]

[FE PR Coverage Check]
:disappointed: fail : 25 / 48 (52.08%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
21
42
50.00%
[142, 173, 174, 176, 177, 178, 180, 185, 186, 188, 192, 193, 195, 241, 265, 266, 267, 268, 269, 270, 271]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
3
5
60.00%
[167, 168]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
1
1
100.00%
[]

run starrocks_admit_test

[FE PR Coverage Check]
:disappointed: fail : 25 / 48 (52.08%)
file detail

path
covered_line
new_line
coverage
not_covered_line_detail

:large_blue_circle:
com/starrocks/analysis/OutFileClause.java
21
42
50.00%
[142, 173, 174, 176, 177, 178, 180, 185, 186, 188, 192, 193, 195, 241, 265, 266, 267, 268, 269, 270, 271]

:large_blue_circle:
com/starrocks/sql/StatementPlanner.java
3
5
60.00%
[167, 168]

:large_blue_circle:
com/starrocks/planner/ResultSink.java
1
1
100.00%
[]

run starrocks_admit_test

run starrocks_admit_test

run starrocks_admit_test


Add instructions for how to use this in VScode + Devcontainer local environment

see https://github.com/Microsoft/vscode-remote-try-python
This is useful for student who want to use the resources offline.

Since we are concentrating in Codespaces this would require adding significant instructions to the documentation on how to:

Install and configure Docker locally
Install the Remote Containers extension
Open the repository and connect to the remote container

Since there are other resources for this type of setup, would you be OK if we add it to the resources section as a separate link instead?

Added section about Dev Containers at the end in the resources section


Update dependencies to match Anvil 2.5

Task/Issue URL: https://app.asana.com/0/488551667048375/1207208354433631/f
Description
Steps to test this PR
Feature 1

[ ]
[ ]

UI changes

Before
After

!(Upload before screenshot)
(Upload after screenshot)

#4491  👈
develop

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @joshliebe and the rest of your teammates on  Graphite


Auto registration of new widget types

Is it possible to register new widget types without declaring dependency at the time of creating the main app module? All the samples I have seen are declaring dependency on the widget modules like this:
angular.module('adfDynamicSample', [
'adf', 'ngRoute', 'structures',
'sample.widgets.news', 'sample.widgets.weather',
'sample.widgets.linklist', 'sample.widgets.randommsg'
])
Can I add a new widget type by deploying a new angular module, e.g. "sample.widgets.mywidget" on top of my existing app (as a plugin) by not touching the original app and make it available in the Add Widget dialog? I can only get the widget to show up if I declare a dependency between my main module and the widget module.
Thanks for your help!

Hey,
this is an issue resulting in the design of angular, not of the dashboard framework, so I think that the lazyLoading module for angular could help you with this:
https://github.com/ocombe/ocLazyLoad
I also need this for a project in future, but I was not able to test it yet. Maybe you could try it and post the solution in here for people with the same issue :)
cheers jonas

Hi
I try for few days to use ocLazyLoad but without success (i am a angular newbie !)
The result is always the same : the controller attached to the widget cannot be found. I can load and run the config part of the javascript file but the controller seems to be ignored. It sounds as if the call to the controller is performed before the load wich is surprising as debug seems to say the opposite
Anyway, if you are more lucky with ocLazyLoad, can you please share it ?
Thanks

Hi, i finally got the pleasure to test it by myself and it worked out of the box. I tried different use cases:

lazyLoad local resource on app startup
lazyLoad local resource on opening the add widget dialog
3 & 4) lazyLoad an external resource with the two variants above

Could you give a code snippet where you load the js-file and how your module looks like? The first thing i can think of is that you have any dependency in your module to another module, that you need to load first.

Thanks for the feedback
Can you please tell me how you load the dashboard and widgets with ocLazyLoad ? I try to add actions in the .run in app.js but it still does not work. Your tests code will be welcome ;-)
Thank you


wrong branch

Pull Request
Are you a current Fivetran customer?

fivetran made PR
What change(s) does this PR introduce?

refactors campaign, campaign group, and ad report models
adds creative + url report models (replacing ad_adapter)
updates README
updates CHANGELOG
changes build schemas
generates docs (need to enable Github Pages after merging) 👀
updates passthrough column method (and passes them to ALL end models)

Did you update the CHANGELOG?

[x] Yes

Does this PR introduce a breaking change?

[x] Yes (please provide breaking change details below.)
[ ] No  (please provide an explanation as to how the change is non-breaking below.)

Did you update the dbt_project.yml files with the version upgrade (please leverage standard semantic versioning)? (In both your main project and integration_tests)

[x] Yes

Is this PR in response to a previously created Bug or Feature Request

[x] Yes, it renders issues https://github.com/fivetran/dbt_linkedin/issues/18 and https://github.com/fivetran/dbt_linkedin/issues/20 non-issues (should i put this in the release notes?)
[ ] No

How did you test the PR changes?

[x] CircleCi
[ ] Local (please provide additional testing details below)

Select which warehouse(s) were used to test the PR

[x] BigQuery
[x] Redshift
[x] Snowflake
[x] Postgres
[x] Databricks
[ ] Other (provide details below)

Provide an emoji that best describes your current mood

🎸
Feedback
We are so excited you decided to contribute to the Fivetran community dbt package! We continue to work to improve the packages and would greatly appreciate your feedback on our existing dbt packages or what you'd like to see next.

@fivetran-jamie can you also rename this PR. Just so it doesn't seem deceiving upon first glance.


Ryan M: Watch newguestpost.com

Ryan M requests the watch of the watch_keyword newguestpost\.com. See the MS search here and the Stack Exchange search in text, in URLs, and in code.

newguestpost\.com has been seen in 1 true positive, 0 false positives, and 0 NAAs.

Approved by NobodyNada in Charcoal HQ


fix/1231-ga-treasury-unable-to-add-proposal-with-this-type-when-bech32-receiving-address-is-used

List of changes

Add reward address CSL validation

Checklist

related issue
[x] My changes generate no new warnings
[x] My code follows the style guidelines of this project
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the changelog
[ ] I have added tests that prove my fix is effective or that my feature works

Awesome job! :1st_place_medal:


Authenticate against GitLab's integrated registry

Hi,
I am trying to use docker-api to authenticate against GitLab's integrated registry, registry.gitlab.com. The docker CLI way of doing that was docker login registry.gitlab.com. I tried the following but I am getting the error.
[1] pry(main)> require 'docker'
=> true
[2] pry(main)> ENV['DOCKER_HOST'] = 'registry.gitlab.com'
=> "registry.gitlab.com"
[3] pry(main)> Docker.authenticate!(username: '<my username>', password: '<my password>', email: '<my email>')
Excon::Error::Socket: SSL_connect returned=1 errno=0 state=SSLv2/v3 read server hello A: unknown protocol (OpenSSL::SSL::SSLError) (Excon::Error::Socket)
from /home/balasankarc/work/docker-trial/.bundle/ruby/2.3.0/gems/excon-0.55.0/lib/excon/ssl_socket.rb:116:in `connect_nonblock'

Any idea what causes this and how to solve it?

It seems I was doing it wrong. I needed to pass serveraddress to authenticate!, not set DOCKER_HOST. Will close the issue.
BTW, that seems something worth documenting in your README.

@balasankarc please make the PR


Tool is unable to identify service account that i created on Grafana server as well as AWS managed grafana.

As per the usage document of amazon-managed-grafana-migrator I am able to identify the AWS managed garafana via
#amazon-managed-grafana-migrator discover --region us-west-2
I have also created service account with below command-
#aws grafana create-workspace-service-account --workspace-id g-abcdef5678
--grafana-role ADMIN
--name grafana_migration
As soon as i execute migrate command i get below error-
Skipping API key creation for https://*****.com/
Creating service account token for service account grafana_migration
error: ValidationException: Invalid Service Account id: grafana_migration
{
RespMetadata: {
StatusCode: 400,
RequestID: "df3d54ae-d0e8-4509-b137-42c2668e3583"
},
Message_: "Invalid Service Account id: grafana_migration"
}
Migration command that am using is-
#amazon-managed-grafana-migrator migrate --src-url https://***.com/ --src-api-key glsa_T**************** --dst g-.grafana-workspace.us-west-2.amazonaws.com --dst-service-account-id grafana_migration
I have a question too, does this tool migrates the datasources configured passwords from source?

@bonclay7 does migration tool migrates the configured password of data sources from grafana server to AWS managed grafana?

@parth741 Which version are you migrating from, and to which version? If you're using version 8, you should first upgrade or migrate to Grafana version 9 instance. After successfully migrating to version 9, proceed with the upgrade to version 10. Please note that the commands differ slightly at each step.

Hi Team,
I am migrating from onprem grafana v10 to aws managed grafana v10.
Regards
Parth Tripathi
On Thu, 11 Jul, 2024, 10:34 pm serkan haytac, @.***>
wrote:

@parth741 https://github.com/parth741 Which version are you migrating
from, and to which version? If you're using version 8, you should first
upgrade or migrate to Grafana version 9 instance. After successfully
migrating to version 9, proceed with the upgrade to version 10. Please note
that the commands differ slightly at each step.
—
Reply to this email directly, view it on GitHub
https://github.com/aws-observability/amazon-managed-grafana-migrator/issues/30#issuecomment-2223445031,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AG37ZVZJPHBU4MK3JSCAXCDZL23IZAVCNFSM6AAAAABJPWNWESVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMRTGQ2DKMBTGE
.
You are receiving this because you were mentioned.Message ID:
<aws-observability/amazon-managed-grafana-migrator/issues/30/2223445031@
github.com>


Add an Example for Task.LastTaskResult Property

Please add an example for Task.LastTaskResult Property.
TODO (optional): Describe a specific scenario you would like to see addressed.
Help Topic: https://dahall.github.io/TaskScheduler/html/P_Microsoft_Win32_TaskScheduler_Task_LastTaskResult.htm

Already reported and fixed. Please don't spam the issues!


Listview sticky header.

If I used a listview, can i make the header of the listview also stick after the parallax sticky header?

I am also trying to achieve this. I will report if I find anything.

Did anybody find anything on this?

I was unable to figure out how to make this happen. I did find this post that discusses sticky headers integrated into another plugin (react-native-scrollable-tab-view) that I believe is similar to what needs to happen.
Let me know if you get this integrated!
Stack Overflow link


Allow deprecation of connection fields

There is currently no way to deprecate a field created with the connectionField plugin.
This is pretty important for maintaining versionless schemas.
This should work exactly like it does for any other field:
t.connectionField('some_field', {
    deprecation: 'No longer safe to use',
    type: 'SomeType',
    nodes: async (root, _, ctx) => await root.genMyFields(ctx))
});

Merged this in #578 - should be out with a release soon

Released in 0.17.0


[FEA] sc.tl.ingest

Is your feature request related to a problem? Please describe.
I wish I could use rapids-singlecell to map labels and embeddings from reference data to new data
Describe the solution you'd like
Using GPU to speed up sc.tl.ingest
Is there a CPU based implementation
https://scanpy.readthedocs.io/en/stable/generated/scanpy.tl.ingest.html

Not a high priority, more of a nice to have. Happy to help have a look at this whenever I have some time.
Thanks for the great package, by the way.


Not working in ios

Sorry， I will fix it later

No description provided.

fixed in version 1.0.4


Multi-lingual site shows both languages at the same time in nav and footer

BUG REPORT
What happened:

I'm trying to get multi-lingual site working.
I only changed the config.toml according to the doc.
I'm using latest master of syna and syna-starter

In the default language, the menu (and footer as well) shows both translations:

What you expected to happen:
Only items of one language should be visible.
How to reproduce it (as minimally and precisely as possible):
See https://github.com/schoettl/syna-start/commit/e13e458586ed5efed2d15bb1507f71e061ab27b6
(one commit based on syna-starter)
Environment:

Syna Theme version:  latest master >= v0.17.2
Hugo version:  0.73.0

@stp-ip What do you think? Should we remove current language button or implement it in some other way?

Oh, I hope it is not a misunderstanding:
I'm fine with the two language selector buttons "en" and "de".
The problem is that both translations "Home" and "Zuhause" are visible. In the default language "en", there should only be "Home", "About Us", "Contact".

Oh I didn't see that. Thanks for reporting it. I'll get right on it.

Not sure why this happens. Also I'm not sure about the syntax you're using. Seems like the method described in the Menus section of Multilingual Mode documentation uses a different syntax that works with Syna. To clarify, I mean using this syntax:
[languages.en]
  weight = 0
  languageName = "English"

[[languages.en.menu.main]]
  url    = "/"
  name   = "Home"
  weight = 0

[languages.de]
  weight = 10
  languageName = "Deutsch"

[[languages.de.menu.main]]
  url    = "/"
  name   = "Startseite"
  weight = 0

Oh than it's probably my fault – I'll check it out. I'm not used to this toml configuration...

Alright, it was a TOML misconfiguration on my side.
TOML doesn't care of indentation; the property name in brackets must always be a fully-qualified property name.
(I don't like the syntax, that's why I suggested to switch to YAML in syna configuration and front matter...)
Thank you for your help!


[Consensus][TECHDEBT] Consensus module techdebt consolidation

Objective
Consolidate, remove and tend to minor TODOs across the consensus module.
Origin Document
A lot of learnings and changes have been made to our process since the first implementation of the consensus module, so there is room to do some general 🧹 at a module-level perspective before we change or improve the business logic.
Goals

Remove unneeded TODOs
Consolidate repetitive TODOs

Deliverable

[ ] A PR tending to the goals above only touching the consensus module (not pacemaker, persistence, utility etc...)
[ ] A small sequence diagram showing cross-module context initialization

Non-goals / Non-deliverables

Changing any business logic in the consensus module
Changing cross-module interaction in the consensus module
Changes tending to major TODOs across the module

General issue deliverables

[ ] Update the appropriate CHANGELOG
[ ] Update any relevant READMEs (local and/or global)
[ ] Update any relevant global documentation & references
[ ] Update the source code tree explanation
[ ] Updated sequence diagram using mermaid for basic components

Testing Methodology

All tests: make test_all
LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md

Creator: @Olshansk

The goal of this issue is to separate out the consensus-only changes from #237 into a smaller and readable PR.


teller: init at 1.5.6

Description of changes
Add package teller v1.5.6 in development/tools.
Built as a Go module with overriden checkPhase because their e2e breaks otherwise.
Not 100% sure if I missed something as it's my first package. Please review :)

Local build logs on `x86_64-pc-linux`
$ nix-build -A teller && ./result/bin/teller version

this derivation will be built:
  /nix/store/yrgk81394nb66y8a32ahz4r6r3bxzdpd-teller-1.5.6.drv
building '/nix/store/yrgk81394nb66y8a32ahz4r6r3bxzdpd-teller-1.5.6.drv'...
unpacking sources
unpacking source archive /nix/store/k2a5p5j67lwvlxzcj4wbqbnci7n3glx2-source
source root is source
patching sources
configuring
building
Building subPackage .

Synced target2 (../fixtures/sync/target2.env): OK.
--- PASS: TestTellerSync (0.00s)
=== RUN   TestTemplateFile
--- PASS: TestTemplateFile (0.00s)
=== RUN   TestTemplateFolder
/build/test-template2910698344/to
--- PASS: TestTemplateFolder (0.00s)
=== RUN   TestTellerDelete
--- PASS: TestTellerDelete (0.00s)
=== RUN   TestTellerDeleteAll
--- PASS: TestTellerDeleteAll (0.00s)
=== RUN   TestTemplating
--- PASS: TestTemplating (0.00s)
PASS
        github.com/spectralops/teller/pkg       coverage: 54.0% of statements
ok      github.com/spectralops/teller/pkg       0.019s  coverage: 54.0% of statements
=== RUN   TestPopulatePath
--- PASS: TestPopulatePath (0.00s)
=== RUN   TestPopulateDefaultValue
--- PASS: TestPopulateDefaultValue (0.00s)
PASS
        github.com/spectralops/teller/pkg/core  coverage: 42.9% of statements
ok      github.com/spectralops/teller/pkg/core  0.004s  coverage: 42.9% of statements
=== RUN   TestSetOutput
--- PASS: TestSetOutput (0.00s)
=== RUN   TestJSONFormat
--- PASS: TestJSONFormat (0.00s)
=== RUN   TestTextFormat
--- PASS: TestTextFormat (0.00s)
=== RUN   TestWithFields
--- PASS: TestWithFields (0.00s)
=== RUN   TestWithField
--- PASS: TestWithField (0.00s)
=== RUN   TestWithError
--- PASS: TestWithError (0.00s)
=== RUN   TestLevelSetter
--- PASS: TestLevelSetter (0.00s)
PASS
        github.com/spectralops/teller/pkg/logging       coverage: 51.3% of statements
ok      github.com/spectralops/teller/pkg/logging       0.004s  coverage: 51.3% of statements
?       github.com/spectralops/teller/pkg/providers/mock_providers      [no test files]
?       github.com/spectralops/teller/pkg/utils [no test files]
=== RUN   TestAWSSecretsManager
--- PASS: TestAWSSecretsManager (0.00s)
=== RUN   TestAWSSecretsManagerFailures
--- PASS: TestAWSSecretsManagerFailures (0.00s)
=== RUN   TestAWSSSM
--- PASS: TestAWSSSM (0.00s)
=== RUN   TestAWSSSMFailures
--- PASS: TestAWSSSMFailures (0.00s)
=== RUN   TestAzureKeyVault
--- PASS: TestAzureKeyVault (0.00s)
=== RUN   TestAzureKeyVaultFailures
--- PASS: TestAzureKeyVaultFailures (0.00s)
=== RUN   TestCloudflareWorkersKV
--- PASS: TestCloudflareWorkersKV (0.00s)
=== RUN   TestCloudflareReadWorkersKVFailures
--- PASS: TestCloudflareReadWorkersKVFailures (0.00s)
=== RUN   TestCloudflareListWorkersKVsFailures
--- PASS: TestCloudflareListWorkersKVsFailures (0.00s)
=== RUN   TestCloudflareWorkersSecretsPut
--- PASS: TestCloudflareWorkersSecretsPut (0.00s)
=== RUN   TestCloudflareWorkersSecretsDelete
--- PASS: TestCloudflareWorkersSecretsDelete (0.00s)
=== RUN   TestConsul
--- PASS: TestConsul (0.00s)
=== RUN   TestConsulFailures
--- PASS: TestConsulFailures (0.00s)
=== RUN   TestDoppler
--- PASS: TestDoppler (0.00s)
=== RUN   TestDotenv
--- PASS: TestDotenv (0.00s)
=== RUN   TestDotenvFailures
--- PASS: TestDotenvFailures (0.00s)
=== RUN   TestEtcd
--- PASS: TestEtcd (0.00s)
=== RUN   TestEtcdFailures
--- PASS: TestEtcdFailures (0.00s)
=== RUN   TestGenerateProvidersMetaJSON
--- PASS: TestGenerateProvidersMetaJSON (0.00s)
=== RUN   TestFileSystem
--- PASS: TestFileSystem (0.00s)
=== RUN   TestFileSystemSetEntry
--- PASS: TestFileSystemSetEntry (0.00s)
=== RUN   TestFileSystemDeleteEntry
--- PASS: TestFileSystemDeleteEntry (0.00s)
=== RUN   TestGitHubPut
--- PASS: TestGitHubPut (0.00s)
=== RUN   TestGitHubPutMapping
--- PASS: TestGitHubPutMapping (0.00s)
=== RUN   TestGitHubDelete
--- PASS: TestGitHubDelete (0.00s)
=== RUN   TestGitHubDeleteMaping
--- PASS: TestGitHubDeleteMaping (0.00s)
=== RUN   TestGitHubDeleteMapingWithError
--- PASS: TestGitHubDeleteMapingWithError (0.00s)
=== RUN   TestParsePathToOwnerAndRepo
--- PASS: TestParsePathToOwnerAndRepo (0.00s)
=== RUN   TestGoogleSM
--- PASS: TestGoogleSM (0.00s)
=== RUN   TestGoogleSMFailures
--- PASS: TestGoogleSMFailures (0.00s)
=== RUN   TestGopass
--- PASS: TestGopass (0.00s)
=== RUN   TestGopassFailures
--- PASS: TestGopassFailures (0.00s)
=== RUN   TestHashicorpVault
=== RUN   TestHashicorpVault/data
=== RUN   TestHashicorpVault/data.data
--- PASS: TestHashicorpVault (0.00s)
    --- PASS: TestHashicorpVault/data (0.00s)
    --- PASS: TestHashicorpVault/data.data (0.00s)
=== RUN   TestHashicorpVaultFailures
--- PASS: TestHashicorpVaultFailures (0.00s)
=== RUN   TestHeroku
--- PASS: TestHeroku (0.00s)
=== RUN   TestHerokuFailures
--- PASS: TestHerokuFailures (0.00s)
=== RUN   TestKetPass
--- PASS: TestKetPass (0.00s)
=== RUN   TestKeypassFailures
--- PASS: TestKeypassFailures (0.00s)
=== RUN   TestLastPass
--- PASS: TestLastPass (0.00s)
=== RUN   TestLastPassFailures
--- PASS: TestLastPassFailures (0.00s)
=== RUN   TestOnePassword
--- PASS: TestOnePassword (0.00s)
=== RUN   TestOnePasswordFailures
--- PASS: TestOnePasswordFailures (0.00s)
=== RUN   TestVercel
--- PASS: TestVercel (0.00s)
=== RUN   TestVercelFailures
--- PASS: TestVercelFailures (0.00s)
PASS
        github.com/spectralops/teller/pkg/providers     coverage: 49.1% of statements
ok      github.com/spectralops/teller/pkg/providers     0.024s  coverage: 49.1% of statements
go build -ldflags "-s -w -X main.version=0.0.0 -X main.commit=0000000000000000000000000000000000000000 -X main.date=2022-01-01"
BINARY_PATH="/build/source/teller" go test -v ./e2e
=== RUN   TestE2E
=== PAUSE TestE2E
=== CONT  TestE2E
=== RUN   TestE2E/yaml
=== RUN   TestE2E/Show_entries
=== RUN   TestE2E/Sh_print
=== RUN   TestE2E/scan_entries
=== RUN   TestE2E/Put_multiple_entires
=== RUN   TestE2E/Put_with_--sync_flag
=== RUN   TestE2E/Show_JSON_entries
=== RUN   TestE2E/Delete_multiple_entires
=== RUN   TestE2E/Custom_config_name
=== RUN   TestE2E/version
--- PASS: TestE2E (0.13s)
    --- PASS: TestE2E/yaml (0.01s)
    --- PASS: TestE2E/Show_entries (0.01s)
    --- PASS: TestE2E/Sh_print (0.01s)
    --- PASS: TestE2E/scan_entries (0.01s)
    --- PASS: TestE2E/Put_multiple_entires (0.01s)
    --- PASS: TestE2E/Put_with_--sync_flag (0.01s)
    --- PASS: TestE2E/Show_JSON_entries (0.01s)
    --- PASS: TestE2E/Delete_multiple_entires (0.01s)
    --- PASS: TestE2E/Custom_config_name (0.01s)
    --- PASS: TestE2E/version (0.01s)
PASS
ok      github.com/spectralops/teller/e2e       0.137s
e2e tests passed
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/ayc9l6mp79i7q0237c4hjps472n3gyph-teller-1.5.6
shrinking /nix/store/ayc9l6mp79i7q0237c4hjps472n3gyph-teller-1.5.6/bin/teller
checking for references to /build/ in /nix/store/ayc9l6mp79i7q0237c4hjps472n3gyph-teller-1.5.6...
patching script interpreter paths in /nix/store/ayc9l6mp79i7q0237c4hjps472n3gyph-teller-1.5.6
stripping (with command strip and flags -S -p) in  /nix/store/ayc9l6mp79i7q0237c4hjps472n3gyph-teller-1.5.6/bin
/nix/store/ayc9l6mp79i7q0237c4hjps472n3gyph-teller-1.5.6
Teller 1.5.6
Revision 1.5.6, date: 2022-10-13

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

It looks like you accidentally mass-pinged a bunch of people, which are now subscribed
and getting notifications for everything in this pull request. Unfortunately, they
cannot be automatically unsubscribed from the issue (removing review request does not
unsubscribe), therefore development cannot continue in this pull request anymore.
Please open a new pull request with your changes, link back to this one and ping the
people actually involved in here over there.
In order to avoid this in the future, there are instructions for how to properly
rebase between branches in our contribution guidelines.
Setting your pull request to draft prior to rebasing is strongly recommended.
In draft status, you can preview the list of people that are about to be requested
for review, which allows you to sidestep this issue.
This is not a bulletproof method though, as OfBorg still does review requests even on draft PRs.