Bump text Upper Bounds

text v2.0 has switched some argument orders & now uses a Word8 array
internally instead of Word16.

Hi, this is my attempt at bumping the version of text. I haven't really worked with Data.Text.Array before so would appreciate a review based on the copyI changes: https://hackage.haskell.org/package/text-2.0.1/changelog
Tested w/ GHC 9.2, both test suites passed:
$ cabal-<IP_ADDRESS> new-test --disable-documentation -w ghc-9.2.3
Build profile: -w ghc-9.2.3 -O1
In order, the following will be built (use -v for more details):
 - ip-1.7.5 (test:spec) (first run)
 - ip-1.7.5 (test:test) (first run)
Preprocessing test suite 'spec' for ip-1.7.5..
Preprocessing test suite 'test' for ip-1.7.5..
Building test suite 'spec' for ip-1.7.5..
Building test suite 'test' for ip-1.7.5..
Running 1 test suites...
Test suite spec: RUNNING...
Test suite spec: PASS
Test suite logged to:
/home/prikhi/code/github/haskell-ip/dist-newstyle/build/x86_64-linux/ghc-9.2.3/ip-1.7.5/t/spec/test/ip-1.7.5-spec.log
1 of 1 test suites (1 of 1 test cases) passed.
Running 1 test suites...
Test suite test: RUNNING...
Test suite test: PASS
Test suite logged to:
/home/prikhi/code/github/haskell-ip/dist-newstyle/build/x86_64-linux/ghc-9.2.3/ip-1.7.5/t/test/test/ip-1.7.5-test.log
1 of 1 test suites (1 of 1 test cases) passed.

It blows my mind that this was all that had to be done to support text-2. I think you got everything right. Can you add backwards-compat stuff to continue to support text-1 as well. Probably by adding a module with this:
#ifdef text(2,0,0) // I can't remember how this is actually formatted
type Codepoint = Word8
#else
type Codepoint = Word16
#endif

and then probably just CPP around copyI to deal with the arguments being reordered. If you're not able to do this, I can add it some time.

I might have time this weekend to poke at some CPP, should be straightforward.

hmm :thinking: I threw the Codepoint type in Data.Text.Builder.Common.Compat but didn't want to export it for the tests so I threw the same code from Compat into the IPv4Text1.hs test file:
#if MIN_VERSION_text(2, 0, 0)
type Codepoint = Word8
#else
type Codepoint = Word16
#endif

but weirdly that causes a compile failure with the literal bytestring below:
$ cabal-<IP_ADDRESS> new-test --constraint 'text<2.0' -w ghc-9.2.2
[5 of 6] Compiling IPv4Text1        ( test/IPv4Text1.hs, /home/prikhi/Projects/git/haskell-ip/dist-newstyle/build/x86_64-linux/ghc-9.2.2/ip-1.7.5/t/test/build/test/test-tmp/IPv4Text1.dyn_o )

test/IPv4Text1.hs:79:53: error:
    numeric escape sequence out of range at character '2'
   |
79 |   "0001020304050607080910111213141516171819\
   |

It works fine if I move the CPP code to a separate module in tests/ but not sure if you'd just prefer I export the Compat module from the library & if you have a preferred module name/hierarchy for it.

The compile error is from a bad interaction between the C preprocessor and Haskell string literals with the continue-on-next-line backslash at the end. Try this:
"0001020304050607080910111213141516171819\ -- cpp workaround

If it doesn't take that, then do the separate module, but list it in other-modules and not exposed-modules so that it doesn't become part of the API.
That's good news that it passes in both cases. I've been avoiding the transition from text-1 to text-2 until other people started taking the plunge, and it's good to see that that seems to be happening.

Fixed! Compiles & passes tests w/ 2.0 & pre-2.0 versions of text. I reverted the lower bounds.
Space with a comment didn't work, only a trailing space did but it produces a GHC warning. Apparently double blackslashes does work so I went w/ that & left a comment about why.

If it doesn't take that, then do the separate module, but list it in other-modules and not exposed-modules so that it doesn't become part of the API.

That was my first attempt, but cabal complains that our test is importing a hidden module.

I've run the tests locally and confirmed that they pass. Looks good. Merging. And thanks for doing this! At some point 6 months down the road, I will benefit from this.

No problem! We're not using text 2.0 yet either, just tryna get ahead of future breakages :joy:


Can't import Kingfisher in SwiftUI file

Check List
Thanks for considering to open an issue. Before you submit your issue, please confirm these boxes are checked.

[x] I have read the wiki page and cheat sheet, but there is no information I need.
[x] I have searched in existing issues, but did not find a same one.
[x] I want to report a problem instead of asking a question. It'd better to use kingfisher tag in Stack Overflow to ask a question.

Issue Description
What
Kingfisher version: 5.14.1
Swift Version: Swift 5
Xcode Version: Version 11.6 (11E708)
Can't import Kingfisher in file that also import SwiftUI. Xcode throws a compile error 'View' is ambiguous for type lookup in this context. Digging into it, it looks like there's a file located at Kingfisher/Sources/General/Deprecated.swift that defines the following, which obviously clashes with SwiftUI.View:
public typealias View = KFCrossPlatformView

Reproduce
Create a new SwiftUI view, then import Kingfisher:
import SwiftUI
import Kingfisher

struct MyView: View {

    var body: some View {
        Text("Hello World")
    }
}

It is basically for back compatibility. These deprecated things will be removed in a major upgrade later. Before that, you can import the exact type you need instead of importing the whole library, such as:
import struct Kingfisher.KFImage

I use a lot of SwiftUI too, so it's inconvenient either way. Your suggestions work, but in the end, are just hacks. It's your project and you do a release when you want to. I'm just sharing my experience. I like Kingfisher and this is in no way meant to belittle that, but in my next app, I plan to use https://github.com/SDWebImage/SDWebImageSwiftUI because of this issue and because that package has more comprehensive SwiftUI integration.


only add repo once to pacman.conf

For some reason, the infinality tag is getting applied twice, and I haven't figured out why... and the 2nd time it runs the 'add repo' command, it appends it a 2nd time, so when 'update package cache' runs, it fails due to the duplicate repo.
Does everything get applied twie for you when you apply this tag?
This diff will make it idempotent.

I see the infinality stuff running twice, but I don't understand why. It has something to do with dependent roles. (If I remove the fonts role from the dependencies of every other role, it only runs once.)
Even with it running twice, I'm not sure why it only adds one of the 2 pacman lines the second time. I'm guessing the \n in the first line is screwing it up somehow.
If I can't figure out why it is running twice I'll apply this.

Removing the \n at least fixes the second problem of it breaking when it runs the second time...


Google+ on login page doesn't work

When I click on G+ login http://groovemp3.com/login I have this message;
"400. That’s an error.
Error: invalid_request
Missing required parameter: client_id
Learn more
Request Details
That’s all we know."

Carefully read new issue template and provide all requested information.


Use generic instead of Any in Depends function

First Check

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

Commit to Help

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

Example Code
from fastapi import Depends, FastAPI

app = FastAPI()

def dependency() -> int:
    return 99

@app.get("/")
def read_root(my_int: int = Depends(dependency)):
    return {"an_int": my_int}

Description
Is there any reason that Depends does not use generics to automatically type hint the injected dependency?
Currently, the  Depends function's return is typed as Any:
def Depends(  # noqa: N802
    dependency: Optional[Callable[..., Any]] = None, *, use_cache: bool = True
) -> Any:
    return params.Depends(dependency=dependency, use_cache=use_cache)

This leads to a lot of duplicate code writing the type hints when defining an endpoint, for example:
@router.post("/", response_model=FileRead)
async def upload_file(
    *,
    file: UploadFile,
    session: Session = Depends(get_session),
    user: OIDCUser = Depends(get_user),
    file_manager: AsnycBaseFileManager = Depends(get_file_manager),
) -> File:
    ...

@router.get("/content/{file_id}")
async def get_file_content(
    *,
    file_id: int,
    session: Session = Depends(get_session),
    file_manager: AsyncBaseFileManager = Depends(get_file_manager),
) -> StreamingResponse:
   ...

There is also room for human error if you write the wrong type hint, with no static type checking tools being able to prevent this.

It is possible to use Generics to properly type hint the Depends function:
T = TypeVar("T")

def Depends(  # noqa: N802
    dependency: Optional[Callable[..., T]] = None, *, use_cache: bool = True
) -> T:
    return params.Depends(dependency=dependency, use_cache=use_cache)

This leads to automatically having the correct type hints:

Is there a reason Depends explicitly returns Any, instead of an unbounded TypeVar? If not I am happy to PR this and PR documentation if necessary.
Wanted Solution
T = TypeVar("T")

def Depends(  # noqa: N802
    dependency: Optional[Callable[..., T]] = None, *, use_cache: bool = True
) -> T:
    return params.Depends(dependency=dependency, use_cache=use_cache)

Wanted Code
from fastapi import Depends, FastAPI

app = FastAPI()

def dependency() -> int:
    return 99

@app.get("/")
def read_root(my_int = Depends(dependency)):
    return {"an_int": my_int}

Alternatives
No response
Operating System
Windows
Operating System Details
No response
FastAPI Version
0.75.2
Python Version
3.9.12
Additional Context
No response

Hey there!
Technically it wouldn't be correct to do:
def Depends(dependency: Optional[Callable[..., T]] = None, ...) -> T: ...

since the function actually returns Depends class. This shouldn't matter for end-user of the package, but can be confusing.
FastAPI supports async dependencies: in this case T would be type inferred as Coroutine[Any, Any, T]. The only solution would be to annotate an argument manually and add type: ignore comment.
Actually I found an issue that addresses similar problem: https://github.com/tiangolo/fastapi/issues/4750. It wouldn't be enough to add simple TypeVar—you'd have to overloads.

Ah I tried to find a previous issue but didn't find that one. I had a feeling that it wasn't that simple but seems like it would be a great benefit. Also interesting to learn about overloads, I've never had to use them yet. Will follow that issue thanks!

