GZip compression doesn't seem to work with SendAndWait

Hello!
The control flow doesn't seem to enter the SyncRequestReceived event if GZip compression is enabled. Disabling compression fixes the issue.
Regards, Yury.

Hi @Dijkstra-ru thank you so much, I will check it out!

Hi @Dijkstra-ru thank you so much, I will check it out! What version are you using?

I use the lastest version from NuGet, namely <IP_ADDRESS>.
I'm sorry I can't write a minimal code to reproduce the issue now, deadline is coming too soon. I think it will work with the most basic example from readme.

I was able to reproduce.
Client sending compressed message
Server IP: [<IP_ADDRESS>]
Server port: [9000]
Use SSL: [y/N]?
[WatsonTcpClient] Connecting to <IP_ADDRESS>:9000
[WatsonTcpClient] Connected to server, starting data receiver
Server connected
Command [? for help]: comp
Compression [None|Deflate|Gzip]: [None] Deflate
Command [? for help]: send
Data: asdf

Server receives compressed message:
[WatsonMessage] ReadHeaders found header demarcation
[WatsonMessage] BuildFromStream header processing complete
{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"Deflate","ContentLength":4,"Metadata":{}}
Message received from <IP_ADDRESS>:51773: asdf

Client sends/waits compressed message:
Command [? for help]: sendandwait
Data: hello
Timeout (milliseconds): [5000] 10000
[WatsonMessage] ReadHeaders found header demarcation
[WatsonMessage] BuildFromStream header processing complete
{"Status":"Normal","SyncRequest":false,"SyncResponse":true,"Expiration":"2020-07-02T08:55:54.9857246-07:00","ConversationGuid":"3ff7744d-c4cc-4796-b05e-f7ea64d7995f","Compression":"None","ContentLength":22,"Metadata":{"foo":"bar","bar":"baz"}}
Metadata:
  foo: bar
  bar: baz
Response: Here is your response!
Command [? for help]:

