text:
Add default configuration

I want to apply some options to all the views I create unless I say the opposite, like extending a certain layout or having certain elements. This could be archieved by adding a config file.

I feel like this would add unnecessary bloat / complications to a simple php artisan make:* package. How would the options work if this was implemented? Add new ones like --no-sections? Override them with empty values (--section=)?

It would take the values from the config if defined, then check if there are options and overwrite if they are.

Right, so lets say I have a config file set up like this (mockup, obviously):
return [
    'extend' => 'layouts.app',

    'sections' => [
        'title',
        'content',
    ],
];

This would then always generate a view like this:
@extends('layouts.app')

@section('title')

@endsection

@section('content')

@endsection

What if I wanted to create a view that doesn't include the @extends() and @section()s? At the moment I can think of a few ways this could work, some maybe better than others 😉:
$ php artisan make:view my-view --section=<X> --extend=<X> # where <X> is a predefined keyword.
$ php artisan make:view my-view --no-config
$ php artisan make:view my-view # and only read the config file if a --with-defaults flag is set, maybe?

I'd say, if you have a config, you have to overwrite it with options. If you find yourself overwriting it very often, then you migth want to remove that config option...

Hmm. I'm very much in two minds about this. I don't see myself (or many other people) reach for this. I mean, how often do you create a view that you would need defaults?
On the other hand, it could be pretty cool to have for the power-user, and you could even take it a step further and introduce the concept of presets:
return [
    'presets' => [
        'foo' => [
            'extends' => 'layouts.foo,
            'sections' => ['title', 'content'],
        ],

        //
    ],
];

$ php artisan make:view --preset=foo

I normally extend layouts.app always except on the landing page, and I'm sure most applications with a dashboard do this. Also, I love the preset idea!

This package has been abandoned because of the introduction of the new make:view command included in Laravel since v10.23.0. For that reason, this issue will not be worked on.

repo: svenluijten/artisan-view


text:
Composite Design Pattern for composing Mono/Scriptable Objects Installers into tree structures

n/a

Composite is a structural design pattern that lets you compose objects into tree structures
and then work with these structures as if they were individual objects.

source: gharchive/issue

repo: svermeulen/Extenject

license: MIT

license_type: permissive

license_source: github-api


text:
UnitySynchronizationContext deadlocking?

Seems Unity uses a lock() a delegate/event is invoked which can result in more nightmare bug hunts so it needs to be addressed.
It looks like the lock() is just used for having thread-safe collection access. Use the appropriate System.Collections.Concurrent collection (Queue?) type instead of a lock() statement while still having thread-safe collections.
If exclusive access is required, they might be able to use InterlockedExchange with a Boolean flag that is checked and set thread-safe with the Interlocked helper methods.
The task is to make the WaitForUpdate thread-safe to avoid deadlock situations.
A coworker wrote:

One issue I noticed: await WaitForUpdate() posts to the Unity synchronization context. This shouldn't be a problem, but UnitySynchronizationContext has a major problem in its implementation: it locks the message queue while it's executing messages. This means that if we await WaitForUpdate(), then lock() waiting for some other thread, and that other thread also does await WaitForUpdate(), it'll deadlock because the event queue is locked while the sync context is executing. Bad Unity!

        private void Exec()
        {
            lock (m_AsyncWorkQueue)
            {
                var workCount = m_AsyncWorkQueue.Count;
                for (int i = 0; i < workCount; i++)
                {
                    var work = m_AsyncWorkQueue.Dequeue();
                    work.Invoke();
                }
            }
        }

See the problem there? Rule of thumb: Never call external events or delegates inside of a lock()

I was able to fix this issue by keeping my own queue in the coroutine runniner:
    /// <summary>
    /// This Async Coroutine Runner is just a helper object to
    /// ensure that coroutines run properly with async/await.
    /// </summary>
    [ExecuteInEditMode]
    internal class AsyncCoroutineRunner : MonoBehaviour
    {
        private static AsyncCoroutineRunner instance;
        private static Queue<Action> _Actions = new Queue<Action>();

        public event Action OnUpdate;

        internal static AsyncCoroutineRunner Instance
        {
            get
            {
                if (instance == null)
                {
                    instance = FindObjectOfType<AsyncCoroutineRunner>();
                }

                if (instance == null)
                {
                    var instanceGameObject = GameObject.Find("AsyncCoroutineRunner");
                    if (instanceGameObject != null)
                    {
                        instance = instanceGameObject.GetComponent<AsyncCoroutineRunner>();
                        if (instance == null)
                        {
                            Debug.Log("Found object but didn't have component");
                            Destroy(instanceGameObject);
                        }
                    }

                    instance = new GameObject("AsyncCoroutineRunner").AddComponent<AsyncCoroutineRunner>();
                    instance.gameObject.hideFlags = HideFlags.HideInHierarchy;
#if !UNITY_EDITOR
                    DontDestroyOnLoad(instance);
#endif
                }

                return instance;
            }
        }

        internal static void Post(Action task)
        {
            lock (_Actions)
            {
                _Actions.Enqueue(task);
            }
        }

        private void Update()
        {
            Debug.Assert(Instance != null);

            OnUpdate?.Invoke();

            int actionCount;

            lock (_Actions)
            {
                actionCount = _Actions.Count;
            }

            for (int i = 0; i < actionCount; i++)
            {
                Action next;

                lock (_Actions)
                {
                    next = _Actions.Dequeue();
                }

                next();
            }
        }
    }

Here's a repro script:

public class DeadlockRepro : MonoBehaviour
{
    private void Start()
    {
        AsyncCoroutineRunner.Instance.OnUpdate += OnUpdate;
        Task.Run((Action)ProcedureA);
        Task.Run((Action)ProcedureB);
        DoAsyncUpdateLoop();
    }

    private async void DoAsyncUpdateLoop()
    {
        while (true)
        {
            await new WaitForUpdate();
            Debug.Log("Async update");
        }
    }

    private async void OnUpdate()
    {
        await new WaitForEndOfFrame();
        Debug.Log("Action update");
    }

    private void DoBusywork()
    {
        // Simulates some amount of meaningful processing taking place.
        string x = string.Empty;
        for (int i = 0; i < 10; i++)
        {
            x += i.ToString();
            Thread.Sleep(100);
        }
    }

    private void ProcedureA()
    {
        if (SynchronizationContext.Current == SyncContextUtility.UnitySynchronizationContext)
        {
            Debug.LogError("Task got executed on the main thread!");
        }

        Debug.Log("Running procedure A on a background thread. Awaiting Update()");

        AsyncCoroutineRunner.Post(ProcedureAMainThread);
    }

    private void ProcedureAMainThread()
    {
        Debug.Log("Continuing procedure A on the main thread, within the sync context's lock. Doing busywork.");

        // Pass some time doing a little busywork
        DoBusywork();

        Debug.Log("Procedure A busywork complete. Entering lock(b)... (should deadlock)");

        lock (b)
        {
            Debug.Log("Procedure A never gets this far, because it deadlocks waiting for lock(b)");
        }
    }

    private void ProcedureB()
    {
        if (SynchronizationContext.Current == SyncContextUtility.UnitySynchronizationContext)
            Debug.LogError("Task got executed on the main thread!");

        lock (b)
        {
            Debug.Log("Running Procedure B on a background thread within lock(b)");

            // Do some busywork to pass the time.
            DoBusywork();

            Debug.Log("Procedure B busywork complete. Posting to sync context... (should deadlock)");

            // Post to the Unity sync context
            AsyncCoroutineRunner.Post(() =>
                Debug.Log("Procedure B never gets this far, because the call to UnitySynchronizationContext.Post() deadlocks")
            );
        }
    }

    // Ordinarily you'd use a lock(), but in our case the lock is a native critical section.
    // The compiler doesn't realize there's anything wrong with awaiting inside of this lock.
    private Mutex b = new Mutex();
}

Just wanna give an update on this.
Unity is working on a fix.

Going to close this. It was fixed in 2018.3.3f1 and 2019

license: mit

license_source: bigquery


text:
Valid SVG files are erroneously marked as invalid

An example SVG file that is not able to be processed is this file.
The regex in the following line is not able to match multi-line attribute values of the svg element:
https://github.com/svg-sprite/svg-sprite/blob/7edd0063b0fcf91c436a0d13ec6e01ce01af3299/lib/svg-sprite/shape.js#L324
In the aforementioned example, the viewBox attribute of the svg element has such a multi-line attribute value:
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16
16">

Processing this file with the command  node bin/svg-sprite.js -l debug /path/to/valid/svg will produce the following log entries:
2021-04-05 21:04:48 - debug: Started logging
2021-04-05 21:04:48 - debug: Prepared general options
2021-04-05 21:04:48 - debug: Prepared `shape` options
2021-04-05 21:04:48 - debug: Prepared `svg` options
2021-04-05 21:04:48 - debug: Prepared `mode` options
2021-04-05 21:04:48 - debug: Prepared `variables` options
2021-04-05 21:04:48 - verbose: Initialized spriter configuration
2021-04-05 21:04:48 - debug: Created processing queue instance
2021-04-05 21:04:48 - info: Created spriter instance
2021-04-05 21:04:48 - debug: Added "toolbarButton-pageUp.svg" to processing queue
2021-04-05 21:04:48 - error: Skipping "toolbarButton-pageUp.svg" (Invalid SVG file)
2021-04-05 21:04:48 - info: Compiling 0 shapes ...
2021-04-05 21:04:48 - debug: Created layouter instance
2021-04-05 21:04:48 - info: Finished  sprite compilation
2021-04-05 21:04:48 - info: Created

Even though an error occurred while processing the svg file, the error code of the command is 0. The output of the command with flag -l debug must be manually inspected to notice that there was an issue.

Please submit a PR with a test case. The specs don't say that this should be in one line, so the regex should probably have m too.

authors: XhmikosR ilian

repo: svg-sprite/svg-sprite


text:
Timeout on event subscription

