allow variable height front pages

Is your feature request related to a problem? Please describe.
  It displays well.

My second front page is mostly empty:

I'd like to provide a target height for this page, so it expands to a more appropriate size for its content.

Describe the solution you'd like
I can get my desired behavior by adjusting the top param of the end rectangle in _getPanelAnimation.
Could we expose a variable for this?
Describe alternatives you've considered
I haven't explored how this will interact with the other BackdropScaffold constructor args.
Maybe PreferredSizeWidget is a useful way to convey the behavior?
Additional context
The Material spec doesn't address whether front pages should have a consistent height.

@mockturtl Have you tried stickyFrontLayer and headerHeight arguments of BackdropScaffold, to get desired UI?

@mockturtl Have you tried stickyFrontLayer and headerHeight arguments of BackdropScaffold, to get desired UI?

Playing with values in example/lib/navigation.dart, my understanding of the stickyFrontLayer behavior is "When closed, the front layer will occupy as much height as possible without occluding the back layer.  If the back layer occupies the entire screen height[1], this parameter has no effect."

[1] This is my use case: my back layer is a large menu.  Apologies for misrepresenting that in the screenshot above.

headerHeight seems to control the height of the front layer in its inactive / closed state (this contradicts my reading of the docs[2]).  Additionally, if stickyFrontLayer == true and headerHeight is less than the available space, headerHeight is ignored.

[2] It might be desirable to document the control flow inside the _headerHeight getter and _getPanelAnimation, if it's not too cumbersome to explain.

From what I can tell, the existing constructor args for BackdropScaffold don't allow me to specify "front page A opens to height X, front page B opens to height Y."
@willlarche Does Material have an opinion on a Backdrop with variable-height front pages?  I'll double check Crane.

Playing with values in example/lib/navigation.dart, my understanding of the stickyFrontLayer behavior is "When closed, the front layer will occupy as much height as possible without occluding the back layer.  If the back layer occupies the entire screen height[1], this parameter has no effect."

[1] This is my use case: my back layer is a large menu.  Apologies for misrepresenting that in the screenshot above.

headerHeight seems to control the height of the front layer in its inactive / closed state (this contradicts my reading of the docs[2]).  Additionally, if stickyFrontLayer == true and headerHeight is less than the available space, headerHeight is ignored.

[2] It might be desirable to document the control flow inside the _headerHeight getter and _getPanelAnimation, if it's not too cumbersome to explain.

From what I can tell, the existing constructor args for BackdropScaffold don't allow me to specify "front page A opens to height X, front page B opens to height Y."
@willlarche Does Material have an opinion on a Backdrop with variable-height front pages?  I'll double check Crane.

@mockturtl Thanks for pointing out problem in headerHeight docs, will correct it.
Regarding your requirement, as far as I understand(from checking Crane example), you want to have "extra" space under appbar, that is visible even when the backLayer is concealed.
A solution for that would be to set bottom  of BackdropAppBar. Check the following code (modified example/main.dart):
MaterialApp(
      title: 'Backdrop Demo',
      home: BackdropScaffold(
        appBar: BackdropAppBar(
          title: Text("Backdrop Example"),
          actions: <Widget>[
            BackdropToggleButton(
              icon: AnimatedIcons.list_view,
            )
          ],
          bottom: PreferredSize(
            child: Column(
              children: [
                Text("Menu 1"),
                Text("Menu 2"),
              ],
            ),
            preferredSize: Size.fromHeight(100),
          ),
        ),
        backLayer: Center(
          child: Text("Back Layer"),
        ),
        subHeader: BackdropSubHeader(
          title: Text("Sub Header"),
        ),
        frontLayer: Center(
          child: Text("Front Layer"),
        ),
      ),
    );

Screenshot for it:

As far as I understand, the "extra" (always visible stuff) is part of AppBar and not backLayer (which is revealed and concealed)

@mockturtl Thanks for pointing out problem in headerHeight docs, will correct it.
Regarding your requirement, as far as I understand(from checking Crane example), you want to have "extra" space under appbar, that is visible even when the backLayer is concealed.
A solution for that would be to set bottom  of BackdropAppBar. Check the following code (modified example/main.dart):
MaterialApp(
      title: 'Backdrop Demo',
      home: BackdropScaffold(
        appBar: BackdropAppBar(
          title: Text("Backdrop Example"),
          actions: <Widget>[
            BackdropToggleButton(
              icon: AnimatedIcons.list_view,
            )
          ],
          bottom: PreferredSize(
            child: Column(
              children: [
                Text("Menu 1"),
                Text("Menu 2"),
              ],
            ),
            preferredSize: Size.fromHeight(100),
          ),
        ),
        backLayer: Center(
          child: Text("Back Layer"),
        ),
        subHeader: BackdropSubHeader(
          title: Text("Sub Header"),
        ),
        frontLayer: Center(
          child: Text("Front Layer"),
        ),
      ),
    );

Screenshot for it:

As far as I understand, the "extra" (always visible stuff) is part of AppBar and not backLayer (which is revealed and concealed)

@mockturtl Hi! So wonderful to see this implementation. Much thanks to everyone working on expanding Material coverage in the community.
We have no issue with that! Go for it!

@mockturtl Hi! So wonderful to see this implementation. Much thanks to everyone working on expanding Material coverage in the community.
We have no issue with that! Go for it!

Regarding your requirement, as far as I understand(from checking Crane example), you want to have "extra" space under appbar, that is visible even when the backLayer is concealed

Not really.  I want the front layer's height to be configurable for each page.  I'm not sure how to explain differently.
Back layer and appbar look good

Front layer: Current behavior

Front layer: Desired behavior

Regarding your requirement, as far as I understand(from checking Crane example), you want to have "extra" space under appbar, that is visible even when the backLayer is concealed

Not really.  I want the front layer's height to be configurable for each page.  I'm not sure how to explain differently.
Back layer and appbar look good

Front layer: Current behavior

Front layer: Desired behavior

@mockturtl Ok, got your point. Go ahead with the PR! BTW, what should we name the param? Any idea?
Few of my suggestions:

double frontLayerStartFrom: 0
double frontLayerTopMargin: 0
??

Also while filing PR can you correct the docs for headerHeight - instead of using "closed" and "open" term (earlier we used them), use phrases like "when backLayer is concealed/revealed", that should avoid the confusion with the usage of `headerHeight.

@mockturtl Ok, got your point. Go ahead with the PR! BTW, what should we name the param? Any idea?
Few of my suggestions:

double frontLayerStartFrom: 0
double frontLayerTopMargin: 0
??

Also while filing PR can you correct the docs for headerHeight - instead of using "closed" and "open" term (earlier we used them), use phrases like "when backLayer is concealed/revealed", that should avoid the confusion with the usage of `headerHeight.

This has landed with v0.5.0 on pub.dev.


Deploy all 3 backend xi, uk, default

Deploys all 3 backends (UK, XI, default)

This change deploys each backend in sequence and add the network policy for each.
It is functional but does take a long, so while I'm happy to get this in, I already have another approach that should be easy to implement.
Instead on unrolling the deploy script, my plan is to use parallel deployment of each back end instance, using a matrix job.
This should not only make deployments quicker, but also reduce the amount of time the back end are running different codebases.


ISPN-5332 Make sure the Query API exposes IndexReader(s) in some way

A proposal to hide the Advanced Query API, using the same unwrap pattern which Hibernate uses to expose Hibernate capabilities to the JPA API, and the same we used to reorganize the Hibernate Search API.
This should easily differentiate between API and not-so-public "power users" API but still relatively convenient to use.

https://issues.jboss.org/browse/ISPN-5332

Looks nice!

Pulling ..

Integrated. Thanks @Sanne !


Dashboard: steps are sticky when scrolling long list

Steps are sticky when scrolling long list.
Safari v 8.0.7 (10600.7.12)
OS v10.10.4

Looks related https://github.com/allure-framework/allure-core/issues/410

Closed as no response


feat: Make InitStep a first-class-citizen to add user-facing reporting around api / compiler

Currently, we're abusing the Step and Container models to allow reporting on build setup (eg when Docker initializes the Network and Volumes). This means that we have to check for the special "init" stage/step/container in many places. This makes "Init" reporting a first-class-citizen, instead of shoe-horning it into steps and containers (which was admittedly an excellent MVP).
An InitStep is a report by a "reporter" about a discrete part of the build setup. The "reporter" would be a logical part of the stack, for example "Pipeline Compiler", "Docker Runtime", "Kubernetes Runtime", ... For example, we could have these reporters be discrete initsteps:

Pipeline Compiler: report info/debug logs
Docker Runtime: report network setup
Docker Runtime: report volume setup
Kubernetes Runtime: Pod YAML

Similar to a Step, where the log data is stored in a separate Log struct/table, the InitStep is also associated with a Log that stores the actual log/report. The InitStep however can also specify a mimetype for the output, which is meant for eventual consumption by the UI to do syntax highlighting if relevant.
So, this adds:

database/initstep
router/initstep, router/middleware/initstep, api/initstep, mock/server/initstep
InitStep support in database/log
InitStep support in router/log, router/middleware/log, api/log, mock/server/log

And then I also added example logs in and around the compiler (in api/webhook and api/build). Not everything that compiles a template has a build it can associate a log with, so logs get created only after the build is ready.

Closed with https://github.com/go-vela/community/pull/771


Update README.md

fix function call

It's not incorrect, Template instances are callable

But I get the following error:
ERROR: MethodError: objects of type Template are not callable

Use master branch 😊

Ah okay, sorry. However, I think it is a good idea to point to both variants.


map-get flagged and variable for property / color

What version of Sass Lint are you using?
1.10.2
Please include any relevant parts of your configuration
  no-color-hex: 0
  no-color-keywords: 2
  no-color-literals:
    - 2
    - allow-map-identifiers: true
    - allow-rgba: true
    - allow-variable-identifiers: true
  variable-for-property:
    - 2
    - properties:
        - color
        - font

What did you expect to happen?
This is expected, but (see below)
color: map-get($uiDarkMap, display1Color);
Is there an exception for this function of map-get, if what's being passed is a variable? I want colors to have no hex values, but I want variables to be a hex value.
What actually happened? Please include any error messages given to you by Sass Lint.
getting this error:
variable-for-property: Values for properties of type 'color' may only be variables

Related to #853 I reckon. I think an overhaul of this rule is required now. It's way too fiddly. My fault..

Released in 1.12.0


Case sensitivity in packages names

Hi, in the 'dependencies' section of package.json you specified 'jquery' package as a dependency, but within draggable.js you require it as 'jQuery'.
On case-sensitive file systems (all linux) this will break, as require() is case-sensitive.
The possible solution is to require jquery with lowercase for all OS/filesystems compatibility.

thanks for the report. let me know if the fix doens't work for you.


Potential deadlock : createoffer when ice connection state changing

Your environment.

Version: fork from v3.0.26
Browser:  client use pion
Other Information - stacktraces, related issues, suggestions how to fix, links for us to have context