Thanks for the help here @vrslev ! 👏  🙇
Thanks for reporting back and closing the issue @invokermain  👍

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.


Suggestion: Addition on price check

example: u have evaluation 2 currency (example: chaos and exalted).
if u check price on item and item have price < exalted = price view on chaos, if price >= exalted = price view on exalted.

Closed.


Sample.OoyalaSDK.Droid

Does Chromecast work with xamarin.forms? If yes, how?

There's no cross platform library here that you can use in a Forms project directly. That said, you could add the OoyalaSDK and OoyalaCastSDK libraries to your Android head of your Forms solution and consume it that way.


Should we include WordPress in this resource list?

I wanted to know your thoughts on this. If you're ok with it, You can start adding WordPress-related UI resources to this list too.

Hey,
Do you have an example? elementor etc... I think they are not design related materials and WP list can take a huge portion.

I would also say it would be better to make a list of the best sites where we can find paid or Free Wordpress Templates.
Sites where we can find plugins or similar sites.

I think Wordpress theme sites can go under templates, etc. I don't think plugins and stuff like that really fit anywhere

I'd love this!


Pixel Ratio causes crashes on iPads

Just wanted to bring up a possible issue in that using the pixel ratio value that you have in the viewer to determine the rendering canvas size can cause so much memory to be needed for full screen display on high res screens (I believe on my iPad the ratio is 2), that it crashes my site with longish documents on iOS devices.  Hard coding the pixel ratio to 1 and then using the rendering scale that you recently added for more sharpness stopped all the crashes.  It never crashes on my Windows computer with Chrome even with a rendering scale of 4, but my iPadd has been crash city until I overrode the pixel ration variable.
I am still mystified by the lack of character crispness of pdfjs version 3.x (which I am using), it seems that version 1 of pdfjs was VERY sharp with text-based documents but with the 'newer' versions is a bit fuzzy unless I up the rendering scale.    Sheesh.  If version 1 would render the latest versions of PDFs I would just use that, but some newer pdfs get a parse error and show just blank pages.

Hi,
not sure why it would crash. I followed the examples and advice from pdfjs official docs [1], but I'll take a look at it.

Well, since I set pixel_ratio = 1; in the renderpage function and use renderingScale: 1.25 as the default scale option, it works perfectly and the crashing is gone on iOS devices like my iPad.  Can't remember if I tried it with a higher rendering scale, but the quality is fine at 1.25, for my purposes anyhow.
Note that the documents I display are around 100 pages long but they almost all text-based, no graphics of any sort or even embedded images.  I also set extraPagesToLoad to 2 to try to preload fewer pages.

Not sure if you propose if I should debug anything... if you think so, please re-open the issue.
Thank you.


Why Not Cassandra Instead of Hbase

Hi ,
First of all thank you for this wonderfull project . It's been a long time waiting for a solid Open Source APM ( application performance management). i have been a user of New Relic and tested Appdynamics and i can say that Pinpoint is looking really really promising.  So kudos to all the team behind it !!!
i have a question, it's not really an issue, but i just wanted to know if when designing the architecture, have you ever consider using any other data store solution ( except hbase ) ? if yes,  was Apache Cassandra in the list of contender ?  if yes then  why, what were the reason for choosing hbase instead of Cassandra for exemple was it a  technical issue, can you elaborate and the subject ? performance ?
Thank you again for all the hard work
Cheers

Hi. jamroks
There is no technical issues.
Monitoring system was considered more important by Consistency of CAP theory.
HBase is hadoop family, which is advantage in integration with the hadoop subsystem.

Hi,
Ok i can understand the justification in regard to the CAP principle and Hadoop integration.
Thanks

The question has been answered. I close this issue


Remove docs/

docs/ is outdated since the documentation has been living @ https://packit.dev for some time already.
Make sure everything has been transferred and delete it.

Can you explain what exactly needs to be deleted yet updated at the docs/

@thisisshub Quite a long time ago we moved all documentation to https://packit.dev so the docs/ is no longer needed and is most likely outdated.
Regarding your question: ideally whole docs/ should be deleted and if there's anything which has not been moved to https://packit.dev yet it has to be moved (create a PR in https://github.com/packit-service/packit.dev) first.

Ok, so I was wrong. There are only links to https://packit.dev in those md files.
Since they have been there for more than 6 months I think it's time to remove the docs/ completely, which is what #710 does.
@thisisshub sorry, @sakalosj was faster :-)

fixed by #710


What is CSS?

为什么 CSS 这么难学？ - 知乎
CSS是DSL(domain specific language)

规范

层叠样式表2级修订版1（CSS 2.1）规范中文
Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification

css - Difference between HTML "overflow : auto" and "overflow : scroll" - Stack Overflow

Auto will only show a scrollbar when any content is clipped.
Scroll will however always show the scrollbar even if all content fits and you cant scroll it.


immediate native crash when loading first patch on Pixel 7 Pro

Device Pixel 7 Pro
OS UDC beta AP1A.240305.019
REPRO STEPS
Install from Play Store
Connect analog iRig 2 to a Google USB headset adapter.
Connect USB adapter to phone.
Launch app.
Go through Wizard.
Press Tap to Load
EXPECT - see patch load and begin running
ACTUAL - app crashed immediately
Native crash stackdump from the bugreport:
amprack_stackdump.txt
Let me know if you need more info.

Hi,
It seems that a plugin is causing the app to crash before it can load. As a temporary fix, you can delete the app's data to reset it.
I will add this issue to the next version's todo list, as there ought to be a mechanism to blacklist plugins which don't load properly on some devices.

Hi, was the problem resolved?

Knock knock
Race Condition!
Whose there?

You were right. There was indeed a race condition between the UI thread and the Audio thread. Fixed in 17df08af958fc276cf970aef20cc609018221bdb
I've published an update (version 4.03). Do check it out and see if the problem is fixed, so I can close the issue.
Thanks.


Unable to preview code snippets (relation-graph webpage)

ssl.relation-graph.com appears to be offline (net::ERR_CONNECTION_REFUSED)
For example: under the following link, there are references to codes (source code vue2, vue3 etc), but nothing is displayed:
https://www.relation-graph.com/#/demo/vue2?id=simple

ssl.relation-graph.com used to have some stability issues with its server, but it should be better now. You can give it another try.


Should we keep the isel method?

What maintenance does this project need?
During the discussions there were concerns about the usefulness of isel for GRIB data.  If we have:
>>> ds.index("param")
["t", "u", "v"]

then the following calls are equivalent:
>>> ds.isel(param=1)
>>> ds.sel(param="u")

but .sel() is far more easier to interpret.
My suggestion is to remove it  from the code/documentation to make the API cleaner. Can be implemented again if there is a real need for it.
Organisation
No response

Having discussed it with @tlmquintino we decided to keep this function because there cases when it can be useful.


User should be able to have an "all" split strategy option

There should be an all implementation of SplitStrategy such that the split key is used as the row key at a 1:1 ratio.

This is currently a little bit awkward to implement, because of the way that SplitStrategy is used by the DataSource. For most data source implementations, a naive implementation of a none strategy would cause two rows to be created, key, and key_row even though they will always have the same data, no matter what.
At scale, this double-storage of data might really begin to be a problem, but it's probably fine for now.
One way to solve this is to have the none SplitStrategy implementation built in to the code base, and have the DataSource check for it via instanceof. That's not a very solution and causes some wet coding in DataSource, so it's probably not the best option.
The other option is to offload the defining of the necessary extra fields in to the SplitStrategy, which is likely a better long-term solution, but would break the existing CassandraDataSource in the meantime.


completion: filter containers by their ProcessStatus

e.g., hide non-running containers from nerdctl exec <TAB>

@ktock thanks, updated


Use ch-go instead of clickhouse-go to improve performance

