Svelte, streaming resets yRange

Describe the bug
I generate new data and add it to the chart, i expect the chart to reload the data but not reset yRange  and push the data left along xrange so that new candles don't go off chart.
Reproduction
https://codesandbox.io/s/svelte-streaming-chart-ijd3l5?file=/stockchart.svelte
Steps to reproduce
Scale y axis in any direction. it pops right back on new data.
Javascript Framework
svelte
Logs
No response
Validations

[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a NightVision issue and not a framework-specific issue.
[X] The provided reproduction is a minimal reproducible example of the bug.

Yep, already fixed once, this bug reappeared. But you are still doing it wrong:
https://codesandbox.io/s/svelte-streaming-chart-forked-3djv18?comment=2b387054-48eb-4758-b40e-97527eb1abaf
You shouldn't reset the whole dataset on every tick

This was my first solution
https://codesandbox.io/s/svelte-streaming-chart-ijd3l5?file=/stockchart.svelte
But i didnt like that i need to have something in the initial data for it to work.  I would like to just say data: []
Then update it like above example.

For the example 10, i just dont understand how that actually works,, my skills is limited.

If so, you probably need to wait for the high-level Data API. This is a low-level API, meaning no auto-updates.

:) Will build the rest of my program in the meantime. Thanks for all the help, i will try to figure stuff out.

Got it working the correct way :) Not sure if its in the loop or not but it would be nice if
1 ) You as a user can provide an empty data [] on init.
2 ) Each overlay got an easier access ex: chart.find('sma14').data = [ new data ]

@frbju  are you still working with this project ... i have seen you are posting some of the same types of questions i am ... so if you are still working with this project i would love to chat with you about how you solved some of your problems


Remove logback dependency and add only org.slf4j.slf4j-api

Sorry for the delayed response. Thank you for your interest to contribute to the project.
You can assign the ticket to yourself and open a pull request if you are done.
Before we can merge an external pull request we have to wait until we defined necessary legals, e.g.
a CLA and contributor guidelines. This should be done in a week or so.


Command and Output are Pulled by Sensor

Ubuntu 18.04.1 LTS
HASS - Docker
First of all, thank you very much. Sensor is great!
I have some feedback/request. I used the sensor to run this command:
cat /var/run/reboot-required
The sensor provided this output:
cat /var/run/reboot-required ***system restart required****
It brings back the output along with the initial command. I can easily fix it with the value_template option, but is it intended to do that?
Thank you.

@jchasey
Could you consider making a switch/command version of this? It would do away with ssh keys when firing commands to the host from a container or other servers.
Thank you

Would love this as a switch too.


Callout custom colors do not work

First of all: GREAT plugin, great functionality, great that it's been implemented in Obsidian.
Unfortunately, using the callout function does not properly  work for me - custom colors default to blue, and the note icon is shown instead of the one I picked - even though the custom title is inserted.
In admonition mode, the custom colors are rendered properly
Is there any chance to fix this? I would much prefer to use callouts.

I'm experiencing this too. It's not all the time though. I have custom callouts that work fine but then others that default to blue. Not sure why this is.

Is it callouts in other windows, or does it happen in the main window?

I've just experienced it in the main window.

@feedhopper @valentine195 , I seem to have worked out the problem. I discovered that the callout wasn't working because I capitalized the "admonition type". Looks like this needs to be lower case for the colour and icon to work properly.

This was fixed in #295


Check the most recent serialization changes as they may increase the build time

There were 6 unit tests added for bootstrapping serialization, check if those are the reason.


Potential security issue

Hello 👋
I run a security community that finds and fixes vulnerabilities in OSS. A researcher (@ablgh) has found a potential issue, which I would be eager to share with you.
Could you add a SECURITY.md file with an e-mail address for me to send further details to? GitHub recommends a security policy to ensure issues are responsibly disclosed, and it would help direct researchers in the future.
Looking forward to hearing from you 👍
(cc @huntr-helper)

It would be great (though probably overkill) if you could provide us with your public pgp key that way we can safely disclose information to you even over insecure channels such as email.
A question for @JamieSlome, if I where to find an issue and solve it how can I contribute the fix safely? Lets assume the fix makes this issue obvious. Do we coordinate putting up the pull request and merging? Should I send a pgp encrypted patch file? Maybe work on a private fork? Feel free to drop a link to a good resource on this instead of writing up a comment.

Hello and Thanks for reaching out @JamieSlome, I'd be very grateful to hear about the issue you discovered. @dvdsk has shared something with me, I'm curious about whether you two found the same issue. Feel free to drop an email to<EMAIL_ADDRESS>(should be able to use this GPG key, never tried GPG mailing before: https://keys.openpgp.org/vks/v1/by-fingerprint/CDB715C08F9370134E030AE1D4D95121C054CFBC), I will create a security policy ASAP as well.

@szabodanika - thanks for your response 👍
I sent over the first of two reports to the e-mail address you mentioned above :)


Is the authors' list available through the REST API?

For example, in the web version of the Catalog we can see the authors of the study GCST000854:
Perlis RH, Huang J, Purcell S, Fava M, Rush AJ, Sullivan PF, Hamilton SP, McMahon FJ,
Schulze TG, Potash JB, Zandi PP, Willour VL, Penninx BW, Boomsma DI, Vogelzangs N,
Middeldorp CM, Rietschel M, Nöthen M, Cichon S, Gurling H, Bass N, McQuillin A,
Hamshere M, Wellcome Trust Case Control Consortium Bipolar Disorder Group,
Craddock N, Sklar P, Smoller JW

Is this information available through the REST API? Requesting https://www.ebi.ac.uk/gwas/rest/api/studies/GCST000854 does not seem to return this field but only the first author.

Please find more details about the status of this issue here:
https://www.ebi.ac.uk/panda/jira/browse/GOCI-2445


Add .nvmrc file

This PR adds .nvmrc for those who use nvm. This will automatically change your node version to the one required by this project when you change directory to the root of the project.
Checklist

[ ] Did you add a JIRA issue in a commit message or as part of the branch name?
[ ] Did you add new unit tests?
[ ] Did you add new integration tests?
[ ] If this is a regression, did you write a test to catch this in the future?

Run integration tests


typeerror undefined is not a function (evaluating 'object.assign')

broswer: safari
os: ios 8.3

This is not the place to ask support questions.


Update Email Text

Attaching word doc with minor changes:     Update email text to include add URL for OA version option. (Current text is "follow the instructions to provide your accepted manuscript or obtain a waiver of the policy.")
Nudge email text_20210208.docx

I only noticed one other change in the document apart from the one mentioned above, and I've made both of those changes.


Add reference count integration tests, comparing the CPython implementation

To help locate and fix reference leaks, add Python tests for simple