I read the full discussion regarding the timeout error handling and I'm still not sure how to handle this case.
Info:
On the latest version (2.5.0), I'm getting the following error:
    FetchError: network timeout at: http://192.168.68.67:1400/MediaRenderer/AVTransport/Event
        at Timeout.<anonymous> (c:\dev\sonos-api\node_modules\node-fetch\lib\index.js:1484:13)
        at listOnTimeout (node:internal/timers:564:17)
        at process.processTimers (node:internal/timers:507:7) {
      type: 'request-timeout'

This is the only log output I got at this moment., seems like this is related to the library internal event-subscription.
Here is my subscribe and unsubscribe functions:
const subscribe = d => {
    debug("Subscribing device %s events", d.uuid)
    d.Events.on(SonosEvents.SubscriptionError, error => onSubscriptionError(d.uuid, error))
    d.RenderingControlService.Events.on(ServiceEvents.ServiceEvent, async data => await Util.async(() => onDeviceRendererChanged(d.uuid, data)))
    d.Events.on(SonosEvents.CurrentTransportStateSimple, async data => await Util.async(() => onTransportStateChanged(d, data)))
    d.ZoneGroupTopologyService.Events.on(ServiceEvents.ServiceEvent, async data => await Util.async(() => onGroupTopologyChanged(d, data)))
    d.GroupRenderingControlService.Events.on(ServiceEvents.ServiceEvent, async data => await Util.async(() => onGroupRendererChanged(d, data)))
}

const unsubscribe = d => {
    d.CancelEvents()
    d.AlarmClockService.Events.removeAllListeners(ServiceEvents.ServiceEvent)
    d.AVTransportService.Events.removeAllListeners(ServiceEvents.ServiceEvent)
    d.RenderingControlService.Events.removeAllListeners(ServiceEvents.ServiceEvent)
    d.ZoneGroupTopologyService.Events.removeAllListeners(ServiceEvents.ServiceEvent)
    d.GroupRenderingControlService.Events.removeAllListeners(ServiceEvents.ServiceEvent)
    debug('Device [%s] [%s] is now unsubsribed', d.uuid, d.name)
}

Originally posted by @orensharon in https://github.com/svrooij/node-sonos-ts/issues/147#issuecomment-1277144016

The issue you commented on was closed, and while it seems to have to do with the events, it was unrelated to the notifications, so I moved this to a new issue.
@orensharon can you elaborate on this a little? Like wireless speakers? Battery powered? S1 or S2? Node version? OS? Firewall?
The d.Events.on(...) is the only thing where you cannot catch the error. That is because adding something to the event emitter is synchronous, but is has to subscribe for those events (which is asynchronous). As I'm writing this I could probably get around this by making a .SubscribeForEvents(ServiceName) method, that would solve al these issues.

Hi, Sure!
First, some details about my system:

All powered
Single speaker connected to the router with RJ45. All the others connected wireless.
All updated to S2.
Node version: 18.7.0
OS: Windows 10. without firewall / av

I don't know if this is related, but as you can see, for each event listener I wrapped the handler with async data => await Util.async(() => handle(d.uuid, data))) because if I did not, any exception that handle() may throw is completely ignored.
And the implementation of Util.async(...) it's just:
exports.async = async function (task) {
    await task()
}

Please let me know if there is anything else I can help you with.

According to the current code, the timeout is 15 seconds at the moment. That should be plenty to subscribe for events....
I have no clue what you're doing with the Util.async, that seems irrelevant for now.
Can you check what happens when you try this:
const subscribe = d => {
    debug("Subscribing device %s events", d.uuid)
    d.RenderingControlService.Events.on(ServiceEvents.SubscriptionError, (error) => console.log('Error subscribing', error));
    d.RenderingControlService.Events.on(ServiceEvents.ServiceEvent, (data) => console.log('New data', data));
}

Apart from that it might result in multiple subscriptions if you call your code like this. The following gives you the same result but less change on double event subscriptions.
const subscribe = d => {
    debug("Subscribing device %s events", d.uuid)
    d.Events.on(SonosEvents.SubscriptionError, error => onSubscriptionError(d.uuid, error))
    d.Events.on(SonosEvents.RenderingControl, async data => await Util.async(() => onDeviceRendererChanged(d.uuid, data)))
    d.Events.on(SonosEvents.CurrentTransportStateSimple, async data => await Util.async(() => onTransportStateChanged(d, data)))
    // don't subscribe on ZoneTopology, let the SonosManager handle that for you. You'll only need one subscription to this service anyway, since they will all emit the same changes.
    //d.ZoneGroupTopologyService.Events.on(ServiceEvents.ServiceEvent, async data => await Util.async(() => onGroupTopologyChanged(d, data)))
    d.GroupRenderingControlService.Events.on(ServiceEvents.ServiceEvent, async data => await Util.async(() => onGroupRendererChanged(d, data)))
}

Thanks for the replay:
I must say that the error is sporadic, I have encountered it only once.
I checked the following:
const subscribe = d => {
    debug("Subscribing device %s events", d.uuid)
    d.RenderingControlService.Events.on(ServiceEvents.SubscriptionError, (error) => console.log('Error subscribing', error));
    d.RenderingControlService.Events.on(ServiceEvents.ServiceEvent, (data) => console.log('New data', data));
}

And the output is:
sonos:device-discovery Device discovery created +0ms
sonos:sonosmanager InitializeWithDiscovery timeout: 10 +0ms
sonos:device-discovery Search one device in 10 seconds +3ms
sonos:device-discovery sendBroadcast() +0ms
sonos:device-discovery UDP port not bound, waiting 100ms +1ms
sonos:device-discovery UDP socket started listening +0ms
sonos:device-discovery Bound to port 60938 +1ms
sonos:device-discovery sendBroadcast() +108ms
sonos:device-discovery SSDP message
sonos:device-discovery HTTP/1.1 200 OK
CACHE-CONTROL: max-age = 1800
EXT:
LOCATION: http://192.168.68.57:1400/xml/device_description.xml
SERVER: Linux UPnP/1.0 Sonos/69.1-33120 (ZPS22)
ST: urn:schemas-upnp-org:device:ZonePlayer:1
USN: uuid:RINCON_5CAAFDCFAA1801400::urn:schemas-upnp-org:device:ZonePlayer:1
X-RINCON-HOUSEHOLD: Sonos_XXXXXXXXXXXXXXXXXXXXXX
X-RINCON-BOOTSEQ: 33
BOOTID.UPNP.ORG: 33
X-RINCON-PROXY: RINCON_542A1B8D356301400
X-RINCON-WIFIMODE: 0
X-RINCON-VARIANT: 2
HOUSEHOLD.SMARTSPEAKER.AUDIO: Sonos_XXXXYXXXXXXXXXXXXXXXXXXXXX.XXXXXXXXYEXXXXXXXX-X
SECURELOCATION.UPNP.ORG: https://192.168.68.57:1443/xml/device_description.xml
X-SONOS-HHSECURELOCATION: https://192.168.68.57:1843/xml/device_description.xml +33ms
sonos:device-discovery Found ZPS22 on 192.168.68.57 +4ms
sonos:sonosmanager Discovery found player with ip: 192.168.68.57 +155ms
sonos:sonosmanager Initialize() +1ms
sonos:service:zonegrouptopology:192.168.68.57 GetZoneGroupState() +0ms
sonos:service:zonegrouptopology:192.168.68.57 Listener added for serviceEvent  (sid: 'undefined', SONOS_DISABLE_EVENTS: true) +31ms
sonos:service:zonegrouptopology:192.168.68.57 Subscribing to events +1ms
sonos:eventlistener Listener endpoint: http://192.168.68.52:6329/sonos/{sonos-uuid}/{serviceName} +0ms
sonos:service:zonegrouptopology:192.168.68.57 Creating event subscription with callback: http://192.168.68.52:6329/sonos/58e66915-d14e-48f6-dd01-29c4ac64e49a/ZoneGroupTopology +7ms
sonos:service:zonegrouptopology:192.168.68.68 GetZoneGroupState() +0ms
sonos:eventlistener Starting event listener on port 6329 +17ms
sonos:eventlistener Got event on /sonos/58e66915-d14e-48f6-dd01-29c4ac64e49a/ZoneGroupTopology SID: uuid:RINCON_5CAAFDCFAA1801400_sub0000000217 +14ms
sonos:service:zonegrouptopology:192.168.68.57 Got event +47ms
sonos:service:zonegrouptopology:192.168.68.54 GetZoneGroupAttributes() +0ms
sonos:service:zonegrouptopology:192.168.68.61 GetZoneGroupAttributes() +0ms
sonos:service:zonegrouptopology:192.168.68.68 GetZoneGroupAttributes() +46ms
sonos:service:zonegrouptopology:192.168.68.67 GetZoneGroupAttributes() +0ms
sonos:device:192.168.68.54 Listener added for subscriptionError (isSubscribed: false) +0ms
sonos:service:renderingcontrol:192.168.68.54 Listener added for serviceEvent  (sid: 'undefined', SONOS_DISABLE_EVENTS: true) +0ms
sonos:service:renderingcontrol:192.168.68.54 Subscribing to events +0ms
sonos:service:renderingcontrol:192.168.68.54 Creating event subscription with callback: http://192.168.68.52:6329/sonos/RINCON_542A1B8D356301400/RenderingControl +1ms
sonos:device:192.168.68.61 Listener added for subscriptionError (isSubscribed: false) +0ms
sonos:service:renderingcontrol:192.168.68.61 Listener added for serviceEvent  (sid: 'undefined', SONOS_DISABLE_EVENTS: true) +0ms
sonos:service:renderingcontrol:192.168.68.61 Subscribing to events +1ms
sonos:service:renderingcontrol:192.168.68.61 Creating event subscription with callback: http://192.168.68.52:6329/sonos/RINCON_7828CA237E9601400/RenderingControl +0ms
sonos:device:192.168.68.68 Listener added for subscriptionError (isSubscribed: false) +0ms
sonos:service:renderingcontrol:192.168.68.68 Listener added for serviceEvent  (sid: 'undefined', SONOS_DISABLE_EVENTS: true) +0ms
sonos:service:renderingcontrol:192.168.68.68 Subscribing to events +0ms
sonos:service:renderingcontrol:192.168.68.68 Creating event subscription with callback: http://192.168.68.52:6329/sonos/RINCON_5CAAFDB8283E01400/RenderingControl +0ms
sonos:device:192.168.68.67 Listener added for subscriptionError (isSubscribed: false) +0ms
sonos:service:renderingcontrol:192.168.68.67 Listener added for serviceEvent  (sid: 'undefined', SONOS_DISABLE_EVENTS: true) +0ms
sonos:service:renderingcontrol:192.168.68.67 Subscribing to events +0ms
sonos:service:renderingcontrol:192.168.68.67 Creating event subscription with callback: http://192.168.68.52:6329/sonos/RINCON_7828CAB4010601400/RenderingControl +1ms
sonos:eventlistener Got event on /sonos/RINCON_542A1B8D356301400/RenderingControl SID: uuid:RINCON_542A1B8D356301400_sub0000005475 +64ms
sonos:service:renderingcontrol:192.168.68.54 Got event +26ms
sonos:eventlistener Got event on /sonos/RINCON_7828CAB4010601400/RenderingControl SID: uuid:RINCON_7828CAB4010601400_sub0000005233 +10ms
sonos:service:renderingcontrol:192.168.68.67 Got event +18ms
sonos:eventlistener Got event on /sonos/RINCON_7828CA237E9601400/RenderingControl SID: uuid:RINCON_7828CA237E9601400_sub0000005230 +4ms
sonos:service:renderingcontrol:192.168.68.61 Got event +36ms
sonos:eventlistener Got event on /sonos/RINCON_5CAAFDB8283E01400/RenderingControl SID: uuid:RINCON_5CAAFDB8283E01400_sub0000005229 +8ms
sonos:service:renderingcontrol:192.168.68.68 Got event +43ms

Regarding the multiple subscriptions of ZoneGroupTopologyService -
I understand now, that only single device should be registered to this event, I will give it a try.
Is this also applies to d.GroupRenderingControlService.Events.on(...) subscription?

Hi,
Update -
@svrooij, I think this issue can be closed.
I missed that manager.CheckAllEventSubscriptions() is an async function.

Background:
For some reason, after a while, I'm no longer receiving events (such as TransportState and RenderingControl) from devices.
(I don't have any debug outputs for that yet)
I was able to solve this by using the code I found in one of the examples
https://github.com/svrooij/node-sonos-ts/blob/322a36d838c4cbdf424a8d2f48142d2d227ba101/examples/events.js#L36
I called the manager.CheckAllEventSubscriptions() manually and repeatedly,
and I forgot to use the async await - this is the cause of the timeout error.

Questions/Suggestion:
I saw that the renewEventSubscription() inside the base-service is triggered every 10 minutes.
https://github.com/svrooij/node-sonos-ts/blob/322a36d838c4cbdf424a8d2f48142d2d227ba101/src/services/base-service.ts#L425

Can this interval be configurable?
Is there a minimum limit for this value?

Is there a way to know that renewEventSubscription() re-subscribed after the subscription was lost?

To simulate the renewEventSubscription success/fail, I turned off and on my network adapter (Wifi) and it took 10 minutes to receive the SubscriptionError error or for the re-subscription to take place.

I would love to implement a way to "monitor" devices. At the moment to my knowledge it does not sends out events if some speaker is no longer connected. I think this can only be done by continuedly doing a call to some endpoint like this https://github.com/svrooij/node-sonos-ts/blob/322a36d838c4cbdf424a8d2f48142d2d227ba101/src/sonos-device.ts#L187.
I'm not sure what kind of stress that would be on the speakers if I would get that information like every 30 seconds, just to check if the speaker is still online.
What do you think of something like on the SonosDevice there is a timer that checks this endpoint, but is get reset if there is any event received on that speaker. So as long as it's playing and sending regular updates nothing happens, but as soon as there are no longer updates we check that endpoint like every 30 seconds and emit an event if a speaker can no longer be found.

Thank you again for the response.
I want to separate between 2 cases please:

Speaker is online, but lost its subscription. re-subscription is required.
This is the reason why I have initially tried to call manager.CheckAllEventSubscriptions() inside a timer.
As I mentioned, sometimes I no longer receive events from speakers (it happens when I regroup speakers frequently as part of a debugging session).
In this case I want to re-subscribe the speaker as soon as possible.
In my solution, the interval is 5 seconds ( I'm not sure what the stress is here):

const startMonitor = (rate = 5000) => {
    _monitor = setInterval(async () => {
        try {
            await _manager.CheckAllEventSubscriptions()
        } catch (error) {
            logger.warn('Check all event subscriptions failed: %s', error.message)
        }
    }, rate)
}

Speaker got offline (powered off, disconnected from network, etc...)

What do you think of something like on the SonosDevice there is a timer that checks this endpoint, but is get reset if there is any event received on that speaker. So as long as it's playing and sending regular updates nothing happens, but as soon as there are no longer updates we check that endpoint like every 30 seconds and emit an event if a speaker can no longer be found.

If I understand you correctly, when the speakers are idle (or playing) - the timer will check the endpoint every 30 secs?

Do you know how the Sonos app is dealing with those scenarios?
I did try to check it, I don't have unequivocal findings, but I did notice that it may take the app several minutes to remove the speaker from the list, but sometimes it's marked as 'Offline' immediately.
I'm trying to find a way to "disconnect" the speaker without powering it off every time to make more tests, any ideas?

Speaker is online, but lost its subscription. re-subscription is required.

I never noticed this, this seems to be related to you changing the speakers often (or them not having a static IP).
The only reason I can think of this would happen is, if the speaker is turned off or lost wifi connection. But that should be discovered by the timer (if it takes longer then 30 seconds)

Timer every 30 seconds when idle

The is exactly the result of this would be implemented, (and also the reason why it isn't there yet).
You can always call the check all subscriptions method as often as you wish, but I cannot oversee the issues that would give in the long-run.

this seems to be related to you changing the speakers often (or them not having a static IP).

I did change the speakers often (created new groups fast) to reproduce the problem.
IP address is reserved for each speaker.

You can always call the check all subscriptions method as often as you wish

So if I get you - the new timer will only check the connectivity to the speaker (like ping).
And if a subscription is getting lost for any reason, I have to handled it manually (such re-subscribe using the CheckAllEventSubscriptions()), or wait for it to handled internally by your code (the 10 mins timer)

If the ping discovered a speaker is not available anymore, it might also discover the speaker is available again and then restart the event subscription.
Just airing ideas for this new feature.

@orensharon is this issue still relevant? And if so, can you summarize the proposed solution?

authors: orensharon svrooij

repo: svrooij/node-sonos-ts


text:
Generating a swagger.json during compile time using a Maven plugin

I've written a Maven plugin that generates a Swagger.json during compile time. Basically all it does is
Set<Class<?>> classes = reflections.getTypesAnnotatedWith(Path.class);
new Reader(swagger, new DefaultReaderConfig()).read(classes);
objectMapper.writeValueAsString(swagger);

Would  there any interest in such a pull request? For me the upside was fewer runtime dependencies (only swagger-annotations) and less dependency conflict resolution related to Jackson. But mostly I wrote the plugin because I was skeptical of including third-party services in my application just to provide a static file.
There are a handful of other projects that seem to be driven by similar concerns. But it would be nice to have something backed by you.

You mean something like https://github.com/kongchen/swagger-maven-plugin?

Very similar.
My plugin uses your Reader whereas that plugin provides its' own implementation. So my plugin produces the same output as your JAX-RS based solution whereas that plugin does not. Otherwise I would say that the maven-swagger-plugin is better at pretty much everything. It provides more features, it supports more frameworks and has had more testing. I just happened to run into some problems with their Reader and decided to write a plugin that utilizes your Reader instead.
I could see my plugin as being interesting for you if you want to offer a provide time solution without much of an initial effort followed by continuous minimal effort for maintenance. It's a single-page-of-code-wrapper around your existing work and will therefor automatically benefit from the improvements you make to your core product.
Anyway. Let me know and I'll zip you my project and send it to you. I do believe that many users will appreciate a build time solution.

Hi, since this project is really for run-time integration, it doesn't make sense to add it in here.

@tofflos I could really use this! Any chance you still have this plugin that you could share?

@lalpert I couldn't find it but it seems someone has created something similar at https://github.com/openapi-tools/swagger-maven-plugin.

@tofflos Thanks, I'll check it out!

authors: fehguy lalpert tofflos webron

repo: swagger-api/swagger-core


text:
Why no support for external parameter reference?

Why arent external parameter references supported?

Error:
Semantic error at paths./accounts/{accountID}
Declared path parameter "accountID" needs to be defined as a path parameter at either the path or operation level

I have to declare the parameter in a root object, and then i can reference a external schema for its type, but what i would reeeeally like is to rather reference the complete external object directly. In a similar manner to that which is allowed with responses..

Lets elaborate:
openapi: "3.0.0"
info:
  title: Example API
  description: An Example of how to set up the API Gateway.
  version: v1
  contact:
    email: flow@stacc.com
servers:
  - url: http://localhost:3010/api
    description: Sandbox
x-flow-proxies:
  flow-service-proxy:
    target: http://localhost:3020
tags:
  - name: Account Service
paths:
  /accounts/{accountID}:
    x-flow-proxy: flow-service-proxy
    get:
      tags:
        - Account Service
      summary: Gets a specific account by id
      parameters:
        - $ref: "#/components/parameters/accountID" #Legal, but forces reference to a local parameter object
        - $ref: "service-schemas/mock-account-service.yaml#/parameters/accountID" #Illegal reference
      responses:
        "200":
          $ref: "service-schemas/mock-account-service.yaml#/responses/get.200.account" #legal reference
components:
  parameters:
    accountID: #Why cant this entire object be moved out?
      name: accountID
      in: path
      required: true
      description: ID of account
      schema:
        $ref: "service-schemas/mock-account-service.yaml#/parameters/id"

Would appreciate any feedback that could explain the reasoning behind this 👍
Thanks!

@hpl002 can you clarify in which scenario you're getting the mentioned error (e.g in swagger-editor? using parser? etc) and provide the whole set of involved specification files?

I think i might have confused an issue with swagger fore with one that was rather intended for the swagger editor.
I will reopen this issue if i run into it again at a later point.

Solved it on my end by using a config bundler before validating.

Think the validator might have accepted external references for responses, but not for parameters. My thinking was that if one is allowed then why not both?
For future readers: have a look at https://www.npmjs.com/package/@apidevtools/swagger-parser


text:
Example for 2D slices?

Consider this:
type MyType struct {
	MyField [][]string `json:"my_field" example:"what_do_i_write_here"`
}

How do I write the example for MyField. Are examples for 2D slices currently supported, because I get an error when trying to write anything as example for  2D slices?

Unfortunately, there is no way to do that.

Is this issue on the swag side, or the swagger documentation, if you know?
If this is something on the swag side, I could contribute if given some pointers on how to start with. Not something important to me at the moment, but it could be helpful for someone else.

Same question here!

authors: jimmyjimmykuo krashish8 ubogdan

repo: swaggo/swag


text:
Cannot find type definition for type aliases

I've got cannot find type definition for multiple types, like
net.IP
type IP []byte
or
time.Month
type Month int
ParseComment error in file /path/to/file.go :cannot find type definition: net.IP
These types are used in library entities, so I cannot change their type.
I tried to add --parseInternal true, but it doesn't help.
swag version v1.7.1

Upd. Seems --parseInternal true works. Some terminal issues


text:
filter list on ios safari

Expected behavior
On page hashtag, when scrolling down, filter list button has to 'stick' under profile div
Actual behavior.
filter list button disappears under profile div, and the filter opens way too low.
Operating system / hardware
Actual phone, iOS, safari
tested on iphone 5 & 6

Please clean up this issue and define which epic it belongs to or what the right label is.

repo: swarmcity/SwarmCitySite


text:
[ACKProcessor] Add queue name in log context

Hi,
IMO it could be great to have such information in the log context
What do you think?
Also what do you think about rewriting all log message so they are invaraible, and moving variable(s) to the context?
Thank you

Any news for this PR? @odolbeau @olaurendeau
Thank you

Hello !
In my usecases at LaFourchette so far we never needed to log technical informations about queue, channel, connection, ... What we do log is the routing_key, infos about the message content, consumption time, ...
@odolbeau If I understand well, with the blablacar processor that add context to all the logs, queue name would be added in the AckProcessor logs ?
Could it be a standard Processor ?

@odolbeau thank you for your answer

Could it be a standard Processor ?

What about doing a DefaultLoggerProcessor?
with some options to enable/disable some data to log

Sorry for the late answer, I don't have much time to dedicate to this project right now (and with a limited connection).
Anyway, I don't see any elegant solution to implement a system like this by default, mainly because information to log depends on your business (and can be directly in the message itself).
The easiest solution is to merge this PR I think.
@noniagriconomie could you please rebase your branch and check tests?

@odolbeau I will try to review this Pr this week
thank you

hi @odolbeau do you think it is mergeable after helping fixing test?
thank you

@noniagriconomie Sure it is!
Sorry for the delay, I have a limited internet access for a few weeks.

Closed, we deal differently
Thank you

source: gharchive/pull-request

authors: noniagriconomie odolbeau olaurendeau

repo: swarrot/swarrot


text:
Fix the min version for DBAL

Tests are relying on the MasterSlaveConnection added in DBAL 2.2.

:+1:

authors: odolbeau stof


text:
Segfault on exit in handle_tablet_pad_destroy

Happens when a tablet is connected.
> coredumpctl gdb
           PID: 18305 (rootston)
           UID: 1000 (simon)
           GID: 10 (wheel)
        Signal: 11 (SEGV)
     Timestamp: Sat 2018-09-01 23:19:32 CEST (44s ago)
  Command Line: build/rootston/rootston
    Executable: /home/simon/src/wlroots/build/rootston/rootston
 Control Group: /user.slice/user-1000.slice/session-3.scope
          Unit: session-3.scope
         Slice: user-1000.slice
       Session: 3
     Owner UID: 1000 (simon)
       Boot ID: 14ece646dc29499599f774f3d342723c
    Machine ID: ae250605ee9f4ad78d9889834b80139e
      Hostname: kurisu
       Storage: /var/lib/systemd/coredump/core.rootston.1000.14ece646dc29499599f774f3d342723c.18305.1535836772000000.lz4
       Message: Process 18305 (rootston) of user 1000 dumped core.

                Stack trace of thread 18305:
                #0  0x00007f65e221d0a7 wl_list_remove (/usr/lib/libwayland-server.so.0.1.0)
                #1  0x000055a68ab2335b n/a (/home/simon/src/wlroots/build/rootston/rootston)
                #2  0x00007f65e22a082c n/a (/home/simon/src/wlroots/build/libwlroots.so.0.0.0)
                #3  0x00007f65e2286313 n/a (/home/simon/src/wlroots/build/libwlroots.so.0.0.0)
                #4  0x00007f65e225c4d3 n/a (/home/simon/src/wlroots/build/libwlroots.so.0.0.0)
                #5  0x00007f65e225235d n/a (/home/simon/src/wlroots/build/libwlroots.so.0.0.0)
                #6  0x00007f65e225f8b6 n/a (/home/simon/src/wlroots/build/libwlroots.so.0.0.0)
                #7  0x00007f65e225fad8 n/a (/home/simon/src/wlroots/build/libwlroots.so.0.0.0)
                #8  0x00007f65e2218bef n/a (/usr/lib/libwayland-server.so.0.1.0)
                #9  0x00007f65e2219377 wl_display_destroy (/usr/lib/libwayland-server.so.0.1.0)
                #10 0x000055a68ab1cb10 n/a (/home/simon/src/wlroots/build/rootston/rootston)
                #11 0x00007f65e19c4223 __libc_start_main (/usr/lib/libc-2.28.so)
                #12 0x000055a68ab1210e n/a (/home/simon/src/wlroots/build/rootston/rootston)

GNU gdb (GDB) 8.1.1
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-pc-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from /home/simon/src/wlroots/build/rootston/rootston...done.
[New LWP 18305]
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
Core was generated by `build/rootston/rootston'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007f65e221d0a7 in wl_list_remove () from /home/simon/src/wlroots/build/rootston/../../../../../../lib64/libwayland-server.so.0
(gdb) bt
#0  0x00007f65e221d0a7 in wl_list_remove () at /home/simon/src/wlroots/build/rootston/../../../../../../lib64/libwayland-server.so.0
#1  0x000055a68ab2335b in handle_tablet_pad_destroy (listener=0x55a68d12e488, data=0x55a68d12d6e0) at ../rootston/seat.c:719
#2  0x00007f65e22a082c in wlr_signal_emit_safe (signal=0x55a68d12d720, data=0x55a68d12d6e0) at ../util/signal.c:29
#3  0x00007f65e2286313 in wlr_input_device_destroy (dev=0x55a68d12d6e0) at ../types/wlr_input_device.c:33
#4  0x00007f65e225c4d3 in backend_destroy (wlr_backend=0x55a68cab5a90) at ../backend/libinput/backend.c:110
#5  0x00007f65e225235d in wlr_backend_destroy (backend=0x55a68cab5a90) at ../backend/backend.c:46
#6  0x00007f65e225f8b6 in multi_backend_destroy (wlr_backend=0x55a68caad260) at ../backend/multi/backend.c:47
#7  0x00007f65e225fad8 in handle_display_destroy (listener=0x55a68caad2a8, data=0x55a68caa7700) at ../backend/multi/backend.c:77
#8  0x00007f65e2218bef in  () at /home/simon/src/wlroots/build/rootston/../../../../../../lib64/libwayland-server.so.0
#9  0x00007f65e2219377 in wl_display_destroy () at /home/simon/src/wlroots/build/rootston/../../../../../../lib64/libwayland-server.so.0
#10 0x000055a68ab1cb10 in main (argc=1, argv=0x7ffed1bc5118) at ../rootston/main.c:79

This happens when there's never any tool used on the associated tablet.
Shouldn't be hard to fix, init the signal the link belongs to somewhere around https://github.com/swaywm/wlroots/blob/master/rootston/seat.c#L808
Can't test it right now, so I don't think a PR makes sense.

authors: Ongy emersion

repo: swaywm/wlroots


text:
Sway segfaults when using RDP Backend

When I try to use the RDP backend, Sway crashes.
For transparency's sake, here's the script I'm executing:
#!/usr/bin/env bash
DIR="${HOME}/.local/sway/sway-rdp"

export WLR_RDP_TLS_CERT_PATH="${DIR}/tls.crt"
export WLR_RDP_TLS_KEY_PATH="${DIR}/tls.key"
export WLR_RDP_ADDRESS=127.0.0.1
export WLR_RDP_PORT=3389

export WLR_BACKENDS=rdp

if [[ ! -f "${WLR_RDP_TLS_CERT_PATH}" ]]; then
  rm -rf "${WLR_RDP_TLS_KEY_PATH}" "${WLR_RDP_TLS_CERT_PATH}"
  openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
    -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com" \
    -keyout "${DIR}/tls.key"  -out "${DIR}/tls.crt"
fi

rm -rf "${HOME}/.local/sway/sway-rdp/sway.log"
rm -rf "${HOME}/.local/sway/sway-rdp/sway.dump"

curl "https://raw.githubusercontent.com/swaywm/sway/master/config.in" > "${HOME}/.config/sway/config-stock"
sway -c "${HOME}/.config/sway/config-stock" -d &> "${HOME}/.local/sway/sway-rdp/sway.log"
coredumpctl dump > "${HOME}/.local/sway/sway-rdp/sway.dump"

Debug Log:
sway.log
Likely relevant chunk:
2019-07-11 14:04:48 - [sway/main.c:140] SWAYSOCK=/run/user/1000/sway-ipc.1000.1592.sock
2019-07-11 14:04:48 - [sway/server.c:39] Preparing Wayland server initialization
2019-07-11 14:04:48 - [backend/rdp/backend.c:89] Creating RDP backend
2019-07-11 14:04:48 - [EGL] eglGetPlatformDisplay: _eglGetPlatformDisplayCommon
2019-07-11 14:04:48 - [EGL] eglGetPlatformDisplayEXT: Could not create EGLDisplay
2019-07-11 14:04:48 - [render/egl.c:153] Failed to create EGL display
2019-07-11 14:04:48 - [render/wlr_renderer.c:208] Could not initialize EGL
2019-07-11 14:04:48 - [backend/rdp/backend.c:121] Failed to create renderer

Configuration File:
STOCK from this repo (see script above, it pulls it each time)
Backtrace:
(gdb) bt
#0  0x00007f100393d5e7 in wlr_backend_is_rdp () from /nix/store/iwl4rasjxgl2pi3x4vn0pw4sqvfym871-wlroots-df3f0ffbb0bcce8a12c83b577fd688a4ec290e7e/lib/libwlroots.so.3
#1  0x00007f100393d5f9 in rdp_backend_from_backend () from /nix/store/iwl4rasjxgl2pi3x4vn0pw4sqvfym871-wlroots-df3f0ffbb0bcce8a12c83b577fd688a4ec290e7e/lib/libwlroots.so.3
#2  0x00007f100393d63e in wlr_rdp_backend_set_address () from /nix/store/iwl4rasjxgl2pi3x4vn0pw4sqvfym871-wlroots-df3f0ffbb0bcce8a12c83b577fd688a4ec290e7e/lib/libwlroots.so.3
#3  0x00007f100392a5de in wlr_backend_autocreate () from /nix/store/iwl4rasjxgl2pi3x4vn0pw4sqvfym871-wlroots-df3f0ffbb0bcce8a12c83b577fd688a4ec290e7e/lib/libwlroots.so.3
#4  0x0000000000419d19 in server_privileged_prepare ()
#5  0x000000000040e3e8 in main ()

I am one of the packagers of Sway for NixOS and I carry HEAD revisions in my overlay. I suspect this is a packaging or platform issue related to GL, but I really don't know much about how GL/EGL/whatever works in Linux, so I could use a pointer.

The error handling seems to be broken.

Sway no longer segfaults at this location, instead now erroring elsewhere.

Closing in favor of more specific bug reports.

authors: colemickens emersion


text:
subsurface: add map/unmap events

Fixes https://github.com/swaywm/wlroots/issues/1414

Should we avoid iterating over unmapped subsurfaces when rendering? Should we instruct compositors to check whether or not a subsurface is mapped when rendering?

Err, forgot that part. Hmm. It'd be better to handle all of this mess in wlroots. I'll work on a fix.

Fixed

I don't follow how this new patch addresses my concern.

Oh, yeah, the fix was more about the map/unmap semantics for subsurfaces (described in the original issue).
About how compositors should handle it… Right now for popups we iterate over unmapped ones too. I'm not sure iterating over only mapped surfaces is a good idea, as surface iterators can be used for e.g. wlr_surface_send_{enter,leave}. I'd say the compositor should handle it, although Rootston doesn't do it now (not for subsurfaces, not for popups, not for toplevels, not for xwayland surfaces).

Thanks!

authors: ddevault emersion


text:
error: a bin target must be available for cargo run

I got this error when tried to cargo run your project.
StackOverflow said it happens because of the absence of src/main.rs.
So, how to run your project locally?
rustc --version
rustc 1.36.0-nightly (7c71bc320 2019-04-30)

swc binaet lives at https://github.com/swc-project/node-swc and you should run install npm install @swc/core @swc/cli instead

Well, I want to contribute, not use)

@Diokuz You can run cargo test in a crate you want to contribute. Thanks in advance.

repo: swc-project/swc


text:
[Bug] transformer can't tag variable scope correctly in some edge case

Describe the bug
The code after swc transformer, would cause incorrectly behavior.
The code would transform like this:
var keynode = {
  show_type: 1,
  key_list: [
    { show_type: 'a', },
    { show_type: 'b' },
    { show_type: "c" },
  ]
}

var { show_type, key_list } = keynode;

console.log('show_type in loop output:', show_type);

for (var key in key_list) {
  // JS engine hoistings `show_type` variable.

  var { show_type } = key_list[key];

  console.log("show_type in loop1:", show_type);

}

[1, 2, 3].forEach((i) => {
  // show_type will modifed by loop1.
  console.log("show_type in loop2:", show_type);
})

// show_type in loop output: 1
// show_type in loop1: a
// show_type in loop1: b
// show_type in loop1: c
// show_type in loop2: c
// show_type in loop2: c
// show_type in loop2: c

More detail see: https://github.com/web-infra-dev/rspack/issues/8637#event-15600490710
Input code
const composeIndicator = (keynode, logList) => {
  if (!keynode || keynode.length < 1) return [];
  for (let i in keynode) {
    const { key_list, relation, name, show_type } = keynode[i] || {};
    if (!key_list || key_list.length < 1) continue;
    const pvArr = [];
    for (let j in key_list) {
      const { abbr, show_type, id, key_id } = key_list[j] || {};
      const { pv, uv } =
        logList.find((i) => {
          if (id && i.id) {
            return i.id === id;
          } else if (key_id && i.key_id) {
            return i.key_id === key_id;
          }
        }) || {};
      pvArr.push({
        pv,
        uv,
        abbr,
        show_type,
      });
    }
    const dataList = [];
    for (let l in pvArr) {
      const { pv, abbr, show_type, uv } = pvArr[l] || {};
      if (Array.isArray(pv)) {
        for (let k in pv) {
          if (!dataList[k]) {
            if (relation.indexOf(abbr) > -1) {
              let copyRelation = relation;
              const data = show_type === 1 ? pv[k] : uv[k];
              const regx = new RegExp(`${abbr}`, "g");
              copyRelation = copyRelation.replace(regx, data);
              dataList.push(copyRelation);
            }
          } else {
            if (dataList[k].indexOf(abbr) > -1) {
              let copyRelation = dataList[k];
              const data = show_type === 1 ? pv[k] : uv[k];
              const regx = new RegExp(`${abbr}`, "g");
              copyRelation = copyRelation.replace(regx, data);
              dataList[k] = copyRelation;
            }
          }
        }
      }
    }
    keynode[i].pv = dataList.map((i) => {
      const calculate = eval(i);
      const val =
        show_type === 1
          ? calculate === Infinity
            ? 0
            : Math.round(calculate)
          : calculate === Infinity
          ? 0
          : Number((calculate * 100).toFixed(2));
      return isNaN(val) ? 0 : val;
    });
    keynode[i].clicktag = name;
  }
  return keynode;
};

Config
{
  "jsc": {
    "parser": {
      "syntax": "ecmascript",
      "jsx": false
    },
    "target": "es5",
    "transform": {
      "react": {
        "runtime": "automatic"
      }
    },
    "loose": false,
    "minify": {
      "compress": false,
      "mangle": false
    }
  },
  "module": {
    "type": "es6"
  },
  "minify": false,
  "isModule": true
}

Playground link (or link to the minimal reproduction)
https://play.swc.rs/?version=1.10.1&code=H4sIAAAAAAAAA91VUW%2BbMBB%2Bz6%2B4VlNlTwwlewxNoz1sUqWtk%2FoaRa0DDnFDAIFJE6X8952NDQa6Tdrj8sLB3X333Xf2JczSUkKYHfKs5PdpJEImswIWQPb8nGYR9yDJ4u%2BilBQWd3CZAIgtkCvjhbc3MKaf8DSWO7iFGYWCy6pIYbUOMGGLgCThEgSI1IZTjQVYWhG4qM9PCZbxMDdhUmSpByk7YP1yl70%2ByXPOoUZeJn0l1qr2pQ40iuWkIQwpbfdYYS0p0ooHTuX8%2BKVQ%2FTZUHbIvhqyGsWw7vmyzKRxuHojI0%2BEisjx15uqlR7QDyI8eVEcVaxxglfa3Io0IEa3i9qe6RPibGxC%2BiGjPB1Zz5YLFYoGEAsdfA09KriEMSw3T2L%2BFMqEKrjF7kK1d036PWlQ%2Fr8od6YCx4dauHFsr2b51ik4sdoNaO0OLmGRKqffmlqi5aQLjoSnNR4NrhtCkrJLBtJRe%2BJ2dfVHqJ8mP1JWrrbtv6tLRxK4s29V%2BPRRa%2Be1593Hq%2FPRzSxRDCnfwaTYMxyPC1W3Nz48mCYnb%2FGAQ2kmFQd0lUrOcwRKpIh%2BYY%2Fv4fD%2B34PEJc1P%2BCo88%2FnrKyfOHi2JXP3twHV%2FTcVqPmfvqFzxPWMiJAvU0rVG6Fao5OW72ILQeH%2Byxro7s%2FyqtA%2FH%2FqKuI9bP%2FIO5kaNXOZex2sZ8fHbn8A8uH%2B6vpOWRJWGFRFAr4kSUY1N%2BL%2BM1ZiANdHWJLFwp99ykuTSHPvU6WMO29z%2BEHkzu%2FyCrcr20%2BnbgRf4Xtg87hoTpseEE6PPgIs%2BmU%2BjL7Jk48Ip9p26Pdq%2BUDeyDYKlVoiIGmWXIm1FE2TES4lyxWRwX%2FD5VfqW%2BgTGAwqYNfz1P1mssHAAA%3D&config=H4sIAAAAAAAAA1WQSw6DMAxE95wCed1tu%2BgdeggrNVUQ%2Bch2pCLE3ZtAQmEXv%2FGM7Sxd38MoBp79kp%2B5iMhCfNSZyOwVv5kAGYdi2EaFW1NHKdKAk9CG1l0BRf6Qbi65Q4OMXobA7pzPhEZPoKDk1ToqbkwaHKo1UOX1MmYKQagtUJmz3g7zeYQJLjKJXBtLK%2FrPRNcDupoOLrzTJtav0TnSftAD%2Fk1t2BEMVl7NqZyoW3%2FQBsGgZgEAAA%3D%3D
SWC Info output
No response
Expected behavior
Transformer correctly.
Like babel transform, the code would be like:

var composeIndicator = function composeIndicator(keynode, logList) {

  /// ...
  var dataList = [];
  for (var l in pvArr) {
    var _ref2 = pvArr[l] || {},
      pv = _ref2.pv,
      abbr = _ref2.abbr,
     ///!!!!!!
      _show_type = _ref2.show_type,
      uv = _ref2.uv;
  }
  keynode[i].pv = dataList.map((i) => {

    var val = show_type === 1 ? calculate === Number.POSITIVE_INFINITY ? 0 : Math.round(calculate) : calculate === Number.POSITIVE_INFINITY ? 0 : Number((calculate * 100).toFixed(2));

  });

  /// ...
};

Actual behavior
No response
Version
1.10.1
Additional context
No response

It seems eval function will case swc scope error.
See a example.
If we remove the eval, the transform is correctly

reduced version for anyone interested.

Possible duplicate of #6820

Possible duplicate of #6820

Yes, I found it's a history problem

Context
(for future users)
Babel check for existence of conflicting variable names while injecting a variable because they have full control over scope while transpilation. SWC is written in Rust and storing the list of identifiers somewhere else was very hard. So I didn't store it, and as a result, the variable renamer should distinguish the variable written by user and the variable injected by SWC code.

Context
(for future users)
Babel check for existence of conflicting variable names while injecting a variable because they have full control over scope while transpilation. SWC is written in Rust and storing the list of identifiers somewhere else was very hard. So I didn't store it, and as a result, the variable renamer should distinguish the variable written by user and the variable injected by SWC code.

The key point is why swc removes renamer when top-level eval exists, i was noticed babel do not do anything.
Babel don't handle eval will occur unexpected code.
// source
const a = 10;
{
  const a = 20;
  eval("console.log(a);") // 20
 }

// after babel transform with @babel/plugin-transform-block-scoping
var a = 10;
{
  var _a = 20;
  eval("console.log("a")"); // 10
}

It will unexpected when user eval rename variable.
It seems swc select another way, sometime it's a good select. But it would occur error in this case:
var data = {
  name: "xxx",
  names: ["x1", "x2", "x3"],
}
var { name, names } = data;
for(var name of names) {
  //
}

var callback = () => {
  console.log(name);  // "x3"
}

callback()

const a = 10;
{
  const a = 20;
  eval("console.log(a);"); // 20
}
eval("console.log(a);"); // 10

Downgrading const to var and ensuring the correctness of code containing eval is nearly an impossible task, as we do not analyze the code inside the eval.

const a = 10;
{
  const a = 20;
  eval("console.log(a);"); // 20
}
eval("console.log(a);"); // 10

Downgrading const to var and ensuring the correctness of code containing eval is nearly an impossible task, as we do not analyze the code inside the eval.

So we should add renamer even though eval exists.

const a = 10;
{
  const a = 20;
  eval("console.log(a);"); // 20
}
eval("console.log(a);"); // 10

Downgrading const to var and ensuring the correctness of code containing eval is nearly an impossible task, as we do not analyze the code inside the eval.

If that's the case maybe there's nothing we could do with it.

authors: Austaras GiveMe-A-Name kdy1 magic-akari


text:
Displaying memberships as first-class objects

This is related to #1032, which asks for filtering of organizations by partnership levels.  It adds pages to display all partnerships and to view the details of a single partnership.
NOTE: workshops/urls.py now has organization/membership/add and memberships/add - should the former be removed?

I don't know - @narayanaditya95 can you please review as well?
https://github.com/narayanaditya95

:+1: but I don't know how to implement that.

@pbanaszkiewicz do you have time to finish this off for V1.9 ?

@gvwilson I can work on this and #1040 on Saturday.

@gvwilson here you go https://github.com/gvwilson/amy/pull/8 please merge -- this PR should be automatically updated.

@pbanaszkiewicz thanks - please give it a final look in case I broke anything in the merge?

@gvwilson Please merge amy#9.
@chrismedrela @pbanaszkiewicz Please review the changes I proposed.

One question, then it's good to merge as far as I can tell.

@chrismedrela @pbanaszkiewicz Please review the changes I proposed.

Do you mean reviewing your review? :-)

@gvwilson or @pbanaszkiewicz, could you also change workshops/templates/workshops/all_organizations.html:26 so that it links to membership_details instead of membership_edit?

I don't understand the request to link to membership_details - do you mean organization_details (since this is the organization page, and there isn't any reference to membership in it)?

I don't understand the request to link to membership_details - do you mean organization_details (since this is the organization page, and there isn't any reference to membership in it)?

Here we need to replace membership_edit with membership_details.

Thanks - I was looking in the wrong file blush

@narayanaditya95, could you do the final review?

@chrismedrela in general, changes look good. I have some small comments, but they shouldn't stop you from merging.
Notes:

you should not make one big commit instead of many smaller commits. 3e32876901682577503330c21febfb6173e7c47b is a good example of this case; you even described small changes in the commit message – they should become individual commits
usually you should refrain from making indentation changes to existing code.

@pbanaszkiewicz, ok, in the future, I'll create smaller commits and stop correct indentation in templates.

authors: chrismedrela gvwilson narayanaditya95 pbanaszkiewicz

repo: swcarpentry/amy


text:
Dockerize

add express server
run example/basic as default app in container

merge reverted - pull request obsolete

repo: swieka/three-spritetext


text:
add support for stateful handler

motivation: allow lifecycle handlers to have the library manage the state for them so they do not need to do that manually
changes:

introduce LifecycleStartHandler and LifecycleShutdownHandler which can handle state on behalf of the lifecycle item
add registerStateful function to regsiter stateful handlers
add tests

one year later, but this addresses #11 if I understand the need correctly

@yim-lee @ktoso @weissi @rauhul

@swift-server-bot test this please

@swift-server-bot test this please

@swift-server-bot test this please
@swift-server-bot test this please

repo: swift-server/swift-service-lifecycle


text:
Revert "Windows: simplify the linker invocation for Windows"

Reverts swiftlang/swift-driver#1754
This PR is causing build failures, reverting for now.
https://ci.swift.org/job/swift-PR-Linux/18898/
/home/build-user/swift-driver/Sources/SwiftDriver/Jobs/WindowsToolchain+LinkerSupport.swift:58:25: error: expected initial value after '='
    let bUseLLD: Bool = switch parsedOptions.getLastArgument(.useLd)?.asSingle {
                        ^

cc @compnerd. I think the switch based assignment isn't playing nice on Windows. Could you give this another go refactoring that portion?

@swift-ci test

Interesting; why are we using different swift versions in different places?

authors: compnerd plemarquand

repo: swiftlang/swift-driver


text:
Unhandled coercion crash when operating on protocol with associated type

Description
The following code crashes the 6.0.0.3.300 compiler, but is successfully compiled by the 5.10.0.13 compiler.
Reproduction
struct ActionHolder {
    let action: (any ModelHolder) -> Void
}

protocol ModelHolder: AnyObject {
    associatedtype Model
    var model: Model { get set }
}

func run()  {
    _ = ActionHolder { _ = $0.model }
}

Stack dump
error: compile command failed due to signal 6 (use -v to see invocation)
Unhandled coercion:
(opened_archetype_type address=0x139061dd8 conforms_to="Swift.(file).Copyable" conforms_to="Swift.(file).Escapable" opened_existential_id="63C0B36A-2840-11EF-8D9E-9E81B9574525"
  (interface_type=dependent_member_type assoc_type="main.(file).ModelHolder.Model@main.swift:6:20"
    (base=generic_type_param_type depth=0 index=0))
  (opened_existential=existential_type
    (protocol_type decl="main.(file).ModelHolder@main.swift:5:10")))
(lvalue_type
  (existential_type
    (protocol_composition_type)))
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.	Program arguments: /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c -primary-file main.swift -target arm64-apple-macosx14.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.0.sdk -color-diagnostics -new-driver-path /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-driver -empty-abi-descriptor -resource-dir /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift -module-name main -disable-clang-spi -target-sdk-version 15.0 -target-sdk-name macosx15.0 -external-plugin-path /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins#/Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/lib/swift/host/plugins#/Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -plugin-path /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Applications/Xcode-16.0.0-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/lib/swift/host/plugins -o /var/folders/v9/v79hbhjd357fb89355jdx5600000gr/T/TemporaryDirectory.11JMMM/main-1.o
1.	Apple Swift version 6.0 (swiftlang-6.0.0.3.300 clang-1600.0.20.10)
2.	Compiling with effective version 5.10
3.	While evaluating request TypeCheckSourceFileRequest(source_file "main.swift")
4.	While evaluating request TypeCheckFunctionBodyRequest(main.(file).run()@main.swift:10:6)
5.	While type-checking statement at [main.swift:10:13 - line:12:1] RangeText="{
    _ = ActionHolder { _ = $0.model }
"
6.	While type-checking expression at [main.swift:11:5 - line:11:37] RangeText="_ = ActionHolder { _ = $0.model "
7.	While type-checking-target starting at main.swift:11:5
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  swift-frontend           0x0000000105c2acd0 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  swift-frontend           0x0000000105c28f44 llvm::sys::RunSignalHandlers() + 112
2  swift-frontend           0x0000000105c2b2d8 SignalHandler(int) + 352
3  libsystem_platform.dylib 0x0000000192a9f584 _sigtramp + 56
4  libsystem_pthread.dylib  0x0000000192a6ec20 pthread_kill + 288
5  libsystem_c.dylib        0x000000019297ba30 abort + 180
6  swift-frontend           0x000000010168554c (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 9980
7  swift-frontend           0x0000000101684698 (anonymous namespace)::ExprRewriter::coerceToType(swift::Expr*, swift::Type, swift::constraints::ConstraintLocatorBuilder) + 6216
8  swift-frontend           0x00000001016a4738 (anonymous namespace)::ExprRewriter::closeExistential(swift::Expr*&, swift::constraints::ConstraintLocatorBuilder, bool) + 596
9  swift-frontend           0x000000010169d3d4 (anonymous namespace)::ExprRewriter::buildMemberRef(swift::Expr*, swift::SourceLoc, swift::constraints::SelectedOverload, swift::DeclNameLoc, swift::constraints::ConstraintLocatorBuilder, swift::constraints::ConstraintLocatorBuilder, bool, swift::AccessSemantics) + 9324
10 swift-frontend           0x000000010168f294 (anonymous namespace)::ExprRewriter::walkToExprPost(swift::Expr*) + 21080
11 swift-frontend           0x0000000101686aa4 (anonymous namespace)::ExprWalker::walkToExprPost(swift::Expr*) + 24
12 swift-frontend           0x0000000101d166a8 (anonymous namespace)::Traversal::visitAssignExpr(swift::AssignExpr*) + 228
13 swift-frontend           0x0000000101d14c9c (anonymous namespace)::Traversal::visit(swift::Expr*) + 1100
14 swift-frontend           0x0000000101680de8 (anonymous namespace)::ExprWalker::rewriteTarget(swift::constraints::SyntacticElementTarget) + 344
15 swift-frontend           0x0000000101686d4c std::__1::__function::__func<(anonymous namespace)::ExprWalker::rewriteFunction(swift::AnyFunctionRef)::'lambda'(swift::constraints::SyntacticElementTarget), std::__1::allocator<(anonymous namespace)::ExprWalker::rewriteFunction(swift::AnyFunctionRef)::'lambda'(swift::constraints::SyntacticElementTarget)>, std::__1::optional<swift::constraints::SyntacticElementTarget> (swift::constraints::SyntacticElementTarget)>::operator()(swift::constraints::SyntacticElementTarget&&) + 80
16 swift-frontend           0x00000001016d13dc (anonymous namespace)::SyntacticElementSolutionApplication::visitReturnStmt(swift::ReturnStmt*) + 832
17 swift-frontend           0x00000001016cfba8 (anonymous namespace)::SyntacticElementSolutionApplication::visit(swift::Stmt*, bool) + 540
18 swift-frontend           0x00000001016d0da0 (anonymous namespace)::SyntacticElementSolutionApplication::visit(swift::Stmt*, bool) + 5140
19 swift-frontend           0x00000001016cdc00 (anonymous namespace)::SyntacticElementSolutionApplication::apply() + 184
20 swift-frontend           0x00000001016cda58 swift::constraints::ConstraintSystem::applySolutionToBody(swift::constraints::Solution&, swift::AnyFunctionRef, swift::DeclContext*&, std::__1::function<std::__1::optional<swift::constraints::SyntacticElementTarget> (swift::constraints::SyntacticElementTarget)>) + 372
21 swift-frontend           0x00000001016cd518 swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::AnyFunctionRef, swift::DeclContext*&, std::__1::function<std::__1::optional<swift::constraints::SyntacticElementTarget> (swift::constraints::SyntacticElementTarget)>) + 1396
22 swift-frontend           0x0000000101686b9c (anonymous namespace)::ExprWalker::rewriteFunction(swift::AnyFunctionRef) + 76
23 swift-frontend           0x0000000101685d18 (anonymous namespace)::ExprWalker::walkToExprPre(swift::Expr*) + 76
24 swift-frontend           0x0000000101d1a79c (anonymous namespace)::Traversal::visit(swift::ArgumentList*) + 248
25 swift-frontend           0x0000000101d17384 (anonymous namespace)::Traversal::visitApplyExpr(swift::ApplyExpr*) + 196
26 swift-frontend           0x0000000101d148a8 (anonymous namespace)::Traversal::visit(swift::Expr*) + 88
27 swift-frontend           0x0000000101d1668c (anonymous namespace)::Traversal::visitAssignExpr(swift::AssignExpr*) + 200
28 swift-frontend           0x0000000101d14c9c (anonymous namespace)::Traversal::visit(swift::Expr*) + 1100
29 swift-frontend           0x0000000101680de8 (anonymous namespace)::ExprWalker::rewriteTarget(swift::constraints::SyntacticElementTarget) + 344
30 swift-frontend           0x00000001016807ec swift::constraints::ConstraintSystem::applySolution(swift::constraints::Solution&, swift::constraints::SyntacticElementTarget) + 7108
31 swift-frontend           0x000000010193bb28 swift::TypeChecker::typeCheckTarget(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 680
32 swift-frontend           0x000000010193b75c swift::TypeChecker::typeCheckExpression(swift::constraints::SyntacticElementTarget&, swift::optionset::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 416
33 swift-frontend           0x0000000101a23388 (anonymous namespace)::StmtChecker::typeCheckASTNode(swift::ASTNode&) + 332
34 swift-frontend           0x0000000101a28880 swift::ASTVisitor<(anonymous namespace)::StmtChecker, void, swift::Stmt*, void, void, void, void>::visit(swift::Stmt*) + 288
35 swift-frontend           0x0000000101a26294 bool (anonymous namespace)::StmtChecker::typeCheckStmt<swift::BraceStmt>(swift::BraceStmt*&) + 316
36 swift-frontend           0x0000000101a24e30 swift::TypeCheckFunctionBodyRequest::evaluate(swift::Evaluator&, swift::AbstractFunctionDecl*) const + 1512
37 swift-frontend           0x0000000101e2f4dc swift::TypeCheckFunctionBodyRequest::OutputType swift::Evaluator::getResultUncached<swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'()>(swift::TypeCheckFunctionBodyRequest const&, swift::TypeCheckFunctionBodyRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckFunctionBodyRequest>(swift::Evaluator&, swift::TypeCheckFunctionBodyRequest, swift::TypeCheckFunctionBodyRequest::OutputType)::'lambda'()) + 632
38 swift-frontend           0x0000000101da01fc swift::AbstractFunctionDecl::getTypecheckedBody() const + 160
39 swift-frontend           0x0000000101a73ab4 swift::TypeCheckSourceFileRequest::evaluate(swift::Evaluator&, swift::SourceFile*) const + 868
40 swift-frontend           0x0000000101a7b098 swift::TypeCheckSourceFileRequest::OutputType swift::Evaluator::getResultUncached<swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'()>(swift::TypeCheckSourceFileRequest const&, swift::TypeCheckSourceFileRequest::OutputType swift::evaluateOrDefault<swift::TypeCheckSourceFileRequest>(swift::Evaluator&, swift::TypeCheckSourceFileRequest, swift::TypeCheckSourceFileRequest::OutputType)::'lambda'()) + 616
41 swift-frontend           0x0000000101a73734 swift::performTypeChecking(swift::SourceFile&) + 328
42 swift-frontend           0x00000001009cbc60 swift::CompilerInstance::performSema() + 260
43 swift-frontend           0x00000001005f93d0 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 1520
44 swift-frontend           0x00000001005f7438 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 4752
45 swift-frontend           0x000000010057d2d8 swift::mainEntry(int, char const**) + 2812
46 dyld                     0x00000001926e60e0 start + 2360

Expected behavior
This code should compile.
Environment
swift-driver version: 1.90.11.1 Apple Swift version 5.10 (swiftlang-5.10.0.13 clang-1500.3.9.4)
Target: arm64-apple-macosx14.0
Additional information
No response

Minimized a bit more:
protocol P {
  associatedtype X
  var x: X { get set }
}

func foo(_ x: any P)  {
  var x = x
  _ = x.x
}

cc @xedin, this looks due to https://github.com/swiftlang/swift/pull/71104. Looks like:

This was broken from 5.7 through 5.9.1 (#62219)
It was fixed in 5.10 (#69951)
It's now broken again in 6.0 due to the revert of the above fix

Duplicate of #62219

authors: AnthonyLatsis hamishknight rnapier

repo: swiftlang/swift


text:
Call site for == variadic tuple comparison crashes compiler

Description
Take the pack iteration example given in our blog post—I've used slightly different variable names, but it's the same code:
func == <each T: Equatable>(_ lhs: (repeat each T), _ rhs: (repeat each T)) -> Bool {
    for (l, r) in repeat (each lhs, each rhs) {
        guard l == r else { return false }
    }
    return true
}

On its own, the code above now compiles in Swift 6.0. But now, let's try to actually use it—for example, in an implementation of !=:
func != <each T: Equatable>(_ lhs: (repeat each T), _ rhs: (repeat each T)) -> Bool {
    !(lhs == rhs)
}

Sadly, we cannot: the compiler crashes.
Reproduction
func == <each T: Equatable>(_ lhs: (repeat each T), _ rhs: (repeat each T)) -> Bool {
    for (l, r) in repeat (each lhs, each rhs) {
        guard l == r else { return false }
    }
    return true
}

func != <each T: Equatable>(_ lhs: (repeat each T), _ rhs: (repeat each T)) -> Bool {
    !(lhs == rhs)
}

Stack dump
swift-frontend: /home/build-user/swift/lib/SILGen/RValue.cpp:715: void swift::Lowering::RValue::extractElements(SmallVectorImpl<swift::Lowering::RValue> &) &&: Assertion `!tupleTy.containsPackExpansionType() && "can't extract elements from tuples containing pack expansions " "right now"' failed.
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.	Program arguments: /opt/compiler-explorer/swift-nightly/usr/bin/swift-frontend -frontend -S -primary-file <source> -target x86_64-unknown-linux-gnu -disable-objc-interop -g -debug-info-format=dwarf -dwarf-version=4 -empty-abi-descriptor -Xcc -working-directory -Xcc /app -resource-dir /opt/compiler-explorer/swift-nightly/usr/lib/swift -enable-anonymous-context-mangled-names -file-compilation-dir /app -Xllvm --x86-asm-syntax=intel -module-name output -in-process-plugin-server-path /opt/compiler-explorer/swift-nightly/usr/lib/swift/host/libSwiftInProcPluginServer.so -plugin-path /opt/compiler-explorer/swift-nightly/usr/lib/swift/host/plugins -plugin-path /opt/compiler-explorer/swift-nightly/usr/local/lib/swift/host/plugins -o /app/output.s
1.	Swift version 6.0-dev (LLVM 0ad8ad0245d47b4, Swift 01bd2b4f8c84d45)
2.	Compiling with effective version 5.10
3.	While evaluating request ASTLoweringRequest(Lowering AST to SIL for file "<source>")
4.	While silgen emitFunction SIL function "@$s6output2neoiySbxxQp_t_xxQp_ttRvzSQRzlF".
 for '!=(_:_:)' (at <source>:8:1)
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  swift-frontend 0x00005b21f2f216b7
1  swift-frontend 0x00005b21f2f1f3be
2  swift-frontend 0x00005b21f2f21d2f
3  libc.so.6      0x00007ba22b642520
4  libc.so.6      0x00007ba22b6969fc pthread_kill + 300
5  libc.so.6      0x00007ba22b642476 raise + 22
6  libc.so.6      0x00007ba22b6287f3 abort + 211
7  libc.so.6      0x00007ba22b62871b
8  libc.so.6      0x00007ba22b639e96
9  swift-frontend 0x00005b21ec98fc24
10 swift-frontend 0x00005b21ec9cb54e
11 swift-frontend 0x00005b21ec9b096f
12 swift-frontend 0x00005b21ec99c3f9
13 swift-frontend 0x00005b21ec9afb05
14 swift-frontend 0x00005b21ec9be94b
15 swift-frontend 0x00005b21ec9bdec0
16 swift-frontend 0x00005b21ec9a18a1
17 swift-frontend 0x00005b21ec99f47d
18 swift-frontend 0x00005b21eca2d034
19 swift-frontend 0x00005b21eca2124c
20 swift-frontend 0x00005b21ec9b19a9
21 swift-frontend 0x00005b21ec99c3f9
22 swift-frontend 0x00005b21ec9afb05
23 swift-frontend 0x00005b21ec9be94b
24 swift-frontend 0x00005b21ec9bdec0
25 swift-frontend 0x00005b21ec9a18a1
26 swift-frontend 0x00005b21ec99f47d
27 swift-frontend 0x00005b21eca2d034
28 swift-frontend 0x00005b21eca1df46
29 swift-frontend 0x00005b21ecad6f19
30 swift-frontend 0x00005b21ecad4fe8
31 swift-frontend 0x00005b21ecad38a4
32 swift-frontend 0x00005b21ecad230d
33 swift-frontend 0x00005b21eca5013f
34 swift-frontend 0x00005b21ec979b22
35 swift-frontend 0x00005b21ec97aee2
36 swift-frontend 0x00005b21ec977f6c
37 swift-frontend 0x00005b21ec97e190
38 swift-frontend 0x00005b21ecad1c34
39 swift-frontend 0x00005b21ec983b15
40 swift-frontend 0x00005b21ec97f02c
41 swift-frontend 0x00005b21ec1c5e1f
42 swift-frontend 0x00005b21ec1d7009
43 swift-frontend 0x00005b21ec1c91e1
44 swift-frontend 0x00005b21ec1c7f01
45 swift-frontend 0x00005b21ebfec754
46 libc.so.6      0x00007ba22b629d90
47 libc.so.6      0x00007ba22b629e40 __libc_start_main + 128
48 swift-frontend 0x00005b21ebfeb7ee

*** Signal 11: Backtracing from 0x7ba22b628898... done ***

*** Program crashed: Bad pointer dereference at 0x0000000000000000 ***

Thread 0 "swift-frontend" crashed:

0  0x00007ba22b628898 <unknown> in libc.so.6

Registers:

rax 0x0000000000000000  0
rdx 0x00007ba22bc8d880  80 d8 c8 2b a2 7b 00 00 a0 e2 c8 2b a2 7b 00 00  ·ØÈ+¢{·· âÈ+¢{··
rcx 0x00007ba22b6969fc  41 89 c5 41 f7 dd 3d 00 f0 ff ff b8 00 00 00 00  A·ÅA÷Ý=·ðÿÿ¸····
rbx 0x0000000000000006  6
rsi 0x0000000000000001  1
rdi 0x0000000000000001  1
rbp 0x00007ba22b81be90  01 00 00 00 01 00 00 00 80 d8 c8 2b a2 7b 00 00  ·········ØÈ+¢{··
rsp 0x00007ffc12e49160  20 00 00 00 00 00 00 00 a0 b6 81 2b a2 7b 00 00   ······· ¶·+¢{··
 r8 0x0000000000000000  0
 r9 0x0000000000000000  0
r10 0x0000000000000008  8
r11 0x0000000000000246  582
r12 0x00005b21f4d53a94  2f 68 6f 6d 65 2f 62 75 69 6c 64 2d 75 73 65 72  /home/build-user
r13 0x00000000000002cb  715
r14 0x00005b21f433b424  21 74 75 70 6c 65 54 79 2e 63 6f 6e 74 61 69 6e  !tupleTy.contain
r15 0x00007ffc12e493a0  40 e2 11 f8 21 5b 00 00 50 e2 11 f8 21 5b 00 00  @â·ø![··Pâ·ø![··
rip 0x00007ba22b628898  f4 83 3d 00 36 1f 00 05 75 14 c7 05 f4 35 1f 00  ô·=·6···u·Ç·ô5··

rflags 0x0000000000010246  ZF PF

cs 0x0033  fs 0x0000  gs 0x0000

Images (27 omitted):

0x00007ba22b600000–0x00007ba22b7bc341 490fef8403240c91833978d494d39e537409b92e libc.so.6 /lib/x86_64-linux-gnu/libc.so.6

Backtrace took 0.03s

Program terminated with signal: SIGSEGV
Compiler returned: 139

Expected behavior
The code should compile, or else the compiler should reject the code with a proper diagnostic.
The compiler should not crash.
Environment
Swift version 6.0-dev (LLVM 0ad8ad0245d47b4, Swift 01bd2b4f8c84d45)
Additional information
No response

Duplicate of #66392

authors: AnthonyLatsis xwu


text:
[unittest] Disambiguate references to errno

In Xcode 16 SDKs there seem to be two errno visible for some files, one in the Darwin module, and one in the _errno module (which seems new for this Xcode version).
Disambiguate the references by prepending Darwin, which should be the one that was being used before Xcode 16 SDKs.

@swift-ci please test

@swift-ci please test

@swift-ci please test

@swift-ci please test linux platform


text:
getmypid() has been disabled for security reasons

https://github.com/swiftmailer/swiftmailer/blob/master/lib/classes/Swift/Mime/SimpleMimeEntity.php#L85
https://github.com/swiftmailer/swiftmailer/blob/master/lib/classes/Swift/Mime/SimpleMimeEntity.php#L420
https://github.com/swiftmailer/swiftmailer/blob/master/lib/classes/Swift/Mime/SimpleMimeEntity.php#L689
From php getmypid() function page

_Warning_
Process IDs are not unique, thus they are a weak entropy source. We recommend against relying on pids in security-dependent contexts.

hello guys first i'am not prof on this things :')
i realy tried to read this shit but i din'tget the joke
very simple im using password reset to email a link to my users to change there password
so in local everything goes but when i set my app on a server when i send mail i got this error
getmypid() has been disabled for security reasons
tell me what to do without philosophy

authors: adis-io amineameur

repo: swiftmailer/swiftmailer


text:
Use ghcr.io/swiftwasm/swift as base image

Update Dockerfile to use ghcr.io/swiftwasm/swift as base image and update default toolchain version as 5.3 release

Looks great! Let's switch to the 5.3.0 toolchain here and in the swiftwasm-docker repo as soon as it's tagged and assets are available.

Please also update DefaultToolchain.swift

It's already updated

authors: MaxDesiatov kateinoigakukun

repo: swiftwasm/carton


text:
Swipe Russian to English Installation-Documentation

🌟 You had a Visit from the Documentation Fairy🌟

           🚧 What did I do after I visited your Repo 🚧
--------------------------------------------------------------------------
[x] Translated the Swipe Installation guide from Russian to english
 -------------------------------------------------------------------------
[x] staged the following guides in case you would like more support:
Source: https://swipeio.dev/docs/config?
[ ] Multiple controllers in an application
[ ] Metrics and logging
[ ] Generating the settings loader

My name is Aloysious I'm a Software Developer in training and would love to get some practice
documenting and supporting other projects...would you find my support to be valuable?

Changed Shell from Javascript to bash as per reccomendation.
Added Strong tags to the programs name throughout the document.
[Touchscreen sensitivity, wthe wind closed the pull request, promptly re-opened.]

Hey! yes, of course, help in translation will be useful.

Is there a naming convention for the files or perhaps another folder specifically for translated pages that might be helpful to keep the pages I create in order? I can also write these comments in russian if that's easier for anyone over yonder...wherever yonder is.

repo: swipe-io/swipe


text:
Create trello.json

This pull request addresses Issue https://github.com/swirlai/swirl-search/issues/690 and introduces Trello as a new search provider in SwirlAI. With this enhancement, users will now be able to seamlessly integrate Trello boards into their search results, providing a more comprehensive and streamlined search experience.
Changes Made:
Implemented Trello API integration to fetch search results.
Added functionality to parse and display Trello cards within search results.
Enhanced user interface to accommodate Trello-specific information, such as board names and card details.
To run the trello provider add
"searchproviders": { "trello": { "type": "trello.TrelloSearchProvider", "api_key": "YOUR_API_KEY", "api_token": "YOUR_API_TOKEN", } }
to your Swirl Configuration file and restart Swirl and start searching for the Trello content.

@sid-swirl  done

Hi @HarshMN2345 this is much closer. However, the result_mappings won't work bc they don't specify the required Swirl field names.
id=id,fullName=fullName,username=username,email=email,url=url,avatarUrl=avatarUrl,avatarHash=avatarHash,memberType=memberType,status=status,initials=initials,products=products,idBoards=idBoards,idOrganizations=idOrganizations,limits=limits,prefs=prefs,trophies=trophies,uploadedAvatarHash=uploadedAvatarHash,uploadedAvatarUrl=uploadedAvatarUrl,premiumFeatures=premiumFeatures,isAaMastered=isAaMastered,ixUpdate=ixUpdate,idBoardsPinned=idBoardsPinned

The Swirl fields are url, title, body, author and date_published. So you should map those if the name isn't the same. You can combine fields using the | operator on the right hand side. So for example title=fullName or whatever field you want.
If you want to include a field (like trophies) that isn't in Swirl, just declare it without =
So it should look more like this:
        "result_mappings": "title=fullName,body=products,author=email,status,prefs,trophies,NO_PAYLOAD"

@sid-swirl i have done some changes as mentioned can you review it?

@sid-swirl  pls check whether there are any issues or is it good to go?

Hi @HarshMN2345 thank you for these updates. There are a few issues here

The authentication should be in the credentials field

These result mappings likely won't work:

author=email | status | prefs | trophies
url=NO_PAYLOAD
Another Trello provider has been accepted and merged, please continue dev from there thank you!

thanks @sid-swirl for letting me know

repo: swirlai/swirl-search


text:
create Chip-Group components

Blocked by #2198
Create a Wrapper for the new Chip component #2198 according to the specifiations in figma and in this description which you can also find in the orignal issue #1864. There should be a HTML/CSS version as well as a web-component just like the chip component. #2198
The Chips have a radio button and a checkbox button version.
General
- [ ] radio group (aka "Filter")
- [ ] checkbox group

Filter type styles to change
### General
- [ ] Gap between items should be `size-mini` (8px)
- [ ] Check if line-height from design is appropriate 150%. Or use whatever is best for the dev.

[ ] Update description to include info about creating HTML/CSS version and web component version

Closing as already done with utility classes

repo: swisspost/design-system


text:
correct the swapping of min/max args in drag_int and drag_float

Fix for https://github.com/swistakm/pyimgui/issues/53
Tested on mac os high sierra with python3.6 and SDL2.

Great, looks good. I will also revert the order of max/min params in Python functions in case someone uses the calls without keywords.

Released as 0.1.0

authors: jeremyherbert swistakm

repo: swistakm/pyimgui


text:
Make super sure mutation works as intended

Depends on

[ ] #98

For the 💯 issue 🎆 🍾, the following cheecky cheecky test should pass in network.cpp:
#define FIX_ISSUE_100
#ifdef FIX_ISSUE_100
    {
        std::mt19937 rng;

        std::vector<int> net_arch{5,5,5,5,5};
        network n{net_param{net_arch, linear}};

        std::vector<double> mut_rates{1/2, 1/3, 1/4, 0.56789};
        int repeats = 1000;

        for(const auto& mut_rate : mut_rates)
        {
        assert(all_weigths_are_active(n));
        auto active_connections = register_n_activation_mutations(n, repeats);
        assert(on_average_an_nth_of_the_weigths_are_active(n, active_connections));
        }
    }
#endif

If test does not work let me know and send a pull request with suggested changes, possibly in a separate branch from the one where you try to solve it.

repo: swom/ArchitectureEvolution


text:
如何设置auto.offset.reset值

似乎默认是latest了，不知道在哪里修改

同问

+1

repo: swoole/phpkafka


text:
🛑 BestQA_GO is down

In 8184fab, BestQA_GO (https://www.bestqa.net/go/bestqa_dev/up) was down:

HTTP code: 0
Response time: 0 ms

Resolved: BestQA_GO is back up in 8f48bc5.

repo: swuecho/upptime


text:
fix: export for commonjs

Description
Currently, commonjs projects will be hit with the following error:
/.../node_modules/unws/src/node.js:3
export { WebSocket }
^^^^^^

SyntaxError: Unexpected token 'export'

By replacing the export statement with module.export for the commonjs node.js fiel, I am quite positive that this PR should solve that issue.
I tested this on Node v16.16.0 & v18.14.2 with a commonjs and a module project and lastly with a nodejs (index.js) script and a typescript (index.ts) script via ts-node. All combinations of what I mentioned here.
Linked Issues
--
Additional context
I need this change somewhat urgently for a library that I'm maintaining as two people are stuck on this issue as of now. I made the change from isomorphic-ws as it's barely maintained and had caused issues for importing into certain environments. Ironically, this library is now also causing issues though I can see how this library is better than isomorphic-ws 😛

Thanks for your fast response @sxzz! Really appreciate it!

repo: sxzz/unws


text:
[Feature Request] Add / Remove Tables from Popper Playlists, including Favorites and Global Favorites

Today VPS doesnt allow add/remove, or even show Fav playlists... would be great to have this functionality!

Part of 2.17.0


text:
MateriaalinMäärä-luokan lajikoodistoa ei voi kiinnittää

MateriaalinMäärä-luokan laji-attribuutille ei ole mielekästä kiinnittää yhtä ainoaa koodistoa, koska materiaaliluokitteluja on vaikka kuinka monta.

Muutetaan laji-attribuutin tyypiksi Koodiarvo, jolloin voidaan viitata mihin tahansa ulkoiseen materiaalilajiluokittelun mukaiseen koodiin.

Korjattu pull requestissa #46

repo: sykefi/rakennuskohteet


text:
🛑 Concrete Tree is down

In d3bff71, Concrete Tree (https://concretetree.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Concrete Tree is back up in 2598294 after 24 minutes.

repo: symapex/upsite


text:
🛑 Bricktically is down

In 8c8fa5d, Bricktically (https://bricktically.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bricktically is back up in 416c998 after 31 minutes.


text:
🛑 Environ Work is down

In 017aee3, Environ Work (https://environwork.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Environ Work is back up in 95004f6 after 20 minutes.


text:
🛑 Hard Stack Pro is down

In 25da4b1, Hard Stack Pro (https://hardstackpro.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Hard Stack Pro is back up in 4a2420b after 45 minutes.


text:
🛑 Bugmode Pest Control is down

In 8ee327b, Bugmode Pest Control (https://bugmodepestcontrol.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Bugmode Pest Control is back up in da86929 after 28 minutes.


text:
🛑 Well Repairman is down

In 6929377, Well Repairman (https://wellrepairman.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Well Repairman is back up in 2c92ae3 after 3 hours, 1 minute.


text:
🛑 Scrubble Carpet Cleaners is down

In bfc4493, Scrubble Carpet Cleaners (https://srubblecarpetcleaners.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Scrubble Carpet Cleaners is back up in 71f080f after 25 minutes.


text:
🛑 Wellspring Tampa is down

In d3dbf05, Wellspring Tampa (https://wellspringtampa.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Wellspring Tampa is back up in d067205 after 19 minutes.


text:
🛑 Pest Scout Pros is down

In 57dc2df, Pest Scout Pros (https://pestscoutpros.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Pest Scout Pros is back up in e8ec9ec after 54 minutes.


text:
🛑 Prism Carpet Cleaning is down

In daae725, Prism Carpet Cleaning (https://prismcarpetcleaningtx.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Prism Carpet Cleaning is back up in e6cf9d0 after 30 minutes.


text:
🛑 Well Repairman is down

In a48256a, Well Repairman (https://wellrepairman.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Well Repairman is back up in 175a512 after 10 minutes.


text:
🛑 Scrub Clean Seattle is down

In 0704d5e, Scrub Clean Seattle (https://scrubcleanseattle.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Scrub Clean Seattle is back up in 8a8181a after 10 minutes.


text:
🛑 My Drywall Guy is down

In a8f8664, My Drywall Guy (https://my-drywall-guy.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: My Drywall Guy is back up in fb66acf after 53 minutes.


text:
🛑 Mr Drywall TX is down

In 10343f1, Mr Drywall TX (https://mrdrywalltx.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Mr Drywall TX is back up in 20a2f92 after 10 minutes.


text:
🛑 Crycket Pest Control is down

In e1ec212, Crycket Pest Control (https://crycketpestcontrol.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Crycket Pest Control is back up in 0f55b1c.


text:
🛑 Scrubit Clean is down

In 8928d97, Scrubit Clean (https://scrubit-clean.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Scrubit Clean is back up in 5775af4 after 1 hour, 10 minutes.


text:
🛑 Carpetomatic is down

In d5955fe, Carpetomatic (https://carpetomatic.com/) was down:

HTTP code: 502
Response time: 2965 ms

Resolved: Carpetomatic is back up in a344484.


text:
🛑 Rigid Ground Work is down

In 367fb34, Rigid Ground Work (https://rigidgroundwork.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Rigid Ground Work is back up in 79a1834 after 38 minutes.


text:
🛑 Absolute Landscape Solutions is down

In cfca9af, Absolute Landscape Solutions (https://absolutelandscapesolutions.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Absolute Landscape Solutions is back up in fa4ead0 after 33 minutes.


text:
Headtrack as optional controller

Include a headtrackr control option which is accessible through an icon in one of the image's corners.

Solved with 'added control buttons' commit. All controls are displayed if functionality is available.

repo: symdesign/wakkl


text:
[TwigComponent] Passing HTML to Components Via Blocks Is Not Possible With Variable Component Name

Hello Teams & Thanks for the works on Twig Components (Amazing !!!)
I m try to do a library for my components and i need to call them dynamicaly:
{% set component = 'My:Component' %°} {# I don t really do that in my template ... #}
{{ component(component) }}

and it works great !!!
but for particular component i need to set some inner HTML:
{% set component = 'My:Component' %°}
{% component(component)  with my_args%}
    <div>...</div>
{% endcomponent %}

and then 💥 :
Error rendering "component" component: Unknown component "component". And no matching anonymous component template was found.

It seems Symfony\UX\TwigComponent\Twig\ComponentTokenParser::componentName()  does not parse the variable but simply render the name of the NameExpression (there's no compiling of the NameExpression ...)
There is another way to do that or it 's simply a bug or it's intentional ?
Thank you for the response and for all

Embedded component names need to be resolved before runtime, so it wont work in your second example indeed.

Thanks
I will try another way ... 😢

authors: kickingRaccoon smnandre

repo: symfony/ux


text:
[TwigComponent][LiveComponent] clarify excluding this for public props

Q
A

Bug fix?
no

New feature?
no

Tickets
Fix #242

License
MIT

Thanks Kevin!

authors: kbond weaverryan


text:
[ECS] Use fully qualified code instead of code as checker

Makes it easier to find responsible sniffs.
Before:
 src/Support/XML.php:22
 ------------------------------------------------------------------------------------------------------
 Function libxml_disable_entity_loader() has been deprecated

 Reported by: "Deprecated"
 ------------------------------------------------------------------------------------------------------

After:
 src/Support/XML.php:22
 ------------------------------------------------------------------------------------------------------
 Function libxml_disable_entity_loader() has been deprecated

 Reported by: "PHP_CodeSniffer\Standards\Generic\Sniffs\PHP\DeprecatedFunctionsSniff.Deprecated"
 ------------------------------------------------------------------------------------------------------

Thank you :+1:

authors: TomasVotruba zingimmick

repo: symplify/symplify


text:
nex-agent binary - incorrect name and location?

Observed behavior
When I follow the instructions to install and run Nex Getting Started, the Nex agent fails with the following error:
...
[INFO] 2024-05-26 00:12:08 - Workload manager starting
[INFO] 2024-05-26 00:12:08 - Spawning (no sandbox) process manager starting
[WARN] 2024-05-26 00:12:08 - Agent command failed to start error=exec: "nex-agent": executable file not found in $PATH
[ERROR] 2024-05-26 00:12:08 - Failed to spawn nex-agent for pool error=exec: "nex-agent": executable file not found in $PATH
[INFO] 2024-05-26 00:12:08 - Publishing node started event
...

N.B.
When I copy (and rename the agent binary from /usr/local/bin/agent on the rootfs.ex4 file system to /usr/local/bin/nex-agent on the host, everything works.
Expected behavior
The Nex node should start and add a new agent process to the pool.
Nex and NATS version
Nex: v0.2.3 [25cc683f0f49ad2d1482ce2aec7e6f47e01d3898] | Built-on: 2024-05-17T18:32:10Z
NATS: nats-server: v2.10.16
Host environment
Ubuntu 22.04 ARM (running as a VM on MacOS using UTM)
Steps to reproduce
Steps to recreate
Install Nex and NATS:
curl -sSf https://nex.synadia.com/install.sh | sudo sh
curl -sf https://binaries.nats.dev/nats-io/nats-server/v2@v2.10.16 | sudo sh

Add a simple config file (in /home/ubuntu/nex):
{
    "default_resource_dir": "/tmp/wd",
    "kernel_filepath": "./vmlinux-5.10",
    "rootfs_filepath": "./rootfs.ext4",
    "machine_pool_size": 1,
    "cni": {
        "network_name": "fcnet",
        "interface_name": "veth0"
    },
    "machine_template": {
        "vcpu_count": 1,
        "memsize_mib": 256
    },
    "tags": {
        "simple": "true"
    },
    "no_sandbox": true
}

Run Preflight to install missing dependencies (rootfs.ext4, vmlinux-5.10):
sudo nex node preflight --config=/home/ubuntu/nex/config.json

Start Nex node (it will fail):
sudo nex node up --config=/home/ubuntu/nex/config.json

Steps to fix
Copy agent binary to host and rename:
# HACK: copy agent binary from rootfs  to /usr/local/bin
sudo mount /home/ubuntu/nex/rootfs.ext4 /mnt/rootfs
sudo cp /mnt/rootfs/usr/local/bin/agent /usr/local/bin/nex-agent

Hi @andrewweston...from your logs, it appears you are running in no-sandbox mode.  In this mode, the agent is not using firecracker, it is spawning the workloads directly on your machine.  In order for this to work, you must add the agent to your path so that the nex node can find it when starting a workload.  You shouldn't have to pull it from the rootfs, we build them for you and add them to the releases in Github.
The "Getting Started" assumes you are using the provided configuration, which defaults to sandboxed mode.
I will look at enhancing the docs to ensure it notes the agent must be in your path for no-sandbox mode.  Thanks!

authors: andrewweston jordan-rash

repo: synadia-io/nex


text:
License popup

Hello.
I Use this project but the pop-up license page is repeated in the app every time. How can i fix it ?

Duplicate issue task of https://github.com/syncfusion/essential-ui-kit-for-xamarin.forms/issues/64, hence closing

Duplicate issue task of https://github.com/syncfusion/essential-ui-kit-for-xamarin.forms/issues/64, hence closing


text:
feat: ✨ add syn-divider

Pull Request
📖 Description
This PR adds support for the divider component. It includes:

The vendored component
Storybook stories
The generated angular, react and vue wrappers

🎫 Issues
Closes #270
👩💻 Reviewer Notes
📑 Test Plan
✅ DoD

[ ] I have tested my changes manually.
[ ] I have added automatic tests for my changes (unit- and visual regression tests).
[ ] I have updated the project documentation to reflect my changes (e.g. CHANGELOG, Storybook, ...).
[ ] I have made sure to follow the projects coding and contribution guides.
[ ] I have made sure that the bundle size has changed appropriately.
[ ] I have validated that there are no accessibility errors.
[ ] I have used design tokens instead of fix css values

There's quite a lot of stuff which doesn't belong here?

There's quite a lot of stuff which doesn't belong here?

Was resolved with a separate PR: https://github.com/synergy-design-system/synergy-design-system/pull/273

authors: kirchsuSICKAG mariohamann


text:
Sending to the same LN invoice UX improvement

Raised off the back of #1488
When attempting to spend the same LN invoice an ugly error is displayed later in the flow than is ideal.
https://github.com/synonymdev/bitkit/assets/74595920/30ea7ba2-13d4-4bf7-8014-249135a1d5c2
It would be an improvement to not allow the user to get this far. Instead, detect the invoice is already spent at the time of scan or input and present a toast to communicate the fact (similar to Pheonix).

My understanding is that the 'invoice_payment_failed_duplicate_payment' error is only seen if the sender detects that it has paid this invoice before.
If another wallet has paid the invoice and then Bitkit attempts then a 'Error creating transaction. Payment path failed.' error is displayed, which is better than paying the invoice again but not very informative as to the specifics.

@ovitrif do you think you can add a new msg error?
Transaction failed
Impossible to pay twice the same invoice

@ovitrif do you think you can add a new msg error?
Transaction failed Impossible to pay twice the same invoice

💯 , thanks for the copy

authors: JeanlChristophe catch-21 ovitrif

repo: synonymdev/bitkit


text:
missing the type definition file in package

Initial checklist

[X] I read the support docs
[X] I read the contributing guide
[X] I agree to follow the code of conduct
[X] I searched issues and couldn’t find anything (or linked relevant results below)

Affected packages and versions
2.3.2
Link to runnable example
No response
Steps to reproduce
Install the package.
Expected behavior
The package should contain index.d.ts file as described in README and package.json file. Was the build command skipped before releasing the package?
Actual behavior
index.d.ts file is missing.
Affected runtime and version
any
Affected package manager and version
No response
Affected OS and version
No response
Build and bundle tools
No response

Thanks! https://github.com/syntax-tree/hast-util-to-estree/releases/tag/2.3.3

authors: wooorm xiaoxinghu

repo: syntax-tree/hast-util-to-estree