goroutine 1
5574     2  0x00000000009382e5 in github.com/pion/ice/v2.(*Agent).run
5575         at /home/luog/go/pkg/mod/github.com/pion/ice/v2@v2.1.6/agent.go:177
5576     3  0x000000000093c0f9 in github.com/pion/ice/v2.(*Agent).GetLocalUserCredentials
5577         at /home/luog/go/pkg/mod/github.com/pion/ice/v2@v2.1.6/agent.go:859
5578     4  0x000000000096dc8a in github.com/pion/webrtc/v3.(*ICEGatherer).GetLocalParameters
5579         at /home/luog/go/pkg/mod/github.com/cnderrauber/webrtc/v3@v3.0.24/icegatherer.go:200
5580     5  0x0000000000985d3d in github.com/pion/webrtc/v3.(*PeerConnection).generateMatchedSDP
5581         at /home/luog/go/pkg/mod/github.com/cnderrauber/webrtc/v3@v3.0.24/peerconnection.go:2216
5582     6  0x000000000097a21f in github.com/pion/webrtc/v3.(*PeerConnection).CreateOffer
goroutine 2
5517     3  0x0000000000951405 in github.com/pion/ice/v2.(*Agent).updateConnectionState.func1
5518         at /home/luog/go/pkg/mod/github.com/pion/ice/v2@v2.1.6/agent.go:559
5519     4  0x0000000000950719 in github.com/pion/ice/v2.(*Agent).taskLoop.func1
5520         at /home/luog/go/pkg/mod/github.com/pion/ice/v2@v2.1.6/agent.go:196
5521     5  0x0000000000938485 in github.com/pion/ice/v2.(*Agent).taskLoop
5522         at /home/luog/go/pkg/mod/github.com/pion/ice/v2@v2.1.6/agent.go:225
goroutine 3
5551      7  0x000000000097919a in github.com/pion/webrtc/v3.(*PeerConnection).onICEConnectionStateChange
5552          at /home/luog/go/pkg/mod/github.com/cnderrauber/webrtc/v3@v3.0.24/peerconnection.go:467
5553      8  0x00000000009a36d7 in github.com/pion/webrtc/v3.(*PeerConnection).createICETransport.func1
5554          at /home/luog/go/pkg/mod/github.com/cnderrauber/webrtc/v3@v3.0.24/peerconnection.go:781
5555      9  0x000000000096fdf4 in github.com/pion/webrtc/v3.(*ICETransport).onConnectionStateChange
5556          at /home/luog/go/pkg/mod/github.com/cnderrauber/webrtc/v3@v3.0.24/icetransport.go:224
5557     10  0x00000000009a2d95 in github.com/pion/webrtc/v3.(*ICETransport).Start.func1
What did you do?

I call pc.CreateOffer when ice is connecting, means there is ice connctions state is changing. Then peerconnection is deadlock.
In stacktrace above, goroutine1 : CreateOffer hold pc.mu, and call GetLocalParameters -> agent.run(...) then wait at agent.go:180
	select { 	case <-ctx.Done(): 		return ctx.Err() 	case a.chanTask <- task{t, done}: 		<-done 		return nil 	}
But in goroutine 2 at agent.go:225, agent taskloop may call onConnectionStatechange, and wait at agent.go:559
		a.afterRun(func(ctx context.Context) { 			a.chanState <- newState 		})
Then in goroutine3 at agent.go 424, the recv from chanState my block in onConnectionStateChange, because it try to lock pc.mu, and the mutex is hold by goroutine1.  (agent.onConnectionStateChange -> icetransport.onConnectionStateChange -> peerconnection.onIceConnectionStateChange).
`
pc.mu.Lock()
pc.iceConnectionState = cs
handler := pc.onICEConnectionStateChangeHandler
pc.mu.Unlock()
pc.log.Infof("ICE connection state changed: %s", cs)
if handler != nil {
	go handler(cs)
}

`
What did you expect?
No deadlock.
What happened?
Deadlock in peerconnection if call CreateOffer when ice is connecting. (occasional)
I found that because Agent's chanState has no buffer, should we use a buffered channel to avoid deadlock?
Although we can require user of pion don't call createoffer when ice is not connected, but I think avoid deadlock in library is better.

I fixed a similar deadlock some time before. Better to resolve the potential race in pion/ice, maybe.

Yes I see your pull request about the deadlock. I think you are right.  The problem is from pion/ice

Nice catch @cnderrauber
Could we make iceConnectionState and onICEConnectionStateChangeHandler an atomic? That way onICEConnectionStateChange doesn't need to take the lock.
Neither seemed to be used in a transaction, so it would be ok if either were changed at anytime.

Nice catch @cnderrauber
Could we make iceConnectionState and onICEConnectionStateChangeHandler an atomic? That way onICEConnectionStateChange doesn't need to take the lock.
Neither seemed to be used in a transaction, so it would be ok if either were changed at anytime.

Yes, I think it will work.
I want to know why the channel in agent are all unbuffered,does it is by design?

I didn't make a decision to do unbuffered/buffered. I just did the default of unbuffered.
If you want to open a PR to add a buffer I think that would be ok! I worry it wouldn't fix the root issue though, I would have the follow questions.

How did you pick the buffer size? It would have to be an arbitrary decision.
Could we still hit the deadlock if we don't read fast enough?

The nice thing about the atomic change is that it fixes the root cause.

Yes, I agree to you about the atomic

I've just hit the problem, is there anything being done about this issue?


baseClassMappings doesn't work as documented

Describe the bug
Per docs this
    baseClassMapping('.*/com/.*', 'com.example.ComBase')

Should match to a contract inside src/test/resources/contract/com/
But it doesn't.
Sample
As seen in debug output the package will be just com. It will not match anything with a /
org.springframework.cloud.contract.verifier.builder.BaseClassProvider - Matching pattern for contract package [com] with setup {.*com.*=com.example.admin.TykContractBase} is [Optional[.*com.*=com.example.admin.TykContractBase]]

According to the regex101 your pattern indeed won't match https://regex101.com/r/bbXAaE/1
Instead, your pattern should look like this https://regex101.com/r/pKunCn/1 (.*\/com\/.* - with escaped slashes)

Well, it's not "my" pattern, it comes from the SCC documentation.

oops... thanks for mentioning that then

But then still, I think the value to be matched is just com, not /com/ according to the log quoted above

I'm still looking into that, maybe there's a bug somewhere

I don't see any such mention in our docs anymore so I guess this is fixed, or am I missing sth?

I still see this in https://cloud.spring.io/spring-cloud-contract/reference/html/gradle-project.html#by-mapping

This is our old doc https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/ and this is our new doc https://docs.spring.io/spring-cloud-contract/reference/

This is our old doc https://docs.spring.io/spring-cloud-contract/docs/current/reference/html/ and this is our new doc https://docs.spring.io/spring-cloud-contract/reference/

TIL... there is no indication in the docs itself that it's obsolete
In general trying to find the right docs for SCC is a real pain.
Google mostly leads you to some obsolete 2.x docs, and even getting to those newer-obsolete docs requires some effort.
I'm not sure how much can be done... maybe you could just take down the old docs (or remove them from indexing with robots.txt etc) to avoid confusion?

The source of truth is here - https://spring.io/projects/spring-cloud-contract . We will look into doing sth about the old docs migration.

OK hopefully I fixed all the old docs to start pointing to the links to our new docs. Thanks again for pointing this out


ISSUES-117 support temporary table management

fix #117
I hereby agree to the terms of the CLA available at: https://yandex.ru/legal/cla/?lang=en

@ludv1x Thank for your reply,I have made the modification。Please help review the changes


Expected directory contents type to be specified (one of git, manual, etc.)

Hi, could you please clarify what exactly should be specified, and where?
to reproduce:
git clone https://github.com/k14s/vendir
cd vendir/examples/image
vendir sync

output:
Error: Validating config: Validating directory 'vendor' (0): Validating directory contents 'docker.io/dkalinin/consul-helm-naked' (0): Expected directory contents type to be specified (one of git, manual, etc.)

@kvaps we have not cut a release yet that includes several source types (image, helm, etc.). currently working on a few additional bits before making 0.11.0.

included in https://github.com/k14s/vendir/releases/tag/v0.11.0


[Feature] Implement DELETE dataset (in general)

Description
We need to implement the DELETE method in our API to remove a dataset of a CKAN dataset. This will allow us to delete the existing datasets (s3, url or token datasets) associated with a dataset.
Expected Behavior
The API should support the DELETE method to permanently delete the dataset of an existing dataset from the CKAN instance.
Actual Behavior
API does not support deleting a dataset using the DELETE method.

 scidx-api: Implement DELETE dataset #54


ci(lint): enable errorlint linter

Signed-off-by: Matthieu MOREL<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

32 of 303 (10.56%)  changed or added relevant lines in 37 files are covered.
3 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.01%) to 55.327%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pkg/errors/errors.go
1
2
50.0%

plugins/ipam/dhcp/lease.go
0
1
0.0%

plugins/ipam/host-local/backend/allocator/config.go
1
2
50.0%

plugins/meta/firewall/firewalld.go
0
1
0.0%

plugins/meta/firewall/iptables.go
0
1
0.0%

plugins/meta/portmap/chain.go
0
1
0.0%

pkg/ip/addr_linux.go
0
2
0.0%

pkg/ip/utils_linux.go
0
2
0.0%

pkg/utils/conntrack.go
0
2
0.0%

plugins/ipam/static/main.go
0
2
0.0%

Files with Coverage Reduction
New Missed Lines
%

plugins/main/bridge/bridge.go
3
68.74%

Totals

Change from base Build<PHONE_NUMBER>:
0.01%

Covered Lines:
4040

Relevant Lines:
7302

💛  - Coveralls