Based on the results of performance tests (https://github.com/ClickHouse/ch-bench#benchmarks ) it can be seen that the low-level API library is much faster than the clickhouse-go (https://github.com/ClickHouse/clickhouse-go) library in terms of data processing speed.
It would be nice to integrate the ability to use a lower-level library (https://github.com/ClickHouse/ch-go) with connection pool support.


Leaflet on devdocs.io

Docs! Might be neat to feature Leaflet on http://devdocs.io/ - I can write the scraper as soon as I sort out my ruby version problems.

PRs accepted, not going to get the bandwidth to do this myself.


drivers/pinctrl: it8xxx2: Fix I2C5 pin leakage

When setting these pins as I2C alternate mode and then setting GCR7 or func3-ext of GPIO extended, it will cause leakage. In order to prevent leakage, it must be set to GPIO INPUT mode.

in scenarios where I2C gpios need to be known (eg for recovery), additional properties like sda-gpios, scl-gpios should be introduced (see other cases in tree)

ITE's I2C drivers already provide sda-gpios and scl-gpios.
https://github.com/zephyrproject-rtos/zephyr/blob/d6afb8fb521844ff8a24d70f1432a428b975a1bd/dts/bindings/i2c/ite%2Ccommon-i2c.yaml#L81

in scenarios where I2C gpios need to be known (eg for recovery), additional properties like sda-gpios, scl-gpios should be introduced (see other cases in tree)

ITE's I2C drivers already provide sda-gpios and scl-gpios.
https://github.com/zephyrproject-rtos/zephyr/blob/d6afb8fb521844ff8a24d70f1432a428b975a1bd/dts/bindings/i2c/ite%2Ccommon-i2c.yaml#L81

then why not use them?

in scenarios where I2C gpios need to be known (eg for recovery), additional properties like sda-gpios, scl-gpios should be introduced (see other cases in tree)

ITE's I2C drivers already provide sda-gpios and scl-gpios.
https://github.com/zephyrproject-rtos/zephyr/blob/d6afb8fb521844ff8a24d70f1432a428b975a1bd/dts/bindings/i2c/ite%2Ccommon-i2c.yaml#L81

then why not use them?

Hi @gmarull ,
As Keith mentioned, our I2C already have the sda-gpios and scl-gpios as recovery functionality.
This PR is intended to obtain the information of the GPIO pins(sda-gpios and scl-gpios) used by I2C5 of the I2C driver in pinctrl init and set them as GPIO input to avoid power leakage.

in scenarios where I2C gpios need to be known (eg for recovery), additional properties like sda-gpios, scl-gpios should be introduced (see other cases in tree)

ITE's I2C drivers already provide sda-gpios and scl-gpios.
https://github.com/zephyrproject-rtos/zephyr/blob/d6afb8fb521844ff8a24d70f1432a428b975a1bd/dts/bindings/i2c/ite%2Ccommon-i2c.yaml#L81

then why not use them?

Hi @gmarull ,
As Keith mentioned, our I2C already have the sda-gpios and scl-gpios as recovery functionality. This PR is intended to obtain the information of the GPIO pins(sda-gpios and scl-gpios) used by I2C5 of the I2C driver in pinctrl init and set them as GPIO input to avoid power leakage.

There's no need to add a new API for that, information is known at compile time from DT.

in scenarios where I2C gpios need to be known (eg for recovery), additional properties like sda-gpios, scl-gpios should be introduced (see other cases in tree)

ITE's I2C drivers already provide sda-gpios and scl-gpios.
https://github.com/zephyrproject-rtos/zephyr/blob/d6afb8fb521844ff8a24d70f1432a428b975a1bd/dts/bindings/i2c/ite%2Ccommon-i2c.yaml#L81

then why not use them?

Hi @gmarull ,
As Keith mentioned, our I2C already have the sda-gpios and scl-gpios as recovery functionality. This PR is intended to obtain the information of the GPIO pins(sda-gpios and scl-gpios) used by I2C5 of the I2C driver in pinctrl init and set them as GPIO input to avoid power leakage.

There's no need to add a new API for that, information is known at compile time from DT.

While it is true that the information can be known at compile time from the DT and is accessible in i2c_ite_enhance.c for scl_gpios and sda_gpios, this information is not directly available in pinctrl_ite_it8xxx2.c. Therefore, the new API is necessary to provide the required GPIO information in the pin control context.

in scenarios where I2C gpios need to be known (eg for recovery), additional properties like sda-gpios, scl-gpios should be introduced (see other cases in tree)

ITE's I2C drivers already provide sda-gpios and scl-gpios.
https://github.com/zephyrproject-rtos/zephyr/blob/d6afb8fb521844ff8a24d70f1432a428b975a1bd/dts/bindings/i2c/ite%2Ccommon-i2c.yaml#L81

then why not use them?

Hi @gmarull ,
As Keith mentioned, our I2C already have the sda-gpios and scl-gpios as recovery functionality. This PR is intended to obtain the information of the GPIO pins(sda-gpios and scl-gpios) used by I2C5 of the I2C driver in pinctrl init and set them as GPIO input to avoid power leakage.

There's no need to add a new API for that, information is known at compile time from DT.

While it is true that the information can be known at compile time from the DT and is accessible in i2c_ite_enhance.c for scl_gpios and sda_gpios, this information is not directly available in pinctrl_ite_it8xxx2.c. Therefore, the new API is necessary to provide the required GPIO information in the pin control context.

You can access the entire DT from wherever you want

You can access the entire DT from wherever you want

Are you suggesting an approach similar to the following code snippet?
#if defined(CONFIG_I2C_ITE_ENHANCE) && DT_NODE_HAS_STATUS(DT_NODELABEL(i2c5), okay)
	const struct device *const i2c5_dev = DEVICE_DT_GET(DT_NODELABEL(i2c5));
	const struct i2c_enhance_config *i2c5_cfg = i2c5_dev->config;

	/*
	 * When setting these pins as I2C alternate mode and then setting
	 * GCR7 or func3-ext of GPIO extended, it will cause leakage.
	 * In order to prevent leakage, it must be set to GPIO INPUT mode.
	 */
	/* Set I2C5 SCL as GPIO input to prevent leakage */
	gpio_pin_configure_dt(&i2c5_cfg->scl_gpios, GPIO_INPUT);
	/* Set I2C5 SDA as GPIO input to prevent leakage */
	gpio_pin_configure_dt(&i2c5_cfg->sda_gpios, GPIO_INPUT);
#endif

If so, then i2c_enhance_config would need to be moved from i2c_ite_enhance.c to i2c_ite_enhance.h to make it accessible. Is this what you are suggesting?

You can access the entire DT from wherever you want

Are you suggesting an approach similar to the following code snippet?
#if defined(CONFIG_I2C_ITE_ENHANCE) && DT_NODE_HAS_STATUS(DT_NODELABEL(i2c5), okay)
	const struct device *const i2c5_dev = DEVICE_DT_GET(DT_NODELABEL(i2c5));
	const struct i2c_enhance_config *i2c5_cfg = i2c5_dev->config;

	/*
	 * When setting these pins as I2C alternate mode and then setting
	 * GCR7 or func3-ext of GPIO extended, it will cause leakage.
	 * In order to prevent leakage, it must be set to GPIO INPUT mode.
	 */
	/* Set I2C5 SCL as GPIO input to prevent leakage */
	gpio_pin_configure_dt(&i2c5_cfg->scl_gpios, GPIO_INPUT);
	/* Set I2C5 SDA as GPIO input to prevent leakage */
	gpio_pin_configure_dt(&i2c5_cfg->sda_gpios, GPIO_INPUT);
#endif

If so, then i2c_enhance_config would need to be moved from i2c_ite_enhance.c to i2c_ite_enhance.h to make it accessible. Is this what you are suggesting?

No, just obtain the dt-spec from DT directly in the pinctrl driver.

You can access the entire DT from wherever you want

Are you suggesting an approach similar to the following code snippet?
#if defined(CONFIG_I2C_ITE_ENHANCE) && DT_NODE_HAS_STATUS(DT_NODELABEL(i2c5), okay)
	const struct device *const i2c5_dev = DEVICE_DT_GET(DT_NODELABEL(i2c5));
	const struct i2c_enhance_config *i2c5_cfg = i2c5_dev->config;

	/*
	 * When setting these pins as I2C alternate mode and then setting
	 * GCR7 or func3-ext of GPIO extended, it will cause leakage.
	 * In order to prevent leakage, it must be set to GPIO INPUT mode.
	 */
	/* Set I2C5 SCL as GPIO input to prevent leakage */
	gpio_pin_configure_dt(&i2c5_cfg->scl_gpios, GPIO_INPUT);
	/* Set I2C5 SDA as GPIO input to prevent leakage */
	gpio_pin_configure_dt(&i2c5_cfg->sda_gpios, GPIO_INPUT);
#endif

If so, then i2c_enhance_config would need to be moved from i2c_ite_enhance.c to i2c_ite_enhance.h to make it accessible. Is this what you are suggesting?

No, just obtain the dt-spec from DT directly in the pinctrl driver.

Done.


Out forward stuck establishing connection

Describe the bug
I encountered a critical issue with Fluentd where it gets stuck in an infinite loop while establishing connections between out_forward and in_forward servers. Our infrastructure has unstable connection that may lead to this bug occurring on bigger frequency. This bug has led to Fluentd ceasing to send data (and heartbeat) even when the underlying network infrastructure was back online. Interestingly, killing the socket resolved this issue and cause the thread to continue sending data.
The most simple way i can describe the bug is that fluentd suddenly stops sending any data to the remote server, no errors in the logs, and if i check inside the container i can see there is a open socket on "ESTABLISHED" to the remote server.
After some digging in the code i think i might have found the reason for this behaviour.
Every heartbeat/write function, a new socket is created and then connect(dest_addr) is called, doing the TLS handshake.
After that establish_connection is called to do the hello, ping, pong protocol.
it seems that if after the TLS handshake, when we reach establish_connection, the connection drops between the fluentd and destination server, fluentd doesn't seem to detect or timeout the socket and as far as I can tell get stuck in this loop, where socket is still considered up, but will never contain any data.
   # in lib/fluent/plugin/out_forward.rb
   def establish_connection(sock, ri)
        while ri.state != :established
          begin
            # TODO: On Ruby 2.2 or earlier, read_nonblock doesn't work expectedly.
            # We need rewrite around here using new socket/server plugin helper.
            buf =<EMAIL_ADDRESS>            if buf.empty?
              sleep @sender.read_interval
              next
            end
            Fluent::MessagePackFactory.msgpack_unpacker.feed_each(buf) do |data|
              if @handshake.invoke(sock, ri, data) == :established
                @log.debug "connection established", host: @host, port: @port
              end
            end

It's important to take note that in our infrastructure, the out_forward and in_forward servers doesn't connect directly to each other, they has a few components in-between them, so if the overall connection drops it doesn't necessarily mean that the socket will drop, so we have to rely on options like timeouts.
It would seems that  socketops RCVTIMEO/SNDTIMEO should  cause an exception to be raised, breaking the loop, but as far as i can tell in ruby, those socket options seems to be problematic.
https://stackoverflow.com/questions/9853516/set-socket-timeout-in-ruby-via-so-rcvtimeo-socket-option#:~:text=Based on my testing%2C and Jesse Storimer's excellent ebook on "Working with TCP Sockets" (in Ruby)%2C the timeout socket options do not work in Ruby 1.9 (and%2C I presume 2.0 and 2.1). Jesse says%3A
https://www.ruby-forum.com/t/how-to-set-socket-option-so-rcvtimeo/77758/8
https://stackoverflow.com/questions/57895907/ruby-2-5-set-timeout-on-tcp-sockets-read
To Reproduce
I'm not sure how to consistently reproduce the issue, it seem to depend on when the connection was dropped and where the establish_connection is currently at.
Expected behavior
I expect the socket to timeout if it failed to establish connection after some time.
Perhaps using IO.select.
Your Environment
- Fluentd version:1.16.2

Your Configuration
<match **>
          @type forward
          transport tls
          tls_allow_self_signed_cert true
          tls_cert_path /opt/bitnami/fluentd/certs/tls/fluentd.crt
          require_ack_response true
          <server>
            host ****
            port 24224
          </server>
          <buffer>
            @type file
            path *****
            total_limit_size 4096MB
            chunk_limit_size 16MB
            flush_mode interval
            flush_interval 5s
            flush_thread_count 8
            retry_type periodic
            retry_wait 10s
            retry_forever true
            queued_chunks_limit_size 8
          </buffer>
        </match>

Your Error Log
The logs don't contain to much information, it mostly stops printing any logs.
For the time being i also cannot supply them because of PPI information, ill sanitise, and attach them once i can.
Also I turned trace level logging on my instances for later occurrences of the bug.

Additional context
No response

After some digging in the code i think i might have found the reason for this behaviour.
Every heartbeat/write function, a new socket is created and then connect(dest_addr) is called, doing the TLS handshake.
After that establish_connection is called to do the hello, ping, pong protocol.
it seems that if after the TLS handshake, when we reach establish_connection, the connection drops between the fluentd and destination server, fluentd doesn't seem to detect or timeout the socket and as far as I can tell get stuck in this loop, where socket is still considered up, but will never contain any data.

I expect the socket to timeout if it failed to establish connection after some time.
Perhaps using IO.select.

Thanks for your report. We may need to do some digging.
We need a simple way to reproduce the problem.

We're encountering a similar issue. Have there been any updates or workarounds identified for this?

We're encountering a similar issue while distributing 80,000 events per second to two separate systems. Have there been any updates or workarounds identified for this?

No.
I have not made time to look into this issue in detail.
I'll see if I can reproduce it.
I'd be glad to receive any information that could help us reproduce the issue.

Yes...
With the below configurations for forwarder and aggregator:
Both of these are in a Multi Process Workers environment, with 4 workers on each node.

<match udp.input.**>
    @type forward
    require_ack_response true
    heartbeat_type udp
    <buffer>
        @type memory
        flush_interval 1s
        flush_thread_count 10
        chunk_limit_size 50m
        queue_limit_length 500
        chunk_limit_size 100m
        overflow_action drop_oldest_chunk
        retry_max_interval 10m
        retry_forever true
        delayed_commit_timeout 100
    </buffer>
   <server>
     host <IP_ADDRESS>
     port 24224
     weight 60
   </server>
   <server>
     host <IP_ADDRESS>
     port 24224
     weight 60
   </server>
</match>

<source>
    @type forward
    port 24224
    bind <IP_ADDRESS>
    tag udp.forward
</source>

It appears that when attempting to distribute events, Node 1 receives events via UDP and then shares them with other nodes using the forwarder plugin. However, after approximately 10 seconds, fluentd enters a stale mode where it no longer accepts new incoming events and only forwards heartbeats. And I haven't seen any error logs stating the above behaviour.
After checking the network calls with strace we are suspecting this
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70df800000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, "{\"reportType\": \"sslsession\", \"so"..., 10485760, 0, {sa_family=AF_INET, sin_port=htons(38897), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 59168
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54676] recvfrom(10, "\201\243ack\271YUgPCpFf8KyAOu0reJa0wg==\n", 512, 0, 0x7f70e6efd790, [2048 => 0]) = 31
[pid 54676] shutdown(10, SHUT_WR)       = 0
[pid 54669] socket(AF_INET, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_TCP) = 10
[pid 54669] connect(10, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = -1 EINPROGRESS (Operation now in progress)
[pid 54669] getsockopt(10, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
[pid 54669] getsockopt(10, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
[pid 54669] getsockname(10, {sa_family=AF_INET, sin_port=htons(51956), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 0
[pid 54669] setsockopt(10, SOL_SOCKET, SO_LINGER, {l_onoff=1, l_linger=60}, 8) = 0
[pid 54669] setsockopt(10, SOL_SOCKET, SO_RCVTIMEO_OLD, "\276\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
[pid 54669] setsockopt(10, SOL_SOCKET, SO_SNDTIMEO_OLD, "<\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0

<PROCESS STALLS HERE FOR A WHILE, DURING WHICH ONLY PERIODIC HEARTBEAT SIGNALS ARE SENT TO THE DEVICE>

[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54676] recvfrom(10, "\201\243ack\271YUgPDAI3vNb9cuJQbyVasg==\n", 512, 0, 0x7f70e6efd790, [2048 => 0]) = 31
[pid 54676] shutdown(10, SHUT_WR)       = 0
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1

<SKIPPING A FEW BEATS TO SHORTEN THE LOG>

[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] sendto(9, "\0", 1, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, 16) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1
[pid 54675] recvfrom(9, "\0", 512, 0, {sa_family=AF_INET, sin_port=htons(24224), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 1

<AGAIN PROCESS RESUMES HERE>

[pid 54679] recvfrom(13, 0x7f70dec00000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, "{\"reportType\": \"sslsession\", \"so"..., 10485760, 0, {sa_family=AF_INET, sin_port=htons(42461), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 58968
[pid 54679] recvfrom(13, 0x7f70dd000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, "{\"reportType\": \"sslsession\", \"so"..., 10485760, 0, {sa_family=AF_INET, sin_port=htons(60693), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 59165
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e0400000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, "{\"reportType\": \"sslsession\", \"so"..., 10485760, 0, {sa_family=AF_INET, sin_port=htons(60693), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 59165
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, 0x7f70e1000000, 10485760, 0, 0x7f70e5afdaf0, [2048]) = -1 EAGAIN (Resource temporarily unavailable)
[pid 54679] recvfrom(13, "{\"reportType\": \"sslsession\", \"so"..., 10485760, 0, {sa_family=AF_INET, sin_port=htons(46832), sin_addr=inet_addr("<IP_ADDRESS>")}, [2048 => 16]) = 59071

If there's any other information needed on this issue, please let me know.

Can you replicate this issue @daipom

Sorry, I haven't made time for this.
Thanks for your information!

With the below configurations for forwarder and aggregator:

Does this mean that this issue reproduces within the same machine (setting in_forward and out_forward in the same config)?
If so, I think I could try to reproduce it.
Or, does this reproduce only under the following infrastructure (where in_forward and out_forward don't connect directly)?

It's important to take note that in our infrastructure, the out_forward and in_forward servers doesn't connect directly to each other, they has a few components in-between them, so if the overall connection drops it doesn't necessarily mean that the socket will drop, so we have to rely on options like timeouts.

This setup is currently deployed in an Esxi host. We have three nodes deployed independently, and we have been able to reproduce the issue by continuously streaming across the nodes.
The actual flow will be like this
UDP -> Log Forwarder -> Forward aggregator -> Opensearch
I have there questions:

If the forwarder gets stuck in the middle, why does the UDP plugin also stop receiving data? Only heartbeats are sent to the other nodes.
Are there any other steps to produce dumps for the Ruby code to check what is happening in real-time?
Are there any limitations regarding the amount of data that can be continuously transmitted by the forwarder?


Enforce or Document the recommended format to include namespaced templates

Affected Version

SilverStripe 4.0
SilverStripe 4.1

The problem
My expectation is that there would be 1 way to include namespace templates, however you can use backslashes or forward slashes. I looked to framework for what is the "proper" way to do this, however it seems even code in framework and cms isn't consistent.
Examples from framework:
vendor/silverstripe/framework/templates/SilverStripe/Forms/Includes/GroupedDropdownFieldOption.ss
<% include SilverStripe/Forms/GroupedDropdownFieldOption %>

vendor/silverstripe/cms/templates/SilverStripe/CMS/Controllers/Includes/CMSPagesController_Content.ss
<% include SilverStripe\\Admin\\CMSBreadcrumbs %>

Proposed solution
We can't suddenly switch off forward / backslashes as that would break semver, however, I propose that the SilverStripe Upgrader tool is updated to automatically choose one or the other.
(Backslashes feels like the better fit because it aligns with how namespaces are written in PHP)
Footnotes

I think you need to use double backslashes because the template parser doesn't escape backslashes for you.
ie. $val .= \SilverStripe\View\SSViewer::execute_template([["type" => "Includes", 'SilverStripe\\Admin\\CMSBreadcrumbs'], 'SilverStripe\\Admin\\CMSBreadcrumbs'], $scope->getItem(), array(), $scope, true);

Unescaped backslashes are also parsed in the template @silbinarywolf - so all of these work at the moment:
<% include Vendor/Module/Template %>
<% include Vendor\Module\Template %>
<% include Vendor\\Module\\Template %>

@silbinarywolf Nope, it works just fine, I just tested it. The template parser doesn't convert any control characters in the include name. Interestingly, SilverStripe processes everything using the forward slash by forcing it first, as you can see here.

@colintucker Cool! In that case, perhaps we can work towards making this format best practice?
<% include SilverStripe\Admin\CMSBreadcrumbs %>
Reasoning being that this aligns one-to-one with how PHP namespaces look!

That's primarily why I use it... that, and I avoid using the double backslash \\ wherever possible because it UGLY.

Just my 2p worth:

<% include SilverStripe\Admin\CMSBreadcrumbs %>

This makes me sad.  Because they represent file paths, and because I don't use Windows, my brain automatically thinks they are wrong and should be replaced with forward slashes.    I agree the double backslash is nasty, but to me backslashes in there at all are nasty.
Consistency in the core code / documentation would obviously be nice, but trying to enforce that in userland might cause some friction!

My vote would be for always using forward slash because those include statements don't necessarily match a namespace object ... you can includes files that don't relate directly to a PHP object.
@DorsetDigital Sorry for making you sad.

This discussion was had at length here: https://github.com/silverstripe/silverstripe-framework/issues/5952
From my reading it was / that were meant to be preferred but all 3 are intended to be valid it seems

This PR was intended to provide some clarity it seems: https://github.com/silverstripe/silverstripe-framework/pull/5954 - which was to use /

Yeah ultimately these represent paths in the filesystem, not PHP namespaces (even though they do tend to map to PHP namespaces.... they don't have to).
Windows users may prefer to use backslashes since that's correct for filesystem paths in that OS.
*nix users may prefer to use forward slashes since that's correct for filesystem paths in that OS.
We're not going to enforce one or the other.


local/global clarification

Fix https://github.com/riscv/riscv-cheri/issues/432

I think the added condition on the load is not correct, but otherwise the changes look good.

which condition?

@nwf

I think the added condition on the load is not correct, but otherwise the changes look good.

which condition?

The one you just removed (the authorizing <<section_cap_level>> is _local_). Looks good now.


Versioning of Nuget

Hello,
There are a problem with versioning in Nuget. If you release 2.0.0-beta12, nuget not recognize as higer version because nuget order of semver component are alphanumeric.
If you have 2.0.0-beta-02, then 2.0.0-beta-12 is more recent, but 2.0.0-beta-2 not function properly.
Now, you may change all packages to 2.0.1-beta-01 or 2.0.1-beta01 to correct packages.
Thanks!

I will relist them as 2.0.0-beta0X later this weekend.

I have reorganize the nuget package listing now.


Add forgot password

Pull Request
Title
Add forgot password
Description
This PR adds the backend and frontend implementation for generating otp, verifying otp and resetting the password.
Related Issues
fixes #733
Changes Made
added three controllers and route in the backend and created the frontend UI/component for the purpose.
Checklist

[X] I have tested the changes locally
[X] Documentation has been updated (if necessary)
[X] Changes are backward-compatible

Screenshots (if applicable)

https://github.com/user-attachments/assets/b45dcaab-80ed-4174-97cd-822b2bfe06f8
Additional Notes

Footer

@manikumarreddyu please increase the level of the PR!

hi @haseebzaki-07 please connect me here :
https://www.linkedin.com/in/manikumarreddyu ASAP..

Hey @manikumarreddyu the link says 404 error


Collapsed Vertical Panel Title not aligned properly

See toolbox example attached.  also seeing this on a client app.
Is this a regression?  Is it intentional and I am seeing it wrong?

Seems to me that this needs to be center aligned.

Appears to be a bug/change in Chrome 89. Chrome 88 does not present this issue.

Can't seem to find any known issues to this effect. Observations:

The width the title element is 20px when inspected in Chrome 88. 30px when viewed in Chrome 89. The alignment is probably off because it's based on this difference in size. What changed about flex child sizing?

If manually set to 20px width the title is in the right place.

Tom notes that changing the line height to 2em fixes the issue as well.

Well this seems suspicious, with respect to those 10px Don is looking to clawback:
&.xh-panel-header--right {
& > .svg-inline--fa {
margin: 0 0 10px 0;
}
}
I am fine with a work-around based on either of the two approaches mentioned above.  We can't ignore this one, unfortunately.

The "margin: 0 0 10px 0;" pixels are in the wrong direction for our issue. 10px bottom is the separation between the glyph and the title.
Tom and I agreed setting the width is the thing to do.


All environment patch types failing validation

I am attempting to convert some compositions from Resource mode to Pipeline mode, but all of my environment patches are failing validation.
I'm using xpkg.upbound.io/crossplane-contrib/function-patch-and-transform:v0.2.1 and rendering locally with the crossplane cli v1.14.5.
Here is a sample spec containing an environment patch:
spec:
  pipeline:
    - step: patch-and-transform
      functionRef:
        name: function-patch-and-transform
      input:
        apiVersion: pt.fn.crossplane.io/v1beta1
        environment:
          patches:
            - type: FromCompositeFieldPath
              fromFieldPath: foo
              toFieldPath: bar

This function (https://github.com/crossplane-contrib/function-patch-and-transform/blob/21742ed0204e5827100111d71562e3c668eeba59/validate.go#L93) seems like it ought to return nil (no error) in this case, but no matter what patch type (or any string actually...) I specify I always get:
crossplane: error: cannot render composite resource: pipeline step "patch-and-transform" returned a fatal result: invalid Function input: environment.patches[0][type]: Invalid value: "<TYPE>": invalid environment patch type

this was actually fixed by https://github.com/crossplane-contrib/function-patch-and-transform/pull/78, but we still need to cut a release with it 👍

Ah, thank you! 🙏


[Docs] localStorage persistance example

Heya,
As a newbie to React I'm struggling with understanding how I would subscribe to changes in the items array in a clean manner so that I can persist it to storage. The example from the README only does reading, no writing. Is this at all possible with use-cart?

After tinkering a bit with it and trying to wrap my head around how hooks actually work, I think I understand it now (but would love to get confirmation):
Essentially, since the feeding of initial items needs to be available before declaring the CartProvider, there would have to be, lets say, a loadCartFromStorage method that returns the unserialized items. The loadCartFromStorage would be a parent of the provider, whereas a subscribing Function Component, saveCartToStorage would have to be a child of CartProvider, so that it can subscribe to useCart() changes and serialize into storage.
Conceptually something like this:
const loadCartFromStorage = () => {
  return JSON.parse(localStorage.get('cart'))
}

function saveCartToStorage() {
  const { items } = useCart()
  useEffect(() => {
    localStorage.set('cart', JSON.stringify(items))
  }, [items])
  return (
    <></>
  )
}

function App () {
  return (
    <CartProvider initialCart={loadCartFromStorage()}>
      <saveCartToStorage />
      <div> ...the rest of my app here or some such </div>
    </CartProvider>
  )
}


Missing rosdep key for gz-transport-12

Environment

OS Version: Ubuntu 22.04 (Jammy)
Source or binary build?

Description

Expected behavior: Using rosdep resolves all keys
Actual behavior: ROSdep is missing keys for gz-transport-12

Steps to reproduce
Follow instructions for compiling ros_gz here: https://github.com/gazebosim/ros_gz/tree/ros2#compile-ros_gz
Output
ryan@ryan-m93p:~/Documents/gz_ws$ rosdep install -r --from-paths src -i -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
ros_gz_bridge: Cannot locate rosdep definition for [gz-transport12]
ros_gz_image: Cannot locate rosdep definition for [gz-transport12]
ros_gz_sim: Cannot locate rosdep definition for [gz-math7]
Continuing to install resolvable dependencies...
#All required rosdeps installed successfully

The problem
This package has uploaded debians with a new key name, but has not updated the rosdep index, and now other packages are relying on version 11 that does not exist.
https://github.com/ros/rosdistro/blob/91349fa4751c7a5b62b1129220148a11c693694f/rosdep/base.yaml#L1869-L1875
This was found in this issue: https://github.com/gazebosim/ros_gz/issues/358

Hey there, I tried being a good citizen and contributing the change to rosdep, but it doesn't work. Would the package maintainer of gz-transport be able to assist me with the above PR?

Please see the updated documentation about using ROS with a specific version of Gazebo including how to add rosdep keys. Since gz-transport12 is not in upstream Ubuntu or packages.ros.org, we can't currently add it to ros/rosdistro.

Should we then remove it from the package.xml?


The feature visualization method

The work was so interesting and it was attractive to me.
The feature visualization results in your paper particularly highlight the superiority of your method such as: Figure 5.
However, I could not find the code for this feature visualization in the GitHub repository you have shared.
Could you kindly provide the code for this part?
<EMAIL_ADDRESS>

The work was so interesting and it was attractive to me. The feature visualization results in your paper particularly highlight the superiority of your method such as: Figure 5. However, I could not find the code for this feature visualization in the GitHub repository you have shared. Could you kindly provide the code for this part<EMAIL_ADDRESS>
Hi, I have uploaded the file as https://github.com/caicch/ICT-Net/blob/main/caption_attn.py; you can modify line 233 for encoder visualization and 275 for decoder.

Thanks a lot!!!!


[PDI-20194] Variables replacement in PVFS implementation is not worki…

…ng as expected

caling #initializeVariableSpace earlier in #createFile

 Note:

Frogbot also supports Contextual Analysis, Secret Detection, IaC and SAST Vulnerabilities Scanning. This features are included as part of the JFrog Advanced Security package, which isn't enabled on your system.

🐸 JFrog Frogbot

:white_check_mark: Build finished in 27m 27s
Build command:
mvn clean verify -B -e -Daudit -Djs.no.sandbox -pl core

:ok_hand: All tests passed!
Tests run: 1401, Failures: 0, Skipped: 1    Test Results

:information_source:  This is an automatic message

 Note:

Frogbot also supports Contextual Analysis, Secret Detection, IaC and SAST Vulnerabilities Scanning. This features are included as part of the JFrog Advanced Security package, which isn't enabled on your system.

🐸 JFrog Frogbot

:white_check_mark: Build finished in 22m 32s
Build command:
mvn clean verify -B -e -Daudit -Djs.no.sandbox -pl core

:ok_hand: All tests passed!
Tests run: 1401, Failures: 0, Skipped: 1    Test Results

:information_source:  This is an automatic message

 Note:

Frogbot also supports Contextual Analysis, Secret Detection, IaC and SAST Vulnerabilities Scanning. This features are included as part of the JFrog Advanced Security package, which isn't enabled on your system.

🐸 JFrog Frogbot

:white_check_mark: Build finished in 32m 34s
Build command:
mvn clean verify -B -e -Daudit -Djs.no.sandbox -pl core

:ok_hand: All tests passed!
Tests run: 1401, Failures: 0, Skipped: 1    Test Results

:information_source:  This is an automatic message


Carbine Userdata Prefixes

Where would a list of prefixes used by Carbine for userdata go?

Basic

Type
Prefix

Boolean
b

Number
n

String
str

Function
fn

Unknown
o

Table
t

Table Array
ar

Lua Defined Object
lua

Constants*
k

Id Numbers
id

*Constants prefix in front of the type prefix.
Userdata

Type
Prefix

Achievement
ach

Challenge
clg

CharacterTitle
title

ChatChannel
chan

Contract
con

Color
cr

CommodityOrder
order

CreddExchangeOrder
ceo

CustomerSurvey
cs

DialogResponse
dr

GalacticArchiveArticle
art

GalacticArchiveEntry
ent

GenericMapNode
gmn

Guild
guild

HexGroups
hex

IncidentReport
ir

Item
item

ItemAuction
auc

LiveEvent
le

MailSystemLib
msg

MapNode
node

MatchingGame
match

Money
mon

PathEpisode
pep

PathMission
pm

PublicEvent
pe

PublicEventObjective
peo

Quest
que

QuestCategory
qc

QuestEpisode
pi

Residence
res

RewardTrack
rt

ScientistScanBotProfile
sbp

SettlerImprovement
set

SoldierEvent
se

SoldierImprovement
sol

Spell
spl

Talent
tal

Talent Pool
pool

Unit
unit

Vector3
vec

Window*
wnd

WindowLocation
loc

*All window subclasses (e.g. ProgressBar) still keep the window prefix.

I would put them in a new folder Metadata/Prefixes.md
The planned page generator will create a nested menu from each folder, so if we have to nest deeper in the future keep in mind a max depth of 3 folders.

ApolloTimer is missing
Userdata

Type
Prefix

ApolloTimer
timer

More stuff
Basic

Type
Prefix

Enum
e


Automatically put all objects on same complex conjugate

Here's some function I use to force a list of objects to be all on the same complex conjugate as the 1st object of the list.
I use that just before mode decomposition.
I use Pearson correlation as a comparison metric but anything else could be used. Actually I only compare the object modules. Maybe using the object phase as well in some way could make this function even more robust (it can fails for highly symmetric particles)
def pearson_correlation_coef(img1, img2):
img_corr = np.zeros((2,)+img1.shape)
for n,img in enumerate((img1,img2)):
img_corr[n] = img-np.mean(img)
denominator = np.sqrt(np.sum(img_corr[0]**2.))*np.sqrt(np.sum(img_corr[1]**2.))
numerator = np.sum(img_corr[0]*img_corr[1])
return numerator/denominator
def get_complex_conjugate(obj):
obj_conj = np.conj(np.flip(obj, axis=range(obj.ndim)))
return obj_conj
def force_same_complex_conjugate_object_list(obj_list):
obj_ref = obj_list[0] # I take the first object as the reference
module_ref = np.abs(obj_ref)
obj_list_updated = np.zeros(obj_list.shape, dtype='complex128')

for n, obj in enumerate(obj_list):
    module = np.abs(obj)
    p_coef = pearson_correlation_coef(module_ref, module) # I only compare the modules.

    obj_conj = get_complex_conjugate(obj)
    module_conj = np.abs(obj_conj)
    p_coef_conj = pearson_correlation_coef(module_ref, module_conj)

    if p_coef>p_coef_conj:
        obj_list_updated[n] += obj
    else:
        obj_list_updated[n] += obj_conj
return obj_list_updated

Careful also about centering the objects before mode decomposition. I'm not sure he recenters during pynx decomposition.


Project is alive?

Is the development going on? Or it is worth looking for an analog DragonBones?

Please do not stop！

how can i run demo animation in Intellij Idea? I pasted this repo as a module in my libgdx project, but i still can`t understand how to start use classes and just run demo(default Dragon and New Dragon animations from project). Do you know any little games used this runtime? I just want to learn this by reading working lillte examples. Help me please.


Added fix for mypy complaining about already defined name

@supakeen  Added a quick  fix for mypy complaining about already defined name
$ mypy pinnwand
pinnwand/command.py:38:13: error: Name "toml" already defined (possibly by an import)
Found 1 error in 1 file (checked 15 source files)

Please see the mypy issue 1152

Looks good, thanks.

Thanks 👍


Difficulty with Windows integration

I followed the tutorial carefully and even then when I try to use SSH with a program other than PuTTY nothing works.
The image below shows me using SSH in 3 programs. Has anyone ever experienced this? Do you know how to solve it?

Hi @rat
The middle screen appears to show a successful ssh connection using ssh-agent, no? On the right screen, you're using the username roo - not root, maybe that's a problem?

Hi @drduh, I just managed to make ssh forwarding work with yubikey + gpg4win + weasel-agent => linux machines under WSL, would you be interested by a contribution on this topic ?

@BriceGagnageRenault Absolutely! Please send a PR.


Webchat button links not working on iOS Edge browser

Description:
When using the VA solution the logon button leveraged in Adaptive Card needed for logon to O365 does not work.
Repro:

Create a VA solution with Productivity skills
Ask Bot "What's on my schedule" in iOS browser in Webchat channel
Click on Login

Browser does not launch login process

Expected Action
Should open another tab to allow for O365 logon

Hi @Dewain27, I tried this out on Mock Bot, which we use to reproduce issues. If you visit Mock Bot and type the command oauth, in mobile, the login opens a new window for me as expected.
Could this be a VA implementation bug?
@ryanlengel @lauren-mills

I tested the oauth flow with Mock Bot on the Safari mobile browser and it opens a new tab as expected, @Dewain27 stick to that for now.
@corinagum I tested on multiple mobile browsers

Edge - ❌
Safari - ✔
Chrome - ✔
Firefox - ✔

Do you think we could get the console.log out of iOS Edge?

@v-kydela Could someone on the Support team confirm if we still have repro of this bug?

@v-kydela Could someone on the Support team confirm if we still have repro of this bug?

@corinagum, will attempt a repro.

@corinagum, will attempt a repro.

@Dewain27, can you please confirm for me whether you are using the C# or TypeScript version of the VA? I'm not certain that it matters, but it may prove useful.

@Dewain27, can you please confirm for me whether you are using the C# or TypeScript version of the VA? I'm not certain that it matters, but it may prove useful.

@stevkan ping


[☂] v1 tasks

Some tasks from the top of my head:
Pending:

[x] Figure out i18n integration (#64)
[ ] Figure out docs versioning
[x] Review and update documentation style guide to match new website.
[x] Create new docs landing page (@molant, @erickzhao)
[x] Upstream everything we can to electron/electron
[x] Update styles to match a bit more the current live site (@erickzhao)
[x] Need to find a way to allow easy merges on electron/electron for the /docs  folder ➡ Maybe use the CODEOWNERS plugin or similar?

Done:

[x] Add frontmatter to documentation, should be in electron/electron but maybe we can start doing it here (see #https://github.com/electron/electron/pull/28303)? (@molant) (#3)
[x] Pull documentation from the right branch as pre-build step (@molant) (#3)
[x] Automatically generate the sidebar ➡ Haven't found any documentation about it or if it is enough with the right folder structure Looks like we need to generate it somehow or else docusaurus complains with:  (@molant) (#3)

Error: Bad sidebars file.
These sidebar document ids do not exist:

[x] Add Fiddle integration in the docs (@erickzhao)
[x] Remove Blog link for now (#10)
[x] Deploy the website somewhere (@molant) ➡  https://beta.electronjs.org/
[x] Reach out to docsearch see if we can have 2 indexes for the website (@molant) (#22) ➡ *Waiting for next crawl before merging
[x] Figure out how to enable fast docs development locally (@molant) (#4)
[x] List of examples sooner rather than later
[x] Automatically update/deploy periodically or when there's new content in electron/electron (#19 - @molant)
[x] Add an "Examples"  link to the top nav ➡ Talk about fiddle in the landing page (@molant)
[x] search feature
[x] Update electronjs.org-new README
[x] Document and be clear about acceptance criteria for submissions.
[x] START HERE URL
[x] Discord Channel #TBD

Looks like we need to generate it somehow or else docusaurus complains with:

Error: Bad sidebars file.
These sidebar document ids do not exist:

[ ] Remove Blog link for now
[ ] Add an "Examples"  link to the top nav

@erickzhao I've reorganized a bit the top comment and added some new tasks.
What do you think of updating that list to show what we believe should be done to sunset the old docs and just have the new ones?

Now that we've shipped the whole site to https://electronjs.org, I think we can close this issue. I think this is all done except for Versioned Docs!


Add feature to allow historical records to be deleted when master is deleted

Description
Allow user to specify that they don't want to keep history for deleted models.
Related Issue
#439
Motivation and Context
If users don't want to keep history for deleted data this allows them to do so.
How Has This Been Tested?
The unit tests have been updated to account for the new functionality.
Types of changes

[ ] Bug fix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #440 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #440      +/-   ##
==========================================
+ Coverage   97.33%   97.34%   +0.01%
==========================================
  Files          15       15
  Lines         675      679       +4
  Branches       92       93       +1
==========================================
+ Hits          657      661       +4
  Misses          9        9
  Partials        9        9

Impacted Files
Coverage Δ

simple_history/models.py
98.78% <100%> (+0.02%)
:arrow_up:

Continue to review full report at Codecov.

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

@rossmechanic I think the constraint would be more efficient, but I think we can do that as a follow-on PR later.


simple catch of preview submit, probably needs more sentry context?

What problem does the pull request solve?
Preview submissions send emails, they should not!
Related to https://trello.com/c/8v62dCzt/551-users-can-use-the-back-button-to-submit-a-form-twice-resulting-in-blank-emails-in-processing-inboxes

Preview submissions send emails, they should not!

Is this correct? I think we want preview to submit so that form creators can check the content is coming through correctly in the email. Could be wrong but I think the problematic behaviour is that it still tries to submit in preview even if there's no submission email set.

Preview submissions send emails, they should not!

Is this correct? I think we want preview to submit so that form creators can check the content is coming through correctly in the email. Could be wrong but I think the problematic behaviour is that it still tries to submit in preview even if there's no submission email set.

My mistake! We're actually going to not send an email when there is no submission_email AND it's in preview

I've tied myself in a knot so far - committing what I have so far, will comment in-line an explaination

Sorry I couldn't figure this out @aliuk2012 , I'll be back Tuesday 7th to continue this.
But I think probably you should fix it for now, I'll pick up something else when I get back.
Thank you for your explanation and help on this, I wouldn't have even got so far without it!

https://github.com/alphagov/forms-runner/pull/278 replaces this PR


Cmake relpath fix

FindNanopb.cmake is broken when using the relative path feature.  This breakage was introduced in commit e64b3348978b4f273d21033ff1f7dcb5f50ec15c which switched from using the two-step compilation method to using nanopb's plugin mode.
Path's are handled differently between these two modes and this change caused the generated *.pb.h and *.pb.c files to be placed in an incorrectly nested directory hierarchy.  This can be verified by running the cmake_relpath example project.

@oliverlee The problem that I have found is that the protoc compiler includes the relative path, so compiling a file like sub/test.proto will be written to sub/test.pb..  If you add the relative path to the binary dir like ${CMAKE_CURRENT_BINARY_DIR}/${FIL_PATH_REL}, then the file gets written to sub/sub/test.pb..

Yeah you're right. I didn't realize the relative path was already included and should have run the test.

So hmm, I assume this is fine to merge then? :)


💡 [FEATURE] - Improve SEO (Search Engine Optmization ) for the home page

Idea Contribution

[X] I have read all the feature request issues.
[X] I'm interested in working on this issue
[X] I'm part of GSSOC organization

Explain feature request
No response
Explain your solution
No response
Any alternative approaches/features
No response
Additional Context
No response

We're currently redesigning the website so you can raise issue about the website after the website is done, ill close it for now

Sure


GCS should have a powershell drive provider.

https://msdn.microsoft.com/en-us/library/ee126186(v=vs.85).aspx
This would allow all the regular file management and many other powershell cmdlets that indirectly use them to work with GCS buckets. Ideally you could register a "gs:" drive and then commands like "Copy-Item C:\local_file.txt gs://my_bucket/folder/" would work.

That's a great idea! Fortunately, we got you covered. In fact, the PowerShell provider for Google Cloud Storage was submitted just this afternoon by @ILMTitan in commit 85ad1b31081e883e850313c3d769603f1ad49bb7.
We still need to do some testing, documentation, etc. But we should have that generally available in the next few weeks.

Hello EricSL. I am glad you are interested in our powershell cmdlets.
This issue is:
Duplicate of #11.
Closed in #282.


refactor(store): simplify schema validation loop [n-08]

Instead of branching inside this loop we can use two separate loops, along with other optimizations

I agree we should land #2046 first and rebase the code-suggestions (https://github.com/latticexyz/mud/pull/2140) branch on. Then merge this PR.


Completed assessment.

2 of 6 (-0.5 on Q1, Q5; -1 on Q3, Q4, Q6)
It looks like you had some trouble with this one, Min. Give the material another read-through, and resubmit this assessment when you get a chance.


Feature Request: Support a second camera

Hi and thank you very much for your plugin, I use it every time I print something.
I use two cameras to monitor all my print jobs, one for printing and another for the filament spool (with the Multicam plugin) but I can only use one of the two cameras in Octopod.
Can you add, at least, a second camera in your plugin, for example by a field with ip:port for the second camera in the octopod options.

Hi @phiphila, the iOS app should be able to display all cameras configured via the MultiCam plugin. Could you share your ideas on how this plugin can leverage having many cameras? eg. send a notification for each cameras? Tell which camera to use for each type of notification? thanks


does not work with node V6

See this issue: https://github.com/mrluc/owl-deepcopy/issues/4

@muoren just ran into this issue as well, were you able to find a solution that didn't require a module update here?

For what it's worth, it seems that owl-deepcopy in its latest version now works with node 6 with mongoose-schema-extend. However because of the need for harmony_proxies flag when running node I am not using mongoose-extend-schema in its latest release but rather 0.2.0 which is the last release for that change (see docs).
I am running node 6.9.1 and my copy of owl-deepcopy via mongoose-schema-extend is 0.0.6.

According to this issue, Node doesn't require the --harmony_proxies flag anymore.  It would be nice if @briankircho could confirm this, though, and update the docs to reflect this, if that is the case.


⚠ Bofrost.fr has degraded performance

In e42505a, Bofrost.fr (https://www.bofrost.fr) experienced degraded performance:

HTTP code: 200
Response time: 1185 ms

Resolved: Bofrost.fr performance has improved in b94b7e3 after 7 minutes.


set hypothesis deadline to None for a number of tests

For a test that timed out on travis and ones that warn about the deadline
test_loop_measure_channels_by_name failed randomly in #1243

During the testing run this one had no more Hypothesis warnings


Dead bushes can't be targeted through

Probably because they do not have an collision.

If they are trying to target through the dead bush and it's not working, then it is because they do have collision

Missed the through word


Update the assignment-2 answer

What changes are you trying to make? (e.g. Adding or removing code, refactoring existing code, adding reports)
Adding the code
What did you learn from the changes you have made?
I have learned linear regression and multi variable linear regression
Was there another approach you were thinking about making? If so, what approach(es) were you thinking of?
n/a
Were there any challenges? If so, what issue(s) did you face? How did you overcome it?
n/a
How were these changes tested?
good
A reference to a related issue in your repository (if applicable)
n/a
Checklist

[x] I can confirm that my changes are working as intended

A2: Complete


Containers/Service Options to add for v0.6

[ ] Factorio
[ ] Minecraft: PE
[ ] Rust
[ ] CS:GO (Works on the 'Other Steam Game', but very popular)
[ ] Others?

[ ] SA:MP (San Andreas Multiplayer)
[ ] Forge Minecraft Server
[ ] SinusBot #171
[ ] ARK
[ ] Space Engineers

[ ] Arma 2/3 (along with DayZ support)
[ ] Space Engineers
[ ] JC2 Multiplayer

We could add all those for people to download (from nest?)

These requests are now being tracked at https://github.com/Pterodactyl/Dockerfiles/projects/1 which is managed by @parkervcp


add support querystring in output name.

as title.

travis CI working something weird.
all 3 failed tests are shows "InterpreterNotFound" error. one is using 2.6 others using 3.3
all other tests are passed.

@lexifdev I think this should be resolved in https://github.com/ezhome/django-webpack-loader/pull/136

Closing as this can be supported by a custom loader: https://github.com/django-webpack/django-webpack-loader/pull/210


show spelling errors in strings

Since strings are usually intended for display, I want spelling errors to show up in my strings when I have spell an syntax highlighting on.  Added to both single and triple quoted strings.

Thanks @jschomay !


[ISSUE #7902] fix:reput thread may quit by throwing error

Fixes #7902

Codecov Report
Attention: Patch coverage is 0% with 1 lines in your changes are missing coverage. Please review.

Project coverage is 42.93%. Comparing base (db4c7da) to head (5ec6fd6).

Files
Patch %
Lines

...org/apache/rocketmq/store/DefaultMessageStore.java
0.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             develop    #7903   +/-   ##
==========================================
  Coverage      42.92%   42.93%
- Complexity      9909     9914    +5
==========================================
  Files           1190     1190
  Lines          86042    86042
  Branches       11081    11081
==========================================
+ Hits           36935    36943    +8
- Misses         44531    44532    +1
+ Partials        4576     4567    -9

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Adding a semicolon for no reason?

tslintout:

ts/components/user/LoginController.ts[7, 1]: space indentation expected

after running tslint-fix :

ts/components/user/LoginController.ts(7,26): error TS1131: Property or signature expected.

Code before tslint-fix :
	export interface ILoginFormData {
		username: string,
		password: string
	}

Code after tslint-fix :
    export interface ILoginFormData {
        username: string,;
        password: string;
    }

Interesting. Could you paste a sample of the code with line numbers from 1?
I've fixed a couple of space indentation issues automatically and they all ran fine.
I plan to spend a lot more time this week and make tslint-fix release ready with 100% code coverage.


PUI: Scan Page

This PR adds an experimental new page: the Scan Page.

This page allows users to scan multiple barcodes at once and execute actions against them. Scans are saved locally.
This is currently WIP as it depends on actions (for parts, stockitems, ...) to be implemented in PUI so they can be called from this page. Nevertheless I would be happy to get feedback.

Updated screenshot

@inventree/triage this would be ready for a feedback round. You can reach the page by selecting "Scanning" in the navigation pane.
You either need to run on localhost or serve via https to test this as access to camera APIs is restricted.
I would be interested if:

the structure makes sense
scanning of barcodes works on your end
the texts make sense

and what actions should be exposed for the available barcodes (see screenshot above)

@matmair new screenshot looks amazing! I'll try to find some time to look at it this weekend :)

@matmair to clarify the intent here, this dedicated barcode page is intended to be separate from the "quick scan" barcode action?
Quick Scan Action
Scans a barcode, and if identified as an "inventree" barcode (e.g part / location / etc) it will navigate the UI to the relevant page. No other actions, just scan
New Barcode Screen
Dedicated for more complex barcode data entry. Scan multiple barcodes, and then perform specific actions with those barcodes:

check into location
receive against purchase order
assign to build order

@SchrodingersGat yes, you described it well.

I'm happy with the general idea, do you want to merge in now and update as we go?

Sounds good @SchrodingersGat


Add health metric to goal cards

Express it as a percentage within a donut chart.
Simple moving average:
d = days of success in last year
health = (d / 360) * 100
Could also use a weighted moving average or exponential moving average:
http://daytrading.about.com/od/indicators/a/MovingAverages.htm
https://en.wikipedia.org/wiki/Moving_average#Weighted_moving_average
https://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average

Would be better if metric was actually % liklihood user will go the next week without a setback. This would be calculated as the inverse of the liklihood the user will have a setback during the next week, as calculated using machine learning based on all available features.
Possible features:

Report history
Partner interventions
Partner report history
Survey responses

Information:

http://stats.stackexchange.com/questions/13335/feature-selection-for-low-probability-event-prediction
https://en.wikipedia.org/wiki/Predictive_modelling
https://www.quora.com/What-is-the-best-way-to-apply-Machine-Learning-algorithm-in-PHP-project-using-PHP-or-any-other-language-with-a-bridge-or-else
http://stackoverflow.com/questions/12527595/how-to-apply-machine-learning-algorithm-in-php
http://stackoverflow.com/questions/3050450/which-langauge-should-i-use-for-artificial-intelligence-on-web-projects
http://phpir.com/support-vector-machines-in-php/

Possible tools:

https://github.com/gburtini/Learning-Library-for-PHP
https://bigml.com/developers
http://php.net/manual/en/book.svm.php
https://libraries.io/search?keywords=machine+learning&languages=PHP

Resolved


pip list via kosmos2 docker image?

Hey, I totally understand that the recommended usage is via docker. (saying this after finding a prior closed issue with this being the answer)
However, as we all know, this isn't an absolute requirement.
Would any kind person be able to provide a pip list for the docker image please?
Thank you 🙏

@caacoe Hi, sorry for the late response.
After setuping the env, I run pip list and the requirements.txt.
After running pip freeze, I get requirements.txt.

Some packages have changed, and I will be updated in Readme later.

thank you, very much appreciated 🙏


Installation of mriqc-learn github repo fails

There is a bug in installing the requirements of the hcph-sops using pip install -r requirements.txt
Collecting git+https://github.com/celprov/mriqc-learn.git@enh/xgboost_model (from -r requirements.txt (line 14))
  Cloning https://github.com/celprov/mriqc-learn.git (to revision enh/xgboost_model) to /private/var/folders/8k/n35g787n5nq7x7mftl9bxlb80000gn/T/pip-req-build-vbtlqwuc
  Running command git clone --filter=blob:none --quiet https://github.com/celprov/mriqc-learn.git /private/var/folders/8k/n35g787n5nq7x7mftl9bxlb80000gn/T/pip-req-build-vbtlqwuc
  Running command git checkout -b enh/xgboost_model --track origin/enh/xgboost_model
  Switched to a new branch 'enh/xgboost_model'
  branch 'enh/xgboost_model' set up to track 'origin/enh/xgboost_model'.
  Resolved https://github.com/celprov/mriqc-learn.git to commit 4cea98eff04c4bd6027e2271f3320a7069162ef5
  Installing build dependencies ... done
  Getting requirements to build wheel ... error
  error: subprocess-exited-with-error

  × Getting requirements to build wheel did not run successfully.
  │ exit code: 1
  ╰─> [33 lines of output]
      Traceback (most recent call last):
        File "/Users/cprovins/miniconda3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in <module>
          main()
        File "/Users/cprovins/miniconda3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main
          json_out['return_val'] = hook(**hook_input['kwargs'])
                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/cprovins/miniconda3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 112, in get_requires_for_build_wheel
          backend = _build_backend()
                    ^^^^^^^^^^^^^^^^
        File "/Users/cprovins/miniconda3/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 77, in _build_backend
          obj = import_module(mod_path)
                ^^^^^^^^^^^^^^^^^^^^^^^
        File "/Users/cprovins/miniconda3/lib/python3.12/importlib/__init__.py", line 90, in import_module
          return _bootstrap._gcd_import(name[level:], package, level)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1310, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
        File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
        File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
        File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
        File "<frozen importlib._bootstrap_external>", line 995, in exec_module
        File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
        File "/private/var/folders/8k/n35g787n5nq7x7mftl9bxlb80000gn/T/pip-build-env-1_mqwtp1/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 16, in <module>
          import setuptools.version
        File "/private/var/folders/8k/n35g787n5nq7x7mftl9bxlb80000gn/T/pip-build-env-1_mqwtp1/overlay/lib/python3.12/site-packages/setuptools/version.py", line 1, in <module>
          import pkg_resources
        File "/private/var/folders/8k/n35g787n5nq7x7mftl9bxlb80000gn/T/pip-build-env-1_mqwtp1/overlay/lib/python3.12/site-packages/pkg_resources/__init__.py", line 2158, in <module>
          register_finder(pkgutil.ImpImporter, find_on_path)
                          ^^^^^^^^^^^^^^^^^^^
      AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'?
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
error: subprocess-exited-with-error

× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> See above for output.

note: This error originates from a subprocess, and is likely not a problem with pip.

Please move to nipreps/mriqc-learn

I have updated mriqc-learn -- you'll need to update your branch.


Unable to retrieve session on Firebase / Google Cloud Functions

Hi,
I am using a variant of this example:
https://github.com/vercel/next.js/tree/canary/examples/with-iron-session
On Firebase hosting as a Cloud Function.
The strategy I use is:
https://medium.com/wesionary-team/deploying-next-js-application-on-firebase-platform-using-cloud-function-with-firebase-hosting-920157f03267
To configure Firebase to deploy the Next project as a Cloud Function, and rewrite accesses to the static "public" folder toward that Cloud Function.
This works fine in a simulated local environment. But, obviously, it doesn't quite work on the deployed solution. The cookie is set (encrypted), but it doesn't seem possible to read the session data back - api/user, line 4, user is undefined.
Would appreciate any advice or recommendation.
Thanks.
https://github.com/vercel/next.js/blob/canary/examples/with-iron-session/pages/api/user.js#L4

I answered my own question.
The reason was that:

If you are using Firebase Hosting + Cloud Functions, __session is the only cookie you can store, by design. This is necessary for us to be able to efficiently cache content on the CDN -- we strip all cookies from the request other than __session.

https://stackoverflow.com/questions/44929653/firebase-cloud-function-wont-store-cookie-named-other-than-session

You're welcome. Apologies for the belated answer. Yes, it is correct.


Add retweets, replies, etc to the command line tool

I've never made a pull request before so many apologies if I'm doing this wrong!
For the command line tool, this adds sections to the report out for the gender breakdown of the users' retweets, replies, quote tweets, and other mentions (i.e., the ones that the user tweets, not ones the user sees). This might be overkill - perhaps better to collapse them all into a single "mentions/RTs/etc" category but I figured better to have more detail now, could be easy for someone else to collapse.
I made this because retweets are one of the main ways I engage with twitter and I wanted to check the gender breakdown of mine.
I hope that this doesn't break the website HTML; I don't think it should. I wasn't sure how to edit that to reflect this because I can't run the full code on my system. I could try to propose edits to reflect these additional categories if you think it would be helpful but I worry that I'd just break it without the ability to check.
Again, my apologies if this is in any way impolite or incorrect - I don't know the norms, etc.

dfgdf

Thanks for the contribution!


bug when editing document with date

Also please make sure the Date is NOT:
"created": { "$date":<PHONE_NUMBER>000}
but rather is showing:
"created": "2015-11-27T08:08:10.781Z"
whis is new Date(created).toJSON()representation


WIP: Refactor Activator functionality into Controller

This is the first draft of removing the activator.

ansible part looks good

PPG 559 is running

We should add tests to explicitly test the migration path from the old to the new schema.

Rebased and merged as https://github.com/openwhisk/openwhisk/commit/79a69ce29b410354992465285d245ac920c5c404.
Nicely done @ChrBi and @markusthoemmes.


multiple jaxb-api jars can cause NullPointerException in ContextFinder

Unrelated to this bug, I have a problem in my app with multiple copies of the jaxb-api in the JVM at once. This leads to a class cast exception in ContextFinder.find(). More about that below.
The immediate problem is that this leads to a very confusing NullPointerException in the error reporting code here:
private static JAXBException handleClassCastException(Class originalType, Class targetType)
{ final URL targetTypeURL = which(targetType); return new JAXBException(Messages.format(Messages.ILLEGAL_CAST, // we don't care where the impl class is, we want to know where JAXBContext lives in the impl // class' ClassLoader originalType.getClassLoader().getResource("javax/xml/bind/JAXBContext.class"), targetTypeURL)); }
The problem is that originalType is "com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl" (from rt.jar in the JDK). getClassLoader() on that type returns null (indicating the bootloader)
Now the background: the JRE has v2.0 of javax.xml.bind, and my OSGi environment has v2.2 of jaxb-api via ServiceMix. My code is invoking the v2.2 version via JAXBContext.newInstance(), but that code finds the context factory from the JRE, so it instantiates com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl which implements the JAXBContext from the JRE instead of the JAXBContext from ServiceMix, thus the class cast exception.
Of course, if I solve my multiple-jar problem, then the null pointer will go away. But that NPE made it REALLY hard to figure out what was actually happening. Hence this bug report.
Environment
OSGi 4.2, Karaf 2.2.2, Talend Service Factory <IP_ADDRESS>, Win7 x64, JDK 1.6.0_26
Affected Versions
[2.2]

I can confirm that this is still a bug with jakarta.xml.bind-api-3.0.0.jar. The problem seems to be that getClassClassLoader(originalType) is blindly presumed to have returned a non-null reference => causing the NPE.

Digging a bit deeper, this seems to be caused by the c.getClassLoader() method returning null:

I hope this helps, in case someone decided to fix the error handling to fail more gracefully. :+1:

...internal...JAXBContextImpl is not an instance of jakarta.xml.bind.JAXBContext, the issue in your case is elsewhere

...internal...JAXBContextImpl is not an instance of jakarta.xml.bind.JAXBContext, the issue in your case is elsewhere

Absolutely, I'm not in any way claiming that this should "work". My point is though that the handleClassCastException should ideally handle these cases more gracefully. In other words, the following method:
    private static JAXBException handleClassCastException(Class originalType, Class targetType) {
        final URL targetTypeURL = which(targetType);

        return new JAXBException(Messages.format(Messages.ILLEGAL_CAST,
                // we don't care where the impl class is, we want to know where JAXBContext lives in the impl
                // class' ClassLoader
                getClassClassLoader(originalType).getResource("jakarta/xml/bind/JAXBContext.class"),
                targetTypeURL));
    }

...should perhaps be modified to something more like this. Or do you see any problems with such an approach?
    private static JAXBException handleClassCastException(Class originalType, Class targetType) {
        final URL targetTypeURL = which(targetType);

        ClassLoader originalTypeClassLoader = getClassClassLoader(originalType);

        if (originalTypeClassLoader != null) {
            return new JAXBException(Messages.format(Messages.ILLEGAL_CAST,
                    // we don't care where the impl class is, we want to know where JAXBContext lives in the impl
                    // class' ClassLoader
                    originalTypeClassLoader.getResource("jakarta/xml/bind/JAXBContext.class"),
                    targetTypeURL));
        }
        else {
            // TODO: create and return another JAXBException in this case, failing gracefully.
        }