[x] Basic function calls (#120)
[ ] Keyword argument function calls
[ ] Method calls
[ ] Classmethod calls
[ ] Get attr and setattr opcodes
[ ] Binary operations do some basic math
[ ] List, tuple, set and dictionary building
[ ] Load, store and delete globals
[ ] Load, store and delete names
[ ] Load, store and delete fast variables (frame vars)
[ ] Jumps and loops
[ ] Branches
[ ] Building functions
[ ] Building classes

This is a pattern of how this should work:
class FunctionCallsTestCase(unittest.TestCase):

    def setUp(self) -> None:
        pyjion.enable()

    def tearDown(self) -> None:
        pyjion.disable()
        gc.collect()

   ...

    def test_arg2(self):
        def arg2(e, f):
            a = '1'
            b = '2'
            c = '3'
            d = '4'
            return a + b + c + d + e + f

        a = '5'
        b = '6'
        pre_ref_a = sys.getrefcount(a)
        pre_ref_b = sys.getrefcount(b)
        self.assertEqual(sys.getrefcount(arg2), 2)
        self.assertEqual(arg2(a, b), '123456')
        self.assertEqual(sys.getrefcount(arg2), 2)
        self.assertEqual(sys.getrefcount(a), pre_ref_a)
        self.assertEqual(sys.getrefcount(b), pre_ref_b)

        info = pyjion.info(arg2)
        self.assertTrue(info['compiled'])

Run this with the JIT disabled and get the correct reference counts before and after the operation (in this case, calling a function with arguments)
Enable the JIT and run the test again, make sure the values match
Avoid using small integers, the None value or True/False because they are interned objects and the reference counts are unreliable. Use string constants instead

This is a pattern of how this should work:
class FunctionCallsTestCase(unittest.TestCase):

    def setUp(self) -> None:
        pyjion.enable()

    def tearDown(self) -> None:
        pyjion.disable()
        gc.collect()

   ...

    def test_arg2(self):
        def arg2(e, f):
            a = '1'
            b = '2'
            c = '3'
            d = '4'
            return a + b + c + d + e + f

        a = '5'
        b = '6'
        pre_ref_a = sys.getrefcount(a)
        pre_ref_b = sys.getrefcount(b)
        self.assertEqual(sys.getrefcount(arg2), 2)
        self.assertEqual(arg2(a, b), '123456')
        self.assertEqual(sys.getrefcount(arg2), 2)
        self.assertEqual(sys.getrefcount(a), pre_ref_a)
        self.assertEqual(sys.getrefcount(b), pre_ref_b)

        info = pyjion.info(arg2)
        self.assertTrue(info['compiled'])

Run this with the JIT disabled and get the correct reference counts before and after the operation (in this case, calling a function with arguments)
Enable the JIT and run the test again, make sure the values match
Avoid using small integers, the None value or True/False because they are interned objects and the reference counts are unreliable. Use string constants instead


Swagger PropertyNamingPolicy guidance in docs

Hi, in the documentation, this part says to add some serialize settings
https://fast-endpoints.com/docs/swagger-support#swagger-serializer-options
builder.Services.AddSwaggerDoc(serializerSettings: x => {     x.PropertyNamingPolicy = null;     x.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;     ... });
If I follow this advice, setting PropertyNamingPolicy to null causes me issues. My data models end up in swagger with PascalCase and this downstream breaks how NSwag TS client converts between data models as it ends up using the same PascalCasing which fails to map to the actual data model casing received from the server.
If I don't set "x.PropertyNamingPolicy = null;" as recommend in the documentation, what exactly breaks or how exactly does this cause issues? Basically I'm looking for some additional background on this recommendation from the documentation since its causing me issues.

x.PropertyNamingPolicy = null; is not a recommendation. it's just an example showing how to change the serializer settings if need be.
in reality you'd be using the same property naming policy in both the asp.net app and swagger/nswag doc.

nothing breaks if you don't specify a naming policy. the default camelCase policy will be used both for endpoint and swagger.
even the following mismatched policies work for model binding. haven't tried it with TS client generation though.
builder.Services.AddSwaggerDoc(serializerSettings: x => x.PropertyNamingPolicy = JsonNamingPolicy.CamelCase);

app.UseFastEndpoints(c => c.Serializer.Options.PropertyNamingPolicy = null);

Thank you, I appreciate your help to try and help me with my questions.


[chip-test] Reduce the scope of chip_sw_alert_handler_lpg_clkoff

Reduce the scope of the chip_sw_alert_lpg_clkoff test such that it will only verifies that the alert-ping mechanism is stable accross LPG clock gating events.

Remove the fatal-alert-related part from the description because this part shall be covered by "chip_sw_alert_handler_lpg_sleep_mode_alerts" test.

Update the C and *_vseq.sv files accordingly

Resolves the issue #14126.
Signed-off-by: Bilgiday Yuce<EMAIL_ADDRESS>

@cindychip, @sriyerg, I removed the last phase of the test based on our previous discussion. The current version is almost identical to the previously merged PR #14858.
The test is passing on FPGA and in DVsim. I think we can merge this PR and close the issue if nightly regression passes.

@cindychip, do we have a mechanism in SV that actually confirms the ping system is actually active while the clock to these blocks have been turned off? Does it make sense to add a check on the SV side for this, or are we comfortable not checking this at all?
@bilgiday, it will be good to see the ping system still works fine when multiple blocks are clocked-off at the same time, rather than just one block at a time. I will recommend filing an M3 issue tracking this enhancement.

@cindychip, do we have a mechanism in SV that actually confirms the ping system is actually active while the clock to these blocks have been turned off? Does it make sense to add a check on the SV side for this, or are we comfortable not checking this at all?
@bilgiday, it will be good to see the ping system still works fine when multiple blocks are clocked-off at the same time, rather than just one block at a time. I will recommend filing an M3 issue tracking this enhancement.

Makes sense, opened a new issue for the enhancement #16336
By the way, I manually checked the alert_ping_en signals. they seem to keep coming when the IP cloks are off. An example waveform for AES:
If you decide that it makes sense to add a SV check, I can add a note in #16336.

I think it is necessary to prove that ping requests actually went to the clocked-off blocks, since they go out in random order. I believe the SV side infra already exists and this would be a short 10 lines of code. Something like:
      for (int i = 0; i < IpCount; i++) begin
        // add code to wait for this block to be clocked-off.
        ...
        string alert_name = cfg.list_of_alerts[ip_fatal_alerts[i].fatal_alert_id];
        cfg.m_alert_agent_cfg[].vif.wait_alert_ping();
        // Signal the C side, we are ready to turn the clock back on.
      end

where ip_fatal_alerts is the data structure I had added for this test.

alert_handler's

Regarding @cindychip's question, it may take a while, yes, since the IDs are selected randomly.
We can accelerate this by forcing the ping timer mask, which I believe we do in DV - so I don't think this is an issue.
Regarding @sriyerg's proposal: this sounds like a good check to have, but we may need to tap different signals since the alert handler does not send out pings to IPs that are clock gated or under reset. Rather, the alert receivers inside the alert handler will bypass the handshakes and immediately acknowledge any ping request coming from the ping timer.
If we want to test this in DV we would have to listen for pulses on this internal alert handler signal here:
https://github.com/lowRISC/opentitan/blob/2bd45746474988f55021bf5078502f5f411d12c6/hw/ip_templates/alert_handler/rtl/alert_handler.sv#L138
The indices map to the same indices at the top-level.
Note that we do have an assertion inside the alert receivers that check correct the behavior of ping requests when an LPG is asserted:
https://github.com/lowRISC/opentitan/blob/2bd45746474988f55021bf5078502f5f411d12c6/hw/ip/prim/rtl/prim_alert_receiver.sv#L378-L384
So technically we could also monitor the coverage of this assertion for the channels we are interested in.

Note that we do have an assertion inside the alert receivers that checks correct the behavior of ping requests when an LPG is asserted:

Ohh, great. Thanks for the info @msfschaffner. It should be possible to tap onto those internal pings via cfg.chip_vif - that way we prove that the pings did occur when the clock was turned off in this particular test.

Thanks a lot for the info everyone. Based on our offline discussion with @cindychip and @sriyerg, I added this one to #16336 as an enhancement item for M3.


⚠ Bofrost.lu has degraded performance

In a8238f5, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 910 ms

Resolved: Bofrost.lu performance has improved in d04f527.


Is there a way to use attributes on a relationship attribute when selecting models using where?

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 SQLModel documentation, with the integrated search.
[X] I already searched in Google "How to X in SQLModel" 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 SQLModel but to Pydantic.
[X] I already checked if it is not related to SQLModel but to SQLAlchemy.

Commit to Help

[X] I commit to help with one of those options 👆

Example Code
import logging
from typing import List

from sqlmodel import (
    Field,
    Relationship,
    SQLModel,
    Session,
    create_engine,
    select,
)

logging.basicConfig(level=logging.INFO)

sqlite_url = "sqlite://"

engine = create_engine(sqlite_url)
# engine = create_engine(sqlite_url, echo=True)

class Product(SQLModel, table=True):

    id: str = Field(primary_key=True)
    product_status: int = 0

    source_status: str = Field(foreign_key="source.source_status")
    source: "Source" = Relationship(back_populates="products")

class Source(SQLModel, table=True):

    id: int = Field(primary_key=True)
    source_status: int = 0
    another_attribute: bool = False

    products: List["Product"] = Relationship(back_populates="source")

def create_db_and_tables():
    SQLModel.metadata.create_all(engine)

def add_data():

    with Session(engine) as session:
        source_1 = Source(id=1, another_attribute=True)
        source_2 = Source(id=2, source_status=2)

        product_a = Product(id=1, source=source_1)
        product_b = Product(id=2, source=source_1)
        product_c = Product(id=3, source=source_2)
        product_d = Product(id=4, source=source_2)
        product_e = Product(id=5, source=source_2)

        session.add(product_a)
        session.add(product_b)
        session.add(product_c)
        session.add(product_d)
        session.add(product_e)

        session.commit()

def get_data_bad():

    with Session(engine) as session:
        db_statement = select(Product).where(Product.source.another_attribute == False)
        result = session.exec(db_statement).all()

        return result

def get_data_bad2():

    with Session(engine) as session:
        db_statement = select(Product).where(Product.source.source_status == 2)
        result = session.exec(db_statement).all()

        return result

def get_data_good():

    with Session(engine) as session:
        db_statement = select(Product).where(Product.source_status == 2)
        result = session.exec(db_statement).all()

        return result

def main():

    create_db_and_tables()

    add_data()

    try:
        bad_data = get_data_bad()
    except AttributeError as err:
        bad_data = None
        logging.error(err)

    try:
        bad_data2 = get_data_bad2()
    except AttributeError as err:
        bad_data2 = None
        logging.error(err)

    good_data = get_data_good()

    logging.info(f"BAD DATA: {bad_data}")

    logging.info(f"BAD DATA2: {bad_data2}")

    logging.info("GOOD DATA:")
    for item in good_data:
        logging.info(f"{' ' * 4}{repr(item)}")

if __name__ == "__main__":

    main()

Description
I am wondering if it is possible to use the where to select based on attributes from a relationship. The example I posted above produces the following output:
ERROR:root:Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Product.source has an attribute 'another_attribute'
ERROR:root:Neither 'InstrumentedAttribute' object nor 'Comparator' object associated with Product.source has an attribute 'source_status'
/Users/---/lib/python3.10/site-packages/sqlmodel/orm/session.py:60: SAWarning: Class SelectOfScalar will not make use of SQL compilation caching as it does not set the 'inherit_cache' attribute to ``True``.  This can have significant performance implications including some performance degradations in comparison to prior SQLAlchemy versions.  Set this attribute to True if this object can make use of the cache key generated by the superclass.  Alternatively, this attribute may be set to False which will disable this warning. (Background on this error at: https://sqlalche.me/e/14/cprf)
  results = super().execute(
INFO:root:BAD DATA: None
INFO:root:BAD DATA2: None
INFO:root:GOOD DATA:
INFO:root:    Product(product_status=0, id='3', source_status='2')
INFO:root:    Product(product_status=0, id='4', source_status='2')
INFO:root:    Product(product_status=0, id='5', source_status='2')

Operating System
macOS
Operating System Details
No response
SQLModel Version
0.0.4
Python Version
3.10.2
Additional Context
No response

Yes, there is a way:
db_statement = select(Product).where(Product.source.has(another_attribute = False))

But if you inspect the generated SQL, you'll see that you are probably better off using a join.

@byrman I see, thanks for the help. Just confirming: this is not in the SQLModel documentation currently, right? Is that because it is actually a SQLAlchemy feature?
I ended up using multiple foreign keys to get the result I wanted (which does appear to create joins). I'm don't really have a lot of db experience, but I ended up using something like this:
Updated Example

import logging
from typing import List

from sqlmodel import (
    Field,
    Relationship,
    SQLModel,
    Session,
    create_engine,
    select,
)

logging.basicConfig(level=logging.INFO)

sqlite_url = "sqlite://"

# engine = create_engine(sqlite_url)
engine = create_engine(sqlite_url, echo=True)

class Product(SQLModel, table=True):

    id: str = Field(primary_key=True)
    product_status: int = 0

    source_status: str = Field(foreign_key="source.source_status")
    another_attribute: bool = Field(foreign_key="source.another_attribute")

    source: "Source" = Relationship(
        back_populates="products",
        sa_relationship_kwargs={
            "primaryjoin": "Product.source_status==Source.source_status",
            "lazy": "joined",
        },
    )

class Source(SQLModel, table=True):

    id: int = Field(primary_key=True)
    source_status: int = 0
    another_attribute: bool = False

    products: List["Product"] = Relationship(
        back_populates="source",
        sa_relationship_kwargs={
            "primaryjoin": "Source.source_status==Product.source_status",
            "lazy": "joined",
        },
    )

def create_db_and_tables():
    SQLModel.metadata.create_all(engine)

def add_data():

    with Session(engine) as session:
        source_1 = Source(id=1, another_attribute=True)
        source_2 = Source(id=2, source_status=2)

        product_a = Product(
            id=1,
            source_status=source_1.source_status,
            another_attribute=source_1.another_attribute,
            source=source_1,
        )
        product_b = Product(
            id=2,
            source_status=source_1.source_status,
            another_attribute=source_1.another_attribute,
            source=source_1,
        )
        product_c = Product(
            id=3,
            source_status=source_2.source_status,
            another_attribute=source_2.another_attribute,
            source=source_2,
        )
        product_d = Product(
            id=4,
            source_status=source_2.source_status,
            another_attribute=source_2.another_attribute,
            source=source_2,
        )
        product_e = Product(
            id=5,
            source_status=source_2.source_status,
            another_attribute=source_2.another_attribute,
            source=source_2,
        )

        session.add(product_a)
        session.add(product_b)
        session.add(product_c)
        session.add(product_d)
        session.add(product_e)

        session.commit()

def get_data_good3():

    with Session(engine) as session:
        db_statement = select(Product).where(Product.another_attribute == True)
        result = session.exec(db_statement).unique().all()

        return result

def main():

    create_db_and_tables()

    add_data()

    good_data3 = get_data_good3()

    logging.info("GOOD DATA3:")
    for item in good_data3:
        logging.info(f"{' ' * 4}{repr(item)}")

if __name__ == "__main__":

    main()

Not really sure if this is a good solution, but it seems to work.

Is that because it is actually a SQLAlchemy feature?

I guess so. The SQLAlchemy is extensive, there is no point in copying all that.

Not really sure if this is a good solution, but it seems to work.

You may read more abut where / join here: https://sqlmodel.tiangolo.com/tutorial/connect/read-connected-data/

So, I actually ended up using @byrman's suggestion because I was running into other issues with my multiple foreign keys approach. Just to clarify, in case someone sees this in the future, the suggestion to use Product.source.has(another_attribute=False) above is specific to my example. The name source is not special (this confused me for a moment, and your editor may not be able to give a completion for has (in VSCode, I did not get a completion for it).


bug: Sometimes, GIF images do not animate on Android.

What's happening?
Sometimes, GIF images do not animate on Android.
Reproduceable Code
None

Relevant log output
None

Device
Android Devices
TurboImage Version
1.20.0
Can you reproduce this issue in the TurboImage Example app?
Yes, I can reproduce the same issue in the Example app

hey @ng-ha

I tested multiple times in Android. Gif image always plays. That would be fantastic if you can provide the reproduce steps.
Re iOS, how do you define loading slowly? compared with Android?

https://github.com/user-attachments/assets/e79b9e5d-3239-4699-a6cc-bcd36b3ac53f

Sorry for the delayed reply! @duguyihou
Here are the details:

GIF images do not animate on Android when prefetching images in parallel while fetching them directly.

const GifScreen = () => {
  useEffect(() => {
    TurboImage.prefetch(gifData);
  });
  return (
    <FlatList
      data={gifData}
      renderItem={({ item }) => (
        <TurboImage
          style={styles.image}
          source={{ uri: item.uri }}
          indicator={{ style: 'large' }}
          format="gif"
        />
      )}
      keyExtractor={(item) => item.uri}
    />
  );
};

https://github.com/user-attachments/assets/403cddec-24d2-4547-a3b9-53e27eb8bcd7

On iOS, some GIFs load a little slowly:
The image url is https://cdn.vtf.active-app.jp/fd9de6b6-7be9-4469-abbd-c88544c25a78/btn_gif_gao_20180323.gif

https://github.com/user-attachments/assets/6a724402-7f69-4648-a4e5-22637532f112

Re Android, I can reproduce it. Will look into it.
Re iOS, I can see it does not take much time to load the gif image, see the screenshots.

This is the Charles log. gif_ios.chlz.zip
It is quite wired to me as well. Then I found Improve how Gifu uses system resources. The issue was raised by the author of Nuke. My guess is your gif image has more details so it take more system resources. Unfortunately, I don't have much knowledge about gif. I will do more investigation later.

Thank you! When I replace the TurboImage component with the React Native Image component, the GIF loads pretty quickly on iOS with no delay. So, I think the issue isn't with the GIF, if that helps

hey @ng-ha
I am not saying the gif size. Maybe it is the way Gifu render gif image. From the video, you can see the gif data is fetched by Nuke quickly and sent to GIFImageView. Then it takes around 2 seconds for Gifu to decode the image.
https://github.com/user-attachments/assets/feff075d-cc36-4e26-8077-e815b3730a61
Besides, I also tried another url (https://i.gifer.com/GDpJ.gif). I did not see any delay. Does it always happen for all your gif urls?
https://github.com/user-attachments/assets/56be2c7a-ce11-4f1a-9bb8-b1d7406fd55d

Hi @duguyihou! No, it doesn't always happen for all my gif urls. I have other GIFs that loads fast:
https://cdn.vtf.active-app.jp/fd9de6b6-7be9-4469-abbd-c88544c25a78/btn_yamanba_202407051644.gif
https://cdn.vtf.active-app.jp/fd9de6b6-7be9-4469-abbd-c88544c25a78/bg_btn_large_level_black_202004100934.gif

@ng-ha Okay, it may be Gifu's issue. I will see what I can do. Otherwise, need to find another one to replace it.

@ng-ha
Re Android, did you encounter gif image not animate issue without prefetch?

@duguyihou The GIFs work fine without prefetching. So technically, it's not critical issue. I can avoid this issue by carefully checking and prefetching. I just wanted to raise the issue as a suggestion for improving the package.


Activator templates

Some users are having problems to get started with Quill, having one activate template for each submodule could make things easier.
https://www.typesafe.com/activator/download

Good idea. I will work on a template for quill-cassandra

I've just added this ticket to the 1.0 roadmap. It's very commons to see users having problem to setup the configuration file.

A playframework template will be useful

A akka-http template would also be nice.

I can help with the playframework template.

I have created this example, what do you guys think about converting it into a template?

@gustavoamigo nice one, that's a great starter for Play users.

Also, I think the templates should be moved to https://github.com/getquill
WDYT?

@gustavoamigo +1. I imagine you have access to import it.

@getquill/maintainers
I have published an activator template. It's here
The repostitory is here. Feel free to open issues and Pull Requests.

http://www.lightbend.com/community/core-tools/activator-and-sbt


RFC: generating codeowners file based on module requirements

Description:
I'm adding this as a RFC to see if there is support for such feature, and to raise a question about where such should be located. This will allow automated generation of CODEOWNERS file to let both interested parties as well as upstream authors to get notified when a PR gets created with their library as a dependency.
In its current state this is not much more than a PoC and RFC, but I'm happy to help to convert it something better.
Open question points:

The current CODEOWNERS.md should be probably used as a base-template to allow manual control.
Whether this should be in requirements_all.txt generation or as a separate script should be discussed.
How/where should the mapping of dependencies and notified parties go?

Generated example:
# Home Assistant codeowners
# Automatically generated, do not modify manually!

homeassistant/components/climate/eq3btsmart.py @rytilahti
homeassistant/components/light/xiaomi_miio.py @rytilahti
homeassistant/components/vacuum/xiaomi_miio.py @rytilahti

I like the general concept. However often the upstream library dev has nothing to do with HA, so we can't just pull pypi package owner.
I'm not sure how scalable is maintaining a separate mapping.

In a lot of cases we just do upgrades of dependencies and then the upstream authors will get the notification spam. If we hit a bug then it's often more productive to create an issue in the upstream bugtracker and link that in our issue.
Generally I like the idea of a way to automatically generate it if one really wants to be in the loop. At the moment we are talking about over 300 dependencies which is a pretty long list. At first glances maintaining the mapping could become a challenge as @andrey-git already mentioned.
Please keep in mind that the CODEOWNERS files is around now for almost three months and got one commit.

Thanks for your comments @andrey-git and @fabaff, I opened this PR to have some discussion how we could improve the tooling we have, so the suggestions are not by no means finalized. What I as a developer of some platforms and alongside some backend libraries would like to see is to get notified about new issues and PRs related to those.
@andrey-git

I like the general concept. However often the upstream library dev has nothing to do with HA, so we can't just pull pypi package owner.
I'm not sure how scalable is maintaining a separate mapping.

Indeed, automatic generation from package owner data will not work for the reasons you said, so a manual mapping in some form would still be necessary.
I think having such a mapping is however better than manually maintaining the CODEOWNERS, although I agree that neither is a nice solution (and does not fulfil the case with issues).
@fabaff

In a lot of cases we just do upgrades of dependencies and then the upstream authors will get the notification spam. If we hit a bug then it's often more productive to create an issue in the upstream bugtracker and link that in our issue.

My end goal would be to find a way to get not just notified on code changes but also on recently created issues regarding to those parts (based on the very same CODEOWNERS?). This however does not seem to be so straightforward, but would exactly pave a way to notify the upstream developers about potential issues (which currently require checking the issues & PRs now and then).

Generally I like the idea of a way to automatically generate it if one really wants to be in the loop. At the moment we are talking about over 300 dependencies which is a pretty long list. At first glances maintaining the mapping could become a challenge as @andrey-git already mentioned.
Please keep in mind that the CODEOWNERS files is around now for almost three months and got one commit.

I think the CODEOWNERS is unknown to many authors, so raising awareness on that could help to increase its usage. Anyway, I created a PR to add myself to the CODEOWNERS for the code I'm currently interested in.
Thanks for your input!

As a first step I have added myself to CODEOWNERS for the requirements_all.txt file.
Now I'm added to every PR that changes requirements and I ask authors to add themselves to CODEOWNERS

We should not auto generate this. There will always be edge cases and so we will end up with an auto generator and then a black and whitelist to polish it into the correct shape. I think instead we should do it manually. That way it's easy for people to be added / removed from the loop.

I tend to agree, this could have been useful in the case CODEOWNERS would not be just limited to the group/project members. In its current state it won't do much good and can easily be managed manually.


Make RBD client directory owner/group configurable

Some versions (?) of libvirt provide a 'libvirt' group instead of
'libvirtd'. (Observed with libvirt-daemon-1.2.17-13.el7_2.2.x86_64.)
This makes the RBD client directory owner and group configurable to
allow for this.

test this please


[Nativescript] fix crash when loading a library with missing godot_nativescript_init

Copy check done by gdnative on godot_gdnative_singleton, to apply it to nativescript way of loading/excuting godot_nativescript_init function.
@karroffel btw I don't see the point of having godot_nativescript_init, godot_gdnative_init and godot_gdnative_singleton callbacks. I thought we said a single entry point callback for the library would be enough given from there we would use the gdnative API to call registering functions (like godot_pluginscript_register_language for instance)
Beside given there is a godot_nativescript_init, should I provide my own godot_pluginscript_init callback as well ? even if using godot_gdnative_init works fine for the needs of pluginscript ?
And last but no least the we get big bad errors messages every time one of those callback are not defined in the library to load, so we have to implement the three of them even if there are not used or the library feels buggy...

Well your PluginScript should be using the singleton callback.
They all have different usecases and are used and called at different times.
godot_gdnative_init is used to initialize third party libraries (which needs to happen once, before anything else gets used).
godot_nativescript_init gets called when a NativeScript gets loaded and when the editor reloads it. So it happens more than once.
godot_gdnative_singleton gets called once, but after godot_gdnative_init and is supposed to be used for things that need to live as long as the engine itself (for example the implementation of a scripting language)
In your case you don't need a godot_pluginscript_init because a PluginScript implementation needs to be loaded once at the start and then gets used from there on.

godot_gdnative_init is used to initialize third party libraries (which needs to happen once, before anything else gets used).

Not sure what you mean, it seems to me that this method is called numerous time (to the point the script language server crashed because I registered my language too many times !)

godot_gdnative_singleton gets called once, but after godot_gdnative_init and is supposed to be used for things that need to live as long as the engine itself (for example the implementation of a scripting language)

Trouble is this function doesn't take a godot_gdnative_init_options *options parameter, which means we cannot interact with godot from it...

Not sure what you mean, it seems to me that this method is called numerous time

That's weird, that might need fixing then.

Trouble is this function doesn't take a godot_gdnative_init_options *options parameter, which means we cannot interact with godot from it...

You can. Save the options in a variable that stays visible over the entire load time of the library, then you can use it from anywhere.
It's meant to be for initializing the library, so "copying the API struct pointer" counts under initialization.

That's weird, that might need fixing then.

When starting with lldb, it seems I go 2 times through godot_gdnative_init
(lldb) b godot_gdnative_init
b Breakpoint 1: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
(lldb) b godot_gdnative_singleton
Breakpoint 2: no locations (pending).
WARNING:  Unable to resolve breakpoint to any actual locations.
(lldb) r
There is a running process, kill it and restart?: [Y/n] y
Process 4024 exited with status = 9 (0x00000009)
Process 4218 launched: '../../godot/bin/godot.x11.tools.64' (x86_64)
OpenGL ES 3.0 Renderer: Mesa DRI Intel(R) HD Graphics 520 (Skylake GT2)
GLES3: max ubo light: 409
GLES3: max ubo reflections: 455, ubo size: 144
Process 4218 stopped
* thread #1: tid = 4218, 0x00007fffe92cbaaf libpythonscript.so`godot_gdnative_init(options=0x00007fffffffc660) + 31 at pythonscript.c:61, name = 'godot.x11.tools', stop reason = breakpoint 1.1
    frame #0: 0x00007fffe92cbaaf libpythonscript.so`godot_gdnative_init(options=0x00007fffffffc660) + 31 at pythonscript.c:61
   58  	static godot_pluginscript_language_desc desc;
   59
   60  	void godot_gdnative_init(godot_gdnative_init_options *options) {
-> 61  		GDNATIVE_API_INIT(options);
   62
   63  		godot_string msg;
   64  		godot_string_new_data(&msg, "Hello world from Pythonscript !", -1);
(lldb) c
Process 4218 resuming
Hello world from Pythonscript !
Process 4218 stopped
* thread #1: tid = 4218, 0x00007fffe92cbe1b libpythonscript.so`godot_gdnative_singleton + 11 at pythonscript.c:138, name = 'godot.x11.tools', stop reason = breakpoint 2.1
    frame #0: 0x00007fffe92cbe1b libpythonscript.so`godot_gdnative_singleton + 11 at pythonscript.c:138
   135 	}
   136
   137 	void godot_gdnative_singleton() {
-> 138 		godot_pluginscript_register_language(&desc);
   139 	}
   140
   141 	void godot_gdnative_terminate() {
(lldb) c
Process 4218 resuming
Registered interface Native mobile
PYTHONPATH: ['/home/emmanuel/projects/godot-python/examples/pong/plugins/pythonscript/lib/python36.zip', '/home/emmanuel/projects/godot-python/examples/pong/plugins/pythonscript/lib/python3.6', '/home/emmanuel/projects/godot-python/examples/pong/plugins/pythonscript/lib/python3.6/lib-dynload', '/home/emmanuel/.local/lib/python3.6/site-packages', '/home/emmanuel/projects/godot-python/examples/pong/plugins/pythonscript/lib/python3.6/site-packages', '/home/emmanuel/projects/godot-python/examples/pong/', '/home/emmanuel/projects/godot-python/examples/pong/lib']
SVG_GENERATION TIME: 0.287488
try to see fs update2
from file: res://ball.gd
loading scene DEFERRED
actually loading it
Process 4218 stopped
* thread #1: tid = 4218, 0x00007fffe92cbaaf libpythonscript.so`godot_gdnative_init(options=0x00007fffffffbe50) + 31 at pythonscript.c:61, name = 'godot.x11.tools', stop reason = breakpoint 1.1
    frame #0: 0x00007fffe92cbaaf libpythonscript.so`godot_gdnative_init(options=0x00007fffffffbe50) + 31 at pythonscript.c:61
   58  	static godot_pluginscript_language_desc desc;
   59
   60  	void godot_gdnative_init(godot_gdnative_init_options *options) {
-> 61  		GDNATIVE_API_INIT(options);
   62
   63  		godot_string msg;
   64  		godot_string_new_data(&msg, "Hello world from Pythonscript !", -1);
(lldb) c
Process 4218 resuming
Hello world from Pythonscript !
ERROR: init_library: No godot_nativescript_init in "res://plugins/pythonscript/libpythonscript.so" found
   At: modules/gdnative/nativescript/nativescript.cpp:1017.
from file: res://ball.png

According to the callstack, 2nd time is triggered by nativescript:
* thread #1: tid = 4530, 0x00007fffe92cbaaf libpythonscript.so`godot_gdnative_init(options=0x00007fffffffbe50) + 31 at pythonscript.c:61, name = 'godot.x11.tools', stop reason = breakpoint 1.1
  * frame #0: 0x00007fffe92cbaaf libpythonscript.so`godot_gdnative_init(options=0x00007fffffffbe50) + 31 at pythonscript.c:61
    frame #1: 0x0000000000f3c091 godot.x11.tools.64`GDNative::initialize(this=0x000000000891c0a0) + 713 at gdnative.cpp:261
    frame #2: 0x0000000000dc5007 godot.x11.tools.64`NativeScriptLanguage::init_library(this=0x0000000004598980, lib=0x00007fffffffc0d0) + 559 at nativescript.cpp:1003
    frame #3: 0x0000000000dc11e2 godot.x11.tools.64`NativeScript::set_library(this=0x000000000891bcc0, p_library=Ref<GDNativeLibrary> @ 0x00007fffffffc0d0) + 306 at nativescript.cpp:119
    frame #4: 0x0000000000ddba7b godot.x11.tools.64`MethodBind1<Ref<GDNativeLibrary> >::call(this=0x00000000045995d0, p_object=0x000000000891bcc0, p_args=0x00007fffffffc1a0, p_arg_count=1, r_error=0x00007fffffffc160) + 589 at method_bind.gen.inc:729
    frame #5: 0x0000000002381070 godot.x11.tools.64`ClassDB::set_property(p_object=0x000000000891bcc0, p_property=0x00007fffffffc520, p_value=0x00007fffffffc5e0, r_valid=0x0000000000000000) + 572 at class_db.cpp:968
    frame #6: 0x000000000238c09d godot.x11.tools.64`Object::set(this=0x000000000891bcc0, p_name=0x00007fffffffc520, p_value=0x00007fffffffc5e0, r_valid=0x0000000000000000) + 147 at object.cpp:421
    frame #7: 0x0000000001eecfc3 godot.x11.tools.64`ResourceInteractiveLoaderText::poll(this=0x0000000008918cf0) + 10599 at scene_format_text.cpp:341
    frame #8: 0x00000000024a8dd6 godot.x11.tools.64`ResourceFormatLoader::load(this=0x00007fffffffc6e0, p_path=0x00007fffffffc800, p_original_path=0x00007fffffffc7d0, r_error=0x0000000000000000) + 198 at resource_loader.cpp:136
    frame #9: 0x0000000000dc6079 godot.x11.tools.64`ResourceFormatLoaderNativeScript::load(this=0x0000000004599e80, p_path=0x00007fffffffc800, p_original_path=0x00007fffffffc7d0, r_error=0x0000000000000000) + 87 at nativescript.cpp:1181
    frame #10: 0x00000000024a8fdf godot.x11.tools.64`ResourceLoader::_load(p_path=0x00007fffffffc800, p_original_path=0x00007fffffffc7d0, p_type_hint=0x00007fffffffca20, p_no_cache=false, r_error=0x0000000000000000) + 243 at resource_loader.cpp:171
    frame #11: 0x00000000024a94bc godot.x11.tools.64`ResourceLoader::load(p_path=0x00007fffffffca10, p_type_hint=0x00007fffffffca20, p_no_cache=false, r_error=0x0000000000000000) + 712 at resource_loader.cpp:215
    frame #12: 0x0000000001eeaf9b godot.x11.tools.64`ResourceInteractiveLoaderText::poll(this=0x00000000089188b0) + 2367 at scene_format_text.cpp:175
    frame #13: 0x00000000024a8dd6 godot.x11.tools.64`ResourceFormatLoader::load(this=0x00000000045708d0, p_path=0x00007fffffffcda0, p_original_path=0x00007fffffffcd70, r_error=0x00007fffffffce50) + 198 at resource_loader.cpp:136
    frame #14: 0x00000000024a8fdf godot.x11.tools.64`ResourceLoader::_load(p_path=0x00007fffffffcda0, p_original_path=0x00007fffffffcd70, p_type_hint=0x00007fffffffcef0, p_no_cache=true, r_error=0x00007fffffffce50) + 243 at resource_loader.cpp:171
    frame #15: 0x00000000024a94bc godot.x11.tools.64`ResourceLoader::load(p_path=0x00007fffffffce80, p_type_hint=0x00007fffffffcef0, p_no_cache=true, r_error=0x00007fffffffce50) + 712 at resource_loader.cpp:215
    frame #16: 0x00000000013720e3 godot.x11.tools.64`EditorNode::load_scene(this=0x000000000498faf0, p_scene=0x000000000498ff98, p_ignore_broken_deps=false, p_set_inherited=false, p_clear_errors=true, p_force_open_imported=false) + 1703 at editor_node.cpp:2965
    frame #17: 0x000000000135aaaf godot.x11.tools.64`EditorNode::_sources_changed(this=0x000000000498faf0, p_exist=false) + 165 at editor_node.cpp:467
    frame #18: 0x0000000000f21600 godot.x11.tools.64`MethodBind1<bool>::call(this=0x000000000834fc50, p_object=0x000000000498faf0, p_args=0x00007fffffffd440, p_arg_count=1, r_error=0x00007fffffffd390) + 580 at method_bind.gen.inc:729
    frame #19: 0x000000000238e8fa godot.x11.tools.64`Object::call(this=0x000000000498faf0, p_method=0x00000000089192e8, p_args=0x00007fffffffd440, p_argcount=1, r_error=0x00007fffffffd390) + 1084 at object.cpp:839
    frame #20: 0x000000000239028d godot.x11.tools.64`Object::emit_signal(this=0x0000000005c0b920, p_name=0x00007fffffffd4b0, p_args=0x00007fffffffd440, p_argcount=1) + 1497 at object.cpp:1120
    frame #21: 0x0000000002390824 godot.x11.tools.64`Object::emit_signal(this=0x0000000005c0b920, p_name=0x00007fffffffd4b0, p_arg1=0x00007fffffffd4c0, p_arg2=0x00007fffffffd4e0, p_arg3=0x00007fffffffd500, p_arg4=0x00007fffffffd520, p_arg5=0x00007fffffffd540) + 176 at object.cpp:1165
    frame #22: 0x00000000012ffad0 godot.x11.tools.64`EditorFileSystem::_notification(this=0x0000000005c0b920, p_what=17) + 1800 at editor_file_system.cpp:1019
    frame #23: 0x0000000001306da4 godot.x11.tools.64`EditorFileSystem::_notificationv(this=0x0000000005c0b920, p_notification=17, p_reversed=false) + 150 at editor_file_system.h:100
    frame #24: 0x000000000238ea8a godot.x11.tools.64`Object::notification(this=0x0000000005c0b920, p_notification=17, p_reversed=false) + 50 at object.cpp:849
    frame #25: 0x000000000192d247 godot.x11.tools.64`SceneTree::_notify_group_pause(this=0x00000000048f03e0, p_group=0x00007fffffffd760, p_notification=17) + 359 at scene_tree.cpp:911
    frame #26: 0x000000000192ae9b godot.x11.tools.64`SceneTree::idle(this=0x00000000048f03e0, p_time=0.13333334) + 511 at scene_tree.cpp:488
    frame #27: 0x0000000000d77016 godot.x11.tools.64`Main::iteration() + 1172 at main.cpp:1669
    frame #28: 0x0000000000d51f4b godot.x11.tools.64`OS_X11::run(this=0x00007fffffffd960) + 133 at os_x11.cpp:2116
    frame #29: 0x0000000000d47f59 godot.x11.tools.64`main(argc=2, argv=0x00007fffffffde38) + 211 at godot_x11.cpp:54
    frame #30: 0x00007ffff4cbc830 libc.so.6`__libc_start_main(main=(godot.x11.tools.64`main at godot_x11.cpp:38), argc=2, argv=0x00007fffffffde38, init=<unavailable>, fini=<unavailable>, rtld_fini=<unavailable>, stack_end=0x00007fffffffde28) + 240 at libc-start.c:291
    frame #31: 0x0000000000d47db9 godot.x11.tools.64`_start + 41

Make that a new issue please, this PR adds better error messages and that looks all fine, will merge once CI is done :P


Unhandled method client/registerCapability

I have used an extra lsp server named eclipse.jdt.lsp. After the initialize request, the server send a registerCapability rquest to register the completion provider. But the client responsed an "-32601 Unhandled method client/registerCapability"，How can I fix this problem? Does this languageclient support this function?  Since the server cannot register this capbility, the auto completion won't work.
# the request server sent to the client
{"jsonrpc":"2.0","id":"1","method":"client/registerCapability","params":{"registrations":[{"id":"e5afb329-a31c-43e0-abd4-57f35629bc51","method":"textDocument/completion","registerOptions":{"resolveProvider":true,"triggerCharacters":[".","@","#","*"]}}]}}

# the client responsed
{"jsonrpc":"2.0","id":"1","error":{"code":-32601,"message":"Unhandled method client/registerCapability"}}

I have solved it. The key point is to keep the monaco-langclient in consistence. I used an old version which led to this problem.


Driver: blob read / write is retried infinitely when an assert in hit in the storage service

I was testing a new storage service where I was writing a snapshot. The code hit an assert but the RetriableDocumentStorageService kept on retrying the write.
I don't think we should retry read / write when an assert is hit in the client code.
Maybe the canRetryOnError check needs to be flipped to:
export const canRetryOnError = (error: any): boolean => error?.canRetry === false;

Can you also paste an example assert error object that we were catching in this storage service? @agarwal-navin

Can you also paste an example assert error object that we were catching in this storage service? @agarwal-navin

I implemented an IDocumentStorageService whose write method had an assert that was getting hit. I don't have an example right now but I can try to repro or help you repro it.

I implemented an IDocumentStorageService whose write method had an assert that was getting hit. I don't have an example right now but I can try to repro or help you repro it.

Oh and I called snapshot on the Container which attempted to write.

Oh and I called snapshot on the Container which attempted to write.

Should we also add some kinf of max retries for errors?
1.) If we are online then we will respect this limit.
2.) If we are offline, then we can retry indefinitely?

Yes, we should. I was going to create an issue to track this. I think we should give up retrying after a certain number of retries or after certain time.


[monitoring] Export prometheus metrics

We need a way to be able to export and retrieve the metrics from various test runs

Explore managed Prom and Grafana for this.


documentation: S3C-4012 Add milestone 2 requirements

added milestone 2 definition and reorganized the docs/ folder.

Hello terrydervaux,
My role is to assist you with the merge of this
pull request. Please type @bert-e help to get information
on this process, or consult the user documentation.
Status report is not available.

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

2 peers

/approve

/help

Help page
The following options and commands are available at this time.
Options

name
description
privileged
authored

:arrow_right: bypass_incompatible_branch
Bypass the check on the source branch prefix
:star:

:arrow_right: bypass_leader_approval
Bypass the pull request leaders' approval
:star:

:arrow_right: bypass_peer_approval
Bypass the pull request peers' approval
:star:

:arrow_right: wait
Instruct Bert-E not to run until further notice.

:arrow_right: bypass_jira_check
Bypass the Jira issue check
:star:

:arrow_right: no_octopus
Prevent Wall-E from doing any octopus merge and use multiple consecutive merge instead

:arrow_right: bypass_author_approval
Bypass the pull request author's approval
:star:

:arrow_right: unanimity
Change review acceptance criteria from one reviewer at least to all reviewers

:arrow_right: create_pull_requests
Allow the creation of integration pull requests.

:arrow_right: bypass_commit_size
Bypass the check on the size of the changeset TBA
:star:

:arrow_right: bypass_build_status
Bypass the build and test status
:star:

:arrow_right: after_pull_request
Wait for the given pull request id to be merged before continuing with the current one.

:arrow_right: approve
Instruct Bert-E that the author has approved the pull request.

:writing_hand:

Commands

name
description
privileged

:arrow_right: status
Print Bert-E's current status in the pull request TBA

:arrow_right: clear
Remove all comments from Bert-E from the history TBA

:arrow_right: build
Re-start a fresh build TBA

:arrow_right: force_reset
Delete integration branches & pull requests, and restart merge process from the beginning.

:arrow_right: reset
Try to remove integration branches unless there are commits on them which do not appear on the source branch.

:arrow_right: help
Print Bert-E's manual in the pull request.

:arrow_right: retry
Re-start a fresh build TBA

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

2 peers

/reset

Reset complete
I have successfully deleted this pull request's integration branches.

Waiting for approval
The following approvals are needed before I can proceed with the merge:

the author

2 peers

/approve

In the queue
The changeset has received all authorizations and has been added to the
relevant queue(s). The queue(s) will be merged in the target development
branch(es) as soon as builds have passed.
The changeset will be merged in:

:heavy_check_mark: development/1.0

There is no action required on your side. You will be notified here once
the changeset has been merged. In the unlikely event that the changeset
fails permanently on the queue, a member of the admin team will
contact you to help resolve the matter.
IMPORTANT
Please do not attempt to modify this pull request.

Any commit you add on the source branch will trigger a new cycle after the
current queue is merged.
Any commit you add on one of the integration branches will be lost.

If you need this pull request to be removed from the queue, please contact a
member of the admin team now.
The following options are set: approve

I have successfully merged the changeset of this pull request
into targetted development branches:

:heavy_check_mark: development/1.0

Please check the status of the associated issue S3C-4012.
Goodbye terrydervaux.


[BEAM-7092] Fix invalid import of Guava coming from transitive Spark dep

This import is not available in the transitive dependencies of Spark 3
anymore, and we should not be using non-vendored guava.
R: @je-ik

Thanks @je-ik

Run Java PreCommit


Poll: What target are you running on?

As we move forward, it would be nice to drop some old platforms that add a bunch of extra technical work (ie .NET 3.5, .NET Standard 1.3). So, I'm interested in what everyone is running on?

Note: You can only select one :( Limitation of the polling system it seems

Attempting to upgrade from .NET Framework 4.8 to Core but I've run into issues discussed across several issues in .NET (but perhaps most notably in https://github.com/dotnet/runtime/issues/23750), which leaves me unable to do this upgrade. Whether or not such things is considered bias in this poll or not is up to you, but here's a vote for Framework that would otherwise have been Core (3.x).

@Trysor that's really helpful as well! Thanks for the feedback

For VSTO add-ins, I‘m targeting net472 to be fully netstandard2.0 compatible. For server-side stuff, I‘m on Net Core 3.x.
I would be interested to know for which use cases you would need anything older than net461. Just thinking that no longer supporting older .Net Frameworks might give developers an argument to finally deal with that technical debt.

That's a good question, but I want to point out that running an application targeting 4.0, but running on .NET 4.8 is fully supported, hence why I'll probably continue to support a .NET 4.0 target. It is still technical debt, ie you're opting into quirks to mimic behavior for an older runtime that may cause issues if you move to targeting .NET 4.8 or .NET Core (for example, one that comes to mind for this project is https://github.com/OfficeDev/Open-XML-SDK/issues/715).

NET5 is not selectable :)

Thanks all! Closing for now as we got the data we needed (people still use .NET 3.5 and .NET 4.0)


feat(dm-core-packages): notify users about error in the application

Perhaps look at De4rm for example how this is done?

duplicate of #283


Error while starting jasper.py

If i start jasper.py it says something but then tis error came and the programm failed

        JASPER - THE TALKING COMPUTER           *

(c) 2015 Shubhro Saha, Charlie Marsh & Jan Holthuis *

ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.front.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM front
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.rear
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.center_lfe
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.side
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround21
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround40.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround40
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround41
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround50
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround51.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround51
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.surround71.0:CARD=0'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM surround71
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM iec958
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib confmisc.c:1286:(snd_func_refer) Unable to find definition 'cards.bcm2835.pcm.iec958.0:CARD=0,AES0=4,AES1=130,AES2=0,AES3=2'
ALSA lib conf.c:4259:(_snd_config_evaluate) function snd_func_refer returned error: No such file or directory
ALSA lib conf.c:4738:(snd_config_expand) Evaluate error: No such file or directory
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM spdif
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.hdmi
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.modem
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
ALSA lib pcm.c:2239:(snd_pcm_open_noupdate) Unknown PCM cards.pcm.phoneline
Cannot connect to server socket err = No such file or directory
Cannot connect to server request channel
jack server is not running or cannot be started
WARNING:client.notifier:gmail_address or gmail_password not set in profile, Gmail notifier will not be used
Traceback (most recent call last):
File "/home/pi/jasper/jasper.py", line 148, in
app.run()
File "/home/pi/jasper/jasper.py", line 118, in run
conversation.handleForever()
File "/home/pi/jasper/client/conversation.py", line 31, in handleForever
threshold, transcribed = self.mic.passiveListen(self.persona)
File "/home/pi/jasper/client/mic.py", line 179, in passiveListen
transcribed = self.passive_stt_engine.transcribe(f)
File "/home/pi/jasper/client/stt.py", line 486, in transcribe
r = self._get_response(data)
File "/home/pi/jasper/client/stt.py", line 526, in _get_response
headers = {'authorization': 'Bearer %s' % self.token,
File "/home/pi/jasper/client/stt.py", line 481, in token
self._token = r.json()['access_token']
KeyError: 'access_token'
I think theres a problem with the alsa but there isn't a alsa-base.conf in the modprobe.d directory and the command alsa force-reload doesn't work because alsa:command not found
Can you help me please

No, you didn't specify the access_token for the stt engine in your profile yml.

ok i will fix that but wats that with the alsa

That's normal.

i want install jasper in Banana Pi help me Thank you


Updated copyright to include the current year

Reported by Rido in our team, I thought I'd go ahead and just submit a pull request for this string change.

Hi @jmatthiesen, I'm your friendly neighborhood Microsoft Pull Request Bot (You can call me MSBOT). Thanks for your contribution!

It looks like you're a Microsoft contributor (Jordan Matthiesen). If you're full-time, we DON'T require a Contribution License Agreement. If you are a vendor, please DO sign the electronic Contribution License Agreement. It will take 2 minutes and there's no faxing! https://cla.microsoft.com.

TTYL, MSBOT;

:+1:  Looks good :)

:+1:

:+1:


Question: Select2

Laravel Version: 5.5
Voyager Version:
PHP Version: 7.1
Database Driver & Version: PSQL

Description:
I would like to know if the Voyager with integration with Select2 manual without being of form.

Sorry, but I don't understand the question.

I need to use Select2 in a form. Does the voyager have any resources for this, or do I need to use this feature externally and install Select2 (select2.org) manually?

When you say "in a form", are you referring to a form within Voyager (for use with Voyager's BREAD functionality), or something you are creating for your site (i.e. a "contact us" form)?

I'm referring to using it within a BREAD functionality. Using relationships for this. With other tests of other CRUD's was easy to implement, however with Voyager I'm having difficulties. Such a robust system not having such functionality is almost a sin.

I have seen that there is an option in creating BREAD of Select Multiple, but in the documentation there is nothing about it or how to use it. Has anyone had any experience with Select multiple to share?

It is basically the same as Dropdown


Manage FW updates via HomeKit

As mentioned in the README:

"virtual" switch to enable/disable permit_join (and also have it automatically turn off when a timer elapses or a device is paired).
When update_available is set to true, provide a switch service to start the FW update via HomeKit (and maybe see if it is possible to provide feedback on the progress somehow). I might add this to each device individually, or maybe generate one virtual device that acts as a binary sensor (so that you can also get some kind of notification when an update is available) and add multiple switches to that.

Given that both these features are currently also available in the (experimental) zigbee2mqtt frontend and I haven't been able to come up with a decent way of managing the FW updates via standard HomeKit services/characteristics, I've decided to close this issue at this moment.
More info on the front-end is available on the zigbee2mqtt website.


useImportType breaks class based dependency injection in Nest.JS

Environment information
CLI:
  Version:                      1.6.0
  Color support:                true

Platform:
  CPU Architecture:             aarch64
  OS:                           macos

Environment:
  BIOME_LOG_DIR:                unset
  NO_COLOR:                     unset
  TERM:                         "xterm-256color"
  JS_RUNTIME_VERSION:           "v20.6.1"
  JS_RUNTIME_NAME:              "node"
  NODE_PACKAGE_MANAGER:         "pnpm/8.15.4"

Biome Configuration:
  Status:                       Loaded successfully
  Formatter disabled:           false
  Linter disabled:              false
  Organize imports disabled:    false
  VCS disabled:                 false

Workspace:
  Open Documents:               0

Rule name
lint/style/useImportType
Playground link
https://codesandbox.io/p/devbox/peaceful-bird-glx5h2
Expected result
It should not apply import type to class types where they are used for dependency injection. The generated TS when using import type on the class import results in
exports.AppController = AppController = __decorate([
    (0, common_1.Controller)(),
    __metadata("design:paramtypes", [Function])
], AppController);

which is lacking the necessary metadata information, whereas without import type it generates
exports.AppController = AppController = __decorate([
    (0, common_1.Controller)(),
    __metadata("design:paramtypes", [app_service_1.AppService])
], AppController);

Code of Conduct

[X] I agree to follow Biome's Code of Conduct

This could be the same issue as #2038. I am waiting more details to decide if they are instances of the sane issue.

+1 on this. Was going mad trying to find out why my app suddenly broke. I LOVE this rule, it's something I've been wanting it for years but I was suddenly thrown into a NestJS project and it took me by surprise.
Would it be possible to have an option to allow classes?
As there is no option in Biome (that I can see) to disable autofix for a single rule it makes it rather difficult to work with.

Just started giving a shot to Biome and immediately noticed this. This makes it a no-go for Biome as far as I'm standing here.

useImportType is largely inspired from TypeScript Eslint's consistent-type-imports. Until their last release, TS ESlint tried to handle this specific case. However, they changed their mind, and the last version of TS ESlint now rejects this like Biome's useImportType. The main reason are:

conflicts with TypeScript's isolatedModules,
TS decorators are based on a legacy and retired proposal and are on the verge of deprecation.

The only exception they have introduced is to completely disable the rule in a file containing at least one decorator if the experimentalDecorators and emitDecoratorMetadata options are enabled.
Based on this new knowledge, I think it would be a mistake to waste time on this. I recommend that users simply disable the rule in projects that use frameworks that rely on an outdated and never-standardised syntax.


failed to delete a service due to binding IP missing.

Hi experts,
I met a dead loop which is caused by a missing binding ID.
The story is somehow(i don't really know how because I did nothing special before) one of my binding ID got lost, due to which I cannot delete the service or the bound app.
When I try to delete the APP or unbind the service with the app, it will complains about the missing binding ID
When I try to delete the service, it will complain that the service is bound to an app and the binding must be delete first.
Neither can I delete the space or the org.

How can a binding ID get lost?
How can I fix this?

Hey @yyl8815
That's quite strange.  Can you share some output from cf app and cf service.
@dieucao @zrob @utako here's a weird issue with service bindings, any idea?

@yyl8815 It would be helpful if you could provide what cc api version or cf-release you are using and if you could provide a trace of what happens when you attempt to delete the service, CF_TRACE=trace.txt cf delete-service SERVICE_NAME -f
Alternatively, if you are using at least cf-release 218 with cc api version 2.36, with the latest cf cli and you have access to an admin user you can purge the service instance from cloud controller's knowledge.
$ cf help purge-service-instance
NAME:
   purge-service-instance - Recursively remove a service instance and child objects from Cloud Foundry database without making requests to a service broker

USAGE:
   cf purge-service-instance SERVICE_INSTANCE

WARNING: This operation assumes that the service broker responsible for this service instance is no longer available or is not responding with a 200 or 410, and the service instance has been deleted, leaving orphan records in Cloud Foundry's database. All knowledge of the service instance will be removed from Cloud Foundry, including service bindings and service keys.

OPTIONS:
   -f       Force deletion without confirmation

Closing as we've receive no response


Announcement banner for breaking changes

Recently we got more often into the situation that a SIG introduced a breaking change or a change with major implications into their releases. So far we only have limited means to let people know (banner on the landing page, blog post). K8s has a feature I would like to introduce to the website as well, see an historic example here:
https://web.archive.org/web/20240104070231/https://kubernetes.io/docs/concepts/overview/
They have a large announcement banner that is active on all packages while this change is in flux. Of course we should use something like this sparsely, but it could help to put those changes right in front of people.
cc @mx-psi, @jpkrohling, @austinlparker
@chalin, WDYT?

This change is under a feature gate on the Collector, which is still at alpha. Should we post the announcement after we promote to beta? (i.e. enabled by default)

This change is under a feature gate on the Collector, which is still at alpha. Should we post the announcement after we promote to beta? (i.e. enabled by default)

What I have posted above is a feature the website/docs do not have as of today, so we might not have it for the collector feature at all. But, independent of that, what you can do: create a blog post that outlines that change + an expected timeline, we put this in when it's in Beta and we add a banner to the website. IF we implement the feature discussed here we can see how we add this in additionally.

Okay, makes total sense! :) I think it is a good way of disseminating this knowledge and we should implement this feature

Sure, makes sense. How would you see "active on all packages" manifested on our website? Do you mean that all Collector-section pages would have a banner relevant for the Collector?

I meant "active on all pages", it's a typo, but we might consider to have it only on collector pages if it is only affecting the collector, etc. I wonder how k8s website is implementing that.


Override default user agent with project-specific value

Default user agent: Go-http-client/1.1.
Override with project-specific value similar to what the atc0005/check-vmware project is doing.
Something like: send2teams/v0.7.0

Note to self: This might require updates to the atc0005/go-teams-notify project to implement.

See https://github.com/atc0005/go-teams-notify/issues/134.
Implementing support there first will make this much easier to accomplish.


How to set a directional sound source?

❓ Questions and Help
Thanks for your excellent work! I set my sound source as shown below,
source=np.array([0.0,4.0,1.7])  audio_sensor = sim.get_agent(0)._sensors["audio_sensor"] audio_sensor.setAudioSourceTransform(source)  audio_sensor.setAudioMaterialsJSON("data/mp3d_material_config.json")
I wonder whether the sound source is omnidirectional or directional? If it is directional, how to change the direction of the sound source?Thanks for your answer!

Hey @szhangjc,
I believe all sources are current omni-directional.
Please check out the docs here: https://github.com/facebookresearch/habitat-sim/blob/main/docs/AUDIO.md

I got it, thanks for your answer.


Add support for broken bank connect warn

We eventually need to add support for warn violations due to broken "530" bank connections. That said, this is an uncommon violation and we don't support managing either personal bank connections in Expensify, and same goes for centrally-managed cards. So for the time being this is a placeholder issue, and we'll circle back to supporting this violation as soon as bank connections can successfully be managed in NewDot.
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0196750606d1382d6a
Upwork Job ID:<PHONE_NUMBER>589622784
Last Price Increase: 2024-03-26

This is a tracking issue for now and won't be prioritized for some time, so I'm only assigning myself.

Same

@joekaufmanexpensify Do you potentially want to take this one on? I think it's related to the project that you're working on. The gist is that we need to add support for two very specific violations, which are only triggered when a third-party card feed breaks.

They were out of scope for the original violations doc.

Cool cool, so the first one is a soft warn violation triggered when the card feed is broken that we can't auto-match cash/card transactions?
For the second one, is that different from what we added in this project?

Oh yes, sorry for the confusion. I was just referring to the first violation, not the second one.

We should probably start prioritizing this violation as soon as we get third-party feeds in play.

Agreed, that makes sense to me. Happy to take this one. In fact, I kinda wonder if we shouldn't just fold this into the direct connections design doc, which I'm writing right now. I imagine it would be super quick to spin up a mock for this, and the doc already includes resolving broken connections, and this is directly related to that.

Researching this. Relevant thread here.

Existing relevant figma file is here.

Next steps for me:

Put together updated mocks.
Run a mini pre-design to outline how this violation will work.
Add to the Third-party workspace card feeds V2 (direct feeds) design doc (which is currently in detailed drafting).

Predesign for this is live!


Speedup Xcbeautify by applying frequency-based pattern matching.

The current implementation of xcbeautify performs regex checking for each line of the xcodebuild output.
Due to the big amount of possible regexes, each line on average is checked for about N/2 times. which is a lot
Suggested implementation holds an array of 'inner parser' and try to reuse 'line parser/matchers' using frequency based array (basically, last matcher regex will be checked first).
Due to the non-random structure of xcodebuil output, this approach allows to decrease xcbeautify running time from 160 s to 9 seconds when used on the xcodebuild output of size 240Mb

Implementation
time
Log Size

xcbeautify-main
209s
256M

xcbeautify-speedup
8s
256M

xcpretty
23s
256M

Testing approach:
time cat LOGFILE | xcbeauitify
Possible 'bugs'
If there are multiple regexes which can match same line, this approach could return different results, depending on the order of the commands, appeared in log
Xcbeautify Speed
It seems that xcbeautify is waaaay slower than xcpretty. This PR will actually make xcbeautify faster

@thii ^^

Fixed suggestions.

Sorry I just merged a PR that introduced some conflicts here. Would you be able to fix them?

Yep. Sure

Thanks @PaulTaykalo!


URL field does not accept mailto: links

My workaround is to remove the conditional at line 562 but it would be better if the regex at line 561 were modified to accept mailto:.

Apologies for the amount of time it's taken to respond to this issue.
We may have to also add in the extra HTML5 values into the regex, such as tel: as well.

I'm looking into this still, but have discovered a new strange issue, where the link information isn't being read to be displayed in the dialog inputs, however I fixed an issue that wasn't adding links when creating them.

The latest PR fixes this by removing the regex check, at least until I work out a regex that matches all the url types.


Adding rule to keep simple lambdas in one line

Adding <option name="KEEP_SIMPLE_LAMBDAS_IN_ONE_LINE" value="true" />
This is so that whenever hitting auto-indent, the styleguide doesn't change the block of code, adding a linebreak.
.subscribe(o -> {});
Runnable r = () -> {};
will stay that way
instead of:
Runnable r = () -> {\n};
.subscribe(o -> {\n});

Are both ways allowed right now?
If so, what do you think of enforcing this way (the one liner)

I think it doesn't violate Google rules. Not sure on how to "enforce" this. Android studio preferences just has a "keep when reformatting" simple lambdas in one line

@diegomedina248 @chacaa


Add missing monitor fields

Requirements for Contributing to this repository

Fill out the template below. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
The pull request must only fix one issue, or add one feature, at the time.
The pull request must update the test suite to demonstrate the changed functionality.
After you create the pull request, all status checks must be pass before a maintainer reviews your contribution. For more details, please see CONTRIBUTING.

What does this PR do?

Description of the Change
This pull request resolves the #209
Alternate Designs
CFN property doesn't appear to get mapped to the DD groupby_simple_monitor option.
I add the RestrictedRoles, NewGroupDelay, MinFailureDuration, RenotifyStatuses and RenotifyOccurrences fields to model and map the fields to APIs
Possible Drawbacks
n/a
Verification Process
Verified it on local and cfn
Additional Notes
n/a
Release Notes
Fix missing fields monitors issue
Review checklist (to be filled by reviewers)

[ ] Feature or bug fix MUST have appropriate tests (unit, integration, etc...)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have one changelog/ label attached. If applicable it should have the backward-incompatible label attached.
[ ] PR should not have do-not-merge/ label attached.
[ ] If Applicable, issue must have kind/ and severity/ labels attached at least.

Thanks for the PR! Closing in favor of https://github.com/DataDog/datadog-cloudformation-resources/pull/216 to run CI and some small changes


A bug seems to be wrongly included in the email, [bugbot] Bugs with a ni on a bug marked as affecting a released version without activity for the last 1 week

https://bugzilla.mozilla.org/show_bug.cgi?id=1770200 started to show up in the emails, entitled "[bugbot] Bugs with a ni on a bug marked as affecting a released version without activity for the last 1 week" in the past few weeks.
It looks included by accident to me, because the bug is not marked as affecting a released version.

Yep, definitely looks like a bug!

This is expected because the needinfo was set by a user who is currently a director (see the wiki page). However, the email title is confusing.

We will change the title of the email to mention "bugs tracked by release managers", and remove needinfos from director level, so we match the behavior of https://bugzilla.mozilla.org/page.cgi?id=whats_next.html.


eventing_kafka_broker adjustment script updated

Adjustment and setup environment scripts has been updated for eventing-kafka-broker (main & release-1.16) of knative-extensions to add it in the ppc64le-cloud knative upstream prow CI for testing on ppc64le.
Requirement of this PR arises referring dropped-off upstream knative CI job PR: drop s390x/ppc ci jobs #497

/lgtm

/approved

/approve


implement unix socket cleanup

Closes #10969
Carry of #11085

thans so mcuh @cpuguy83

This is not quite so straight-forward.
Since the api server need to be told to shutdown in order to cleanup, and seemingly the only way to tell it to shutdown is via an eng.OnShutdown handler.
This seems ok, but the handler for this is getting registered before the daemon shutdown handlers (really it's a race, but probably api will always get in first)... and for some reason the daemon shutdown handlers aren't running fully when the api is shutdown first.
We actually end up with the following log events:
INFO[1916] Received signal 'interrupt', starting shutdown of docker...
DEBU[1916] starting clean shutdown of all containers...
accept unix /var/run/docker.sock: use of closed network connection
INFO[1916] -job serveapi(unix:///var/run/docker.sock) = ERR (1)
ERRO[1916] ServeAPI error: accept unix /var/run/docker.sock: use of closed network connection

@cpuguy83 rebase please

I'm going to close this because it's broken and I don't currently see a way to fix it.

Ok, I had to add a wait for the engine shutdown to make sure the daemon doesn't exit after the api server is closed.

ping @estesp

Actually the engine shutdown is still racey here.
Closing again while I mess around with this.

Accidently forced pushed while the old PR was closed, new one is #11525


⚠ Bofrost.lu has degraded performance

In 4c068ca, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1122 ms

Resolved: Bofrost.lu performance has improved in 3c24ea4.


fix(ios): v7 swipe to go back gestures with react navigation

Summary
Resolves - https://github.com/callstack/react-native-pager-view/issues/709

Adds swipe-to-go-back from the edge and fullScreenGestureEnabled support in scroll view implementation of pager view.
This has a much cleaner approach thanks to the new scroll view based implementation, we don't need an extra pan gesture.

Test Plan
Test example and fabric example with native stack and fullScreenGestureEnabled

What's required for testing (prerequisites)?
Run yarn install and pod install in example and fabric example
What are the steps to reproduce (after prerequisites)?

Test if swipe to go back gesture from edge works
Add fullScreenGestureEnabled and test if full screen swipe from the first page pops the screen.

Compatibility

OS
Implemented

iOS
✅

Android
❌

Checklist

[x] I have tested this on a device and a simulator
[ ] I added the documentation in README.md
[ ] I updated the typed files (TS and Flow)

open to changing the name of RNCPageScrollView since it's not an actual React Native Component. Couldn't decide so kept this for now 😅. Maybe just PagerViewScrollView?


downloaded files have no extension and shasum instead of name

at https://depot.galaxyproject.org/software/ if you download some package e.g. https://depot.galaxyproject.org/software/30e84ac4b31d40b66293f7b1221331c5a50561a39d580d85004d9c1fff991751
you will get a file named 30e84ac4b31d40b66293f7b1221331c5a50561a39d580d85004d9c1fff991751 that does not have any extension
This is quite confusing.

ahh yes. I haven't come up with any solutions to this yet, so I'll be happy to hear opinions.

should we construct a whole filename, based on package name + version + architecture + archive type (new column)?
should we just annotate archive type?

Let me know your thoughts on this :)


add empty ddoc stubs for doc generation hooks to public methods

The goal here is to just indicate that these are meant to be public. I didn't write anything, but this way the doc generators know to at least list them as available.

BTW if anyone is interested, I ran it through my doc generator too so there's a bit of online browseability:
http://dpldocs.info/experimental-docs/libasync.html

Nice, will look into writing some docs


const pointer esp_netif_create_wifi (IDFGH-8500)

Is your feature request related to a problem?
The custom wifi init function esp_netif_create_wifi currently takes two parameters (wifi_if and esp_netif_config). The second parameter is not declared as a const pointer
Describe the solution you'd like.
I would like the interface to be changed to:
esp_netif_t* esp_netif_create_wifi(wifi_interface_t wifi_if, const esp_netif_inherent_config_t *esp_netif_config)
Describe alternatives you've considered.
No response
Additional context.
No response

@NoNullptr Thanks for the suggestion on the const correctness. Yes, I agree we should and will update the API.
Also, please feel free to post the suggested change as a PR, this is just a simple update and would be accepted relatively quickly.

Fixed by https://github.com/espressif/esp-idf/commit/d038a35e9667d82b018cc1498b4cc1a6f2901cc7


Add support for the property aws.max_retries for AWS Ruby SDK

This covers part of the issue described in #19
What
This PR adds the property aws.max_retries to the spec and the cpi.json
template. This option is passed to the AWS Ruby SDK library:
http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/Core/Configuration.html#max_retries-instance_method
and it allows specify the maximum number of times AWS service errors (500) and
throttling errors should be retried. There is an exponential backoff in
between retries, so the more retries the longer it can take to fail.
Increasing this number would mitigate the errors caused Request Rate Limit from AWS.
Context
The option aws.max_retries is already implemented in the CPI ruby code, and passed to the ruby library.
In this PR:

We add the property in the job spec. Default value is 2, as defined in the code
We add it to the template for cpi.json

Notes

There will be other PR to https://github.com/cloudfoundry/docs-bosh to document this option.

Note, it is possible that using this option makes unnecessary to retry at the CPI level, implemented here, here or here.
But analyse if it is required and remove that logic is out of the scope of this PR. Also, I consider that this PR should be merged and live for a while, and the users warned about the change of behaviour.

In this implementation I always add the option max_retries to the cpi.json.
We can add logic to only add the option if it is defined in the manifest, but that will make the cpi.json.erb slightly more complex.

Also, one question: In case this PR is accepted, how long will it take to be released?
Thank you.

I have just noticed that there is a test cpi.json.erb is able to render the erb given most basic manifest properties in src/bosh_aws_cpi/spec/unit/bosh_release/jobs/cpi/templates/cpi.json.erb_spec.rb.
BTW, does it make sense that the test for the template of the job of the bosh-release is inside of the code of a package used by that job?

Hello, any update about this PR?

It would be great to see this merged as it's causing frequent problems for us.

:+1:


lorri init

Set up a project to work with lorri and direnv.
For now that means:

Make sure shell.nix exists and is a valid shell file
.envrc

If the files don’t exist, we simply create them and populate them with our setup code. If they exist, we don’t touch them and print an informational message, like:

“shell.nix exists, skipping. Make sure it is of a form that works with nix-shell.”
“.envrc exists, skipping. Please add eval "$(lorri direnv)" to it to set up lorri support.”

In the case of shell.nix we could also try to find out whether it is a correct shell file.

@rvl writes:

For lazy users such as myself, could there be a subcommand which writes the stock .envrc, does a build of shell.nix, and provides further instructions? For example:
~/myproject $ lorri register
An .envrc for myproject does not exist, writing it now.
Building shell.nix...
these paths will be fetched (0.04 MiB download, 0.20 MiB unpacked):
  /nix/store/4vv9dxgcjad248mwwfd2j80kss2cxxw8-hello-2.10
copying path '/nix/store/4vv9dxgcjad248mwwfd2j80kss2cxxw8-hello-2.10' from 'https://cache.nixos.org'...
The shell has been built and saved in ~/.cache/lorri/myproject.
Run `lorri watch' in another terminal to keep it updated.
If you have enabled direnv, then you should be ready to go!
direnv: loading .envrc
direnv: export +IN_NIX_SHELL ....
~/myproject $


docs(shgw): Provide docs on default TLS ciphers in API Management

#assign-reviewer: @dlepow

#assign-reviewer: @ferantoMSFT

@dlepow
Can you review the proposed changes?
When the changes are ready for publication, add a #sign-off comment to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Sometimes Nuxt won't load compiled files

Hello..
I have a weird problem.. Sometimes my static generated site is not loaded properly and it will stuck before showing content.. Only navigation is loaded. It looks like it is missing some files.. but after reload it works properly. It happens like once or twice a day... So I don't have any particular situation to find out what is the problem.
in config I have:
ssr: true,
target: 'static',
generate: {
    fallback: true
},
loading: false

nothin fancy.

Web is hosted on AWS Amplify with this conf.

Thanks a lot

is it possible that after new release are old paths saved in cache so till reaload browser won't load new ones?


Reduce queries when expiring old cache entries

When removing expired entries, this https://github.com/rails/solid_cache/blob/9be6755a2d8c8fd1c294912e1fbf6bbb69410c61/app/models/solid_cache/entry.rb#L63-L67 and this https://github.com/rails/solid_cache/blob/9be6755a2d8c8fd1c294912e1fbf6bbb69410c61/app/models/solid_cache/entry.rb#L137-L148 perform 2 SQL queries - one to get ids, another - to delete by ids. There is also a sampling https://github.com/rails/solid_cache/blob/9be6755a2d8c8fd1c294912e1fbf6bbb69410c61/app/models/solid_cache/entry.rb#L146 on which items from the first n satisfying to delete. Is this sampling really needed? If no, then we can easily rewrite it to perform only 1 SQL query. Even if yes, we can do something like order by random(), but that is not very portable.
Can help with PR.

You don't want to add an extra index (on created_at)? There is an index on byte_size (which is on the low cardinality column) and probably useless because of this.


[Sandbox] Fail to remove links / nodes in the live demo example

Describe the bug
The sandbox example breaks when the user tries to remove an item by using the - links found in the editable Graph Data section. This applies to both nodes or links.
To Reproduce
Steps to reproduce the behavior:

Go to the sandbox page
Expand the links or nodes property in the Graph Data section of the page
Click the - button next to the link / node that you wish to remove
See error

Expected behavior
The selected node or link should dissappear from the editable data view and the graph shall be updated accordingly.
Additional context
When trying to remove a link, the following error is displayed at the developer's console:
react-dom.production.min.js?f6dd:188 TypeError: Cannot read property 'source' of null
    at eval (graph.helper.js?28ec:219)
    at Array.find (<anonymous>)
    at _loop (graph.helper.js?28ec:219)
    at _validateGraphData (graph.helper.js?28ec:216)
    at Object.initializeGraphState (graph.helper.js?28ec:324)
    at Graph.componentWillReceiveProps (Graph.jsx?fe1a:436)
    at sg (react-dom.production.min.js?f6dd:150)
    at Sg (react-dom.production.min.js?f6dd:178)
    at yh (react-dom.production.min.js?f6dd:202)
    at zh (react-dom.production.min.js?f6dd:203)

If the item you're trying to delete is a node, then the following error is shown instead:
react-dom.production.min.js?f6dd:188 TypeError: Cannot read property 'x' of null
    at eval (Sandbox.jsx?dd0e:238)
    at Array.map (<anonymous>)
    at Sandbox.decorateGraphNodesWithInitialPositioning (Sandbox.jsx?dd0e:236)
    at Sandbox.render (Sandbox.jsx?dd0e:314)
    at Lg (react-dom.production.min.js?f6dd:167)
    at Sg (react-dom.production.min.js?f6dd:180)
    at yh (react-dom.production.min.js?f6dd:202)
    at zh (react-dom.production.min.js?f6dd:203)
    at Wh (react-dom.production.min.js?f6dd:212)
    at Zh (react-dom.production.min.js?f6dd:211)

Now that I'm reading the description of the issue with more attention, this is not actually a bug. If you remove a node you must ensure that the respective links, that refer that node are also removed. But removing a link tough, should not fail... even if some node becomes orphan afaik, the graph should not break.
I'll look into it with more detail, can't promise that I'm come out with a solution in short notice tough.

Actually, I think I got it! Somehow react-editable-json-tree is giving us null instead of completely removing the element from our data. Is this expected behavior of your library @oxyno-zeta?

Hello @danielcaldas ,
Yes the remove button first remove the object and put null at the same place. After, you can remove the null item.
This mecanism was done to allow changing from object to another type like Array, string, boolean, ... Otherwise, no type change was possible :).
I'm sorry that this breaks your demo.
Tell me if you have any questions.

All good! Your docs are awesome @oxyno-zeta! I'll be using onBeforeRemoveGraphData and onFullyUpdate functions to handle this properly in our sandbox.

Thanks :)
Maybe the onDeltaUpdate (https://github.com/oxyno-zeta/react-editable-json-tree#ondeltaupdate) is better because there is a delta object that can help you to detect null objects and where are they no ?

Fixed with #216


blosc?

I may have asked this before....
numcodecs from zarr may be interested in depending on cramjam to simplify its build process ( https://github.com/zarr-developers/numcodecs/issues/464 ). The default and most common codecs used by zarr for new datasets is blosc v1. Blosc v2 also exists and is able to read v1. Is there any interest in adding blosc (v1 or v2) to cramjam? There seems to be quite a few crates in the area.

I have https://github.com/milesgranger/pyrus-cramjam/pull/107 which grew into covering a lot of the python-blosc2 API; nothing specific blocking it from going forward, just ran out of time.

There seems to be quite a few crates in the area

I assume you're talking about blosc not blosc2; while I'd much prefer blosc2 straight away. I only see one on crates.io and it's the sys crate. Meanwhile I've made the existing PR from my own implementation here https://github.com/milesgranger/blosc2-rs
Again, I have no hesitancy to add blosc support, only a lack of time for free work these days (outside of expected maintenance). If there were funding available, I'd be happy to adjust the priority of it; otherwise it remains something I'm interested in completing as free-time presents itself over the next year.

Thanks for the thoughts. I obviously don't have any sources of funding :|
cc @joshmoore

I assume you're talking about blosc not blosc2

numcodecs does NOT yet support blosc 2, so now is a great time to think about how best to offer it since it seems to have better performance in some cases.

cc @joshmoore

Feel free to get in touch, @milesgranger, and/or take a look at https://github.com/zarr-developers/community/issues/64

numcodecs does NOT yet support blosc 2

though there's of course https://github.com/zarr-developers/numcodecs/pull/463
cc: @FrancescAlted

I would highly encourage all parties to move to Blosc2 unless you are willing to commit resources to Blosc1 maintenance.

First release having experimental blosc2 support (cramjam.experimental.blosc2) is v2.8.4-rc1
Closing this, but feedback is very welcome in separate issues.
xref https://github.com/milesgranger/cramjam/issues/159