Combine child metadata with additional metadata

I'm not sure this is a bug or feature request. I'll use the bug template since it also contains the behavior I'd expect.
Please tell us about your environment:

winston version?

[ ] winston@2
[x] winston@3

node -v outputs: v12.14.0
Operating System? (Windows, macOS, or Linux) Linux
Language? (all | TypeScript X.X | ES6/7 | ES5 | Dart) ES6/7

What is the problem?
There seems to be no way to combine child metadata with additional properties.
In fact, I find the multiple api signatures in which one can log a message to be quite conflicting/confusing.
For example, consider this code:
const winston = require('winston');

const logger = winston.createLogger({
  level: 'info',
  format: winston.format.printf(({ message, prefix}) => `[${prefix}]: ${message}`),
  defaultMeta: { prefix: 'root' },
  transports: [new winston.transports.Console()],
});

logger.info('foo 1', { foo: 'bar' });
logger.log('info','foo 2');
logger.log('info','foo 3', {});
logger.log({ level: 'info', message: 'foo 4' });

const childLogger = logger.child({ prefix: 'child' });
childLogger.info('foo 5', { foo: 'bar' });
childLogger.log('info','foo 6');
childLogger.log('info','foo 7', {});
childLogger.log({ level: 'info', message: 'foo 8' });

All of these are valid, but produce different/unexpected results:
[root]: foo 1
[undefined]: foo 2
[root]: foo 3
[root]: foo 4
[root]: foo 5
[child]: foo 6
[root]: foo 7
[root]: foo 8

What do you expect to happen instead?
I can't really find an api reference, so it's hard to know what is to be expected and what not.
But I would expect that when I create a child logger with metadata, the metadata acts in the way the default metadata on the logger works. Because now, there is no way to add in additional properties in a log call, without losing the metadata passed in to the child logger.
So I would expect that I can still call childLogger.log('info', 'message', { additionalProp: 'foo' }) and still have the prefix=child property in the metadata. And in fact, I would expect this to be the case for any of the example calls to childLogger.

I just ran into this problem too, and I can see what is causing it. In the logger.js file, the child's write method override gets an infoClone with defaultMeta from the parent. I think we need to switch the order of the Object.assign call so that the child overrides the parent as described by the documentation.
Object.assign(
            {},
            defaultRequestMetadata,
            info
          );

should be
Object.assign(
            {},
            info,
            defaultRequestMetadata
          );