[C#] feat: LLMClient unit tests

Linked issues
closes: #1114
Details
Add unit tests for LLMClient.cs
Attestation Checklist

[X] My code follows the style guidelines of this project

I have checked for/fixed spelling, linting, and other errors

I have commented my code for clarity

I have made corresponding changes to the documentation (we use TypeDoc to document our code)

My changes generate no new warnings

I have added tests that validates my changes, and provides sufficient test coverage. I have tested with:

Local testing
E2E testing in Teams

New and existing unit tests pass locally with my changes

Additional information

Feel free to add other relevant information below


New Linter: textlint

https://github.com/joeybaker/SublimeLinter-textlint
Uses textlinter on markdown and text files.

Please tag a new release and I'll get it into Package Control. Thanks!

Sorry I missed this, please fix your jenkins badge as well.

Will do!

Should be all set now. Sorry about that.

https://github.com/SublimeLinter/package_control_channel/commit/c0c071fe96437ec67b1f437186034f1d25459b64 Thanks again! Should show up within the hour.

Thanks!


Add SerializerFixtures to store/restore model instances serialized in JSON files

Codecov Report

Merging #75 (ae3629b) into master (3762af1) will increase coverage by 0.05%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #75      +/-   ##
==========================================
+ Coverage   95.06%   95.11%   +0.05%
==========================================
  Files         104      104
  Lines        3747     3788      +41
==========================================
+ Hits         3562     3603      +41
  Misses        185      185

Impacted Files
Coverage Δ

bx_django_utils/__init__.py
100.00% <100.00%> (ø)

bx_django_utils/test_utils/fixtures.py
92.59% <100.00%> (+1.28%)
:arrow_up:

...utils_tests/test_app/tests/test_fixtures_helper.py
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Mobile - need mobile specific banners

This does not look mobile friendly in my opinion as buttons are difficult to read and press:

This is as per mockups as possible and has been like this for quite a while.
@Xymmer should we align with Manu on this topic?

good idea, let's ask if we can get mobile-specific images

We have 4 different sizes for all main banners: Mobile, Tablet, Desktop and Widescreen.
See attached a few examples of banners for the mobile inflection point.
Not sure about the ones on the bottom, these are old. I didn't create them and I am not sure they have a responsive version for them so maybe we can just update them. Let me know if we need additional banners?


Add Model-Version: WebUI asks for "Firmware Digests" instead of "FirmwareInformation" (firmwareInformation in DCL)

When adding a Model-Version, the WebUI asks for "Firmware Digests" instead of "Firmware Information" (firmwareInformation in DCL).
Meaning that it doesn't populate in the DCL and that field is not Mutable, so no way to fix it.

This issue was fixed in release v1.0.8


ESP resetting constantly when broker not reachable

Thank you for the lib, works good.
But there is one issue: When the broker is not reachable, an ESP32 is resetting constantly (most likely WDT reset). You can easily test this whith your provided example code (no WebSocket, no ssl) and setting a wrong port, like e.g. 1884 (no broker there).
Any advice? Why is it blocking instead of returning an error?
Best regards

Fixed by https://github.com/hideakitai/MQTTPubSubClient/pull/19


Style DSL

I had a go at hacking a style DSL. It seems to work. I'm sure you could pick it apart but maybe it's a start for some ideas. XAML really should die!!
module Control =
    open Avalonia.Styling
    open Avalonia.Controls
    open FSharpx
    let styling stylesList =
        let styles = Styles()
        for style in stylesList do
            styles.Add style
        Control.styles styles

    let style (selector:Selector->Selector) (setters:IAttr<'a> seq) =
        let s = Style(fun x -> selector x )
        for attr in setters do
            match attr.Property with
            | Some p ->
                match p.accessor with
                | InstanceProperty x -> failwith "Can't support instance property"
                | AvaloniaProperty x -> s.Setters.Add(Setter(x,p.value))
            | None -> ()
        s

and then in my view
  let private binFileTemplate (indexedBinFile: IndexedBinFile) (binFileViewer:BinFile->unit) (dispatch: Msg -> unit) =
        let (id, binFile) = indexedBinFile
        let foreground =
            match binFile.eq_status with
            | DEGREE_EQUAL                                             -> "green"
            | DEGREE_DIFFERENT                                         -> "red"
            | DEGREE_EXCEPTION_0|DEGREE_EXCEPTION_1|DEGREE_EXCEPTION_2 -> "yellow"
            | DEGREE_SIMILAR|DEGREE_EQUAL_IN_TOLERANCE                 -> "darkgreen"
            | _                                                        -> "brightred"

        (* create row for name, eq_status, deviation *)
        StackPanel.create [
            StackPanel.orientation Orientation.Horizontal
            StackPanel.background "black"
            StackPanel.onDoubleTapped (fun _ -> ViewBinFile(binFileViewer, binFile) |> dispatch )
            let style = [
                TextBlock.width columnWidth
                TextBlock.foreground foreground
                TextBlock.horizontalAlignment HorizontalAlignment.Left
            ]
            StackPanel.children [
                TextBlock.createFromSeq <| seq {
                    yield TextBlock.text binFile.name
                    yield! style
                }
                TextBlock.createFromSeq <| seq {
                    TextBlock.text (binFile.eq_status |> DU.toString )
                    yield! style
                }
                TextBlock.createFromSeq <| seq {
                    TextBlock.text (binFile.deviation |> sprintf "%g")
                    yield! style
                }
            ]
        ]

Strangely the above didn't quite work. On the first rendering of the list box that the above template was a data template for it rendered the correct colors. On the second rendering after filtering or sorting the style was locked to the index of the list and not reapplied. For the moment I have used a more FPish strategy for styling.
    let private binFileTemplate (indexedBinFile: IndexedBinFile) (binFileViewer:BinFile->unit) (dispatch: Msg -> unit) =
        let (id, binFile) = indexedBinFile
        let foreground =
            match binFile.eq_status with
            | DEGREE_EQUAL                                             -> "green"
            | DEGREE_DIFFERENT                                         -> "red"
            | DEGREE_EXCEPTION_0|DEGREE_EXCEPTION_1|DEGREE_EXCEPTION_2 -> "yellow"
            | DEGREE_SIMILAR|DEGREE_EQUAL_IN_TOLERANCE                 -> "darkgreen"
            | _                                                        -> "brightred"

        (* create row for name, eq_status, deviation *)
        StackPanel.create [
            StackPanel.orientation Orientation.Horizontal
            StackPanel.background "black"
            StackPanel.onDoubleTapped (fun _ -> ViewBinFile(binFileViewer, binFile) |> dispatch )
            let style = [
                TextBlock.width columnWidth
                TextBlock.foreground foreground
                TextBlock.horizontalAlignment HorizontalAlignment.Left
            ]
            StackPanel.children [
                TextBlock.createFromSeq <| seq {
                    yield TextBlock.text binFile.name
                    yield! style
                }
                TextBlock.createFromSeq <| seq {
                    TextBlock.text (binFile.eq_status |> DU.toString )
                    yield! style
                }
                TextBlock.createFromSeq <| seq {
                    TextBlock.text (binFile.deviation |> sprintf "%g")
                    yield! style
                }
            ]
        ]

It's a pity that the create methods accept List<'a> rather than Seq<'a>. I've had to create an overload
module TextBlock =
    let createFromSeq s = TextBlock.create (s |> Seq.toList)

but that would have to be done for all controls which is unfortunate. Is there any way to change the create methods to Seq<'a> and have them continue to work. I don't think so because create is a module function and you can't overload module functions and F# doesn't understand covariance :(

Ahhh...I just realized you can use yield and yield inside a list builder so I can write
            StackPanel.children [
                TextBlock.create [
                    yield TextBlock.text binFile.name
                    yield! style
                ]
                TextBlock.create [
                    TextBlock.text (binFile.eq_status |> DU.toString )
                    yield! style
                ]
                TextBlock.create [
                    TextBlock.text (binFile.deviation |> sprintf "%g")
                    yield! style
                ]
            ]

and no need for anything to be changed.

Strangely the above didn't quite work. On the first rendering of the list box, that the above was a data template for, it rendered the correct colors for each row. On the second rendering after filtering or sorting the style was locked to the index of the list and not reapplied. For the moment I have used a more FPish strategy for styling.
    let private binFileTemplate (indexedBinFile: IndexedBinFile) (binFileViewer:BinFile->unit) (dispatch: Msg -> unit) =
        let (id, binFile) = indexedBinFile
        let foreground =
            match binFile.eq_status with
            | DEGREE_EQUAL                                             -> "green"
            | DEGREE_DIFFERENT                                         -> "red"
            | DEGREE_EXCEPTION_0|DEGREE_EXCEPTION_1|DEGREE_EXCEPTION_2 -> "yellow"
            | DEGREE_SIMILAR|DEGREE_EQUAL_IN_TOLERANCE                 -> "darkgreen"
            | _                                                        -> "brightred"

        (* create row for name, eq_status, deviation *)
        StackPanel.create [
            StackPanel.orientation Orientation.Horizontal
            StackPanel.background "black"
            StackPanel.onDoubleTapped (fun _ -> ViewBinFile(binFileViewer, binFile) |> dispatch )
            let style = [
                TextBlock.width columnWidth
                TextBlock.foreground foreground
                TextBlock.horizontalAlignment HorizontalAlignment.Left
            ]
            StackPanel.children [
                TextBlock.createFromSeq <| seq {
                    yield TextBlock.text binFile.name
                    yield! style
                }
                TextBlock.createFromSeq <| seq {
                    TextBlock.text (binFile.eq_status |> DU.toString )
                    yield! style
                }
                TextBlock.createFromSeq <| seq {
                    TextBlock.text (binFile.deviation |> sprintf "%g")
                    yield! style
                }
            ]
        ]

Hmm, need to look into this further. I think patching / diffing Styles is the hard part. Classes do work well if they styles need to change.
It would be really nice to have this for style classes.

It's a pity that the create methods accept List<'a> rather than Seq<'a>. I've had to create an overload
module TextBlock =
    let createFromSeq s = TextBlock.create (s |> Seq.toList)

but that would have to be done for all controls which is unfortunate. Is there any way to change the create methods to Seq<'a> and have them continue to work. I don't think so because create is a module function and you can't overload module functions and F# doesn't understand covariance :(

Hmm, yeah. maybe it would make sense to change it everywhere to:
#seq<IAttr<'view>> -> IView<'view>

See comment above..... you can use yield and yield! inside list builders.

I don't really understand how the virtual dom / diffing / patching works. If you happen to write a blog post on what's going on then I would love to read it.

Yeah, I should do that (and maybe add it to the Wiki - not just because I don't have a blog 😃). It's actually not that complicated (or at least I trie to keep things simple).

Another (maybe) bug with style diffing. If add duplicate properties to a textblock then I would assume that last one wins. ie
TextBlock.create [
    TextBlock.width 100.0
    TextBlock.width 200.0
]

However I've seen, at least in the context of my datatemplate that it seems to randomly pick between the two. This is important when using yield! to do styling. My code looked like
                TextBlock.create [
                    yield! style
                    TextBlock.text binFile.name
                    ToolTip.tip binFile.name
                    TextBlock.width columnWidth
                ]

with the default in style and overrides in the array.


Fixed desktop icon in Ubuntu.

Fixes issue #1373. This pull request substitutes #1374, since the original repository from which that pull request was made has been deleted.
Brief summary of changes
Changed INSTALL script so the opensim.desktop file is generated correctly.
Testing I've completed
I've installed the application using this script and checked that OpenSim is appearing in the applications menu and working.
CHANGELOG.md (choose one)

no need to update because we don't distribute the application on Ubuntu.

@AlbertoCasasOrtiz Are we using opensim lower case across the board on linux? if so and the functionality works feel free to merge since we have barely any other users on linux/ubuntu. Thank you

Yes, the opensim script used to invoke OpenSim in Ubuntu is lower case. I tested this on 18.04 20.04 and 22.04 a while ago.


Enhance "Move" "select" button UX.

Mouse navigation is still hard to understand and should be improved.

New version published, let's see how it goes.


Add retries to .travis.yml install section as well

Have been seeing a fair amount of flakiness with these install steps


Feature: fetch entire k8s Config Map or Secret

The k8s fetch capability is great - thanks!
Is there any possibility of adding the ability to fetch the entire config map / secret rather than just specific keys?
Sometimes its easier to fetch the entire thing rather than explicitly reference each individual key to avoid multiple trips.

PR is welcome


Unique ID for embedded SVGs

Hi, is it possible to set unique ID for embedded SVGs?

Could you please explain in detail, with example?

I mean inline SVGs, rather than linking with an <img> tag. Is it possible to change inlined SVGs ids.

no, it's not possible with this tool

@tanooshan The whole idea about SVGInject is to make external SVGs inline. There is no functionality to process SVGs that are already in the DOM.


Update to JSCS 2.6

Closes #78.
Deprecate rules and point users upstream.

Looks good. We need to enable the new ones in lib/jscsrc.json also.
This will have to be pending until 2.6.0 of JSCS is released...

@rwjblue which new ones?
They're already enabled in the JSCS (see disallowVar here)

Ahh, I didn't pay attention that the upstream rules use the same names.  In that case, we can completely remove our custom rules (because the rule names and values are compatible).  I'd like to keep the good/bad tests though, because I want to use them to auto-generate a style guide #someday.

@rwjblue updated the PR.
I didn't delete https://github.com/dockyard/ember-suave/blob/master/lib/rules/require-template-strings-for-concatenation.js. I also didn't push that upstream, since there is http://jscs.info/rule/requireTemplateStrings.
Is that alright, or is that rule different enough to push upstream as well?

I wonder if we can add an option to requireTemplateStrings upstream to make it pass our tests.
Assuming that is possible, since the rule name is different:

we would have to keep our rule around (like you did initially in this PR) with a warning suggesting to remove usage of that rule
update our lib/jscsrc.json to use the upstream version

@rwjblue does that rule's { "allExcept": ["stringConcatenation"] }  option cover that functionality?

You can change it and see if the tests pass, I suspect that what @brzpegasus was mentioning in https://github.com/dockyard/ember-suave/issues/78#issuecomment-156872517 will be an issue.

https://github.com/jscs-dev/node-jscs/tree/v2.6.0 is released, can you rebase and confirm all is working?

LGTM

@seanpdoyle - Due to https://github.com/dockyard/ember-suave/blob/master/lib/jscsrc.json#L80, we will be triggering the warning for requireTemplateStringsForConcatenation warning to all users of ember-suave.  Can you change our lib/jscsrc.json to use "requireTemplateStrings": { "allExcept": ["stringConcatenation"] }?

Actually, in the interest of getting a release out soon to fix the error described in https://github.com/dockyard/ember-suave/issues/84, can you just remove the warning and we can fix that in a subsequent release?

@rwjblue :+1:

Released in<EMAIL_ADDRESS>@seanpdoyle - If you have time, would you mind trying to PR changing from our custom template string rule to the main one, and adding that warning (now that we aren't on a time crunch)?

@rwjblue I think you were right in that they're not equivalent behavior.
Do we still want to deprecate the custom version?

Do we still want to deprecate the custom version?

Yes, once you fix it upstream. :smiling_imp:

:laughing:
Do you think we'd be better off introducing a new rule or extending the existing rule?

@seanpdoyle - Lets make a new issue to discuss further.

In the workforcetestg1_workers project Anargyros Tomaras has been added as a worker. Adding this same user as a dispatcher fails.
This query http://servicesdev.arcgis.com/a910db6b36ff4066a3d4131fccc3da9b/arcgis/rest/services/assignments_ff3c581b47274d8389b9f07f5333783f/FeatureServer/0/query?f=json&returnIdsOnly=true&returnCountOnly=true&where=dispatcherId%3Dundefined&returnGeometry=false&spatialRel=esriSpatialRelIntersects&token=M5PcdfU-OBk1ZzPHyKyonxT-3IiUtiuM6MFEIjNdpQEZHLFPiagnKQT-CmeBdIf5tcWFfUvv1cPVAiY1gM_-tONSqzN5QLs87yyeRraGMEv_qp02_-bM_vSi4yivUOK-25j2rV92Jjv-PrM5M9p6DfUEl-65VhlH_a5VusGLbQULERwaFDanamfYGs-GFGOmrcUb4AbXsgussJlkbZUp_kTfkk2NIZ5F8Q0TZkBHxdMSwLHfhb8cJnLg_VRKCCdH8ueIHcYYQ1zJByzMtzTsdA.. contains an undefined dispatcherId


Updating the UI of Dark/Light mode button

Chaing the UI of Dark/Light Mode Button #268

Screenshot

dark mode

light mode

Feature

Enhancing the user experience with seamless transitions for a smoother journey

@Lobi29 deploy failing due to lint errors, could you run pnpm lint-fix along with the upcoming changes?

For future, you can also configure Prettier in your code editor and auto format the file as you are working on it.

For future, you can also configure Prettier in your code editor and auto format the file as you are working on it.

@Lobi29 support for that has been added in https://github.com/coronasafe/leaderboard/commit/6e12824aba7ed5d1cfdd68f59028c909e4c2e672
Pulling the latest main to this branch should help

Thank your for suggestions,


MEN-2056 Document conversion process for Debian, Ubuntu and Raspbian

Refactor Mender documentation. Add information about Mender conversion scripts.

Is there any way to break this down into more manageable chunks?  It's pretty difficult to review this as is.

@kacf @estenberg I propose to merge my PR with master branch. Currently we are working on adding tests for conversion tools. There is a risk, that we need to modify conversion scripts to meet requirements of the test infrastructure.

I am a bit late to this, but I found a few issues that are most easily seen if you browse the entire doc (https://docs.mender.io/development).
Comments on Device integration section (will follow up with Artifacts):

The note "Mender has four reference devices already integrated..." is duplicated on https://docs.mender.io/development/devices/system-requirements and https://docs.mender.io/development/devices/system-requirements/yocto

Why are we tailoring the conversion script to BeagleBone and Raspberry Pi 3 on https://docs.mender.io/development/devices/system-requirements/debian-family ? The goal is to make this device-agnostic? Would remove any mention of specific devices and say that this approach should work on most Debian-based devices, including Raspbian and Ubuntu.

On the same page, it uses "Fedora 28" as an example workstation, while we use Ubuntu 18 as the default in other parts of the docs. I think we should continue to use Ubuntu 18, it will be quite confusing if some parts of the docs assume Ubuntu, and other parts Fedora.[

As a new user with Debian, Raspbian or Ubuntu, what are the exact steps I need to do? Right now it seems like there are some dependencies to install (https://docs.mender.io/development/devices/system-requirements/debian-family) and then bootloader installation (https://docs.mender.io/development/devices/system-requirements/debian-family/bootloader-support). Why are these on two different pages? Is there a case where I just need to do one of these? Maybe these can be removed, as we already have https://docs.mender.io/development/artifacts/building-mender-image/building-debian-image

What is the name for this new feature? I see it referred to as "Mender conversion scripts", "Mender conversion tools" and simply "Mender scripts". In the repo it seems to be called "Mender conversion tool". Should we update all references to that?

Would consider organizing Devices differently. For things that are truly OS agnostic (e.g. System requirements, Partition layout), it can be a top level item. But then would organize by OS below this level. E.g. Device integration -> Yocto Porject -> Integrating with GRUB, rather than -> Device integration -> Integrating with GRUB -> Yocto project. A user is on either Yocto or Debian, that's why I think it would make it much better to have this as a top level item.

Browsing quickly through the docs I found this section has Yocto-specific settings, which probably should be moved:

https://docs.mender.io/development/client-configuration/configuration-file

I did not see anything else immediately but we should probably go through all the docs as the final step.

Overall nice progress! We just need to follow up here I think to ensure we keep things consistent.

The packages are called almost the same on Ubuntu 16.04 (uboot-tools is u-boot-tools):
sudo apt install mtools parted mtd-utils e2fsprogs u-boot-tools pigz


Added H3IndexFilterOperator

Updated the H3IndexFilter operator with the correct algorithm. Also fixed the schema and corrupted data in the quickstart example.
Example:

@kishoreg comments addressed. PTAL


fix: init quota with negative value and negative quota means unlimited

这个 PR 实现什么功能/修复什么问题:
修正：配额的缺省值为-1，并且负的配额意味着没有配额限制。解决升级后，新增配额为0的问题。
是否需要 backport 到之前的 release 分支:

release/2.13

/cc @zexi @yousong
/area region

Codecov Report

Merging #4139 into master will not change coverage.
The diff coverage is 0%.

@@          Coverage Diff           @@
##           master   #4139   +/-   ##
======================================
  Coverage    6.87%   6.87%
======================================
  Files         519     519
  Lines       87545   87545
======================================
  Hits         6021    6021
  Misses      81026   81026
  Partials      498     498

Flag
Coverage Δ

#aFlag
6.87% <0%> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/compute/models/projectquota.go
27.71% <0%> (ø)
:arrow_up:

pkg/cloudcommon/db/quotas/utils.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/zonequota.go
20.9% <0%> (ø)
:arrow_up:

pkg/compute/models/quotas.go
8.18% <0%> (+0.08%)
:arrow_up:

pkg/compute/models/regionquota.go
10.45% <0%> (ø)
:arrow_up:

pkg/compute/models/networks.go
0.55% <0%> (-0.01%)
:arrow_down:

pkg/multicloud/esxi/datacenter.go
0% <0%> (ø)
:arrow_up:

pkg/multicloud/esxi/manager.go
0% <0%> (ø)
:arrow_up:

pkg/compute/models/guestnetworks.go
0.23% <0%> (ø)
:arrow_up:

pkg/multicloud/esxi/host.go
2.21% <0%> (+0.03%)
: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 2d50da9...c8a07c8. Read the comment docs.

/lgtm

/lgtm
/approve


No definition for react/no-deprecated

Why would this happen?

The no-deprecated rule was introduced in v3.12.0, so you may need to upgrade eslint-plugin-react.

I am using "^3.15.0". Hm..

 Can you past your .eslintrc config file ?

I think this is all the info you need/are asking for:

https://github.com/littlebits/code-standards-js/blob/master/package.json#L33-L36
https://github.com/littlebits/react-popover/blob/master/package.json#L59-L63

Let me know.

I just hit this. Problem was my global eslint was used and not the project specific one.

I also get this simply by extending airbnb by only extending eslint-config-airbnb

@ndreckshage eslint-plugin-react is a peer dependency of eslint-config-airbnb - npm 2 will install it automatically, but npm 3 will just give you a warning that you need to install it manually.

This seems to have been an issue with peer dependencies and npm 3, and can likely be closed out.


HSEARCH-4067 Remove "(default)"/"(no default)" from configuration examples in the documentation

https://hibernate.atlassian.net/browse/HSEARCH-4067

Thanks for the review. Applied all the comments and force pushed.

Merged, thanks!


Timestamp 0.0 on Linux

This issue was raised by @stevendbrown . (see #3)
dTimeStart gives 0.0 on the Linux implementation.

This value returns the correct Julian date using pims_nd2 on OS X but remains broken in the "fixed" release available on nd2sdk.com. I've contacted LIM about the Linux SDK but have not heard back from them yet.

The LIM team has updated the SDK available on nd2sdk.com with a new Linux SDK that has the dTimeStamp bug corrected in my hands. The MD5 sum of the corrected package is 5c0f81233fc26fa98853cad7c447a5f3.

Thanks for getting this to work! I pushed the fix for Linux, tests pass.
Could you give me a hand with the OSX implementation? I'm guessing that I need to use:
nd2 = cdll.LoadLibrary(os.path.join(os.path.dirname(__file__), 'ND2SDK',
                                    'osx', 'nd2sdk.framework', 'Versions', '1', 'nd2sdk'))

But I never worked with OSX so I'm not sure.
Also, do you think there are any obsolete files in the current osx sdk folder?

Closed as of #10


BREAKING CHANGE: WaitForADDomain: Refactored the resource to handle timeout better

Pull Request (PR) description

Changes to ActiveDirectoryDsc

The helper function Find-DomainController is exported in the module
manifest. When running Import-Module -Name ActiveDirectoryDsc the
module will also import the nested module ActiveDirectoryDsc.Common.
It is exported so that the resource WaitForADDomain can reuse code
when running a background job to search for a domain controller.
Changes to ActiveDirectoryDsc.Common:

Added function Find-DomainController.
Added function Get-CurrentUser (moved from the resource ADKDSKey).

Changes to WaitForADDomain

BREAKING CHANGE: Refactored the resource to handle timeout better and
more correctly wait for a specific amount of time, and at the same time
make the resource more intuitive to use. This change has replaced
parameters in the resource (issue #343).
Now the resource can use built-in PsDscRunAsCredential instead of
specifying the Credential parameter (issue #367).
New parameter SiteName can be used to wait for a domain controller
in a specific site in the domain.

This Pull Request (PR) fixes the following issues

Fixes #343
Fixes #367

Task list

[x] Added an entry under the Unreleased section in the CHANGELOG.md.
Entry should say what was changed, and how that affects users (if applicable).
[ ] Resource documentation added/updated in resource directory README.md.
[x] Resource parameter descriptions added/updated in schema.mof
and comment-based help.
[x] Comment-based help added/updated.
[x] Localization strings added/updated in all localization files as appropriate.
[x] Examples appropriately added/updated.
[x] Unit tests added/updated. See DSC Resource Testing Guidelines.
[ ] Integration tests added/updated (where possible). See DSC Resource Testing Guidelines.
[x] New/changed code adheres to DSC Resource Style Guidelines and Best Practices.

This change is

Codecov Report

Merging #455 into dev will increase coverage by <1%.
The diff coverage is 98%.

@@         Coverage Diff          @@
##            dev   #455    +/-   ##
====================================
+ Coverage    97%    98%   +<1%
====================================
  Files        20     20
  Lines      2703   2809   +106
  Branches     10     10
====================================
+ Hits       2645   2761   +116
+ Misses       48     38    -10
  Partials     10     10


[stable/airflow] dags.initContainer.installRequirements=true does not work for all deployment strategies

Is this a request for help?:
no.
Is this a BUG REPORT or FEATURE REQUEST? (choose one):
BUG REPORT AFAICT
Version of Helm and Kubernetes:
helm: 2.13.0
k8s: 1.13.4
Which chart:
stable/airflow 2.3.0
What happened:
Given the doc:

Add a requirements.txt file at the root of your DAG project (dags.path entry at values.yaml) and they will be automatically installed. That works for both shared persistent volume and init-container deployment strategies (see below).

And given this comment
One should be able to drop a requirements.txt file in the dag root and it will be automatically installed event when not using the git fetch dag deployment strategy.
It appears dags.initContainer.enabled must be true to enter the block which calls the install-requirements.sh script. Unfortunately setting this value will then also cause containers to try to do the git fetch. See here as an example (the other container have same code):
https://github.com/helm/charts/blob/3a7e22cd4a3c9e417e5c130a09e33a108edd7734/stable/airflow/templates/deployments-scheduler.yaml#L109
What you expected to happen:
The requirements.txt file to be installed when not using the git fetch dag deployment strategy. In other words, the following configuration should still perform the pip install:
dags:
  initContainer:
    enabled: false
    installRequirements: true

How to reproduce it (as minimally and precisely as possible):

use a persistent volume to mount the dag root
put your requirements.txt file in the dag root.
install via chart and set dags.initContainer.installRequirements=true

Anything else we need to know:

i am also trying to get this to work. I have set installRequirements: true under dags and placed my requirements.txt file in the dag root, but still no luck. My dag is still broken because it can't find the the needed module.

I also wanted to just report this bug.
Indeed, to have requirements.txt auto installed, you need to also have that initContainers.enabled activated, which contradicts the README text saying
That works for both shared persistent volume and init-container deployment strategies (see below).

And clearly this is a bug - I can't see why install requirements should be tied to how you get the dags files into there.
Also a documentation bug - or just a workaround for the bug? - later in the README.txt it says that you should mount yourself requirements.txt at /requirements.txt ..
Can we have both the templates and documentation fixed please?


Check for installer updates

Is your feature request related to a problem? Please describe.
There are already a couple of fixes for the installer open as pull requests. But we can't know what changes Discord plans on implementing next. In order to reduce a rush to the suppport server the when the installer breaks in a future Discord update it could check for installer update itself.
Describe the solution you'd like
Using GitHub's releases API check for the newest version. If there is one open a message box asking you if you want to download the update, If you do you it either directly opens the browser download url or maybe the relesae web url. If the update check fails it should fail silently.
Describe alternatives you've considered
Auto-Updating but that would just end up replacing the exe anyway, which might also be problematic when it's running.
Additional context
Currently one of the changes that would require an installer update is that sometimes discord installs to C:\ProgramData

I was just thinking about this as I was downloading it again

There is no reason to download it over and over, there hasn't been an update to the installer since it's initial release. There is a PR for this already. This won't change anything about having to run the installer every couple discord updates.

There is no reason to download it over and over, there hasn't been an update to the installer since it's initial release. There is a PR for this already. This won't change anything about having to run the installer every couple discord updates.

Yeah, discord update brake it for me so I had to re-install to fix that.

Yeah, discord update brake it for me so I had to re-install to fix that.
The installer automatically downloads the latest version of BD regardless. There's no need to redownload it whenever you want to reinstall BD. This specific issue is regarding actual updates to the installer itself.

Exactly, only changes like the recent one that caused the need for an updated installer are affected by this. This won't eliminate the need to run the installer again every couple of Discord updates.
Because the corresponding PR has been merge already I'm closing this.


Binary-only instrumentation

Hi,
I've made a quick'n'dirty QEMU patch that emulates honggfuzz-style coverage on binaries (no forkserver for now).
I was wondering whether you could be interested in upstreaming the patch (ala qemu_mode folder in AFL) and/or if you could review / give advice on how to improve it.
The next step would be to implement the forkserver but that requires some modifications to honggfuzz itself I guess.
Anyway: https://github.com/thebabush/honggfuzz-qemu
To compile it, just patch honggfuzz.h with the patch in fuzz/honggfuzz.patch (it's a simple ifdef to bypass some errors) and then the usual:
HONGGFUZZ_PATH=~/projects/honggfuzz_qemu/ ./configure --disable-system --target-list=x86_64-linux-user
make
/path/to/honggfuzz -s -f /tmp/asd -- ./x86_64-linux-user/qemu-x86_64 target-program

This is super interesting. Lemme play with it.
As for upstreaming, sure, please create some directory for this inside honggfuzz main dir, and I'll certainly pull it in.

#269

Thanks, pulled in, a comment from there:
As for your code, What do you think about linking the final qemu binary with libhfuzz.a ? You're currently duplicating some code from there, adding a custom helper function for PC and CMP. Could we add it natively to libhfuzz, and later link qemu with libhfuzz.a ?

BTW, I made some changes so it's easier to integrate qemu with honggfuzz.
https://github.com/google/honggfuzz/commit/8d1a77ed91647051fcf54fb67b30a21efdb278b0
Here's patch for your honggfuzz-qemu which makes use of that:
https://pastebin.com/6P6Xc2jy
The final qemu binary still needs to be linked with hfuzz-g++

Also, probably the procedure for computing honggfuzz_qemu_end_code is incorrect. I think it should be compared/set to vaddr_af or vaddr_em and not to vaddr.

Thank you for your patches to honggfuzz and my qemu fork, that's exactly what I wanted to do next and how (well, better actually). It also removes the need for the pragma hack.
As for using hfuzz-g++, doesn't that have side-effects? From a quick glance at the code it looks like it wraps functions. I think directly linking libhfuzz.a is better. See https://github.com/thebabush/honggfuzz-qemu/commit/08958490ef56430d74d3f3fa5268aac15519d839
Regarding the vaddr thing, I'm dumb. I managed to make a mistake copy-paste'ing from AFL :/ will fix now thanks.
Also, I really need to sed s/honggfuzz/hfuzz/g my fork.

Maybe in AFL they wanted to set it only once, when the main program's text section (as opposed to dynamic libs) is loaded? I'm not sure how qemu-user works internally, maybe the qemu code overlaps with dynamic libs and doing it unconditionally would catch also pcs/cmps from qemu-user

For djpeg, it seems that manually setting _start to 0, and _end to 0x100000000 works, as the /proc//maps looks like:
I'll check what kind of addresses the qemu elfloader reports.
$ cat /proc/1278053/maps
4000000000-4000002000 r--p 00000000 fd:00 42340714                       /usr/bin/djpeg
4000002000-4000007000 r-xp 00002000 fd:00 42340714                       /usr/bin/djpeg
4000007000-400000a000 r--p 00007000 fd:00 42340714                       /usr/bin/djpeg
400000a000-400000b000 r--p 00009000 fd:00 42340714                       /usr/bin/djpeg
400000b000-400000c000 rw-p 0000a000 fd:00 42340714                       /usr/bin/djpeg
400000c000-400000d000 ---p 00000000 00:00 0
400000d000-400080d000 rw-p 00000000 00:00 0
400080d000-400080e000 r--p 00000000 fd:00 25952289                       /lib/x86_64-linux-gnu/ld-2.29.so
400080e000-4000831000 r-xp 00001000 fd:00 25952289                       /lib/x86_64-linux-gnu/ld-2.29.so
4000831000-4000839000 r--p 00024000 fd:00 25952289                       /lib/x86_64-linux-gnu/ld-2.29.so
4000839000-400083a000 ---p 00000000 00:00 0
400083a000-400083b000 r--p 0002c000 fd:00 25952289                       /lib/x86_64-linux-gnu/ld-2.29.so
400083b000-400083c000 rw-p 0002d000 fd:00 25952289                       /lib/x86_64-linux-gnu/ld-2.29.so
400083c000-400083f000 rw-p 00000000 00:00 0
4000867000-400086b000 r--p 00000000 fd:00 38803550                       /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2
400086b000-40008ae000 r-xp 00004000 fd:00 38803550                       /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2
40008ae000-40008e8000 r--p 00047000 fd:00 38803550                       /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2
40008e8000-40008e9000 r--p 00080000 fd:00 38803550                       /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2
40008e9000-40008ea000 rw-p 00081000 fd:00 38803550                       /usr/lib/x86_64-linux-gnu/libjpeg.so.8.2.2
40008ea000-40008ec000 rw-p 00000000 00:00 0
40008ec000-4000911000 r--p 00000000 fd:00 25952296                       /lib/x86_64-linux-gnu/libc-2.29.so
4000911000-4000a89000 r-xp 00025000 fd:00 25952296                       /lib/x86_64-linux-gnu/libc-2.29.so
4000a89000-4000ad2000 r--p 0019d000 fd:00 25952296                       /lib/x86_64-linux-gnu/libc-2.29.so
4000ad2000-4000ad5000 r--p 001e5000 fd:00 25952296                       /lib/x86_64-linux-gnu/libc-2.29.so
4000ad5000-4000ad8000 rw-p 001e8000 fd:00 25952296                       /lib/x86_64-linux-gnu/libc-2.29.so
4000ad8000-4000bde000 rw-p 00000000 00:00 0
559732f81000-559732fc0000 r--p 00000000 fd:00 39193113                   /home/jagger/src/honggfuzz/qemu_mode/honggfuzz-qemu/x86_64-linux-user/qemu-x86_64 (deleted)
...

Well, elfload doesn't report loading addresses of dynamic libs, which can actually have relevant, fuzzable, code (here, in libjpeg.so). Without looking deeper into the code, for now, for my own testing I'll set _code_end to 0x5000000000 or so.

afl-qemu-cpu-inl.h has a specific env var for this:
  if (getenv("AFL_INST_LIBS")) {

    afl_start_code = 0;
    afl_end_code   = (abi_ulong)-1;

  }

I can just put that back in.

Up to you, I guess having it configurable (even based on envvar) would be good.

Done. It makes sense and it's consistent with AFL.

Thanks, awesome!

does it support for macos?

I have no idea.  It uses qemu user (linux). I doubt it though.

I have implemented the forkserver in QEMU (I'm leveraging persistent mode... not sure it's the best idea).
Tbh it seems there's something wrong going on. My instrumentation might be unstable, because it takes too much time to guess a 64-bit constant value even if I -F 8.

Thanks, I'll check it out.

With https://github.com/google/honggfuzz/commit/99559afa16ca275e443e6111000407ff3a4de0e6 you don't need the code in fuzz/hfuzz.c any more (pretty much). Here's the diff
https://pastebin.com/UWhSX8wM
The idea is that honggfuzz's inputs are files anyway (in tmpfs, or memfd), and we can access them through /dev/fd/x.
So, now, you can simply
$ ~/src/honggfuzz/honggfuzz -s -F8 -f IN/ -- ~/src/honggfuzz/qemu_mode/honggfuzz-qemu/x86_64-linux-user/qemu-x86_64 ./a
and if ./a reads from stdin, it will have input at fd=0. The same with using ___FILE___

Cool.
Have you tried ___FILE___? I'll double check with your patch but I get No such file or directory on fopen() in my test program.
argv is correct (/dev/fd/lownumber) though...
doing snprintf(inputFile, sizeof(inputFile), "/dev/fd/%d", _HF_INPUT_FD); works.
Seems like there's no fd=lownumber in /proc/self/fd of programs launched with ___FILE___ + qemu.
I'll look into it when I have some time.

A yeah, the run->dynamicFileFd is CLOEXEC, so it'll be closed upon exec. Should be fixed with
https://github.com/google/honggfuzz/commit/65880af52e3111d631b2b024e6e11295e48a4846

Oh, I missed that it was opened with CLOEXEC. Everything seems to work fine now.

This works very well, so closing. Thanks for working on this. Feel free to open if you'd like to add anything, or if you think the work is not complete yet.

Hi @thebabush thanks for this contribution. Re: seed files, would you please let me know what kind of files or structure there was in /tmp/asd for fuzzing this way. Is there a bank of seeds you'd recommend for unknown binaries?

@aug2uag from your question I guess you are new to fuzzing. I don't think this is the best forum to ask this kind of questions. That being said, every fuzzer need some sample files to be effective. I'm not aware of bank of seeds. If you are fuzzing binaries parsing popular file formats you can maybe download the corpora generated by fuzzbench or similar projects. That being said, building a corpus of valid files must be done on a case-by-case basis... TL;DR: there's no free lunch (:
Other than that, you can find tons of tutorials/videos/talks online on how to fuzz binaries. Finally, note that my support for binaries in honggfuzz is pretty basic so you might have better results with AFLplusplus (which uses a more advanced QEMU patch).


Add AVL Tree under the Tree   Section

Hi,,,I am a contributor under the GGSOC 2023. I will add the AVL Tree under the Tree's Section in C++. Please assign it to me @aaryahjolia

Hi @aaryahjolia , I am a GSSoC'23 contributor and would love to work on this issue.I have solved around 900 questions on leetcode(https://leetcode.com/code_hobby_2404/).

Hi @aaryahjolia , I am a GsSoC'23 contributor please assign me this task. I will add AVL Trees under tree section.

Hi @aaryahjolia , I am a GSSoC'23 contributor and would love to work on this issue.I have solved around 900 questions on leetcode(https://leetcode.com/code_hobby_2404/).

Bro I have opened this issue so that I can work on it...please stop commenting on all of the issues I created...instead find your own issues which are not already been raised by someone else

Hi @aaryahjolia , I am a GsSoC'23 contributor please assign me this task. I will add AVL Trees under tree section.

Bro I have opened this issue so that I can work on it...please stop commenting on issues created by others...instead find your own issues which are not already been raised by someone else


Fix example in BooleanWidget

Fix wrong function name before_row_import to
before_import_row in BooleanWidget's example

https://django-import-export.readthedocs.io/en/latest/api_widgets.html#import_export.widgets.BooleanWidget

Coverage decreased (-0.05%) to 96.764% when pulling 1fec4019d3cac3cef8ba5345f16040ff8180c4b7 on bek9:patch-1 into f348ef3782e60d44a2cedd0062179f0b9c798510 on django-import-export:master.

Coverage decreased (-0.05%) to 96.764% when pulling 1fec4019d3cac3cef8ba5345f16040ff8180c4b7 on bek9:patch-1 into f348ef3782e60d44a2cedd0062179f0b9c798510 on django-import-export:master.


Server handler does not forward headers to client

Environment

Operating System: Linux
Node Version:     v18.16.0
Nuxt Version:     3.6.5
CLI Version:      3.7.2
Nitro Version:    2.5.2
Package Manager<EMAIL_ADDRESS>Builder:          -
User Config:      extends, appConfig, modules, apiParty, runtimeConfig, experimental
Runtime Modules<EMAIL_ADDRESS>Build Modules:    -

Reproduction
N/a
Describe the bug
When using the server handler, headers are not being forwarded from the API server to the client. I'm aware that headers are not normally accessible using the $api function, but they are when using useApiData(..., { onResponse }) and via FetchError.response. Additionally, if an API sets a cookie, it will be unable to do it as the Set-Cookie header is discarded.
Additional context
Depending on how you feel, this may be a feature request instead of a bug report.
Logs
No response

I'd consider this a feature, although it could be interpreted as a bug. Maybe it's something in between. There's already an issue. Let's track the status in #25.


[Map] DM_Northern_winds

This is an Unreal map - it will not run in UT99.

URL: https://unrealarchive.org/maps/unreal-tournament/deathmatch/N/dm_northern_winds_c700f568.html
Hash: c700f568c54811112d019ed5fae3e5d7240cd3cb
Current name: DM_Northern_winds

Thanks, my bad, I updated a couple of maps from a recent batch and missed these. Fixed.


Some suggestions to improve expand framework

Based on expecting to improve expand framework, I have some suggestion as follow:

From my newbie point of view, I think, If you want this useful framework to be more popular, you need to invest time to write more detail guide. It will be much much better for newbie like me. I know, from your point, guides are good enough. But you should consider from less experience guys.
Intergrating some well known messaging API like Telegram, Skype, Signal, WhatsApp...
Intergrating Signalr so instead of periodic pulling from clients, we can pushing new information from server to specific clients. Beside it, we can track online, offline state of users.
Intergrating badges to Blazor, so from navigation or somewhere, we can easily identify how many new objects has been created...
Make State Machine more generic, i means with specific transitions we can add more logic, for example: from State A to B, the app will show popup to ask users to add some more information, from state B to C, besides changing the state, the app also change some property according to specific logic...
Import module for Blazor
Sequence genegrator should be more generic. For example: document ID code has structure like this: Year code / Type code / document code / ID generator. 22/EX/IS/0001 (Ex: expand, IS: Issue), 21/RE/CD/001 (RE: Reactive.XAF, CD: Code)...

From my newbie point of view, I think, If you want this useful framework to be more popular, you need to invest time to write more detail guide. It will be much much better for newbie like me. I know, from your point, guides are good enough. But you should consider from less experience guys.

I always improve and this a framework meaning once u understadn one u apply it to all

Intergrating some well known messaging API like Telegram, Skype, Signal, WhatsApp...

telegram is baking

Intergrating Signalr so instead of periodic pulling from clients, we can pushing new information from server to specific clients. Beside it, we can track online, offline state of users.

I think this is Xaf job and not mine and there is already support for it

Make State Machine more generic, i means with specific transitions we can add more logic, for example: from State A to B, the app will show popup to ask users to add some more information, from state B to C, besides changing the state, the app also change some property according to specific logic...

meaning? don't we have already chained hangfire jobs isn't this a transition

Import module for Blazor

once some company has the need and pay for my efforts happy to do my best

always improve and this a framework meaning once u understadn one u apply it to all

just some suggestions with hoping that  expand framework will be better and more popular only

I think this is Xaf job and not mine and there is already support for it

I think making Xaf works with Signalr is  Xaf job but they will not build some functionality like: integrating Signalr with User role structure so the app can track online, offline user, admin user can send some notification to specific user, or when some event (object created, object deleted, object change state...) happen, app can send notification to related user

meaning? don't we have already chained hangfire jobs isn't this a transition

for example: when I approve the document, I want to show message: "Document approved", when I decline one document, I want the app to show popup where I can type in the reason why I decline the document, or when i approve documents, i want sub document (document belongs to parent documents) to be approved to and besides state property, some other property like ApprovedDate need to be updated too. Up to now, I've to do that by create custom StateMachineController

once some company has the need and pay for my efforts happy to do my best

hope to sell some apps so i can support you in the future

Sequence genegrator should be more generic. For example: document ID code has structure like this: Year code / Type code / document code / ID generator. 22/EX/IS/0001 (Ex: expand, IS: Issue), 21/RE/CD/001 (RE: Reactive.XAF, CD: Code)...

Intergrating badges to Blazor, so from navigation or somewhere, we can easily identify how many new objects has been created...

and what about this?

Sequence genegrator should be more generic. For example: document ID code has structure like this: Year code / Type code / document code / ID generator. 22/EX/IS/0001 (Ex: expand, IS: Issue), 21/RE/CD/001 (RE: Reactive.XAF, CD: Code)...

cannot answer this without spending considerable ammount in research /realization, however since with already have sub sequences my guess is with some extra BO properties u can achieve it

Intergrating badges to Blazor, so from navigation or somewhere, we can easily identify how many new objects has been created...

no idea what u mean and how this is valueable to u

just some suggestions with hoping that expand framework will be better and more popular only

thnks for the feedback however this an old framework at least this repo and not designed properly, the rx repo however behaves like a unit making support easier and having tests/docs to improve quality.
Of course docs need a lot more work so PR are always acceptabl;e from people that use the packages daily. Cause really I do not use them all and packages like SequenceGenerator not valueable in my apps, So I guess u are the expert on the package rather than me that I code it.

no idea what u mean and how this is valueable to u

not just for me, for all community who pay attention on your framework. I thinks badges (is the term exactly? sorry for my bad english, badges like this https://getbootstrap.com/docs/4.0/components/badge/) is very useful and it appear everywhere
from gmail, you can quickly got how many email unread

to facebook, you can quickly got how many new notification or unread messages

Of course docs need a lot more work so PR are always acceptabl;e from people that use the packages daily. Cause really I do not use them all and packages like SequenceGenerator not valueable in my apps, So I guess u are the expert on the package rather than me that I code it.

hope to contribute to your framework in the future. My english and coding style is bad :(

Closing issue for age. Feel free to reopen it at any time.
.Thank you for your contribution.


Audio stream stopps after changing preselected station , reboot need

If have some issues with my ESp32-Radio design and need advice. Designed a PCB 2 years ago (you can find in this post). However my wife decided to stay with the installed kitchen radio so I put it on the shelf. Now there is demand to go "productive" an I installed the lasted version (not the release V1.0).
HW: NodeMCU-32S, pHAT_I²S-DAC(PCM5102), OLED Display SSD1306, rotary encoder + 4 Buttons
First issue, not really a problem just strange and maybe related. The define for FIXEDWIFI in config.h is ignored. The board always comes up with its predefined AP and IP.
Modifying the preferences via web-interface works. After reboot It connects to my Wifi-AP and the audio stream is playing, but...
And this is the main issue. After turning on audio is o.k. Not changing the preselected station it will be playing for hours. On changing the station it keeps is playing as well but only if the station tuning was done a short time after boot.
To be more recise, you can change the preselect several times until you stayed tuned to a station for some minutes. By switching to another station then the audio stops. Test feature throws e.g. "Free memory is 47092/98324, chunks in queue 0, bitrate 3426287 kbps". Behavior is the same using web commands, buttons or rotary encoder for preselect.
Volume Buttons and rotary encoders are still working and display information is as expected except no Stream content information. Audio will not work before a reset was applied.
Configuation:
//***************************************************************************************************
// config.h                                                                                *
//***************************************************************************************************
//
//#define NAME "ESP32-Radio"                              // Define name of the radio, also AP SSID
                                                          // Default is "ESP32-Radio"

//#define SDCARD                                          // For SD card support (reading MP3-files)

#define FIXEDWIFI "DA*****/4*****!"   // Add a fixed SSID to the list

// Define (just one) type of MP3/AAC decoder
//#define DEC_VS1053                                        // Hardware decoder for MP3, AAC, OGG
//#define DEC_VS1003                                      // Hardware decoder for MP3
#define DEC_HELIX                                         // Software decoder for MP3, AAC. I2S output
//#define DEC_HELIX_INT                                   // Software decoder for MP3, AAC. DAC output
                                                          // Needs platform =<EMAIL_ADDRESS>!!!!

// Define (just one) type of display.  See documentation.
//#define BLUETFT                                           // Works also for RED TFT 128x160
//#define ST7789                                          // 240x240 TFT
#define OLED1306                                        // 64x128 I2C OLED SSD1306
//#define OLED1309                                        // 64x128 I2C OLED SSD1309
//#define OLED1106                                        // 64x128 I2C OLED SH1106
//#define DUMMYTFT                                        // Dummy display
//#define LCD1602I2C                                      // LCD 1602 display with I2C backpack
//#define LCD2004I2C                                      // LCD 2004 display with I2C backpack
//#define ILI9341                                         // ILI9341 240*320
//#define NEXTION                                         // Nextion display. Uses UART 2 (pin 16 and 17)
//

// Define ZIPPYB5 if a ZIPPY B5 Side Switch is used instead of a rotary switch
///#define ZIPPYB5

// End of configuration parameters.

// DEC_HELIX_INT does not seem to work with higher versions of framework.  Do a test.
#ifdef DEC_HELIX_INT
  #if ESP_ARDUINO_VERSION_MAJOR >= 2
    #error Internal DAC will not work in this version of the platform.  Use<EMAIL_ADDRESS>  #endif
#endif

($)pin_i2s_bck = 5                                     # GPIO Pin number for I2S "BCK"
($)pin_i2s_din = 4                                     # GPIO Pin number for I2S "DIN"
($)pin_i2s_lck = 32                                    # GPIO Pin number for I2S "L(R)CK"
#
batt0 = 2600
batt100 = 2950
#
clk_dst = 1                                          # Offset during daylight saving time (hours)
clk_offset = 1                                       # Offset with respect to UTC in hours
clk_server = pool.ntp.org                            # Time server to be used
#
gpio_00 = upvolume= 3
gpio_12 = mute
gpio_13 = uppreset= 1
gpio_34 = downpreset = 1
gpio_39 = downvolume= 3
#
ir_18E7 = upvolume = 3
ir_4AB5 = downvolume = 4
ir_629D = station = liveradio.swr.de/sw282p3/swr3/play.mp3
ir_6897 = station = liveradio.swr.de/sw282p3/swr1rp/play.mp3
ir_9867 = station = liveradio.swr.de/sw282p3/swr1rp/play.mp3
ir_A25D = station = dispatcher.rndfnk.com/br/br3/live/mp3/mid
ir_B04F = mute
ir_E21D = station = mp3channels.webradio.antenne.de/antenne
#
mqttbroker = <IP_ADDRESS>
mqttpasswd = none
mqttport = 1883
mqttprefix = radio1
mqttuser = none
#
pin_enc_clk = 25                                     # GPIO Pin number for rotary encoder "CLK"
pin_enc_dt = 26                                      # GPIO Pin number for rotary encoder "DT"
pin_enc_sw = 27                                      # GPIO Pin number for rotary encoder "SW"
pin_ir = 35                                          # GPIO Pin number for IR receiver VS1838B
pin_tft_scl = 22                                     # GPIO Pin number for I2S SCL (SSD1306 Display)
pin_tft_sda = 21                                     # GPIO Pin number for I2S SDA (SSD1306 Display)
#
preset = 0
preset_00 = liveradio.swr.de/sw282p3/swr1rp/play.mp3 #  0 - SWR1 RP
preset_01 = liveradio.swr.de/sw282p3/swr3/play.mp3   #  1 - SWR3
preset_02 = dispatcher.rndfnk.com/br/br3/live/mp3/low#  2 - BR3
preset_03 = stream.antenne.de/antenne/stream/mp3     #  3 - Antenne Bayern
preset_04 = uk3.internet-radio.com:8405/live         #  4 - Majestic Jukebox Radios
preset_05 = uk5.internet-radio.com:8174              #  5 - Joy Radio
preset_06 = addrad.io/44559h5                        #  6 - Radio Gong
preset_07 = dispatcher.rndfnk.com/swr/swr1/rp/mp3/128/stream.mp3 #  7 - SWR1 RP
preset_08 = 4534.cloudrad.io:8284/                   #  8 - Serenade Radio
#
toneha = 0
tonehf = 0
tonela = 0
tonelf = 0
#
volume = 33
#
wifi_00 = D***N/4***!
wifi_01 = D***G/4***!

platformio.ini:
[env:esp32]
platform = espressif32
;platform =<EMAIL_ADDRESS>;board = esp-wrover-kit
board = nodemcu-32s
framework = arduino
board_build.partitions = radiopart.csv
upload_port = COM5
;upload_protocol = espota       ; OTA must be enabled in the running version, see config.h
;upload_port = <IP_ADDRESS>     ; Adjust to the IP of the radio
monitor_port = COM5
monitor_speed = 115200
monitor_dtr = 0
monitor_rts = 0
monitor_filters = esp32_exception_decoder
monitor_echo = yes
build_flags =
	-DCORE_DEBUG_LEVEL=5	; Set to 0 for no debug; saves memory
                                ; Set to 5 for full debug
	-Os
;	-Wl,-Map,ESP32-Radio.map
lib_ldf_mode = chain+		; Obey #include lines
lib_deps =
  Wire
<EMAIL_ADDRESS>  adafruit/Adafruit<EMAIL_ADDRESS>  adafruit/Adafruit GFX<EMAIL_ADDRESS>  adafruit/Adafruit<EMAIL_ADDRESS>  adafruit/Adafruit ST7735 and ST7789<EMAIL_ADDRESS><EMAIL_ADDRESS>  me-no-dev/ESP Async<EMAIL_ADDRESS><EMAIL_ADDRESS>  djuseeq/Ch376msc @ ^1.4.4

Even the debug level configured seems to be full the information I get is not much. This is for a boot and applying a station change and Test command using the web interface.
Esp32ExceptionDecoder: disabling, firmware at E:\Privatdaten\thomas\PioProjects\ESP32_Radio_Test\.pio\build\esp32\firmware.elf does not exist, rebuild the project?
--- Terminal on COM5 | 115200 8-N-1
--- Available filters and text transformations: colorize, debug, default, direct, esp32_exception_decoder, hexlify, log2file, nocontrol, printable, send_on_enter, time
--- More details at https://bit.ly/pio-monitor-filters
--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H
[ 21083][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 21400][I][mp3_decoder.cpp:1643] DecodeHuffmanPairs(): (tabType != invalidTab)
ets Jun  8 2016 00:22:57

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:184
load:0x40078000,len:12732
ho 0 tail 12 room 4
load:0x40080400,len:2908
entry 0x400805c4
[     5][D][esp32-hal-cpu.c:244] setCpuFrequencyMhz(): PLL: 480 / 2 = 240 Mhz, APB: 80000000 Hz

Starting ESP32-radio running on CPU 1 at 240 MHz.
[  3366][I][esp32-hal-i2c.c:75] i2cInit(): Initialising I2C Master: sda=21 scl=22 freq=100000
I2C buf is 128
[  3470][I][WiFiMulti.cpp:85] addAP(): [WIFI][APlistAdd] add SSID: DATALAN
[  3471][I][WiFiMulti.cpp:85] addAP(): [WIFI][APlistAdd] add SSID: DATALAN
[  3473][I][WiFiMulti.cpp:85] addAP(): [WIFI][APlistAdd] add SSID: DATALAN-PRO-2.4G
[  3993][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 0 - WIFI_READY
[  4088][V][WiFiGeneric.cpp:340] _arduino_event_cb(): STA Started
[  4088][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 2 - STA_START
[  4637][V][WiFiGeneric.cpp:343] _arduino_event_cb(): STA Stopped
[  4638][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 3 - STA_STOP
[  5648][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 0 - WIFI_READY
[  5652][V][WiFiGeneric.cpp:340] _arduino_event_cb(): STA Started
[  5652][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 2 - STA_START
[ 12664][V][WiFiGeneric.cpp:383] _arduino_event_cb(): SCAN Done: ID: 128, Status: 0, Results: 5
[ 12664][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 1 - SCAN_DONE
[ 12669][I][WiFiMulti.cpp:115] run(): [WIFI] scan done
[ 12674][I][WiFiMulti.cpp:120] run(): [WIFI] 5 networks found
[ 12679][D][WiFiMulti.cpp:150] run():  --->   0: [1][DC:39:6F:B0:62:F4] DATALAN (-53) *
[ 12687][D][WiFiMulti.cpp:150] run():  --->   1: [1][1C:BF:CE:25:54:98] DATALAN-PRO-2.4G (-75) *
[ 12695][D][WiFiMulti.cpp:152] run():        2: [1][00:1C:10:A9:1E:AF] audiolan (-79) *
[ 12703][D][WiFiMulti.cpp:152] run():        3: [6][08:96:D7:B2:B4:E0] HomeME (-89) *
[ 12711][D][WiFiMulti.cpp:152] run():        4: [6][0A:96:D7:B2:B4:E0] Mechler Office Gast (-90) *
[ 12719][I][WiFiMulti.cpp:161] run(): [WIFI] Connecting BSSID: DC:39:6F:B0:62:F4 SSID: DATALAN Channel: 1 (-53)
[ 12730][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: <IP_ADDRESS>, MASK: <IP_ADDRESS>, GW: <IP_ADDRESS>
[ 13220][V][WiFiGeneric.cpp:362] _arduino_event_cb(): STA Disconnected: SSID: DATALAN, BSSID: dc:39:6f:b0:62:f4, Reason: 202
[ 13221][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 5 - STA_DISCONNECTED
[ 13228][W][WiFiGeneric.cpp:1057] _eventCallback(): Reason: 202 - AUTH_FAIL
[ 13235][D][WiFiGeneric.cpp:1077] _eventCallback(): WiFi Reconnect Running
[ 13242][V][WiFiGeneric.cpp:97] set_esp_interface_ip(): Configuring Station static IP: <IP_ADDRESS>, MASK: <IP_ADDRESS>, GW: <IP_ADDRESS>
[ 13776][V][WiFiGeneric.cpp:355] _arduino_event_cb(): STA Connected: SSID: DATALAN, BSSID: dc:39:6f:b0:62:f4, Channel: 1, Auth: WPA_WPA2_PSK
[ 13778][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 4 - STA_CONNECTED
[ 13824][V][WiFiGeneric.cpp:369] _arduino_event_cb(): STA Got New IP:<IP_ADDRESS>
[ 13825][D][WiFiGeneric.cpp:1035] _eventCallback(): Arduino Event: 7 - STA_GOT_IP
[ 13828][D][WiFiGeneric.cpp:1098] _eventCallback(): STA IP: <IP_ADDRESS>, MASK: <IP_ADDRESS>, GW: <IP_ADDRESS>
[ 13838][I][WiFiMulti.cpp:177] run(): [WIFI] Connecting done.
[ 13843][D][WiFiMulti.cpp:178] run(): [WIFI] SSID: DATALAN
[ 13849][D][WiFiMulti.cpp:179] run(): [WIFI] IP: <IP_ADDRESS>
[ 13854][D][WiFiMulti.cpp:180] run(): [WIFI] MAC: DC:39:6F:B0:62:F4
[ 13860][D][WiFiMulti.cpp:181] run(): [WIFI] Channel: 1
[ 18134][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 68396][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 68935][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 71184][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
Stack loopTask is 6004
Stack Playtask is  616
ADC reading is 0, filtered 20
16 IR interrupts seen
[ 78977][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 84017][W][AsyncTCP.cpp:930] _poll(): pcb is NULL
[ 89034][W][AsyncTCP.cpp:930] _poll(): pcb is NULL

Did more testing, built a second device using the latest release I had in my git local repo  (GITEA) from two years ago:

WLAN AP in config.h was recocknized

dubug gives much more information (was defined 0 that time)
build_flags =
	-DCORE_DEBUG_LEVEL=0
	-Os
;	-Wl,-Map,ESP32-Radio.map

but audio play issue exist here as well, same behavior

Here the Log-file for boot and one working preset change and a second one failing
D: Starting ESP32-radio running on CPU 1 at 240 MHz.
D: Version Sun, 15 May 2022 10:30:00 GMT.  Free memory 110580
D: Display type is OLED
D: SPIFFS is okay, space 1318001, used 33634
D: Found partition 'nvs     ' at offset 0x009000 with size    20480
D: Found partition 'otadata ' at offset 0x00E000 with size     8192
D: Found partition 'spiffs  ' at offset 0x290000 with size  1441792
D: Found partition 'coredump' at offset 0x3F0000 with size    65536
D: Read 46 keys from NVS
D: pin_ir set to 35
D: pin_enc_clk set to 25
D: pin_enc_dt set to 26
D: pin_enc_sw set to 27
D: pin_tft_scl set to 22
D: pin_tft_sda set to 21
D: pin_i2s_bck set to 5
D: pin_i2s_lck set to 32
D: pin_i2s_din set to 4
D: pin_spi_sck set to 18
D: pin_spi_miso set to 19
D: pin_spi_mosi set to 23
D: GPIO0 is HIGH
D: GPIO2 is HIGH
D: GPIO4 is HIGH
D: GPIO5 is HIGH
D: GPIO12 is HIGH
D: GPIO13 is HIGH
D: GPIO14 is HIGH
D: GPIO15 is HIGH
D: GPIO16 is HIGH
D: GPIO17 is HIGH
D: GPIO18 is HIGH
D: GPIO19 is HIGH
D: GPIO21 is HIGH
D: GPIO22 is HIGH
D: GPIO23 is HIGH
D: GPIO25 is HIGH
D: GPIO26 is HIGH
D: GPIO27 is HIGH
D: GPIO32 is HIGH
D: GPIO33 is HIGH
D: GPIO34 is HIGH
D: GPIO35 is HIGH
D: GPIO39 is HIGH
D: gpio_00 will execute upvolume= 3
D: gpio_12 will execute mute
D: gpio_13 will execute uppreset= 1
D: gpio_34 will execute downpreset = 1
D: gpio_39 will execute downvolume= 3
D: Enable pin 35 for IR
D: Start OLED display
D: Init OLED 1306, I2C pins 21,22
I2C buf is 128
D: Create list with acceptable WiFi networks
D: Added DATALAN-PRO-2.4G to list of networks
D: Added DATALAN to list of networks
D: Scan Networks
D: Scan completed
D: Number of available networks: 5
D:  1 - DATALAN                   Signal: -53 dBm, Encryption WPA_WPA2_PSK, Acceptable
D:  2 - audiolan                  Signal: -73 dBm, Encryption  WEP,
D:  3 - DATALAN-PRO-2.4G          Signal: -75 dBm, Encryption WPA2_PSK, Acceptable
D:  4 - Mechler Office Gast       Signal: -86 dBm, Encryption WPA2_PSK,
D:  5 - HomeME                    Signal: -89 dBm, Encryption WPA2_PSK,
D: End of list
D: updateNr 0 <= 0 to 2, relative is 0
D: updateNr result is 0
D: nextPreset is 0
D: Starting I2S playtask..
D: Output to I2S, pins 5, 32 and 4
D: Connect to network
D: SSID = DATALAN
D: IP = <IP_ADDRESS>
D: Start web server
D: Network found. Starting mp3 client, mqtt and OTA
D: MQTT uses prefix radio1
D: Init MQTT
D: MDNS responder started
D: Rotary encoder is enabled
D: Sync TOD
D: Sync TOD, new value is 15:59:10
D: updateNr 0 <= 8 to 2, relative is 0
D: updateNr result is 2
D: nextPreset is 2
D: Radiofuncs cmd is 1
D: Connect to host di
D: Connect to host di
D: send GET command
D: Switch to HEADER
D: Headerline: Content-Length: 0
D: Headerline: Connection: close
D: Headerline: Access-Control-Allow-Methods: GET, OPTIONS, HEAD
D: Headerline: Access-Control-Allow-Origin: *
D: Headerline: Cache-Control: no-cache, no-store
D: Headerline: Location: http://d141.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=2fBYUMHQvVublnNx1yeO4XisNCB&token=ilLL3IPytqEnEVxrjphQbaFlaybkvzWaeHzdPUQ4gEc&tvf=xr
D: Redirect
D: (Re)connecting number 1 to MQTT <IP_ADDRESS>
D: Radiofuncs cmd is 1
D: Connect to host d141.rndfnk.com/ard/br/br3/live/mp3/128/stream.mp3?cid=01FBPVFWX7C216W6WY4M4M7MF7&sid=2fBYUMHQvVublnNx1yeO4XisNCB&token=ilLL3IPytqEnEVxrjphQbaFlaybkvzWaeHzdPUQ4gEc&tvf=xrztAQzbxhdkMTQ
D: send GET command
D: Switch to HEADER
D: Headerline: Content-Type: audio/mpeg
D: Headerline: icy-metaint: 16384
D: Headerline: icy-br: 128
D: Headerline: ipic radio1/ip : <IP_ADDRESS>␀;ice-channels=2;ice-samplerate=48000
D: Headerline: icy-description:
D: Headerline: icy-genre:
D: Headerline: icy-name: BAYERN 3
D: Headerline: icy-pub: 0
D: Headerline: icy-samplerate: 44100
D: Headerline: icy-url:
D: Headerline: Server: rocketstreamingserver
D: Headerline: Cache-Control: max-age=0, no-cache, no-store
D: Headerline: Pragma: no-cache
D: Headerline: Expires: Tue, 16 Apr 2024 13:59:13 GMT
D: Headerline: Accept-Ranges: none
D: Headerline: Access-Control-Allow-Origin: *
D: Headerline: Access-Control-Expose-Headers: Content-Type, icy-metaint, icy-br, ice-audio-info, icy-description, icy-genre, icy-name, icy-samplerate, icy-url
D: Headerline: Connection: Close
D: Switch to DATA, bitrate is 128, metaint is 16384
D: Switch to DATA, bitrate is 128, metaint is 16384
D: Playtask start song
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Playtask stop song
D: Publish to topic radio1/icy/name : BAYERN 3
D: Publish to topic radio1/preset : 2
D: Publish to topic radio1/playing : 0
D: Sync found at 0x00E0
D: MP3Decode error -2
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Sync found at 0x00E0
D: MP3Decode error -6
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Sync found at 0x0020
D: MP3Decode error -2
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Sync found at 0x0140
D: Bitrate     is 128000
D: Samprate    is 48000
D: Channels    is 2
D: Bitpersamp  is 16
D: Outputsamps is 2304
D: Streamtitle found, 37 bytes
D: StreamTitle='Jason Derulo: Acapulco';
D: Publish to topic radio1/icy/streamtitle : Jason Derulo: Acapulco
D: Publish to topic radio1/volume : 10
D: updateNr 2 <= 8 to -1, relative is 1
D: updateNr result is 1
D: nextPreset is 1
D: Radiofuncs cmd is 1
D: Stopping client
D: Playtask stop song
D: Connect to host liveradio.swr.de/sw282p3/swr3/play.mp3
D: send GET command
D: Publish to topic radio1/preset : 1
D: Switch to HEADER
D: Headerline: access-control-allow-origin: *
D: Headerline: access-control-allow-methods: GET, OPTIONS, HEAD
D: Headerline: access-control-allow-headers: Accept, Origin, X-Requested-With, Content-Type
D: Headerline: swr-region: europe-west3
D: Headerline: swr-service: swr-streamplay
D: Headerline: swr-stage: prod
D: Headerline: swr-trace: 3b880855be2fe81fc47c4f32e5ff2bb0/10480003042947322288
D: Headerline: swr-version: 1.7.1
D: Headerline: location: http://dispatcher.rndfnk.com/swr/swr3/live/mp3/128/stream.mp3?aggregator=web
D: Headerline: X-Cloud-Trace-Context: 3b880855be2fe81fc47c4f32e5ff2bb0
D: Headerline: Server: Google Frontend
D: Headerline: Content-Length: 98
D: Headerline: Cache-Control: public, s-maxage=21600, max-age=300
D: Headerline: Content-Type: text/plain; charset=utf-8
D: Headerline: swr-cache-status: hit
D: Headerline: swr-cache-id: MUC-3ec5f666
D: Redirect
D: Switch to HEADER
D: Publish to topic radio1/playing : 0
D: Radiofuncs cmd is 1
D: Connect to host dispatcher.rndfnk.com/swr/swr3/live/mp3/128/stream.mp3?aggregator=web
D: Playtask stop song
D: send GET command
D: Publish to topic radio1/preset : 1
D: Switch to HEADER
D: Headerline: Content-Length: 0
D: Headerline: Connection: close
D: Headerline: Access-Control-Allow-Methods: GET, OPTIONS, HEAD
D: Headerline: Access-Control-Allow-Origin: *
D: Headerline: Cache-Control: no-cache, no-store
D: Headerline: Location: http://d111.rndfnk.com/ard/swr/swr3/live/mp3/128/stream.mp3?aggregator=web&cid=01FC1X5J7PN2N3YQPZYT8YDM9M&sid=2fBYYXaVEzeQeSBfTJUuJ82EFDs&token=rCXP80nilgOU3wYvEvMYoYtwYbvxR-6BM
D: Redirect
D: Publish to topic radio1/playing : 0
D: Radiofuncs cmd is 1
D: Connect to host d111.rndfnk.com/ard/swr/swr3/live/mp3/128/stream.mp3?aggregator=web&cid=01FC1X5J7PN2N3YQPZYT8YDM9M&sid=2fBYYXaVEzeQeSBfTJUuJ82EFDs&token=rCXP80nilgOU3wYvEvMYoYtwYbvxR-6BMmn777sLRH8&tv
D: send GET command
D: Publish to topic radio1/preset : 1
D: Switch to HEADER
D: Headerline: Content-Type: audio/mpeg
D: Headerline: icy-metaint: 16384
D: Headerline: icy-br: 128
D: Headerline: ice-audio-info: ice-samplerate=44100;ice-bitrate=128;ice-channels=2
D: Headerline: icy-description: SWR3
D: Headerline: icy-genre: Pop Music
D: Headerline: icy-name: SWR3 MP3 128
D: Headerline: icy-pub: 0
D: Headerline: icy-samplerate: 48000
D: Headerline: icy-url: https://www.swr3.de/
D: Headerline: Server: rocketstreamingserver
D: Headerline: Cache-Control: max-age SWR3 MP3 128␀no-store
D: Headerline: Pragma: no-cache
D: Headerline: Expires: Tue, 16 Apr 2024 13:59:46 GMT
D: Headerline: Accept-Ranges: none
D: Headerline: Access-Control-Allow-Origin: *
D: Headerline: Access-Control-Expose-Headers: Content-Type, icy-metaint, icy-br, ice-audio-info, icy-description, icy-genre, icy-name, icy-samplerate, icy-url
D: Headerline: Connection: Close
D: Switch to DATA, bitrate is 128, metaint is 16384
D: Switch to DATA, bitrate is 128, metaint is 16384
D: Playtask start song
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Playtask stop song
D: Publish to topic radio1/playing : 0
D: Streamtitle found, 59 bytes
D: StreamTitle=' *** Werbung in SWR3 *** Werbung in SWR3 ***';
D: Publish to topic radio1/icy/streamtitle :  *** Werbung in SWR3 *** Werbung in SWR3 ***
D: Sync found at 0x00EB
D: MP3Decode error -6
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Sync found at 0x0020
D: Bitrate     is 128000
D: Samprate    is 48000
D: Channels    is 2
D: Bitpersamp  is 16
D: Outputsamps is 2304
D: MP3Decode error -6
D: helixInit called for audio/mpeg, e is 255, d is 255
D: Sync found at 0x0120
D: Bitrate     is 128000
D: Samprate    is 48000
D: Channels    is 2
D: Bitpersamp  is 16
D: Outputsamps is 2304
D: Streamtitle found, 69 bytes
D: StreamTitle='SWR3 Nachrichten - auch zum Nachhören in der SWR3 App';
D: Publish to topic radio1/icy/streamtitle : SWR3 Nachrichten - auch zum Nachhören in der SWR3 App
D: updateNr 1 <= 8 to 7, relative is 0
D: updateNr result is 7
D: nextPreset is 7
D: Radiofuncs cmd is 1
D: Stopping client
D: Playtask stop song
D: Connect to host dispatcher.rndfnk.com/swr/swr1/rp/mp3/128/stream.mp3
D: Publish to topic radio1/preset : 7
D: Publish to topic radio1/playing : 0
D: Stack maintask  is 6200
D: Stack playtask  is 992
D: ADC reading is 765
D: 36 IR interrupts seen

The FIXEDWIFI is just an (extra) entry in the list of WiFi networks.  Handy if the configured list is still empty.
I cannot reproduce the error.  Maybe because I have a different hardware set-up.
I also see that you are not running the latest version....

Please, try the 06-MAR-2024 first.

Hm, probably my bad. I see one release (5.5.22) and 5 tagged versions also latest 5.5.22 and the current project state. How to try 06-MAR-2024? Downloading zip of current project was what I did before (first post no version number in log file)
However if it's that what you mean I will give it another try in a clean environnement. Maybe something went wrong.

Do not use the archive, download from the code page.  The version is at line 111 of main.cpp.

I have made a set-up like yours with a PCM5102 module.  I still cannot reproduce the bug, but I will leave the radio on for a few days.  However there may be a problem with closing the stream when changing station.  The function stop_mp3client in main.cpp should be changed like this:
void stop_mp3client ()
{
  queueToPt ( QSTOPSONG ) ;                        // Queue a request to stop the song
  while ( mp3client && mp3client->connected() )    // Client active and connected?
  {
    ESP_LOGI ( TAG, "Stopping client" ) ;          // Yes, stop connection to host
    mp3client->close() ;                           // Close connection
    mp3client->abort() ;                           // Necesary to prevent crash
    vTaskDelay ( 500 / portTICK_PERIOD_MS ) ;
  }
}

This has been corrected in the latest version.

Thank you for investigating, even not able to reproduce it. Well on normal use I saw two reboots the last days, both pretty soon after starting the radio tuning the station.
Still have no glue, I think the platform version is not the reason. The second device was in a state I had continous reboots not working at all. Persisting bahaviour after serveral times of compiling and fashing. Got back to work again after using your Arduino .ino code programming the file system. Might there be some inizialising missing causing random data accessed? However erase before upload as I apply should provide the same content.
I don't see the modified version on githb , I will patch the code and give it a try. Thanks