Server receives UNCOMPRESSED message:
[WatsonMessage] ReadHeaders found header demarcation
[WatsonMessage] BuildFromStream header processing complete
{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T08:55:44.9857246-07:00","Expiration":"2020-07-02T08:55:54.9857246-07:00","ConversationGuid":"3ff7744d-c4cc-4796-b05e-f7ea64d7995f","Compression":"Deflate","ContentLength":5,"Metadata":{}}
Synchronous request received from <IP_ADDRESS>:51773: hello
Sending synchronous response

Actually, this may or may not be cosmetic.  It looks like the client is NOT setting the compression enum, but somehow the server is picking it up.
Nevertheless, I'll dig into this.  Sorry for the inconvenience!

My mistake; the server did not have its default compression set in my previous test, which is why the server response included "Compression":"None" though the client message was sent with "Compression":"Deflate".
The client seems to be operating properly:

Client sending uncompressed message, server receives:

{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"None","ContentLength":14,"Metadata":{}}
Message received from <IP_ADDRESS>:51852: no compression

Client sending deflate message, server receives:

{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"Deflate","ContentLength":19,"Metadata":{}}
Message received from <IP_ADDRESS>:51852: deflate compression

Client sending gzip message, server receives:

{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"Gzip","ContentLength":16,"Metadata":{}}
Message received from <IP_ADDRESS>:51852: gzip compression

Client sendandwait no compression, server receives:

{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T09:05:23.1512931-07:00","Expiration":"2020-07-02T09:05:28.1512931-07:00","ConversationGuid":"5f6bc1fe-a2dc-47ee-a104-093ffb38649a","Compression":"None","ContentLength":28,"Metadata":{}}
Synchronous request received from <IP_ADDRESS>:51852: no compression send and wait

Client sendandwait deflate compression, server receives:

{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T09:06:24.75965-07:00","Expiration":"2020-07-02T09:06:29.75965-07:00","ConversationGuid":"09ed98aa-4f12-47cc-91eb-12e584ed61b8","Compression":"Deflate","ContentLength":19,"Metadata":{}}
Synchronous request received from <IP_ADDRESS>:51852: deflate compression

Client sendandwait gzip compression, server receives:

{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T09:06:49.9916456-07:00","Expiration":"2020-07-02T09:06:54.9916456-07:00","ConversationGuid":"c33516d6-dc37-4459-948f-a6fe25274e2b","Compression":"Gzip","ContentLength":16,"Metadata":{}}
Synchronous request received from <IP_ADDRESS>:51852: gzip compression

In terms of the server initiating...

Server send no compression, client receives:

{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"None","ContentLength":14,"Metadata":{}}
Message from server: no compression

Server send with deflate compression, client receives:

{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"Deflate","ContentLength":19,"Metadata":{}}
Message from server: deflate compression

Server send with gzip compression, client receives:

{"Status":"Normal","SyncRequest":false,"SyncResponse":false,"Compression":"Deflate","ContentLength":19,"Metadata":{}}
Message from server: deflate compression

Server sendandwait no compression, client receives:

{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T09:08:54.5461946-07:00","Expiration":"2020-07-02T09:08:59.5461946-07:00","ConversationGuid":"4803d2fa-594f-4dfe-b9d2-9c73a324cb8b","Compression":"None","ContentLength":14,"Metadata":{}}
Message received from <IP_ADDRESS>:9000: no compression

Server sendandwait deflate compression, client receives:

{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T09:09:23.3351217-07:00","Expiration":"2020-07-02T09:09:28.3351217-07:00","ConversationGuid":"f3db3def-330c-4580-acd0-4d3562b7279d","Compression":"Deflate","ContentLength":19,"Metadata":{}}
Message received from <IP_ADDRESS>:9000: deflate compression

Server sendandwait gzip compression, client receives:

{"Status":"Normal","SyncRequest":true,"SyncResponse":false,"SenderTimestamp":"2020-07-02T09:09:50.0789243-07:00","Expiration":"2020-07-02T09:09:55.0789243-07:00","ConversationGuid":"ac72c03b-4e9c-4838-b627-131b0c516974","Compression":"Gzip","ContentLength":16,"Metadata":{}}
Message received from <IP_ADDRESS>:9000: gzip compression

Please ignore my previous comment.  It appears the messages are indeed going out with the specified compression applied.
Is the concern that the client/server sends with one form of compression and gets a response from sendandwait using a different form?  If so, that is by design - the client/server will send with whatever compression is defined on the client/server, not based on any incoming message.
If that's not the concern, I'd love it if you could produce a small code snippet to reproduce.  It appears to be ok on my end but I'm more than happy to investigate further!
Cheers, Joel

Strangely, I can't reproduce it in a simple sample code, however commenting client.Compression = CompressionType.Gzip; fixes the situation in real-world code. I need some time to think it over.
My code is identical to this, but it doesn't work with client.Compression = CompressionType.Gzip; uncommented. The code below works either way.
using System;
using WatsonTcp;
static class Program {
  static void Main() {
    var server = new WatsonTcpServer("<IP_ADDRESS>", 12345);
    var client = new WatsonTcpClient("<IP_ADDRESS>", 12345);
    client.Compression = CompressionType.Gzip;
    server.MessageReceived += (sender, args) => { };
    server.SyncRequestReceived += OnServerSyncRequestReceived;
    server.Start();
    client.MessageReceived += (sender, args) => { };
    client.Start();
    var resp = client.SendAndWait(5000, new byte[] {1});
    Console.ReadLine();
  }
  static SyncResponse OnServerSyncRequestReceived(SyncRequest request) {
    Console.WriteLine("Entered server code");
    return new SyncResponse(request, new byte[] {1});
  }
}

Please leave the issue open for a few days, I'll try to make the minimal reproducing sample.
P.S. I also want to thank you for your work. You saved our team lots of time and nerves. We're using WatsonTCP for a few years, modified (to exclude framing, like in your other project) and not modified in a traffic light controller dispatch program in Russia. Your code manages hundreds of traffic lights simultaneously without any problems.

Thank you for the kind words!  I am happy to support in whatever way I can. Please don’t hesitate to ask :) Cheers Joel

Hi @Dijkstra-ru were you able to track down the source of the problem?  Cheers, Joel

Hi @Dijkstra-ru please feel free to reopen if you find the issue is in the library.  Cheers!

I was able to produce this bug.
POC

Set Compression to CompressionType.Gzip on client and server
Send a SendAndWait packet with a Dictionary (metadata), any timeout and a string/byte array

WatsonTcpServer never "receives" the packet.

Logger logs from WatsonTcpServer. It appears it parses the message, but never invokes the event handler when using CompressionType.Gzip
{"Timestamp":"2020-07-26T21:44:51.8197627-04:00","Level":"Verbose","MessageTemplate":"[Tcp] [WatsonTcpServer] Starting on <IP_ADDRESS>:8080"}
{"Timestamp":"2020-07-26T21:44:57.8427123-04:00","Level":"Verbose","MessageTemplate":"[Tcp] [WatsonTcpServer] Accepted connection from <IP_ADDRESS>:53215"}
{"Timestamp":"2020-07-26T21:44:57.8469483-04:00","Level":"Verbose","MessageTemplate":"[Tcp] [WatsonTcpServer] Starting data receiver for <IP_ADDRESS>:53215"}
{"Timestamp":"2020-07-26T21:44:57.8478152-04:00","Level":"Information","MessageTemplate":"[Network] Client connected. [IP Address: <IP_ADDRESS>:53215]"}
{"Timestamp":"2020-07-26T21:45:02.6801905-04:00","Level":"Verbose","MessageTemplate":"[Tcp] [WatsonMessage] ReadHeaders found header demarcation"}
{"Timestamp":"2020-07-26T21:45:03.0443340-04:00","Level":"Verbose","MessageTemplate":"[Tcp] [WatsonMessage] BuildFromStream header processing complete\r\n{\"Status\":\"Normal\",\"SyncRequest\":true,\"SyncResponse\":false,\"SenderTimestamp\":\"2020-07-26T21:45:02.3564525-04:00\",\"Expiration\":\"2020-07-26T22:01:42.3554372-04:00\",\"ConversationGuid\":\"9903f03f-c63b-4de1-9f33-f21cec9c8d62\",\"Compression\":\"Gzip\",\"ContentLength\":75579,\"Metadata\":{\"gameType\":1,\"baseAngle\":60.0}}"}

Hi @Dijkstra-ru and @developervariety I modified Test.Client to automatically add a Dictionary<object, object> to the metadata parameter, set the client compression to Gzip, and sent a message to the server.  As you can see in the screenshot below the server receives the message.
Would love some help in reproducing this.

The client code:
        private static void SendAndWait()
        {
            string userInput = InputString("Data:", null, false);
            int timeoutMs = InputInteger("Timeout (milliseconds):", 5000, true, false);
            Dictionary<object, object> metadata = new Dictionary<object, object>();
            metadata.Add("foo", "bar");

            try
            {
                SyncResponse resp = client.SendAndWait(metadata, timeoutMs, userInput);
                if (resp.Metadata != null && resp.Metadata.Count > 0)
                {
                    Console.WriteLine("Metadata:");
                    foreach (KeyValuePair<object, object> curr in resp.Metadata)
                    {
                        Console.WriteLine("  " + curr.Key.ToString() + ": " + curr.Value.ToString());
                    }
                }

                Console.WriteLine("Response: " + Encoding.UTF8.GetString(resp.Data));
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception: " + e.ToString());
            }
        }

You can see I set the client compression here:

And the server received the compressed message and processed the payload:

I'm definitely not ruling out that there is something in the library; I just can't reproduce it.  If you could share a gist with a code sample that produces this bug, please let me know!
Re-opening for you now.
Thanks, Joel

I'm not entirely sure how I was able to reproduce this, but I know it wasn't a false positive. Next time it occurs I'll have you a detailed POC.

Are you setting the SyncMessageReceived callback?  I'm assuming you are but thought it would be worthwhile to double check.

Hello, just adding that Gzip doesn't work for my at all (linux, .net core 3.1.6)
Here is my code:
        [Test]
        public async Task TestCompression()
        {
            var watsonServer = new WatsonTcpServer("<IP_ADDRESS>", _watsonTcpPort)
            {
                Compression = CompressionType.Gzip,
                Logger = Console.WriteLine
            };

            watsonServer.MessageReceived += (sender, message) =>
            {
                Console.WriteLine(Encoding.UTF8.GetString(message.Data));
                watsonServer.Send(message.IpPort, message.Data);
            };
            watsonServer.Start();
            await Task.Delay(100);

            var client = new WatsonTcpClient("<IP_ADDRESS>", _watsonTcpPort)
            {
                Compression = CompressionType.Gzip,
                Logger = Console.WriteLine
            };

            int counter = 0;
            client.MessageReceived += (sender, message) =>
            {
                Console.WriteLine(Encoding.UTF8.GetString(message.Data));
                Interlocked.Increment(ref counter);
            };
            client.Start();

            await client.SendAsync("Hello");

            TestHelper.WaitWhileFalse(() => counter == 1);
            Assert.AreEqual(1, counter);
        }

And the output:
[WatsonTcpServer] Starting on <IP_ADDRESS>:1201
[WatsonTcpClient] Connecting to <IP_ADDRESS>:1201
[WatsonTcpClient] Connected to server, starting data receiver
[WatsonTcpServer] Accepted connection from <IP_ADDRESS>:42872
[WatsonTcpServer] Starting data receiver for <IP_ADDRESS>:42872

The server doesn't receive any data. Maybe related to #84 ?
Code works fine with CompressionType.Deflate and CompressionType.None

Got it, was able to reproduce.  Thanks @Job79 - I will test and remedy!

Ok I think I've solved it.  I was having an issue early on where if I were to read some n bytes out of the GZipStream there would be remnants leftover in the underlying NetworkStream, so I had to switch to reading the GZipStream fully.
Now, somehow, reading n bytes works.
I'm going to test this with Deflate as well and make sure there are no issues.  Then I will test on Ubuntu with .NET Core 3.1.
More to come.

There is clearly a difference in how Windows and Ubuntu handle GZipStream and DeflateStream.  And it's really frustrating.
I updated NuGet to v<IP_ADDRESS> with a fix.  Here are the results:

Windows with Gzip: pass
Windows with Deflate: pass
Ubuntu with Gzip: pass (fixed)
Ubuntu with Deflate: fail

The difference is this.  Earlier on I found that in order to properly process messages, anytime gzip or deflate were enabled I would have to fully read the stream rather than read some n number of bytes based on the message content length.  Otherwise, compression remnants would be left in the underlying network stream which would cause a deserialization exception when the next message was received.
It seems that the proper approach is to revert deflate back to fully reading the stream and test again so that I can get all four tests to pass.
More to come.
Ubuntu using Gzip:

Ubuntu using Deflate:

Windows using Gzip:

Windows using Deflate:

Test results using <IP_ADDRESS>
This one uses selective read for Gzip and full read for Deflate.
Windows Gzip (pass):

Windows Deflate (pass):

Ubuntu Gzip (pass):

Ubuntu Deflate (pass):

So it looks like <IP_ADDRESS> fixes the issue.  Could you give it a go and see if it works for you?

Deflate was working with you reading the NetworkStream. I'll be updating my library and checking this out!
Thank you for your time and dedication.

<IP_ADDRESS> fixed the issue! Good work!

Glad to know, thanks for helping me isolate it!

Hi all, issues with Deflate and Gzip have crept up again and I'm about ready to pull them out of the code.  I wanted to get your feedback on it.  It seems various combinations of operating systems (Windows, Mac, Linux) vs runtimes (.NET Framework, .NET Framework with Mono, and .NET Core) have different behaviors with regard to fragments of data being left in the underlying stream.
In any case, the GZipStream and DeflateStream straddle the underlying NetworkStream (or SslStream), and in some combination of the above it is expected that the compression stream must be read until the end of stream and in others only the specific number of bytes needed should be read.
It seems wildly inconsistent that in one of the above combinations, if I write 10 bytes to a DeflateStream, I can't simply read 10 bytes from the DeflateStream on the other side (after wrapping the underlying stream with the DeflateStream); I have to read until the end of the stream.  Same with GZipStream.
With that said, I wanted to solicit your feedback on how much agony it would cause you if I did this.  I could provide static helper methods that could compress a stream or byte[] going into one of the Send methods, and could be called inside of your MessageReceived or StreamReceived methods.  But having that complexity inside of the library is becoming untenable.
Let me know your thoughts.  Thanks!  Joel

Hi all, issues with Deflate and Gzip have crept up again and I'm about ready to pull them out of the code.

The issues or the compression?
Maybe take a complete other approach, like building compression on top of the receive functions instead of embedding them.
This is how I would add compression:

Give all the send functions an optional (Default: Compression.None) parameter with the compression type. When not none first compress the data before continuing.
Give the message received parameter class a decompress function, this  decompresses the message when compressed (check here, Gzip has a magic number). Bonus points for letting this function return 'this'.

The compression.
There isn't a least common denominator implementation that works in all combinations of OS and runtime environment.

Hi all, I committed v4.2.0 just now (https://github.com/jchristn/WatsonTcp/commit/89dd514ce50cbca39051413ec7f0d8aec3b8405b) and published to NuGet (https://www.nuget.org/packages/WatsonTcp/4.2.0).
There are a couple key changes:

You shouldn't be able to 'over-read' now when using streams, i.e. reading too many bytes and getting into the next message's header; this is applicable to when integrating using StreamReceived instead of MessageReceived, and
Compression is gone, for now; it was causing too many problems across multiple OS and runtimes

I plan to re-add compression back in soon, but using an over-the-top model instead of something that encapsulates the underlying data stream.
Cheers, Joel


Improve parsing of headers

Fixes #1619

I'd prefer us to use a proper parser instead of working around only some limitations of the current approach. MIME4J contains ContentTypeField + ContentTypeParser.


pull request for e2e test at 12/06/2016 18:26:02

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


A high severity vulnerability introduced in your package

Hi ,@JustinBeckwith , @yoshi-automation, I’d like to report a high severity vulnerability in your package google-p12-pem:
Issue Description
A vulnerability CVE-2020-7720 (high severity) detected in package node-forge<0.10.0 is directly referenced by<EMAIL_ADDRESS>and @1.0.4. We noticed that such a vulnerability has been removed since<EMAIL_ADDRESS>However, google-p12-pem's popular previous versions<EMAIL_ADDRESS>(428,436 downloads per week) and<EMAIL_ADDRESS>(464,605 downloads per week) are still transitively referenced by a large amount of latest versions of active and popular downstream projects.Taking<EMAIL_ADDRESS>as an example ,there are about 1,260 downstream projects, e.g., @blossm/cli 0.0.1837, psi 4.1.0, @sentrei/common 1.131.0, @firebaseextensions/firestore-bigquery-change-tracker 1.1.12, @sentrei/web 1.131.0<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>etc..
As such, issue CVE-2020-7720 can be propagated into these downstream projects and expose security threats to them.
These projects cannot easily upgrade google-p12-pem from version 2.0.4 or 1.0.4 to 3.*.* . For instance<EMAIL_ADDRESS>and @1.0.4 are introduced into the above projects via the following package dependency paths:
(1<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>(2<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>(3<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>(4<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>(5<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>➔<EMAIL_ADDRESS>......
The projects such as @blossm/gcp-storage, container-image-builder, actions-on-google-testing and pkgcloud etc. which introduced<EMAIL_ADDRESS>or @1.0.4, are not maintained anymore. These unmaintained packages can neither upgrade google-p12-pem nor be easily migrated by the large amount of affected downstream projects.
On behalf the downstream users, could you help us remove the vulnerability from packages<EMAIL_ADDRESS>and @1.0.4?
Suggested Solution
Since these unactive projects set a version constaint ~2.0. or ~1.0.** for google-p12-pem on the vulnerable dependency paths, if google-p12-pem removes the vulnerability from @2.0.4 and @1.0.4 and releases new patched versions<EMAIL_ADDRESS>and<EMAIL_ADDRESS>such a vulnerability patch can be automatically propagated into the affected downstream projects.
In<EMAIL_ADDRESS>you can kindly try to perform the following upgrade:
node-forge ^0.9.0 ➔ ^0.10.0;
Note:
<EMAIL_ADDRESS>(>=0.10.0) has fixed the vulnerability CVE-2020-7720
In<EMAIL_ADDRESS>you can kindly try to perform the following upgrade:
node-forge ^0.8.0 ➔ ^0.10.0;
Note:
<EMAIL_ADDRESS>(>=0.10.0) has fixed the vulnerability CVE-2020-7720
Thank you for your contributions.
Sincerely yours,
Paimon

@paimon0715 thanks!  Is this an automated report?   For security issues, in the future, please have a look at our security policy and reporting guidelines:
https://github.com/googleapis/google-p12-pem/blob/master/SECURITY.md

@JustinBeckwith This is not a bot.
Thank you so much for your help! @chingor13 @JustinBeckwith

We backported the dependency bump into 1.0.5 and 2.0.5 and released them to npm.


I use hammer.js on a custombox, it doesn't work

Hi,
I use http://dixso.github.io/custombox/ as modal for popup a window, I bind hammer touch event to the custombox, the hammer's touch event doesn't work, please help.

Thanks!

Closing as not a bug.


New Section - Hospitals / Medical Services

Describe the feature
I have an idea for a new section.
Citizen | Officer | EMS/FD | Dispatch | Courthouse | Hospital / Medical Services
This could have roles/options like:
• Hospital Staff:
Doctor, Nurse, Coroner
• Morgue:
When someone is Marked as Dead, then their Citizen is sent to the Morgue
(just like when someone impounds a vehicle into the Impound Yard)
Someone with Medical permission can Mark as Dead or Release From Morgue as well.
Maybe tie permission to EMS/FD so its easier. Since EMS are medical as well technically.
Additional Context
No response

Sounds quite interesting, will have time later this week to work on this :)


Show author email in admin panel

Hi, is there any way to show author's email in comments section in admin panel?

no, it is only seen in api or grapqhl, but it needs custom code
// Allow to extend schema comments, for view author full data
    extensionService.use(({ nexus }) => ({
      types: [
        nexus.extendType({
          type: "CommentSingle",
          definition(t) {
            t.string("authorFull", {
              type: "UsersPermissionsUserEntityResponse",
              description: "Author full data",
              resolve: async (parent, root, args) => {
                const { toEntityResponse } = strapi.service(
                  "plugin::graphql.format"
                ).returnTypes;
                console.log("parent", parent.author.id);
                const user = await strapi.db
                  .query("plugin::users-permissions.user")
                  .findOne({
                    where: { id: parent.author.id },
                    populate: { profile_image: true },
                  });
                console.log("user", user);

                return toEntityResponse(user);
              },
            });
          },
        }),
      ],
    }));
    ```


✨ Improved functionality for directory artifacts

https://github.com/laminlabs/lamindb-setup/pull/687

This looks good, Sergei! Can we merge it?


Broken Files when upload rar,zip,msi,etc

I make a test to upload files with format: Zip, Rar,MSI, Exe, etc and always the file when it's uploaded its modified and then broken when it's downloaded and try to open.
on the other hand if i upload files type text like .txt, .php,.html,.js , etc i don't experiment any problem.
here it's the code example
use std::fs::{read, write};
use std::str;
use std::io::Cursor;
use ftp::FtpStream;

fn main() {
    let mut ftp_stream = FtpStream::connect("somehost.com:21").unwrap();
    let _ = ftp_stream.login("some_user", "some_password").unwrap();
    let read_bytes = read("test_file.rar").unwrap();
    let bytes = read_bytes.as_slice();
    println!("Total bytes read  : {}",read_bytes.iter().count());
    let mut reader = Cursor::new(bytes);
    let bytes_reader = reader.clone().into_inner();

    println!("Totalt bytes after reader {}",bytes_reader.iter().count());
                ftp_stream.cwd("public_html").unwrap();
                let _ = ftp_stream.put("file.rar", &mut reader);
}

'till this moment i know the problem exist when make the stream of the bytes, 'cause if i write the bytes of the reader on my disk the file it's OK.
So i will check the code of the stream to see what's it's going on.
Tested ON: Windows 10 21H2 and Mac OS Monterrey 12.6

Please, try with https://github.com/veeso/suppaftp instead, which is the maintained version of this library and set the transfer type to Binary with the transfer_type function


:lady_beetle: Provider Edit Credentials form - if edited twice sequentially then no refresh is done

When editing provider's credentials once successfully and then trying to edit it again sequentially (with no browser refresh), the 'update credentials' button is enabled even without editing/changing any field. Seems like a sync issue with backend.
This is reproducible for all provider types.
For reproducing:

Go to provider -> edit credentials tab and click on the Edit credentials button.
Edit some field value and apply by clicking the update credentials
Check that the update was done successfully
Click on Edit credentials button again.

Actual result: the update credentials button is enabled
Expected result: the update credentials button should be disabled since no update was done.
Screencast:
Screencast from 2023-11-28 14-54-16.webm

Addressed by #1010


Detects additional tailwind.config.js file as part of @tailwindcss/forms within node_modules

A tailwind.config.js is installed as part of @tailwindcss/forms — the extension detects this causing it to think there are two config files in the project.

Thanks, @chrisgrande. I'll work on getting this fixed.

@chrisgrande, this issue should now be fixed in v4.2.2. Thanks again!

Awesome — thank you!


createMany fails on more than 64K placeholders

createMany fails on more than 64K placeholders:
// works
await db.post.createMany(Array.from({ length: 65535 }, () => ({ text: "foo" })))

// error: bind message supplies 0 parameters, but prepared statement "" requires 65536
await db.post.createMany(Array.from({ length: 65536 }, () => ({ text: "foo" })))

orchid-orm 1.28.11
pg 8.12.0

Perhaps it's not ORM business to do the chunking but I think there could be a 'heads up' note in the documentation with some kind of recipe, e.g.:
import * as r from "rambda"

const data = Array.from({ length: 100000 }, () => ({ text: "foo" }))

await db.$transaction(async () => {
  for (const chunk of r.splitEvery(1000, data)) {
    await db.post.createMany(chunk)
  }
})

(or may be some smarter way to run the promise map sequentially).

Published an update for this,  and updated docs for createMany.
Now this query should work, internally it will track the count of parameters, and when it exceeds 65535, the insert will be batched into multiple queries.
Multiple inserts are wrapped into a transaction unless it's already in a transaction.

Great, thanks! I think you missed a word in the docs:

Because of a limitation of Postgres protocol, queries having more than 65536 are going to fail in runtime.

more than 65536 of what?
(also, it's more than 65535 to be precise, sorry for the nit-picking lol)

It's easy to fix, so nit-picking is welcome!


add safe guards for converting calls from R

@JohanMabille @SylvainCorlay this PR should improve xtensor-R in a bunch of ways. I think it's ready to be reviewed & merged!


How can I fetch the data from cache when fetching data from remote failed?

Hi, I'm new on Clean architecture and we are planning to convert our project(MVP) to Clean architecture and I'm making POC project from our code base and see how it goes for my team.
as the sample code, the data fetch from the cache only the cache not expired or cached in our case is fetch the data from cached when fetching the data from network failed whatever case.
Any ideas?

There are some empty methods which you can use for your purpose:
override fun showErrorState() {
   }

   override fun hideErrorState() {
   }

   override fun showEmptyState() {
   }

   override fun hideEmptyState() {
   }

Show an error message with Retry button when showErrorState is called, the method retry/refresh() would be available in presenter/viewModel - it will retry the whole network request from the beginning.


Add option to disable or exchange contacts provider

Not sure on the implementation yet, but wanted to log the issue upstream already.

With contact provider you mean Formspree as service to handle the contact form, right?
It would be nice to make this more customizable. But each contact provider uses a (slightly) different approach. Combining them all in one template (if possible) would create unreadable code. Using different templates would make the code redundant.
My suggestion is that you copy the contact partial to layouts/partials/ in the root directory. Now, you can adapt this template with your own provider. Furthermore, you can update the theme without worrying that your changes will be removed. Templates in the root directory will overwrite those of the template.
I think this is the most flexible solution for all of us.

Yeah that sounds almost better than my initial ideas. The initial idea was to make default formspree and $provider just using a POST url, but the partials idea seems probably cleaner.
Will check back, when I have some code.


When the code and benchmark dataset will be released?

I really appreciate your efforts in establishing the OceanVP benchmark dataset for comparing DL-based methods.
I notice that this repo is currently empty. Could you please let me know when you plan to release the code and benchmark dataset?
Thanks! ^_^

We have released the data and code of our work. Thanks for your attention, and hope our work will be helpful to you.


Avoiding asking for Tenant Domain in Login Page for Non-SaaS Service Providers

Describe the improvement
If its a Non-SaaS service provider, the login is restricted to users of the same tenant domain. In some cases, the users are not even aware of their tenancy. In such cases, it may not be practical to ask for the tenant from the user. The tenant is only an implementation level detail. In such a case we actually know the tenant to which the service provider sent the original authentication request. We can consider that as the tenant domain of the user as well.
We can do this now also with customization. But it will be better if it is supported out-of-the-box.

Addressed with https://github.com/wso2/product-is/issues/8117


chore(style): Enforce optional chaining

SUMMARY
Just saw this comment on a PR today. I see and write comments like this all the time, so let's just make it a rule!
This PR turns on enforcement around optional chaining. It also fixes the 58 or so errors that resulted.
This rule does NOT have an auto-fix option, so I did all these by hand. Please check my work!

BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF

TESTING INSTRUCTIONS

Linting should not fail, CI should pass.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Required feature flags:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

LGTM! @rusackas can you fix CI errors?


feat(indexer): add tipCharacter and tipCharacterForNote to newbie

The two new APIs are implemented on the closed-source indexer.

We should also make indexer params into a single object param too?


Redux saga supports this feature but not a necessity for us, let's look at this if a need arises


Move up grafana to latest

I did a quick testing of 6.4.3 with 1.4 beta 2, didn't notice any issues.

@linsun: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_installer
0006cf4d83f49bd7661c75d5d1dd0bce1ab937f9
link
/test gencheck_installer

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

looks fine once you run make gen.  You may need to unset HUB and TAG if they are set in your enviornments ot run `make gen.

This is only modifying the generate files not the source of those files. The source of truth is something like istio-telemetry/grafana/values.yaml

@linsun: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

gencheck_installer
5cba0da9f0fdd3ac05ef4de0054872504ae3007a
link
/test gencheck_installer

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn @sdake thanks, didn't realize the files were generated. PTAL.

/cherrypick release-1.4

@linsun: #496 failed to apply on top of branch "release-1.4":
.git/rebase-apply/patch:17: trailing whitespace.
export HUB=docker.io/istio TAG=1.3.0
.git/rebase-apply/patch:39: trailing whitespace.

warning: 2 lines add whitespace errors.
error: Failed to merge in the changes.
Using index info to reconstruct a base tree...
M	README.md
Falling back to patching base and 3-way merge...
Auto-merging README.md
CONFLICT (content): Merge conflict in README.md
Patch failed at 0001 update hub and tag examples

In response to this:

/cherrypick release-1.4

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


[Feature Request] configurable values to display

Hello many thanks for the project. I'm very glad that I can include solar power data on my MagicMirror.
I changed the code to show ENERGY_NOW, POWER_LOAD, POWER_AKKU, POWER_GRID instead of the other value. So there is no need the change anything. But if you like to change the SW I suggest you enable the config file to activate values in the value list.
Like:
config: {
  ip: "<IP_ADDRESS>",
  values: ["E_Day","E_Total","E_Year","P", "BackupMode","E_Day","E_Total","E_Year","P_Akku","P_Grid","P_Load","P_PV","rel_Autonomy","rel_SelfConsumption"]
}

This was kind of my plan to incorporate all the possible values and let the user decide which ones they want to show.
They are already fetched by the module but are not shown.
So hang on, It will be implemented at some point :)


MINOR: Add missing support-metrics-bundle script

Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

support-metrics-bundle script is missing in confluent-kafka. I added this to internal kafka, but forgot to add here

Thanks for the review. nerging to to master and 5.3.x

@omkreddy one thing I noticed is that we don't have a .sh file for this one. Not sure if that matters though since we do a rename at the packaging step to remove the .sh files.


Allow override of Quit()

Also, of CMenu.Run()

Also, of CMenu.Run()

It's better to now allow overriding - most scenarios can be accomplished using simple events. This avoids mistakes and reduces complexity.

It's better to now allow overriding - most scenarios can be accomplished using simple events. This avoids mistakes and reduces complexity.


[Xcodeproj] Use TOOLCHAIN_DIR macro for manifest indexing

Instead of using the resolved path at time of generating, use
TOOLCHAIN_DIR macro which has the correct value according to the
toolchain selected in Xcode.
https://bugs.swift.org/browse/SR-6190

@swift-ci please test

@swift-ci please smoke test

@swift-ci please smoke test


The results do not match the original paper

I used the pre-trained weights and pre-trained semantic primitive weights provided by the source code for verification. The results on the Real dataset are basically consistent with the original paper, but the IoU50 and IoU75 indicators on the CAMERA dataset did not match the requirements mentioned in the text. What is the reason for this?

Hi, when training the model for testing on CAMERA dataset, we remove some steps of data augmentation. Specifically, the 'data.jittor' in the config yaml is set as false. You could try this checkpoint to get similar result shown in the paper.


Convert current tooltips to Bootstrap tooltips

Each tooltip needs to be replaced with the Bootstrap implementation for tooltips. This is a more robust implementation and handles the oddities we are seeing with our current ones.
This requires adding tooltip-placement, tooltip-append-to-body, and uib-tooltip to the elements that should have tooltips and removing the existing tooltip elements.

PR #897 has been merged, so closing this issue now.


Add disclaimers and customization

The Home Page and Final Grade submit should have disclaimers to using the app. Instructors should also be able to write custom instructions for students.

Also add feature to reset course if instructors deletes all their assessments.

Also allow to hide final grades on submit final grades page


Issues with angular 13 and<EMAIL_ADDRESS>

Issue when trying to install ngx-marquee with angular 13:
Error:
While resolving<EMAIL_ADDRESS>npm WARN Found<EMAIL_ADDRESS>Screenshot for reference:

Tried some workaround with : use npm i ngx-marquee --force
After using wrorkaround tried to add the property of direction or animation it is saying property not valid

Issues with angular 14, 13 is working fine


Using reusable workflow for check deployment

The comment trigger will not work because https://github.com/iterative/dvc.org/pull/4152#issuecomment-1334854309.
TODO:

[x] This will need https://github.com/iterative/gatsby-theme-iterative/pull/146 to be merged
[x] change current reference to main branch

#passci

#passci

#passci


Should bin/shakapacker work without Ruby?

Desired behavior:
If bin/shakapacker works without Ruby, then Docker Layer Caching (DLC) could fetch JS packages (yarn) and compile without the cache breaking due to Ruby changes. Currently, most will put the Ruby layers before the JS layers so that if the Ruby layers don't change, then the DLC will be used. But if any cache layers break due to Ruby changes, then bin/shakapacker has to run again.
One alternative is to cache the results of rake assets:precompile, as React on Rails Pro does.
Actual behavior:
Running bin/shakapacker requires all Ruby dependencies to be installed and be earlier layers of the DLC.
Setup environment:
N/A

I'm not sure it makes sense for Shakapacker to not use ruby for bin/shakapacker, because isn't that basically what jsbundling-rails is?
I think there are probably two areas worth looking into for Shakapacker:

multistage builds: more specifically, figuring out what Ruby files are generally needed on average and encouraging those to be copied in a dedicated build, then have the output of that copied out into the main build
caching the results of rake assets:precompile and/or webpack


Update provider names

Did a second pass over these names to true them up with the list of packages we're tracking, ensure capitalization is correct, etc.

@infin8x it would be awesome if you could also update https://github.com/pulumi/pulumi/blob/master/pkg/codegen/docs/gen.go#L74 over in pulumi/pulumi?

@praneetloke ah thanks. Done: https://github.com/pulumi/pulumi/pull/8119


Column metadata for slugs loaded dozens of times

In both production and development, I'm seeing the following query being run dozens of times on every page request. I've got config.cache_classes = true, so I'm not sure why this would be getting run more than once.
SELECT a.attname, format_type(a.atttypid, a.atttypmod), d.adsrc, a.attnotnull
FROM pg_attribute a LEFT JOIN pg_attrdef d
ON a.attrelid = d.adrelid AND a.attnum = d.adnum
WHERE a.attrelid = '"slugs"'::regclass
AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum
This is really slowing down the site, with pages taking 3-5 seconds to load on Heroku. We're trying to get this site launched, and need to be able to speed things up!
I'm on Refinery 1.0.9, and 1-0-stable seems to have the same problem.

On a brand new site created with 1.0.9, the query above runs 5 times on subsequent requests to the home page even with cache_classes = true.

Does this happen on a fresh install?

Philip, see my previous comment about it running 5 times per page in a fresh install.
I actually switched to MySQL in production, and that sped things up, quite a bit, although the time spent in Ruby code is now longer than with PG. Odd.
On Feb 12, 2012, at 7:06 PM, Philip<EMAIL_ADDRESS>wrote:

Does this happen on a fresh install?

Reply to this email directly or view it on GitHub:
https://github.com/resolve/refinerycms/issues/1295#issuecomment-3932578

Is this problem really causing 3-5 second slow down? It looks like it's only 4.6 milliseconds in that huge list provided by @natebird

Right. I'm not seeing a huge slowdown in page loads but I am seeing the duplicated queries.

I think this getting off-topic, but the slowdown I was seeing was on Heroku
with their shared Postgres database. Being a shared database, some small
percentage of queries are slow, so adding lots of unnecessary queries
increases the chances of getting a slow one or two.
As I mentioned above, switching to MySQL helped a lot with this problem,
but in my opinion there's still a problem here, and it only seems to get
worse as you add more data to your Refinery.
On Thu, Feb 16, 2012 at 8:27 PM, Nate Bird <
<EMAIL_ADDRESS>
wrote:

Right. I'm not seeing a huge slowdown in page loads but I am seeing the
duplicated queries.

Reply to this email directly or view it on GitHub:
https://github.com/resolve/refinerycms/issues/1295#issuecomment-4013497

Does anybody know if this is an issue on edge / 2.0?

This actually will not be an issue on edge because there is not a slugs table anymore.

Good to know. I was going to upgrade our app to edge but haven't been able to since tomorrow is launch day… and people like things to be stable at launch – who would've guessed. :-)


python310Packages.pyswitchbee: 1.7.3 -> 1.7.18

Changelog: https://github.com/jafar-atili/pySwitchbee/releases/tag/1.7.18
Description of changes

Things done

Built on platform(s)

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

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

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 209912 run on x86_64-linux 1

3 packages built:

home-assistant-component-tests.switchbee
python310Packages.pyswitchbee
python39Packages.pyswitchbee


Is this project abandoned?

Latest commit 2018???

This was a POC for the actual algorithm under the hood, so it is not directly related to our private projects.


fix: pkg missing a dynamic require in pg-format

What kind of change does this PR introduce?
Bug fix.
What is the current behavior?
pkg is missing a dynamic require, so the resulting binaries fail to run.
What is the new behavior?
Add the require to pkg.scripts in package.json, as per docs.

I also removed the binaries as we have releases now, but feel free to add back if releases won't do.


NullPointerException in FileUtils.getRelativePath

The stack trace:
https://www.oxygenxml.com/forum/viewtopic.php?f=20&t=20682
 D:\Oxygen XML Author 21\frameworks\dita\DITA-OT3.x\plugins\org.dita.base\build_preprocess.xml:87: java.lang.NullPointerException
at org.dita.dost.util.FileUtils.getRelativePath(FileUtils.java:169)
at org.dita.dost.module.DebugAndFilterModule.getRelativePathFromOut(DebugAndFilterModule.java:532)
at org.dita.dost.module.DebugAndFilterModule.getPathtoProject(DebugAndFilterModule.java:514)
at org.dita.dost.writer.DitaWriterFilter.startDocument(DitaWriterFilter.java:95)
at org.xml.sax.helpers.XMLFilterImpl.startDocument(Unknown Source)
at org.dita.dost.writer.TopicFragmentFilter.startDocument(TopicFragmentFil

It looks like a side effect of a condition added by @robander in: https://github.com/dita-ot/dita-ot/pull/2797

Looking at the console output provided by the end user, at some point I think he has some absolute paths pointing outside of the folder where the DITA Map is located, probably a conref which points to some network drive located on an Y drive.

We have run into this too. It occurs when our working directory is a directory on C:\ in Windows (for example, C:\my_dita_project). If we add one directory level, the problem disappears.
 To run, extract in the C:\ drive in Windows, then run runme.bat.
top_level_error.zip


Allow to install API pack with symfony 5

Description
Please update nelmio/cors-bundle dependency version to 2.0.x-dev (it supports Symfony 5). Otherwise installation of API pack unsuccessfull for Symfony 5:
$ composer require api:dev-master
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Restricting packages listed in "symfony/symfony" to "5.0.*"
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - nelmio/cors-bundle 1.5.6 requires symfony/framework-bundle ^2.7 || ^3.0 || ^4.0 -> no matching package found.
    - nelmio/cors-bundle 1.5.5 requires symfony/framework-bundle ^2.7 || ^3.0 || ^4.0 -> no matching package found.
    - nelmio/cors-bundle 1.5.4 requires symfony/framework-bundle ^2.7 || ^3.0 || ^4.0 -> no matching package found.
    - nelmio/cors-bundle 1.5.3 requires symfony/framework-bundle ^2.7 || ^3.0 -> no matching package found.
    - nelmio/cors-bundle 1.5.2 requires symfony/framework-bundle ^2.7 || ^3.0 -> no matching package found.
    - nelmio/cors-bundle 1.5.1 requires symfony/framework-bundle ^2.7 || ^3.0 -> no matching package found.
    - nelmio/cors-bundle 1.5.0 requires symfony/framework-bundle ^2.7 || ^3.0 -> no matching package found.
    - api-platform/api-pack dev-master requires nelmio/cors-bundle ^1.5 -> satisfiable by nelmio/cors-bundle[1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.5.4, 1.5.5, 1.5.6].
    - Installation request for api-platform/api-pack dev-master -> satisfiable by api-platform/api-pack[dev-master].

Potential causes:
 - A typo in the package name
 - The package is not available in a stable-enough version according to your minimum-stability setting
   see <https://getcomposer.org/doc/04-schema.md#minimum-stability> for more details.
 - It's a private package and you forgot to add a custom repository to find it

Read <https://getcomposer.org/doc/articles/troubleshooting.md> for further common problems.

We will not update the dependency to a dev version for no good reason. If you want to use Symfony 5 now, you can install the packages without using the pack.

Ok, @teohhanhui thankyou for clarification

Actually, you could still use the pack, but override some packages specifically, e.g.:
"api-platform/api-pack": "dev-master",
"nelmio/cors-bundle": "2.0.x-dev",


Intellisense not working for auto-import components

Hi! I'm currently developing a website and I used the Vitesse template as a starting point but I modified it to fit my needs a bit more. At first, everything was working fine, but now I'm not getting Intellisense on my global components that are imported with the unplugin-vue-components inside of my templates for some reason.
I have used this exact template before and the Intellisense works fine, but on this project it just doesn't show intellisense for my auto imported components.
You can view my code at this repo.
As you can see, it is mostly a copy of Vitesse, but I removed some dependencies and added some extra ones like Tailwind and HeadlessUI. I created a basic BaseButton component with some props to test the Intellisense but it says that the component is of type any even if the components.d.ts file has it:

I also noticed that in another similar project using the same setup at the bottom of my VS Code editor I get Tag: PascalCase and intellisense works fine, but on the project I shared previously I get Tag: UNSURE. I don't know if that is relevant.

I already tried:

Reloading VS Code
Reloading Volar extension
Restart Volar Vue server
Enabling Take Over mode
Without Take Over mode

I have both the Volar v0.34.15 and Typescript Vue Plugin v0.34.15 extension installed

I finally found the solution to this problem! It turns out it was happening because of my package manager being pnpm and something related to the way it manages the dependencies.
I solved it by creating a .npmrc file at the root of my project with the following:
shamefully-hoist=true
strict-peer-dependencies=false

Then I deleted the node_modules folder and ran pnpm i again. That did the trick!
Found the solution from this issue in case someone finds themselves on the same issue I had.


Register endpoint with configurable subdomain

I am interested in using acme-dns but I am wondering something. What are reasons for acme-dns to choose the subdomain itself?
I see an opportunity to automate things even more if I could choose the subdomain myself, in advance.

That would allow me to create the CNAME record early on.
The first certificate issuance could therefore be fully automated.

depending on where you host your DNS zone , you can already do that with some tooling
when you request an acme-dns record , that record will be echoed out  ... which you can then parse and further use in your tooling with API calls to your DNS hosting provider and Let's Encrypt or other acme CA
i think having the subdomain be defined manually by human intervention is just asking for trouble

Certificate issuance and subdomain registration are already separate. When and how you perform those steps depends on the ACME client. Is there a particular ACME client you're using?
On the first run, LEGO's acme-dns provider will call /register to get a subdomain and will save the credentials to a file (see ACME_DNS_STORAGE_PATH). Then it prompts you to manually set the CNAME. You could instead call /register yourself (using curl, for example), set up the CNAME, and create that file manually. This causes LEGO to skip the registration process, since you're providing an existing subdomain, and issue a certificate right away. I'm doing this in one of my projects to pre-register subdomains.
acme-dns doesn't need any changes to support this, although your ACME client may. I may be able to point you in the right direction.

having the subdomain be defined manually by human intervention is just asking for trouble

What would those trouble be?

Presumably name collisions and ownership issues. If you're picking a subdomain name without checking if it's already been assigned then someone else may already own it. If you set up the CNAME then someone else can issue certificates for your domain. Even if you try to use an unguessable UUID, an attacker can look at your DNS records to see the dangling CNAME, then try to register the subdomain before you can.
The only way to do this safely is to register the subdomain with acme-dns before you set the CNAME. This way you know that no one else has credentials for the subdomain. Since you need to call /register first, you may as well let acme-dns pick the subdomain name for you. Then it's just a matter of configuring your ACME client.


win: _get_osfhandle crashes when getting the handle for an fd

This is specific to Windows.
It might be more of a libuv issue (see https://github.com/joyent/libuv/issues/1493) but when writing bindings using NAN is there any NAN wrapper that could expose libuv's _get_osfhandle to get the Handle for an fd?
I think the problem for bindings is that the fd is opened by the code compiled as part of Node, but _get_osfhandle can't lookup that fd when called from code compiled as part of a binding.
I think at present there is no way to resolve an fd to a Handle on Windows from a native add-on binding (i.e. any bindings that do fs work can't accept fds on Windows)?

Just to be clear _get_osfhandle is part of the Windows API, but we need a way for bindings to have access to the same _get_osfhandle linked by libuv.

FYI: https://github.com/nodejs/node/issues/6369 & https://github.com/libuv/libuv/pull/1323

Thanks

Closing, https://github.com/libuv/libuv/pull/1323 happened.


python311Packages.tenacity: 8.2.1 -> 8.2.2

Description of changes

Things done

Built on platform(s)

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

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

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

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

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

[ ] Fits CONTRIBUTING.md.

Are nixpkgs commit messages named after a specific Python version (python311Packages) or the more generic one (python3Packages)?

4 packages built:
dbx dbx.dist python3Packages.tenacity python3Packages.tenacity.dist
Result of nixpkgs-review pr 227754 run on x86_64-linux 1

4 packages built:

dbx
dbx.dist (dbx.dist.dist)
python3Packages.tenacity
python3Packages.tenacity.dist (python3Packages.tenacity.dist.dist)

Are nixpkgs commit messages named after a specific Python version (python311Packages) or the more generic one (python3Packages)?

I'm using python311* to avoid issue with the latest Python release as the transition to 3.11 is not as smooth as expected.


Go to working step button breaks if the active step becomes inactive

If you go to a working step directly and go to the next step without closing the pane, the button to go to the original workingstep doesn't work anymore.

Waiting to see if the conversion to Tree Beard might solve this issue. @ #221

GG


Change icons for replay and playback

EPAM AI DIAL chat version
0.22.0
What happened?
New icons

https://www.figma.com/design/lwL5jneveZczAj5RLcLFH2/DIAL-Chat?node-id=11988-26222&t=0ee2bjDMk7uDiVcM-1
Expected result:

Confidential information

[X] I confirm that do not share any confidential information

verified on staging succesfully


Crash on launch; dyld Symbol not found in Swift 5.4 / XCode 12.5

Created a fresh project, linked Contentful and ContentfulPersistence and get a crash immediately on launch.  Only happens when ContentfulPersistence is linked; if I just link the Contentful library, there's no crash.  Did not have any issues on the previous version of XCode
My .xcframeworks were built using Carthage 0.38.0.
dyld: Symbol not found: __ZN5swift34swift50override_conformsToProtocolEPKNS_14TargetMetadataINS_9InProcessEEEPKNS_24TargetProtocolDescriptorIS1_EEPFPKNS_18TargetWitnessTableIS1_EES4_S8_E
  Referenced from: /Users/dodge/Library/Developer/Xcode/DerivedData/CarthageTest-ccdjadqjfvdesbgzwfcwneffqihd/Build/Products/Debug-iphonesimulator/ContentfulPersistence.framework/ContentfulPersistence
  Expected in: /Users/dodge/Library/Developer/Xcode/DerivedData/CarthageTest-ccdjadqjfvdesbgzwfcwneffqihd/Build/Products/Debug-iphonesimulator/Contentful.framework/Contentful
 in /Users/dodge/Library/Developer/Xcode/DerivedData/CarthageTest-ccdjadqjfvdesbgzwfcwneffqihd/Build/Products/Debug-iphonesimulator/ContentfulPersistence.framework/ContentfulPersistence

Fix available here


Trending search section state should be preserved

The trending widget state is recreated everytime the user taps on the search bar, types, and cancels it.
It should be cached.
Most likely solution is adding the widget as an "invisible" tab together with the user and hashtags results tabs.

🤔 the search page and the tabs (trending and explore) are in an indexed stack currently. So only their index is changing making them visible or hidden when a user alternates between search and the tabs.


File path problem

https://github.com/microsoft/vscode/assets/96530884/e00239c3-f20f-4e8e-82a9-2abdfcb6df80
Type: Feature Request
I use HTML language for web design. When I use the a form to create a file path, I use a relative path that starts with ./ + type a few letters and press Enter to select that file, but suddenly one day when I type ./, instead of manually When automatically selecting the file, the cursor will automatically return to the line, I do not install any extension related to the file path. I have inserted a video about the problem I am having. I hope to help. Thank you.
VS Code version: Code 1.78.2 (b3e4e68a0bc097f0ae7907b217c1119af9e03435, 2023-05-10T14:39:26.248Z)
OS version: Windows_NT x64 10.0.22621
Modes:
Sandboxed: Yes

This is fixed in the latest build.
You were in template mode and enter of the code completion didn't work there.


Update dependency subtrees

Create PRs to update trees of dependencies.
For example, if my project depends on A which depends on B which depends on C, if B and A have new versions, then create a PR using the new versions of A and B together.

Grouped updates is definitely something that's on our radar. I think most of this is tracked here and here. They don't explicitly mention subtrees but it seems similar enough to not track separately.


Workspace issue

any way to get only windows from current workspace, actually, it's getting all windows from all workspaces, if I click in a window which is not into the current workspace, it moves for an empty workspace and all windows disappear.
Even so, I would like the behavior of only showing windows from current workspace, can you implement that?

I don't quite understand your requirements, in fact, this plugin is just a plugin for switching workspaces, how to use it in a workspace? Or do you just want a grid layout?

I don't quite understand your requirements, in fact, this plugin is just a plugin for switching workspaces, how to use it in a workspace? Or do you just want a grid layout?

for example, there is two windows in workspace 1 and 1 window in workspace 7, if I toggle the overview, all 3 windows will be displayed, I would like the overview only showing the two windows from workspace 1 which is the active workspace

https://github.com/DreamMaoMao/hycov/assets/24453/9c235c36-905c-4d71-876e-60ec2ada3e78
workspace 1: two gnome-terminal
workspace 7: hbo max window
the overview is showing all windows, but when I click in the hbo max window while in workspace 1, all windows disappear

This is a strange requirement, because in wm, the Windows of a workspace are already tiled (they don't block each other).

output.mp4
workspace 1: two gnome-terminal workspace 7: hbo max window the overview is showing all windows, but when I click in the hbo max window while in workspace 1, all windows disappear

your video is broken , i can't see anything

output.mp4
workspace 1: two gnome-terminal workspace 7: hbo max window the overview is showing all windows, but when I click in the hbo max window while in workspace 1, all windows disappear

your video is broken , i can't see anything

can you download the video and play it locally?

https://github.com/DreamMaoMao/hycov/assets/24453/0e93971f-54cf-4a7b-8d1a-21f5bf857dd6

Did you used the latest hycov source code ?

what is your hyrpland version , hyprctl version  to show me

could you instead of changing to active source workspace, change to workspace from focused window    ?
that would fix the issue

the same operation here is no problem for me, other people are no problem, this problem just appears in you.

https://github.com/DreamMaoMao/hycov/assets/30348075/1692f2a1-d75e-4466-9c7f-3d131e59adce

Do you use multi monitor setup? I am using two monitors

yes i had test it on molti monitor. I haven't updated the hyprland version in a long time and I need some time to test the new version

yes i had test it on multi monitor. I haven't updated the hyprland version in a long time and I need some time to test the new version

oh, so this is it, hyprland changed something that broke your plugin

I have tested it and it does not work under the latest hyprland source code..

fixed by commenting
    //change all client workspace to active worksapce
     //if (pWindowOriWorkspace->m_iID != pActiveWorkspace->m_iID || pWindowOriWorkspace->m_szName != pActiveWorkspace->m_szName)
    //{
     //   pNode->workspaceID = pWindow->m_iWorkspaceID = pActiveWorkspace->m_iID;
    //    pNode->workspaceName = pActiveWorkspace->m_szName;
    //}

So now it has the behavior I want for, only show windows from active workspace, also, g_pCompositor->setWindowFullscreen(n.pWindow, true, FULLSCREEN_MAXIMIZED );    maximize the focused window
thank you

THe functional options have been added


Add option for domain specific target_domain

This should implement the requested feature in https://github.com/tiredofit/docker-traefik-cloudflare-companion/issues/28
And also will solve the problem mentioned in https://github.com/tiredofit/docker-traefik-cloudflare-companion/issues/7#issuecomment-695751017. So it won't attempt to create a cname for the main domain.

Thanks for this. Looking at this though, will it break the ability to have people simply rely on "TARGET_DOMAIN" ?
Perhaps you can work something in so that if there is no TARGET_DOMAIN(x) that it defaults to the main defined TARGET_DOMAIN

Thanks for this. Looking at this though, will it break the ability to have people simply rely on "TARGET_DOMAIN" ?
Perhaps you can work something in so that if there is no TARGET_DOMAIN(x) that it defaults to the main defined TARGET_DOMAIN
The line below should already handle that case.
'target_domain': os.environ.get("{}_TARGET_DOMAIN".format(k), target_domain),

Great. I will test in the next day

Tried to test it with the existing container, and I have a variable population check looking for TARGET_DOMAIN which will need to be removed, or at least check to see existence of a TARGET_DOMAIN*. You can test this by commenting out line 8 in installl/etc/cont-init.d/10-cloudflare-companion
However, when I test this PR on my system, it still throws an error via the Python script with: ERROR: 'TARGET_DOMAIN' not defined and exiting.
My test involved simply stopping to use TARGET_DOMAIN1 instead of TARGET_DOMAIN.

Tried to test it with the existing container, and I have a variable population check looking for TARGET_DOMAIN which will need to be removed, or at least check to see existence of a TARGET_DOMAIN*. You can test this by commenting out line 8 in installl/etc/cont-init.d/10-cloudflare-companion
However, when I test this PR on my system, it still throws an error via the Python script with: ERROR: 'TARGET_DOMAIN' not defined and exiting.
My test involved simply stopping to use TARGET_DOMAIN1 instead of TARGET_DOMAIN.

The syntax I added that it check for are DOMAIN1_TARGET_DOMAIN, DOMAIN2_TARGET_DOMAIN and so on.
I still expected the user to supply a default/fallback target_domain in the TARGET_DOMAIN variable.  Cause you might not want to define a specific target_domain for each of your domains maybe just a few and have the other reuse the default one.
Even though it would look better to rename it to DEFAULT_TARGET_DOMAIN instead. But that would be a breaking change for existing users. While I opted to keep it as TARGET_DOMAIN to allow current user to keep their config working.

Either you can solve it with the cli.
Or I will fix it on my side in about 30 minutes

I fixed the conflict:)


can't build on linux

I've tried to build forthbyte on linux mint 21.3 (using gcc 11.4.0)
I've got those errors but it continued anyway
[ 22%] Building C object SDL2/CMakeFiles/SDL2-static.dir/src/events/SDL_events.c.o
/temp/github/forth/forthbyte/jtk/jtk.tests/image_tests.cpp: In function ‘jtk::image<unsigned int> jtk::{anonymous}::census_transform_avx(const jtk::image<unsigned char>&)’:
/temp/github/forth/forthbyte/jtk/jtk.tests/image_tests.cpp:58:51: warning: AVX vector return without AVX enabled changes the ABI [-Wpsabi]
   58 |         __m256i descriptor = _mm256_setzero_si256();
      |                                                   ^
In file included from /usr/lib/gcc/x86_64-linux-gnu/11/include/immintrin.h:43,
                 from /temp/github/forth/forthbyte/jtk/jtk.tests/../jtk/image.h:6,
                 from /temp/github/forth/forthbyte/jtk/jtk.tests/image_tests.cpp:5:
/usr/lib/gcc/x86_64-linux-gnu/11/include/avxintrin.h:1242:1: error: inlining failed in call to ‘always_inline’ ‘__m256i _mm256_setzero_si256()’: target specific option mismatch

then it stopped:
[ 82%] Building C object SDL2/CMakeFiles/SDL2-static.dir/src/sensor/dummy/SDL_dummysensor.c.o
[ 82%] Linking C static library ../lib/libSDL2.a
[ 82%] Built target SDL2-static
make: *** [Makefile:156 : all] Erreur 2

this line is calling 	$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all

Hi,
I don't have easy access to Linux at the moment, but you might try the following.
When running CMake, make sure the variable JTK_NO_SIMD is checked on. This should avoid the AVX error you get.

I can't find this variable in the cmake files. I've added
jtk_NO_SIMD:BOOL=ON into the cmakecache.txt
I've also added
set(JTK_NO_SIMD ON)
and
set_property(GLOBAL PROPERTY JTK_NO_SIMD ON)
into jtk/CMakeLists.txt but it is the same.
I also had to disable wayland in the SDL2/cmakelists.txt
set_option(VIDEO_WAYLAND       "Use Wayland video driver" ${UNIX_SYS} OFF)
dep_option(WAYLAND_SHARED      "Dynamically load Wayland support" OFF "VIDEO_WAYLAND" OFF)
probably my gcc is too recent or there are other incompatibilities

I've updated the libraries (SDL2, SDL2_ttf, freetype, jtk) to some later version. Everything compiles fine on my macOS system at the moment, so it might also work on Linux now.
The variable JTK_NO_SIMD should also be available now.

thank you for your effort.
I've added
set(JTK_NO_SIMD ON)
into the jkt/CMakeLists.txt but I still get errors during compilation
[ 19%] Building C object freetype/CMakeFiles/freetype.dir/src/pcf/pcf.c.o
In file included from /temp/github/forth/forthbyte/jtk/jtk.static.tests/static_tests.cpp:42:
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:478:86: error: ‘string_type’ does not name a type
  478 |     JTKWINDOWDEF void _create_window_with_message_loop(WindowHandle user_data, const string_type& title, int x, int y, int w, int h)
      |                                                                                ^~~~~~~~~~~
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h: In function ‘void jtk::{anonymous}::_create_window_with_message_loop(jtk::WindowHandle, const int&, int, int, int, int)’:
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:491:60: error: request for member ‘c_str’ in ‘title’, which is of non-class type ‘const int’
  491 |       XStoreName(user_data->display, user_data->win, title.c_str());
      |                                                            ^~~~~
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h: At global scope:
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:604:101: error: ‘string_type’ does not name a type
  604 |     JTKWINDOWDEF std::unique_ptr<std::thread> _create_threaded_window(WindowHandle user_data, const string_type& title, int x, int y, int w, int h)
      |                                                                                ^~~~~~~~~~~
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:641:49: error: ‘string_type’ does not name a type
  641 |   JTKWINDOWDEF WindowHandle create_window(const string_type& title, int x, int y, int w, int h)
      |                                                 ^~~~~~~~~~~
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:675:49: error: ‘string_type’ does not name a type
  675 |   JTKWINDOWDEF WindowHandle create_window(const string_type& title, int w, int h)
      |                                                 ^~~~~~~~~~~
[ 19%] Building C object freetype/CMakeFiles/freetype.dir/src/pfr/pfr.c.o
[ 19%] Building C object freetype/CMakeFiles/freetype.dir/src/psaux/psaux.c.o
[ 19%] Building C object freetype/CMakeFiles/freetype.dir/src/pshinter/pshinter.c.o
[ 19%] Building C object freetype/CMakeFiles/freetype.dir/src/psnames/psnames.c.o
[ 20%] Building C object freetype/CMakeFiles/freetype.dir/src/raster/raster.c.o
[ 20%] Building C object freetype/CMakeFiles/freetype.dir/src/sfnt/sfnt.c.o
[ 20%] Building C object freetype/CMakeFiles/freetype.dir/src/smooth/smooth.c.o
[ 20%] Building C object freetype/CMakeFiles/freetype.dir/src/truetype/truetype.c.o
In file included from /temp/github/forth/forthbyte/jtk/jtk.static.tests/static_tests_2.cpp:38:
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/qbvh.h:118:67: warning: friend declaration ‘bool jtk::operator==(const jtk::vector_t<T, allocator>&, const jtk::vector_t<T, allocator>&)’ declares a non-template function [-Wnon-template-friend]
  118 |       friend bool operator== (const vector_t& a, const vector_t& b);
      |                                                                   ^
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/qbvh.h:118:67: note: (if this is not what you intended, make sure the function template has already been declared and add ‘<>’ after the function name here)
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/qbvh.h:119:67: warning: friend declaration ‘bool jtk::operator!=(const jtk::vector_t<T, allocator>&, const jtk::vector_t<T, allocator>&)’ declares a non-template function [-Wnon-template-friend]
  119 |       friend bool operator!= (const vector_t& a, const vector_t& b);
      |                                                                   ^
[ 20%] Building C object freetype/CMakeFiles/freetype.dir/src/type1/type1.c.o
In file included from /temp/github/forth/forthbyte/jtk/jtk.static.tests/static_tests_2.cpp:42:
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:50:11: error: ‘string_type’ does not name a type
   50 |   typedef string_type string_type;
      |           ^~~~~~~~~~~
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:53:49: error: ‘string_type’ does not name a type
   53 |   JTKWINDOWDEF WindowHandle create_window(const string_type& title, int w, int h);
      |                                                 ^~~~~~~~~~~
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:54:49: error: ‘string_type’ does not name a type
   54 |   JTKWINDOWDEF WindowHandle create_window(const string_type& title, int x, int y, int w, int h);
      |                                                 ^~~~~~~~~~~
In file included from /temp/github/forth/forthbyte/jtk/jtk.static.tests/static_tests_2.cpp:42:
/temp/github/forth/forthbyte/jtk/jtk.static.tests/../jtk/window.h:478:86: error: ‘string_type’ does not name a type
  478 |     JTKWINDOWDEF void _create_window_with_message_loop(WindowHandle user_data, const string_type& title, int x, int y, int w, int h)
      |

I've also tried (don't know if it's similar):
cmake -D JTK_NO_SIMD=ON ..
it seems to crash duting the jtk.tests:
[ 91%] Building C object SDL2/CMakeFiles/SDL2_test.dir/src/test/SDL_test_random.c.o
In file included from /temp/github/forth/forthbyte/jtk/jtk.tests/qbvh_tests.cpp:4:
/temp/github/forth/forthbyte/jtk/jtk.tests/../jtk/qbvh.h:118:67: warning: friend declaration ‘bool jtk::operator==(const jtk::vector_t<T, allocator>&, const jtk::vector_t<T, allocator>&)’ declares a non-template function [-Wnon-template-friend]
  118 |       friend bool operator== (const vector_t& a, const vector_t& b);
      |                                                                   ^
/temp/github/forth/forthbyte/jtk/jtk.tests/../jtk/qbvh.h:118:67: note: (if this is not what you intended, make sure the function template has already been declared and add ‘<>’ after the function name here)
/temp/github/forth/forthbyte/jtk/jtk.tests/../jtk/qbvh.h:119:67: warning: friend declaration ‘bool jtk::operator!=(const jtk::vector_t<T, allocator>&, const jtk::vector_t<T, allocator>&)’ declares a non-template function [-Wnon-template-friend]
  119 |       friend bool operator!= (const vector_t& a, const vector_t& b);
      |                                                                   ^
[ 92%] Linking C static library ../lib/libSDL2_test.a
[ 92%] Building CXX object jtk/jtk.tests/CMakeFiles/jtk.tests.dir/rand_tests.cpp.o
[ 92%] Built target SDL2_test
[ 92%] Building CXX object jtk/jtk.tests/CMakeFiles/jtk.tests.dir/test_assert.cpp.o
[ 92%] Building CXX object jtk/jtk.tests/CMakeFiles/jtk.tests.dir/test.cpp.o
[ 92%] Building CXX object jtk/jtk.tests/CMakeFiles/jtk.tests.dir/vec_tests.cpp.o
[ 92%] Linking CXX executable ../bin/jtk.tests
[ 92%] Built target jtk.tests
make: *** [Makefile:156 : all] Erreur 2

Hi, I managed to compile it on Linux, using Ubuntu 22.04.3
(I also fixed some code, so make sure to update any code you have already to the latest version with
git submodule update --init)
The following commands where used to prepare building on Ubuntu (this step can be skipped if you have already installed all the build tools of course, but I started from a clean Linux install):
sudo snap install cmake --classic
sudo apt install build-essential
Then, in order to use cmake, I created a build folder and a source code folder:
~/_Dev/forthbyte/build   -> here cmake will create the files for building
~/_Dev/forthbyte/forthbyte   -> here is the cloned folder of git, containing the outer CMakeLists.txt file
From inside the build folder, I run the command "ccmake ../forthbyte", so
~/_Dev/forthbyte/build$  ccmake ../forthbyte/
There should be a CMakeLists.txt file in the ../forthbyte/ folder (with respect to ~/_Dev/forthbyte/build), and the gui of cmake should open.
In the ncurses gui of cmake, you have to press 'c' to start configuring.
Once the configuring has done its thing, look for JTK_NO_SIMD among the variables and put it to "OFF".
I also pressed 't' to toggle to advanced mode, and added
-fpic
to the CMAKE_CXX_FLAGS variable.

Exit cmake gui, and go to ~/_Dev/forthbyte/build.
Here you can now run "make".
There are still some warnings present in jtk, but I didn't get any build errors anymore.
I hope this works.
Greets,
Jan

thanks again for the tutorial.
I've processed from a fresh new git clone and used your recommended paths.
I'm not using Ubuntu 22.04.3 but Mint should be quite similar (I don't have wayland so I've disabled it).
I didn't know ccmake, it's quite convenient. During the configuration, I got this error:
Could NOT find BZip2 (missing: BZIP2_LIBRARIES BZIP2_INCLUDE_DIR)
bzip2 is indeed installed and also libbz2-1.0
I've tried with JTK_NO_SIMD OFF (like in the latest tutorial, but since it wasn't better and you previously said it had to be ON (to disable SIMD  which is for ARM architecture if I understand well) and this time I got no errors, only a few warnings.
we're getting closer, but the linker still has some problems:
[ 97%] Building C object pdcurses/CMakeFiles/pdcurses.dir/sdl2/pdcutil.c.o
[ 98%] Linking C shared library ../lib/libpdcurses.so
/usr/bin/ld: ../lib/libfreetype.a(truetype.c.o): warning: relocation against `TT_RunIns' in read-only section `.text'
/usr/bin/ld: ../lib/libfreetype.a(truetype.c.o): relocation R_X86_64_PC32 against symbol `TT_RunIns' can not be used when making a shared object; recompiled with -fPIC
/usr/bin/ld : final link editing failed : bad value
collect2: error: ld returned 1 exit status
make[2]: *** [pdcurses/CMakeFiles/pdcurses.dir/build.make:841 : lib/libpdcurses.so] Erreur 1
make[1]: *** [CMakeFiles/Makefile2:713 : pdcurses/CMakeFiles/pdcurses.dir/all] Erreur 2
make: *** [Makefile:156 : all] Erreur 2

Hi, yes, sorry, I actually meant JTK_NO_SIMD ON, so that you don't use SIMD instructions.
The last error seems related to this -fpic change that is added to the CMAKE_CXX_FLAGS variable. Maybe it should be removed again on your system, or written as -fPIC because of capital sensitivity.

I had to manually copy the file forthbyte/pdcurses/libpdcurses.so into build/lib/ (it was missing, I don't know why).
After that, I could build forthbyte!
The examples are working and I managed to get sound, so I'm happy now, thank you!

Great that it works now.
Enjoy!


Make processes group aware for supervisorctl commands

Currently processes will be run using their name, however when they are in a group it should be group_name:process_name

Sorted with #109

#109 only works for programs with numprocs > 1. If you create a group and a process with numprocs=1 in this group this module will try to start the process with process_name only.


I can't create auction

Please make sure your issue complies with these guidelines:

[ ] Server Software must be the official PMMP w/o vanilla patching plugins (i.e. TeaSpoon)

[ ] Issue must have not been reported previously

[ ] Make sure you are on the latest version of PMMP & PiggyAuctions

[ ] Have a detailed title (i.e "Auctioned items remain in inventory")

Issue Description

Expected result: Creating Auction
Actual result: Nothing happened

Steps to Reproduce the Issue
1./ah
2.Click [Manage Auctions]
3.Click [Create Auction] , while holding an item.
4.Clicking [Create Auction] doesn't work.
Not showing new page, It just doesn't change.
No crashdumps created.
OS and Versions

PocketMine-MP: 3.11.6 latest
PiggyAuctions: latest
PHP:
Server OS:

Extra Information

Use build 19 here: https://poggit.pmmp.io/ci/DaPigGuy/PiggyAuctions/~

Use build 19 here: https://poggit.pmmp.io/ci/DaPigGuy/PiggyAuctions/~

I already used that version.


App not loading on android

App stops at loading screen with the chat bubble and muxalble - nothing happens.
I have tried reinstalling app, restarting app and phone etc.

Are you able to load google.com if you use Chrome?

Yes, works like a charm. I have internet. Is there any way to get a debug log on android?

Yes, works like a charm. I have internet. Is there any way to get a debug log on android?

Seems like muxfd might be able to help more here https://discord.com/channels/823598483255722056/846232108930564126/1268317259680583760 to get you a solution

Yes, works like a charm. I have internet. Is there any way to get a debug log on android?

Seems like muxfd might be able to help more here https://discord.com/channels/823598483255722056/846232108930564126/1268317259680583760 to get you a solution

I can't join channel, maybe I need server invite?

I can't join channel, maybe I need server invite?

Sure https://discord.gg/UKHJMQs74u doesn't appear that this is an isolated issue as I mixed you up with another user having another similar issue

Have same problem here and have shared it on Discord  and have 2 friends with same problem :(

Now there is even another having same problems on two phones - posted on discord.. please help!


Flippers occasionally clip through ball

Sometimes (often when the ball has a bit of momentum) the flippers will simply clip through the ball instead of hitting it.
I snagged a recording of it happening once.
Platform: Chrome OS version 101

I saw this too, twice, on mobile.

@Skylled thanks for the issue. I would appreciate it if you playtest the branch in #483 and see if you:

Still see this behaviour
Have performance impacts

Built your branch and tried it on my local device. After playing for about an hour, I didn't notice any instances of clipping.
Jury's still out on the performance hit. With a single ball in play, it seems to be the same, but when I managed to get about 4 in play, CPU usage doubled and game speed slowed down. Still trying to recreate that slowdown.

@Skylled thanks for looking into it. I didn't experience any performance hit on my machine (MacBook Pro M1) with over 30 balls.
If you're on debug mode you can tap the board to spawn balls. Be careful spamming since if your user input is done whilst the world is locked (processing) you'll get thrown an assertion error due to the world being locked (this is a known issue in FlameForge2D).

I don't have anything handy that's lower-powered than an Intel i5, but the performance issue noted seems to have been a one off. I enabled the debug table in release mode (to ensure all relevant performance boosts were enabled) and only noticed a slowdown with a number of pinballs not likely to be reached in normal play.
Looks great and plays well. Thanks for fixing this. :)

@Skylled sinxe the fix PR has been merged, do you think this issue can be closed since it's resolved?
I don't know when the next deployment will be done but hopefully we see it live sometime soon.


Abandoning a transaction causes a desktop notification for sending/receiving it

When a transaction is abandoned in the GUI, a desktop notification pops up as if it was just created, saying either we just sent it, or we just received it.
Moved from bitcoin/bitcoin#8659.

What this necromancy?


npm run bundle failed

hi,
i have completely run success in developer mode, it's all fine.
but when i bundle my project, i got a main.jsbundle file. but when i run this file, i got a error:
Unhanded JS Exception: Requiring unknown module "Webpack/index.ios.js"
Webpack is my project name.
i check the main.jsbundle, i fund this code:
require("InitializeJavaScriptAppEngine"),require("Webpack/index.ios.js");
how can i resolve error?

ran into a similar problem, found
require("InitializeJavaScriptAppEngine"),require("react-native-webpack-server/_entry/index.ios.js");

in the main.jsbundle
I monkey patched it by removing the require statement with
sed -i '' -e 's/,require(\"react-native-webpack-server\/_entry\/index.ios.js\")//g' ios/main.jsbundle

Yet, this is definitely not an appropriate fix - I am also curious on how to fix the actual issue.

What version of React Native? Can you also please paste your webpack.config.js?

This is stale and should be closed.


3.4 Toast Can not show center,need center the screen

Description
3.4.0 Toast Can not show center,need center the screen
CodeSandbox/Snack link
none
Steps to reproduce

Go to '...'
Click on '...'
Scroll down to '...'
See error

NativeBase Version
3.4.22
Platform

[ ] Android
[ ] CRA
[ ] Expo
[ ] iOS
[ ] Next

Other Platform
No response
Additional Information
3.4.0 Toast Can not show center,need center the screen

Hey, Thanks for reporting the issue. We'll look into it.

Hey here is the code, you can try this if you want to Toast in the center
import React from "react";
import { Button, useToast, Center, NativeBaseProvider } from "native-base";
import { Dimensions } from 'react-native'
const Example = () => {
  const toast = useToast();
  const windowHeight = Dimensions.get('window').height;

  return
      <Button onPress={() => toast.show({
      description: "Hello world",
      _android: {style: {
marginVertical: windowHeight/2

}}, _ios: {
style: {
marginVertical: windowHeight/2
}
}, _web:{
style: {
marginVertical: "50vh"
}
}

    })}>
        Show Toast
      </Button>
    ;
};

    export default () => {
        return (
          <NativeBaseProvider>

                <Example />

          </NativeBaseProvider>
        );
    };
    ```


Webpack build warning

Hi
I get the below warning from webpack when importing a module from electron-remote
WARNING in ./~/electron-remote/lib/renderer-require.js 23:19-46 Critical dependency: the request of a dependency is an expression
And when the app loads, I get an error from the remote module of electron
file:///C:/DEVEL/node_modules/electron/dist/resources/electron.asar/renderer/api/remote.js
Uncaught Error: path must be a string
AssertionError: path must be a string
at Module.require (module.js:497:3)
Any ideas?

Same issue here on a MacOS build... Will try to investigate this further.

I'm also having this problem, has any progress been made on figuring out what's happening?

Was anybody able to get electron-remote working with Webpack? My project is based on electron-react-boilerplate, which uses Webpack to package code for the main and renderer processes.
I ran into an issue where I couldn't correctly provide the path to requireTaskPool. the README says requireTaskPool(require.resolve('./my-cool-module'));, and within the code another require.resolve is done here.
More details of what I ran into here: https://github.com/chentsulin/electron-react-boilerplate/issues/1587 Any comments on how these paths work would be appreciated.

@aguynamedben Having the same exact problem... did you ever come up with a solution?

@jfrux No, but I would very much like to. Some notes on how I've tried to wrap my head around with this. I went so far as to manually spin up an additional "backend" process manually, which was a pain, then just saying "well I'll just keep doing this stuff in the renderer a little bit longer".
WARNING: This is all speculation about the potential cause of the problem... it might be wrong
Webpack replacing of requires() happens at build time, require() in electron-remote seems to happen at run time. I think the issue is Webpack's (or Electron's) require() is overwriting Node's require() at build time. Then at run time, it all goes wrong.
I want to try renaming require to nodeRequire like this mentions.
<head>
  <script>
  window.nodeRequire = require;
  delete window.require;
  delete window.exports;
  delete window.module;
  </script>
  <script type="text/javascript" src="jquery.js"></script>
</head>

Maybe Electron's require is clobbering Node.js' require(), and electron-remote expects Node.js' require.
This line require.resolve()'s the module path you pass, but the README also notes you can require.resolve() yourself before passing the string to electron-remote. I guess it's no harm to double require.resolve() something.
This line also seems to do some tricks with require.
If none of that works, I need to learn more about what in God's name Webpack is doing to require(). It seems like if it's just Electron's require clashing, it might be simple to resolve. But I think it might be build-time Webpack processing the require.resolve(), generating some sort of integer, then at run-time it all goes wrong.
If none of that works, I'll probably end up trying to get rid of Webpack in my project. I've noticed that if you un-asar Slack (yarn add --global asar, asar extract /Applications/Slack.app/Contents/Resources/app.asar /tmp/slack-unasar) and inspect the code they ship, they simply don't use Webpack. I think Node 10 (i.e. Electron 3) support proper import statements, and there's probably a way to just use Babel + Node 10 to have access to modern ES6 without all the Webpack stuff. The downside to this is your startup time might be a little bit slower because you're requiring at run time instead of at build time like Webpack does, but the impact of that slowdown can be addressed with electron-link, and for my application I'd happily accept a slower startup time for dev speed and simplicity.
 I'm almost certain some of my concepts of what is going on here are wrong. Let me know if there are things you can rule out or teach me about. 🙏
I'm sure it's part of the magic, but people need to leave require() alone! 😠

More context: at some point I made this change to sort-of get things working https://github.com/electron-userland/electron-remote/pull/42/files
Also, because I eventually bailed to just keep using the renderer process for some semi-intensive work, I ended up finding the async library's queue data structure helpful in ensuring I don't do too much work simultaneously in the renderer. When my app launches, I have a timer.js file that uses setInterval to occasionally tee up some work. To avoid a state of high activity, the timer.js stuff adds to a queue with concurrency of 1. That way I can make sure only 1 crazy thing is happening at a time. Not the answer you're looking for, I know, but a sensible workaround.

Has anyone found a solution to this?


[Helm] Add ServiceMonitor to the helm chart

Description
Adds ServiceMonitor to the helm chart, so our software can be monitored by different monitoring stacks that support this CRD, which is just about an industry standard now.
We are going to use it in our infrastructure as well.
Type of change
Please mark the relevant option(s):

[x] New feature, functionality or library

List of changes

Add a new 'ServiceMonitor' object to the helm chart, which will be disabled by default because not everyone has this CRD installed on their cluster.
Adjusted e2e test workflow so it kicks off on pull requests.

Testing

[ ] make develop_test; if any code changes were made
[ ] make test_e2e on k8s LocalNet; if any code changes were made
[x] e2e-devnet-test passes tests on DevNet; if any code was changed
[ ] Docker Compose LocalNet; if any major functionality was changed or introduced
[x] k8s LocalNet; if any infrastructure or configuration changes were made

Required Checklist

[x] I have performed a self-review of my own code
[ ] I have commented my code, particularly in hard-to-understand areas
[ ] I have added, or updated, godoc format comments on touched members (see: tip.golang.org/doc/comment)
[ ] I have tested my changes using the available tooling
[ ] I have updated the corresponding CHANGELOG

If Applicable Checklist

[ ] I have updated the corresponding README(s); local and/or global
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added, or updated, mermaid.js diagrams in the corresponding README(s)
[ ] I have added, or updated, documentation and mermaid.js diagrams in shared/docs/* if I updated shared/*README(s)

In addition to the changes related to this PR, I had to adjust a GitHub Action as they didn't work as expected.
But now you can actually see the e2e test passed! :)


Project History page

I have started creating a Project History page that includes information about the origin of the game, as told by Chris Schoeneman, as well as milestones throughout the years.  I'm sure the CSS could use some work, but it was enough for now.  I plan to add a few screenshots to show how the game visually changed over the years.

Should the milestones be a collection instead of a dataset? It looks to me like all the dataitems have a summary value that's just markdown, so why not make it a collection instead? I know our downloads_bzflag dataset has two markdown sections, which is why it's not a collection.
Should we add dates (YYYY-MM-DD) to the filenames of these milestones so that they can be sorted in order when we're working on them?


[Tab] - Disabled tab stuck with data-focus-visible="true"

Current behavior
When selected tab goes disabled, it can sometimes get stuck with data-focus-visible="true"
https://github.com/user-attachments/assets/033452bb-c353-4af3-8280-dc2ba09018f4
Steps to reproduce the bug

Open https://stackblitz.com/edit/am32ns-b2vc47?file=dialog-combobox-command-menu%2Findex.tsx
Open the dialog
Click on tab Two
type 4 letters causing it to be disabled.
click on the up arrow, and then on left/right arrows

Expected behavior
There should only be one tab with data-focus-visible="true"
Workaround
No response
Possible solutions
No response

Thanks for reporting. It indeed looks like a bug.
You can work around it by disabling accessibleWhenDisabled only after the selected tab that got disabled loses focus, so the blur event can be triggered (and therefore remove the data-focus-visible attribute):
function Tab(props: Ariakit.TabProps) {
  const tab = Ariakit.useTabContext()!;
  const selectedId = tab.useState("selectedId");
  const defaultId = useId();
  const id = props.id ?? defaultId;
  return <Ariakit.Tab accessibleWhenDisabled={selectedId === id} {...props} />;
}


Need an option to display x axis value on the top of bar chart

I have a horizontal bar chart and I need to display the x axis values which comes on the tooltip along with the bar, is there any option available to get this effect.
Thanks for your help
Please consider the following before submitting an issue:
Guidelines for contributing: https://github.com/chartjs/Chart.js/blob/master/CONTRIBUTING.md
Example of issue on an interactive website such as the following:

http://jsbin.com/
http://jsfiddle.net/
http://codepen.io/pen/
Premade template: http://codepen.io/pen?template=JXVYzq

There is detailed conversation regarding this in #327


Abstract DCAF out of the mailers

I rule and have completed some work on Case Manager that's ready for review!
Removes a couple DCAF specific mentions (domain of email from, SL of emails) in favor of either the fund in particular or DARIA, whichever is more appropriate.
This pull request makes the following changes:

Adds an app constant, FUND_DOMAIN
Changes 'DCAF' to 'DARIA' in mailer subject lines

No view changes.
@tingaloo can you review?
It relates to the following issue #s:

Bumps #999

Codecov Report

Merging #1082 into master will not change coverage.
The diff coverage is 75%.

@@           Coverage Diff           @@
##           master    #1082   +/-   ##
=======================================
  Coverage   96.51%   96.51%
=======================================
  Files          50       50
  Lines        1034     1034
=======================================
  Hits          998      998
  Misses         36       36

Impacted Files
Coverage Δ

app/mailers/application_mailer.rb
0% <0%> (ø)
:arrow_up:

app/mailers/user_mailer.rb
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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

Thanks @tingaloo !


[Feature] Adding keyboard shortcut to directly search

Description
As our resources are getting bigger, I feel the need to include a keyboard shortcut dedicated to start searching instantly. It is a small improvement of life. Tailwind has CTRL+K as the quick way to search the documentation. And they also encourage it by mentioning it in the frontend.
Screenshots
No response
Checklist

[X] I have checked the existing issues
[X] I have read the Contributing Guidelines
[x] I am willing to work on this issue (optional)
[ ] I am a GSSoC'23 contributor

This sounds promising @milan-lakhani! :) What do you think @rupali-codes? @ujjawaltyagii?

Couldn't agree more with this idea !!
I think we should go ahead with this feature.

Couldn't agree more with this idea !! I think we should go ahead with this feature.

Great @ujjawaltyagii! :) @milan-lakhani, I just assigned you! :)

@ujjawaltyagii @rupali-codes @CBID2 What do you guys think of using algolia search? it has a free plan for open source projects

This is what an algolia FAQ says about the plan we get after we get algolia approval.

Standard PAYG plan and to include 200 units for free which translates to 200,000 records and 200,000 search requests (and up to 2,000,000 indexing operations) per month (a $180/month value).

Oh, sounds great

@milan-lakhani any updates?

We're closing this issue as not activity was shown, if you still want to work on this issue, please ping us on our discord server


fix: dead loop in FillUpMissingSlots

Proposed changes
Issue Number: close #xxx
Problem summary
FillUpMissingSlots don't handle some cornel case, sometime we don't need fillup, we should return null
Checklist(Required)

[ ] Does it affect the original behavior
[ ] Has unit tests been added
[ ] Has document been added or modified
[ ] Does it need to update dependencies
[ ] Is this PR support rollback (If NO, please explain WHY)

Further comments
If this is a relatively large or complex change, kick off the discussion at<EMAIL_ADDRESS>by explaining why you chose the solution you did and what alternatives you considered, etc...

run buildall

run buildall

run buildp0

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall

run buildall