I made a PR and ran the unit tests. It wasn't as straightforward as rearranging the Object.assign() calls because there are use cases when you call logger.info('message', { stuff }), and "stuff" can contain defaultMeta overrides. That all gets mixed into the info object. I fixed this by looking at the parent's defaultMeta and checking to see if the values in the info object matched the values in the parent's defaultMeta. If they match, then I assume you didn't override it (why would you override it with the parent's value?), so I take the child's defaultMeta. I am not sure if this is the best approach. I did modify a unit test to produce the issue. My change does fix the behavior.
https://github.com/winstonjs/winston/pull/1875

@aressler38 I took a more radical and seemingly consistent approach in #1879. Reused your test though.

@aressler38 I took a more radical and seemingly consistent approach in #1879. Reused your test though.

Closing as this issue is being consolidated into #2029


Support BAZELISK_VERIFY_SHA256 for multiplatform projects

Bazelisk downloads platform specific version of bazel (windows,linux,etc) and then verifies SHA with value from BAZELISK_VERIFY_SHA256. It does not work if a given project is built on more than one platform.
Possibly bazelisk could search for platform specific SHA, and use those if found:
BAZELISK_VERIFY_SHA256_LINUX_X86_64
BAZELISK_VERIFY_SHA256_WINDOWS_ARM64
If specific variable is not found then it would fallback to BAZELISK_VERIFY_SHA256 as today.

Alternative version that would allow to error out if os-arch for current platform is missing:
BAZELISK_VERIFY_SHA256=linux-x86_64:64b0832fd6c57635b9de3711d51beca9c4bf99c6bb3b663249cdbfdca16fb9f1,windows-x86_64:9fb6f439e2eb646b9bae7bd2c0317165c0b08abc0bba25f6af53180fa1f86997
It creates somewhat long lines so still wonder which version to implement.
For stock bazel though I think verifying signature could be better - https://github.com/bazelbuild/bazelisk/issues/15


bxcan-based CAN interface

This changes the CAN API to use the bxcan crate, a reusable driver for the bxCAN peripherals in many low- to middle-end STM32 MCUs.

Updated the old entry

@therealprof I've updated bxcan to 0.4.0 and rebased onto master, is there anything left to do here?

@therealprof I've updated bxcan to 0.4.0 and rebased onto master, is there anything left to do here?


[REEF-964] Reduce evaluator memory size in unit tests

JIRA:
REEF-964
Pull request:
This closes #

The failure seems unrelated to the change at hand. I will merge.

Thank you!


Read pretrained data from file

Or perhaps teach programme how to read a pre-trained (and well-trained) xml file, such as with OpenCV.

Commit e7295f8d closes the original issue.  However, it does not address the reading of well-trained xml files (i.e., from OpenCV).  Keeping this open for future development.

It's not just me that wants this feature...

This may be helpful

I should also mention this is the data we want to read from.

I think I need to do some reading to answer some questions about the structure of the XML data[1], [2], [3]


[BUG] glitched user interface on soft x

if you deactivate vertical user area on soft x its glitched:

and yes same for downloaded version on my client but also in the web client

Should be moved to https://github.com/DiscordStyles/SoftX


Add support for Virtual disks introduced in Netbox 3.7

New version of Netbox supports several virtual disks per VM

Hi, yes I have seen this feature in the announcement. Would like to support this as well. But I'm using a helm chart for my test environment and currently stuck with 3.5.9 cause the author does not update it. Let's see If I get it to work

great, now having 3.7.1 up and running.
Will look into supporting the new virtual disk components

Hi @smasharov, @patschi, @vacumet,
I just added the support to the latest development branch. Can you please check it out and see if it works for you?
Thank you

Thank you so much, Ricardo!
It seems to work fine in my environment:

It works, but if the disk size is less than 1Gb it creates it with zero size.
Maybe it is worth to set them as the minimal 1Gb in such cases? I think the size should be rounded up all the times.

Hi, great that it works, Valid point regarding the size. Will try to set it to 1 GB and also add the actual size to the description

I just had two thoughts:

I don't like the wording Independent_persistent, it looks a bit off. Maybe Independent-Persistent or so.
It would be nice to have the assigned Storage Policy of the individual disk added to the description.

Do you have an example of independent persistant?

Here:

Just looks a bit off, IMHO.

Ahh, thank you. This comes straight from the vCenter API. I could change it to look a bit nicer. Thanks for the hint.

Hi,
just pushed another commit with the improved description.
I tried to find Storage Policy of the virtual disk but it seems you need an additional connection to the 'VMware Storage Policy Server' to query this information. I'm currently using vcsim for my test environment and this seems not supported.

I see. Okay. I just saw the Virtual Disk object in netbox do also have tags support. It would be a general awesome feature if Storage Policies might be applied to disk objects with the name of the storage policy. That would be great to sort/filter. (e.g. any VMs running on vSAN using RAID-1, etc)
But that's probably opening another can of worms in terms of integration. I can test scripts or whatsoever on my vCenter, if that helps.

Would be great if we could close this issue and open a separate one for the storage policy.


ESP32-CAM send a jpg file in SD card : "SD Storage is not ready."

I actually use the librairy ESP-Mail-Client to program a ESP32-CAM with Arduino IDE. I save a picture in the sd card. After, I want to send this picture in attachment of the mail. I don't understand why I receive an error like "SD Storage is not ready". The mail is sent without the attachment. When I see the logs :
22:43:00.287 -> Saved file to path: /images/2022.07.19-21.42.57.jpg
22:43:01.307 -> preparing smtp
22:43:01.307 -> Connecting to SMTP server...
22:43:01.307 -> > C: ESP Mail Client v2.4.7
22:43:01.307 -> > C: Wait for NTP server time synching
22:43:01.647 -> > C: Connect to SMTP server
22:43:01.647 -> > C: Host > mail..com
22:43:01.647 -> > C: Port > 587
22:43:01.647 -> > C: starting socket
22:43:01.885 -> > C: connecting to Server
22:43:01.953 -> > C: SMTP server connected
22:43:01.953 ->
22:43:01.953 -> SMTP server connected, wait for greeting...
22:43:02.939 -> < S: 220 mail..com ESMTP ready
22:43:02.939 ->
22:43:02.939 -> Sending greeting response...
22:43:02.939 -> > C: Send SMTP command, HELO
22:43:05.965 -> < S: 250-mail.infomaniak.com
22:43:05.965 -> < S: 250-PIPELINING
22:43:05.965 -> < S: 250-SIZE
22:43:05.965 -> < S: 250-ETRN
22:43:05.965 -> < S: 250-ENHANCEDSTATUSCODES
22:43:05.965 -> < S: 250-8BITMIME
22:43:05.965 -> < S: 250-DSN
22:43:05.965 -> < S: 250-AUTH PLAIN LOGIN
22:43:05.965 -> < S: 250 STARTTLS
22:43:05.965 ->
22:43:05.965 -> Send command, STARTTLS
22:43:05.965 -> > C: Send STARTTLS command
22:43:07.971 -> < S: 220 2.0.0 Start TLS
22:43:07.971 -> > C: Perform the SSL handshake
22:43:07.971 -> > C: seeding the random number generator
22:43:08.005 -> > C: setting up the SSL/TLS structure
22:43:08.005 -> ! W: Skipping SSL Verification. INSECURE!
22:43:08.005 -> > C: setting hostname for TLS session
22:43:08.005 -> > C: performing the SSL/TLS handshake
22:43:09.909 -> > C: verifying peer X.509 certificate
22:43:09.909 ->
22:43:09.909 -> Sending greeting response...
22:43:09.909 -> > C: Send SMTP command, HELO
22:43:09.943 -> < S: 250-mail.infomaniak.com
22:43:09.943 -> < S: 250-PIPELINING
22:43:09.943 -> < S: 250-SIZE
22:43:09.977 -> < S: 250-ETRN
22:43:09.977 -> < S: 250-ENHANCEDSTATUSCODES
22:43:09.977 -> < S: 250-8BITMIME
22:43:09.977 -> < S: 250-DSN
22:43:09.977 -> < S: 250 AUTH PLAIN LOGIN
22:43:09.977 ->
22:43:09.977 -> Logging in...
22:43:09.977 -> > C: Send SMTP command, AUTH PLAIN
22:43:09.977 -> > C: @.**
22:43:09.977 -> > C: @.** ***********
22:43:10.045 -> < S: 235 2.0.0 OK
22:43:10.045 ->
22:43:10.045 -> Sending Email...
22:43:10.045 -> > C: Send Email
22:43:10.045 ->
22:43:10.045 -> Sending message header...
22:43:10.045 -> > C: Send message header
22:43:10.113 -> < S: 250 2.1.0 Ok
22:43:10.181 -> < S: 250 2.1.5 Ok
22:43:10.181 ->
22:43:10.181 -> Sending message body...
22:43:10.181 -> > C: Send message body
22:43:10.249 -> < S: 354 End data with .
22:43:10.249 ->
22:43:10.249 -> Appending message...
22:43:10.249 -> > C: apend message
22:43:10.283 ->
22:43:10.283 -> Sending inline data...
22:43:10.283 -> > C: Send inline data
22:43:10.283 ->
22:43:10.283 ->
22:43:10.283 -> > C:
22:43:10.283 -> SD Storage is not ready.
22:43:10.283 -> > E: SD Storage is not ready.
22:43:10.283 ->
22:43:10.283 -> Sending attachments...
22:43:10.283 -> > C: Send attachments
22:43:10.283 ->
22:43:10.283 ->
22:43:10.283 -> > C:
22:43:10.384 -> SD Storage is not ready.
22:43:10.384 -> > E: SD Storage is not ready.
22:43:10.384 ->
22:43:10.384 -> Finishing the message sending...
22:43:10.418 -> > C: Finish the message sending
22:43:10.792 -> < S: 250 2.0.0 Ok: queued as 4LnW4X51f0zlqwsJ
22:43:10.792 ->
22:43:10.792 -> Closing the session...
22:43:10.792 -> > C: Terminate the SMTP session
22:43:10.860 -> < S: 221 2.0.0 Bye
22:43:10.860 ->
22:43:10.860 -> Message sent successfully
22:43:10.860 -> > C: Message sent successfully
22:43:10.860 ->
22:43:10.860 -> ----------------
22:43:10.860 -> Message sent success: 1
22:43:10.860 -> Message sent failed: 0
22:43:10.860 -> ----------------
22:43:10.860 ->
22:43:10.860 -> Message No: 1
22:43:10.860 -> Status: success
22:43:10.860 -> Date/Time: Tue Jul 19 21:43:07 2022
22:43:10.860 ->
22:43:10.860 -> Recipient: @.**
22:43:10.860 -> Subject: Motion detection from ESP32cam
22:43:10.860 -> ----------------
The program is the following:
`void sendPhoto(void)
{
Serial.println("preparing smtp");
smtp.debug(1);
smtp.callback(smtpCallback);
ESP_Mail_Session session;
session.server.host_name = SMTP_HOST;
session.server.port = SMTP_PORT;
session.login.email = AUTHOR_EMAIL;
session.login.password = AUTHOR_PASSWORD;
session.time.ntp_server = F("pool.ntp.org,time.nist.gov");
session.time.gmt_offset = 3;
session.time.day_light_offset = 0;
SMTP_Message message;
message.sender.name = F("ESP Mail"); // This witll be used with 'MAIL FROM' command and 'From' header field.
message.sender.email = AUTHOR_EMAIL; // This witll be used with 'From' header field.
message.subject = F("Motion detection from ESP32cam");
message.addRecipient(F("moi"), F("mbd@keemail.me")); // This will be used with RCPT TO command and 'To' header field.
String textMsg = "Motion detected : ESP32cam.";
message.text.content = textMsg;
message.text.charSet = F("us-ascii");
message.text.transfer_encoding = Content_Transfer_Encoding::enc_7bit;
SMTP_Attachment  att; // att[2];
att.file.storage_type = esp_mail_file_storage_type_sd;
att.file.path=photo_2_send;
att.descr.transfer_encoding = Content_Transfer_Encoding::enc_base64;
att.descr.content_encoding = Content_Transfer_Encoding::enc_base64;
message.addInlineImage(att);
message.addAttachment(att);
if (!smtp.connect(&session))
return;
if (!MailClient.sendMail(&smtp, &message))
Serial.println("Error sending Email, " + smtp.errorReason());
}`

You must follow examples and read the comments first.
You can save file to SD or your SD card is ready to use but you must let the library know your filesystem used and its configuration.
You should changes the macro definitions for your filesystem in ESP_Mail_FS.h as in example comment
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/examples/SMTP/Send_Attachment_File/Send_Attachment_File.ino#L16-L18
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/src/ESP_Mail_FS.h#L64-L68
Change the SD pins configuration in /extras/SDHelper.h as in the example comment. Typo in the example comment, the file path should be /extras/SDHelper.h in stead of /addons/SDHelper.h
In case of SD SPI interface
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/src/extras/SDHelper.h#L17-L20
This line initiate the SD configuration in the function SD_Card_Mounting().
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/src/extras/SDHelper.h#L71-L72
Call function SD_Card_Mounting() in your code.
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/examples/SMTP/Send_Attachment_File/Send_Attachment_File.ino#L106-L107

I'm using a SD card with FAT32 format.
If I understand, I have to find the file Arduino\libraries\ESP_Mail_Client\src\ESP_Mail_FS.h and modify it with uncommenting lines 41 to 43 and commenting lines 64 to 68.
For the second file Arduino\libraries\ESP_Mail_Client\src\extras\SDHelper.h, I don't understand what I have to do.
Can you explain me what I have to do exactly?
Thanks
RegardsM. DONAT--
Envoyé avec Tutanota, la boîte aux lettres sécurisée et sans publicité.
20 juil. 2022, 01:31 de @.***:

You must follow examples and read the comments first.
You can save file to SD or your SD card is ready to use but you > must let the library know your filesystem used and its configuration> .
You should changes the macro definitions for your filesystem in ESP_Mail_FS.h as in example comment

https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/examples/SMTP/Send_Attachment_File/Send_Attachment_File.ino#L16-L18

https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/src/ESP_Mail_FS.h#L64-L68
Change the SD pins configuration in /extras/SDHelper.h as in the example comment. Typo in the example comment, the file path should be /extras/SDHelper.h in stead of /addons/SDHelper.h
In case of SD SPI interface
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/src/extras/SDHelper.h#L17-L20
This line initiate the SD configuration in the function > SD_Card_Mounting()> .
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/src/extras/SDHelper.h#L71-L72
Call function > SD_Card_Mounting()>  in your code.
https://github.com/mobizt/ESP-Mail-Client/blob/e669ca2ecdad988071e27aca55a84433d3f4fc1d/examples/SMTP/Send_Attachment_File/Send_Attachment_File.ino#L106-L107
—
Reply to this email directly, > view it on GitHub https://github.com/mobizt/ESP-Mail-Client/issues/191#issuecomment-1189648292> , or > unsubscribe https://github.com/notifications/unsubscribe-auth/ARUTAKGR3WQVWYCKF3VBVT3VU43FZANCNFSM54BJZTRA> .
You are receiving this because you authored the thread.> Message ID: > <mobizt/ESP-Mail-Client/issues/191/1189648292> @> github> .> com>

@m3hm3tb4yr4m
Right, if your card type is MMC
In file SDHelper.h, the second argument of function MailClient.sdMMCBegin using at line number 96 was set for 4-bit mode
https://github.com/mobizt/ESP-Mail-Client/blob/5c555d26838055dbabb9c72a8545f87ccf1fe483/src/extras/SDHelper.h#L96
If your MMC card interface is 4-bit, you don't have to do anything with that SDHelper.h file.
Unless you connect MMC card in 1-bit mode, the line number 96 should change to
if (!MailClient.sdMMCBegin("/sdcard", true, true))
The function sdMMCBegin is to let the library knows the type of your SD filesystem which the function arguments are the same as SD_MMC.begin in the SD_MMC.h core library.
For SPI, 1-bit mode and 4-bit mode interfaces, please see this.
This the example to test your MMC card.
If you card type is SD, I recommend the SdFat instead because it offers the fastest transfer speed when compared to the core SD.h library.

@m3hm3tb4yr4m
You should call SD_Card_Mounting(); in your code as in the examples.


Update from 6.5 to 7.0 causes exceptions

Please check all of the platforms you are having the issue on (if platform is not listed, it is not supported)

[] iOS
[x] Android
[] UWP
[x] NET Standard 2.0

Version of OS(s) listed above with issue (if android - please include version of Xamarin.Android.Support.* you are using)
Version of ACR UserDialogs Library
7.0.1
Expected Behaviour
Should work
Actual Behavior
After updating Acr.UserDialogs to the latest version, I always get this exception when I try to build Android:
The "GenerateJavaStubs" task failed unexpectedly.
System.IO.FileNotFoundException: Could not load assembly 'Acr.UserDialogs.Interface, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken='. Perhaps it doesn't exist in the Mono for Android profile?
File name: 'Acr.UserDialogs.Interface.dll'
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference, ReaderParameters parameters)
   at Java.Interop.Tools.Cecil.DirectoryAssemblyResolver.Resolve(AssemblyNameReference reference)
   at Mono.Cecil.MetadataResolver.Resolve(TypeReference type)
   at Mono.Cecil.TypeReference.Resolve()
   at Java.Interop.Tools.Cecil.TypeDefinitionRocks.<GetTypeAndBaseTypes>d__1.MoveNext()
   at System.Linq.Enumerable.Any[TSource](IEnumerable`1 source, Func`2 predicate)
   at Java.Interop.Tools.Cecil.TypeDefinitionRocks.IsSubclassOf(TypeDefinition type, String typeName)
   at Java.Interop.Tools.JavaCallableWrappers.JavaTypeScanner.AddJavaTypes(List`1 javaTypes, TypeDefinition type)
   at Java.Interop.Tools.JavaCallableWrappers.JavaTypeScanner.GetJavaTypes(IEnumerable`1 assemblies, IAssemblyResolver resolver)
   at Xamarin.Android.Tasks.GenerateJavaStubs.Run(DirectoryAssemblyResolver res)
   at Xamarin.Android.Tasks.GenerateJavaStubs.Execute()
   at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute()
   at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__26.MoveNext()	MHWorldCompanion.Droid

Code of Conduct

No Library Update Requests - THIS ESPECIALLY MEANS ANDROID SUPPORT LIBRARIES
No Timeline Requests
Please read through the documentation and FAQs
Please be respectful of my time. I put a lot of effort into my libraries.  I try to support the issue requests within a day.  I'm not psychic, so please take the time to fill out the above form as complete as possible

v7 only has 1 dll, prior to that, there were 2 - Acr.UserDialogs.dll and Acr.UserDialogs.Interface.dll.  It isn't anything wrong with the nuget package itself.  It is something wrong with nuget or android keeping the old artifact that should have been uninstalled.  Just find all traces of Acr.UserDialogs.Interface and remove it.  You may need to clear bin/obj

Seems like a manual deletion of the obj folder was the solution... strange normally that is exactly what a rebuilt should do... thanks for the quick reply & help!


Bug in REaLTabFormer.sample() when relational model generates no data

Hi @avsolatorio!
I have a super urgent bug ticket that I need to solve asap and I have solve it here. I wonder if you could just push it and create a new PyPI release.
It is related to the library in the def _processes_sample() method.
Bug:
I have trained a relational model and some times the data are not so many to learn the relationship and the sampling of the relational model generates an empty synth_sample and as a consequence the following line if synth_sample[col].iloc[0].startswith(col): fails with an exception because it assumes that at least one line at iloc 0 will always exist: https://github.com/worldbank/REaLTabFormer/blob/main/src/realtabformer/rtf_sampler.py#L449
The function def _processes_sample() is used also when sampling a tabular model and probably this can happen also in this tabular model sampling. Regardless the case (tabular/relational) 2-3 lines below the bug line (L449) the function already (and wisely) has some logic to check if the sampled data synth_df is empty and if that's the case it throws the SampleEmptyError exception.
Resolution:
So, I think we can add also a similar check above the line https://github.com/worldbank/REaLTabFormer/blob/main/src/realtabformer/rtf_sampler.py#L443 checking synth_sample dataframe instead, something like:
if synth_sample.empty:
    # Handle this exception in the sampling function.
    raise SampleEmptyError(in_size=len(sample_outputs))

Then in my application I can catch the specific exception:
from realtabformer.rtf_exceptions import SampleEmptyError

try:
   // run some REalTabFormer sampling code
except SampleEmptyError as e:
  // handle the specific exception

What do you think?
Can you do the fix and build a new PyPI package?
Thanks!

Hello @efstathios-chatzikyriakidis, thank you for sharing this issue. I have made the changes and also published a release with that patch. Please try installing the new version.
In the future, I recommend that you submit a pull request. This is entirely your solution, and I want people like you who find issues and implement solutions to be part of the official contributors! 🤗

Thank you @avsolatorio!
I appreciate your effort and the work you did for resolving this. Yes, in the future for any issue if I have a resolution I will send a PR.
Regarding the commit changes I see that also FrozenSeq2SeqTrainer is replaced with Seq2SeqTrainer. Is this something that could cause any problem or what was the intuition behind it, does it optimize anything?
Thanks!

Regarding the commit changes I see that also FrozenSeq2SeqTrainer is replaced with Seq2SeqTrainer. Is this something that could cause any problem or what was the intuition behind it, does it optimize anything?

No, this should work the same. I needed to implement the FrozenSeq2SeqTrainer before because the Seq2SeqTrainer on the transformers library had a bug. I reported it here: https://github.com/huggingface/transformers/issues/21182.
It was already fixed, so the FrozenSeq2SeqTrainer is no longer needed.


Some issues

Hi @mattapperson just browsing through mooring, there's a few small issues though:

if the middleware passes nothing through or an empty object, the data is not immutable

hooks.before('cook', false, (food, next)=>{
    food.name='A';
    next();
});

var cook = hooks.createHook('cook', food => {
    console.log(food);//outputs: {name:'A'}
});

you can't pass functions as an argument to the function created with createHook

var cook = hooks.createHook('cook', function(food) {
    console.log(food); //outputs: undefined
});
cook(()=>{});

Really curious to see what direction this is going in!

I feel a bit awkward asking this, but since grappling-hook is a keystone product not mine, I think I have to: could you follow the MIT license rules of attribution, since there are parts literally taken from grappling-hook?

@crynders sure thing! I was on the fence as the methods were relatively heavenly modded. So I ended up just calling out the source and giving credit in the readme. Any particular parts you would like credit for?

Also great catches on those 2 issues, I'll take a look at them today! 😊

@creynders Credit added and copyright edited. Sorry this was just something I whipped up so I even forgot the copyright... my bad.

@creynders fixed the data mutability bug, working on the 1 argument being a method bug now

@creynders using the exact code you provided for "you can't pass functions as an argument to the function created with" I could not reproduce the issue.

The issue (per a side convo with @creynders) is:
hooks.before('cook', false, function(food, next) {
    console.log('cook pre', food); //outputs undefined
    next();
});

var cook = hooks.createHook('cook', function(food) {
    console.log('createHook callback', food);
    return food;
});

cook(function(){});

All issues fixed in 1.0.4


Made Major Changes To Weekend Branch...

Its a long ways off. And we will be able to reuse alot of what Ivan had in has, or at least hes concepts on most of hes classes.
To make sure I didn't get mixed up I named all the files CS...
But game is starting to become functional.
By Thursday I suspect It will be at a fully functional state, with just no random data sets.
(With Strong Team Effort, Tomorrow, and Wednesday night)
Let me know if you have a chance to run, the game on this, and if you think i am going in the wrong direction. But this makes the most sense to me.

Note the pull request that's up now is the weekend version before adding these new files

Its looking good! your making some good progress and I hope your finding out that this framework isn't as tricky as you initially thought.
The CS prefix is fine for now if it helps keep things straight.


Fix duplicated query params being sent to next from apigw v1 events

v1 event contain all params in multiValueQueryStringParameters. Atm there is a bug where all params get duplicated in when sent to next.
eg an input path to the api gw: /?step=1 becomes /step=1&step=1 after we reconstruct the query params from the v1 event. The solution in this PR i to just check the multiValueQueryStringParameters object as that one will be populated even in cases where there isn't any multi-values.

Thanks @edvinerikson! Released in v1.3.3


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target_14c5b842-4d74-49ee-9126-e4ee0b142652/pull/1 is merged into live branch.
Auto archive content to https://github.com/OPS-E2E-PPE/docs-archive-test-target_14c5b842-4d74-49ee-9126-e4ee0b142652.git

Docs Build status updates of commit 258cccf:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error]

Cannot sync git repo to specified commit because branch Archive_master_2019-11-04-06-56-12 has been deleted or has been force pushed: fatal: Couldn't find remote ref Archive_master_2019-11-04-06-56-12

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.


Adds a python runtime and updates docs

This pull request introduces documentation improvements, a new runtime option, and the addition of a Python script equivalent to the existing PowerShell script.
Closes https://github.com/advanced-security/secret-scanning-review-action/issues/29

Added a v2.0.0-python prerelease


Python tests do not run on all supported python versions

tox can help with that.

Travis now runs the tests with all supported versions, see<PHONE_NUMBER>c73c0c5495045975d579b6dec88b22 for Travis configuration and d194f2850dabbfedb7beec215b9a898c8dd5872a for the required changes for Python 3.

:+1:


Could not write header for output file #0 incorrect codec parameters

Please find attached.
The video is not being created after subtitle removal is complete.

I found the video in TEMP folder. However the audio is not attached. And the codec is different from the source file.
Source file codec:

Output file codec:

thannk you for your input, this bug has been fixed. plz check

Thank you. Will that make it as new update 1.0.1?
Also, see attached. One more question I've got:

After the first removal, one letter in three different frames sadly were not completely removed. Gently, could there be a function for this kind of situation?

fail to extract audio
[Finished]Subtitle successfully removed, video generated at：C:/Users/nomid/OneDrive/Desktop\JENOVA_E.MOV[0]_no_sub.mp4
time cost: 317.24s
The audio is failed sadly.
Also the video codec is different from the source codec. Please see attached.

cloud you send the video to me

Yes. See link for the video here: http://yatoshicom.free.fr/JENOVA_E.MOV[0].avi

Yes. See link for the video here: http://yatoshicom.free.fr/JENOVA_E.MOV[0].avi

sorry for the late reply, it's 404

I got same error :
使用源码部署的环境 运行后得到没有声音的视频文件。 报错如下
Your Paddle Fluid is installed successfully! Let's start deep Learning with Paddle Fluid now
1920 1080
Subtitle Removing: 100%|█████████▉| 1686/1687 [04:16<00:00, 19.04frame/s][adts @ 00000215d3aef4c0] Only AAC streams can be muxed by the ADTS muxer
Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
Error initializing output stream 0:0 --
Subtitle Removing: 100%|██████████| 1687/1687 [04:18<00:00,  6.54frame/s]


Review Quick Start

I've read and reviewed the documentation's Quick Start. I'm not 100% about the structure of it (maybe we could consider going from top to bottom, meaning from bundles to task and agents and then to policies, observation engines, inferences engines and finally to states, state elements and spaces), but it certainly does the job and the beginning is really good.
One thing I noted in the quick example: How do you feel about the fact that users need to reset their bundle, even when they just created it? Wouldn't you expect the initialization to deal with all the setup? Reset seems to imply that the internal variables are set back to some state they had before, so why would you call this method on first use?
But again, the Quick Start does a good job introducing the library in my opinion. I've only made small edits for clarification, spelling etc. Some of the changes might be the result of an auto formatter, sorry about that.

Hi Christoph, thanks for your input.
About the quickstart paragraph ordering: I was hesitant about a similar structure you suggest, but thought that in the end the high-level example would be enough. For now I'll leave it like that to focus on something else but feel free to change it via another PR it you feel like it.
About the reset: it is in the Gym API which served as inspiration for this API. The reset method has to be defined so that you can start a new game from scratch without creating a new instance. It somewhat could be called implicitly when initializing the class by Bundle's constructor, but I think it's best to stick with a well known API. On the other hand, if it was in the constructor and people would still explicitly call reset, it would not cause anything bad at all, except some extra compute time due to an extra reset being called, but that is nothing since it just happens once. So, technically, both solutions are equivalent. I think having to explicitly call a reset conveys that you are starting a game, so i actually like it like that. But I have no strong opinion there... Maybe the name of the method could be changed to be more explicit of what happens


Add file name and executable file validation.

Added a check to ensure that the file name does not contain more than one period. If it does, an error message is set in TempData and the user is redirected to the "Index" action.
Introduced a new block of code that reads the first two bytes of the uploaded file to determine if it is an executable file (by checking for the "MZ" header). If the file is identified as an executable, an error message is set in TempData and the user is redirected to the "Index" action.

lets work on this PR once 8 is out


Edge tests on SauceLabs

TL;DR: Upvote this idea: https://saucelabs.ideas.aha.io/ideas/SLIDEA-I-302
Apparently, Edge fails to parse webcomponents.js file on Edge on a certain version of Windows 10. Updating the OS fixes the issue. Unfortunately, SauceLabs uses that very version of Windows 10. I contacted them last week asking for an update and they responded now. I created this issue to post updates here for archiving and indexing purposes.
My email:

On your VM's version of Windows 10, Edge fails to parse webcomponents.js and throws an error. People have investigated and solved the issue by updating Windows 10. So could you please update Windows 10 on your VMs?
All you need is here: https://github.com/webcomponents/webcomponentsjs/issues/575
Bonus failed build because of it: https://saucelabs.com/beta/tests/06763186dff14d82a53b55e618a0a670/commands
Thanks in advance :)

Their today's response:

Hi Omar,
I have confirmed with my Dev team that we only provide fresh images without the additional Windows updates. If you would like our VMs to include the latest daily Windows updates, it is best to submit a feature request via our Customer Idea Portal, where our Product team directly reviews input from our customer and prioritizes what will be implemented next based on demand: https://saucelabs.ideas.aha.io/
We do have plans to provide the Windows 10 Creator Update that may possibly include the Windows update that fixes the issue mentioned on GitHub. We do not have an ETA at the moment, but we will make an announcement once it becomes available on Sauce. Thanks for your patience and understanding.
Thanks,
Albert

Upvoted.
Do you have any idea what is the EdgeHTML version in their current images? I have just updated to Windows 10 Creator Update on my system.

@warpech Here is  a screen shot from SauceLabs machine

And I don't think there is a need tbh.

Sauce finally updated their machines and now Web Components work and our tests are passing. However , they have another new issue and I reported it. They're usually super responsive.
Here:

When you start a Sauce-connect tunnel, Chrome and Firefox succeed to access <IP_ADDRESS> without any issues. However, MS Edge doesn't, and acts like no tunnel is up and running.
This applies for automated and manual tests.
Links:
Successful Chrome test:
https://saucelabs.com/beta/tests/74f26a9c0ce94a2d93713bdc2dd82e85
Failed Edge test on exactly the same setup (tunnel and URL):
https://saucelabs.com/beta/tests/143553346e304b16b213483b0716c06e
To reproduce:
1- Start a tunnel on your machine.
2- Serve HTTP on your machine.
3- Start a manual test and access the URL you served.
4- Chrome will work, Edge will fail.
Potentially helpful information:
In Edge, you set proxy settings to use "http://<IP_ADDRESS>:19876/pac.js" config script,  which seems inaccessible. Weirdly, manually removing this from the settings fixes the issue and tunnel would start to work!

They responded with a working solution 💃

Closing as fixed in https://github.com/Palindrom/Palindrom/pull/143

:O

IKR! It would never cross my mind. If you're curious they give me this link for more info.


Download over SSH (after command)

Is it possible to download some files after running a few commands?
Eg. I want to do something like this

Connect to server
Run 'magerun db:dump' to create backup to some file
Download dump to local file
Run import command on production + extra hooks.

Any ideas how to about something like this, or is that out of the scope for rocketeer?

Can you specify the evironment for each poit?
I think:

connect to server -> ok
run command -> ok (you must have magerun installend on the server if you want to run this on server or you can add magerun in a folder of your project under SCM)
Download dump to local i think is not in the purpose of rocketeer (but i think you can find an alternative way to do this... i'm thinking about a script that send you the dump attached in an email
Run import command on production + extra hooks. yes you can do this

if you want to see an example go these Slides!


Memory leak in verbs

Original issue: https://charm.cs.illinois.edu/redmine/issues/330

Memory pool in ibverbs discards one of the buffer's allocated.

Original date: 2013-11-09 20:47:51

Fixed.


Animal Jokes

Q: Why did the sheep go to space?
A: To see if there was any life on the other planets!

Added joke


Improves default configuration of AwsSqsJobQueueConfig.

By default we're using one thread which is problematic as it slows down
the consumption of messages when you have more than one queue.

@mightyguava This is what -1 is doing based on https://github.com/cashapp/misk/pull/1305/files#diff-2e81bbece5fd45711cf43307687a626b.

Ooohhhh, ok. I think -1 for unbounded is not a Java-y API, but works for me.

I was thinking we should bound (and control via a feature flag) the number of consumption threads as that controls how fast our services will poll SQS and process jobs. In this case, will a massive influx of jobs have the potential to spawn tons of consumption threads and possibly degrade our service?

@hamdanjaveed yeah, that's the next PR i will be working on.

I was thinking we should bound (and control via a feature flag) the number of consumption threads as that controls how fast our services will poll SQS and process jobs. In this case, will a massive influx of jobs have the potential to spawn tons of consumption threads and possibly degrade our service?

This is realistically bounded by the number of subscribe calls by the application to register a consuming task. It just allows dynamically controlling the upper bound at runtime, instead of statically defining the upper bound at compile time.

Ooohhhh, ok. I think -1 for unbounded is not a Java-y API, but works for me.

 I guess we should just have a unbounded: Boolean


nixos/kresd: allow package to be configured

Motivation for this change
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[ ] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

OK, I expect it's cleaner than using packageOverrides.  (I haven't checked details yet.)

Is there any specific reason against using nixpkgs.overlays? IIRC we only add a package option if there's a good reason (for instance, you don't want to override systemd with an overlay unless necessary as this would rebuild a lot of stuff).

If you want to use the prometheus exporter you need to change the package to package = pkgs.knot-resolver.override { extraFeatures = true; };.

Is there any specific reason against using nixpkgs.overlays?

I didn't fiddle width them yet.

IIRC we only add a package option if there's a good reason (for instance, you don't want to override systemd with an overlay unless necessary as this would rebuild a lot of stuff).

We have many other modules which expose this option like nginx or hound which could cause one rebuild.


Gated to RGB homography

In the supplementary material, it says that a homography map between gated and RGB was calculated to warp gated into the RGB plane. Is this transformation matrix provided anywhere?
It also says that RGB was cropped into gated FOV. Was there any resizing done at all prior to cropping or was it just a simple crop?

Hej @connorlee77,
I added a tool projecting the gated images into the RGB camera frame. Looking forward to your feedback.

Sweet thanks for this update! It helps a lot! I'm looking to just warp the gated to RGB using a constant homography so either through the functions process_image or process_images. I got three questions:

In these functions, it appears that you guys crop the RGB image size (202:970, 280:1560) and resize to 1280x768. Is there a reason why the gated image is padded with 30 pixels on the right?

Can you explain how the keypoints in corresponding_points.txt were marked? I saw that there's an offset of 768, which to me indicates that the sample RGB and gated image were aligned vertically. Were both images of size 1280x768 during this manual feature matching step?

I'm also looking to transform the gated labels in gated_labels_TMP to the RGB coordinate frame. My instinct is to transform the gated bbox coordinates to RGB using the homography, and enforcing the result to be rectangular by a combination of min() and max(). Is that what you guys did? I'm also wondering if the labels in cam_left_labels_TMP and gated_labels_TMP are duplicates of each other, but in their respective coordinate frames (with visibility indicated by last 3 boolean values), or if there are some bboxes that exist in gated_labels_TMP that don't exist in cam_left_labels_TMP?

Dear @connorlee77,

No, that's an old artefact which survived refactoring.
Both images were cropped to a similar FOV and placed next to each other, therefore the second image has an offset of 768.
Yes that is something we did as well for objects without 3D boxes. For closer objects we used the available 3D bounding boxes. Further objects, which were not visible in other cameras were additionally labeled by a human annotator. In our latest work https://arxiv.org/abs/2102.03602 we refined the 2D bounding boxes for gated_labels_TMP, by reannotating each object individually.


Capture output by default

Hello,
To properly mimic the behavior of libtest, libtest-mimic should default to capturing the output and then displaying it only upon test failure.
TBH, I'm not yet really sure how to implement it, so before jumping into it, I wanted to check: would you be interested by such a feature? (Disclaimer: I don't know yet when I'll actually start doing it, so please read this as “in an ideal would, would you agree that libtest-mimic should have this feature?”)
Anyway, thank you for libtest-mimic! :)

Hi there!
Yes, that would be a great feature indeed. I wanted to implement it in the very beginning and checked how the actual libtest does it. Unfortunately... it's difficult. If I'm not mistaken, libtest actually uses internal std::io functions to temporarily change the stdout target or something like that. Have a look at this snippet (and probably the code below it. The way libtest does it only captures output emitted via std. If you write directly to stdout via different means, the output is not captured. This actually happens if you use termcolor for example.
Back when I wrote libtest-mimic I decided that it would not be feasible to implement that feature. Of course capturing output is easy when starting new processes, but one doesn't want to do that for each test.
So: I don't think there exists a reasonable implementation that libtest-mimic can use. However, if you want to research and come up with an interesting solution, let me know!

Hi there!
Yes, that would be a great feature indeed. I wanted to implement it in the very beginning and checked how the actual libtest does it. Unfortunately... it's difficult. If I'm not mistaken, libtest actually uses internal std::io functions to temporarily change the stdout target or something like that. Have a look at this snippet (and probably the code below it. The way libtest does it only captures output emitted via std. If you write directly to stdout via different means, the output is not captured. This actually happens if you use termcolor for example.
Back when I wrote libtest-mimic I decided that it would not be feasible to implement that feature. Of course capturing output is easy when starting new processes, but one doesn't want to do that for each test.
So: I don't think there exists a reasonable implementation that libtest-mimic can use. However, if you want to research and come up with an interesting solution, let me know!

Hmm… so on posix systems, I think using dup2 would allow doing proper capture (first save stdout/stderr, then open pipes, dup2 the pipe inputs to stdout/stderr, write the things that must be written like information on which tests pass/fail by using the dup'd stdout/stderr, and dup2 the dup'd stdout/stderr back into place when done).
However… that would require running all tests one by one, because there's no way of knowing which thread wrote what in this scheme.
So I wonder: is the problem you're seeing with doing things the same way as libtest the fact that it doesn't capture eg. termcolor output, or the fact that io::set_print & co aren't public API?

Hmm… so on posix systems, I think using dup2 would allow doing proper capture (first save stdout/stderr, then open pipes, dup2 the pipe inputs to stdout/stderr, write the things that must be written like information on which tests pass/fail by using the dup'd stdout/stderr, and dup2 the dup'd stdout/stderr back into place when done).
However… that would require running all tests one by one, because there's no way of knowing which thread wrote what in this scheme.
So I wonder: is the problem you're seeing with doing things the same way as libtest the fact that it doesn't capture eg. termcolor output, or the fact that io::set_print & co aren't public API?

So io::set_print not being public certainly means that libtest-mimic would have to implement its own solution. We can't use non-public APIs. Capturing most (but not all) stdout is better than not capturing at all.
To be clear: I'm not saying it can't be done. I just don't really think libtest-mimic should contain such complex and platform-dependent implementations. I intend this to be a pretty light-weight library that just implements some simple plumbing stuff like CLI parsing and printing. The test runner is provided by the user. And in particular, the user can then still do stdout capturing if they so wish. One could even writer another crate that does that. I just don't think stdout capturing belongs into libtest-mimic, unless implementing that is really simple and platform-independent.
Does this reasoning make sense?

So io::set_print not being public certainly means that libtest-mimic would have to implement its own solution. We can't use non-public APIs. Capturing most (but not all) stdout is better than not capturing at all.
To be clear: I'm not saying it can't be done. I just don't really think libtest-mimic should contain such complex and platform-dependent implementations. I intend this to be a pretty light-weight library that just implements some simple plumbing stuff like CLI parsing and printing. The test runner is provided by the user. And in particular, the user can then still do stdout capturing if they so wish. One could even writer another crate that does that. I just don't think stdout capturing belongs into libtest-mimic, unless implementing that is really simple and platform-independent.
Does this reasoning make sense?

It totally makes sense! I was mostly thinking of whether it makes sense to submit an RFC to make set_print & co public — not sure I'd have enough energy to bring that to completion, though.

It totally makes sense! I was mostly thinking of whether it makes sense to submit an RFC to make set_print & co public — not sure I'd have enough energy to bring that to completion, though.

I would probably don't bother trying that. I think making that public would not only require consensus on the question whether std should offer that, but also some additional significant API design. So I think the chances of that happening are rather slim :/
I will close this issue for now then. If you or anyone else finds an easy way to capture output in libtest-mimic, please let us know in this issue.

I would probably don't bother trying that. I think making that public would not only require consensus on the question whether std should offer that, but also some additional significant API design. So I think the chances of that happening are rather slim :/
I will close this issue for now then. If you or anyone else finds an easy way to capture output in libtest-mimic, please let us know in this issue.

Hmm yes, makes sense I guess. Thank you for your feedback!

Hmm yes, makes sense I guess. Thank you for your feedback!

I just don't think stdout capturing belongs into libtest-mimic, unless implementing that is really simple and platform-independent.

How about spawning tests in different processes?
Basically what I'm thinking of is:

We add a custom --spawn-processes flag which activates this behavior
For each test, libtest_mimic::run will re-execute the current process, changing the command line arguments:

We remove --spawn-processes flag
We set --exact <test name>
We add a FormatSetting::Silent which causes no extra output (Eg. no "running  tests" and no "test result: ...")

If the exit code is 0, we assume the test succeded. If not, it's failed and we print the captured stdout/stderr

This would require no extra dependencies and would be cross-platform. On the down side, it's wasteful to spawn so many processes and we would have to properly document this re-execution thing.
Alternatively, we could use procspawn. That would allow use to re-use a process pool, but would be slightly more complex and I'm not sure it works on windows.
For context, in pulsar we have a test-suite which needs to be run with admin privileges, so we decided to make a separate binary. libtest-mimic proved really useful for the task. Currently, our test runner has to (1) install a custom logger for intercepting output, (2) replace panic hook, (3) send tests to a different tokio-compatibile executor task.
I was wondering if we could simplify our code and contribute back.

I'm pretty sure that approach would work and I have even considered doing that. But you already listed the main disadvantages and I don't think it's a good route to go for this library. As I wrote above:

Of course capturing output is easy when starting new processes, but one doesn't want to do that for each test.

I understand that not having stdout captured is annoying in quite some use cases, but I don't see a good way that would fit nicely in libtest-mimic.
Something I could imagine is that some other library could offer this "capture stdout of this process" functionality; and libtest-mimic could get a new cargo feature that would enable using that library. I'm pretty sure the library would have to use those internal std functions, and thus would come with a "only use for development, might break at any moment" warning. But if libtest-mimic just refers to that warning as description of the crate feature, I think that would be fine.

For context, in pulsar we have a test-suite which needs to be run with admin privileges, so we decided to make a separate binary. libtest-mimic proved really useful for the task. Currently, our test runner has to (1) install a custom logger for intercepting output, (2) replace panic hook, (3) send tests to a different tokio-compatibile executor task.
I was wondering if we could simplify our code and contribute back.

That's interesting, thanks for letting me know! If I understand correctly, only (1) and (2) have to do with this issue, right?(3) is to allow running async tests, I assume? Maybe open a separate issue for that one.
But thanks for bringing panic message output to my attention -- I haven't really thought about it. I just checked and yes, the rustc test suite does hide panic outputs. So I guess libtest mimic should do that too? That's a lot easier than hiding/capturing all stdout output, right? You only need to overwrite the panic hook, correct? But the panic hook is set globally for the whole process... mh. So panics within libtest-mimic would be hidden as well? Mhhhh. Maybe one has to think about it for another minute.

Something I could imagine is that some other library could offer this "capture stdout of this process" functionality; and libtest-mimic could get a new cargo feature that would enable using that library. I'm pretty sure the library would have to use those internal std functions, and thus would come with a "only use for development, might break at any moment" warning. But if libtest-mimic just refers to that warning as description of the crate feature, I think that would be fine.

Users enabling that libtest-mimic feature will need a nightly compiler. Unfortunate, but this could still be useful when all other workarounds fail.

That's interesting, thanks for letting me know! If I understand correctly, only (1) and (2) have to do with this issue, right? (3) is to allow running async tests, I assume? Maybe open a separate issue for that one.

Yes. Not sure it makes sense to add extra features to the library just for that though. After all, you can just spawn a tokio Runtime in each test.

But thanks for bringing panic message output to my attention

Yeah, we could work on that. I'll give it a try and see if I can come up with a clean solution.
As a side note: the current catch_unwind won't print the line number of the panic, while the panic hook would have that info.
It's kind of confusing we'd only catch one kind of output, but many test suites don't write much to stdout apart from that. On top of this, if we supplied a custom log implementation, I think we'd cover most use-cases for wanting to capture output. I'll open up an issue for that.

But the panic hook is set globally for the whole process...

Follow-up to my previous message: the panic hook and logger are both global resources of the whole process. They do allow us to intercept messages, but I see no way to associate them to the correct test (unless we run only one at the time, which would be super slow)
I was planning to copy the standard library approach for set_output_capture, basically a thread local buffer. Unfortunately this works because it gets cloned when a new (standard library) thread is spawned. We can't do that.

Could it be a single process for all tests instead of one per test?

Could it be a single process for all tests instead of one per test?

I think spawning a single separate process which runs all the tests would allow us to capture output, but we wouldn't know how to associate the output to each test. This is the same blocker I hit when intercepting log messages and the panic hook, see my last comment.

Well set_print and set_panic no longer exist so libtest must be using something else.

it looks like this is the new testing framework, and run_test_inner no longer uses set_print, but uses the spawn trick people were talking about.
https://github.com/rust-lang/rust/blob/4c83bd03a9d94af35c97a6b8b595d40e291af84a/library/test/src/lib.rs#L563

Actually, set_print seems to have been renamed to set_output_capture.
Too bad, it would be nicer not to have duplicate output in the logs (particularly if the test panics; in my case, snapbox's functions panic on failure instead of returning errors).


require-optimization should ignore components not extending React.Component

We use a base class to extend our Components, so we do not have to optimize each Component on its own:
import React from 'react';
import shouldPureComponentUpdate from 'react-pure-render/function';

// Optimized base class:
export default class Component extends React.Component {

    shouldComponentUpdate(...args) {
        return Reflect.apply(shouldPureComponentUpdate, this, args);
    }

}

However, require-optimization is complaining that the Components extending this base class were not optimized.

Using a base class is a bad practice (article by the React team: https://facebook.github.io/react/docs/composition-vs-inheritance.html) - however, this plugin supports a JSDoc-style annotation you can add in a comment above all of your components to indicate they are react components.
What I'd recommend instead is importing shouldPureComponentUpdate in every single component rather than using inheritance to solve that problem (or using a decorator).

@christianharke, the plugin doesn't look for React.Component or React.PureComponent, it looks for Component and PureComponent. Notice the lack of the React. prefix. You could rename your base Component class to BaseComponent or anything that isn't Component or PureComponent and this would stop the plugin from treating the class like a React component.

Looking at the source, the React. prefix (React being the pragma) is treated as optional. So,
it looks for all of the following:

Component
React.Component
PureComponent
React.PureComponent

(assuming pragma is set to the default of React)

Thank you @jpickwell!
Just renaming the variable from Compontent to BaseComponent while importing fixed the issue.


Uint64List should acknowledge that int is signed

The Uint64 list docs (https://api.flutter.dev/flutter/dart-typed_data/Uint64List-class.html) don't make any mention of the fact that you can't actually get an unsigned int out of a Uint64, since Dart's integers are signed 64 bit.
(It's not really clear to me that we should keep Uint64List at all, actually. As far as I can tell it's not really usable now that we don't have unbounded integers.)

We could consider removing the class entirely (it doesn't exist on the web, so it's already half-way not there).
If we introduce a typedef Uint64List = Int64List;, no-one should be able to tell the difference.


Worldwind reports no bounds if the map is not moved

Start up the map, but do not move the map at all.
Go to Map.getBounds()
Retrieve the bounds.  It returns {}.
Same example will run correctly in Cesium.  The map needs an initial bounds from the engine.  The map instance stores the bounds for reporting.
This breaks drawing for MIL-STD autoshapes.

Test in development branch
To test,

open WorldWind and do not move the map
perform getBounds, it should be roughly correct


[usb] Re-align usb device with current repository state

Related to #1007
This is an initial PR to get the USB device back to a working state in the Verilator simulation. It includes the following:

Set up new top_earlgrey_usb based on current top_earlgrey. The USB top is not yet automatically generated.
Small fixes within usbdev / usbdpi
A fix in prim_ram_2p_async_adv, where an invalid generic value was selected. This primitive is only used in the USB device from what I can see.
An update of the register file description, s.t. it is aligned with the current version of the regtool. This included splitting the RXENABLE register into two parts, as the tool generated invalid SV code (structs with multiple entries of the same name) otherwise.

The changes were tested using Verilator 4.010 (as per the documentation) and in a separate environment for Incisve simulation and Xilinx synthesis. The simulated USB host can set the address and read & set the BAUD rate.
Commands to run the simulation:
cd $REPO_TOP
fusesoc --cores-root . run --target=sim --setup --build lowrisc:systems:top_earlgrey_usb_verilator
make -C sw/device SW_DIR=boot_rom clean all
make -C sw/device SIM=1 SW_DIR=examples/hello_usbdev \
  SW_BUILD_DIR=sim_hello_usbdev clean all
build/lowrisc_systems_top_earlgrey_usb_verilator_0.1/sim-verilator/Vtop_earlgrey_usb_verilator   --rominit=sw/device/sim_boot_rom/rom.vmem   --flashinit=sw/device/sim_hello_usbdev/sw.vmem

Expected output:
[...]
USB:   528428 frame 0x31 CRC5 0x10
USB:   536620 frame 0x32 CRC5 0x18
USB:   544812 frame 0x33 CRC5 0x7
USB: usbdpi done, frame: 51, success: 1, state: 0
Received stop request, shutting down simulation.

Simulation statistics
=====================
Executed cycles:  544959
Wallclock time:   16.405 s
Simulation speed: 33219.1 cycles/s (33.2191 kHz)

To keep this PR reasonably small, I'd suggest to split out things which can be merged right away. The prim fix is an example of that, it helps to do a separate PR for that to get it merged quickly and off your plate.

I've split out the prim fix, which has been merged already, thanks :). I think it makes sense to treat the rest en bloc, otherwise it will be just more work for everyone involved. Many of the changed lines are in the auto-generated register files anyway. From my side, this is ready to be merged.

Edit: The reviewers were selected automatically, I don't know if it's necessary for 7 people to review this PR.

No, and that won't happen. Unfortunately, there's no way to recommend reviewers but not assign them in GitHub currently.

@vogelpi can you take the lead on this review, and ask for a second opinion as necessary?

Just a general comment: let's merge this one as it is when ready, but
consider the idea of making it part of the mainline. The only reason it
was somewhat 'orphaned' before was that it was experimental that
@mdhayter was playing with, and no one had time to clean it up to
the level sufficient for comportability. If we feel like that is a doable
goal here, mainlining it into top_earlgrey proper would be a cleaner
solution. I can't claim we'll have any verification resources any time
soon for it, but we can put it on the list. wdyt @stefanlippuner
@vogelpi @imphil @tjaychen

Just a general comment: let's merge this one as it is when ready, but
consider the idea of making it part of the mainline. The only reason it
was somewhat 'orphaned' before was that it was experimental that
@mdhayter was playing with, and no one had time to clean it up to
the level sufficient for comportability. If we feel like that is a doable
goal here, mainlining it into top_earlgrey proper would be a cleaner
solution. I can't claim we'll have any verification resources any time
soon for it, but we can put it on the list. wdyt @stefanlippuner
@vogelpi @imphil @tjaychen

We should definitely get this merged. As far as I can see, there is just the one point open regarding  ending the simulation.
Regarding the integration into the top: I would prefer the USB module to be integrated in the top over having a separate top. But we should only do that if we are going indeed to spend the resources on maintenance/DV. Regarding comportability, @stefanlippuner mentioned that he already rewrote the few files we are using from the tinyFPGA project. As far as I understood, this is the only non-comportable part. Anyway, let's discuss this in the original issue here @1007.

Just a general comment: let's merge this one as it is when ready, but
consider the idea of making it part of the mainline. The only reason it
was somewhat 'orphaned' before was that it was experimental that
@mdhayter was playing with, and no one had time to clean it up to
the level sufficient for comportability. If we feel like that is a doable
goal here, mainlining it into top_earlgrey proper would be a cleaner
solution. I can't claim we'll have any verification resources any time
soon for it, but we can put it on the list. wdyt @stefanlippuner
@vogelpi @imphil @tjaychen

We should definitely get this merged. As far as I can see, there is just the one point open regarding ending the simulation.
Regarding the integration into the top: I would prefer the USB module to be integrated in the top over having a separate top. But we should only do that if we are going indeed to spend the resources on maintenance/DV. Regarding comportability, @stefanlippuner mentioned that he already rewrote the few files we are using from the tinyFPGA project. As far as I understood, this is the only non-comportable part. Anyway, let's discuss this in the original issue here #1007.

merging this into the same top as others sounds like a good idea to me. I think quite a few of our possible use cases will end up needing USB anyhow, so it's not really a one off thing.  Merging it as part of the normal top also makes it more likely that we will pursue long term maintenance and testing (as evidenced by the fact that the separate top was orphaned for some time).


Tool three-dot menu is not opening, instead opens Tool details

When I click on the three-dot menu of a specific tool on the #workspaces///tools/ page, it leads me to that Tool's details page. It should open the Tool menu.
@elizzhao may have ideas about what changed recently

I believe it's because of the change from PR #894 from the toolcard being an href link with Nav.getLink to a function that uses Nav.goToPath


[release] Move NuGet feed from CDPx to DART

Since the release pipeline is run in the DART Azure DevOps project, we
no longer need to authenticate against it. The build agent will be
running with a token that allows access.
Of particular note is that to remain in compliance we needed to
restore the nuget.config at the root of the repo that disables all
nuget sources other than nuget.org.
This poses a problem for the community toolkit packages, which
are not on that source. We've devices a workaround that will allow
us to build with the public sources on dev machines and in CI and
the single upstream source in the release build pipeline.
Co-authored-by: Jaime Bernardo<EMAIL_ADDRESS>

I need somebody to check this out with a totally clean dev environment. I am betting that it will not work.

Setting up a clean machine to test the build.

Building PowerToys on a clean machine finished successfully and ran well :)


Bug Hunter Analysis

ML-Crate Repository (Proposing new issue)
:red_circle: Project Title : Bug Hunter Analysis
:red_circle: Aim : The aim is to create an analysis based project on Bug Hunters.
:red_circle: Dataset : https://www.kaggle.com/datasets/vellyy/bug-hunter
:red_circle: Approach : Try to use 3-4 algorithms to implement the models and compare all the algorithms to find out the best fitted algorithm for the model by checking the accuracy scores. Also do not forget to do a exploratory data analysis before creating any model.

📍 Follow the Guidelines to Contribute in the Project :

You need to create a separate folder named as the Project Title.
Inside that folder, there will be four main components.

Images - To store the required images.
Dataset - To store the dataset or, information/source about the dataset.
Model - To store the machine learning model you've created using the dataset.
requirements.txt - This file will contain the required packages/libraries to run the project in other machines.

Inside the Model folder, the README.md file must be filled up properly, with proper visualizations and conclusions.

:red_circle::yellow_circle: Points to Note :

The issues will be assigned on a first come first serve basis, 1 Issue == 1 PR.
"Issue Title" and "PR Title should be the same. Include issue number along with it.
Follow Contributing Guidelines & Code of Conduct before start Contributing.

:white_check_mark: To be Mentioned while taking the issue :

Full name :
GitHub Profile Link :
Participant ID (If not, then put NA) :
Approach for this Project :
What is your participant role? (Mention the Open Source Program name. Eg. HRSoC, GSSoC, GSOC etc.)

Happy Contributing 🚀
All the best. Enjoy your open source journey ahead. 😎

@abhisheks008 I would like to work on this issue. Could you please assign it to me?
Full name : Dewansh Chaturvedi
GitHub Profile Link : https://github.com/Dewansh02
Participant ID: NA
Approach for this Project :
Analysing the dataset.
EDA processing.
Filtering the dataset or performing feature engineering so that which can easily fit on the model.
Feature selection using tree based models, etc.
Applying the different type of the models like, random forest, decision tree regression, xgboost, knn classifier, svm classifier, deep neural networks, etc.
Summarizing all the algorithms at the end of the notebook.
Participant Role: KWOC

Issue assigned to you @Dewansh02. Finish it within the program's deadline.

@abhisheks008 i would like to work on this issue. Could you please assign it to me?
Full name : Avdhesh Varshney
GitHub Profile Link : https://github.com/Avdhesh-Varshney
Participant ID (If not, then put NA) :
Approach for this Project :

Analyzing the dataset.
EDA processing.
Filtering the dataset or performing feature engineering so that which can easily fit on the model.
Feature selection using tree-based models, etc.
Applying the different type of the models like, random forest, decision tree regression, xgboost, knn classifier, svm classifier, deep neural networks, etc.
Tuning the hyper-parameters and increase the accuracy and reduce the loss of the model.
Summarizing all the algorithm's efficiency and scores at the end of the notebook.
Model comparison with their precision, f1 score and recall.
Identifying the best fit algorithm and plot the graph of that algorithm as how it's fit it.

What is your participant role? (Mention the Open Source Program name. Eg. HRSoC, GSSoC, GSOC etc.) IWOC

Assigned @Avdhesh-Varshney


Opt out of next.js componentDidCatch

Feature request
Is your feature request related to a problem? Please describe.
I want to have errors thrown in development so I can use the chrome debugger’s pause on exceptions and inspect the error’s environment. The current error rendering provided by next.js swallows the exception and is a lot less useful than chrome’s debugger.
Describe the solution you'd like
Throwing an error in a custom _app.js causes the error to be caught by some parent component (I think AppContainer?) Maybe a solution is to stop catching errors if we implement a componentDidCatch in App.js
Describe alternatives you've considered
Being a better programmer. (💩 impossible for me tho 💩)
Additional context
Pls. Stop catching my errors  when you don’t even catch them in production 😭😭😭
The devtools feature I’m talking about

Okay so it looks like the componentDidCatch is coming from ReactHotLoader and not next.js, so it might be impossible to fix this from here.

What about https://github.com/zeit/next.js/tree/canary/examples/with-componentdidcatch 🤔

If you create a custom _app.js and throw the error in componentDidCatch, the error will just be caught by react-hot-loader’s AppContainer. I’m trying to get he actual error thrown uncaught b/c setting "Pause on caught exceptions" usually leads to a lot of noise where exceptions are thrown and caught unrelated to your problem.
I dunno if there’s much next.js can do about this, it probably has to be changed in react-hot-loader. IMO their dx has not been on point lately.

I mean, you could add debugger; in componentDidCatch https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger
Anyway we're planning to remove react-hot-loader soon.

😛 yeah I guess I could use debugger but that would capture the call stack of the debugger and not the actual error, right?
+1 on removing react-hot-loader. I‘ve been seeing stuff like ReferenceError: _this4 is not defined/ have been unable to hot-reload components with methods that have been passed through higher-order-functions 😡. I’ve come to hate the error screen that react-hot-loader provides. Do you have any idea on alternatives or does regular webpack hot loading seem to work for the more basic use cases (i.e. rerendering styles in components)?
Thanks for all that you do.

Update for 6.1. Hot reloading is much nicer! 🎉🎷🎊🥁 Unfortunately, errors in the render path seem to make the page to become unresponsive (devtools can’t be opened, page is not interactive, page will not load on full reload). Not sure if this is better but thanks for your efforts. Let me know if you want me to create a new issue for this.


Link attributes type and sizes should not be stripped

Providing multiple size alternatives for an icon doesn't seem possible right now as sizes gets stripped, together with the type attribute. For example, this index.html file
    <link data-trunk rel="icon" type="image/png" sizes="16x16" href="./favicon-16x16.png">
    <link data-trunk rel="icon" type="image/png" sizes="32x32" href="./favicon-32x32.png">

generates dist/index.html
    <link rel="icon" href="/favicon-16x16-f15142a34706b56c.png">
    <link rel="icon" href="/favicon-32x32-675e646f48661d23.png">

I'm not having this issue with trunk.

Do you have a repo for me to pull so I can reproduce this?


Packaging errors

Trying to package subj into RH rpm (Fedora 34).

Main source (libmdbx-0.10.0.tar.gz) + make [all]:

/usr/bin/which: no ioarena in (/usr/lib64/ccache:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin)
  MDBX_BUILD_OPTIONS =-DNDEBUG=1
## TIP: Use `make options` to listing available build options.
  CFLAGS   =-std=gnu11 -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes
  CXXFLAGS =-std=gnu++20 -O2 -g -Wall -Werror -Wextra -Wpedantic -ffunction-sections -fPIC -fvisibility=hidden -pthread -Wno-error=attributes
  LDFLAGS  =-Wl,--gc-sections,-z,relro,-O1  -lrt  -pthread
## TIP: Use `make help` to listing available targets.
make: *** No rule to make target 'git_directory/HEAD', needed by 'src/version.c'.  Stop.
error: Bad exit status from /var/tmp/rpm-tmp.VTDar7 (%build)

Main source + cmake:

CMake Error at CMakeLists.txt:82 (message):
  Please use libmdbx as a git-submodule or the amalgamated source code

-- Configuring incomplete, errors occurred!
error: Bad exit status from /var/tmp/rpm-tmp.Hc0JJK (%build)

Amalgamated source + make/cmake:

make: *** No rule to make target 'check'.  Stop.
error: Bad exit status from /var/tmp/rpm-tmp.k1paID (%check)

and:
File not found: .../BUILDROOT/libmdbx-0.10.0-1.fc34.x86_64/usr/lib64/libmdbx.so

4…∞. Library no versioned, wrong build instruction, no documentation in sources and instruction how to build it, etc.
PS. not good idea to name pre-alpha-release-candidate as "release".

Oh, indeed, it is not explicitly stated anywhere that the tarballs/zips automatically generated by github should not be used.
This is my mistake, sorry.
So I just added a corresponding note to the end of the latest release description.

Briefly, you should use (i.e. clone) the git repository or the tarballs of amalgamated source code.
https://github.com/erthink/libmdbx#source-code-embedding
The amalgamated sources includes only the library code with built-in version information, but not any tests nor corresponding make's targets.
Thus, the amalgamated sources are "frozen" and ready for use, but ones are not intended for debugging or developing the library itself.
On the other hand, the git repository provides version information for a build and contains the full source code, including tests.
Contrary, the tarballs/zips automatically generated by github don't contain version information and (thus) shouldn't be used.
Unfortunately, there is no way to disable ones in any way yet.

Library no versioned

libtool-style versioning will be available after the 1.0 release, but for now it's overkill.

Wait for https://github.community/t/disable-tarball/139966


fix(utils): getComputedReportItems returns correct items length

Even though limit is set in the filter query the getComputedReportItems function may return more items
than expected.
For example, the following report will return three items instead of two:
{
  filter: { limit: 2 },
  data: [
    {
      services: [
        {
          service: 'AmazonEC2',
          values: [...]
        },
        {
          service: 'AmazonSNS',
          values: [...]
        },
      ]
    },
    {
      services: [
        {
          service: 'AmazonEC2',
          values: [...]
        },
        {
          service: 'Other',
          values: [...]
        },
      ]
    }
  ]
}

This will return three items because we have three different services: AmazonEC2, AmazonSNS and Other which are mapped in getComputedReportItems.
To fix this problem, if limit is set getComputedReportItems will slice the data according to it. Otherwise, return the array as it is.
closes #114

Deploy preview for project-koku ready!
Built with commit 6b07dceae857638a325d2e6bde42a3aab682177f
https://deploy-preview-125--project-koku.netlify.com

Yep, no problem.

I added more tests to getComputedReportItems to get 100% coverage.

Yes, the problem I mentioned to @dlabrecq was that the Top Services/Accounts/Regions info are using reports with the wrong query parameters. They are using the same report as the trendlines which pull back resolution of daily but these Top 5 items should be monthly resolution reports.

:sunglasses: thanks a lot @chambridge I know how to fix this.

@chambridge can you review this

Codecov Report

Merging #125 into master will decrease coverage by 0.05%.
The diff coverage is 75%.

@@            Coverage Diff            @@
##           master    #125      +/-   ##
=========================================
- Coverage   89.26%   89.2%   -0.06%
=========================================
  Files         113     113
  Lines        1164    1167       +3
  Branches      147     148       +1
=========================================
+ Hits         1039    1041       +2
- Misses        114     115       +1
  Partials       11      11

Impacted Files
Coverage Δ

src/api/query.ts
100% <ø> (ø)
:arrow_up:

src/pages/dashboard/dashboardWidget.tsx
87.5% <0%> (ø)
:arrow_up:

src/store/dashboard/dashboardSelectors.ts
100% <100%> (ø)
:arrow_up:

src/store/dashboard/dashboardActions.ts
100% <100%> (ø)
:arrow_up:

src/store/dashboard/dashboardCommon.ts
85% <75%> (-3.89%)
:arrow_down:

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 9971908...abd2165. Read the comment docs.


fix: always publish to npmjs registry

Resolves #50. Alternative fix to #45. I've checked this by publishing 0.7.0-beta.10, which failed to publish in CI and works with this config override now.

I'm 100% sure that this was my first attempt (with @janory looking at my screen) and it didn't work in CI.
But I'm up for a second try!
I merge, try to publish from tag and see what happens, thanks @pvlugter !!!

for the record:
https://app.circleci.com/pipelines/github/lightbend/akkaserverless-javascript-sdk/175/workflows/bd12367c-8a8b-45e8-b759-1ac9af66ccd1

Temporary glitch with npmjs registry. Publishing is working now.


generateName with customized suffix length

Summary
Currently the workflows generated by workflowTemplate where the generateName is defined will have a suffix which is a random string of length 5, see https://github.com/argoproj/argo-workflows/blob/e5b131a333afac0ed3444b70e2fe846b86dc63e1/workflow/util/util.go#L613 this has brought up workflow name conflicts in our use case. It would be great if the length of the random string can be customized.
What change needs making?
Add one more parameter in the workflow definition, for example, generateNameSuffixLength so that it can be customized.
Use Cases
When would you use this?
ASAP, we are now trying to override the name field when submitting the workflow as a workaround now.

Message from the maintainers:
Impacted by this bug? Give it a 👍. We prioritise the issues with the most 👍.

@treeguard how do u handle this for cronworkflows?

I'm wondering if it's ok to let Kubernetes generate the name. I mean just provide the generateName instead of the name field.

@LinuxSuRen generateName only provides 5 random characters which is not unique, we facing collisions

@LinuxSuRen generateName only provides 5 random characters which is not unique, we facing collisions

That is the limit of Argo workflow. I'm talking about letting Kubernetes to generate it.

https://github.com/argoproj/argo-workflows/issues/7900 seems like a more generic option that would supersede this.


istat-menus4 SHA2 mismatch

Error: Execution of 'brew cask install istat-menus4' returned 1: ==> Downloading http://s3.amazonaws.com/bjango/files/istatmenus4/istatmenus4.22.zip
Error: SHA2 mismatch
Expected: b3157b6a5967a0612b1e2fc3eb961675fb7f85dd7966f5ab5f776f9b2cee51aa
Actual: 4e6873b24d18578e359b9363f02b9c98bdeda999afab1aaa8802af254ecb35b6

@vitorgalvao is the same thing going on with firefox-nightly?

Probably. It just means the file was updated in-place, upstream. I can’t take a look at it now, so please open an issue so we can track it.


Policies are periodically retrieved by data aggregator

[#127058171]

Running with ginkgo -r -p -race I received multiple DATA RACE issues.

Seems I may have confused you on how this would work.
There shouldn't be a GetTriggers func, it is actually the reverse and closer to what you had. The func is what is called after the new Triggers are built and then passed along to the func for further processing.
There should be no need for any locks since the data is only ever created and passed on the same Go routine.

Looks good.
Just squash these into 1 commit.

One commit now. Thank you very much!

Merged


Recursive schemas?

Congrats on v1 it's really looking good, now I can get back to my ideas :) One of which is to add "Organization" entity/schema so that every Organization can have:

owner
admins
members
sub organizations -> This is where I was trying to do a recursive schema but getting some errors.

Below is the code, and here is the fork (v1.0 branch). https://github.com/mraak/example-blog-orgs
I'm getting an error so I wonder if this is possible in the first place.
Organizations.attachSchema(new SimpleSchema({
  name: {
    type: String
  },

  owner: orion.attribute('user', {
    label: 'Owner'
  },{
    publicationName: 'owner',
  }),

  admins: orion.attribute('users', {
    label: 'Admins'
  },{
    publicationName: 'admins',
  }),

  members: orion.attribute('users', {
    label: 'Members'
  },{
    publicationName: 'members',
  }),

  suborgs: orion.attribute('hasMany', {
    label: 'Sub Organizations'
  },{
    collection: Organizations,
    publicationName: 'suborgs'
  }),

  /**
   * The file attribute is a custom orion attribute
   * This is where orion do the magic. Just set
   * the attribute type and it will automatically
   * create the form for the file.
   * WARNING: the url of the image will not be saved in
   * .image, it will be saved in .image.url.
   */
  logo: orion.attribute('file', {
      label: 'Logo',
      optional: true
  }),
  /**
   * Here its the same with image attribute.
   * summernote is a html editor.
   */
  description: orion.attribute('summernote', {
      label: 'Description'
  }),
  /**
   * This attribute sets the user id of the user that created
   * this post automatically.
   */
  createdBy: orion.attribute('createdBy'),
  createdAt: orion.attribute('createdAt')
}));

I don't know if this is possible, haven't tested, but it could be possible.
Can you share the error?

W20150504-16:49:29.408(2)? (STDERR)
W20150504-16:49:29.410(2)? (STDERR) /Users/alenbalja/.meteor/packages/meteor-tool/.<IP_ADDRESS>0xzu++os.osx.x86_64+web.browser+web.cordova/mt-os.osx.x86_64/dev_bundle/server-lib/node_modules/fibers/future.js:245
W20150504-16:49:29.410(2)? (STDERR) 						throw(ex);
W20150504-16:49:29.411(2)? (STDERR) 						      ^
W20150504-16:49:29.411(2)? (STDERR) Error: Match error: Missing key 'titleField'
W20150504-16:49:29.411(2)? (STDERR)     at packages/check/match.js:312:1
W20150504-16:49:29.411(2)? (STDERR)     at Function..each..forEach (packages/underscore/underscore.js:113:1)
W20150504-16:49:29.411(2)? (STDERR)     at checkSubtree (packages/check/match.js:311:1)
W20150504-16:49:29.412(2)? (STDERR)     at check (packages/check/match.js:32:1)
W20150504-16:49:29.412(2)? (STDERR)     at getSchema (packages/orionjs:relationships/attribute.js:2:1)
W20150504-16:49:29.412(2)? (STDERR)     at Object.orion.attributes.registerAttribute.getSchema (packages/orionjs:relationships/attribute.js:100:1)
W20150504-16:49:29.412(2)? (STDERR)     at Object.orion.attribute (packages/orionjs:attributes/attributes.js:20:1)
W20150504-16:49:29.412(2)? (STDERR)     at app/orion/collections/organizations.js:65:18
W20150504-16:49:29.413(2)? (STDERR)     at app/orion/collections/organizations.js:112:3
W20150504-16:49:29.413(2)? (STDERR)     at /Users/alenbalja/Projects/Code/orionjs/example-blog-orgs/.meteor/local/build/programs/server/boot.js:222:10
=> Exited with code: 8


The first step of deconstruction has no maximum range

You can perform the first step of a deconstruction at any range, afterwards it complains you're out of range.
Repro:

Spawn spears
Walk away so spears are out of range
Get screwdriver
Click on spears with screw driver
Also works with walls and wrenches

Probably only needs an InRangeUnobstructed check.


No information about packages as resources

This doc describes packages: https://github.com/microsoft/azure-pipelines-yaml/blob/master/design/pipeline-resources.md
Please explain how to download packages from Azure Artifacts in YAML pipeline
and how to use them as triggers for YAML pipeline.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 7458d5b2-1bb7-7d87-7ce6-2b0c430b0155
Version Independent ID: edf5bbd3-a3f0-5426-e985-31290f8afd05
Content: YAML schema - Azure Pipelines
Content Source: docs/pipelines/yaml-schema.md
Product: devops
Technology: devops-cicd
GitHub Login: @steved0x
Microsoft Alias: sdanie

@slawekww I'm about to push an update. The packages type currently only supports GitHub packages. Please check out this article for using artifacts in pipelines.


Faucet

motivation: when you don't cli access.
example: deployed testing federation, wasm test (so wasm can pay and create invoices)
curl $FM_FAUCET_BIND_ADDR/invoice -d 21
curl $FM_FAUCET_BIND_ADDR/pay -d ln......

In particular, this will help us write WASM tests that run in a headless browser using a tool like wasm-bindgen-test


Implement Easy Enhancements for Chat Application

To improve the functionality and user experience of our chat application, I propose the following enhancements:
Data Validation:

Implement a function to validate user input before sending messages to ensure it is not empty and meets certain criteria (e.g., max length).

Example implementation: 🔽
function validateInput(input) {
    return input.trim() !== "" && input.length <= 500; // Adjust max length as needed
}

Consolidate Event Listeners:

Reduce redundancy by using a single function to handle both button clicks and the Enter key for sending messages.

Example implementation: 🔽
function handleSendMessage() {
    sendMessage();
}

sendButton.addEventListener("click", handleSendMessage);
userInput.addEventListener("keypress", function(event) {
    if (event.key === "Enter") {
        handleSendMessage();
    }
});

Error Handling:

Improve error handling in the fetch logic to provide feedback when an error occurs, helping users understand what went wrong.

Example implementation: 🔽
fetch("/chat", {
    method: "POST",
    headers: {
        "Content-Type": "application/json",
    },
    body: JSON.stringify({ message: userMessage }),
})
.then(response => {
    if (!response.ok) {
        throw new Error('Network response was not ok');
    }
    return response.json();
})
.then(data => {
    removeTypingIndicator();
    const formattedResponse = formatResponse(data.reply);
    appendMessage("bot", formattedResponse);
})
.catch(error => {
    console.error('Error fetching response:', error);
    removeTypingIndicator();
    appendMessage("bot", 'Error generating response. Please try again later.');
});

Benefits: 🎉

Enhances user experience by validating input and providing feedback.
Cleans up the code by consolidating similar functionalities.
Improves robustness of the application with better error handling.

kindly add gssoc-ext with level and hacktoberfest-accepted labels @kvcops

well these are already present...so there is no need for changes...

@smog-root Kindly refrain from raising redundant issues otherwise you will be facing consequences.


Split Nix CI to run on multiple machines

Currently, Nix CI runs on a single runner, and can't be easily scaled due to the way it is structured (the generated pipeline references derivations, which may not be available on machines other than the one that the pipeline was generated on). Fix this by making a derivation cache.

Work in https://github.com/minaprotocol/mina/tree/nix-ci-scalable-runners

@balsoft Can you point to the PR that delivers this work?

@mzajda0mina Please follow up.

Update after talking with Alex
Needs low level NIX work to replace default work distribution.

We are not using "remote builder". Reliability reasons.
We have multiple servers that communicate via shared cache
Shared cache protocol: copying derivations was extremely slow due to sequential processing big numer of small files
Alex intends to replace native derivations protocol with copying it by hand (one large file = fast)

@balsoft please follow up with details when you have chance

deployed to google cloud (tweag)

The approach with multiple agents, all uploading derivations to a shared cache and then downloading them as needed has problems:

Just naively uploading/downloading derivations takes a really long time due to the very inefficient way that Nix handles them;
Bundling all the derivations together, and then uploading/downloading them is

Hacky
Results in much more complicated and ugly pipeline generation

So, for now I set it up using remote builders. This mostly works, but there's also a bug which leads to some builds hanging indefinitely sometimes. I knew about this bug (hence "reliability concerns"), but I have not managed to track it down yet. This does not happen too often, but is annoying. However, it mostly works.

We have distributed setup now -- closing ticket.
Also we have more insight about the parallelism bug which hits Nix (agent+N*builder setup).
Non bug scenerio is documented in Nix performance raport in Notion.
Deployment architecture is documented in Nix-Ci Notion page.


merge to upstream

Codecov Report

Merging #2398 into dev will not change coverage.
The diff coverage is n/a.

@@         Coverage Diff          @@
##            dev   #2398   +/-   ##
====================================
  Coverage   100%    100%
====================================
  Files        20      20
  Lines      1144    1144
====================================
  Hits       1144    1144

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 3ec8f14...9f45f23. Read the comment docs.

Please rebase your repo and submit one single commit 😸

@yoyo837 Seemed you missed the comment, so I have opened a pr https://github.com/nuxt/nuxt.js/pull/2400

@clarkdo OK


”Hoceni” is listed in the drop-down menu

Description:
"Hoceni" is listed in the drop-down menu alongside its corresponding county and commune, according to the law.
Precondition:
The website is up an running.

Step 1
Type "Hoceni" in the search bar.

Expected results
The location is listed in the drop-down menu as "Comuna Hoceni, VASLUI".


refactor html report to work with large projects

When we use the fuzz-introspector on projects with a lot of functions, e.g. OpenSSL, then the resulting HTML report is huge.
We should refactor the HTML report so this won't happen, for example by using multiple pages.

Another issue that happens when dealing with large projects: https://github.com/ossf/fuzz-introspector/issues/23


Support to render object dimensions for 3D components natively

Providing support to display object dimensions for 3D components would be a great feature to have.

Thanks @manikantagarikipati for filing this feature request. When you mentioned "object dimensions for 3D components", did you mean the dimensions of a bounding box that has been created for a 3D component?

Hi @dthian ,
Yes i mean by the representation of dimensions of the bounding box which gets created for a 3DObject, Just like the screen shot below.

@dthian is there any way to achieve the above functionality ( displaying the dimensions) in the current version of virocore_1.1.0 ?

Get @manikantagarikipati, apologies for the delay. Yup it should be possible, you can either:
1 - Use another 3D object (a transparent cube with lines) that you can then place at the position of your 3d furniture, and re-use it for all your 3D furnitures (simply scale them). Because you know both the position and the scale, you can then place the numeric text dimensions on the sides. To get the size of the bounding box, you can use getBoundingBox() in Node.
2- Similar to (1), but instead of a 3D object, you can also use the Polyline API to draw the lines of a box.
Hope that helps!


Use a label when there are 0 followers/following on profile

@keybase/react-hackers
(Should be a visdiff screenshot once CI runs.)

The commits a05c40690893...99f0de83008c introduce visual changes on linux. :mag_right: 1 changed

Changed: Profile-Your_Profile_Empty (before) (after)

Visdiff window isn't tall enough.  Screenshot:

The commits a05c40690893...d26773aec794 introduce visual changes on linux. :mag_right: 1 new

Added: Profile-Your_Profile_No_followers_or_following


avoid unnecessary long startup time

re-introduce the short autoboot_delay, avoiding a unnecessary long startup time

This might sound stupid, but I have to ask. ;) Are you ok with licensing this under the BSD 2-Clause license?
A similar patch is needed in the installer and maybe even the tools. I can add them as well so this is not just a "if you click save settings in the GUI it gets better" but an across-the-board change for all images and installations. @jschellevis are you ok with this?

Lets go ahead with this.

@fichtner Yes, it's OK to use this under the BSD 2-Clause license.

Thanks, I'll pull this in as soon as 15.1.2 is out. :)

Applied via cherry-pick, thank you. :)


Enum comparison with String is not working with recursive assertion

Summary
Comparison of enum with string fails with recursive assertion and strictTypeChecking as false. I would expect below code to be run successfully.
actual and expected objects and their fields were compared field by field recursively even if they were not of the same type - as per error, actual and expected values are same (CAR in below example) and test case should pass.
Example
public class TestEnumWithString {

    @Test
    public void testEnumWithString() {
        assertThat(Vehicle.CAR).usingRecursiveComparison().isEqualTo("CAR");
    }
}

enum Vehicle {
    CAR
}

@vimalbera92, thanks for reporting this. Which version are you using?

@joel-costigliola - I'm using latest version 3.22.0.

The behavior is as expected, strictTypeChecking as false applies for comparing objects, not primitive.
We are discussing with the team the pros and cons of adding an option that would allow to compare enum with string.
In the meantime you can register comparators per field or type to tweak the behavior as you want, see https://assertj.github.io/doc/#assertj-core-recursive-comparison-comparators.

@joel-costigliola Thanks for quick response and workaround.
I think it's not a good idea to include all primitive types to check against string but definitely worth enum comparison with string but I'll leave that to assertj team to decide and agree upon.

Closing this issue as we can register specific comparison/equals for types or fields which I think cover the use case.
Happy to reopen if that turns our not to be true.

@joel-costigliola, apologies for resurrecting an old issue. I wanted to add another vote for supporting enum/string comparison as it's a fairly common use case. Currently this requires withEqualsForFields, as suggested above, which can get a little verbose if there are many enums:
assertThat(entity)
        .usingRecursiveComparison()
        .withEqualsForFields((String s, PhoneType t) -> PhoneType.valueOf(s) == t, "phones.phoneType")
        .withEqualsForFields((String s, AddressType t) -> AddressType.valueOf(s) == t, "addresses.addressType")
        // etc..
        .isEqualTo(dto);

It would be nice if this was supported OOTB via an option, e.g.:
assertThat(entity)
        .usingRecursiveComparison()
        .withEnumStringComparison()
        .isEqualTo(dto);

What about withEnumNameComparison? Mostly to refer to Enum::name

What about a name like: comparingEnumsByName():
assertThat(entity)
        .usingRecursiveComparison()
        .comparingEnumsByName()
        .isEqualTo(dto);

What do you think about including other types, in addition to enums? e.g.
class Person {
    UUID id;
    int age;
    Gender gender;
    boolean isActive;
}

class PersonDto {
    String id;
    String age;
    String gender;
    String isActive;
}

I believe it's a pretty common use case where one side of the comparison has String representations of certain types. Including such an option would make usingRecursiveComparison() more versatile and tests more concise. Maybe something like allowToStringComparison()?

The challenge here would be that the root objects, myPerson and myPersonDto would be compared by their string representation, this is equivalent to assertThat(myPerson.toString()).isEqualTo(myPersonDto.toString()).

@joel-costigliola I haven't used withEqualsForFieldsMatchingRegexes() before. This looks very handy. Thank you for the example!
Do you see any issues if the String-comparison option was limited to enums and primitive/wrapper types?

I see one issue if we go that way, it won't be clear what the scope of the String-comparison is.
An alternative could be to add something like comparingByToString(Class... types) where one could specify the list of types to compare with toString(), need discussing with the team to see how they feel about it.

We will add comparingEnumsByName as this is address the enum case, the other ones can be with withEqualsForFieldsMatchingRegexes if given the proper regex.

@joel-costigliola sounds good. I see it's assigned to you, but if help is needed with a PR, I can give it a try.

I'm almost done but thanks for the offer @armandino !

Where did this method goes?

@NewbieProger this will be available in 3.25.0.